个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈
在“机器翻译是如何炼成的(上)”的文章中,我们回顾了机器翻译的发展史。在本篇文章中,我们将分享机器翻译系统的理论算法和技术实践,讲解神经机器翻译具体是如何炼成的。读完本文,您将了解:
-
神经机器翻译模型如何进化并发展成令NLP研究者万众瞩目的Transformer模型;
-
基于Transformer模型,我们如何打造工业级的神经机器翻译系统。
2013年~2014年不温不火的自然语言处理(NLP)领域发生了翻天覆地的变化,因为谷歌大脑的Mikolov等人提出了大规模的词嵌入技术word2vec,RNN、CNN等深度网络也开始应用于NLP的各项任务,全世界NLP研究者欢欣鼓舞、跃跃欲试,准备告别令人煎熬的平淡期,开启一个属于NLP的新时代。
在这两年机器翻译领域同样发生了“The Big Bang”。2013年牛津大学Nal Kalchbrenner和Phil Blunsom提出端到端神经机器翻译(Encoder-Decoder模型),2014年谷歌公司的Ilya Sutskerver等人将LSTM引入到Encoder-Decoder模型中。这两件事标志着以神经网络作为基础的机器翻译,开始全面超越此前以统计模型为基础的统计机器翻译(SMT),并快速成为在线翻译系统的主流标配。2016年谷歌部署神经机器翻译系统(GNMT)之后,当时网上有一句广为流传的话:“作为一个翻译,看到这个新闻的时候,我理解了18世纪纺织工人看到蒸汽机时的忧虑与恐惧。”
2015年注意力机制和基于记忆的神经网络缓解了Encoder-Decoder模型的信息表示瓶颈,是神经网络机器翻译优于经典的基于短语的机器翻译的关键。2017年谷歌Ashish Vaswani等人参考注意力机制提出了基于自注意力机制的Transformer模型,Transformer家族至今依然在NLP的各项任务保持最佳效果。总结近十年NMT的发展主要历经三个阶段:一般的编码器-解码器模型(Encoder-Decoder)、注意力机制模型、Transformer模型。
下文将逐步深入解析这三个阶段的NMT,文中少量的数学公式和概念定义可能充满“机械感”,如果您在阅读过程感到十分费劲,那烦请您直接阅读第4部分,了解百分点如何打造自己的工业级NMT系统。
01 新的曙光:Encoder-Decoder模型
上文已经提到在2013年提出的这种端到端的机器翻译模型。一个自然语言的句子可被视作一个时间序列数据,类似LSTM、GRU等循环神经网络比较适于处理有时间顺序的序列数据。如果假设把源语言和目标语言都视作一个独立的时间序列数据,那么机器翻译就是一个序列生成任务,如何实现一个序列生成任务呢?一般以循环神经网络为基础的编码器-解码器模型框架(亦称Sequence to Sequence,简称Seq2Seq)来做序列生成,Seq2Seq模型包括两个子模型:一个编码器和一个解码器,编码器、解码器是各自独立的循环神经网络,该模型可将给定的一个源语言句子,首先使用一个编码器将其映射为一个连续、稠密的向量,然后再使用一个解码器将该向量转化为一个目标语言句子。
编码器Encoder对输入的源语言句子进行编码,通过非线性变换转化为中间语义表示C:

在第i时刻解码器Decoder根据句子编码器输出的中间语义表示C和之前已经生成的历史信息y₁,y₂,……,yᵢ-₁来生成下一个目标语言的单词:


每个yᵢ都依次这么产生,即seq2seq模型就是根据输入源语言句子生成了目标语言句子的翻译模型。源语言与目标语言的句子虽然语言、语序不一样,但具有相同的语义,Encoder在将源语言句子浓缩成一个嵌入空间的向量C后,Decoder能利用隐含在该向量中的语义信息来重新生成具有相同语义的目标语言句子。总而言之,Seq2Seq神经翻译模型可模拟人类做翻译的两个主要过程:
-
编码器Encoder解译来源文字的文意;
-
解码器Decoder重新编译该文意至目标语言。
02 突破飞跃:注意力机制模型
2.1. Seq2Seq模型的局限性
Seq2Seq模型的一个重要假设是编码器可把输入句子的语义全都压缩成一个固定维度的语义向量,解码器利用该向量的信息就能重新生成具有相同意义但不同语言的句子。由于随着输入句子长度的增加编解码器的性能急剧下降,以一个固定维度中间语义向量作为编码器输出会丢失很多细节信息,因此循环神经网络难以处理输入的长句子,一般的Seq2Seq模型存在信息表示的瓶颈。
一般的Seq2Seq模型把源语句跟目标语句分开进行处理,不能直接地建模源语句跟目标语句之间的关系。那么如何解决这种局限性呢?2015年Bahdanau等人发表论文首次把注意机制应用到联合翻译和对齐单词中,解决了Seq2Seq的瓶颈问题。注意力机制可计算目标词与每个源语词之间的关系,从而直接建模源语句与目标语句之间的关系。注意力机制又是什么神器,可让NMT一战成名决胜机器翻译竞赛呢?
2.2. 注意力机制的一般原理

通俗地解释,在数据库里一般用主键Key唯一地标识某一条数据记录Value,访问某一条数据记录的时候可查询语句Query搜索与查询条件匹配的主键Key并取出其中的数据Value。注意力机制类似该思路,是一种软寻址的概念:假设数据按照<Key, Value>存储,计算所有的主键Key与某一个查询条件Query的匹配程度,作为权重值再分别与各条数据Value做加权和作为查询的结果,该结果即注意力。因此,注意力机制的一般原理(参考上图):首先,将源语句中的构成元素想象成是由一系列的<Key, Value>数据对构成,目标语句由一序列元素Query构成;然后给定目标语句中的某个元素Query,通过计算Query和各个Key的相似性或者相关性,得到每个Key对应Value的权重系数;最后,可对V
本文深入探讨了机器翻译的发展,从Encoder-Decoder模型到引入注意力机制,再到Transformer模型的革新。重点介绍了Transformer的自注意力机制、多头注意力和位置编码等关键概念,揭示了它在解决长距离依赖问题和提高并行计算效率上的优势。此外,还讨论了在工业级多语言神经翻译系统实践中面临的挑战与解决方案。
最低0.47元/天 解锁文章
3450

被折叠的 条评论
为什么被折叠?



