PaperNotes: attention系列 (1) - nmt

329 阅读1分钟

1.paper

Neural machine translation by jointly learning to align and translate 2016

2.keypoint

  • 1.soft attention
  • 2.additive attention

3.简介

原seq2seq模型的瓶颈在于将多个输入单元压缩成一个定长的向量。在长句翻译时,效果明显下降。为了解决这个Issue,文章提出了“软”对齐的方法。 该模型将每一个输入词都映射到一个vector,形成了一个vector序列, 在翻译当前词时,通过模型自动找到源句子中与该词相关的若干词,组成一个vector子序列作为decoder的输入。

4.模型

4.1 encoder:

一个双向RNN

\mathbf{h_i}=[\overrightarrow{\mathbf{h_i}}; \overleftarrow{\mathbf{h_i}}]

4.2 decoder

每个rnn单元的输入包括上一个rnn的hidden states 和一个context vec。 每一个context vec \mathbf{c_i}其实是由三部分构成的: encoder hidden states decoder hidden states source target的对齐信息 (对齐来自stm,原意是在翻译当前句子时,标识原句有哪些词已经用过了。)

\mathbf{c_i} = \sum_{i=1}^n a_{t,i}\mathbf{h_i}
a_{i,t} = align(y_t,x_i)=\frac{exp(score(\mathbf{s_{t-1}. \mathbf{h_i}}))}{\sum_{i'=1}^nexp(score(\mathbf{s_{t-1}. \mathbf{h_{i'}}}))}

比较有意思的是score的求法:

score(\mathbf{s_t},\mathbf{h_i})=\mathbf{v_a^\mathrm{T}}tanh(\mathbf{W_a[\mathbf{s_t;h_i}]})

score a其实是输出和输入过一个前馈网络得到的值,该值度量了当前输出相对于之前输入的词的权重关系。这个前馈网络和seq2seq模型一起学习。

5.实验

每一个小格的明暗度代表了对应纵横刻度的两个词的权重, 越亮表示权重越大, 在翻译时贡献的信息越多。