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

这篇文章在NMT(Neural machine translation)上尝试了两种简单且有效的注意力机制:一个可以注意所有单词的全局方法(global approach),和一个只看部分单词的局部方法(local approach).
1.全局方法类似(Bahdanau et al.2015),但是结构更简单,
2.局部方法可以看为是hard和soft注意力机制(Xu et al.,2015)的混合:它计算代价比全局方法和soft方法低。 同时不同于hard方法局部注意力机制几乎任何位置都是可微的,也就是更容易应用和训练。

这两种方法的一致之处是,在decoding阶段的每个时间步,两种方法首先都会将LSTM(decoder是多层的话)顶层的隐藏状态 h t h_t ht(也就是当前decoder隐藏状态)作为输入,目的是导出上下文向量 c t c_t ct(context vector), c t c_t ct捕获了相关的词源端信息,然后通过 c t c_t ct h t h_t ht结合得到当前时刻的预测词 y t y_t yt
具体的,给定当前隐层状态 h t h_t ht和词源端信息 c t c_t ct,我们通过一个简单的连接层来结合这两个向量的信息,来产生注意力机制的隐层状态 h ˉ t \bar{h}_t hˉt h ˉ t = t a n h ( W c [ c t ; h t ] ) \bar{h}_t=tanh(W_c[c_t;h_t]) hˉt=tanh(Wc[ct;ht]) 可以看见 [ c t ; h t ] [c_t;h_t] [ct;ht]就是简单连接了两个向量.
然后注意力向量 h ˉ t \bar{h}_t hˉt,会作为softmax层的输入,来产生预测分布:
p ( y t ∣ y &lt; t , x ) = s o f t m a x ( W s h ˉ t ) p(y_t|y_{&lt;t},x)=softmax(W_s\bar{h}_t) p(yty<t,x)=softmax(Wshˉt)
两种模型不同之处就是 c t c_t ct的获取过程是不同的。

Global Attention

全局注意力机制在导出上下文向量 c t c_t ct时会考虑encoder层的所有隐层状态.如图所示,在这里插入图片描述
最下面一行蓝色的矩形表示encoder层,红色矩形表示decoder层. 模型中,有一个变长的矢量 a t a_t at(对齐向量alignment vector),它的size等于编码层时间步数,它通过比较当前decoder层隐层状态 h t h_t ht和每个词源隐层状态 h ˉ s \bar{h}_s hˉs:
a t ( s ) = a l i g n ( h t , h ˉ s ) = e x p ( s c o r e ( h t , h ˉ s ) ) ∑ s ′ e x p ( s c o r e ( h t , h s ′ ˉ ) ) ( 1 ) a_t(s)=align(h_t,\bar{h}_s)=\frac{exp(score(h_t,\bar{h}_s))}{\sum_{s&#x27;}exp(score(h_t,\bar{h_{s&#x27;}}))}(1) at(s)=align(ht,hˉs)=sexp(score(ht,hsˉ))exp(score(ht,hˉs))1
这里的score是基于内容的函数,我们考虑三种形式:
s c o r e ( h t , h ˉ s ) { h t T h ˉ s d o t h t T W a h ˉ s g e n e r a l v a T t a n h ( W a , [ h t ; h ˉ s ] ) c o n c a t score(h_t,\bar{h}_s)\left\{\begin{matrix} h_t^T\bar{h}_s&amp;dot \\ h_t^TW_a\bar{h}_s&amp;general \\ v_a^Ttanh(W_a,[h_t;\bar{h}_s])&amp;concat \end{matrix}\right. score(ht,hˉs)htThˉshtTWahˉsvaTtanh(Wa,[ht;hˉs])dotgeneralconcat
除此之外,在我们的早期尝试中,我们使用基于局部的函数:
a t = s o f t m a x ( W a h t ) l o c a t i o n a_t=softmax(W_ah_t)\quad\quad location at=softmax(Waht)location
a t a_t at相当于一组权重,上下文向量 c t c_t ct可以看做是使用 a t a_t at对所有词源隐层状态做加权平均得到的.

Local Attention

全局注意力缺点是对每一个目标输出都尝试关注所有单词,其计算开销大且对于更长的序列是不实际的,因此本文又提出了局部注意力机制,这部分工作是受Xu et al等提出的hard和soft注意力机制的启发。在他们的工作中soft注意力机制对应全局注意力方法,只是权重被"softly"的放置于图像的所有patch上. 而hard注意力机制,会在每个时间步选择某一个patch去关注.
虽然不需要关注所有输入源,但是其是不可微的,且其需要更加复杂的技巧比如减少方差,或者需要强化学习进行训练.
在这里插入图片描述
我们的局部注意力机制集中于选择一个小的上下文窗口,并且是可微的,且这种方法可以避免soft attention中的大量计算代价,与此同时比hard attention更容易训练.
具体的,在每个decode时间步 t t t,模型首先生成一个对齐位置(aligned position) p t p_t pt.那么上下文向量 c t c_t ct是对窗口(window) [ p t − D , p t + D ] [p_t-D,p_t+D] [ptD,pt+D]中的词源隐层状态的加权平均.其中 D D D是凭经验(empirically)选择的,与全局注意力机制中不同,此时局部对齐向量 a t a_t at是固定维度的,即 ∈ R 2 D + 1 \in \mathbb{R}^{2D+1} R2D+1.
我们对局部注意力机制考虑两种变体:
A.单调对齐(Monotonic alignment )(Local-m)-我们简单设置 p t = t p_t=t pt=t,也就是假设词源和目标序列大致单调排列。此时对齐向量 a t a_t at的计算为(1)式,也就是Local-m和全局模型是一样的,只是向量 a t a_t at是固定长度的,这是因为 D D D是固定的,窗口也固定了,那么(1)式只在固定长度窗口上计算。

B.预测对齐(Predictive alignment)(Local-p)-这里我们不在使用简单对齐,而是预测一个对齐位置:
p t = S ⋅ s i g m o i d ( v p T t a n h ( W p h t ) ) p_t=S \cdot sigmoid(v_p^Ttanh(W_ph_t)) pt=Ssigmoid(vpTtanh(Wpht))
这里 W p W_p Wp v p v_p vp是模型参数,是需要学习的。 S S S是源句长度,上式的结果是 p t ∈ [ 0 , S ] p_t\in [0,S] pt[0,S].为了支持 p t p_t pt附近的对齐点,我们设置了一个以 p t p_t pt为中心的高斯过程,具体的, a t a_t at的定义如下:
a t ( s ) = a l i g n ( h t , h ˉ s ) e x p ( − ( s − p t ) 2 2 σ 2 ) a_t(s)=align(h_t,\bar{h}_s)exp(-\frac{(s-p_t)^2}{2\sigma^2}) at(s)=align(ht,hˉs)exp(2σ2(spt)2)
其中 a l i g n ( ) align() align()函数也是见(1)式.且根据经验设置 σ = D 2 \sigma=\frac{D}{2} σ=2D.注意 p t p_t pt是一个实数; s s s是以 p t p_t pt为中心的窗口中的整数.Local-p与Local-m相似,只是动态的计算 p t p_t pt,并且使用截断的高斯分布来修改原始对齐权重(也就是上式中加入了后半部分的高斯过程改变原始对齐权重 a l i g n ( ) align() align()),使用 p t p_t pt导出 a t a_t at,我们可以计算 W p W_p Wp v p v_p vp的反向传播梯度.这个模型处处可微.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值