10. 基于循环神经网络的模型
神经机器翻译(Neural Machine Translation)是机器翻译的前沿方法。近几年,随
着深度学习技术的发展和在各领域中的深入应用,基于端到端表示学习的方法正在
改变着我们处理自然语言的方式,神经机器翻译在这种趋势下应运而生。一方面,神
经机器翻译仍然延续着统计建模和基于数据驱动的思想,因此在基本问题的定义上
与前人的研究是一致的;另一方面,神经机器翻译脱离了统计机器翻译中对隐含翻
译结构的假设,同时使用分布式表示来对文字序列进行建模,这使得它可以从一个
全新的视角看待翻译问题。现在,神经机器翻译已经成为了机器翻译研究及应用的
热点,译文质量得到了巨大的提升。
本章将介绍神经机器翻译中的一种基础模型
——
基于循环神经网络的模型。该
模型是神经机器翻译中最早被成功应用的模型之一。基于这个模型框架,研究人员
进行了大量的探索和改进工作,包括使用 LSTM 等循环单元结构、引入注意力机制
等。这些内容都会在本章进行讨论。
344 Chapter 10. 基于循环神经网络的模型 肖桐 朱靖波
10.1 神经机器翻译的发展简史
纵观机器翻译的发展历程,神经机器翻译诞生较晚。无论是早期的基于规则的
方法,还是逐渐发展起来的基于实例的方法,再或是上世纪末的统计方法,每次机
器翻译框架级的创新都需要很长时间的酝酿,而技术走向成熟甚至需要更长的时间。
但是,神经机器翻译的出现和后来的发展速度多少有些“出人意料”。神经机器翻译
的概念出现在 2013-2014 年间,当时机器翻译领域的主流方法仍然是统计机器翻译。
虽然那个时期深度学习已经在图像、语音等领域取得令人瞩目的效果,但是对于自
然语言处理来说深度学习仍然不是主流。
不过,研究人员也意识到了神经机器翻译在表示学习等方面的优势。这一时期,
很多研究团队对包括机器翻译在内的序列到序列问题进行了广泛而深入的研究,注
意力机制等新的方法不断被推出。这使得神经机器翻译系统在翻译品质上逐渐体现
出优势,甚至超越了当时的统计机器翻译系统。正当大家在讨论神经机器翻译是否
能取代统计机器翻译成为下一代机器翻译范式的时候,一些互联网企业推出了以神
经机器翻译技术为内核的在线机器翻译服务,在很多场景下的翻译品质显著超越了
当时最好的统计机器翻译系统。这也引发了学术界和产业界对神经机器翻译的讨论。
随着关注度的不断升高,神经机器翻译的研究吸引了更多的科研机构和企业的投入,
神经机器翻译系统的翻译品质得到进一步提升。
在短短 5-6 年间,神经机器翻译从一个新生的概念已经成长为机器翻译领域的
最前沿技术之一,在各种机器翻译评测和应用中呈全面替代统计机器翻译之势。比
如,从近几年 WMT、CCMT 等评测的结果来看,神经机器翻译已经处于绝对的统治
地位,在不同语种和领域的翻译任务中,成为各参赛系统的标配。此外,从 ACL 等
自然语言处理顶级会议的发表论文看,神经机器翻译在论文数量上呈明显的增长趋
势,这也体现了学术界对该方法的热情。至今,国内外的很多机构都推出了自己研
发的神经机器翻译系统,整个研究和产业生态欣欣向荣。图10.1展示了包含神经机器
翻译在内的机器翻译发展简史。
图 10.1 机器翻译发展简史
神经机器翻译的迅速崛起确实让所有研究人员都有些措手不及,甚至有一种一
10.1 神经机器翻译的发展简史 345
觉醒来天翻地覆的感觉。也有研究人员评价,神经机器翻译的出现给整个机器翻译
领域带来了前所未有的发展机遇。不过,客观地看,机器翻译达到今天这样的状态
也是一种历史必然,其中有几方面原因:
• 自上世纪末所发展起来的基于数据驱动的方法为神经机器翻译提供了很好的
基础。本质上,神经机器翻译仍然是一种基于统计建模的数据驱动的方法,因
此无论是对问题的基本建模方式,还是训练统计模型所使用到的带标注数据,
都可以复用机器翻译领域以前的研究成果。特别是机器翻译长期的发展已经积
累了大量的双语、单语数据,这些数据在统计机器翻译时代就发挥了很大作用。
随着时间的推移,数据规模和质量又得到进一步提升,包括一些评测基准、任
务设置都已经非常完备,研究人员可以直接在数据条件全部具备的情况下开展
神经机器翻译的研究工作,这些都节省了大量的时间成本。从这个角度说,神
经机器翻译是站在巨人的肩膀上才发展起来的。
• 深度学习经过长时间的酝酿终于爆发,为机器翻译等自然语言处理任务提供了
新的思路和技术手段。神经机器翻译的不断壮大伴随着深度学习技术的发展。
在深度学习的视角下,语言文字可以被表示成抽象的实数向量,这种文字的表
示结果可以被自动学习,为机器翻译建模提供了更大的灵活性。相对于神经机
器翻译,深度学习的发展更加曲折。虽然深度学习经过了漫长的起伏过程,但
是神经机器翻译恰好出现在深度学习逐渐走向成熟的阶段。反过来说,受到深
度学习及相关技术空前发展的影响,自然语言处理的范式也发生了变化,神经
机器翻译的出现只是这种趋势下的一种必然。
• 此外,计算机算力的提升也为神经机器翻译提供了很好的支撑。与很多神经网
络方法一样,神经机器翻译也依赖大量基于浮点数的矩阵运算。甚至在本世纪
初,大规模的矩阵运算仍然依赖非常昂贵的 CPU 集群系统,但是随着 GPU 等
相关技术的发展,在相对低成本的设备上已经可以完成非常复杂的浮点并行运
算。这使得包括神经机器翻译在内的很多基于深度学习的系统可以进行大规模
实验,随着实验周期的缩短,相关研究和系统的迭代周期也大大缩短。实际上,
计算机硬件运算能力一直是稳定提升的,神经机器翻译只是受益于运算能力的
阶段性突破。
• 还有,翻译需求的不断增加也为机器翻译技术提供了新的机会。在近几年,无
论是翻译品质,还是翻译语种数量,甚至不同的翻译场景,都对机器翻译有了
更高的要求。人们迫切需要一种品质更高、翻译效果稳定的机器翻译方法,神
经机器翻译恰好满足了这些要求。当然,应用端需求的增加也会反推机器翻译
技术的发展,二者相互促进。
至今,神经机器翻译已经成为带有时代特征的标志性方法。当然,机器翻译的
发展也远没有达到终点。下面将介绍神经机器翻译的起源和优势,以便读者在正式
了解神经机器翻译的技术方法前对其现状有一个充分的认识。
346 Chapter 10. 基于循环神经网络的模型 肖桐 朱靖波
10.1.1 神经机器翻译的起源
从广义上讲,神经机器翻译是一种基于人工神经网络的方法,它把翻译过程描述
为可以用人工神经网络表示的函数,所有的训练和推断都在这些函数上进行。由于
神经机器翻译中的神经网络可以用连续可微函数表示,因此这类方法也可以用基于
梯度的方法进行优化,相关技术非常成熟。更为重要的是,在神经网络的设计中,研
究人员引入了分布式表示的概念,这也是近些年自然语言处理领域的重要成果之一。
传统统计机器翻译仍然把词序列看作离散空间里的由多个特征函数描述的点,类似
于 n-gram 语言模型,这类模型对数据稀疏问题非常敏感。此外,人工设计特征也在
一定程度上限制了模型对问题的表示能力。神经机器翻译把文字序列表示为实数向
量,一方面避免了特征工程繁重的工作,另一方面使得系统可以对文字序列的“表
示”进行学习。可以说,神经机器翻译的成功很大程度上源自“表示学习”这种自然
语言处理的新范式的出现。在表示学习的基础上,注意力机制、深度神经网络等技
术都被应用于神经机器翻译,使其得以进一步发展。
虽然神经机器翻译中大量地使用了人工神经网络方法,但是它并不是最早在机
器翻译中使用人工神经网络的框架。实际上,人工神经网络在机器翻译中应用的历
史要远早于现在的神经机器翻译。在统计机器翻译时代,也有很多研究人员利用人
工神经网络进行机器翻译系统模块的构建
[451, 452]
,比如,研究人员成功地在统计机器
翻译系统中使用了基于神经网络的联合表示模型,取得了很好的效果
[451]
。
不过,以上这些工作大多都是在系统的局部模块中使用人工神经网络和深度学
习方法。与之不同的是,神经机器翻译是用人工神经网络完成整个翻译过程的建模,
这样做的一个好处是,整个系统可以进行端到端学习,无需引入对任何翻译的隐含
结构假设。这种利用端到端学习对机器翻译进行神经网络建模的方式也就成为了现
在大家所熟知的神经机器翻译。这里简单列出部分代表性的工作:
• 早在 2013 年,Nal Kalchbrenner 和 Phil Blunsom 提出了一个基于编码器-解码器
结构的新模型
[453]
。该模型用卷积神经网络(CNN)将源语言编码成实数向量,
之后用循环神经网络(RNN)将连续向量转换成目标语言。这使得模型不需要
进行词对齐、特征提取等工作,就能够自动学习源语言的信息。这也是一种端
到端学习的方法。不过,这项工作的实现较复杂,而且方法存在梯度消失/爆炸
等问题
[454, 455]
,因此并没有成为后来神经机器翻译的基础框架。
• 2014 年,Ilya Sutskever 等人提出了序列到序列(seq2seq)学习的方法,同时
将长短时记忆结构(LSTM)引入到神经机器翻译中,这个方法缓解了梯度消
失/爆炸的问题,并且通过遗忘门的设计让网络选择性地记忆信息,缓解了序列
中长距离依赖的问题
[21]
。但是该模型在进行编码的过程中,将不同长度的源语
言句子压缩成了一个固定长度的向量,句子越长,损失的信息越多,同时该模
型无法对输入和输出序列之间的对齐进行建模,因此并不能有效的保证翻译质
量。
• 同年 Dzmitry Bahdanau 等人首次将注意力机制(Attention Mechanism)应用到机
10.1 神经机器翻译的发展简史 347
器翻译领域,在机器翻译任务上对翻译和局部翻译单元之间的对应关系同时建
模
[22]
。Bahdanau 等人工作的意义在于,使用了更加有效的模型来表示源语言的
信息,同时使用注意力机制对两种语言不同部分之间的相互联系进行建模。这
种方法可以有效地处理长句子的翻译,而且注意力的中间结果具有一定的可解
释性
1
。然而相比于前人的神经机器翻译模型,注意力模型也引入了额外的成
本,计算量较大。
• 2016 年谷歌公司发布了基于多层循环神经网络方法的 GNMT 系统。该系统集
成了当时的神经机器翻译技术,并进行了诸多的改进。它的性能显著优于基于
短语的机器翻译系统
[456]
,引起了研究人员的广泛关注。在之后不到一年的时间
里,脸书公司采用卷积神经网络(CNN)研发了新的神经机器翻译系统
[24]
,实
现了比基于循环神经网络(RNN)系统更高的翻译水平,并大幅提升翻译速度。
• 2017 年,Ashish Vaswani 等人提出了新的翻译模型 Transformer。其完全摒弃了
循环神经网络和卷积神经网络,仅仅通过多头注意力机制和前馈神经网络,不
需要使用序列对齐的循环框架就展示出强大的性能,并且巧妙地解决了翻译中
长距离依赖问题
[23]
。Transformer 是第一个完全基于注意力机制搭建的模型,不
仅训练速度更快,在翻译任务上也获得了更好的结果,一跃成为目前最主流的
神经机器翻译框架。
当然,神经机器翻译的工作远不止以上这些内容
[457]
。随着本书内容的逐渐深入,
很多经典的模型和方法都会被讨论到。
10.1.2 神经机器翻译的品质
图10.2展示了用机器翻译把一段汉语翻译为英语的结果。其中译文 1 是统计机
器翻译系统的结果,译文 2 是神经机器翻译系统的结果。为了保证公平性,两个系
统使用完全相同的数据进行训练。
可以明显地看到译文 2 更加通顺,意思的表达更加准确,翻译质量明显高于译
文 1。这个例子基本反应出统计机器翻译和神经机器翻译的差异性。当然,这里并不
是要讨论统计机器翻译和神经机器翻译孰优孰劣,只是很多场景中发现神经机器翻
译系统可以生成非常流畅的译文,易于人工阅读和修改。
在很多量化的评价中也可以看到神经机器翻译的优势。回忆一下第四章提到的
机器翻译质量的自动评估指标中,使用最广泛的一种指标是 BLEU。2010 年前,在
由美国国家标准和科技机构(NIST)举办的汉英机器翻译评测中(比如汉英 MT08
数据集),30% 以上的 BLEU 值对于基于统计方法的翻译系统来说就已经是当时最顶
尖的结果了。而现在的神经机器翻译系统,则可以轻松地将 BLEU 提高至 45% 以上。
同样,在机器翻译领域中著名评测比赛 WMT(Workshop of Machine Translation)
1
比如,目标语言和源语言句子不同单词之间的注意力强度能够在一定程度上反应单词之间的互译
程度。
348 Chapter 10. 基于循环神经网络的模型 肖桐 朱靖波
原文:
This has happened for a whole range of reasons, not least because we live in a culture where
people are encouraged to think of sleep as a luxury - something you can easily cut back on.
After all, that’s what caffeine is for - to jolt you back into life. But while the average amount
of sleep we are getting has fallen, rates of obesity and diabetes have soared. Could the two
be connected?
译文 1:
这已经发生了一系列的原因,不仅仅是因为我们生活在一个文化鼓励人们认为睡眠
是一种奢侈的东西,你可以很容易地削减。毕竟,这就是咖啡因是–你回到生命的震
动。但是,尽管我们得到的平均睡眠量下降,肥胖和糖尿病率飙升。可以两个连接?
译文 2:
这种情况的发生有各种各样的原因,特别是因为我们生活在一种鼓励人们把睡眠看
作是一种奢侈的东西–你可以很容易地减少睡眠的文化中。毕竟,这就是咖啡因的
作用–让你重新回到生活中。但是,当我们的平均睡眠时间减少时,肥胖症和糖尿病
的发病率却猛增。这两者有联系吗?
图 10.2 机器翻译实例对比
中,使用统计机器翻译方法的参赛系统也在逐年减少。而现在获得比赛冠军的系统
中几乎没有只使用纯统计机器翻译模型的系统
2
。图10.3展示了近年来 WMT 比赛冠
军系统中神经机器翻译系统的数量,可见神经机器翻译系统的数量在逐年提高。
10
20
2015 2016 2017 2018 2019
统计机器翻译 神经机器翻译
数量
年份
图 10.3 WMT 冠军系统的数量
神经机器翻译在其他评价指标上的表现也全面超越统计机器翻译。比如,在
IWSLT 2015 英语-德语任务中,研究人员搭建了四个较为先进的机器翻译系统
[458]
:
• PBSY:基于短语和串到树模型的混合系统,其中也使用了一些稀疏的词汇化
特征;
• HPB:层次短语系统,其中使用了基于句法的预调序和基于神经语言模型的重
排序模块;
2
但是,仍然有大量的统计机器翻译和神经机器翻译融合的方法。比如,在无指导机器翻译中,统计
机器翻译仍然被作为初始模型。
10.1 神经机器翻译的发展简史 349
• SPB:标准的基于短语的模型,其中使用了基于神经语言模型的重排序模块;
• NMT:神经机器翻译系统,其中使用了长短时记忆模型、注意力机制、稀有词
处理机制等。
与这些系统相比,神经机器翻译系统的 mTER 得分在不同长度句子上都有明显
的下降,如图10.4
3
。其次,神经机器翻译的单词形态错误率和单词词义错误率(用
HTER 度量)都远低于统计机器翻译系统(表10.1 )。
1-15 16-25 26-35 >35
6
12
18
24
句子长度(范围)
mTER[%]
NMT
SPB
HPB
PBSY
图 10.4 不同系统在不同长度句子上的 mTER[%] 分值(得分越低越好)
[458]
表 10.1 神经机器翻译与统计机器翻译系统的译文错误率 HTER[%](忽略编辑距离中的移动操作)
[458]
系统 单词 词根 Δ
PBSY 27.1 22.5 -16.9
HPB 28.7 23.5 -18.4
SPB 28.3 23.2 -18.0
NMT 21.7 18.7 -13.7
此外,神经机器翻译在某些任务上的结果已经相当优秀,比如,在一些汉英新闻
翻译任务中,神经机器翻译就取得了至少和专业翻译人员相媲美的效果
[459]
。在该任
务中,神经机器系统(Combo-4、Combo-5 和 Combo-6)的人工评价得分与 Reference-
HT(专业翻译人员翻译)的得分无显著差别,且远超 Reference-WMT(WMT 的参
考译文,也是由人类翻译)得分(表10.2)。
在最近两年,神经机器翻译的发展更加迅速,新的模型及方法层出不穷。表10.3给
出了到 2020 年为止,一些主流的神经机器翻译模型在 WMT14 英德数据集上的表现。
可以看到,相比 2017 年,2018-2020 年中机器翻译仍然有进步。
3
mTER、HTER 等都是是错误率度量,值越低表明译文越好。
350 Chapter 10. 基于循环神经网络的模型 肖桐 朱靖波
表 10.2 不同机器翻译系统人类评价结果
[459]
#
Ave%
(平均原始分数)
系统
1 69.0 Combo-6
68.5 Reference-HT
68.9 Combo-5
68.6 Combo-4
2 62.1 Reference-WMT
表 10.3 WMT14 英德数据集上不同神经机器翻译模型的表现
模型 作者 年份 BLEU[%]
ConvS2S
[24]
Gehring 等 2017 25.2
Transformer-Base
[23]
Vaswani 等 2017 27.3
Transformer-Big
[23]
Vaswani 等 2017 28.4
RNMT+
[460]
Chen 等 2018 28.5
Layer-Wise Coordination
[461]
He 等 2018 29.0
Transformer-RPR
[462]
Shaw 等 2018 29.2
Transformer-DLCL
[463]
Wang 等 2019 29.3
SDT
[464]
Li 等 2020 30.4
MSC
[465]
Wei 等 2020 30.5
10.1.3 神经机器翻译的优势
既然神经机器翻译如此强大,它的优势在哪里呢?为了回答这个问题,表10.4给
出了神经机器翻译与统计机器翻译的简单对比。具体来说,神经机器翻译有如下特
点:
表 10.4 统计机器翻译 vs 神经机器翻译
统计机器翻译
神经机器翻译
基于离散空间的表示模型 基于连续空间的表示模型
NLP 问题的隐含结构假设 无隐含结构假设,端到端学习
特征工程为主 不需要特征工程,但需要设计网络
特征、规则的存储耗资源 模型存储相对小,但计算量大
• 连续空间表示模型,能捕获更多隐藏信息。神经机器翻译与统计机器翻译最大
的区别在于对语言文字串的表示方法。在统计机器翻译中,所有词串本质上都
是由更小的词串(短语、规则)组合而成,也就是统计机器翻译模型利用了词串
之间的组合性来表示更大的词串。统计机器翻译使用多个特征描述翻译结果,
但是其仍然对应着离散的字符串的组合,因此可以把模型对问题的表示空间看
10.1 神经机器翻译的发展简史 351
做是由一个离散结构组成的集合。在神经机器翻译中,词串的表示已经被神经
网络转化为多维实数向量,而且也不依赖任何的可组合性假设等其他假设来刻
画离散的语言结构,从这个角度说,所有的词串分别对应了一个连续空间上的
点(比如,对应多维实数空间中一个点)。这样,模型可以更好地进行优化,而
且对未见样本有更好的泛化能力。此外,基于连续可微函数的机器学习算法已
经相对完备,可以很容易地对问题进行建模和优化。
• 不含隐含结构假设,端到端学习对问题建模更加直接。传统的自然语言处理任
务会对问题进行隐含结构假设。比如,进行翻译时,统计机器翻译会假设翻译
过程由短语的拼装完成。这些假设可以大大化简问题的复杂度,但是另一方面
也带来了各种各样的约束条件,并且错误的隐含假设往往会导致建模错误。神
经机器翻译是一种端到端模型,它并不依赖任何隐含结构假设。这样,模型并
不会受到错误的隐含结构的引导。从某种意义上说,端到端学习可以让模型更
加“自由”地进行学习,因此往往可以学到很多传统认知上不容易理解或者不
容易观测到的现象。
• 不需要特征工程,特征学习更加全面。经典的统计机器翻译可以通过判别式模
型引入任意特征,不过这些特征需要人工设计,因此这个过程也被称为特征工
程。特征工程依赖大量的人工,特别是对不同语种、不同场景的翻译任务,所
采用的特征可能不尽相同,这也使得设计有效的特征成为了统计机器翻译时代
最主要的工作之一。但是,由于人类自身的思维和认知水平的限制,人工设计
的特征可能不全面,甚至会遗漏一些重要的翻译现象。神经机器翻译并不依赖
任何人工特征的设计,或者说它的特征都隐含在分布式表示中。这些“特征”
都是自动学习得到的,因此神经机器翻译并不会受到人工思维的限制,学习到
的特征将问题描述得更全面。
• 模型结构统一,存储相对更小。统计机器翻译系统依赖于很多模块,比如词对
齐、短语(规则)表和目标语言模型等等,因为所有的信息(如 n-gram)都是
离散化表示的,因此模型需要消耗大量的存储资源。同时,由于系统模块较多,
开发的难度也较大。神经机器翻译的模型都是用神经网络进行表示,模型参数
大多是实数矩阵,因此存储资源的消耗很小。而且神经网络可以作为一个整体
进行开发和调试,系统搭建的代价相对较低。实际上,由于模型体积小,神经
机器翻译也非常合适于离线小设备上的翻译任务。
当然,神经机器翻译也并不完美,很多问题有待解决。首先,神经机器翻译需
要大规模浮点运算的支持,模型的推断速度较低。为了获得优质的翻译结果,往往
需要大量 GPU 设备的支持,计算资源成本很高;其次,由于缺乏人类的先验知识对
翻译过程的指导,神经机器翻译的运行过程缺乏可解释性,系统的可干预性也较差;
此外,虽然脱离了繁重的特征工程,神经机器翻译仍然需要人工设计网络结构,在
模型的各种超参数的设置、训练策略的选择等方面,仍然需要大量的人工参与。这
352 Chapter 10. 基于循环神经网络的模型 肖桐 朱靖波
也导致很多实验结果不容易复现。显然,完全不依赖人工的机器翻译还很遥远。不
过,随着研究人员的不断攻关,很多问题也得到了解决。