[文献阅读]—Language Models are Good Translators

前言

在这里插入图片描述
论文地址:https://arxiv.org/abs/2106.13627

前人工作&存在问题

encoder更有效:TSN19去掉了encoder-decoder中的encoder,发现encoder对于NMT是很关键的;WLX+19和WTSL20发现增大encoder的容量比decoder更有效。但还是基于encoder和decoder的架构。

encoder和decoder的对齐:KBCF19发现多语言NMT中encoder和decoder的边界是模糊的;HTX+18共享了encoder和decoder的参数。但还是基于encoder和decoder的架构,encoder用于编码,decoder用于生成,而损失函数仅仅放在了decoder端。

使用语言模型:GPT-3需要in-context prefixes来完成单LM的机器翻译。但模型过于庞大,需要太多的资源去训练。

本文贡献

  • 提出了单个语言模型用于机器翻译的方法
  • source端的损失函数和统一的向量空间,得到了更好的迁移结果

具体方法

语言模型建模给定前t个单词,预测第t+1个单词的条件概率。
encoder-decoder NMT中,encoder用于特征的抽取,decoder可被视为一个给定source端句子,和target端前t个单词,预测target端第t+1个单词的条件概率。
最近的工作表明,单个语言模型在大规模语料上预训练,可以作为一个好的特征抽取器,但如果要用于NMT,该语言模型不仅作为特征抽取器,还需要作为一个生成器,这样的性能还没有被很好的调查。
本文使用单一的语言模型,同时建模source端的条件概率,和给定source端,target端的条件概率,概率如图1所示。
在这里插入图片描述

图1 LM3MT建模的概率

损失函数如图2所示。可以看到,source端的条件概率可以被理解为一个AE的loss,target端的条件概率就是传统的机器翻译损失函数。
在这里插入图片描述

图2 LM3MT的损失函数

还引入了一个可变参数,使得模型在训练前期更加关注于 L A E L^{AE} LAE,后期更加关注于 L M T L^{MT} LMT。图3中的 λ d λ_d λd前期大,后期小。
在这里插入图片描述

图3 改进的损失函数

具体来说,对于一对平行的句子: x 1 , x 2 , . . . x n 和 y 1 , y 2 , . . . y m {x_1,x_2,...x_n}和{y_1,y_2,...y_m} x1,x2,...xny1,y2,...ym,本文把它们拼接在一起,同时分别在X和Y前面加上language tags(我理解就是额外有一个language embedding,通过不同的language idx进行索引,取出language向量)。

在这里插入图片描述

图4 LM4MT训练输入输出

具体实验

使用数据:

  • En-Ro:
    • train:WMT16
    • dev:news-dev2016
    • test:news-test2016
  • En-De:
    • train:WMT14
  • En-Fr
    • train:?
      En-De和En-Fr的验证、测试集分别是news-dev2013和news-test2014??

language tag是否有效?

有效,我理解的是在inference阶段,一旦给模型送入了target language tag,模型从大量的训练样本中已经学会:接下来要开始翻译target语言了。而为什么不加language tag也能够work?可能在这种情况下,source端句子的末尾会加上终止符?也起到了提醒模型的效果。
在这里插入图片描述

图5 language tag是否有效?

transformer的层数影响?

由于没有encoder,LM4MT为达到和encoder-decoder同样的参数数量,可以增加transformer的层数,性能提升,如图6所示。
在这里插入图片描述

图6 transformer层数的影响

AE的作用?

为了证实AE能够帮助模型更加好地理解source端的句子,实验采用了source-original sentence(source-original指的是由source端语种的母语人写得,更加难被理解、翻译)来评测。

在这里插入图片描述

图7 AE的作用

直观的翻译效果?

不管是在低、中、高资源,还是使用小、大模型,LM4MT都好。
在这里插入图片描述

图8 直观的翻译结果

模型鲁棒性?

随着缺词率的增大,LM4MT的优势更加突出。可能的原因是:AE的损失函数帮助模型更好地理解source端的句子,甚至完成语义的重构(训练时,是否可以考虑给source端句子加噪?即,AE->DAE)
在这里插入图片描述

图9 模型鲁棒性

模型的迁移能力?

Pivot-Based Translation是指:当language1 -> language2存在,language2 -> language3存在时,模型不需要在language1 -> language3上直接训练,就能够完成翻译。具体来说,训练阶段,模型分别在<[l1] xxx [l2] xxx>和<[l2] xxx [l3] xxx>上训练。在推理阶段,模型首先输入[l1] xxx [l2],翻译得到language2,然后输入[l2] xxx [l3],翻译得到language3。
由于LM4MT使用同一个LM编码language1和language2,又给language2和language3进行编码,使得language1和language3间接地被对起到了相同的向量空间中。实验中l1l2l3分别是De、En和Fr。图10给出了实验结果。除了language1->language3的直接翻译结果,为了说明LM4MT在pivot-based NMT上的性能提升不是来自于l1->l2, l2->l3的级联提升,而是来自于统一的LM模型使得l1和l3完成了间接的对齐,也进一步说明source和target能够被对齐,l1->l2, l2->l3的性能也被给出,可以看到LM4MT对于l1->l2, l2->l3的性能提升并不是很大。
除了l1->l2->l3,也实验了l3->l2->l1。
在这里插入图片描述

图10 pivot-based translation

Zero-Shot Translation则更进一步,在en->de, de->en, en->fr, fr->en上训练,然后在en->de, de->en, en->fr, fr->en上(multilingual)、de->fr, fr->de(zero-shot)上测试。结果如图11所示,可以发现:虽然在multilingual上,LM4MT没有太大优势,但是它能够为没有出现的source和target对,完成更好的对齐。
在这里插入图片描述

图11 zero-shot translation

zero-shot translation经常出现的错误是,容易把source翻译成错误语种的target(off-target translation issue)。于是可以使用外部的language detection来检测模型翻译出来的语种是否正确,图12发现,LM4MT更好。在这里插入图片描述

图12 语种检测

既然LM4MT能够翻译出更准的语种,那么它性能上的提升是不是完全来源于这个?图13表明,就算是在正确语种上的结果,LM4MT的性能也更好。

在这里插入图片描述

图13 在正确语种上的结果

模型强大的迁移能力来源于哪里?

图14表明,模型强大的迁移能力很大程度上来源于AE的loss,encoder+decoder的模型只关注于target端的loss,而LM4MT同时关注了source和target。
在这里插入图片描述

图14 AE loss的作用

结论

  • AE的损失函数能够帮助模型更好地理解source语言本身,同时额外的source端监督使得模型同时考虑source和target,更好地完成了向量空间的对齐。而encoder-decoder只能关注target。

问题

  • 训练时,是否可以考虑给source端句子加噪?即,AE->DAE

猜你喜欢

转载自blog.csdn.net/jokerxsy/article/details/121097198