带有间接监督的无监督神经机器翻译(未开源)
https://arxiv.org/pdf/2004.03137.pdf
虽然使用单语数据进行无监督神经机器翻译 UNMT 可以取得不错的结果,但是与监督 NMT 仍存在较大差距,缺点主要在于缺乏监督信号。作者引入一种多语言无监督 NMT 框架 MUNMT,利用了高资源 high-resource 语言对到零资源 zero-resource 翻译的弱监督信号,例如对于无监督语言对 En-De,利用来自 En-Fr 的平行数据集的信息,在一个模型中联合训练无监督翻译。MUNMT 基于多语言模型,不需要对标准的无监督 NMT 进行修改。
MUNMT 考虑了多语言监督的两种变体:
a) 与训练无关的多个单语数据,如使用 Fr 来帮助 En-De 的训练;
b) 引入其他双语对的不严格的无监督,如利用平行 En-Fr 语料对指导无监督 En-De 翻译。
当只考虑单语数据时,MUNMT 利用多个无监督翻译任务,联合训练一个单一的模型为所有的翻译方向服务。图1 (c) 和 (d) 以两种方式利用来自其他语言的平行数据,对于 En→De 无监督方向,前向交叉翻译中 作为 teacher,将平行数据 (En, Fr) 的 Fr 部分翻译为 De,得到的综合数据 (En, Fr, De) 可以用来改善目标系统 。该方法可看作是一种一致性的正则化方法,为双语输入对生成相同的 De 输出。对于后向交叉翻译,使用 将 De 翻译成 Fr,然后使用 将 Fr 翻译成 En,合成的 (De, En) 可用于 。
MUNMT 借鉴了多语言 NMT 的思想,而多语言翻译在无监督的情况下还没有得到很好的研究。MUNMT 与 pivot-based zero-shot MT 的主要区别在于,后者用了两个监督 NMT 模型,例如对于 Fr-De ,同时需要 Fr-En 和 En-De 的平行训练语料,这比 MUNMT 的局限性更大。
论文贡献:
a) 将无监督 NMT 扩展为多语言 MUNMT,能够翻译所有语言对,所做的假设较少,可以广泛应用;
b) 建议首先利用不相关的双语数据训练 UNMT,这种方法也可以用于其他无监督的跨语言问题;
c) 实验表明 MUNMT 的六个基准翻译平均比单个模型高出3个以上的 BLEU score,甚至比跨语言 BERT 的效果更好。
NMT 模型的基本构件可以是 RNNs (Sutskever et al., 2014)、CNNs (Gehring et al., 2017)和Transformer (Vaswani et al., 2017)。对于监督 NMT,给定包含源语言 和目标语言 的平行数据集 , 表示从 到 的监督训练过程, 表示语言 中的一个句子,单个句子的训练损失为:
将单个 NMT 扩展为多语言模型,在一个模型中训练多个语言翻译,E 表示所有平行数据的翻译方向,损失函数为:
UNMT 训练时只使用单语数据,严重依赖于机器翻译的双重结构,因此需要将源语言和目标语言相关联,主要方法包括 word embedding alignment (Artetxe et al., 2017, 2018b; Lample et al, 2018b,a),joint learning of embeddings (Lample et al, 2018c) 和预训练的语言模型 (Lample and Conneau, 2019; Song et al, 2019),这些方法可以看作是系统的良好初始化,然后通过去噪自动编码器和迭代的反向翻译 LM 进行训练,得到用一种语言编码和生成句子的先验,在模型中加入噪声可以防止系统只进行复制,并提高翻译质量。令 为语言 的语言模型,将单语数据转化为合成的源句,以合成的源句作为源数据,并以原始句作为目标数据来训练模型。例如,已有单语 的数据,想要训练从 到 的翻译,可以在推理模式下用模型将 句子翻译为 ,得到 和 的伪平行数据,然后用监督的方法对模型进行从 到 的训练。用 表示反向翻译过程。反向翻译是无监督连接两种语言,以类似监督方式训练模型的关键步骤。对于两种语言 、 和单语数据集 、,这两个步骤的损失分别为:
其中 C 为随机删除、交换或 blank 某些单词的噪声模型, 表示同一个模型用 句子推断出的 句子。UNMT 的总损失为:
训练时 逐渐减少为0,如果使用预训练的语言模型进行初始化, 可直接设为0。
UNMT 存在一个假设,即不同语言的潜在表征需要在共享的潜在空间中,由于只有单语数据可用,所以共享表征确保模型具有这些语言的连接。只有基于此,反向翻译才能正常工作,共享模型是满足这一假设的最简单方法之一。
MUNMT 为包含监督和无监督的三角训练结构,在训练中同时使用单语数据和平行数据,设置主要遵循 Lample and Conneau (2019),但是只使用预训练的词向量进行初始化,而没有使用预训练的跨语言 LM 以提高效率。
(1)单语数据的 MUNMT
目的是训练一个能够在任意单语对之间执行翻译的系统。例如已有三种单语的三元组 (En, Fr, De) 和 En-Fr 的双语数据,训练一个无监督的 En→Fr 系统,结构如图1所示,只需要一个平行语料对,所有翻译方向使用共享模型,包括词汇表、嵌入、编码器和解码器。为了区分不同的语言,将语言嵌入到编码器和解码器的输入中,以区分特定的语言。词嵌入、位置嵌入和语言嵌入作为输入添加在一起。
(2)有平行数据的 MUNMT
训练分为两个步骤:多语言联合训练和跨语言翻译。第一步,联合训练一个多语言翻译模型,类似没有双语数据的 MUNMT,不同之处在于,有监督的方向和无监督的方向都放在一个模型中,模型共享策略有助于将无语言知识从监督方向转化为无监督方向。第二步,利用双边合成数据:a) 前向交叉翻译将双语数据 的 Fr 部分翻译成 De,得到 (En, Fr, De),使用 En-De 数据对无监督的 En→De 方向进行微调;b) 反向交叉翻译将单语 De 翻译成 Fr,再从 Fr 翻译为 En,得到的 De-En 平行数据也可以用来微调模型。
算法1中的步骤1到5为多语言联合训练过程,步骤6和7同时引入正向和反向辅助数据。首先对所有混合数据(单语 , , 及平行数据 )进行跨语言字节对编码 BPE,使用 FastText 生成向量,在训练的每个 epoch,迭代地在语言模型、反向翻译和监督训练之间切换。语言模型对三种语言的单语数据进行去噪自动编码,反向翻译只在无监督的方向上进行,在这些方向上没有可用的平行数据,共有四个方向可以进行反向翻译。对于剩下的两个具有平行数据的方向进行监督训练。在每个 epoch 后调整系数以控制训练过程,逐渐退火语言模型系数 到0。联合训练的损失为:
实验结果
MUNMT 中监督方向的性能略有下降,但 zero-shot 方向的性能有了很大的提高。与贪心解码相比,beam search 使得伪数据更加偏向于所学习的模式。结果表明在执行前向和后向交叉翻译时,MUNMT 对抽样策略具有很强的鲁棒性,改变平行数据语言几乎不影响性能,减小平行数据的规模至25%,MUNMT仍然可以很好地工作。
三种不同的方法来利用监督数据指导训练得到图3的性能曲线,只使用单语数据进行的 MUNMT 训练:
• 使用额外的平行数据 A 微调 MUNMT,类似多任务学习。The high-level language free knowledge can transfer from supervised language pairs to unsupervised ones through parameter sharing。结果表明,微调方法只需几个更新步就可以改进比较系统;而在持续微调后,性能会急剧下降,因为模型可能倾向于多任务学习中已经探索过的持续微调的监督方向。
• 带有前向翻译的 C 明显高于黑色水平基线,但低于带有后向翻译的 B。后向交叉翻译通过一种相对间接的方式引入多语言信号,将目标端作为真实数据,通过交叉翻译生成合成数据。由于传统的反向翻译已经包含在双语 UNMT 中,因此反向跨语言翻译的信息增益有限。
• 目标侧的辅助数据比源侧的辅助数据更重要。
结论
多语言机器翻译框架 MUNMT 结合监督和无监督的方法,将不同的训练方案混合到一个模型中,并利用前向和后向的跨语言翻译,大大提高了无监督NMT方向的性能,通过联合训练可以在一个模型中翻译所有的方向。未来工作:建立包含大量语言的通用 MUNMT 系统,探索 a) 更多的监督语言对是否会使语言习得受益? b) MUNMT 有无可能用完全不相关的无监督语言对来改进无监督翻译? c) 进一步分析 UNMT 如何从其他语言对的间接监督中学习。