Google’s Neural Machine Translation System:Bridging the Gap Between Human and Machine Translation
NMT的缺点
(1)在训练和翻译推理方面都是计算昂贵的。---->论文中解决方法:低精度算法
(2)当输入句子包含罕见词时缺乏稳健性。---->论文中解决方法:将词分成输入和输出的一组有限的公共子词单元(“wordpieces”)。
(3)有时无法翻译源中的所有单词句子。
GNMT
模型结构
它有三个组件:编码器网络,解码器网络和注意网络。 编码器将源句子变换为矢量列表,每个输入符号一个矢量。 给定这个向量列表,解码器一次产生一个符号,直到产生特殊的句末符号(EOS)。编码器和解码器通过注意模块连接,该注意模块允许解码器在解码过程中聚焦在源句子的不同区域上。
编码器端:
x 1 , x 2 , . . . , x M = E n c o d e r R N N ( x 1 , x 2 , . . . , x M ) \mathrm{x}_1,\mathrm{x}_2,...,\mathrm{x}_M=EncoderRNN(x_1,x_2,...,x_M) x1,x2,...,xM=EncoderRNN(x1,x2,...,xM)
x \mathrm{x} x:向量
解码器端:RNN+softmax:解码器RNN网络产生一个隐藏状态,即下一个要预测的符号,然后通过softmax层产生候选输出符号的概率分布。
在推理期间,计算到目前为止给定源句编码和解码目标序列的下一个符号的概率:
P ( y i ∣ y 0 , y 1 , . . . , y i − 1 , x 1 , x 2 , . . . , x M ) P(y_i|y_0,y_1,...,y_{i-1},\mathrm{x}_1,\mathrm{x}_2,...,\mathrm{x}_M) P(yi∣y0,y1,...,yi−1,x1,x2,...,xM)
则序列的条件概率为:
P ( Y ∣ X ) = P ( Y ∣ x 1 , x 2 , . . . , x M ) P(Y|X)=P(Y|\mathrm{x}_1,\mathrm{x}_2,...,\mathrm{x}_M) P(Y∣X)=P(Y∣x1,x