炼数成金 门户 商业智能 自然语言处理 查看内容

HFL技术分享 #3 | 神经机器翻译

2019-5-31 10:19| 发布者: 炼数成金_小数| 查看: 12150| 评论: 0|原作者: Yifa|来自: 哈工大讯飞联合实验室

摘要: 机器翻译是自然语言处理领域最经典,最重要的任务之一,不仅具有重要的科学研究价值,同时又具有重要的实用价值。随着经济全球化及互联网的飞速发展,机器翻译技术在促进政治、经济、文化交流等方面起到越来越重要的 ...

网络 工具 模型 基础 神经网络

1  引言     
机器翻译是自然语言处理领域最经典,最重要的任务之一,不仅具有重要的科学研究价值,同时又具有重要的实用价值。随着经济全球化及互联网的飞速发展,机器翻译技术在促进政治、经济、文化交流等方面起到越来越重要的作用。

随着人工智能技术的不断发展,从传统的机器学习方法到如今广泛应用的深度学习技术,机器翻译得到了长足的进步,其中神经机器翻译(Neural Machine Translation, NMT)技术自2013年被提出以来,短短几年发展非常迅速,不但在学术界成为研究主流,同时在产业界开始普遍应用。
本文针对神经机器翻译,从最基础的序列到序列模型(Seq2Seq)开始,介绍神经机器翻译领域里一些重要且有趣的前沿技术成果。

2  Seq2Seq模型
Seq2Seq模型是在2014年,是由Google Brain团队和Yoshua Bengio两个团队各自独立的提出来,基本结构为Encoder-Decoder,它将机器翻译过程视为一个编码解码的过程,首先使用一个Encoder将源语言序列编码成一个向量,再由解码器根据这个向量解码得到目标语言的序列。

图1:Seq2Seq模型结构

图1是按照时间维度展开后的模型,左侧为一个循环神经网络RNN,接收的输入序列为“A B C <EOS>”, 每一个时间点读取一个词,并在读取到<EOS>时终止输入,这一过程被称为编码(Encoder)过程,RNN最后输出的向量即作为输入序列的语义表示向量。右侧的循环神经网络接受输入序列的语义表示向量,每个时间点会给出相应的输出语义向量,在这个过程中每个时刻输出的词与前一时刻的输出存在一个概率关系。这一过程也被称为解码(Decoder)过程,最终会得到一个映射序列“W X Y Z <EOS>”。

图2:编码后向量在二维空间上的PCA投影

从编码解码的过程可以看出,若想得到不错的翻译结果,首先Encoder必须能够很好地捕捉到源语言序列的语义信息。图2给出了基于RNN的Encoder对不同句子输出的向量在二维空间的展示,可以发现语义相近的句子在二维平面上投影的距离也更接近。

其次,Decoder必须是一个高性能的语言模型,这样在逐字解码出目标语言序列时才能保证句子的通顺和流畅。

3  Attention机制
Attention机制的提出
在Seq2Seq模型中,Encoder和Decoder之间传递的信息只有一个固定维度的向量,这就要求这个向量能够包含源语言句子的全部语义信息,显然这是很难达到的,因此这就成为神经机器翻译模型的性能瓶颈。
Bahdanau等人在2014年首次提出Attention机制,其基本思想来源于机器翻译中的对齐,即翻译过程中互译词之间会存在一个对应关系。引入Attention机制的神经网络模型结构如图3所示,他们首先使用了双向RNN来解决Encoder对于较长句子的语义信息捕捉不全的问题,先从头到尾,正序地读取源语言序列,再倒序地扫描一次源语言序列,从而更全面获取句子信息。

图3:Attention模型的结构

引入Attention机制模型在解码每个词时,会利用Decoder当前的隐层向量和Encoder所有时刻的隐层向量计算一个对齐概率:

再利用这个对齐概率对Encoder所有时刻的输出做一个加权求和,可得到一个经过注意力调整后的Encoder输出向量,将这个向量加入到Decoder的输入中辅助解码。

将Attention机制引入到神经机器翻译模型中后,可以有效地缓解Seq2Seq模型中将源语言压缩成固定维度向量带来的语义捕捉不全的问题。

Global & Local Attention
上面提到的Attention方法会让Decoder当前的隐层向量和Encoder所有时刻的隐层向量都计算一个对齐概率,这种方法又叫做Global Attention。在输出句子较长时,这中方法可能会使得计算量很大,于是就有了折中的方案,Luong等人在2015年提出了Local Attention,这个方法认为Decoder解码出的词只和源语言句子中的部分词存在对齐概率,具体过程为首先生成对齐位置pi,再取窗口[pi-D, pi+D],只计算该窗口内词的对齐概率,这样就极大地减少了计算量。其中如何确定窗口也同样有两种方法:

4  字符级别翻译模型
之前描述的模型都是基于单词级别,需要的是每个单词的向量化表示,为了降低网络训练和翻译过程的代价,大部分模型都是使用有限且不大的词表,并且用unk表示词典外的词。如果考虑到基于字符,就可以实现Open Vocabulary,大大降低词表大小,甚至可以让模型预测出词典中未知的词。
MR.Costa-Jussà, JAR Fonollosa于2015年提出一个基于字符的神经机器翻译模型,如图4所示,主要思想是使用CNN对字符进行编码,合成词向量后作为输入。

图4:利用CNN对字符向量进行编码,合成词向量

这个字符级别的模型的Encoder端采用字符集编码,而Decoder端仍然是词级别预测,他们认为源语言端没有unk词会极大地减少目标语言的unk词数量,并且在解码出unk词时使用Attention机制对齐到的概率较大的词进行替换。

Luong于2016年也提出一个混合字符级别的模型,如图5所示,在MR.Costa-Jussà的模型基础上进行改进,主要做法为只有Encoder中遇到了unk,才进行字符级别的合成,而当Decoder中生成了unk,那就根据上下文向量生成一个字符序列(恢复出这个词),而模型的损失函数也同时包含了词级别和字符级别的损失。

图5:混合字符级别翻译模型
 
5  基于CNN的翻译模型
迄今为止,绝大部分的神经机器翻译系统都是基于循环神经网络RNN,而Facebook于2017年发表了一篇论文,构建了一个完全基于CNN的翻译模型。CNN作为一个在图像领域深受欢迎的神经网络模型,近年来在自然语言处理领域也开始发挥作用,在某些任务上甚至强于RNN。它较大的优势之一是能够并行处理数据,计算更加高效,并且作为一个层级结构,与循环网络建模的链结构相比,层次结构提供了一种较短的路径来捕获词之间远程的依赖关系,因此在某些任务上可以更好地捕捉更复杂的关系。文章的核心思想如下:

Position Embeddings(位置编码)
Facebook在基本的词向量输入的基础上,提出一个位置编码的概念,将输入词的位置进行一个编码p=(p1,…,pm) ,和词向量w=(w1,…,wm )拼接得到e=(w1+p1,…,wm+pm),共同作为输出。CNN对于输入句子会捕捉一个窗口的词共现关系,加入位置信息后可以强化句子的词序关系,弥补CNN对于词序信息不敏感的问题,并对由Decoder产生的输出进行类似的处理来获得 g=(g1,…,gm)。


图6:Convolutional Block Structure

Multi-step Attention(多步Attention机制)
其原理与传统的Attention相似,Attention权重由Decoder的hi,预测目标,以及 Encoder 的所有输出共同决定,对Encoder的输出进行加权,得到表示输入句子信息的向量ci。

最终ci和hi相加组成新的hi。同样的,在每一个卷积层都会进行Attention的操作,得到的结果输入到下一层卷积层,最终得到模型结构如图7所示。

图7:基于CNN的翻译模型

6  Attention is All You Need
 如同Facebook抛弃RNN,转而使用CNN完成机器翻译的任务一样,Google于2017年发表的论文《Attention is All You Need》也另辟蹊径,其模型中仅保留了Attention的结构。文章认为RNN需要顺序读取,一步步地递归才能逐步获取全局信息,而CNN的思路则是每次获取局部信息,通过不停的重叠局部窗口来增大感知区域,而用Attention可以一步到位,一次性获取全部的信息。文章的核心思想如下:

Scaled Dot-Product Attention层
Google在这篇论文中总结出一个Attention的定义是:对于给定的Query和Key-Value对,描述为Query跟Key可以进行模糊匹配,计算得到匹配权重,输出结果是各个Key对应的Value的加权平均。而模型的主要单元为Scaled Dot-Product Attention层,如图8所示。

图8:Scaled Dot-Product Attention层


Multi-Head Attention
之后Google对Attention层进行了进一步完善,就是对Q,K,V乘上一个参数矩阵进行映射,然后再做 Attention,把这个过程重复多次之后把结果拼接起来得到最终结果。这个思路总结一下就是“用不同的参数多做几次同样的事情”,如图9所示。

图9:Multi-Head Attention


前文所提到的Facebook的模型把位置编码和词向量拼接起来作为一个新向量,而Google的模型则是把位置向量定义为跟词向量一样大小,然后两者加起来作为新的输入向量。

模型结构
文章中模型结构如图10所示,具体包括如下设置:
Encoder有N=6个相同的层,每层有两个支层:Multi-Head Attention层和Feed Forward层;
Feed Forward层是一个简单的带relu激活函数的双层MLP:

每个支层的输出加入残差连接和layer nomalization;
Decoder每层多一个Masked Multi-Head Attention,确保位置i的预测只能依赖于它之前的字符;
Self-Attention:
Encoder中Q, K, V均来自于前一层输出,Decoder的第一个Masked Multi-Head Attention的Q, K, V均来自于output。
Decoder的Multi-Head Attention的Q来自之前上一层Decoder,而K, V则来源于Encoder。

图10:Attention翻译模型结构

7  无监督机器翻译
目前为止介绍的方法都是有监督学习,而缺乏大规模平行语料库对于有监督的机器翻译模型是个很头疼的问题,特别是涉及小语种的翻译任务。于是无监督的方式训练神经机器翻译系统是目前一个非常有前景的研究方向。
Artetxe等人在2017年提出一个(近乎)无监督的机器翻译系统,他的模型具有针对两种语言有两个不同的Decoder,并且共享一个Encoder,如图11所示,其核心思想如下:

图11:无监督的机器翻译模型

去噪denoising
在输入句子中引入随机噪声,具体做法为随机互换相邻词语来改变输入句子的词序,对于包含 N 个元素的序列,进行 N/2 次此类随机互换操作。目的是为了阻止系统过分依赖输入序列的词序。

回译back-translation
语言L1的句子S1使用Encoder编码,然后用L2-Decoder 解码出S2,S2获得伪平行句对(S1, S2),该过程不更新模型参数;使用共享Encoder 编码S2,用 L1-Decoder 解码出S1;较大化P(S1 | S2)来训练Shared Encoder和L1-Decoder。训练时给定两种语言L1和L2,每次迭代将对L1 L2取batch进行去噪,然后进行两次回传,来训练模型参数。

预训练跨语料词向量
该模型中的核心部分是一个用近乎无监督方法预先训练出的跨语料的词向量,主要思想是将两种语言的词向量空间根据对齐信息训练出一个线性变换:

其中𝑋和𝑍是词向量矩阵, 𝐷是对齐矩阵, 𝑊为正交阵,这样就把两种语料的词向量对齐到同一个语义空间了。

参考文献
•Kyunghyun Cho, Bart van Merrienboer, Caglar Gulcehre, Fethi Bougares, Holger Schwenk, and Yoshua Bengio. Learning phrase representations using rnn encoder-decoder for statistical machine translation. CoRR, abs/1406.1078, 2014.
•Ilya Sutskever, Oriol Vinyals, and Quoc VV Le. Sequence to sequence learning with neural networks. In Advances in Neural Information Processing Systems, pages 3104–3112, 2014.
•Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. Neural machine translation by jointly learning to align and translate. CoRR, abs/1409.0473, 2014.
•Minh-Thang Luong, Hieu Pham, and Christopher D Manning. Effective approaches to attention-based neural machine translation. arXiv preprint arXiv:1508.04025, 2015.
•MR Costa-Jussà, JAR Fonollosa. Character-based Neural Machine Translation. arXiv:1603.00810, 2015.
•Minh-Thang Luong, Christopher D. Manning. Achieving Open Vocabulary Neural Machine Translation with Hybrid Word-Character Models. arXiv:1604.00788, 2016.
•Jonas Gehring, Michael Auli, David Grangier, Denis Yarats, and Yann N. Dauphin. Convolutional sequence to sequence learning. arXiv preprint arXiv:1705.03122v2, 2017.
•A Vaswani, N Shazeer, N Parmar, J Uszkoreit, L Jones. Attention is All You Need. arXiv:1706.03762, 2017.
•Mikel Artetxe, Gorka Labaka, Eneko Agirre, Kyunghyun Cho. Unsupervised Neural Machine Translation. arXiv:1710.11041, 2017.
•Mikel Artetxe, Gorka Labaka, and Eneko Agirre. Learning bilingual word embeddings with (almost) no bilingual data. In Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pp. 451–462, Vancouver, Canada, July 2017. Association for Computational Linguistics.

声明:本文版权归原作者所有,文章收集于网络,为传播信息而发,如有侵权,请联系小编及时处理,谢谢!

欢迎加入本站公开兴趣群
商业智能与数据分析群
兴趣范围包括:各种让数据产生价值的办法,实际应用案例分享与讨论,分析工具,ETL工具,数据仓库,数据挖掘工具,报表系统等全方位知识
QQ群:81035754

鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

热门频道

  • 大数据
  • 商业智能
  • 量化投资
  • 科学探索
  • 创业

即将开课

 

GMT+8, 2019-6-18 22:37 , Processed in 0.115857 second(s), 25 queries .