·
  肖桐 朱靖波
东北大学自然语言处理实验室 · 小牛翻译
顾问:姚天顺 王宝库
https://opensource.niutrans.com/mtbook/homepage.html
https://github.com/NiuTrans/MTBook
        
               
      http://creativecommons.org/licenses/by-nc/4.0
              
              
            
    
July 6, 2021
在此感谢为本书做出贡献的人
曹润柘、曾信、孟霞、单韦乔、周涛、周书含、许诺、李北、许晨、林野、
垠桥、王子扬、刘辉、张裕浩、冯凯、罗应峰、魏冰浩、王屹超、李炎洋、
驰、姜雨帆、田丰宁、刘继强、张哲旸、陈贺轩、牛蕊、杜权、张春良、王会
珍、张俐、马安香、胡明涵
4
1. 本书的由来
让计算机进行自然语言的翻译是人类长期的梦想,也是人工智能的终极目标
一。自上世纪九十年代起,机器翻译迈入了基于统计建模的时代,发展到今天,已经
大量应用了深度学习等机器学习方法,并且取得了令人瞩目的进步。在这个时代
景下,对机器翻译的模型、方法和实现技术进行深入了解是自然语言处理领域研
者和实践者所渴望的。
与所有从事机器翻译研究的人一样,笔者也梦想着有朝一日机器翻译能够完
实现。这个想法可以追溯到  年,姚天顺教授和王宝库教授创立了东北大学自然
语言处理实验室,把机器翻译作为毕生为之奋斗的目标。这也影响了包括笔者在
的许多人。虽然,那时的机器翻译技术并不先进,研究条件也异常艰苦,但是实现机
器翻译的梦想从未改变。
步入二十一世纪后,统计学习方法的兴给机器翻译带来了全新的思路,同
也带来了巨大的技术进步。笔者有幸经历了那个时代,同时也加入到机器翻译研
的浪潮中。笔者从  年开始研发  开源系统,  年对  机器
翻译系统进行产业化,并创立了小牛翻译。在此过程中,笔者目睹了机器翻译的
长,并不断地被机器翻译取得的进步所感动。那时,笔者就曾经思考过将机器翻
的模型和方法进行总结,形成资料供人阅读。虽然粗略写过一些文字,但是未成
系,只是在相关的教学环节中进行使用,供实验室同学闲暇时参考阅读。
但是机器翻译领域进展之快是无法预见的。 年之后,随着深度学习方法在
机器翻译中的进一步应用,机器翻译迎来了前所未有的大好机遇。新的技术方法
出不穷,机器翻译系统也得到了广泛应用。这时,笔者心里又涌现出将机器翻译
技术内容编撰成书的想法。这种强烈的念头使得笔者完成了本书的第一个版本(包
含七章)并开源供人广泛阅读。承蒙同行们厚爱,得到了很多反馈,包括一些批评
意见。这些使得笔者可以更加全面地梳理思路。
最初,笔者的想法仅仅是机器翻译的技术内容做资料供人阅读。但是,
友、同事们一直鼓励将内容正式出版。虽然担心书的内容不够精致,无法给同行
为参考,但是最终还是下定决心重构内容。所幸,得到电子工业出版社的支持,形成
新版,共十八章。
写作中,每当笔者翻起以的资料,都会想起当年的些故事。与其说这部
是写给读者,还不如说这本书是写给笔者自己,写给所有同笔者一样,经历过或
在经历机器翻译蓬勃发展年代的人。希望本书可以作为一个时代的记录,但是这
时代并未结束,还将继续,并更加美好。
5
2. 本书的特色
本书全面回顾了近三十年内机器翻译的技术发展历程,并围绕机器翻译的建
和深度学习方法这两个主题对机器翻译的技术方法进行了全面介绍。在写作中,
者力求用朴实的语言和简洁的实例阐述机器翻译的基本模型,同时对相关的技术
沿进行讨论。其中也会涉及大量的实践经验,包括许多机器翻译系统开发的细节。
这个角度来说,本书不单单是一本理论书籍,它还结合了机器翻译的应用,给读
提供了很多机器翻译技术落地的具体思路。
本书可以供计算机相关专业高年级本科生及研究生学习之用,也可以作为自
语言处理领域,特别是机器翻译方向相关研究人员的参考资料。此外,本书各章
题明确,内容紧凑。因此,读者也可将每章作为某一专题的学习资料。
用最简单的方式阐述机器翻译的基本
是笔者所期望达到的目标。但是,书
中不可避免会使用一些形式化定义和算法的抽象描述,因此,笔者尽所能通过图
进行解释(本书共  张插图)不过,本书所包含的内容较为广泛,难免会有疏漏,
望读者海涵,并指出不当之处。
3. 本书的内容
本书共分为四个部分,十八章。章节的顺参考了机器翻译技术发展的时间
络,同时兼顾了机器翻译知识体系的内在逻辑。本书的主要内容包括:
第一部分:机器翻译基础
第一章 机器翻译简介
第二章 统计语言建模基础
第三章 词法分析和语法分析基础
第四章 翻译质量评价
第二部分:统计机器翻译
第五章 基于词的机器翻译建模
第六章 基于扭曲度和繁衍率的模型
第七章 基于短语的模型
第八章 基于句法的模型
第三部分:神经机器翻译
第九章 人工神经网络和神经语言建模
第十章 基于循环神经网络的模型
第十一章 基于卷积神经网络的模型
第十二章 基于自注意力的模型
第四部分:机器翻译前沿
第十三章 神经机器翻译模型训练
第十四章 神经机器翻译模型推断
6
第十五章 神经机器翻译结构优化
第十六章 低资源机器翻译
第十七章 多模态、多层次机器翻译
第十八章 机器翻译应用技术
其中,第一部分是本书的基础知识部分,包含统计建模、语言分析、机器翻译评
价等。在第一章对机器翻译的历史及现状进行介绍之后,第二章通过语言建模任
将统计建模的思想阐述出来,同时这部分内容也会作为后续机器翻译模型及方法
基础。第三章重点介绍机器翻译所涉及的词法和语法分析方法,旨在为后续相关
念的使用进行铺垫,同时进一步展示统计建模思想在相关问题上的应用。第四章
对独立,系统地介绍了机器翻译结果的评价方法,这部分内容也是机器翻译建模
系统设计所需的前置知识。
本书的第二部分主要介绍统计机器翻译的基本模型。第五章是整个机器翻译
模的基础。第六章进一步对扭曲度和产出率两个概念进行介绍,同时给出相关的
译模型,这些模型在后续章节的内容中都有涉及。第七章和第八章分别介绍了基
短语和句法的模型。它们都是统计机器翻译的经典模型,其思想也构成了机器翻
成长过程中最精华的部分。
本书的第三部分主要介绍神经机器翻译模型,该模型也是近些年机器翻译的
点。第九章介绍了神经网络和深度学习的基础知识以保证本书知识体系的完备性。
时,第九章也介绍了基于神经网络的语言模型,其建模思想在神经机器翻译中被
量使用。第十、十一、十二章分别对三种经典的神经机器翻译模型进行介绍,以模型
提出的时间为序,从最初的基于循环网络的模型,到最新的  模型均有涉
及。其中也会对编码器解码器框架、注意力机制等经典方法和技术进行介绍。
本书的第四部分会进一步对机器翻译的前沿技术进行讨论,以神经机器翻译
主。第十三、十四、十五章是神经机器翻译研发的三个主要方面,也是近几年机器翻
译领域讨论最多的几个方向。第十六章也是机器翻译的热门方向之一,包括无监
翻译等主题都会在这里被讨论。第十七章会对语音、图像翻译等多模态方法以及
章级翻译等方法进行介绍,它们可以被看作是机器翻译在更多任务上的扩展。第
八章会结合笔者在各种机器翻译比赛和机器翻译产品研发的经验,对机器翻译的
用技术进行讨论。
7
机器翻译基础
第一部分
第一章 机器翻译简介
第二章 统计语言建模基础
第三章 词法分析和语法分析基础
第四章
翻译质量评价
统计机器翻译
第二部分
第五章 基于词的机器翻译建模
第六章 基于扭曲度和繁衍率的模型
第七章 基于短语的模型
第八章 基于句法的模型
神经机器翻译
第三部分
第九章 人工神经网络和神经语言建模
第十章
基于循环神经
网络的模型
第十一章
基于卷积神经
网络的模型
第十二章
基于自注意力
的模型
机器翻译前沿
第四部分
第十三章 神经机器翻译模型训练 第十四章 神经机器翻译模型推断
第十五章
神经机器翻译
结构优化
第十六章
低资源神经
机器翻译
第十七章
多模态、多层次
机器翻译
第十八章 机器翻译应用技术
Contents
I
机器翻译基础
1 机器翻译简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.1 机器翻译的概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.2 机器翻译简史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.2.1 人工翻译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.2.2 机器翻译的萌芽 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.2.3 机器翻译的受挫 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.2.4 机器翻译的快速成长 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.2.5 机器翻译的爆发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.3 机器翻译现状及挑战. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.4 基于规则的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
1.4.1 规则的定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
1.4.2 转换法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
1.4.3 基于中间语言的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.4.4 规则方法的优缺点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.5 数据驱动的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
1.5.1 基于实例的机器翻译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
1.5.2 统计机器翻译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
1.5.3 神经机器翻译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.5.4 对比分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
1.6 推荐学习资源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.6.1 经典书籍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.6.2 相关学术会议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2 统计语言建模基础 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.1 概率论基础 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.1.1 随机变量和概率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.1.2 联合概率、条件概率和边缘概率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.1.3 链式法则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.1.4 贝叶斯法则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.1.5 KL 距离和熵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.2 掷骰子游戏 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.3 n-gram 语言模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.3.1 建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.3.2 参数估计和平滑算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.3.3 语言模型的评价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.4 预测与搜索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.4.1 搜索问题的建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.4.2 经典搜索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.4.3 局部搜索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
2.5 小结及拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3 词法分析和语法分析基础 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.1 问题概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.2 中文分词. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.2.1 基于词典的分词方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
3.2.2 基于统计的分词方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.3 命名实体识别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.3.1 序列标注任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.3.2 基于特征的统计学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.3.3 基于概率图模型的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
3.3.4 基于分类器的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
3.4 句法分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.4.1 句法树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.4.2 上下文无关文法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
3.4.3 规则和推导的概率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.5 小结及拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
4 翻译质量评价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.1 译文质量评价所面临的挑战 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.2 人工评价. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4.2.1 评价策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4.2.2 打分标准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
4.3 有参考答案的自动评价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.3.1 基于词串比对的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.3.2 基于词对齐的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.3.3 基于检测点的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
4.3.4 多策略融合的评价方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.3.5 译文多样性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
4.3.6 相关性与显著性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
4.4 无参考答案的自动评价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
4.4.1 质量评估任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
4.4.2 构建质量评估模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
4.4.3 质量评估的应用场景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
4.5 小结及拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
II
统计机器翻译
5 基于词的机器翻译建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
5.1 词在翻译中的作用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
5.2 一个简单实例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
5.2.1 翻译的流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
5.2.2 统计机器翻译的基本框架 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
5.2.3 单词级翻译模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
5.2.4 句子级翻译模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
5.2.5 解码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
5.3 噪声信道模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
5.4 统计机器翻译的三个基本问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
5.4.1 词对齐 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
5.4.2 基于词对齐的翻译模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
5.4.3 基于词对齐的翻译实例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
5.5 IBM 模型 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
5.5.1 IBM 模型 1 的建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
5.5.2 解码及计算优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
5.5.3 训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
5.6 小结及拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
6 基于扭曲度和繁衍率的模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
6.1 基于扭曲度的模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
6.1.1 什么是扭曲度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
6.1.2 IBM 模型 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
6.1.3 隐马尔可夫模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
6.2 基于繁衍率的模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
6.2.1 什么是繁衍率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
6.2.2 IBM 模型 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
6.2.3 IBM 模型 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
6.2.4 IBM 模型 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
6.3 解码和训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
6.4 问题分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
6.4.1 词对齐及对称化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
6.4.2 “缺陷”问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
6.4.3 句子长度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
6.4.4 其他问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
6.5 小结及拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
7 基于短语的模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
7.1 翻译中的短语信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
7.1.1 词的翻译带来的问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
7.1.2 更大粒度的翻译单元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
7.1.3 机器翻译中的短语 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
7.2 数学建模. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
7.2.1 基于翻译推导的建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
7.2.2 对数线性模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
7.2.3 判别模型中的特征 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
7.2.4 搭建模型的基本流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
7.3 短语抽取. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
7.3.1 与词对齐一致的短语 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
7.3.2 获取词对齐 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
7.3.3 度量双语短语质量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
7.4 翻译调序建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
7.4.1 基于距离的调序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
7.4.2 基于方向的调序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
7.4.3 基于分类的调序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
7.5 翻译特征. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
7.6 最小错误率训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
7.7 栈解码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
7.7.1 翻译候选匹配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
7.7.2 翻译假设扩展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
7.7.3 剪枝 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
7.7.4 解码中的栈结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
7.8 小结及拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
8 基于句法的模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
8.1 翻译中句法信息的使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
8.2 基于层次短语的模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
8.2.1 同步上下文无关文法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
8.2.2 层次短语规则抽取 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
8.2.3 翻译特征 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
8.2.4 CKY 解码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
8.2.5 立方剪枝 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
8.3 基于语言学句法的模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
8.3.1 基于句法的翻译模型分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
8.3.2 基于树结构的文法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
8.3.3 树到串翻译规则抽取 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
8.3.4 树到树翻译规则抽取 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
8.3.5 句法翻译模型的特征 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
8.3.6 基于超图的推导空间表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
8.3.7 基于树的解码 vs 基于串的解码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
8.4 小结及拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
III
神经机器翻译
9 人工神经网络和神经语言建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
9.1 深度学习与人工神经网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
9.1.1 发展简史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
9.1.2 为什么需要深度学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
9.2 神经网络基础 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
9.2.1 线性代数基础 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
9.2.2 人工神经元和感知机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
9.2.3 多层神经网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
9.2.4 函数拟合能力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
9.3 神经网络的张量实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
9.3.1 张量及其计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
9.3.2 张量的物理存储形式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
9.3.3 张量的实现手段 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
9.3.4
前向传播与计算图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
9.4 神经网络的参数训练. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
9.4.1 损失函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
9.4.2 基于梯度的参数优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
9.4.3 参数更新的并行化策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
9.4.4 梯度消失、梯度爆炸和稳定性训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
9.4.5 过拟合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
9.4.6 反向传播 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
9.5 神经语言模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
9.5.1 基于前馈神经网络的语言模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
9.5.2 对于长序列的建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
9.5.3 单词表示模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
9.5.4 句子表示模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
9.6 小结及拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
10 基于循环神经网络的模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
10.1 神经机器翻译的发展简史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
10.1.1 神经机器翻译的起源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
10.1.2 神经机器翻译的品质 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
10.1.3 神经机器翻译的优势 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
10.2 编码器-解码器框架 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
10.2.1 框架结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
10.2.2 表示学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
10.2.3 简单的运行实例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
10.2.4 机器翻译范式的对比 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
10.3 基于循环神经网络的翻译建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
10.3.1 建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
10.3.2 长短时记忆网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
10.3.3 门控循环单元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
10.3.4 双向模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
10.3.5 多层神经网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
10.4 注意力机制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
10.4.1 翻译中的注意力机制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
10.4.2 上下文向量的计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
10.4.3 注意力机制的解读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
10.4.4 实例 - GNMT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
10.5 训练及推断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
10.5.1 训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
10.5.2 推断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
10.6 小结及拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
11 基于卷积神经网络的模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
11.1 卷积神经网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
11.1.1 卷积核与卷积操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
11.1.2 步长与填充 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
11.1.3 池化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
11.1.4 面向序列的卷积操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
11.2 基于卷积神经网络的翻译建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
11.2.1 位置编码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
11.2.2 门控卷积神经网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
11.2.3 残差网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
11.2.4 多步注意力机制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
11.2.5 训练与推断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
11.3 局部模型的改进 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
11.3.1 深度可分离卷积 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
11.3.2 轻量卷积和动态卷积 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
11.4 小结及拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
12 基于自注意力的模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
12.1 自注意力机制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
12.2 Transformer 模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
12.2.1 Transformer 的优势 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
12.2.2 总体结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
12.3 位置编码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
12.4 基于点乘的多头注意力机制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
12.4.1 点乘注意力机制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
12.4.2 多头注意力机制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
12.4.3 掩码操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
12.5 残差网络和层标准化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
12.6 前馈全连接网络子层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
12.7 训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
12.8 推断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
12.9 小结及拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
IV
机器翻译前沿
13 神经机器翻译模型训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
13.1 开放词表. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
13.1.1 大词表和未登录词问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
13.1.2 子词 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
13.1.3 双字节编码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
13.1.4 其他方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
13.2 正则化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
13.2.1 L1/L2 正则化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
13.2.2 标签平滑 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
13.2.3 Dropout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
13.3 对抗样本训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
13.3.1 对抗样本与对抗攻击 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
13.3.2 基于黑盒攻击的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
13.3.3 基于白盒攻击的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
13.4 学习策略. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
13.4.1 极大似然估计的问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
13.4.2 Teacher-forcing 方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
13.4.3 强化学习方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
13.5 知识蒸馏. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
13.5.1 什么是知识蒸馏 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
13.5.2 知识蒸馏的基本方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
13.5.3 机器翻译中的知识蒸馏 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
13.6 基于样本价值的学习. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
13.6.1 数据选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
13.6.2 课程学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
13.6.3 持续学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
13.7 小结及拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
14 神经机器翻译模型推断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
14.1 面临的挑战 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
14.2 基本问题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
14.2.1 推断方向 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
14.2.2 译文长度控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
14.2.3 搜索终止条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
14.2.4 译文多样性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
14.2.5 搜索错误 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
14.3 轻量模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
14.3.1 输出层的词汇选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
14.3.2 消除冗余计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
14.3.3 轻量解码器及小模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
14.3.4 批量推断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
14.3.5 低精度运算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
14.4 非自回归翻译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
14.4.1 自回归 vs 非自回归 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
14.4.2 非自回归翻译模型的结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
14.4.3 更好的训练目标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
14.4.4 引入自回归模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
14.4.5 基于迭代精化的非自回归翻译模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
14.5 多模型集成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
14.5.1 假设选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
14.5.2 局部预测融合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
14.5.3 译文重组 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
14.6 小结与拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
15 神经机器翻译结构优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
15.1 注意力机制的改进 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
15.1.1 局部信息建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
15.1.2 多分支结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
15.1.3 引入循环机制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
15.1.4 高效的自注意力模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
15.2 神经网络连接优化及深层模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
15.2.1 Post-Norm vs Pre-Norm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
15.2.2 高效信息传递 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
15.2.3 面向深层模型的参数初始化策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
15.2.4 深层模型的训练加速 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
15.2.5 深层模型的健壮性训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527
15.3 基于句法的神经机器翻译模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
15.3.1 编码器使用句法信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
15.3.2 解码器使用句法信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
15.4 基于结构搜索的翻译模型优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
15.4.1 网络结构搜索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
15.4.2 网络结构搜索的基本方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
15.4.3 机器翻译任务下的网络结构搜索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
15.5 小结及拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
16 低资源神经机器翻译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
16.1 数据的有效使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
16.1.1 数据增强 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
16.1.2 基于语言模型的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
16.2 双向翻译模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
16.2.1 双向训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
16.2.2 对偶学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
16.3 多语言翻译模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
16.3.1 基于枢轴语言的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
16.3.2 基于知识蒸馏的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
16.3.3 基于迁移学习的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
16.4 无监督机器翻译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
16.4.1 无监督词典归纳 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
16.4.2 无监督统计机器翻译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570
16.4.3 无监督神经机器翻译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
16.5 领域适应. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
16.5.1 基于数据的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
16.5.2 基于模型的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
16.6 小结及拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
17 多模态、多层次机器翻译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
17.1 机器翻译需要更多的上下文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
17.2 语音翻译. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
17.2.1 音频处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
17.2.2 级联式语音翻译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
17.2.3 端到端语音翻译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585
17.3 图像翻译. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
17.3.1 基于图像增强的文本翻译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
17.3.2 图像到文本的翻译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595
17.3.3 图像、文本到图像的翻译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597
17.4 篇章级翻译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
17.4.1 篇章级翻译的挑战 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
17.4.2 篇章级翻译的评价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600
17.4.3 篇章级翻译的建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600
17.4.4 在推断阶段结合篇章上下文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605
17.5 小结及拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607
18 机器翻译应用技术 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
18.1 机器翻译的应用并不简单 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
18.2 增量式模型优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
18.3 交互式机器翻译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
18.4 翻译结果的可干预性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615
18.5 小设备机器翻译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
18.6 机器翻译系统的部署. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
18.7 机器翻译的应用场景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621
随笔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623
后记 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628
V
附录
A 附录 A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631
A.1 统计机器翻译开源系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631
A.2 神经机器翻译开源系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633
B 附录 B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
B.1 公开评测任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
B.2 基准数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637
B.3 平行语料. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638
C 附录 C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
C.1 IBM 模型 2 的训练方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
C.2 IBM 模型 3 的训练方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642
C.3 IBM 模型 4 的训练方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644
C.4 IBM 模型 5 训练方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646