论文学习笔记04(Neural Machine Translation By Jointly Learning To Align and Translate)

Neural Machine Translation By Jointly Learning To Align and Translate

解决的问题(Motivation)

传统的Encoder-Decoder模型必须由Encoder把源句编码为一个固定长度的vector,对于提高模型的性能是一个瓶颈。
由于Encoder需要能够把源句表示的所有信息包含在转化的vector中,所以难以处理很长的句子,尤其是比训练集中句子要长的句子。

提出的方法

每次生成一个词的时候,自动搜索与预测目标词有关的源句的部分,模型利用这些上下文向量和已经生成的目标单词的向量来生成这个单词,因此可以不需要另外硬性的把整个源句转化为一个向量。

Details

传统的Encoder-Decoder模型(RNN)
目标词的条件概率:
p(yt{y1,y2,...,yt1},c}p(y_t|\{y_1,y_2,...,y_{t-1}\},c\}
=g(yt1,st,c)=g(y_{t-1},s_t,c)
这里c是整个源句的向量。

注意力机制

生成某个单词时,不需要注意整个句子,只注意与它相关的部分。
例:
中文:今天 天气 真 好
英文:the weather is very good today
当生成weather的时候,注意“天气”。
能避免翻译长句子时忘掉前面部分的情况。

改进的模型:
Encoder-Decoder+注意力机制

论文学习笔记04(Neural Machine Translation By Jointly Learning To Align and Translate)

p(yiy1,...,yi1,X)=g(yi1,si,ci)p(y_i|y_1,...,y_{i-1},X)=g(y_{i-1},s_i,c_i)
这里的cic_i是根据预测词y搜索的上下文向量。
ci=j=1Tαijhjc_i=\sum_{j=1}^T\alpha_{ij}h_j
αij=exp(eijk=1Texp(eik)softmax\alpha_{ij}=\frac{exp(e_{ij}}{\sum_{k=1}^{T}exp(e_{ik})}--softmax
eij=a(si1,hj)e_{ij}=a(s_{i-1},h_j)
这里的a就是要设计的注意力函数。

论文模型

Encoder-Decoder(BiRNN)+注意力机制

拓展

(1)词语对齐(Alignment):可以知道源句和目标句单词或短语信息的对齐信息。
(2)双向RNN(Bidirectional RNN/BiRNN):
两个RNN上下叠加,一个前向,一个反向。
论文学习笔记04(Neural Machine Translation By Jointly Learning To Align and Translate)