Mask-Predict: Parallel Decoding of Conditional Masked Language Models阅读报告-机器翻译

1 Introduction

     大多数机器翻译系统使用顺序译码的策略,即单词是一个一个预测的。本文展示了一个并行译码的模型,该模型在恒定译码迭代次数下得到翻译结果。本文提出的条件掩码语言模型(CMLMS),其中解码器的输入是一个完全被mask的句子,并行的预测所有的单词,并在恒定次数的屏蔽-预测循环之后结束。这种整体策略使模型可以在丰富的双向上下文中反复重新考虑单词的选择,并且它仅在几个周期内就可以产生高质量的翻译。Mask−predict反复掩盖并重新预测模型对当前转换最不满意的单词子集。

2 Conditional Masked Language Models

     本文提出的条件掩码语言模型(CMLM),P (y|X,Yobs),给定源文本X和部分的目标文本Yobs,来预测剩下的目标文本Ymask,N是目标端文本的长度N = |Ymask|+|Yobs|。

Y:目标语句

X:源语句

Yobs,Ymask:将目标语句划分为两类

CMLM根据X与Yobs 预测Ymask。

3 Architecture

     论文采用标准的transformer的模型,不同之处在于decode端的self-attention不再使用attention mask,防止看到预测单词之后的词。

Encoder:基于自注意机制对原文本进行编码。

Decoder:目标语言的译码器,具有面向编码器输出的自注意机制,以及另外一组面向目标文本的自注意力机制。作者通过删除自注意mask机制来改进标准解码器。

4 Training Objective

     训练的时候,先对目标语句随机的选择Ymask,被mask的token的数量遵循正态分布,之后选中的token被一个特殊的mask token来代替。作者利用交叉熵来优化模型。尽管译码器的输出是整个目标语句,但只计算遮盖位置的loss。

5 Predicting Target Sequence Length

     在非自回归机器翻译中,通常将整个编码器的输出作为一个目标语句长度,来得到目标语句的长度。本文中作者,直接将LENGTH作为一个输入token输入编码器,利用编码器来预测目标语句的长度,即编码器的一个输出为目标序列的长度N,并利用交叉熵损失来训练。

6 Decoding with Mask-Predict

     使用Mask-Predict解码

     主要可以分为两步:

  • Mask

Mask-Predict: Parallel Decoding of Conditional Masked Language Models阅读报告-机器翻译

第t次迭代,遮住的单词数n,T为预先设定的迭代次数。第0次迭代,遮住target端所有token;随着迭代次数的增加,逐步减少遮盖的单词数。pi是当前迭代次数的预测概率。

  • Predict

Mask-Predict: Parallel Decoding of Conditional Masked Language Models阅读报告-机器翻译

给定源文本X和部分的目标文本Yobs,,来预测mask的目标文本Ymask,并更新概率,没有被mask的token Yobs,,概率不变。

Mask-Predict: Parallel Decoding of Conditional Masked Language Models阅读报告-机器翻译

以上两个步骤迭代进行,下边是本文提出的一个例子:

Mask-Predict: Parallel Decoding of Conditional Masked Language Models阅读报告-机器翻译 第0步,遮盖整个target端所有tokens,获得target端全部输出,可以看到有很多重复的单词,整个句子语法也不合理。

第1步,根据第0步得到的概率,从12个单词中选出8个低概率的单词(标黄的部分),使用CMLM重新预测。此时的结果比第一步更加准确合理。

第2步,根据第1步得到的概率(被重新预测的8个单词的概率需要更新),从12个单词中选出4个低概率的单词,再使用CMLM重新预测。值得注意的是第1步没有被重新预测的词也可能被选中。

预测target端文本的长度,获取encoder部分 [LENGTH] token处预测到的长度分布之后,选在top l个长度作为候选,并行decode,然后选择概率值对大的序列作为最终输出:

Mask-Predict: Parallel Decoding of Conditional Masked Language Models阅读报告-机器翻译

7 实验结果

在机器翻译上的结果

Mask-Predict: Parallel Decoding of Conditional Masked Language Models阅读报告-机器翻译Mask-Predict: Parallel Decoding of Conditional Masked Language Models阅读报告-机器翻译

  • 论文提出的方法(CMLM with Mask-Predict) 超过了其他的非自回归的方法。
  • 相比自回归的方法,结果差了 0.5-1.2 BLEU, 但是速度加快了。
  • 在中英(两种语言相差比较大)翻译的数据集上结果也比较好

速度与效果的trade-off

Mask-Predict: Parallel Decoding of Conditional Masked Language Models阅读报告-机器翻译

  • 牺牲2个BLEU的情况下,可以提升3倍多的速度(T=4, l=2)。
  • 达到相当的效果(27.03 vs 27.74),速度提升30%。

模型简化测试

分别从以下四方面进行:

    1)分析decoder是否必须迭代多次

Mask-Predict: Parallel Decoding of Conditional Masked Language Models阅读报告-机器翻译

decoder迭代多次主要是为了改善非自回归方法共有的token repetitions问题。随着token重复率的减少,bleu也有所上升

2)分析长句是否需要迭代更多的次数:

Mask-Predict: Parallel Decoding of Conditional Masked Language Models阅读报告-机器翻译

长句迭代多次有更好的效果。

3)分析使用更多的长度候选是否能改善效果:

Mask-Predict: Parallel Decoding of Conditional Masked Language Models阅读报告-机器翻译

并不能。

4)分析知识蒸馏是否必要:

Mask-Predict: Parallel Decoding of Conditional Masked Language Models阅读报告-机器翻译

是必要的。

注:知识蒸馏是指:训练非自回归模型时,训练集不使用原始训练集中的target端数据,而使用teacher模型预测的target结果。

8 实验总结

总结

本文作者针对在机器翻译任务上自回归模型在输出和生成的序列长度成正比,效率低的问题,提出的条件掩码模型上,该模型通过固定次数的迭代来生成高质量的句子,并与其他非自回归seq2seq模型相比,效果达到最好;并且本文用了知识蒸馏的teacher网络,使用了强模型,这也使得论文的结果强于一般模型。

不足

  1. 我认为该论文并没有解释清楚为什么需要知识蒸馏,对于这部分解释比较模糊,由于文章中采用了knowledge distillation来训练非自回归模型,而其采用的自回归teacher模型均为比较强的模型(28.6 on WMT14 En-De and 34.28 on WMT16 En-Ro),没有控制变量采用和baseline相同效果的自回归 teacher。而一般来说,teacher越强训练出的非自回归模型也会越强,因此这篇文章良好的效果应该也有一部分是得益于其选择了较强的teacher。但仅为我的猜测。
  2. 本文每次迭代并不会预测所有的单词,而是预测置信度较低的数个单词。这是一个非常良好的方向。但模型给出的概率上的置信度有时候并不会反应真正的翻译质量,如何证明/设计与翻译质量挂钩的解码策略也是一个值得思考的问题。

改进

或许可以尝试在此模型基础上利用prompt去改进。

上一篇:DataLoader源代码剖析


下一篇:IDEA运行报错 Error:java: 错误: 不支持发行版本 xx