神经机器翻译的混合交叉熵损失函数

雷锋网  •  扫码分享
我是创始人李岩:很抱歉!给自己产品做个广告,点击进来看看。  
神经机器翻译的混合交叉熵损失函数
作者 | 李浩然、陆巍
编辑 | 青暮

本文提出了一个新的损失函数,混合交叉熵损失( Mixed CE ), 用于替代在机器翻译的两种训练方式(Teacher Forcing和 Scheduled Sampling)里常用的交叉熵损失函数(CE)

Mixed CE 实现简单 ,计算开销基本和标准的CE持平,并且在多个翻译数据的多种测试集上表现优于CE。这篇文章我们简要介绍Mixed CE的背景和一些主要的实验结果。

文章和附录: http://proceedings.mlr.press/v139/li21n.html

代码: https://github.com/haorannlp/mix


1

背景

本节简单介绍一下 Teacher ForcingScheduled Sampling 的背景。

Teacher Forcing[1]训练方式指的是当我们在训练一个自回归模型时(比如RNN,LSTM,或者Transformer的decoder部分), 我们需要将真实的目标序列(比如我们想要翻译的句子)作为自回归模型的输入,以便模型能够收敛的更快更好。 通常在Teacher Forcing(TF)这种训练方式下,模型使用的损失函数是CE:


值得注意的是,机器翻译(MT)本身是一个一对多的映射问题,比如同样一句中文可以翻译成不同的英文,而使用CE的时候,因为每个单词使用一个one-hot encoding去表示的,这种情况下MT是被我们当作了一个一对一的映射问题。这种方式可能会限制模型的泛化能力,因为使用CE的模型学到的条件分布
更接近于一个one-hot encoding,而非数据真实的条件分布
。但不可否认的是,即使模型用CE训练,它在实践中也取得了很好的效果。CE在实践中的成功意味着模型学习到的条件分布
可能也包含着部分真实分布
的信息。我们能不能在训练的时候从 提取
的信息呢?这就是我们的Mixed CE所要完成的目标。

虽然TF训练方式简单,但它会导致exposure bias的问题 ,即在训练阶段模型使用的输入来自于真实数据分布,而在测试阶段模型每一时刻使用的输入来自于模型上一时刻的预测结果,这两个输入分布之间的差异被称作exposure bias。

因此,研究者们进而提出了Scheduled Sampling[2](SS)。 在自回归模型每一时刻的输入不再是来自于真实数据,而是随机从真实数据或模型上一时刻的输出中采样一个点作为输入。 这种方法的本质是希望通过在训练阶段混入模型自身的预测结果作为输入,减小其与测试阶段输入数据分布的差异。也就是说,SS所做的是让训练输入数据分布近似测试输入数据的分布,从而减轻exposure bias。

而另一种减轻exposure bias的思想是,即使训练和测试阶段输入来自不同的分布,只要模型的输出是相似的,这种输入的差异性也就无关紧要了。我们的Mixed CE就是想要达到这样的目标。

需要注意的一点是,SS本来是用于RNN的,但由于Transformer的兴起,后续的研究者们提出了一些改进的SS以便适用于Transformer decoder在训练阶段能够并行计算的特性。即运行Transformer deocder两次,第一次输入真实的数据
,然后从t时刻的输出分布里采样一个数据点
, 最终得到一个序列  
。接着,将
和目标序列
里面的元素随机进行混合,得到新序列
 。然后把
作为decoder的输入,按照正常方式进行训练。


2

方法

我们提出的Mixed CE可以同时用于TF和SS两种训练方式中。

在TF中,为了应用MixedCE,我们首先做出一个假设: 如果模型当前预测的概率最大的token和目标token不一致,那我们认为预测的token很有可能是目标token的同义词或者同义词的一部分。

我们做出这个假设是因为在实际中的平行语料库里,同样一个源语言的单词在目标语言会有多种不同的翻译方式。如果这些不同的翻译在语料库里出现的频率相差不多,那么在预测该源语言单词时,模型非常有可能给这些不同的翻译相似的概率,而概率最大的那种翻译方式恰好是目标token的同义词。

具体来说,Mixed CE的公式如下:

神经机器翻译的混合交叉熵损失函数

这里的 是模型在当前时刻模型预测的最有可能的结果,而根据我们之前的假设, 有可能是 的同义词。Mixed CE通过以 
 
作为目标进行优化,有效利用了
中含有的真实分布
的信息。同时,这里的
,    
是当前训练的iteration,total_iter代表了总的训练轮数。随着训练的进行,模型的效果越来越好,
会不断增大,Mixed CE中第二项的权重也就越大。

在SS中,Mixed CE的形式类似于上述公式:

神经机器翻译的混合交叉熵损失函数

这里的  神经机器翻译的混合交叉熵损失函数 | ICML 2021 是对第一次运行Transformer decoder的输出进行greedy采样的结果。第一次运行Transformer decoder时的输入是真实的目标序列,而第二次运行时的输入是序列 神经机器翻译的混合交叉熵损失函数 | ICML 2021 。通过优化这个目标函数的第二部分,无论模型输入是 神经机器翻译的混合交叉熵损失函数 | ICML 2021 还是 神经机器翻译的混合交叉熵损失函数 | ICML 2021 ,模型总是能够输出相似的结果,也就是说, 模型能够忽略输入分布的差异,从而减轻了exposure bias的问题。

值得注意的是,相比于CE,Mixed CE在训练期间只增加很少的计算量,额外的计算量来自于寻找模型预测结果的最大值。


3

实验

由于篇幅有限,我们只列出几个重要的实验结果,更详细的实验结果可以在原文中找到。

在TF训练方式中,我们在WMT’14 En-De上的multi-reference test set上面进行了测试。在这个测试集中,每个源语言的句子有10种不同的reference translation,我们利用beam search为每一句源语言句子生成10个candidate translations,并且计算了每一个Hypothesis相对于每一种reference translation的BLEU分数,并且取它们的平均值或者最大值。结果如下:

神经机器翻译的混合交叉熵损失函数 | ICML 2021

我们可以看到Mixed CE在所有reference上面始终优于标准CE。

另外,我们也在一个paraphrased reference set(WMT’19 En-De)上面进行了测试。这个测试集里面的每一个reference都是经过语言专家的改写,改写后的句子结构和词汇的使用都变得更复杂。结果如下:

神经机器翻译的混合交叉熵损失函数 | ICML 2021

Mixed CE仍然优于CE。 通常在这个测试集上,0.3~0.4 BLEU的提升就表明效果就很显著了。

由于Mixed CE的形式类似于label smoothing,所以我们也具体比较了Mixed CE和label smoothing。我们利用Pairwise-BLEU(PB)衡量模型输出分布的平滑程度,PB越大,输出分布越陡峭,反之则越平滑。结果如下:

神经机器翻译的混合交叉熵损失函数 | ICML 2021

可以看到,加入label smoothing之后,输出分布变得更加平滑,而Mixed CE使得输出分布变得更加陡峭。所以Mixed CE和label smoothing是不同的。并且从BLEU的分数可以看出, label smoothing和Mixed CE并不是一个互斥的关系,两者共用效果会更好。

在SS中,我们以SS和word oracle(SS的一个变种)作为Baseline。结果如下:

神经机器翻译的混合交叉熵损失函数 | ICML 2021

可以看到Mixed CE总是好于CE。此外,我们在论文中还提供了ablation study,以确认 Mixed CE中的第二项对性能的提升是必不可少的。

此外,我们在附录中也列出了一些关于domain adaptation的初步实验,欢迎大家继续探索Mixed CE在其他领域的应用。


4

结论

在本文中我们提出了Mixed CE,用于替换在teacher forcing和scheduled sampling中使用CE损失函数。实验表明在teacher forcing里,Mixed CE在multi-reference, paraphrased reference set上面的表现总是优于CE。同时,我们也对比了label smoothing和Mixed CE,发现它们对输出分布的影响是不同的。在scheduled sampling当中,Mixed CE能够更有效的减轻exposure bias的影响。

参考文献
[1]. Williams, R. J. and Zipser, D. A learning algorithm for continually running fully recurrent neural networks. Neural Computation, 1(2):270–280, 1989.
[2]. Bengio, S., Vinyals, O., Jaitly, N., and Shazeer, N. Scheduled sampling for sequence prediction with recurrent neural networks. In Advances in Neural Information Processing Systems, volume 28, pp. 1171–1179. 2015.

扫码加入ICML2021交流群:

神经机器翻译的混合交叉熵损失函数 | ICML 2021

若二维码过期或群内满200人时,添加小助手微信(AIyanxishe3),备注ICML2021拉你进群。

雷锋网雷锋网 (公众号:雷锋网) 雷锋网


雷锋网特约稿件,未经授权禁止转载。详情见。

神经机器翻译的混合交叉熵损失函数 | ICML 2021

随意打赏

提交建议
微信扫一扫,分享给好友吧。