返回介绍

数学基础

统计学习

深度学习

工具

Scala

十七、mBART [2020]

发布于 2023-07-17 23:38:25 字数 43370 浏览 0 评论 0 收藏 0

  1. 尽管已被广泛用于其他 NLP 任务,但自监督的预训练在机器翻译machine translation: MT 中还不是常见的做法。现有的方法要么是对模型进行部分预训练partially pre-train 、要么是仅关注英语语料。在论文 《Multilingual Denoising Pre-training for Neural Machine Translation》 中,作者表明:通过预训练一个完整的自回归模型可以获得显著的性能提升,其中这个自回归模型的目标是跨多种语言的完整文本进行加噪音和重建。

    在这项工作中,论文提出了mBART ,一个多语言 sequence-to-sequence: Seq2Seq 降噪自编码器。mBART 是通过将 BART 应用于跨多种语言的大型单语语料库 monolingual corpora 而训练的。通过 masking phrasepermuting sentence 来对输入文本添加噪音,并学习一个 Transformer 模型来恢复文本。与其他机器翻译的预训练方法不同,mBART 预训练了一个完整的自回归Seq2Seq 模型。mBART 仅对所有语言进行一次训练,提供一组参数。这组参数可以在 supervised settingunsupervised setting 下对任何 language pair 进行微调,无需任何 task-specificlanguage-specific 修改或初始化方案 initialization scheme

    大量的实验表明,这种简单的方法效果非常好。

    • 对于supervised sentence-level 机器翻译,mBART initializationlow-resource/medium-resource pair(小于 10Mbi-text pair )中带来了显著的增益(高达 12BLEU point ),而在 high-resource setting 中没有牺牲性能。这些结果通过 back-translation: BT 进一步改善,在 WMT16 English-RomanianFloRes 测试集上创造了新的 SOTA

      Romanian:罗马尼亚语;Nepali:尼泊尔语;Korean:韩语;Italian:意大利语。

    • 对于 document-level 机器翻译,mBARTdocument-level 预训练将结果提高了 5.5BLEU point 。在无监督的情况下,mBART 得到了一致的增益,并对相关性较低的语言对产生了首个非退化 non-degenerate 的结果(例如,Nepali-English 上的 9.5 BLEU 增益)。以前的预训练方案只考虑了这些 application 的子集,但论文尽可能地比较了性能,并证明 mBART 始终表现最佳。

    • 论文还表明,mBART 能够实现新类型的跨language pair 的迁移。例如,对一个language pair (如 Korean-English )中的 bi-text 进行微调,可以创建一个模型,该模型可以翻译在单语预训练集中的所有其他语言(如 Italian-English ),而无需进一步训练。

    • 论文还表明,不在预训练语料库中的语言也能从 mBART 中受益,这强烈表明 initialization 至少部分地是语言通用language universal 的。

    最后,论文详细分析了哪些因素对有效的预训练贡献最大,包括语言的数量和它们的整体相似度 overall similarity

  2. 相关工作:

    • 用于文本生成的自监督学习:这项工作继承了最近预训练为 NLP application 带来的成功,尤其是文本生成。预训练的模型通常被用作 initialization 从而用于微调下游任务(如,可控语言建模controllable language modeling、摘要、和对话生成)。

      具体到机器翻译,无监督的预训练方法也被探索出来,以提高性能。

      • 《When and why are pretrained word embeddings useful for neural machine translation?》 研究了预训练的 word embedding 在机器翻译中的应用。
      • 《Unsupervised pretraining for sequence to sequence learning》 提出将 encoder-decoder 模块作为两个独立的语言模型进行预训练。
      • 《Towards making the most of bertin neural machine translation》《Incorporating BERT into neural machine translation》 探索了融合方法从而集成预训练的 BERT 权重来改善神经机器翻译的训练。

      与大多数先前的工作相比,我们专注于预训练一个降噪自编码器,并为各种机器翻译 application 来适配整个模型的权重。

    • NLP 中的多语言性 Multilinguality:这项工作也与多语言学习的持续趋势 continual trend 有关,包括将 multilingual word embedding 对齐到通用空间,以及学习跨语言模型 crosslingual model 从而利用跨语言的 shared representation

      对于机器翻译来说,最相关的领域是多语言翻译 multilingual translation 。多语言翻译的最终目标是联合训练一个翻译模型,该模型同时翻译多种语言,并共享 representation 从而提高 low-resource language 的翻译性能(《Universal neural machine translation for extremely low resource languages》)。

      low-resource languagebi-text 语料很少的 language pair

      在本文中,我们聚焦于预训练阶段的多语言,并在标准的双语场景 bi-lingual scenario 下对所学模型进行微调。与多语言翻译相比,我们不需要跨多种语言的平行数据 parallel data ,只需要目标方向 targeted direction (即,翻译方向),这提高了对 low-resource languagespecific domain 的可扩展性。

      假设有 100 种语言,多语言翻译需要C1002=4950$ C_{100}^2 = 4950 $ 种 language pair 的平行数据 。而这里我们只需要 100 种语言的单语语料,以及翻译方向。

    • 文档翻译 Document Translation:作为关键应用之一,我们的工作也与之前将 document-level 上下文纳入神经机器翻译的工作有关。

      《Pretrained language models for document-level neural machine translation》是最相关的工作,也利用预训练的编码器(BERT )来处理更长的上下文。然而,他们的重点是设计新的 task-specific 技术,并在更 widerinput context 下做 sentence-level 翻译 。

      据我们所知,我们的多语言预训练模型是首个显示出在 document-level 翻译上相比标准Seq2Seq 模型有改进的结果。

    • 无监督翻译:这项工作也总结了之前的一些工作,其中在语言之间没有直接的平行语料库的情况下来学习翻译。

      • 当没有任何类型的平行数据时,《Unsupervised neural machine translation》《Unsupervised machine translation using monolingual corpora only》 提出从两个 direction 联合学习降噪自编码器和 back-translation ,然而,这需要良好的 initialization ,并且只在相似的 language pair 上效果良好。
      • 《Machine translation with weakly paired bilingual documents》 通过从维基百科中挖掘句子并将其作为弱监督的 translation pair 来解决这个问题。

      类似于 《Cross-lingual language model pretraining》《MASS: Masked sequence to sequence pre-training for language generation》,我们遵循第一种方法,并将我们预训练的模型作为 initialization

      我们还研究了使用 language transfer 的无监督翻译,这与 《Translating translationese: A two-step approach to unsupervised machine translation》类似,其中他们生成源语言的翻译语translationese ,并在 high-resource language 上训练一个系统来纠正这些中间结果。

      我们的工作也与 《XNLI: Evaluating cross-lingual sentence representations》《On the cross-lingual transferability of monolingual representations》的跨语言 representation learning 密切相关,我们也表明通过 mBART 学到的 representation可以在没有监督数据的情况下轻松地在语言之间迁移。

17.1 预训练

  1. 我们使用 Common Crawl: CC 语料库来预训练 BART 模型。我们的实验涉及微调一组模型(这些模型在不同子集上预训练)。

17.1.1 Data: CC25 语料库

  1. 数据集:我们对从 CC 语料库中提取的 25 种语言(CC25 )进行预训练。CC25 包括来自不同语言的、不同数量的文本(如下图所示)。遵从 《Cross-lingual language model pretraining》,我们通过对每种语言i$ i $ 的文本以比例λi$ \lambda_i $ 进行 up/down-sampling ,从而重新平衡语料库:

    (39)λi=1pi×piαjpjα

其中:pi$ p_i $ 是语言i$ i $ 在 CC-25 中的百分比;α=0.7$ \alpha=0.7 $ 为平滑参数。

pi$ p_i $ 是以 byte-level 还是 character-level 还是 word-level 还是 document-level ?作者并未说明。根据下图,猜测是 byte-level

α=0$ \alpha =0 $ 时,λi1pi$ \lambda_i\propto \frac{1}{p_i} $ ,即语言i$ i $ 的文本越少则采样比例越大;α=1$ \alpha=1 $ 是,λi=1$ \lambda_i=1 $ ,即均匀采样。

语言缩写:En 英语,Ru 俄语;Vi越南语;Ja日语;De 德语;Ro 罗马尼亚语;Fr 法语;Fi 芬兰语;Ko 韩语;Es 西班牙语;Zh 中文;It 意大利语;NI 尼加拉瓜语;Ar 阿拉伯语;Tr 土耳其语;Hi 印度语;Cs 捷克语;Lt 立陶宛语;Lv 拉脱维亚语;Kk 哈萨克语;Et 爱沙尼亚语;Ne 尼泊尔语;Si 斯里兰卡语;Gu 古吉拉特语;My 马来西亚语。

  1. 预处理:我们用一个在完整的 CC 数据上学习的 sentence-piece model (包括 250Ksubword token )来 tokenize 。虽然不是所有这些语言都被用于预训练,但这种 tokenization 支持对额外的语言进行微调。我们不应用额外的预处理,如 true-casing (即决定单词的合适的大小写)、或者对标点符号以及字符进行规范化。

    因为有 25 种语言,因此相当于每种语言包含 10K 规模的词表。

17.1.2 Model: mBART

  1. 我们的模型遵循 BARTSeq2Seq 预训练方案。然而 BART 只对英语进行了预训练,我们系统地研究了在不同语言的集合上预训练的影响。

  2. 架构:我们使用标准的 Seq2Seq Transformer 架构,模型配置为: 12 层编码器和 12 层解码器,隐层维度为102416 个注意力头,一共大约 680M 参数。我们在编码器和解码器的基础上加入了一个额外的 layer-normalization 层,我们发现它在 FP16 精度下稳定了训练。

  3. 学习:我们的训练数据覆盖了K$ K $ 种不同的语言D={D1,,DK}$ \mathcal D=\{\mathcal D_1,\cdots,\mathcal D_K\} $ ,其中Di$ \mathcal D_i $ 是语言i$ i $ 的单语料文档的集合。 我们假设可以获得一个噪声函数g()$ g(\cdot) $ ,它可以破坏文本。然后我们训练模型在给定g(X)$ g(X) $ 的条件下预测原始文本X$ X $ 。更正式而言,我们的目标是最大化Lθ$ \mathcal L_\theta $ :

    (40)Lθ=DiDXDilogP(Xg(X);θ)

    其中:X$ X $ 是语言i$ i $ 中的一个文本实例,P$ P $ 是由 Seq2Seq 模型定义的条件概率分布。

  4. 噪声函数 Noise Function:遵从 BART,我们在g()$ g(\cdot) $ 中使用了两种类型的噪声。

    • 首先,我们删除一个区间span 的文本并代之以一个 mask token 。我们根据泊松分布(λ=3.5$ \lambda = 3.5 $ )随机采样一个 span length ,从而掩码每个文本实例中 35% 的单词。

      这意味着平均每个文本序列的长度为 10 个单词。

    • 我们还对每个文本实例中的句子顺序进行了排列。

    解码器的输入是带有一个位置偏移的原始文本。一个 language id 符号 <LID> 被用来作为 initial token 从而用于预测句子。

    假设原始文本为 ABCDEFG,而被掩码的文本为 [mask]EFG。那么:

    • 编码器的输入为 [mask]EFG<LID>
    • 解码器的输入为 <LID>ABCDEF,解码器的 labelABCDEFG<LID>

    也可以使用其他噪音类型,如 《Phrase-based & neural unsupervised machine translation》 中的噪音,但我们将最佳噪音策略的探索留给未来工作。

  5. 实例格式 Instance Format:对每个 batch 的每个文本实例,我们对一个 language id 符号 <LID> 进行采样,并尽可能多地打包从<LID> 的相应语料库中采样的连续句子,直到它命中文档边界或达到 512max token length 。实例中的句子由 end of sentence token</S>)分隔。然后,我们将选定的 <LID> token 附加到该实例的末尾。在 "multi sentence" 层面的预训练使我们能够同时在句子翻译和文档翻译上工作。

    每个 batch 包含多种语言的文本,即:

    
    
    xxxxxxxxxx
    abcdefg...</S>ABCDEFG...</S>abAB<En> 一二三四五...</S>甲乙丙丁...<Zh>

    注意:这里的 <LID> 是位于输入序列的末尾,但是在馈入到 BART 时:

    • 如果是编码器的输入,则 <LID> 仍然位于原始序列的末尾。
    • 如果是解码器的输入,则 <LID> 放置到原始序列的开头。如果是解码器的输出,那么 <LID> 仍然位于原始序列的末尾。一旦 解码器发现解码的 token<LID>,那么解码结束。
  6. 优化:我们的完整模型(包括 25 种语言)是在 256Nvidia V100 GPU32GB )上训练了 500K 步 。每个 GPU 的总 batch size 约为 128Ktoken,与 BART 的配置相匹配。

    因为采用了梯度累加策略,因此 GPUbatch size 会增加。

    我们使用 Adam 优化器 (ϵ=106,β2=0.98$ \epsilon = 10^{-6},\beta_2=0.98 $ )和线性学习率衰减调度。总的训练时间约为 2.5 周。我们以 dropout rate = 0.1 开始训练,在 250K 步时减少到 0.05 ,在 400K 步时减少到 0

    所有的实验都是用 Fairseq完成的。

  7. 可复现性:所提出方法的一个潜在问题是可复现性问题,因为需要大量的单语语料和计算资源,以及在预训练期间对超参数进行细粒度选择。如果我们再次对系统进行重新训练,可能会得到略有不同的微调性能。为了解决这个问题,我们将发布预训练的 checkpoint ,以及完整说明的代码从而用于预训练一个新模型。

  8. 相关工作 XLM(-R)MASS:有几种密切相关的机器翻译多语言预训练的方法。

    • XLMXLM-R以多语言方式预训练 BERT,结果得到的参数可用于初始化翻译模型的编码器。与 XLM(-R) 不同的是,由于Seq2Seq 的配置,mBART 同时预训练编码器和解码器,这对于适配机器翻译应用来说更为自然。
    • mBART 类似,MASS 也是一种基于 Seq2Seq 的、具有 word-masking 的预训练技术。然而,MASS 的解码器只预测在编码器中被 maskedtoken ,而 mBART 重建了完整的 target 序列,不仅可以应用于 "masking" (是噪音函数中的一种) ,还可以应用任何可能的噪音函数。

    此外,XLMMASS 都没有显示出预训练模型改善两种语言上的翻译性能的证据。

17.1.3 预训练的模型

  1. 为了更好地衡量预训练期间不同 level 的多语言性的影响,我们构建了一系列模型,具体如下:

    • mBART25:如前所述,我们在所有 25 种语言上预训练一个模型。

    • mBART06:为了探索对相关的语言进行预训练的效果,我们对所有语言的一个子集(包含 6 种欧洲语言)进行预训练:Ro, It, Cs, Fr, Es, En (即 ,罗马尼亚语、意大利语、捷克语、法语、西班牙语、英语)。为了进行公平的比较,我们使用了 mBART25 batch size 的大约 1/4 ,这使得我们的模型在预训练期间对每种语言有相同的更新数量。

    • mBART02:我们预训练双语模型,采用英语和另外一种语言,最终包括各种 language pairEn-De, En-Ro, En-It 。我们使用了 mBART25 batch size 的大约 1/12

      注意,这里是每种 language pair 训练一个模型,而不是在这三个 pair 上总共训练一个模型。

    • BART-En/Ro:为了帮助建立对多语言预训练的更好理解,我们还分别在仅包含 En 语料库、以及仅包含 Ro 语料库上训练单语言 BART 模型。

      注意,这里是每种语言训练一个模型,而不是在包含英语和罗马尼亚语的语料库上总共训练一个模型。

    • Random:作为额外的 baseline ,我们还将包括与随机初始化的模型的比较,不对每个翻译任务进行预训练。由于不同下游数据集的大小不同,我们总是对超参数(架构、dropout rate 等)进行网格搜索,从而找到最佳的 non-pretrained configuration

    所有模型都使用相同的词表vocabularyCC25 语料库上学到的,包括 250Ksubword token )。并非所有的 token 都会频繁地出现在所有的预训练语料库中,但后来的实验表明:这种大型词表可以在多语言环境中提高泛化能力,即使是对未见过的语言。

17.1.4 扩大规模的问题

  1. 扩大训练数据和模型参数的规模一直是预训练的关键因素。与传统的半监督方法(如 back-translation )和其他机器翻译的预训练相比,我们以相对更深的架构在更多的单语数据上预训练 mBART 。这种数据规模和模型参数规模,结合新的多语言训练,是我们结果的核心,尽管未来的工作可以更仔细地研究每一种因素的相对贡献。

17.2 Sentence-level Machine Translation

  1. 本节显示,mBART 预训练在low resourcemedium resourcesentence-level Machine Translation setting 中提供了一致的性能提升,包括仅有 bi-text 和有 back translation 的情况,并且优于其他现有的预训练方案。我们还进行了详细的分析,以更好地了解哪些因素对这些提升贡献最大,并显示预训练甚至可以提高那些不在预训练数据中的语言的性能。

17.2.1 实验配置

  1. 数据集:我们收集了 24 对公开可用的平行语料 parallel corpora ,这些语料涵盖了 CC25 的所有语言。大多数 pair 来自以前的 WMTGu, Kk, Tr, Ro, Et, Lt, Fi, Lv, Cs, Es, Zh, De, Ru, Fr <-> En)和 IWSLTVi, Ja, Ko, Nl, Ar, It <-> En)比赛。我们还使用 FLoRes pair《The FLORES evaluation datasets for low-resource machine translation: Nepali–English and Sinhala–English》),IITBEn-Hi《The IIT Bombay English-Hindi parallel corpus》),以及 WAT19En-My 。我们将数据集分为三类:low resource (小于 1Msentence pair ),medium resource (大于 1M 且小于 10Msentence pair ),以及 high resource (大于 10Msentence pair )。

  2. 微调和解码:我们在 bi-text 数据的单个 pair 上微调 mBART,将 source language 馈入编码器并且解码 target language 。如下图所示,我们加载预训练的权重,在 bi-text 上训练机器翻译模型。对于所有的翻译方向,我们用 dropout rate = 0.3label smoothing = 0.2warm-up steps = 2500、最大学习率为 3e-5 来进行训练。我们对所有low resource, medium resourcepair 使用最多 40K 的训练更新,对 high resource pair 使用最多100K 的训练更新。最后的模型是根据验证集的似然 likelihood 来选择的。

    这里没有说明微调的序列长度是多少。由于这里是 sentence-level 的翻译,因此序列长度可能不大。相比较而言,document-level 的翻译中,序列长度为 512token

    我们解码期间使用beam-searchbeam size = 5 。我们的初步实验表明,微调过程在不同的随机数种子下通常是稳定的。因此,为了减少总的计算量,我们所有的结果都是以单次执行来报告的。我们用mosesdecoder的脚本来验证统计意义。

    注意:

    • 编码器输入的末尾为 <LID>,例如 <En> ;解码器输入的开头为 <LID>、解码器输出的末尾为 <LID> ,如 <Ja>
    • 编码器输入、解码器输入、解码器输出中,句子之间的分隔符均为 </s>

17.2.2 实验结果

  1. 主要结果:

    • Table 1 所示,与随机初始化的 baseline 相比,用预训练的 mBART25 权重初始化在所有 low resource pairmedium resource pair 上都有提高。我们观察到:

      • low resource pair (如 En-ViEn-Tr )和 noisily aligned pair (如 En-Hi )上有 12 个点或更多的 BLEU 收益。
      • 微调在 extremely low-resource 的情况下仍然失败,如En-Gu ,它仅有大约 10K 个样本。在这些情况下,无监督翻译更合适,见后面的实验。

      注意,我们的 baseline 系统使用随机初始化权重的常规 Transformers 的一些运行报告,这与原始竞赛中报告的 SOTA 系统有相当明显的差距。这种差异主要是因为:我们只在官方提供的bi-text 中训练和搜索 baseline 的超参数,而没有使用任何单语语料库或多语适配。例如:

      • WMT19 中,En -> GuSOTA 得分是 28.2 ,而 Table 1 中是 0 。这基本上是因为原始 bi-text data的质量很低,而 SOTA 系统通常使用额外的语言(如 Hi )来提高性能。
      • 类似的差距也可以在 Kk-EnLt-Enpair 中观察到,其中Ru 作为额外的语言也很关键。

      这一部分的主要目的是讨论多语言预训练在受限的 bi-text setting 中的效果,以便进行更好的比较。我们将在未来的工作中加入更多关于多语言翻译与预训练相结合的讨论。

    • 对于 high resource 的情况(Table 2 ),我们没有观察到一致的收益,当有超过 25M 的平行句子 parallel sentence 时,预训练略微损害了性能。当给出大量的 bi-text data 时,我们怀疑监督训练会刷掉预训练的权重。

  2. Plus Back-Translationback-translation《Improving neural machine translation models with monolingual data》)是一种标准的方法,用 target-side 的单语数据增强 bi-text 。我们将我们的预训练与back-translation 相结合,并使用 FLoRes 数据集在 low resource language pairEn-SiEn-Ne )上进行测试。我们使用与 《The FLORES evaluation datasets for low-resource machine translation: Nepali–English and Sinhala–English》相同的单语数据来生成 back-translation 数据。结果如下图所示。

    可以看到:用我们的 mBART25 预训练的参数初始化模型,在back-translation 的每个迭代中提高了 BLEU 分数,从而在所有四个翻译方向上产生了新的 SOTA 的结果。这表明,预训练的 mBART 权重可以直接插入到使用back-translation的现有 pipeline 中。

  3. 对比其它的预训练方法:我们还将我们的预训练模型与最近的自监督预训练方法进行了比较,如下表所示。我们考虑了 En-Ro 翻译,这是唯一一对有既定结果的翻译。可以看到:

    • 我们的 mBART 模型优于所有其他预训练模型,无论是否有back-translation 增强。
    • 我们还展示了与仅在相同的 EnRo 数据上训练的传统 BART 模型的比较。尽管比 mBART 的结果要差,但两者都比 baseline 有改进,这表明在多语言环境下的预训练是非常重要的。
    • 此外,结合 back-translation 可以带来额外的收益,从而使 Ro-En 翻译达到新的 SOTA

    此外,mBART25 的效果比 mBART02 的效果更差,是否意味着更多的无关预训练数据反而影响下游任务的效果?因为 mBART25CC25 预训练数据集包含了 mBART02 的预训练数据集。

    接下来的实验表明:如果目标语言的单语料数据很少,那么对更多语言进行预训练对下游翻译任务有帮助;否则,对更多语言进行预训练会略微损害下游翻译任务的性能。

17.2.3 分析

  1. 需要对多少种语言进行预训练:我们研究了在什么情况下,将目标 language pair 以外的语言纳入预训练是有帮助的。下表显示了四组 X-En pair 的表现。可以看到:

    • target language 的单语数据有限时(如 En-MyMy 的单语言数据大小约为 En0.5% ),对更多语言进行预训练最有帮助。
    • 相反,当 target language 的单语数据丰富时(如 DeRo),对多语言的预训练对最终结果略有损害(小于 1 BLEU)。在这些情况下,额外的语言可能会减少每种测试语言的可用容量。此外,mBART06Ro-En 上的表现与 mBART02 相似,这表明用类似语言(都是欧洲语言)进行预训练特别有帮助。

  2. 需要预训练多少个 step :我们在下图中绘制了 Ro-EnBLEU 得分与预训练 step 数的对比,在图中我们采用了保存的 checkpoint (每 25K 步)并应用了前面描述的相同的微调过程。可以看到:

    • 在没有任何预训练的情况下,我们的模型过拟合,表现比 baseline 差很多。
    • 然而,在仅仅 25K 步( 5% 的训练)的预训练之后,两个模型的表现都超过了最佳 baseline
    • 在剩下的预训练中,这两个模型一直在超越了 baseline 高达 3 BLEU 以上,在 500K 步之后还没有完全收敛。
    • 此外,mBART25 始终比 mBART02 略差,这证实了 Table 4 的观察。

  3. 需要多少 bi-textTable 1Table 2 显示,预训练对low resourcemedium resourcelanguage pair 有持续改善。为了验证这一趋势,我们绘制了不同大小的 En-De 数据集子集的性能。更确切地说,我们采用了完整的 En-De 语料库(2800pair ),并随机抽取了10K50K100K500K1M5M10M 的子集。我们将没有预训练的性能与 mBART02 的结果进行比较,如下图所示。可以看到:

    • 预训练的模型能够在只有 10K 个训练样本的情况下达到高于 20 BLEU 的效果,而 baseline 系统的得分是 0 。不难看出,增加 bi-text 语料库的规模可以改善这两个模型。
    • 我们的预训练模型一直优于 baseline 模型,但随着 bi-text 数量的增加,差距也在缩小,特别是在 10Msentence pair 之后。这一结果证实了我们在前面的观察,即我们的预训练对 high-resource pair 的翻译没有帮助。

17.2.4 泛化到不在预训练中的语言

  1. 在这一节中,我们表明:即使对于没有出现在预训练语料库中的语言,mBART 也能提高性能,这表明预训练具有语言通用性。类似的现象在其他 NLP 应用中的其他多语言预训练方法中也有报道。

  2. 实验设置:我们报告了使用预训练的 mBART25mBART06mBART02En-Ro)模型对 Nl-EnAr-EnDe-Nl 三种 pair 进行微调的结果。mBART06mBART02 模型没有对 ArDeNl 文本进行预训练,但所有语言都在 mBART25 中。 DeNl 都是欧洲语言,与EnRo 以及 mBART06 预训练数据中的其他语言有关。

  3. 实验结果:如下表所示:

    • 我们发现 English-Romanian 预训练相比 baseline 获得了很大的增益,即使在翻译一种不相关且未见过的语言(阿拉伯语Arabic )、以及两种未见过的语言(德语 German 和荷兰语 Dutch )时也是如此。

      NI 尼加拉瓜语是荷兰语的一种。

    • 当预训练中包括双方的语言时(即,mBART25 ),取得了最好的结果,尽管在其他情况下的预训练也具有令人惊讶的竞争力。

  4. 未见过的词汇:ArabicmBART02mBART06 中的语言关系较远,并且有一个不相交的字符集 character set 。这意味着它的word embedding 在很大程度上没有在预训练中被估计。然而,从 Table 5 中可以看到:mBART02/mBART06Ar-En pair 上获得的改进与在 Nl-En pair 上获得的改进相似。

    这一结果表明:预训练的 Transformer layer 学习了语言的普遍属性,即使在词汇重叠度 lexical overlap 极低的情况下也能很好地进行泛化。

  5. 未见过的 source language 和未见过的 target language:从 Table 5 中可以看到:

    • 如果两边都是未见过的语言,其性能(从与mBART25 的差异来看)比在预训练期间至少见到一种语言(source language 或者 target language )的情况要差。
    • 此外, mBART06X-En pair 上的表现优于 mBART02 ,尽管它们在 En-X pair 上表现相似。在 source-side 对未见过的语言进行微调是比较困难的(这里 source-side 就是 NIAr ),值得今后广泛研究。

17.3 Document-level Machine Translation

  1. 我们在 document-level 机器翻译任务中评估了 mBART ,其目标是翻译包含一个以上句子的文本片段(直到整个文档)。在预训练期间,我们使用多达 512token 的文档片段,允许模型学习句子之间的依赖关系。我们表明,这种预训练大大改善了 document-level 的翻译。

17.3.1 实验配置

  1. 数据集:我们在两个常见的 document-level 机器翻译数据集上评估性能:WMT19 En-DeTED15 Zh-En

    • 对于 En-De ,我们使用 WMT19 的文档数据来训练我们的模型,没有任何额外的 sentence-level 数据。
    • Zh-En 数据集来自 IWSLT 2014IWSLT 2015。遵从 《Document-level neural machine translation with hierarchical attention networks》,我们使用 2010-2013 TED 作为测试集。
  2. 预处理:我们用预训练中使用的方法进行预处理。对于每个 block ,句子被符号</S> 所分隔,整个实例以 specific language id<LID>)结束。平均而言,一个文档被分割成 24 个实例。

  3. 微调和解码:

    • 我们使用与 sentence-level 翻译相同的微调方案,不使用以前的工作所开发的任何 task-specific 的技术,如约束的上下文constrained context、或受限注意力 restricted attention
    • 对于解码,我们只是将 source sentence 打包成 block ,并对每个实例 block 进行自回归地翻译。该模型不知道要提前生成多少个句子,当预测到 <LID> 时,解码就会停止。我们默认使用 beam size = 5
  4. baseline 和评估:我们训练了 4 个模型:一个 document-levelDoc-MT)机器翻译模型,以及 baseline 为一个对应的 sentence-levelSent-MT)机器翻译模型,包括预训练和不预训练。我们使用 mBART25 作为 En-DeZh-En 的通用预训练模型。

    • 对于 En-De ,即使我们的 mBART25 Doc-MT 模型将多个句子解码在一起,但翻译的句子仍然可以与 source sentence 对齐,这使得我们可以同时在 sentence-levels-BLEU )和 document-leveld-BLEU )评估 BLEU 分数。
    • 然而,对于 Zh-En,由于测试数据中的对齐错误,我们无法产生与reference 相同数量的翻译句子。我们只提供 d-BLEU 分数。

    我们还将我们的模型与 Hierarchical Attention Networks《Document-level neural machine translation with hierarchical attention networks》)在 Zh-En 上进行了比较,这是 document-level 翻译的 SOTAnon-pretraining 方法。它们结合了两层注意力:首先是在句子内部,然后是跨句子。

17.3.2 实验结果

  1. 下表显示了 En-DeZh-Ensentence-leveldocument-level 的主要结果:

    • 随机初始化 vs. 预训练初始化:

      • 对于 sentence-level 训练和 document-level 训练,用预训练权重初始化的机器翻译模型比随机初始化的机器翻译模型要好得多。
      • 我们的 mBART25 模型(Sent-MTDoc-MT )也优于 HAN ,尽管 Sent-MTDoc-MT 不是为 document-level 机器翻译而定制化的。
    • Sent-MT vs. Doc-MT:对于 En-DeEn-Zh

      • mBART25 Doc-MT 模型的表现超过了 mBART25 Sent-MT

        超出的绝对数值在 1.0 分左右,不是特别多。

      • 相反,没有预训练的模型的趋势相反,即 Random Doc-MT 模型的表现远远差于 Random Sent-MT

        对于这两个数据集,随机初始化的 Doc-MT 未能发挥作用,导致其结果比 sentence-level 模型差得多。如此大的性能gap 表明,预训练对 document level 的性能至关重要。一般而言,很难大量收集高质量的document level 数据,这表明预训练可能是未来工作的一个强有力的策略。我们还在 Figure 6 中包括一个采样到的例子。

17.4 Unsupervised Machine Translation

  1. 除了有监督的机器翻译,我们还在对于 target language pair 没有 bi-text 的任务上评估我们的模型。我们定义了三种类型的无监督翻译:

    • 没有任何类型的 bi-text :一个常见的解决方案是从 back-translation 中学习。我们表明,mBART 为这些方法提供了一个简单而有效的初始化方案。

      即,这里只有单语语料。

    • 对于 target language pair 没有 bi-text ,但两种语言都出现在与其他 pairbi-text 语料中:这种配置在多语言机器翻译系统中很常见。在本文中,我们将重点限制在为单个 language pair 建立模型,并将多语言机器翻译的讨论留给未来的工作。

      即,没有 A -> Bbi-text,但是有 A -> CD -> Bbi-text

      注意,A,B,C,D 都在预训练语料中。

    • 没有 target pairbi-text ,但有从其他语言翻译成 target languagebi-text :即使 source language 没有任何形式的 bi-textmBART 也支持有效的迁移。

      即,没有 A -> Bbi-text ,但是只有 D -> Bbi-text,没有 A 的任何 bi-text

      注意,A,B,D 都在预训练语料中。

17.4.1 通过 Back-Translation 的无监督机器翻译

  1. 数据集:我们在 En-DeEn-NeEn-Si 上评估我们的预训练模型。EnDe 都是共享许多子词 subword 的欧洲语言,而 NeSi 则与 En 完全不同。我们使用与监督学习相同的测试集,并使用相同的预训练数据(CC25 )进行 back-translation 以避免引入新信息。

    只有 CC25 如何进行 back-translation?因为 back-translation 需要预先训练好一个翻译模型。而 CC25 没有 bi-text 来微调从而得到一个翻译模型。猜测是:不需要微调,用 CC25 预训练好的模型本身就可以充当一个翻译模型。

  2. 学习:遵从《Cross-lingual language model pretraining》XLM)的做法,我们用 mBART 的权重初始化翻译模型,然后以 source sentence (通过 on-the-fly back-translation 来生成)为条件来生成单语句子 monolingual sentence (即,翻译为单语文本)。此外,对于 on-the-fly back-translation 的前面 1000 步,我们将 mBART 限制为仅生成 target languagetoken ,从而避免 mBART 复制 source text

    这里是没有任何类型的 bi-text 的情形。

  3. 结果:下表显示了与 non-pretrained 模型、以及采用现有预训练方法的模型相比的无监督翻译结果。可以看到:

    • 我们的模型在所有方向上都比non-pretrained 模型取得了很大的进步。
    • 对于不相似的 pairEn-Ne, En-Si), 我们的模型显著超越了 XLM。在这些 pair 上,现有的方法完全失败。
    • 对于 En-De ,我们的模型与 XLMMASS 相比也是相差无几的。

17.4.2 通过 Language Transfer 的无监督机器翻译

  1. 我们还报告了 target language 与其他 source language 出现在 bi-text 中时的结果。

    即,没有 A -> Bbi-text ,但是只有 D -> Bbi-text,没有 A 的任何 bi-text

  2. 数据集:我们只考虑 X -> En 的翻译,并从监督学习的配置中选择了 12language pairbi-text ,包括 Indic languageNe, Hi, Si, Gu )、European languageRo, It, Cs, Nl)、East Asian languageZh, Ja, Ko)以及ArabicAr)。

  3. 结果:如下表所示,预训练的 mBART25 模型在每个language pair 上进行了微调,然后在剩余 language pair 上进行了评估。我们还在对角线上展示了直接的微调性能,以供参考。可以看到:

    • 除了 Gu-En 之外(最后一列),所有微调模型都能实现迁移,因为在 Gu-En 中,监督模型完全失败(0.3 BLEU )。
    • 在某些情况下,我们可以取得与监督结果相似(Cs-En,第四行)甚至更好的结果(Ne-En, Gu-En,倒数第三行和最后一行)。

    我们还在下图中展示了一个语言迁移的例子。

    作为对比,我们也在没有预训练的随机初始化模型上应用同样的程序,其结果总是约为 0 BLEU 。这表明多语言预训练是非常重要的,它能产生跨语言的 universal representation ,因此一旦模型学会了将一种语言翻译成英语,它就能学会用类似的 representation 来翻译所有语言到英语。

    下图中,同一个浅色阴影块表示相同语系。

  4. 什么时候 language transfer 是有用的:Table 8 还显示,迁移效应的大小随着不同语言的相似度而变化。

    • 首先,对于大多数语言对来说,当微调也是在同一语系 language family 中进行时(浅色阴影块所示),语言迁移效果更好,特别是在 Indic languageHi, Ne, Gu)之间。
    • 然而,显著的词表共享vocabulary sharing 并不是有效迁移的必要条件。例如,Zh-En (第一行)和 It-En (第七行)分别从 Ko-EnAr-En 上取得了最好的迁移学习效果。尽管(Zh,Ko)(It,Ar) 之间的词表重合度很低(甚至是字符重合度也很低)。
  5. 使用 back-translation:我们在下表中比较了使用 back-translation 的无监督机器翻译 vs. 语言迁移的无监督机器。当有相近的语言翻译可以迁移时,语言迁移效果更好。

    此外,我们显示了结合这两种技术的有前景的结果。我们从最好的被迁移模型 transferred model 开始,在预训练中使用的同一单语语料库上应用(迭代式的)back-translation。下表显示了 back-translation1 轮迭代的结果。我们看到所有的 language pair 都有改进。对这两种方法的完整分析将作为未来的工作。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文