Ofir Press等作者刘晓坤 蒋思源编译

你可能不再需要Attention:这是一个贼简单的神经机器翻译架构

自从注意力机制与编码器解码器架构在 NMT 模型中占统治地位后,就很少有研究者质疑它们的威力。而最近华盛顿大学的研究者移除了这两种结构,并采用一种类似语言模型的极简 NMT 架构。因为崇尚 LSTM 无所不能且模型结构贼简单,他们的模型甚至能做到即时翻译。

自从编码器解码器架构崛起以来,主流的神经机器翻译(NMT)模型都使用这种架构,因为它允许原文序列长度和译文序列长度不一样。而自 Bahdanau 等研究者在 14 年提出基于注意力的 NMT 模型后,基于编码器解码器架构的 NMT 模型差不多都会加上注意力机制。尤其是在 2017 年谷歌发表论文「Attention is all your need」后,注意力机制更是坐上了宝座,这篇论文相当于进一步形式化表达了注意力机制,并提出了只使用 Multi-head Attention 的翻译模型 Transformer。

随后 Transformer 在神经机器翻译领域一发不可收拾,目前大多数主流的机器翻译系统都使用这种完全基于注意力机制的架构。此外,Transformer 在很多 NLP 任务上都有非常好的表现,例如 BERT 预训练模型、计算句子间的相似性以及问答系统等。总的而言,Transformer 可以视为一种「全连接」网络,它会关注句子间所有词的相互关系,这样相当于无视了词的空间距离,因此能建模词与词之间的长期依赖关系。

但是最近 Ofir Press 等研究者表示也许我们可以不要注意力机制,也不要编码器解码器架构,神经机器翻译的效果甚至会更好。他们在论文中总结到几乎所有流行的 NMT 模型都有下面两个属性:

  • 解码器在原文的隐藏向量上执行一个注意力机制

  • 编码器和解码器是两种不同的模块,且在解码器开始运算前编码器需要先编码原文语句的信息。

在这篇文章中,我们介绍了 Ofir Press 等研究者的探索,他们尝试在不使用上面两种机制的情况下测试 NMT 模型的性能到底有多好。它们先从 Bahdanau 等人在 2014 年的研究出发移除注意力机制,并且将编码器和解码器统一为一个「贼简单」的完整模型,它的轻量程度甚至和一般的语言模型差不多。

简化模型的后果就是翻译的速度「异常」迅速,基本上只要在读取第一个词后就能马上提供对应的译文,并且在读取完最后一个原文词后就能完成整句的翻译。

具体而言,这种即时翻译(eager translation)模型使用恒定的记忆量,因为在每一个时间步上,它只会使用前一个时间步而不是前面所有时间步的隐藏状态。他们的方法不是将整个原文句子塞入单个隐藏向量,而是将原文句子的前缀向量和前一时间步的翻译结果填充到一个动态的记忆向量,并即时预测对应的译文(目标 Token)。这一过程会重复进行,且每次会读取一个原文词。

如下展示了即时翻译模型的主要结构,因为它将编码器解码器架构统一为类似语言模型的结构,所以为了处理原文序列和译文序列序列的长度不相等情况,他们会采用 ε 作为一种占位符补全译文长度,并在全部翻译完后删除所有ε。但是如果原文序列不够长而译文序列很长呢?那么就需要给原文末尾也要加上ε了。

图 1:即时翻译模型将句子「The white dog」翻译为西班牙语。原文(译文)token 用蓝色(红色)字体表示。ε是 padding token,在后处理中要移除。上图展示了两层 LSTM 的即时翻译模型。

在实践中,即时翻译所要求的大多数修正都会影响到预处理过程,所以总而言之它需要大量的数据预处理过程,包括词对齐等。在 Ofir Press 等人的试验中,他们证明了这种极简的即时翻译模型与基于注意力的机器翻译模型(Bahdanau et al., 2014)效果相当,它在长序列翻译任务上比基于注意力的要更优秀,但在短序列上效果更差。

论文:You May Not Need Attention

  • 论文地址:https://arxiv.org/pdf/1810.13409.pdf

  • 项目地址:https://github.com/ofirpress/YouMayNotNeedAttention

摘要:在神经机器翻译即 NMT 中,如果没有注意力机制和分离的编码器-解码器结构,我们能得到多好的结果?为了回答这个问题,我们引入了一个循环神经翻译模型,它没有使用注意力机制,并且也没有分离的编码器-解码器结构。我们的即时翻译(eager translation)模型具有低延迟,能在读取第一个源 token 的时候写出目标 token,并在解码过程中只需要常量的内存。该模型的性能和 Bahdanau 等人在 2014 年提出的基于注意力机制的模型相当,并在长句子翻译中表现得更好。

即时翻译模型的训练需要先对训练集进行预处理。首先我们需要推断源/目标句对之间的对应关系,假定一个目标词对应(至多)一个源词,正如 Brown et al. (1993) 所做的。然后我们要让源/目标句 (s_i , t_j ) 对进行位移处理,使得对于所有 (s_i , t_j ), i ≤ j。

为此,我们首先使用现成的对齐模型 (fast align; Dyer et al., 2013),然后插入最少数量的 ε token 到目标句中,如图 2 所示。这些 ε token 在训练和推断中会用到,但在生成翻译的后处理步骤中会移除。当句子对长度不同时,也会插入ε token 使它们变得相同。

图 2:源(蓝)和目标(红)序列在预处理前(a)和后(b)的对齐状态。

实验结果

在英到法(EN→FR)和英到德(EN→DE)翻译任务上,我们都是在 WMT 2014 数据集上训练的,使用 newstest2013 作为验证数据集,并在 newstest2014 上测试。

我们使用 4 个有 1000 个单元的 LSTM 层作为我们的即时模型,并且嵌入向量的大小是 500。模型在训练中对 LSTM 和嵌入使用 dropout 正则化,使用 Merity et al. (2017) 的方法。

作为参考模型,我们使用 Bahdanau et al. (2014) 实现的 OpenNMT (Klein et al., 2017)。我们使用的模型的编码器具有两个 LSTM 层,解码器也是,都有 1000 个单元,嵌入大小为 500。这意味着参考模型和即时模型的参数数量相近。

即时模型的实验结果如表 2 所示。在法到英和英到法翻译任务中,该模型的 BLEU 分数至多比参考模型少 0.8%。在更难的德到英和英到德翻译任务中,该模型的 BLEU 分数至多比参考模型少 4.8%。

表 2:在测试数据集上的参考模型和即时模型的 BLEU 分数(初始的ε padding token 依此为从 0 到 5)。

表 3 中,当句子长度足够大时,在法到英和德到英翻译任务中,我们的模型击败了参考模型,表明即时模型在较短序列上表现较差,在较长序列上表现较好,而长序列翻译已知对于基于注意力机制的模型是较困难的(Koehn and Knowles, 2017)。表 5 展示了全部 4 个任务中长序列翻译结果的更多细节。

表 3:在法到英和德到英翻译任务测试中,参考模型和即时模型的 BLEU 分数随句子长度的变化。

表 5:在所有 4 个任务上,BLEU 分数随句子长度的变化。

讨论

在 Reddit 上,网友们对该模型提出了质疑:认为即时模型的预处理过程实际上是作为注意力机制的替代品,而没有使模型更简单,并且注意力机制具有更加优雅和普适的优势。「你可能不需要注意力,如果你有词对齐……」

对此,作者的回答是:注意力模型需要在内存中存储所有源句 token 的编码,而即时模型不需要。在内存不足的条件下很有用,这也是这类模型相对于注意力模型的优势之一。

当前在 Reddit 页面上已经有了数十条评论,更多讨论可以参见原网页。

Reddit 地址:https://www.reddit.com/r/MachineLearning/comments/9t88jj/r_you_may_not_need_attention_summary_pytorch_code/

理论Transformer注意力机制机器翻译神经机器翻译
31
相关数据
基于Transformer 的双向编码器表征技术

BERT是谷歌发布的基于双向 Transformer的大规模预训练语言模型,该预训练模型能高效抽取文本信息并应用于各种NLP任务,并刷新了 11 项 NLP 任务的当前最优性能记录。BERT的全称是基于Transformer的双向编码器表征,其中“双向”表示模型在处理某一个词时,它能同时利用前面的词和后面的词两部分信息。

神经机器翻译技术

2013 年,Nal Kalchbrenner 和 Phil Blunsom 提出了一种用于机器翻译的新型端到端编码器-解码器结构 [4]。该模型可以使用卷积神经网络(CNN)将给定的一段源文本编码成一个连续的向量,然后再使用循环神经网络(RNN)作为解码器将该状态向量转换成目标语言。他们的研究成果可以说是神经机器翻译(NMT)的诞生;神经机器翻译是一种使用深度学习神经网络获取自然语言之间的映射关系的方法。NMT 的非线性映射不同于线性的 SMT 模型,而且是使用了连接编码器和解码器的状态向量来描述语义的等价关系。此外,RNN 应该还能得到无限长句子背后的信息,从而解决所谓的「长距离重新排序(long distance reordering)」问题。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

正则化技术

当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合。进行最优模型的选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。

问答系统技术

问答系统是未来自然语言处理的明日之星。问答系统外部的行为上来看,其与目前主流资讯检索技术有两点不同:首先是查询方式为完整而口语化的问句,再来则是其回传的为高精准度网页结果或明确的答案字串。以Ask Jeeves为例,使用者不需要思考该使用什么样的问法才能够得到理想的答案,只需要用口语化的方式直接提问如“请问谁是美国总统?”即可。而系统在了解使用者问句后,会非常清楚地回答“奥巴马是美国总统”。面对这种系统,使用者不需要费心去一一检视搜索引擎回传的网页,对于资讯检索的效率与资讯的普及都有很大帮助。从系统内部来看,问答系统使用了大量有别于传统资讯检索系统自然语言处理技术,如自然语言剖析(Natural Language Parsing)、问题分类(Question Classification)、专名辨识(Named Entity Recognition)等等。少数系统甚至会使用复杂的逻辑推理机制,来区隔出需要推理机制才能够区隔出来的答案。在系统所使用的资料上,除了传统资讯检索会使用到的资料外(如字典),问答系统还会使用本体论等语义资料,或者利用网页来增加资料的丰富性。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

推荐文章
机器之心・联合创始人
all you need is attention... you may not need attention.... ╮(︶﹏︶)╭