《Neural Machine Translation by Jointly Learning to Align and Translate》
基于联合学习对齐和翻译的神经机器翻译
作者:Dzmitry Ba hdanau, KyungHyun Cho, Yoshua Bengio
单位:不来梅雅克布大学,蒙特利尔大学
发表会议及时间:ICLR 2015
1 摘要
1.1 神经机器翻译的任务定义;
神经机器翻译的目标是要构建一个单一的神经网络,可以最大化的调整这个神经网络的翻译性能。
1.2 编码器-解码器模型**(RNNenc)的缺陷**;
传统架构中使用编码器-解码器,编码器把源句子编码成定长向量,解码器用这个定长向量生成翻译结果。
缺陷:编码器把输入的向量都编码到一个固定的向量中,对长文本编码时可能会损失一些关键的信息。
1.3 本文提出(RNNsearch);
一种能够自动搜索原句中与预测目标词相关的神经机器翻译模型。(也就是注意力机制)
改进的方法:引入注意力机制,对输入文本的不同片段,根据其重要程度,分配不同的权重。
1.4 所提出的模型的效果;
在英语和法语数据集上的表现,能够达到当前领域最先进的研究水平。
2 RNNenc
机器翻译,是利用计算机将一种自然语言(源语言)转换为另一种自然语言(目标语言)的过程。解决神经机器翻译中最核心的思想就是端到端。该方法也是这篇论文的基线,也就是编码器-解码器框架的思想。
编码器的部分利用了循环神经网络压缩表示的性质,首先源语言句子 X = [ x 1 , x 2 , . . . , x Tx ] 中的每一个词表示成一个词向量。 得到词向量表示后,采用循环神经网络压缩源语言序列。
假如在t时刻,有输入向量xt和前一时刻的隐藏层状态 ht−1,那么t时刻的中间状态 ht,可以按照公式 ht=f(xt,ht−1)进行计算,f表示隐藏层的非线性激活函数,其中最初的隐藏层状态 h0是一个全零的向量,最后得到的 ht也就是整个源语言句子的压缩表示,将这些隐藏层状态的组合用c来表示,其中 q是一个非线性函数。
解码器部分同样使用循环神经网络实现,通过编码器得到的源语言句子的压缩表示c,以及生成的前一个单词 yt−1, 前一个隐藏层状态st−1,根据公式 St=f(c,yt−1,st−1)计算出隐藏层状态St,再通过第三个公式计算出第t个目标段单词的概率分布,可以简单地从概率分布中采样出当前时刻下生成的目标语言单词 yt。接着计算下一个隐藏层状态 St+1,然后计算 yt+1的概率分布,采样 yt+1,也就是下一个单词,直到得到了句子结束标记符,解码就算完成。
RNNenc模型存在的问题:
必须记住整个句子序列的语义信息;
把无论长度多长的句子都编码成固定向量,限制了翻译过程中长句子的表示;
与人类翻译时的习惯不同,人们不会在生成目标语言翻译时关注源语言句子的每一个单词 ,而是将重点单词翻译出来,进行润色和调整。
3 RNNsearch
该模型的编码部分使用了Bi-RNN作为编码器,对于词xi,它的隐层状态hj通过连接两个RNN的结果得到,也就是说hj压缩了前向和后向的表示,并且更加关注于词xi周围的词,使得模型对输入序列有更好的表达。
在新的模型架构的解码器里,当前的输出词yi仍然取决于当前隐状态si及上一个输出词yi-1,但是源语言端上下文向量的表示c不再是那个固定纬度大小的向量,而是新的向量ci,也就是说 针对每一个目标词yi,都有一个ci与之对应。
ci的引入和计算就是整个注意力机制的核心,使输入中不同时序的信息得到了不同权重的关注。而其本质也很简单,就是编码器中全部隐状态h_1, h_2…h_T的一个加权和。
注意力权重参数的计算方法:
eij是一个对齐模型,用来评估当前预测词,与输入词的每一个词的相关度,对齐模型的评价得分依赖于上一个输出序列隐状态si-1 和输入序列隐状态hj。
4 实验和结果
数据集:WMT’14数据集
实验任务:从英语(源语言)到法语(目标语言)的翻译
实验模型:RNNsearch和RNNenc
对比试验:分别取最大长度为30和最大长度为50的句子长度进行实验
评估标准:BLEU
模型效果:
5 总结
RNN中,信息的传递是存在偏置的,一般来说,越近的词,影响越大,权重的分配机制严格来说是不公平的。而注意力机制使得每个上下文,也就是之前生成的单词信息,都有均等的机会来参与生成当前的词,机会由其相关度决定。
论文的主要创新点:
提出一种新的神经机器翻译方法
1.没有将输入编码到固定维度向量
2.采用注意力思想
思考:
1.注意力机制能够提升多少性能?
2.有其他注意力分数计算方法吗?
答:在Effective Approaches to Attention-based Neural Machine Translation(Luong, 2015)中,Luong等人证明使用不同注意力机制计算会导致不同的结果,提出了其他的注意力分数计算方法。