基金项目:国家重点研发计划重点专项(2016YFE0132100); 国家自然科学基金(61673289,61273319)
通信作者:xiangyuduan@suda.edu.cn
(School of Computer Science and Technology,Soochow University,Suzhou 215000,China)
DOI: 10.6043/j.issn.0438-0479.201811024
现有的神经机器翻译模型的注意力机制仅考虑目标端对应源端的关联信息,未考虑源端单词之间的关联信息.通过在源端进行关联性建模,融入依存关联指导,以此加强源端单词之间的关联性,提高机器翻译的性能.首先构建源端隐藏层之间的关联性,其次构建依存关联损失函数,从而将依存关联指导融入基准的神经机器翻译系统.利用循环神经网络基准模型和Transformer基准模型分别在大规模的中-英测试数据集上进行实验,结果表明,相较于基准神经机器翻译系统,融入依存关联指导可以有效提升机器翻译质量.
The attention mechanism commonly used by the existing neural machine translation only considers the correlation information between the target and the source,and does not take source correlation information among words into account.This paper enhances the correlation information among source words and improves the performance of machine translation by building correlation models at the source and incorporating dependency guidance.We constructed the correlation information between the source hidden layers,and built dependent loss function into neural machine translation.We experimented with large-scale Chinese-to-English data set on RNN system and Transformer model.Experiment results show that dependency guidance for neural machine translation can effectively improve the translation quality.
机器翻译主要研究如何利用计算机将一种语言自动翻译为另一种语言.近年来,基于序列到序列的机器翻译方法[1]显著提高了机器翻译的质量,神经机器翻译(neural machine translation,NMT)[2-4]得到了广泛的关注和应用.同时,随着国内外文化的交流、经济贸易的增加,普适性的机器翻译系统的需求也愈来愈大.谷歌、百度、微软等公司也在不断发展和完善机器翻译系统,逐步将其从传统的统计机器翻译(statistic machine translation,SMT)系统[5]发展到NMT系统.
NMT模型使用的是编码器-解码器(encoder-decoder)框架,随着Bahdanau等[2]提出在NMT系统中融入注意力机制,使NMT的效果得到进一步提升,国内外的科研人员也以此为基础逐步完善了机器翻译的模型.
2017年,Wu等[6]针对目标端序列融合的依存信息,在训练过程中通过读取目标端语料的依存信息,生成由入栈(shift)、左归约(left-reduce)和右归约(right-reduce)组成的动作序列,在测试时根据模型生成的动作预测当前时刻目标端单词.同年,Wu等[7]继续对依存信息进行研究,通过对源端依存树的不同种遍历方式得到源端序列,并将该序列信息融入基准NMT系统中以获得更好的上下文向量表示,以此促进NMT性能的提高.同年,Hashimoto等[8]在源端建立多层编码器,通过计算源端单词之间依存关系的强弱,来捕捉源端长距单词之间的依存关系,以提高机器翻译的性能.
2017年,Chen等[9]在全局注意力的基础上,提出融入语法距离约束的局部注意力机制,使得当前目标端单词更关注于源端语法相关的的源端单词.
现有NMT模型注意力机制考虑目标端对应源端的关联信息,未对源端关联性进行建模.本文中提出对源端关联性建模,并融入依存关联指导,具体表现为:首先读取源端语句的依存信息,获取与当前时刻单词存在直接依存关系的词,对当前时刻的源端单词与和其有直接依存关系的词建立注意力机制,强化两者之间的权重关系,使源端单词与和其有直接依存关系的单词更相关.通过融入依存关联来指导机器翻译模型,构建更好的源端内在关联表示可以充分利用源端单词之间的关联性,加强单词之间的联系,提高机器翻译的质量.
本研究选用的基准NMT模型为循环神经网络(recurrent neural network,RNN)模型和Transformer模型.
现有常用基准RNN模型是Bahdanau等[2]提出的融入注意力机制的RNN模型.通过给定源端语句X={x1,x2,…,xn},对目标端语句Y={y1,y2,…,ym}的条件概率P(Y|X)进行建模:
P(Y|X)=∏mj=1p(yj|y<j,X).
在编码器和解码器中均使用RNN来对序列进行建模,实际运用中通常使用长短时记忆(long short term memory,LSTM)[10]单元或门循环单元(gated recurrent unit,GRU)[11].在源端编码器将源端语句X通过一个双向的RNN编码成隐藏层向量H={h1,h2,…,hn},解码器则按照概率分布预测目标端单词,目标端第j个单词的概率计算如下:
P(yj|y<j,X)=g(sj,yj-1,cj),
其中,g是用来计算输出概率的非线性函数,sj是目标端j时刻隐藏层向量,cj是源端的上下文向量,由注意力机制所得,具体包含以下公式:
cj=∑ni=1αjihi,
αji=(exp(eji))/(∑nk=1exp(ejk)),
eji=Tαtanh(Wαsj-1+Uαhi),
其中,Tα、Wα、Uα是参数矩阵,αji为目标端单词对应源端单词的关联性.通过这样的注意力机制,可以有效地对源端和目标端的相关性进行建模.
2017年,Vaswani等[12]提出了Transformer模型,完全使用注意力机制对源端的目标端序列建模.其在源端Transformer使用自注意力机制,在目标端使用自注意力机制和解码器-编码器注意力机制,较少的训练时间以及更好的翻译效果使得Transformer成为了目前一个常用的模型.
本研究选用的Transformer模型主要包含由多头注意力子层和前馈子层组成的注意力层; 为了实现神经元的深度网络和归一化,每个子层之后添加了层泛化式[13],并且在子层之间使用残差连接[14]; 为了将时间顺序信息结合到模型中,将位置嵌入P={p1,p2,…,pn}拼接到学习的词嵌入(word embedding)E={e1,e2,…,en}中.
在多头注意力子层中,多头注意力机制会获得h个不同的表征表示(query, key, value),通过将这些表征拼接起来可以帮助模型学习不同头对应的不同关系.此外,在解码端的自注意力机制中添加了掩码以防止参与后续位置计算.
多头注意力机制的下一个组成部分是前馈网络,这个网络由两个线性变换组成,变换中间使用Relu作为激活函数:
FFN(xi)=max(0,xiW1+b1)W2+b2,
其中,xi=[ei,pi],W1、W2是参数矩阵,b1、b2是偏置参数.
本文中使用从Stanford parser(https:∥nlp.stanford.edu/software/lex-parser.html)解析出的依存树获取句子的依存信息.依存树以树状的形式存储了单词与单词之间的关系.以语句“居民 的 生活 水平 日益 提高.”为例,通过Stanford parser得到的依存树如图1所示.
图1中,用ROOT指向整句话的根节点,词与词之间用箭头由父节点指向子节点.由图1可以看出,“水平”与“居民”、“生活”及“提高”直接相关.
对于所提出的模型,首先构建源端隐藏层之间的关联性,其次构建依存关联损失函数.源端隐藏层之间的关联性如以下公式所示:
α'ji=(exp(e'ji))/(∑nk=1exp(e'jk)),
e'ji='αtanh(W'αhj+U'ahi),
其中,'α、W'α、U'α是参数矩阵,α'ji是源端第i个单词对第j个单词的关联权重.
图2是源端依存关联性指导示例.
图2中,右边大的虚线框为源端自注意力机制,线条加粗部分表示与当前时刻单词具有直接依存关联的信息,未加粗部分表示与当前时刻单词不具有直
接依存关联的信息.在例句“居民 的 生活 水平 日益 提高.”中,当计算到第4个单词“水平”时,由图1的依存关系可以得到“居民”、“生活”和“提高”与其直接关联,因此,加强这部分自注意力机制的权重.再通过依存树解析结果以及定义的依存关联损失函数,优化当前单词与其直接依存关联单词关联性权重.
在得到与当前时刻单词存在直接依存关联单词的权重分布后,通过以下公式得到依存关联性损失Δdep:
Δdep=-∑nj=1log(a'ji+…+a'ji'),
其中,{i,…,i'}为与源端第j个单词存在依存关系的单词索引.
最后,将依存信息损失与原系统框架的损失-log P(Y|X)相加作为新框架的整体损失:
loss=-log P(Y|X)+Δdep.
本文中将依存信息融入到基准的RNN模型和Transformer(https:∥github.com/tensorflow/tensor2tensor)模型中,其中基准的RNN模型采用基于Dynet(https:∥github.com/clab/dynet)的翻译系统Lamtram(https:∥github.com/neubig/lamtram),Transformer模型由多层网络组成,在实验中仅对源端第1层增加依存关联指导,同时平均了多头的指导损失.
实验的训练语料使用的是125万句的语言数据联盟(LDC)中提供的英双语平行语料,测试集和开发集均采用美国国家标准与技术研究院2002年发布的数据,其中NIST02、NIST03、NIST04、NIST05和NIST08作为测试集, NIST06作为开发集.语料中挑选前3万个高频词,大约覆盖了97.7%的中文词汇和99.3%的英文词汇,其他单词映射到特殊标识符<UNK>.对Lamtram模型,本文中使用Adam[15]作为优化器,Dropout[16]设置为0.5,其余参数设置为默认值; 对于Transformer,使用超参数transformer_base_single_gpu,实验中使用两个GPU训练相关模型,其他参数均使用默认配置.源端语句的依存信息由斯坦福大学的开源代码Stanford parser解析获得.评测脚本使用的是multi-BLEU.perl,英文单词不区分大小写.
对于所提出的方法,在两个模型上分别进行了不同的实验,具体表现为:在计算依存关联性损失时包含当前时刻单词的权重,即包含自关联性指导(dep1); 不包含当前时刻单词的权重,即不包含自关联性指导(dep2),具体实验结果如表1和2所示.
根据表1的实验结果,Lamtram基准系统在NIST02~08数据集上的平均BLEU值为34.576%,当源端融入包含当前时刻单词权重的依存关联性指导后,BLEU值为34.714%,提升不明显,约0.14个百分点; 当源端融入不包含当前时刻单词权重的依存关联性指导后,BLEU值为35.084%,提升约0.51个百分点; 在得到表1的训练结果后,本研究在Transformer基准系统上只对源端融入不包含当前时刻单词权重的依存关联指导,具体结果如表2所示,Transformer的基准在NIST数据集上的平均BLEU为42.087%,融入依存关联指导后为42.646%,提升约0.56个百分点.其中,NIST08测试集的BLEU值有所下降,这是因为训练语料是来自于新闻领域的数据集,NIST08测试集包含网络数据,存在噪音,而NIST02、NIST03、NIST04、NIST05测试集均为新闻领域数据,因此实验结果存在波动.
综合表1和2的实验结果,可以得到以下结论:
1)在不同的机器翻译系统中融入源端依存关联指导可以有效改善机器翻译译文结果.
2)对应于不包含自关联性指导的实验效果优于包含自关联性指导的实验效果.
在模型训练过程中,Lamtram模型设置运行20轮,Transformer运行25万个minibatch,基准系统和融入依存信息的系统运行时间都在1 d左右,运行速度基本持平.
根据实验结果,本文中分别对源端语句长度在区间(0,10]、(10,20]、(20,30]、(30,40]、(40,50]和(50,+)的对应译文测试BLEU值,对应结果如表3和图3和4所示.
由表中数据可以得到以下结论:
1)所提出的方法在源端短句上的翻译效果提升最明显.Lamtram+dep1方法在区间(0,10]上提升约2.4个百分点,Lamtram+dep2方法在区间(0,10]和(20,30]上分别提升约1.2和1.1个百分点,Transformer+dep2方法在区间(10,20]上提升约1个百分点.
2)Lamtram系统上dep2总体性能优于dep1,但当源端句长超过50时,两个方法的BLEU值均下降了约0.8个百分点.
3)Transformer系统上dep2对应源端不同长度的译文BLEU值均有提升.
在现有的NMT模型的基础上提出了融入依存信息的NMT方法,通过对源端自注意力机制结合依存关联指导,以此指导NMT.结合实验结果,本文中提出的方法可以有效提高机器翻译的质量.
在目前的方法中,本研究仅考虑源端语句之间直接存在的依存信息,不考虑存在间接依存关联的其他节点,并且不区分当前词是与其有依存关系的子节点
图4 Transformer系统不同源端长度对应的BLEU值
Fig.4 BLEU values values correspond to the different source lengths on Transformer
还是父节点.因此,在未来的实验中,将考虑加入这些信息,使得翻译模型融合更丰富的依存信息,以进一步提升机器翻译的效果.