作者丨宋珍巧
1
简介
多语言机器翻译旨在用一个模型实现多语向的翻译功能,从而可以减少线上需求的模型数量,同时提升低资源语言的翻译性能。目前已有的多语言模型大多基于 Transformer 建模,受限于翻译性能和推理速度。基于该问题,字节跳动人工智能实验室在 "switch-GLAT: Multilingual Parallel Machine Translation via Code-Switch Decoder" 这篇论文中提出一个叫做 switch-GLAT 的非自回归多语言翻译模型。
给定一个源语言句子,switch-GLAT 可以自动生成上下文相关的 code-switch translations,进行 code-switch back-translation,这个过程可以极大地提升模型翻译性能。此外,得益于它的并行解码器,switch-GLAT 翻译过程非常高效。实验结果显示 switch- GLAT 的效果显著优于multilingual Transformer,同时翻译速度提升至 multilingual Transformer 的6.2倍。
论文地址:https://openreview.net/forum?id=5HvpvYd68b
2
为什么需要多语言并行机器翻译?
基于神经网络的机器翻译 (NMT) 是目前学术界和工业界共同认可的最优的机器翻译方法。近期多个工作[1, 2, 3]开始研究多语言机器翻译模型,即一个翻译模型支持多方向的翻译功能。多语言翻译模型有两个引人入胜的优点:第一,其可以减少线上翻译服务的数量,从而在多个语向翻译功能同时需要时可以实现更简单的服务部署;第二,多语言联合训练过程可以使得隐含在文本中的知识从高资源语言向低资源语言迁移,从而提升低资源语言的翻译性能[2]。
然而,目前极大多数的多语言神经翻译模型都是基于自回归框架构建,即其翻译过程从左至右按时序进行,使得翻译过程不够高效,模型受限于翻译速度。此外,在多语言场景下,所有的翻译方向都存在该低效推理的问题,使得低效翻译问题在多语言场景下更加严峻。因此,研究更高效的多语言翻译模型具有非常实际的意义和作用。
一个提升翻译速度非常直观的解决方案是构建多语言非自回归翻译模型 (NAT)。NAT 并行输出翻译句子中的所有词,因此可以极大提升翻译性能[4]。由于近期众多研究者对于 NAT 研究的推动,目前最优的 NAT 模型可以实现和自回归翻译模型 (AT) 可比的效果。例如,由[5]提出的 GLAT 模型在WMT21 德-英翻译上甚至打败了众多 AT 翻译模型。
沿着这条思路,本文思索多语言 NAT 模型能否在实现更快推理的同时,达到更高的翻译性能。由此,本文提出 switch-GLAT,其基于 GLAT 构建,并进行了更加精巧的改进。总体来说,switch-GLAT 的主要思想是引入 code-switch decoder:对于一个给定的源语言句子,其可以生成上下文相关的code-switch translations,然后进行 code-switch back- translation 训练从而提升翻译性能。具体来说,code-switch translations 被替换的词和原始的目标语言中的词具有相同的上下文,因而在训练过程中模型会拉近他们在语义空间中的距离,从而使得词语跨语言的表示对齐得更好,自然可以提升翻译性能。
本文在三个合并的 WMT 数据集上进行了实验,结果显示 switch-GLAT 相比 multilingual Transformer 不仅实现了更快的翻译速度,还达到了更高的翻译性能。此外,本文进一步验证了模型学到的跨语言表示的性能,结果显示 switch-GLAT 在跨语言词推断任务和句子检索任务上相比其他多语言自回归模型均取得了更好的效果,说明 switch-GLAT 确实学到了更优质的跨语言词向量。
3
模型方法
Figure 1
总体架构
switch-GLAT的训练目标主要分为两部分:multilingual translation loss 和 code-switch back-translation loss。其中,multilingual translation loss致力于使得模型具有多语言翻译能力,code-switch back-translation loss致力于学习更好的跨语言词表示,从而提升翻译性能,整个训练目标可表示如下:
其中, 是一个权重因子,用于控制两部分loss不同的重要性。整体模型框架如Figure 1所示。
Code-Switch Decoder
switch-GLAT 基于 GLAT 的平行解码器构建,通过加入 token 级别的语言标识符将其拓展成为 code-swich decoder。具体来说,我们分别在 encoder 的第一层和最后一层的每一个位置加入相应的语言标识向量(Figure1 左图)。Code-switch decoder 首先在多语言数据集上通过迭代训练不同语言对,获取多语言翻译性能,如 Figure1 左图显示。具体来说,给定包含 L 语对的多语言语料
表示如下:
其中,
表示基于 GLAT 的两步训练策略实现的翻译目标,
表示每一条目标句子的长度预测损失,如下所示:
通过多语言训练过程,switch-GLAT 可以在任意语对之间进行翻译。在token 级别语言标识符的帮助下,code-switch decoder 可以在给定位置生成上下文相关的任意给定语言的词语。
Code-Switch Back-Translation
由于 code-switch decoder 可以生成上下文相关的 code-switched translations,所以 switch-GLAT可以进行 code-switch back-translation (CSBT),从而帮助生成的其他语言的词语和原始目标语言句子中的词语更好地在语言空间中进行对齐,提升模型翻译性能。
具体来说,从原始多语言语料采样一个长度为S的子集
,其中
和
分别表示第i个样本的源语言和目标语言。首先,目标语言句子以一个给定概率
被随机 mask 掉一部分词,然后赋予被 mask 的位置一个随机采样的第三种语言的语言标识符,并对 mask 掉的位置进行解码,最后生成的序列
即由上下文相关的混合语言的词语组成,我们称之为 code-switched translations,如 Figure1 中间所示。通过该过程,我们可以得到一个CSBT语料集
。
之后 swich-GLAT 反过来将
作为输入,
作为输出进行模型训练,如 Figure1 右图所示,我们将该过程称为code-switch back-translation,损失函数定义如下:
随着训练过程的推进,mask 比率
和混合生成的语言数量都会逐渐增加。因此,大量丰富的 code-switched sentences 可以被生成,可以帮助模型更好地实现跨语言词表示的对齐。
Scheduled Code-Switch Training
如前文所示,本文使用
来平衡 multilingual training loss 和 code-switch back-translation loss。在这里,我们使用如下所示的阶跃函数来赋值
:
E表示一个预先给定的改变时间点,即当训练步数小于E时,我们设置
值为0,否则为1。
4
实验效果 & 分析
实验结果
switch-GLAT 在三个合并的 WMT 数据集上进行了实验,分别是WMT-EDF (WMT14 En-De, WMT14 En-Fr), WMT-EFZ (WMT14 En-Fr, WMT17 En-Zh)以及 WMT-many (WMT14 En-De, WMT14 En-Fr, WMT16 En-Ro, WMT16 En-Ru, WMT17 En-Zh)。
如上方表格所示,switch-GLAT 不仅在翻译性能上打败了 multilingual Transformer,并且还能提升翻译速度至6.2倍。同时,相比其他多语言自回归模型,switch-GLAT 也能达到更好的性能并极大地提升了翻译速度。
分析
为了验证我们提出的 CSBT 能得到更好的跨语言词表示,本文还进行质量分析实验。如下图所示:
从上述表格可以看出,在跨语言词推断任务和句子检索任务上,switch-GLAT 均达到了最高的准确率,说明本文所提方法可以实现更好的跨语言词表示,从而有利于下游任务的进行。
此外,我们对词表示进行了降维可视化,可以清楚地看到 switch-GLAT 学到的跨语言表示对齐效果最好,从而可以促进翻译性能的提升。
5
总结
本文提出了一个叫做 switch-GLAT 的非自回归多语言翻译模型,其包含了一个 code-switch decoder,可以自动生成上下文相关的 code-switch translations,从而做 code-switch back-translation。通过该过程,多语言翻译性能和跨语言词表示都能得到提升。此外,code-switch decoder 是基于 GLAT 的 parallel decoder 实现的,所以其解码过程非常高效,有效解决了自回归多语言模型解码速度慢的问题。实验证明 switch-GLAT 相比 multilingual Transformer 不仅可以实现更好的翻译性能,还能得到更快的翻译速度。
参考文献
[1] Firat et al. Multi-way, multilingual neural machine translation with a shared attention mechanism. ACL 2016.
[2] Johnson et al. Google’s multilingual neural machine translation system: Enabling zero-shot translation. TACL 2017.
[3] Aharoni et al. Massively multilingual neural machine translation. NAACL 2019.
[4] Gu et al. Non-autoregressive neural machine translation. ICLR 2018.
[5] Qian et al. Glancing transformer for non-autoregressive neural machine translation. ACL 2021.