14.6 小结与拓展阅读 499
14.6 小结与拓展阅读
推断系统(或解码系统)是神经机器翻译的重要组成部分。在神经机器翻译
究中,单独针对推断问题开展的讨论并不多见。更多的工作是将其与实践结合,
见于开源系统、评测比赛中。但是,从应用的角度看,研发高效的推断系统是机器翻
译能够被大规模使用的前提。本章也从神经机器翻译推断的基本问题出发,重点
讨了推断系统的效率、非自回归翻译、多模型集成等问题。但是,由于推断阶段涉及
的问题十分广泛,因此本章也无法对其进行全面覆盖。关于神经机器翻译模型推
还有以下若干研究方向值得关注:
机器翻译系统中的推断也借用了统计推断Statistical Inference的概念。传统意
义上讲,这类方法都是在利用样本数据去推测总体的趋势和特征。因此,从统
计学的角度也有很多不同的思路。例如,贝叶斯学习等方法就在自然语言处理
中得到广泛应用
[760, 761]
其中比较有代表性的是变分方法Variational Methods
这类方法通过引入新的隐含变量来对样本的分布进行建模,从某种意义上说它
是在描述“分布的分布”因此这种方法对事物的统计规律描述得更加细致
[762]
这类方法也被成功地用于统计机器翻译
[405, 763]
和神经机器翻译
[764, 765, 766, 767]
构。
剪枝、减少模型的冗余计算、低秩分解等方向。结构化剪枝中的代表性工作是
LayerDrop
[768, 769, 770]
,这类方法在训练时随机选择部分子结构,在推断时根据输
入来选择模型中的部分层进行计算,而跳过其余层,达到加速的目的。有关减
少冗余计算的研究主要集中在改进注意力机制上,本章已经有所介绍。低秩分
解则针对词向量或者注意力的映射矩阵进行改进,例如词频自适应表示
[771]
频越高则对应的向量维度越大,反之则越小,或者层数越高注意力映射矩阵维
度越
[729, 772, 773, 774]
。在实践中比较有效的是较深的编码器与较浅的解码器结合
的方式,极端情况下解码器仅使用 1 层神经网络即可取得与多层神经网络相媲
美的翻译质,从而极地提升翻效率
[775, 776, 777]
。在第十章还会进步对
高效神经机器翻译的模型结构进行讨论。
在对器翻推断统进实际署时,存储消耗是需考虑因素。
因此如何让模型变得更小也是研发人员所关注的方向。当前的模型压缩方法主
要可以分为几类:剪枝、量化、知识蒸馏和轻量方法,其中轻量方法的研究重
点集中于更轻量模型结构的设计,这类方法已经在本章进行了介绍。剪枝主要
包括权重大小剪枝
[778, 779, 780, 781]
面向多头注意力的剪枝
[541, 726]
网络层以及其他
结构枝等
[782, 783]
,还一些法也在训期间用正化的来提
剪枝能力
[768]
量化方法主要通过截断浮点数来减少模型的存储大小,使其仅使
用几个比特位的数字表示方法便能存储整个模型,虽然会导致舍入误差,但压
缩效果显著
[547, 784, 785, 786]
一些方法利用知识蒸馏手段还将 Transformer 模型蒸馏
成如 LSTMs 等其他各种推断速度更快的结构
[549, 727, 787]
500 Chapter 14. 神经机器翻译模型推断 肖桐 朱靖波
目前的翻译模型使用交叉熵损失作为优化函数,这在自回归翻译模型上取得了
非常优秀的性能。交叉熵是一个严格的损失函数,每个预测错误的单词所对应
的位置都会受到惩罚,即使是编辑距离很小的输出序列
[788]
自回归翻译模型会
很大上避惩罚,当前单词据先的词的,
然而非自回归翻译模型无法获得这种信息。如果在预测时漏掉一个单词,就可
能会将正确的单词放在错误的位置上。为此,一些研究工作通过改进损失函数
来提高非自回归翻译模型的性能。一种做法使用一种新的交叉熵函数
[788]
它通
过忽略绝对位置、关注相对顺序和词汇匹配来为非自回归翻译模型提供更精确
的训练信号。另外,也可以使用基于 n-gram 的训练目标
[789]
来最小化模型与参
考译文之间的 n-gram 差异。该训练目标在 n-gram 的层面上评估预测结果,
此能够建模目标序列单词之间的依赖关系。
自回归翻译模型解码时,当前位置单词的生成依赖于先前生成的单词,已生成
的单词提供了较强的目标端上下文信息。与自回归翻译模型相比,非自回归翻
译模型的解码器需要在信息更少的情况下执行翻译任务。一些研究工作通过将
条件引入归翻中来依赖
[740]
。也
解码器提供更好的输入
[738]
此外,研究人员也提出了轻量级的调序模块来显式
地建模调序信息,以指导非自回归翻译模型的推断
[748]
大多数非自回归模型都
可以被看作是一种基于隐含变量的模型,因为目标语言单词的并行生成是基于
源语言编码器生成的一个(一些)隐含变量。因此,也有很多方法来生成隐含
变量,例如,利用自编码生成一个较短的离散化序列,将其作为隐含变量,
后在短的并行标语
[741]
。类想也于局
部块内的单词并行生成
[790]