Effective Approaches to Attention-based Neural Machine Translation 学习笔记

Effective Approaches to Attention-based Neural Machine Translation 学习笔记

本文是阅读 Effective Approaches to Attention-based Neural Machine Translation 之后的学习总结,如有不妥之处,烦请各位斧正。

0. 概述

这篇论文重在研究基于attention的神经机器翻译模型,测试了两种简单有效的attention机制:
1. 全局方法:总是关注所有的源单词。比前人的方法结构上更简单。
2. 局部方法:每次只关注源单词的一个子集。比全局方法或者soft attention花销要更小,同时与hard attention不同的是,更容易实现和训练。另外,可以在这些基于attention的模型测试不同的对齐函数。
论文中除了在WMT翻译任务中测试英德互译之外,还根据学习能力,处理长句子的能力,attention机制的选择,对齐质量和翻译的输出来对模型进行评估。

1. 神经机器翻译(NMT)

神经机器翻译系统是定向地将翻译源句,就是将x1,……,xn翻译成目标句子,y1,……,ym的条件概率建模的神经网络。NMT的基本形式包含两个组成成分:
1. 编码器:计算得到每个源句的表示。
2. 解码器:每次形成一个目标单词
因此将条件概率分解为:
该图片由原文截取
在解码器的分解建模中,常见的选择就是用RNN。可以参数化每个单词yj解码的概率:
该图片由原文截取
g是输出词汇大小向量的转换函数。这里,hj是RNN的隐藏单元,是这样计算的:
该图片由原文截取
f是用之前的隐藏层状态计算当前的隐藏状态,可以是一个vanilla RNN单元,GRU,或者一个LSTM单元。来源表示s只用了一次,用来初始化编码器隐藏层状态。另一方面,这里的s事实上意味着源隐藏状态的集合,它考虑到了翻译进程中的所有环节。这里涉及到接下来要说的attention机制。
这篇论文中的NMT系统中使用了stacking LSTM结构,如下图所示:
该图片由原文截取
训练的目标函数是:
该图片由原文截取

2. 基于Attention的模型

基于Attention的模型分为两类,全局和局部。分类是根据attention是放在所有来源的位置还是只放在几个来源的位置。结构如下图所示:
该图片由原文截取
该图片由原文截取
这两种模型在解码阶段的每一个时刻t里,开始在stacking LSTM的顶层都是将隐藏状态ht作为输入。目的就是为了得到上下文向量ct,它有相关的来源信息,可以帮助预测当前的目标单词yt。然而这些模型的不同在于上下文向量ct是怎样得到的,它们之后的步骤相同。
有了目标隐藏状态ht和来源的上下文向量ct,使用一个简单的连接层来结合来自两个向量的信息,从而得出一个attention的隐藏状态:
该图片由原文截取
attention向量ht~是用softmax层得到的,从而得到预测的分布:
该图片由原文截取

2.1 全局attention

全局attention在获取上下文向量ct时考虑所有的编码器的隐藏状态。在这个模型中,通过当前的目标隐藏状态ht和每个源隐藏状态hs~可以得到一个可变长度的对齐向量at,它的长度等于来源的时间长度:
该图片由原文截取
score指的是基于内容的函数,有三种不同的选择:
该图片由原文截取
另外,早期建立基于attention的模型的尝试中,使用了一个基于局部的方法,这个方法的对齐得分只是从目标隐藏状态ht计算出来的:
该图片由原文截取
得到的对齐向量作为权重,上下文向量ct是用所有来源的隐藏层的加权平均计算的。
这篇论文对最开始的模型做了简化和泛化。首先,编码器和解码器中在LSTM的顶层只是简单地使用了隐藏层。另一方面,使用前向和反向的来源隐藏层,它们在双向的编码器和无栈的单向的解码器的目标隐藏状态。第二,计算路径更简单;ht→at→ct→ht~,然后就做出了预测。另一方面,在任何时刻t,从之前的隐藏层状态开始建立模型 ht-1→at→ct→ht,预测前通过深输出和最大输出层。

2.2 局部Attention

全局attention有一个缺点,它需要为每个目标单词考虑所有来源的所有单词,这是成本非常高的,而且可以想到它翻译更长的序列不太实际,例如,段落或者文章。为了解决这个问题,这篇论文还提出了一个局部attention机制,这是选择每个目标单词只关注源位置的一个小集合。
这个模型是从soft和hard attention模型之间的权衡中得到的灵感。soft attention指的是全局attention方法,它们的权重是在源图片的所有块中柔和地放置。另一方面,hard attention,每次选择图片的一块来处理。推理的成本更少,除此之外,hard attention是没有什么不同的,并且还需要更复杂的技术,例如方差递减或者强化学习来训练。
局部attention机制选择性地关注一个小的上下文窗口。这个方法可以避免soft attention的高昂计算成本,与此同时,与hard attention相比训练更简单。具体来说,这个模型首先在t时刻为每个目标单词形成一个对齐位置pt。上下文向量ct是通过[pt-D, pt+D]窗口中的源隐藏状态集合的加权平均计算得到的。D是靠经验选择的。与全局方法不同,局部对齐向量at现在是固定维度的。有两种不同的模型。
Monotonic alignmentlocal-m):简单地设置为pt=t,假设来源与目的的序列粗略看作为单调对齐。
Predictive alignmentlocal-p):不再假定单调,这个模型这样预测对齐位置:
该图片由原文截取
Wp和vp是模型的参数,学习用来预测位置。S是来源的句子长度。作为sigmoid的结果,pt∈[0, S]。为了提高pt附近的对齐的得分,以pt为中心放置一个高斯分布。所以此处的对齐权重就这么定义:
该图片由原文截取
对齐函数与前文相同,标准差经验上讲设为σ=D/2。注意,pt是一个真实的数字;s是一个以pt为中心的窗口中的整数。
这里对所有的目标位置使用的是同样的“zoom”,这样大大简化了公式,还能取得很好的效果。

2.3 Input-feeding 方法

此处提出的全局和局部的方法中,注意力的决定是独立执行的,这是次优的。然而,在标准的机器翻译中,一个全面的集合经常在翻译过程中经常是保持下去的,以此来追踪哪些来源的单词被翻译了。同样地,在attention机制的NMT中,制定对齐的决定时候应该把过去额度对齐信息考虑进去。为了解决这个问题,input-feeding方法应运而生,其中attention向量ht~是与下一次的输入连接的,如下图:
该图片由原文截取
这么连接的影响有两方面:希望建立一个能够完全考虑到之前的对齐选择;创建一个非常深的跨越水平和竖直的的网络。
这个方法与前人相比更普遍,也适用于通常的堆栈循环结构,包括没有attention机制的模型。这篇论文使用它也是因为它能够为模型提供灵活性来决定看起来合适的attention约束。

3. 实验训练

这篇论文在WMT的英德互译任务中做了测试,用了newstest2013做数据集来筛选超参数。
实验训练过程和结果不再赘述,有兴趣的同学可以查看原论文。

4. 结论

这篇论文为神经机器翻译提出了两个简单有效的attention机制:全局方法总是查看所有的源位置,局部方法每次只是关注源位置的一个子集。经过实验对比,基于attention的NMT模型要优于其他没有attention的模型,例如在翻译名字和处理长句子的情况。

扫描二维码关注公众号,回复: 2870603 查看本文章

猜你喜欢

转载自blog.csdn.net/Doron15/article/details/81805347
今日推荐