Effective Approaches to Attention-based Neural Machine Translation

引言

Minh-Thang Luong等在2015年arXiv上的论文,原文地址:地址
这是继Bahdanau提出attention用于NLP的后续工作,作者提出了两种新的,相对于前面工作简单但有效的网络,一种称为global方法,实现上与Bahdanau使用的方式很相似,在每一次生成目标词时,都需要所有对源语句隐藏状态计算相似度,但相对来说更为直接简单;另一种称为local方法,不同的是在计算时只需要对源语句某个子集计算相似度,之后基于这个子集生成context vector。
此外,作者对比了不同的对齐函数在模型上所取得的效果,使用文中提出的模型,作者在英文翻译到德文的多项任务中取得了SOTA的结果。

模型

Neural Machine Translation

在这里插入图片描述
一般的神经网络翻译模型,都是直接对条件概率 p ( y ∣ x ) p(y|x) p(yx)建模,其中x为源语句,y为目标语句。具体到上述图中,蓝色部分的encoder,将目标语句编译成语义表示s,而红色部分的decoder接收源语句表示s,逐个字翻译目标语句,表达式如下:
在这里插入图片描述
在上述端到端的模型中,一般在神经单元后续加上一个softmax函数,生成一个字典大小的概率分布向量,决定当前生成的字,
在这里插入图片描述
如上所示,在整个计算过程中,源语句语义表示s都是不变的,如果通过一些方式使得s可以动态的变化,就是attention模型了。

Attention-based Models

Attention模型实际上讲的就是如何计算动态的源语句语义表示,这里称为c,对应的t时间步的语义表示则称为 c t c_t ct
对于global或者local方法来说,不同的只是通过当前时间t隐层输出 h t h_t ht与源语句隐层输出 h s h_s hs计算出context c t c_t ct的方式,其后续步骤都是一致的,如下:
在这里插入图片描述
在这里插入图片描述
上述公式中,将计算得出的context c t c_t ct与当前隐层输出 h t h_t ht拼接,通过简单的计算生成attention隐层输出,加上softmax得到最终结果,下面看一下如何计算context c t c_t ct

Global attentional model

在这里插入图片描述
对于context c t c_t ct的计算,都是通过当前隐层输出 h t h_t ht分别与源隐层输出 h s h_s hs进行某种相似度比对,得到一个可变长度的对齐向量 a t a_t at,最后将 a t a_t at与源隐层输出 h s h_s hs计算加权平均得到,如:
在这里插入图片描述
上述式子中的score函数,作者实验了以下几种方式,
在这里插入图片描述
还有一种在早期的实验中提出的计算 a t a_t at的方法,
在这里插入图片描述
可以看到,本文中所提出的方法与之前Bahdanau的工作中提出的计算路径有了一些不同,本文的计算路径如下:
在这里插入图片描述
而在Bahdanau的工作中,计算路径如下:
在这里插入图片描述在这里插入图片描述

Local attention model

在这里插入图片描述
对于globa方式,每次都必须与所有源隐层输出进行计算,在面对长序列时计算量会变得很大,所以作者又提出了local方式,对于每个时间步t都为其定义一个对应源句的位置 p t p_t pt,通过经验给定的窗口大小D确定观测范围 [ p t − D , p t + D ] [p_t - D, p_t + D] [ptD,pt+D],之后的计算方式与global一致,得到对应的加权平均值。
位置 p t p_t pt的定义,作者提出了以下两种方式,

Monotonic alignment (local-m)

作者认为在翻译任务中,原句与目标句在一定程度上是单调对应的,所以定义 p t = t p_t = t pt=t,其中t为时间步,由此计算context c t c_t ct

Predictive alignment (local-p)

与上述不同,针对每个目标输出,作者定义了一个方法预测其在原句的对齐位置,
在这里插入图片描述
其中,S为原语句长度,通过与sigmoid后的值计算得出目标位置,这里还有一个小trick,作者引入了一个服从于 N ( p t , D / 2 ) N(p_t, D/2) N(pt,D/2)的高斯分布来对齐权重,从直觉上考虑,距离目标位置越近的词理当起到更到的作用,
在这里插入图片描述

同时也可以看到,在没有引入高斯分布之前,位置 p t p_t pt并没有直接与网络相连,虽然计算 p t p_t pt的过程可以微分,但是作为窗口中心这个操作是不可微的,因此也需要某种额外的方式将其与网络关联起来。

Input-feeding Approach

在这里插入图片描述
在翻译任务中,需要注意哪些词语已经在前面被翻译过了,但是在上述模型中,计算attentino时并没有包含前述信息,因此作者额外增加了input feeding,将上一个时间步的attention隐层输出作为输入,用来计算下一时间步的目标词。

实验

English-German Results

在这里插入图片描述

German-English Results

在这里插入图片描述

分析

Attentional Architectures

在这里插入图片描述
从上述结果可以看到,在globa方法中,使用dot能得到最好的结果;而在local方法中,使用general得到最好的结果。
从所有方法来看,local方法的模型质量最高。

Alignment Quality

作者提出使用AER来评价对齐质量,
在这里插入图片描述

结论

attention的后续工作,扩展了attention的计算方式,同时local attention使用局部注意力的方式很有启发。

引用

1、Effective Approaches to Attention-based Neural Machine Translation
2、Neural Machine Translation by Jointly Learning to Align and Translate

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页