论文解读——神经网络翻译中的注意力机制 以及 global / local attention

时间:2024-04-12 16:58:09

论文 Effective Approaches to Attention-based Neural Machine Translation

这篇论文主要介绍了神经网络翻译中的attention机制的集中改进方式,包括global / local attention以及 input-feeding机制,最后通过实验进行比较

本篇博文还将拓展神经网络翻译、注意力机制、soft / hard attention等内容

目录

论文 Effective Approaches to Attention-based Neural Machine Translation

Motivation(神经网络翻译概念)

Related work(attention机制)

Global Attention(与普通attention的区别)

global attention 缺点

Local attention

local-m

local-p

Input-feeding

Conclusion

 soft / hard attention


Motivation(神经网络翻译概念)

NMT(神经网络翻译)是一个以条件概率p(y|x)建模的神经网络,将源语句x1,…,xn翻译到目标语句y1,…,ym

NMT的基本形式包括两个组成部分:

1.编码器——计算每个源语句的表示
2.解码器——每次生成一个目标单词

 论文解读——神经网络翻译中的注意力机制 以及 global / local attention

 Decoder 根据s和之前所预测的单词来预测下一个单词

NMT存在问题:

不过Encoder-Decoder有一个很大的问题就是encoder decoder之间的上下文向量的长度是固定的,这就可能导致网络无法解决长句子, 当句子的长度上升时, 传统的encoder-decoder模型表现急剧下降。

就好像一个翻译人员翻译一本书,他先通读全篇,当开始翻译时,前面的部分有的已经遗忘了。

 

Related work(attention机制)

论文解读——神经网络翻译中的注意力机制 以及 global / local attention

每一个时间步,attentionencoderhidden states以及decoder当前的hidden state作为输入,最终得到context vector,然后将cdecoder端的hidden state 相连结作为softmax的输入,获得最终结果

attention的计算:

论文解读——神经网络翻译中的注意力机制 以及 global / local attention

输入是encoder的所有hidden states Hdecoder在一个时间点上的hidden state h

第一步:旋转Hh做点乘得到一个分数。

第二步:对分数做softmax得到一个合为1的权重。

第三步:将H与第二步得到的权重做点乘得到一个大小为(hid dim, 1)context vector

理解:是一种对齐,根据encoderHdecoder位置 j h???? h_j  ,给予源句子每个单词位置不同的权重,着重考虑相关性大的位置,得到上下文向量????????c_i

 However, there has been little work exploring useful architectures for attention-based NMT.

于是作者对之前的attention机制做出改进,提出了两种简单有效的attention机制:一种始终关注所有源词的全局(global)方法和一种每次仅查看源词子集的局部(local)方法

 

Global Attention(与普通attention的区别)

论文解读——神经网络翻译中的注意力机制 以及 global / local attention

左图,在每个时间步t,模型通过target state  h????和 所有的source states h????,产生可变长度对齐权重向量????????,根据????????   ,全局上下文向量 ????????计算为所有源状态的加权平均值

Bahdanau et al. 2015中所介绍的attentionglobal attention机制确实很相似。在原理上是一样的,只不过在计算context vector c_t的流程中有些区别

区别一:

Bahdanau et al. (2015)所提出的原始attention 模型encoder端使用了双向RNN,而decoder使用了单层单向RNN。并且encoder端的 h????h_s 是前向和反向hidden state的拼接,decoder端的h????h_t是单层单向RNNhidden states

但是global attention 的encoderdecoder都是多层单向RNNencoder端的h????h_sdecoder端的 h????h_t使用的是LSTM最顶层的hidden states

论文解读——神经网络翻译中的注意力机制 以及 global / local attention

区别二:

attention 机制主要是要计算encoder端的context vector,然后将cdecoder端的target hidden state 相连结(concatenation)作为softmax的输入,获得最终结果

只不过在计算context vector 时,两者稍微有点区别,global attention 在计算相似度score时使用的是 decoderh???? h_t  ,而Bahdanau et al. (2015)所提出的原始attention 模型使用的是 h????−1h_(t-1)即前一个隐藏状态

论文解读——神经网络翻译中的注意力机制 以及 global / local attention

论文解读——神经网络翻译中的注意力机制 以及 global / local attention

区别三:

Bahdanau et al. (2015)所提出的原始attention 模型只有concatenation(如右),而global attention中试验了其他的alignment function,并且在随后实验中发现其他的函数有更好的效果

论文解读——神经网络翻译中的注意力机制 以及 global / local attention

论文解读——神经网络翻译中的注意力机制 以及 global / local attention

global attention 缺点

对于每一个target word,都需要关注源句子的所有单词,代价高,使翻译长语句或文章不切实际,所以提出local attention,使得每个target单词只focus on源句子中一小部分位置

 

Local attention

在时刻ttarget word生成一个对齐位置????????p_t,上下文向量????????c_t通过窗口????????????,????????+????[p_t-D,p_t+D]的源句子hidden states加权平均得到,其中D由经验选择。

论文解读——神经网络翻译中的注意力机制 以及 global / local attention

与global不同,权重????????a_t维度为固定维度的,即2D+1,由目标的state h????h_t和窗口内的源state h????h ̅_s决定。Local attention有两个变种,Monotonic alignment (local-m)(单调) Predictive alignment (local-p)(预测)

local-m

我们简单地设置 ????????=????p_t=t,假设源和目标大体上是单调对齐的,这个时候alignment vector ????????a_t的计算和global attention 一致

local-p

不认为源序列和目标序列大致单调对齐,而是预测一个对齐位置

论文解读——神经网络翻译中的注意力机制 以及 global / local attention

 Wv是用于学习预测位置的模型参数,S为源句子长度,????????[0,????]p_t∈[0,S] ,为了使对齐点靠近???????? p_t  ,我们放置一个以????????p_t为中心的高斯分布,所以权重????????a_t为:

论文解读——神经网络翻译中的注意力机制 以及 global / local attention

Align函数与之前相同,标准差按照经验设置为 D/2,这里????????p_t应为实数,而s为以????????p_t为中心的窗口内的整数。

 

Input-feeding

在标准的机器翻译中,常常维护一个coverage集,来跟踪看哪些源词已经被翻译了。所以在attention NMT中,对齐应该考虑过去的对齐。为了解决这个问题,提出了input-feeding方法,每一步attention向量在下一个时间步与输入连接。该方法有两种效果

使模型更完整的关注之前的选择
我们创建了一个横向纵向都很深的网络

 

 论文解读——神经网络翻译中的注意力机制 以及 global / local attention

Conclusion

在本文中,提出了两简单有效的注意力机制,关注全部源位置的global attention 和每个时间点只关注源句子子集的 local attention。

测试发现local attention相比于使用了dropout等技术的非注意力机制,高出了5.0BLEU,在英语到德语的翻译中,我们的ensemble模型达到了state-of-the-art的成果。

发现注意力机制模型在很多情况下优于非注意力机制模型

P.S.

Global Attention 和 Local Attention 各有优劣,实际中 Global 的用的更多一点,因为:

encoder 不长时,local计算量并没有减少
位置向量 ????????p_t 的预测并不非常准确,直接影响到 Local Attention 的准确率

 

 soft / hard attention

作者的local和global attention思想实质上是从 soft 和 hard attention中得来,这部分下个博文再介绍