论文笔记:Effective Approaches to Attention-based Neural Machine Translation

Attention-based Models

提出的 Attention-based Model 分为两大类 global 和 local,区别在于 Attention 是相对于源端所有时间步实时部分时间步而言。

两种类型的相同之处是:计算上下文向量 $c_t$ 时都将 lstm 的顶层隐藏状态 $h_t$ 作为输入。不同之处是如何产生 $c_t$。

特别地,知道 $h_t$ 和 $c_t$ 之后,采用一个简单的连接层来综合信息,得到一个 attentional hidden state:

然后 $\tilde { h } _ { t }$ 进入一个 softmax 层来预测单词分布:

Global Attention

img

可变长度的 alignment vector $\boldsymbol { a } _ { t }$:

三种不同选择的评分函数:

和 Bahdanau 提出的模型相比,本文的 Global 更加简单,泛化性能更好的:

  1. 本文简单的使用 encoder 和 decoder 最顶层的隐藏状态。另一方面,使用双向编码器中的前向和后向源隐藏状态的串联以及非堆叠单向解码器中的目标隐藏状态。
  2. 计算路径更加简单。本文的计算路径为从 $\boldsymbol { h } _ { t }$ 开始 $\boldsymbol { h } _ { t } \rightarrow \boldsymbol { a } _ { t } \rightarrow \boldsymbol { c } _ { t } \rightarrow \tilde { \boldsymbol { h } } _ { t }$,而 Bahdanau 的计算路径为从前一个时间步的隐藏状态开始 $\boldsymbol { h } _ { t-1 } \rightarrow \boldsymbol { a } _ { t } \rightarrow \boldsymbol { c } _ { t } \rightarrow \boldsymbol { h } _ { t }$。
  3. Bahdanau只实验了一种评分函数,而本文展示了其他的评分函数并且性能更好。

Local Attention

img

全局注意力缺点:每个单词的生成需要源端的所有单词,这样代价太昂贵,限制了长句子中的使用。例如翻译整个段落或者整篇文章。

局部注意力:只关注源端的一个子集。

首先产生一个 aligned position $p_t$,然后在一个以 $p_t$ 为中心的窗口 $\left[ p _ { t } - D , p _ { t } + D \right]$ 上做加权平均产生 $c_t$。和全局方法不同,局部注意力产生的 $\boldsymbol { a } _ { t }$ 是固定维度的。

模型有有两种变体:

Monotonic alignment (local-m)

我们简单地设置 $p _ { t } = t$,假设源序列和目标序列大致单调对齐,并且对齐矢量 $\boldsymbol { a } _ { t }$ 跟全局定义相同。

Predictive alignment (local-p)

$S$ 是源端句子的长度,经过了 sigmoid 之后,$p _ { t } \in [ 0 , S ]$。然后我们以 $p_t$ 为中心产生一个高斯分布,以支持 $p_t$ 附近的 alignment
points。 具体来说,我们的 alignment 权重定义为:

$\operatorname { align } \left( \boldsymbol { h } _ { t } , \overline { \boldsymbol { h } } _ { s } \right)$ 和全局计算是一样的,经验上,设置 $\sigma = \frac { D } { 2 }$,

Input-feeding Approach

我们提出的全局和局部方法在进行注意力计算时是独立的,然而,在计算注意力时,一般我们要有哪个 word 已经被翻译的 coverage 的信息,考虑过去的信息然后共同做出决策。为了应对这种情况,提出 $\tilde { \boldsymbol { h } } _ { t }$ 作为输入加入到下一次的计算中。如下图所示。

img

Bahdanau 在计算 score 的时候将上一次的上下文向量作为输入,这可能达到了输入 coverage 信息的效果,但是没有任何分析证明这种连接是有用的。本文的方法更具有一般性,可以用在一般的堆叠式 RNN 中

持续技术分享,您的支持将鼓励我继续创作!