Neural Machine Translation by Jointly Learning to Align and Translate 学习笔记
- 引言
- 传统的基于短语的翻译系统, 是由很多孤立的子成份构成的,而神经机器翻译试图构建一个简单高效的的神经网络,其输入和输出都为句子。
- Encoder-Decoder的网络模型首先对源句子进行编码, 得到一个fixed-length的向量, 然后再进行解码得到解码向量, 并得到对应的输出翻译。而这个固定长度的向量,将会成为模型的瓶颈,特别是当句子的长度大于训练集的长度时,尤为明显,因为它把源句子中的所有信息都压缩在固定长度的向量中。
- 注意力机制: 在解码的过程中, 同时对 “文本对齐”与“翻译”建模, 具体地, 可以使用软对齐的方式,搜索得到与当前状态下最相关的源词语片段,然后再根据这些相关的源词语的位置,预测输出下一个词语。这样就可以不受fixed-length向量的限制,可以不用把所有的信息全都压缩在这样的向量中,也可以翻译更长的句子。
- 神经机器翻译的背景
- 从概率的视角而言,翻译其实就是找到使条件概率p(y|x)最大的y.而神经机器翻译, 虽然是刚兴起的方法,但效果显著.
- RNN Encoder-Decoder网络: 先使用一个RNN网络, 进行Encode,再根据网络的各个隐状态h来得到一个固定长度的向量c. 而在Decode阶段, 使用RNN网络依据前面输出的翻译词语, 及向量c,来依次得到下一个词语, 直至翻译结束.这种方式虽然乍看起来很简单, 但却是能work的。
- 下图是RNNenc网络的示意图[1]