AI综述专栏 | “博彩众长,自成一家”的神经机器翻译
AI综述专栏简介
在科学研究中,从方法论上来讲,都应先见森林,再见树木。当前,人工智能科技迅猛发展,万木争荣,更应系统梳理脉络。为此,我们特别精选国内外优秀的综述论文,开辟“综述”专栏,敬请关注。
导读
Google AI 在ACL 2018发表了《The Best of Both Worlds-Combining Recent Advances in Neural Machine Translation》, 在这篇论文中,作者对最近翻译效果非常好的一系列神经机器翻译模型(包括基于RNN,基于CNN,基于self-attention的Transformer)进行了深入剖析,同时对这些神经机器翻译中的重要模块进行了融合,取得了优于之前这些模型的翻译性能,达到了state of the art的翻译效果。
作者简介
本次分享的论文的作者来自Google AI, 其中的Niki Parmar, Llion Jones也是之前神经翻译神作《attention is all you need》的作者,这次工作可以认为是上一篇神作中Transformer的延续性工作,并带来了更多的对其中各个子模块的作用和效果的详细剖析。
论文作者列表: Mia Xu Chen, Orhan Firat, Ankur Bapna, Melvin Johnson, Wolfgang Macherey, George Foster, Llion Jones Niki Parmar, Mike Schuster, Zhifeng Chen, Yonghui Wu, Macduff Hughes.
论文分享人:EriC. MA
熟悉《射雕英雄传》的朋友们,一定对郭靖非常熟悉,忠厚老实,亦武功高强,他的武功融合北丐洪七公的“降龙十八掌”、黄裳呕心沥血的“九阴真经”和老顽童周伯通的“左右互搏”三大盖世武功为一体,最终自成一家,独步武林。司马迁在《报任安书》中也曾谈到“究天人之际,通古今之变,成一家之言”,这些都彰显着博采众长,更易创造出新的高峰,而在这些的融合创作中,也可以发现,融合并不是将各个部分进行简单的“拿来主义”,而是巧妙领悟其中的精髓所在,并进行新颖的融合,得到一种“1 + 1 > 2”的功效。今天分享的Google AI发表在ACL 2018上的论文《The Best ofBoth Worlds-Combining Recent Advances in Neural Machine Translation》[1]也正有此意,这篇论文将最近state of the art的机器翻译的工作中的各个模块进行了细致的分析,并进行了巧妙的融合,在一些翻译任务得到了更好的结果,笔者选择这篇论文进行分享的主要思考有以下几点:
1. 这篇文章中介绍了一系列最近的机器翻译state of the art的工作,并进行了较为详细的分析、讨论,可以看作是最近机器翻译最近前沿的一个比较系统的总结;
2. 论文作者对各个机器翻译模型中的各个模块进行了分解分析,并进行了有机的融合,得到了一系列结果的提高,展现出好的模型融合在一起可以发挥出更好的翻译性能;
3. 在融合方面的工作,也可以给机器翻译的研究者们提供一个新的研究启示,以启示大家在新一轮的机器翻译的任务上的工作方向及创新思考。
这篇论文分析的三个神经机器翻译(Neural Machine Translation, NMT)模型也是当前NMT的三大范式:基于RNN的NMT(代表为Google-NMT,论文中称为GNMT)[2]、基于CNN的NMT(代表为Facebook的CNN-NMT,论文中称为ConvS2S)[3]、基于自注意力机制的NMT(代表为Google的Transformer,论文中称其详细模型为Trans. Big)[4]。
对于GNMT,其基础架构是利用RNN作为编码器和解码器,然后搭配attention机制,在编码器部分是利用多层的双向RNN进行堆叠搭配残差的跨层连接结构,以对源端语言信息进行更好的信息建模。论文作者复现了Tensorflow的NMT架构模型[5]。模型架构如图I所示。
图I GNMT模型架构图[2]
在ConvS2S中,使用多层的多卷积核的卷积层对编解码器进行建模。在卷积后,利用门控线性单元(Gated Linear Units, GLU)完成编码器的模型。解码器端是利用当前解码层的输出同编码器的最后一层进行点积运算得到attention值。另外在ConvS2S的模型中,因为卷积操作过程中得到的特征是不包含时序信息的,所以模型在实现的过程中需要加上位置信息来体现出序列建模的信息。在这部分,论文作者是复现了Facebook的工作[6]。模型架构如图II所示。
图II ConvS2S 模型架构图[3]
而在《Attention is all you need》这篇名字超霸气的Google发表的论文中提到的机器翻译中的变形金刚Transformer,是使用自注意力(self-attention)机制来对不同位置的信息进行综合考虑,以得到之前时刻乃至之前层的信息。编码器端的设计为一个自注意力层,一个前馈连接层;而解码器的设计有一个额外的跨注意力(cross - attention)层,该层在自注意力层(self-attention)和前馈层之间来得到编码器部分的一些信息。笔者认为Transformer中的内在精华在于:每一个子结构(或每一层)都按照一个严格的计算流程:normalize -> transform -> dropout -> residual-add,通过这些计算流程,可以较好的保证机器翻译中信息流的流动和信息的传递。另外,Transformer对序列位置信息的建模也存在一定欠缺,所以也需要在对源语言信息进行建模的时候,增加位置编码。论文作者复现了Transformer的工作[7]。模型架构如图III所示。
图III Transformer 模型架构图[4]
在论文作者的实验过程中,将上述的三个模型作为baseline进行比较,同时在GNMT的基础上进行了调整,提出了RNMT+的模型。在RNMT+编码器部分有6个双向的LSMT层(GNMT中是1个双向LSTM层+7个单向的LSTM层),每一个双向的LSTM层前向、后向运算后得到的向量进行向量拼接,然后送到接下来的编码器层中。解码器部分有8个单向的LSTM,同GNMT相似。残差连接模块也用在了其中。另外受到Transformer的启发,每一个LSTM细胞(Cell)后使用Layer Normalization。实验结果表明,利用层的正则化(Layer normalization)可以让训练的过程更加稳定。注意力机制(attention)计算的时候,是利用的multi-head attention,而不是GNMT中的single-head attention。在具体计算attention的时候,是同GNMT一样的,在最底(前)层的decoder和最高(后)的encoder层计算含有attention信息的语义向量。attention用到了所有的decoder的层中,同时也作为附加信息送到了softmax层。模型架构如图IV所示。
图IV RNMT+模型架构图[1]
在实验部分,论文作者在WMT(Workshop on Machine Translation)的两个数据集上进行了对比实验如表I所示[1]。其中Transformer模型,论文作者实现了两个版本,其主要的不同是在模型参数上的设计。Trans.Base模型是设置模型维度为512维,隐层维度为2018,同时搭配8个multi-head attention;而Trans.Big则是设置模型维度为1024,隐层维度为8192,并搭配16个multi-head attention。
通过论文作者实现的工作可以看到,对GNMT的编码器中的一些单向LSTM替换为双向LSTM,并引入multi-head attention及Layer Normalization等模块后,在WMT14的两个翻译任务上(En->Fr, En->De)较之前的state of the art的工作均得到了一定的效果提升,这也启示着论文作者,不同的翻译模型中的一些模块可以进行拼接组合,以得到更好的翻译结果。再这样的思考下,论文作者对各个翻译模型的分模块进行了细致的拆分的分析和思考。
在对机器翻译中的各个翻译模型的模块分析的这一部分工作中,论文作者是对NMT中对四个主要的子模块(Label Smoothing, Multi-head attention, Layer Normalization, Synchronous training)进行了分析。论文作者认为,这四个模块对机器翻译的任务是非常重要的,并且可以考虑在NMT系统中一直加以组合使用,换言之,在论文作者的观点中,这四个子模块是搭建NMT系统中比较基础的四个模块,有了这四个模块,基本便可以实现出最近一些较好的NMT的效果。
论文作者对子模块分析所采取的方式是通过不断的删减子模块,来探究两个问题:
1)分析对应子模块去掉后对模型的表现将产生什么影响?
2)去掉一个子模块以后,其余模块的组合能对模型最终产生什么作用(尤其是对训练的稳定性的作用)?
论文作者在进行了一系列的实验后,得到了如表II所示的结果,并得到了如下的一些结论:
Label Smoothing[8]: 去掉以后,RNMT+少了0.7个BLEU,Transformer Big少了0.2 BLEU;
Multi-head attention[4]: 去掉以后,RNMT+少了0.6 BLEU,Transformer Big少了0.9 BLEU;
Layer Normalization[4]: 这个模块在增强模型训练的稳定性的时候,具有重要的作用,尤其是在使用了multi-head attention的时候。去掉这个模块,模型很难收敛,容易训得发散;
Synchronous training[9]: 去掉以后,RNMT+的翻译性能减少了很多,而Transformer Big直接发散了,另外,在这个部分,论文作者发现Sync. Training 的使用是和学习率的设计密切相关的。
表II中“-”表示去掉该子模块后翻译模型的性能
“*”表示模型在训练过程中发散,未能得到合理的实验结果
在对这些子模块进行了细致的分析后,论文作者开始了进行“博采众长,自成一家”的工作,即对这些不同子模块,采取融合方式,以期望得到一个更好的神经机器翻译模型。
首先论文作者采取了一种非常粗暴的融合方式,因为考虑到编码器和解码器的工作特点虽有相似,但并不完全相同,例如编码器的主要功能是对源端语言进行建模,得到句子的语义向量的输出,其目标是得到一个较好的句子表示;而解码器的目标是根据拿到的编码器的句子表示,并以句子的表示为主体进行整个目标端句子的输出(实质上是一个条件生成的过程)。基于这样的考虑,论文作者将论文中最好的两个模型RNMT+同Trans.Big两个的编解码进行两两组合(一共有四组),实验结果如表III所示,通过实验结果可以发现,Transformer的编码器在编码的功能上,效果会好一些,而RNMT+的Decoder的效果会更好一些。笔者认为,这反映出Transformer中完全没有利用RNN这样的对序列进行建模的框架,其还是具有一定的可提升空间,尤其是在输出部分,利用RNN这样的序列建模的神经网络模型,可以帮助解码器进行更好的输出(因为在训练的过程中,利用RNN进行输出,其本质中就对语言模型进行了建模,所以在生成目标端句子的时候,可以有更好的信息提供)。
论文作者在这篇论文中使用的子模块融合操作主要是在Encoder部分进行融合工作(垂直结构的融合、水平结构的融合),如图V所示。
图V Encoder内部融合结构图[1]
Cascaded Encoder,垂直结构的融合,其输入信息首先进入RNMT+的六层双向LSTM网络,然后过一个Layer Norm,再过四层Transformer Encoder,最终整体作为编码器的输出,送到RNMT+的解码器里,得到整体的架构设计;
Multi-Column Encoder,水平结构的融合是把输入信息送入到多个编码器中,在不同的编码器中得到对应的Encoder输出后,将不同的Encoder的输出的语义向量进行Merge(在本篇论文中,就是直接进行的向量拼接),Decoder部分也是跟的一个RNMT+的架构。
最终的实验结果,发现Encoder中的Multi-Column Encode(水平融合)的结果,会比Trans.Big 和 RNMT+独立的结果都要好一些,也会比Cascaded Encoder(垂直融合)的结果的效果更好一些(在En->Fr上两种融合方式几乎一致,而在En->De上,MultiCol-水平结构效果会更好一些),如表IV所示。笔者认为,水平结构的融合,可以更好的保留两个编码器得到的对句子建模的信息,进行向量拼接后,通过权值矩阵的运算后,可以起到一种对不同的源语言句子的输入,对得到的语义向量的一个选择作用,有一种Encoder-boosting(笔者自己提出的这个说法)的味道。在Encoder中的融合,笔者认为可以在某种程度上认为Cascaded Encoder(垂直方向)的融合是一种特征层融合,而Multi-Column Encoder(水平方向)的融合是一种决策层融合,这样融合的目的是得到一个更有利于模型输出的句子表示的语义向量。
文后记:
总的来说,Google AI发表在ACL 2018上的这篇工作,其特色不像之前GNMT、ConvS2S、Transformer等模型提出来时对整个机器翻译范式的影响,但是这篇工作,对机器翻译最近的state of the art的一系列模型进行了较为详细的分析,同时也对其中的一些关键子模块进行了剖析和探究,并对不同的NMT的模型进行了模块的融合,得到了一定的提高。
此外还有几点思考以供大家一起讨论:
不同架构之间,如何将生成的一些特征表达进行更好的迁移或融合(本篇分享中的论文感觉还只是一个简单的子模块堆叠或向量拼接,具体的更好的融合方式还有待进一步研究);
每一个架构产生的典型性的问题是什么,或者说每一个NMT架构能适应的翻译任务、主要能解决的机器翻译中的问题是什么;
如何在Decoder部分引入一些融合方式,以使得翻译性能得到进一步的提升。
总而言之,神经机器翻译在最近几年得到了非常快速的发展,翻译性能也有了极大的提高,但是仍然存在着一系列的问题亟待解决,期望着产学研各个领域的研究者一起做出更精彩的工作。祝好!
主要参考文献:
[1] Chen M X, Firat O, Bapna A, et al. The Best of Both Worlds: Combining Recent Advances in Neural Machine Translation[J]. 2018.
[2] Yonghui Wu, Mike Schuster, Zhifeng Chen, Quoc V. Le, Mohammad Norouzi, Wolfgang Macherey, Maxim Krikun, Yuan Cao, Qin Gao, Klaus Macherey, Jeff Klingner, Apurva Shah, Melvin Johnson, Xiaobing Liu, Lukasz Kaiser, Stephan Gouws, Yoshikiyo Kato, Taku Kudo, Hideto Kazawa, Keith Stevens, George Kurian, Nishant Patil, Wei Wang, Cliff Young, Jason Smith, Jason Riesa, Alex Rudnick, Oriol Vinyals, Greg Corrado, Macduff Hughes, and Jeffrey Dean. 2016. Google’s neural machine translation system: Bridging the gap between human and machine translation. CoRR abs/1609.08144. http://arxiv.org/abs/1609.08144.
[3] Jonas Gehring, Michael Auli, David Grangier, Denis Yarats, and Yann N. Dauphin. 2017. Convolutional sequence to sequence learning. CoRR abs/1705.03122. http://arxiv.org/abs/1705.03122.
[4] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, and Illia Polosukhin. 2017. Attention is all you need. CoRR abs/1706.03762. http://arxiv.org/abs/1706.03762.
[5] https://github.com/tensorflow/nmt
[6] https://github.com/facebookresearch/fairseq-py
[7] https://github.com/tensorflow/tensor2tensor
[8] Christian Szegedy, Vincent Vanhoucke, Sergey Ioffe, Jonathon Shlens, and Zbigniew Wojna. 2015. Rethinking the inception architecture for computer vision. CoRR abs/1512.00567.
[9] Jianmin Chen, Rajat Monga, Samy Bengio, and Rafal Jo ́zefowicz. 2016. Revisiting distributed synchronous SGD. CoRR abs/1604.00981.
历史文章推荐:
AI综述专栏 | 脑启发的视觉计算2017年度关键进展回顾(附PPT)
AI综述专栏 | 11页长文综述国内近三年模式分类研究现状(完整版附PDF)
AI综述专栏 | 朱松纯教授浅谈人工智能:现状、任务、构架与统一(附PPT)
【AIDL专栏】罗杰波: Computer Vision ++: The Next Step Towards Big AI