赞
踩
神经机器翻译试图建立和训练一个单一的,大的神经网络,读取一个句子,并输出正确的翻译。
目前大部分提出的基于神经网络的机器翻译属于encoder-decoder框架。
encoder将源语言句子编码成为一个固定长度的向量。
decoder将encoder编码成的定长向量转变为目标语言的句子。
传统的encoder-decoder框架存在弊端:需要将所有的必要信息编码成一个固定的向量,对于长句子的处理效果极差。
文章提出的模型生成目标语言词汇是基于源语言相关上下文位置的信息向量和已经生成的目标语言的词汇。
这使得model不需要将源语言的所有信息,无论长短压缩至一个固定长度的向量。
从概率的角度分析,翻译过程等价于寻找一个目标句子
y
y
y在给定源语言句子
x
x
x的情况下,条件概率最大化。即:
a
r
g
m
a
x
y
p
(
y
∣
x
)
argmax_yp(y|x)
argmaxyp(y∣x)
RNN Encoder-Decoder模型
编码器:
h
t
=
f
(
x
t
,
h
t
−
1
)
h_t=f(x_t,h_{t-1})
ht=f(xt,ht−1)
c
=
q
(
{
h
1
,
.
.
.
,
h
T
x
}
)
c=q(\{h_1,...,h_{T_x}\})
c=q({h1,...,hTx})
其中f为LSTM,q为取最后一个。
解码器:
p
(
y
)
=
∏
t
=
1
T
p
(
y
t
∣
{
y
1
,
.
.
.
,
y
t
−
1
}
,
c
)
p(y)=\prod_{t=1}^Tp(y_t|\{y_1,...,y_{t-1}\},c)
p(y)=t=1∏Tp(yt∣{y1,...,yt−1},c)
p
(
y
t
∣
{
y
1
,
.
.
.
,
y
t
−
1
}
,
c
)
=
g
(
y
t
−
1
,
s
t
,
c
)
p(y_t|\{y_1,...,y_{t-1}\},c)=g(y_{t-1},s_t,c)
p(yt∣{y1,...,yt−1},c)=g(yt−1,st,c)
其中
s
t
s_t
st代表t时刻前的所有生成的状态,
y
t
−
1
y_{t-1}
yt−1是t-1时刻的生成的目标语言词汇。
其实本章的内容为基于Attention思想的encoder-decoder模型。
解码器:
p
(
y
i
∣
{
y
1
,
.
.
.
,
y
i
−
1
}
,
x
)
=
g
(
y
i
−
1
,
s
i
,
c
i
)
p(y_i|\{y_1,...,y_{i-1}\},x)=g(y_{i-1},s_i,c_i)
p(yi∣{y1,...,yi−1},x)=g(yi−1,si,ci)
s
i
=
f
(
s
i
−
1
,
y
i
−
1
,
c
i
)
s_i=f(s_{i-1},y_{i-1},c_i)
si=f(si−1,yi−1,ci)
与传统的解码器相比,编码向量c不固定而是根据当前词汇而进行有区别的生成
c
i
c_i
ci。
上图是主要的attention思想(soft-attention)
c
i
=
∑
j
=
1
T
x
α
i
j
h
j
c_i=\sum_{j=1}^{T_x}\alpha_{ij}h_j
ci=j=1∑Txαijhj
其中,
h
j
h_j
hj为每个时刻的encoder的输出,
α
i
j
\alpha_{ij}
αij为每个decoder的i时刻encoder输出的j时刻的hidden_state的权重
α
i
j
=
e
x
p
(
e
i
j
)
∑
k
=
1
T
x
e
x
p
(
e
i
k
)
\alpha_{ij}=\frac{exp(e_{ij})}{\sum_{k=1}^{T_x}exp(e_{ik})}
αij=∑k=1Txexp(eik)exp(eij)
上式为权重的分配公式。
e
i
j
=
a
(
s
i
−
1
,
h
j
)
e_{ij}=a(s_{i-1},h_j)
eij=a(si−1,hj)
其中的a为一个前馈神经网络,将decoder中输出
s
i
−
1
s_{i-1}
si−1与
h
j
h_j
hj做运算得到一个分值,该值就反应了当前hidden_state与
s
i
−
1
s_{i-1}
si−1的权重大小。
编码器:
encoder部分没有什么好说的,与传统架构不同的是采用了BiRNN,将前向信息和后向信息做提取。
数据集介绍:
实验采用的数据集为WMT‘14数据集。
数据处理部分,未出现在词表中的token标记为[UNK]此外不做任何特殊处理(如:小写、词干抽取)
模型参数的设置:
mini-batch设置为80,所有的隐层节点数设置为1000
定量结果
模型的表现用评价指标BLEU的分数来衡量。
从表中的结果可以看出,无论是长句翻译还是短句翻译,无论是有无[UNK]词汇出现。文章提出的RNNsearch模型表现均比RNNencdec好很多。甚至效果接近于Moses的效果。
Moses的语料要更多,还包含更大的单语语料。
在上图可以看出。在训练长句子的进行预测时,RNN_encdec50模型的性能急剧下降,甚至都比RNN_search30的效果差,在RNN_search50的模型中对于长句的翻译效果也很好。
本章就Attention在翻译时做了可视化分析,发现翻译过程中的Attention的重点。
本章就长句子翻译结果进行分析,得到的结果印证了实验结果。
该部分文章分为两小节进行阐述:
对齐方式在笔记生成领域有所涉猎,利用混合高斯核方法去计算位置、宽度、混合系数。但是这种对齐方式,限制于位置的预测。
与本文提出的方法不同的一点是,Graves 2013的方法是只在一个方向上移动。
本文提出的方法也有缺点,在于需要额外的计算资源(权重的计算)。由于翻译的句子大部分是15-40个词,所以这种缺点不是很显著。
前人在机器翻译领域引入神经网络是利用了,神经网络对源语言和生成的目标语言进行重排序。或者是获得一个分值,将其作为一个特征,进行排序。
以前的方法均是将神经网络作为翻译系统的一个子部分,而本文提出的方法则是完全利用神经网络构造翻译系统。
文章总结了传统RNNencdec模型在编码任何长度的句子时都会将其转变为固定大小的vector,这个是不合理的。本文提出的RNNsearch方法很大程度的利用了相关词汇与上下文的信息。从结果看来模型的性能与最先进的基于短语的统计翻译模型效果一样。
attention的思想将会影响机器翻译和自然语言理解领域。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。