“问渠那得清如许,为有源头活水来”,通过前沿领域知识的学习,从其他研究领域得到启发,对研究问题的本质有更清晰的认识和理解,是自我提高的不竭源泉。为此,我们特别精选论文阅读笔记,开辟“源头活水”专栏,帮助你广泛而深入的阅读科研文献,敬请关注。
作者:知乎—Johnson7788
地址:https://www.zhihu.com/people/be_with_you
原文: Multilingual Denoising Pre-training for Neural Machine Translation
作者: Yinhan Liu‡∗, Jiatao Gu†
代码:
https://github.com/pytorch/fairseq/tree/master/examples/mbart
论文时间: 2020年11月
1. 降噪自编码: DAE, Denoising Autoencoder, 旨在采用部分损坏的输入,然后恢复原始的未失真输入。例如使用MASK破坏原始的序列,然后尝试模型恢复原始序列。代表模型有:BERT, UniLM, RoBERTa, XLM, T5, BART等。
2. mBart 是多语言的seq2seq翻译系统,分为预训练和微调2部分,在微调数据较少即low-resource时效果很好,在high-resource时效果和不做预训练一样。
3. mBart 由于是多语言的,所以新的语言的翻译对的微调效果也很好,有点类似meta-learning的感觉,它已经学会了不同语言的翻译之间的规律,所以能很快学会一种新的语言翻译。
4. mBart的噪声函数,即如何破坏原始输入,包括2种,1. 按照泊松分布抽取token,然后进行Mask,2. 对一个原始输入的不同句子进行调换顺序。
5. 对于多种语言,每个实例都在句子末尾加上一个特殊的token,例如图2,句子末尾加上一个<En>,本论文中叫做语言id symbol<LID>,这点类似Google 的T5模型,一般的多语言翻译模型都会在编码器中加入一个特殊的token,表示源语言,在解码器中加入一个特殊token,表示目标语言。
6. 对于低资源和高资源,查看图5,准备了10^4对到10^7对微调数据,对于模型性能的影响。
7. 类似的模型有M2M100 和MBart-50, 都是由facebook开源的。
8. mbart 不仅可以用于翻译,也可以用于文本生成和文本摘要,具体使用教程请参考huggeface的官方文档。
01
简介
本文展示了多语言降噪预训练在各种机器翻译(MT)任务中产生显著的性能提升。我们提出了mBART-一个使用BART目标在大规模单语言语料库上预训练的seq2seq降噪自编码(Lewis等人,2019)。mBART是第一个通过对多种语言的完整文本进行降噪来预训练一个完整的seq2seq模型的方法,而以前的方法只关注编码器、解码器或重建文本的部分。预训练一个完整的模型,可以直接对其进行微调,用于有监督(包括句子级和文档级)和无监督的机器翻译,而不需要进行特定任务的修改。我们证明,添加 mBART 初始化可以在除最high-resource设置之外的所有环境中产生性能提升,包括对low-resource MT 的提升12个BLEU点和对许多文档级和无监督模型的提升超过5个BLEU点。我们还表明,它能够迁移到没有双文本或不在预训练语料库中的语言对,并广泛分析了哪些因素对有效的预训练贡献最大。
尽管其在其他NLP任务中被广泛采用(Devlin等,2019;Liu等,2019;Yang等,2019b;Lewis等,2019;Raffel等,2019),但自监督的预训练在机器翻译(MT)中尚未得到普遍实践。现有的方法(Lample和Conneau,2019年;Edunov等人,2019年;Lewis等人,2019年;Raffel等人,2019年)已经提出了部分预训练模型或只关注英语语料库。在本文中,我们表明,通过预训练一个完整的自回归模型,其目标是在多语言噪声中重建完整的文本,可以实现显著的性能提升。
在这项工作中,我们提出了mBART--一种多语言seq2seq(Seq2Seq)降噪自编码。"mBART "通过将BART(Lewis等人,2019)应用于跨多种语言的大规模单语言语料库来训练。输入的文本通过mask短语和换句进行噪声化,并学习一个单一的Transformer(Vaswani等人,2017)模型来恢复文本。与其他MT的预训练不同(Lample和Conneau,方法2019;Song等人,2019),mBART预训练了一个完整的自回归Seq2Seq模型,mBART对所有语言进行一次训练,提供了一组参数,可以在监督和无监督设置中为任何语言对进行微调,而不需要任何特定任务或语言特定的修改或初始化方案。
大量的实验表明,这种简单的方法效果非常好。我们首先关注现有的MT基准。对于有监督的句子级MT,mBART 初始化在低/中资源对(<10M 双文本对)上带来了显著的收益(高达 12 个 BLEU 点),而没有牺牲high-resource环境下的性能。这些结果在反译(BT)的情况下得到进一步改善,在WMT16英语-罗马尼亚语和FloRes测试集上创造了新的先进水平。对于文档级MT,我们的文档级预训练将结果提高了5.5个BLEU点。对于无监督的情况,我们看到了一致的改进,并为关联性较低的语言对产生了第一个非生成结果(例如,在尼泊尔语-英语上的9.5个BLEU增益)。之前的预训练方案只考虑了这些应用的子集,但我们尽可能地比较了性能,并证明mBART始终表现最佳。
我们还表明,mBART能够实现新类型的跨语言对迁移。例如,对一种语言对(如韩语-英语)的双文本进行微调,就可以创建一个模型,该模型可以从单语言预训练集(如意大利语-英语)中的所有其他语言进行翻译,而无需进一步的训练。我们还表明,不在预训练体中的语言可以从mBART中获益,强烈地表明初始化至少是部分语言通用的。最后,我们详细分析了哪些因素对有效的预训练贡献最大,包括语言的数量及其整体相似性。
02
多语种降噪预训练
我们使用Common Crawl(CC)语料库(§2.1)来预训练BART模型(§2.2)。我们在后面几节的实验涉及到对不同子集上预训练的一系列模型进行微调(§2.3)。
图1:CC25语料库的大小。按单语语料库大小排列的25种语言的清单。
2.1 数据:CC25语料库
数据集
我们对从 CC 语料库(Wenzek 等人,2019 年;Conneau 等人,2019 年)中提取的 25 种语言(CC25)进行了预训练, CC25 包括来自不同国家的语言,其文本数量各不相同(图 1)。按照Lample和Conneau(2019)的做法,我们通过对每个语言i的文本进行上/下采样,以λi的比例对语料库进行重新平衡。
其中pi是CC-25中每种语言的比例。我们使用平滑参数α=0.7。
预处理
我们用一个sentencepiece模型(SPM;Kudo和Richardson,2018)对包括25万个子词标记的完整CC数据进行tokenize。虽然并非所有这些语言都用于预训练,但这种token化支持在其他语言上进行微调。我们并没有应用额外的预处理,如true-casing或标点token/字符的标准化。
2.2 模型:mBART
我们的模型遵循BART(Lewis等人,2019)Seq2Seq预训练方案,本节中已经回顾。而BART只针对英语进行预训练,我们系统地研究了预训练对不同语言集的影响。
架构
我们使用标准的Seq2Seq Transformer架构(Vaswani等人,2017),在16个头(680M参数)上有12层编码器和12层解码器,模型维度为1024。我们在编码器和解码器上都加入了一个额外的层归一化,我们发现在FP16的精度下可以稳定训练。
学习
我们的训练数据涵盖了K种语言。D = {D1,...,DK},其中每个Di是语言i中的单语种文档集合。我们(1)假设下面定义的破坏文本的噪声函数g,(2)训练模型以预测给定g(X)的原始文本X。更形式上说,我们的目标是最大化Lθ。
其中X是语言i中的一个实例,分布P由Seq2Seq模型定义。
噪声函数: 按照Lewis等人(2019)的说法,我们在g中使用了两种类型的噪声,我们首先删除文本的跨度,并用mask token代替。我们根据泊松分布(λ=3.5)随机抽取跨度长度,对每个实例中35%的词进行mask。我们还对每个实例中的句子顺序进行了排序。解码器的输入是有一个位置偏移的原文。一个语言id符号<LID>作为初始token来预测句子。也可以使用其他的噪声类型,例如Lample等人(2018c)中的噪声类型,但我们将最佳噪声策略的探索留给未来的工作。
实例格式: 对于每一个批次的实例,我们对一个语言id symbol<LID>进行采样,并从<LID>对应的语料库中尽可能多的连续句子进行打包,直到达到文档边界或达到512的最大token长度。实例中的句子由句末(</S>)token分隔。然后,我们将选定的<LID>token附加到该实例的结尾。在''多句''级别的预训练使我们能够同时进行句子和文档翻译。
优化: 我们的完整模型(包括25种语言)在256个Nvidia V100 GPU(32GB)上进行500K步的训练。每个GPU的总批次大小约为128K个token,与BART(Lewis等人,2019)配置相匹配。我们使用Adam优化器(ǫ=1e-6,β2=0.98)和线性学习率衰减计划。总的训练时间约为2.5周。我们在训练开始时,dropout rate为0.1,并在250K步和400K步时将其降低到0.05。所有实验都是用Fairseq(Ott等人,2019)完成的。
可复制性: 所提出的方法的一个潜在问题是可复制性问题,因为需要大量的单语语料和计算资源,在预训练时对超参数进行精细训练选择。如果我们再次对系统进行重新训练,很可能会得到稍有不同的微调性能。为了解决这个问题,我们将发布预训练的checkpoint以及预训练新模型的完整指令代码。
相关工作: XLM(-R)和MASS:有几种密切相关的多语言预训练方法用于机器翻译。XLM(Lample和Conneau,2019)和XLM-R(Conneau等人,2019)以多语言的方式预训练BERT(Devlin等人,2019;Liu等人,2019),所得参数可用于初始化翻译模型编码器。与XLM(-R)不同的是,由于Seq2Seq的设置,mBART同时预训练编码器和解码器,更自然地适应机器翻译应用。
与mBART类似,MASS(Song等人,2019)也是一种基于Seq2Seq的预训练技术,具有''单词mask''。然而,MASS的解码器只预测编码器中被mask的token,而mBART则重建完整的目标序列,这不仅允许使用''mask'',而且允许使用任何可能的噪声函数。
此外,XLM和MASS都没有显展示预训练模型改善两种语言翻译性能的证据。
2.3 预训练模型
为了更好地衡量不同程度的多语言在前期训练中的效果,我们建立了如下一系列模型。
- mBART25 我们使用§2.2中描述的设置,对所有25种语言进行模型预训练。
- mBART06 为了探索预训练对相关语言的影响,我们在六种欧洲语言的子集上预训练一个模型。Ro、It、Cs、Fr、Es和En。为了公平的比较,我们使用的是 mBART25 批次的 1/4 ∼,这使得我们的模型在预训练过程中,每一种语言的更新次数是相同的。
- mBART02 我们预训练双语模型,使用英语和另一种语言进行四种语言对。En-De, En-Ro, En-It. 我们使用的批次大小为mBART25的1/12。
- BART-En/Ro 为了帮助建立对多语言预训练的更好理解,我们还分别只在En和Ro语料库上训练单语言BART模型。
- 随机:作为额外的基线,我们还将包括与每个翻译任务的模型随机初始化而不进行预训练的比较。由于不同下游数据集的大小不同,我们总是对超参数(架构、dropout等)进行网格搜索,以找到最佳的非预训练配置。
所有模型都使用相同的单词(§2.1)。并非所有的token都会经常出现在所有的预训练语料库中,但后来的实验表明,这种大单词量可以提高多语言环境下的泛化能力,即使是对于未见过的语言。
2.4 扩大规模事项
扩展训练数据和模型参数一直是预训练的关键因素(Devlin等,2019;Conneau等,2019;Raffel等,2019)。与传统的半监督方法(如backtranslation)和其他MT的预训练相比(Lample和Conneau,2019;Song等人,2019),我们在更多的单语数据上预训练mBART,架构相对更深。这种规模,结合新的多语言训练,是我们结果的核心(第3至5节),尽管未来的工作可以更仔细地研究每个的相对贡献。
03
句子级机器翻译
本节表明,mBART预训练在中low-resource的句子级MT环境中提供了一致的性能提升,包括仅有双文本和backtranslation,现有的预训练,并优于其他方案(§3.2)。我们还提出了一个详细的分析,以更好地了解哪些因素对这些收益贡献最大(§3.3),并表明预训练甚至可以提高预训练数据中不存在的语言的性能(§3.4)。
3.1 实验设置
数据集。我们收集了24对公开的平行语料,涵盖了CC25的所有语言(图1)。大多数来自之前的WMT(Gu,Kk,Tr,Ro,Et,Lt,Fi,Lv,Cs,Es,Zh,De,Ru,Fr ↔ En)和IWSLT(Vi,Ja,Ko,Nl,Ar,It ↔ En)比赛。我们还使用FLoRes(Guzm´an等人,2019,En-Ne和En-Si),来自IITB的En-Hi(Kunchukuttan等人,2017),以及来自WAT19的En-My(Ding等人,2018,2019)。我们将数据集分为三类low-resource(<1M句对)、medium resource(>1M和<10M)和high-resource(>10M)。
微调与解码。我们对单对双文本数据进行微调,将源语言输入编码器,对目标语言进行解码。如图2所示,我们加载预训练的权重,并在双文本上用教师强制训练MT模型。对于所有方向,我们以0.3 dropout、0.2标签平滑、2500个warm-up步数、3e-5最大学习率进行训练。我们对所有中low-resource对使用最大40K的训练更新,对high-resource对使用100K的训练更新。最终的模型是根据验证似然来选择的。我们使用beam search,beam大小为5,进行解码。我们的初步实验表明,在不同的种子下,微调过程基本稳定。因此,为了减少总的计算量,我们所有的结果都是以单次执行来报告的。我们用mosesdecoder的脚本验证了统计学意义。
图2:我们的多语言降噪预训练(左)和下游MT任务微调(右)的框架,其中我们使用(1)句子换位和(2)词跨度mask作为注入的噪声。在编码器和解码器上都添加了一个特殊的语言id token。所有任务都使用一个多语言预训练模型。
3.2 主要结果
如表1所示,与随机初始化的基线相比,用预训练的mBART25权重初始化在所有的中low-resource对上都有收益。我们观察到在En-Vi、En-Tr等low-resource对和En-Hi等噪声对齐对上有12个或更多BLEU点的增益。在极low-resource的情况下,如En-Gu,有10k个例子,微调仍然失败。在这些情况下,无监督翻译比较合适,见§5.2。对于high-resource情况(表2),我们没有观察到一致的收益,当有超过25M的并行句子时,预训练会略微伤害性能。当给出大量的双文本数据时,我们怀疑监督训练会冲淡预训练的权重。
表1.低/中资源机器翻译: 预训练比随机初始化的基线持续改进,在low-resource语言对(如Vi-En)上的收益尤其大。
表2:high-resource机器翻译,其中所有的数据集都来自他们最新的WMT比赛。我们只在En-X翻译上评估我们的模型。
请注意,我们的基线系统使用随机初始化权重的vanilla Transformers运行的一些报告,在原始比赛中报告的SoTA系统之间有相当明显的差距,这种差异主要是因为我们只在官方提供的bitext上训练和搜索基线的超参数,而没有使用任何单语言语料或多语言适应。例如,在WMT19中,En→Gu的SoTA得分为28.2,而表1中为0。基本上是因为原始bitext数据质量较低,SoTA系统普遍使用Hi等附加语言来提升性能。在Kk-En和Lt-En等对中也可以观察到类似的差距,语言也是其中Ru作为额外的关键。本部分的主要目的是讨论多语言预训练在受限bitext环境下的效果,以便更好的比较。我们将在未来的工作中加入更多关于多语言翻译与预训练相结合的讨论。
增加backtranslation: backtranslation(BT;Sennrich等人,2016)是一种用目标方单语数据增强双文本的标准方法。我们将我们的预训练与BT结合起来,并在使用FLoRes数据集(Guzm´an等人,2019)的low-resource语言对-En-Si和En-Ne上进行测试。我们使用与Guzm´an等人(2019)相同的单语数据生成BT数据。图3显示,用我们的mBART25预训练参数初始化模型,在每次迭代backtranslation时都能提高BLEU分数,从而在所有四个翻译方向上获得新的最先进结果。它表明,预训练的mBART权重可以直接插入使用BT的现有pipeline中。
图3:在FLoRes上进行预训练 backtranslation,并进行两次BT迭代。
与其他预训练方法的比较。我们还将我们的预训练模型与最近的自监督预训练方法进行比较,如表3所示。我们考虑了En-Ro翻译,这是唯一一对有确定结果的翻译。我们的mBART模型优于所有其他预训练模型,无论是否有BT增强。我们还显示了与仅在相同的En和Ro数据上训练的传统BART模型的比较。两者都比基线有改进,尽管比mBART结果差,这表明在多语言环境下的预训练是必不可少的。此外,结合BT会带来额外的收益,从而为Ro-En翻译带来新的最先进技术。
表3:与WMT16 RO-EN上的其他预训练方法的比较。
3.3 分析
我们还提出了额外的分析,以更好地量化我们的前期训练何时有帮助。
你应该进行多少种语言的预训练?我们研究了什么时候预训练对包括目标语言对以外的语言是有帮助的,这些语言对将在微调期间使用。表4显示了四对X-En的性能。当目标语言单语数据有限时,对更多语言的预训练帮助最大(例如,En-My,其中My的大小约为En的0.5%)。
相反,当单语言数据丰富时(De,Ro),多语言的预训练会稍微伤害最终结果(<1 BLEU)。在语言上可能会减少这些情况,额外的每个测试语言的可用容量。此外,mBART06在Ro-En上的表现类似于mBART02的事实表明,用类似的语言进行预训练特别有帮助。
需要多少个预训练步?我们在图4中绘制了Ro-En BLEU得分与预训练步数的关系,其中我们将保存的checkpoint(每25K步)并应用§3.1中描述的相同的微调过程。在没有任何预训练的情况下,我们的模型过拟合,表现比基线差很多。然而,仅仅经过25K步(5%的训练),两个模型的表现都超过了最佳基线。在剩下的预训练中,模型不断改进超过3个BLEU,在500K步后还没有完全收敛。此外,mBART25始终略差于mBART02,这证实了表4中的观察结果。
表4:En-X翻译的预训练语言。大小指的是X的单语数据大小,En的大小作为参考。所有的预训练模型在训练过程中都控制看到相同数量的英语实例。
图4:Ro-En随Pre-training步数的微调曲线。mBART25和mBART02在25K步后均优于最佳基线系统。
需要多少双文本?表1和表2显示,对于低度和中度资源语言对,预训练一直在提高。为了验证这一趋势,我们绘制了En-De数据集不同大小子集的性能。更准确地说,我们采用完整的En-De语料库(28M对),并随机抽取10K、50K、100K、500K、1M、5M、10M数据集。我们将没有预训练的性能与mBART02的结果进行对比,如图5所示。预训练的模型在只有10K训练例子的情况下,能够实现超过20个BLEU,而基线系统的得分为0.毫不奇怪,增加bitext语料库的大小可以改善两个模型。我们的预训练模型始终优于基线模型,但随着bi-text数量的增加,特别是在10M句子对之后,差距会缩小。这个结果证实了我们在§3.2中的观察,即我们的预训练对high-resource对的翻译没有帮助。
图5:En-De随bitext大小的微调曲线。x轴为对数刻度。
3.4 泛化到非预训练语言上
在本节中,我们表明,即使对于预训练语料中没有出现的语言,mBART也可以提高性能,这表明预训练具有语言通用性。类似的现象在其他NLP应用的多语言预训练方法中也有报道(Pires等,2019;Wang等,2019;Artetxe等,2019)。
实验设置:我们报告了使用预训练的mBART25、mBART06和mBART02(EnRo)模型对Nl-En、Ar-En和De-Nl这三对语言进行微调的结果。mBART06和mBART02模型没有对Ar、De和Nl文本进行预训练,但所有语言都在mBART25中。De和Nl都是欧洲语言,与En、Ro以及mBART06预训练数据中的其他语言相关。
结果:如表5所示,我们发现英语-罗马尼亚语的预训练有很大的收益,即使在翻译一门关系遥远的未见语言(阿拉伯语)和两门未见语言(德语和荷兰语)时也是如此。当预训练包括两种测试语言时,取得了最好的效果,尽管其他语言的预训练具有惊人的竞争力。
未见单词:阿拉伯语与mBART02和mBART06中的语言关系密切,并且有一个不相干的字符集。这意味着它的词嵌入在预训练期间基本上没有被估计。然而,我们在Ar-En对上获得了与Nl-En相似的改进。这个结果表明,预训练的Transformer层学习了语言的通用属性,即使在最小的词义重叠的情况下也能很好地泛化。
未见的源语言或目标语言。表5显示了未见语言在源语言、目标语言或双方语言时的不同表现。如果两边都是未见语言,那么表现(与mBART25的差异)比在预训练期间至少看到一种语言的情况要差。此外,虽然En-X对的表现相似,但mBART06在X-En对上的表现优于mBART02。在源端对未见语言进行微调是比较困难的,值得今后广泛研究。
表5:对未见语言的泛化: 语言迁移结果,在没有对语言对进行预训练的情况下对语言对进行微调。mBART25 在预训练期间使用所有语言,而其他设置至少包含一个未见语言对。对于每个模型,我们还显示了与mBART25结果的差距。
04
文档级机器翻译
我们在文档级机器翻译任务上评估mBART,其目标是翻译包含多个文本句子片段(最多整个文档)。在预训练过程中,我们使用了多达512个token的文档片段,让模型能够学习句子之间的依赖关系。我们表明,训练能显著提高文档级翻译的效果。
4.1 实验设置
数据集: 我们在两个常见的文档级MT数据集上评估性能。WMT19 En-De和TED15 Zh-En。对于En-De,我们使用WMT19的文档数据来训练我们的模型,而不需要任何额外的句子级数据。Zh-En数据集来自IWSLT 2014和2015(Cettolo等人,2012,2015)。继Miculicich等人(2018)之后,我们使用2010-2013年的TED作为测试集。
预处理:我们用预训练中使用的方法进行预处理。对于每个区块,句子用句末符号(</S>)分开,整个实例用特定的语言id(<LID>)结束。平均来说,文档被分割成2-4个实例。
微调与解码: 我们使用与句子级翻译(§3.1)相同的微调方案,而不使用之前工作(Miculicich等人,2018年;Li等人,2019年)开发的任何特定任务技术,例如约束语境或受限注意力。对于解码,我们简单地将源句子打包成块,并对每个实例块进行自回归翻译。该模型不知道提前生成多少句子,当<LID>被预测时,解码就会停止。我们默认使用beam大小为5。
基线与评估。我们训练了4个模型:一个文档级(Doc-)MT模型(§4.1)和一个对应的句子级(Sent-)MT模型(§3.1)作为基线,有预训练和无预训练。我们使用mBART25作为En-De和Zh-En的通用预训练模型。对于En-De,尽管我们的mBART25 Doc-MT模型将多个句子一起解码,但翻译的句子可以与源句对齐,这使得我们可以评估句子级(s-BLEU)和文档级(d-BLEU)的BLEU分数5。我们只提供这个方向上的d-BLEU分数。
我们还将我们的模型与Zh-En上的分层注意力网络(HAN,Miculicich等人,2018)进行了比较,这是该对文档级翻译的最先进的非预训练方法。他们结合了两层注意力--先是在句子内,然后是跨句子。
4.2 主要结果
表6显示了En-De和Zh-En在句子层面和文档层面的主要结果。
表6.En-De和Zh-En上的文档级机器翻译。文献级机器翻译对En-De 和 Zh-En的翻译。(×)随机初始化的DocMT模型不能产生与原句对齐的翻译,所以只能进行文档评价。
随机vs.预训练: 使用预训练权重初始化的MT模型,在句子级和文档级训练中,都以较大的幅度优于随机初始化模型。我们的mBART25模型(包括Sent-MT和DocMT)也优于HAN(Miculicich等人,2018),尽管它们没有为文档级MT定制。
Sent-MT与Doc-MT的对比 对于En-De和En-Zh,mBART25 Doc-MT模型在句子级上的表现比mBART25微调后的表现要好很多,扭转了没有预训练的模型的趋势。对于这两个数据集,随机初始化Doc-MT失败,结果比句子级模型差很多。如此大的性能差距表明,预训练对文档级性能至关重要。一般来说,很难大量收集高质量的文档级数据,这说明预训练可能是未来工作的一个有力策略。我们还在图6中加入了一个抽样的例子。
图6
图6:mBART25 Sent-MT和Doc-MT的文档级翻译实例,从TED15 Zh-En的测试集中拿出来。Doc-MT系统产生的翻译更加流畅和连贯,更接近参考翻译。例如,Doc-MT模型产生多个''And''来连接句子,使其读起来更好,而Sent-MT模型不包含全局知识,独立产生句子。此外,这两个系统产生的翻译效果比没有经过预训练的模型要好得多,其中没有经过预训练的Doc-MT模型完全不能产生可读的翻译输出。
05
无监督的机器翻译
除了监督机器翻译,我们还在目标语言对没有双文本的任务上评估我们的模型。我们定义了三种类型的无监督翻译。
1. 没有任何形式的双文本。一个常见的解决方案是从backtranslation中学习(Artetxe等人,2017;Lample等人,2018c)。我们表明,mBART为这些方法提供了一个简单有效的初始化方案(§5.1)。
2. 目标对没有双文本,但这两种语言都出现在与其他对的双文本语料中。这种设置对于多语言MT系统来说很常见(Johnson等人,2017;Gu等人,2019)。在本文中,我们将重点限制在为单一语言对构建模型上,并将多语言MT的讨论留给未来的工作。
3. 没有目标语对的双向文本,但有从其他语言翻译成目标语言的双向文本。mBART支持有效的迁移,即使源语言没有任何形式的双向文本(第5.2节)。
5.1 通过backtranslation进行无监督的机器翻译
数据集 我们在En-De、En-Ne和En-Si上评估我们的预训练模型。En和De都是欧洲语言,共享许多子词,而Ne和Si则与En相当不同。我们使用与监督基准§3.1相同的测试集,并使用相同的预训练数据(CC25)进行backtranslation,以避免引入新的信息。
学习: 按照Lample和Conneau(XLM,2019),我们用mBART权重初始化翻译模型,然后学习预测单语句子,条件是由on-the-fly BT生成的源句。此外,我们约束mBART在on-the-fly BT的前1000步中只生成目标语言的token,以避免它复制源文本。
结果: 表7显示了与非预训练模型以及与现有预训练方法的模型比较的无监督翻译结果。我们的模型在所有方向上都比非预训练模型取得了很大的收益,超过现有方法完全失败的异构对(En-Ne,En-Si)上明显优于XLM。对于En-De,我们的模型与XLM和MASS的表现也相当出色。
表7:通过BT在不同的语言之间无监督MT。
5.2 通过语言迁移的无监督机器翻译
我们还报告了目标语言与其他一些源语言出现在双文本中时的结果。
数据集:我们只考虑X→En翻译,从§3.1中选择了12种语言对的位数,涵盖了印度语(Ne、Hi、Si、Gu)、欧洲语言(Ro、It、Cs、Nl)、东亚语言(Zh、Ja、Ko)和阿拉伯语(Ar)。
结果:预训练的mBART25模型在每个语言对上进行微调,然后在其余语言对上进行评估,见表8。我们还在对角线上展示了直接微调性能(§3),供参考。我们看到,除了来自Gu-En的监督模型完全失败(0.3 BLEU)之外,所有微调模型的所有对都有迁移。在某些情况下,我们可以达到与监督结果相似(Cs-En)甚至更好的结果(Ne-En,Gu-En)。我们还在图7中展示了一个语言迁移的例子。
表8:通过语言迁移对X-En翻译进行无监督MT。在一个语言对上微调的模型直接在另一个语言对上测试。我们用灰色显示直接微调结果,用浅灰色显示相似语言组内的语言迁移。我们将每对语言的最高迁移分数加粗。
图7:一个通过语言迁移的无监督MT的例子。用Ko或Zh进行微调的mBART模型能够将Ja句子翻译成En,几乎和监督情况下一样正确。
作为比较,我们还在没有预训练的随机初始化模型上应用同样的程序,结果总是以≈0 BLEU结束。这说明多语言预训练是必不可少的,它能产生跨语言的通用表示,因此,一旦模型学会了将一种语言翻译成En,它就能学会翻译所有具有类似表示的语言。
什么时候语言迁移有用?表8还显示,语言迁移效果的大小随不同语言的相似性而变化。首先,对于大多数语对来说,当微调也在同一语系中进行时,语言迁移的效果更好,尤其是印地语之间(Hi、Ne、Gu)。但是,有效的语言转换并不需要大量的单词共享。例如,Zh-En和It-En分别在Ko-En和Ar-En上取得了最好的转换学习效果。尽管(Zh,Ko)和(It,Ar)之间的单词重合度很低(甚至是字符重合度),但仍能达到最好的转换学习效果。
与BT:我们在表9中介绍了无监督MT与BT与语言迁移的比较,当存在一个接近的语言翻译来迁移时,语言迁移的效果更好。此外,我们展示了结合这两种技术的有前途的结果。我们从最好的迁移模型开始,并在预训练中使用的相同单语语料上应用(迭代)BT。表9列出了BT迭代1次的结果。我们看到所有的对子都有改进。两种方法的完整分析留待以后的工作。
表9:X-En翻译的无监督MT的BT与语言迁移。对于语言迁移,我们将最好的迁移分数与迁移来的语言一起列出。
06
相关工作
用于文本生成的自监督学习 这项工作继承了近期预训练为NLP应用带来的成功(Peters等,2018;Radford等,2018;Devlin等,2019;Yang等,2019b;Liu等,2019),特别是用于文本生成(Radford等,2019;Song等,2019;Dong等,2019;Raffel等,2019;Lewis等,2019)。预训练的模型通常被用作微调下游任务的初始化,如可控语言模型(Shirish Keskar等人,2019)、总结(Song等人,2019;Liu和Lapata,2019)和对话生成(Zhang等人,2019)。
具体到机器翻译,也探讨了无监督预训练方法来提高性能。Qi等(2018)研究了预训练词嵌入在MT中的应用;Ramachandran等(2017)提出将编码器-解码器模块作为两个独立的语言模型进行预训练。Yang等人(2019a);Zhu等人(2020)探索了融合方法,将预训练的BERT权重纳入其中,以改善NMT训练。与之前的大多数工作不同,我们专注于预训练一个降噪自编码,并调整整个模型的权重以适应各种MT应用。
NLP任务中的多语言性这项工作也与多语言学习的持续趋势有关,包括将多语言词嵌入(Mikolov等,2013;Chen和Cardie,2018;Lample等,2018b)对齐到通用空间,以及学习跨语言模型(Wada和Iwata,2018;Lample和Conneau,2019;Conneau等,2019)以利用跨语言的共享表示。
对于MT来说,最相关的领域是多语言翻译(Firat等,2016;Johnson等,2017;Aharoni等,2019;Arivazhagan等,2019),最终目标是联合训练一个翻译模型同时翻译多个,语言方向在共享表示,以提高low-resource语言的翻译性能(Gu等,2018)。在本文中,我们将重点关注预训练阶段的多语种问题,并在标准双语场景下对所学模型进行微调。
与多语言翻译相比,我们不需要跨多语言的并行数据,而是有针对性的方向,提高了对low-resource语言和特定领域的扩展性。
文档翻译: 作为关键应用之一,我们的工作也与之前将文档级上下文纳入神经机器翻译的努力有关(Wang等,2017;Jean等,2017;Tiedemann和Scherrer,2017;Miculicich等,2018;Tu等,2018)。Li等人的相关工作,也是利用预训练编码器(BERT)来处理较长的上下文。然而,重点是设计新的特定任务技术,并在更广泛的输入上下文下做句子级翻译。据我们所知,我们的多语言预训练模型在上显展示改进的结果,是第一个使用标准Seq2Seq模型的文档级翻译。
无监督翻译。这项工作也总结了之前在没有直接平行语料的情况下学习语言间翻译的努力。当没有任何形式的并行数据时,Artetxe等人(2017)和Lample等人(2018a)提出了从两个方向联合学习降噪自编码和backtranslation,然而,这需要良好的初始化,并且只在相似(2019)解语言对上有良好的效果。Wu et al通过从维基百科中挖掘句子,并将其作为弱监督翻译对。与Lample和Conneau(2019)和Song等人(2019)类似,我们遵循第一种方法,并将我们的预训练模型作为初始化步骤。我们还研究了使用语言迁移的无监督翻译,这类似于Pourdamghani等人(2019),作者生成源语言的translationese,并在high-resource语言上训练一个系统来纠正这些中间语句.它是为了纠正也密切相关Conneau等人(2018)和Artetxe等人的跨语言表示学习,,我们也表明由mBART学习的表示可以在没有监督数据的情况下轻松地在语言之间迁移。
07
结论
我们证明多语言降噪预训练能够在句子层面和文档层面显著改善监督和无监督机器翻译。我们分析了预训练何时以及如何与其他方法(如backtranslation)相结合最为有效。我们的结果学习能力的也显示了从多语言预训练学到的表示的迁移。
在未来的工作中,我们将把目前的预训练扩展到更多的语言,例如,mBART100模型。我们模型的规模使得在生产中部署成本很高--未来的工作将探索预训练更高效的模型。
代码语言:javascript复制本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。
“源头活水”历史文章
NiN 论文阅读
强化学习论文阅读笔记:RODE
实例分割(SOLOv2|NIPS2020)——增强版SOLO
ICLR2021 | 显存不够?不妨抛弃端到端训练
EEGdenoiseNet:使用神经网络进行EEG去噪
Zero-Shot Learning in Modern NLP 现代NLP中的零样本学习
XLNet--自回归语言模型的复兴
联邦学习 | FedProx 算法
Deep Layer Aggregation - 聚合不同尺度特征图的架构
CVPR 2021 | 利用时序差分进行动作识别的最新Backbone--TDN
视觉子领域中的Transformer
一种高效评估预训练模型是否适合当前任务的方法
CVPR'21 | involution:超越convolution和self-attention的神经网络新算子
特征提取网络HS-ResNet更多源头活水专栏文章,请点击文章底部“阅读原文”查看
分享、在看,给个三连击呗!