【论文笔记】neural machine translation by jointly learning to align and translate

论文链接

   这篇文章是将attention机制应用于机器翻译上,普通的seq2seq模型要将输入文本的信息编码至固定长度的隐向量中,当面对长文本时会损失许多信息,那么就要利用attention对输入文本的不同片段根据其重要程度分配不同的权重,使得信息被更有效地编码。

   编码过程即将输入序列输入RNN,得到各时间步的RNN隐向量。

   解码过程根据context vector ci、上一时间步的输出yi-1和当前的RNN隐向量si计算得到当前时间步的输出概率分布,g为非线性函数。


si由下式计算而得:


普通seq2seq使用固定的context vector ci,而attention seq2seq的context vector由如下过程生成:

   a为匹配度计算函数,文章中a函数使用了一个感知机来训练得到,其参数会在训练过程中通过BP算法得到更新,si-1为上一时间步的隐状态,hj为输入序列中的单词。


   计算得到各个单词的attention值eij后,使用softmax将其归一化,得到每个单词相对于翻译过程当前时间步的重要程度即权重αij。


   最终根据这些权重,新的context vector由输入序列各时间步的隐向量的attention加权和来表示,这样在解码的每一个时间步,都可以使用一个专属定制的context vector,无需把所有信息都考虑进去,只需考虑对当前解码更重要的context部分。


整个解码流程如下图所示:




阅读更多

没有更多推荐了,返回首页