SFFAI分享 | 邵晨泽:非自回归机器翻译【附PPT与视频资料】

2020-05-14 11:02:44 浏览数 (1)

导读


非自回归神经机器翻译是一种新兴的翻译技术。传统的自回归机器翻译模型是逐词产生译文的,每一步的译文单词的生成都依赖于之前的翻译结果,而非自回归模型对每个译文单词的生成独立建模,因此能同时生成整句译文,大幅提升翻译速度。在SFFAI32分享会中:

  • 首先对自回归机制和Transformer模型做了简要介绍
  • 介绍了非自回归Transformer模型与自回归模型的主要不同点
  • 介绍了近期在改进非自回归模型上的相关工作
  • 分享了我们被录用在ACL2019上的工作Retrieving Sequential Information for NAT:在非自回归模型中引入序列信息,增强其建模序列依赖关系的能力。

作者简介


邵晨泽,2018年获中国科学院大学学士学位,专业计算机科学与技术。现保送至中国科学院计算技术研究所智能信息处理重点实验室,研究方向为自然语言处理、机器翻译等。已在自然语言处理顶级会议EMNLP2018、ACL2019上以一作身份发表论文。

具体内容介绍


1.目前的序列预测模型通常都是自回归模型,即每一步的预测都依赖于之前的预测结果,如下图所示:

在基于RNN结构的序列预测模型中,隐状态需要逐步传递,因此难以进行各步间的并行计算,训练和测试的速度都较慢。Transformer模型通过在解码时引入mask矩阵,解决了训练时的并行计算问题。然而,由于自回归机制的限制,在测试时,Transformer模型仍然需要逐词解码,因此解码速度较慢。

2.非自回归Transformer模型在ICLR2018上由顾佳涛博士首次提出,其沿用了Transformer的模型结构,但对每个位置词语的概率分布独立建模,因此在测试时也能并行解码。非自回归Transformer模型的结构如下:

非自回归Transformer模型在结构与训练方法上与Transformer模型有几个不同点,主要包括:

  1. 解码器的输入的设计;
  2. 对目标端长度的预测;
  3. 利用自回归模型的重排序方法;
  4. 解码器中的位置注意力模块;
  5. 在训练时应用序列级知识蒸馏方法

3.后续对非自回归机器翻译模型的改进方案包括迭代优化的解码(Deterministic Non-Autoregressive Neural Sequence Modeling by Iterative Refinement)、增强解码器端的输入(Non-Autoregressive Neural Machine Translation with Enhanced Decoder Input) 、半自回归的翻译技术(Semi-Autoregressive Neural Machine Translation) 、引入隐变量作为解码器的输入(Fast Decoding in Sequence Models Using Discrete Latent Variables) 、辅助正规化(Non-Autoregressive Machine Translation with Auxiliary Regularization) 等工作。

4.由于序列信息的缺失,非自回归模型存在两个问题:词级损失函数不准确、模型难以捕捉序列依赖关系。与自回归模型相同,非自回归模型也是以词级别的交叉熵损失来训练模型。交叉熵损失函数会对每一位置的生成结果进行独立评价,要求模型生成参考译文对应位置单词的概率尽可能大。然而,交叉熵损失函数有一定的局限性,即仅当模型的翻译结果与参考译文严格对齐时,交叉熵损失才是准确的。而在非自回归模型中,翻译结果不一定能与参考译文对齐,如下图所示,此时的交叉熵损失函数就不再能准确模型评估生成结果的质量。另外,在以交叉熵损失训练的非自回归模型中,译文单词生成与评价均为独立的,这使得模型很难捕捉到译文间的序列依赖关系,生成的译文往往不太通顺,并包含很多过翻译、漏翻译的错误。

针对非自回归模型中序列信息缺失的问题,我们提出两种方案来引入序列信息:

  1. 对模型进行序列级训练,使用序列级的损失函数来评估模型的预测结果;
  2. 在解码器的顶层融入序列信息。

方案一:

目前,针对自回归模型进行序列级训练的方法往往需要利用强化学习算法来求得对梯度的无偏估计,用估计出的梯度代替真实梯度来更新参数。然而,梯度的估计虽然是无偏的,但往往带有较高的方差,这就导致了模型训练过程中的不稳定性,模型的性能也因此而受限。本方案会针对非自回归模型的特性,将运用在自回归模型上的强化学习算法做一定的改进,使模型的训练过程更加稳定,性能得到更大的提升。

给定源端句子X,目标端句子Y,非自回归模型对从X到Y的翻译概率进行如下建模:

(1)

其中,θ为模型的参数,T为句子Y的长度。每个目标端词语

的生成相互独立。

序列级训练的目标为优化奖赏值的期望,对应损失函数如下所示:

(2)

其中,r(Y)为对句子Y的奖赏,可以为序列级的评价指标,如BLEU、TER等。对该损失函数求导:

(3)

在上式中,要对所有可能的目标端译文进行求和,复杂度为指数级别的,因此无法由上式精确计算损失函数的梯度。此时,可仿照自回归模型中的做法,直接运用REINFORCE算法,从模型预测的概率分布中采样出译文Y,以奖赏值r(Y)评估译文的好坏,得到对梯度的无偏估计。

(4)

然而,在这种对梯度的估计方法有很大的方差,会导致训练过程不稳定、提升效果有限。具体来说,在采样出的译文Y中,每一位置t的词语

的生成质量都会被同一个奖赏值r(Y)一视同仁地评估,而忽略了不同位置下词语生成质量的差异性。在自回归模型中,这种缺陷很难被消除,但我们可以利用非自回归模型的特性,将损失函数的梯度进行改写:

(5)

(6)

即损失函数的梯度包含了每个位置上所有可能预测结果的概率梯度与它们对应奖赏值r(

)的乘积。r(

)为在位置t上预测结果为

时,最终奖赏的期望值,可通过蒙特卡洛方法,采样n次求均值来估计。

由于词表大小一般也较大,遍历整个词表耗时也会很大,可以在这时对(5)式应用REINFORCE算法,去对梯度做无偏估计:

(7)

与(5)式相比,这种估计方法能对每个位置的预测结果单独评估,因此方差相对较小,但仍会对模型训练过程的稳定性有一定影响。

注意到在机器翻译中,模型在每一步翻译概率的分布一般都比较集中,概率大小排在前几名的词往往比剩下所有词占据的比重还大。这给了我们降低方差的一种思路:遍历高概率的词语,对剩下的部分做估计,从而得到对式(5)的低方差的无偏估计。定义k为要取的高概率词数,

为概率大小排前k的词的集合,

为集合

中概率之和,p̃为去除

中词语后的概率分布,则有如下所示的梯度估计方法:

其对应的算法如下:

该算法以遍历 采样的思想为核心。在估计梯度时,先对概率排前k的词做遍历,计算它们的梯度并求出它们的奖赏值作为权重,再对剩下的词做采样,用采样出的一个词来估计剩下所有词的梯度加权和,最后将两者相加,作为最后的梯度估计结果。这种梯度估计的方法大幅降低了方差,提升了序列级训练的稳定性,能有效地提升非自回归翻译模型的翻译效果。

方案二:我们提出了一种融合自回归与非自回归模型优势的解码器模型结构,可将序列信息融入到解码器的顶层中,实现底层并行、顶层串行的计算方式,称作FS-decoder,其模型结构见下图。模型的编码器与Transformer模型一致。在解码时,先通过与非自回归模型一致的n-1层解码器,再在Fusion层将输出与翻译的历史信息融合,如下所示:

其中,W、U为两个线性变换的矩阵,H’为底层解码器的输出, Y为目标端的词嵌入。最后的一层解码器与自回归模型一致,对Fusion层的输出进行分析,逐词预测出译文。由于模型只需在解码器顶层进行串行解码,因此能达到相对Transformer模型最多n倍的加速。

实验:在三个数据集上进行实验,验证Reinforce-NAT和FS-decoder的效果。可见序列级训练方法对非自回归模型的提升效果很好,并且在非自回归模型上改进后的Reinforce-NAT算法相对REINFORCE有稳定的提升。FS-decoder模型能达到接近自回归模型的水平,同时也保持着可观的加速比。

翻译示例:非自回归模型中的漏翻、过翻问题得到有效改善

0 人点赞