一、摘要
attention机制通过在翻译过程中选择性地专注于部分原句来提高神经机器翻译(Neural Machine Translation,NMT)的性能。然而,目前很少有用的基于attention的NMT架构。本篇论文介绍了两种简单有效的attention机制。全局attention关注原句的所有单词,局部attention关注原句的一部分单词。
二、介绍
NMT通常是一个大型的神经网络,以端到端的方式进行训练,并且能够很好地推广到很长的单词序列。这意味着模型不用像标准的MT一样存储巨大的短语表和语言模型。NMT占用内存很少。实现NMT解码器比标准的MT更容易。
在这篇论文中,作者提出了两种attention:global attention和local attention。前一种方法类似于(Bahdanau et al.,2015)的模型,但在结构上更简单。后者可被视为(Xu et al.,2015)中提出的soft attention 和 hard attention的混合:它比global attention或soft attention消耗更少的计算资源,同时,与hard attention不同,容易实现与训练。并且,作者也对基于attention的模型的各种对齐函数做了实验。
三、NMT
神经机器翻译系统是直接建模条件概率
p
(
y
∣
x
)
p(y|x)
p(y∣x)的神经网络,将原句
x
1
,
.
.
.
,
x
n
x_1,...,x_n
x1,...,xn翻译为目标句
y
1
,
.
.
.
,
y
m
y_1,...,y_m
y1,...,ym。NMT的基本形式由两个组件构成:一个编码器,用于计算每个原句的表示
s
s
s;一个解码器,一次生成一个目标词,因此将条件概率分解为:
在解码器中对这种分解进行建模的自然选择是使用递归神经网络(RNN)架构。可以用公式来表示解码每一个单词
y
j
y_j
yj的概率:
其中
g
g
g 是转换函数,输出一个词表大小的向量。
h
j
h_j
hj是RNN隐藏单元的输出,可以用以下公式计算:
给定之前的隐藏层状态,
f
f
f 函数计算当前的隐藏层状态。本篇论文中,作者使用了堆叠的LSTM结构,训练目标函数如下:
四、Attention-based Models
两种attention:global attention 和 local attention。两种的不同在于是用到了全部单词还是部分单词。共同之处在于,在解码阶段的每个时间步
t
t
t,两种方法首先将堆叠LSTM的顶层处的隐藏层状态
h
t
h_t
ht 作为输入。然后目标是推导出一个上下文向量
c
t
c_t
ct,其捕获了相关的原测信息以帮助预测当前的目标词
y
t
y_t
yt。虽然这两种attention在推导上下文向量是不同的,但它们的后序步骤是相同的。
给定目标隐藏层状态
h
t
h_t
ht,和原侧的上下文向量
c
t
c_t
ct,将两个向量拼接在一起生成注意力的隐藏层状态:
然后将其喂给softmax层,生成概率形式的向量。
1.global attention
global attention 的主旨就是在推导上下文向量
c
t
c_t
ct时,考虑编码器的所有隐藏层状态。在这种模型中,一个变长的对齐向量
a
t
a_t
at,大小等于原侧的时间步数,通过比较目前的target隐藏层状态
h
t
h_t
ht与每一个原测的隐藏层状态
_
h
s
^\_h_s
_hs:
然后根据所有原状态和
a
t
a_t
at 计算全局上下文向量ct作为加权平均值。最后通过Eq.(5)和Eq.(6)进行预测。
2.local attention
global attention有个缺点就是它为每个目标词必须要关注原侧的所有单词,代价昂贵,并且可能使得翻译更长的序列变得不切实际,不如段落、文档。为了解决这个不足,作者提出了local attention机制,对每一个目标词,选择性地关注原句的一小部分单词。该方法具有避免在soft attention中引起的昂贵计算的优点,同时比hard attention更容易训练。具体细节来说,模型首先在时间t为每个目标词生成一个对齐位置
p
t
p_t
pt。然后,上下文向量
c
t
c_t
ct 通过窗口内
[
p
t
−
D
,
p
t
+
D
]
[p_t-D,p_t+D]
[pt−D,pt+D] 的源隐藏状态集合的加权平均值推导得出。D的大小是凭经验选择的。与global attention不同,局部对齐向量
a
t
a_t
at 是固定维度的,比如
∈
R
2
D
+
1
∈R^{2D+1}
∈R2D+1。下面考虑模型的两个变种:
**Monotonic alignment:**假设原序列和目标序列大致单调对齐,我们只需设置
p
t
=
t
p_t = t
pt=t。
**Predictive alignment:**而不是假设单调对齐,我们的模型预测对齐位置如下:
W
p
W_p
Wp 和
v
p
v_p
vp 是模型参数,
S
S
S 是原句长度。那么通过
s
i
g
m
o
i
d
sigmoid
sigmoid 函数后,
p
t
∈
[
0
,
S
]
p_t∈[0, S]
pt∈[0,S]。为了支持
p
t
p_t
pt 附近的对准点,我们将高斯分布置于
p
t
p_t
pt 附近。 具体来说,我们的对齐权重现在定义为:
我们使用Eq.(7)中的相同对齐函数,标准偏差根据经验设定为
σ
=
D
/
2
σ = D/2
σ=D/2,
p
t
p_t
pt 是一个实数。
3.Input-feeding Approach
作者提出的两种attention都是独立进行的,然而这是不理想的。在标准的MT中,通常在翻译过程中保持覆盖集以跟踪已翻译过的单词。同样,在注意力NMT中,应该在考虑过去的对比信息的情况下共同做出对比决策。为了解决这个问题,作者提出了input-feeding的方法,其中attention向量
h
t
~ h_t
ht 在下一个时间步时会与输出拼接在一起。 这会有两个方面的影响:我们希望让模型充分了解先前的对齐选择,我们创建了一个跨越水平和垂直的非常深的网络。