稳定的神经机器翻译
作者:Yong Cheng, 软件工程师 , Google Research
近年来,使用 Transformer 模块的神经机器翻译 (Neural Machine Translation, NMT) 大获成功。NMT 模块基于深度神经网络,通常以完全数据驱动的方式在大型平行语料库(输入 / 输出文本对)上进行端到端的训练,而无需指定语言规则。
Transformer
https://ai.googleblog.com/2017/08/transformer-novel-neural-network.html
NMT 模块虽已获得巨大成功,但对于微小的输入干扰仍十分敏感,表现为出现各种错误(如信息丢失、过译或错译)。例如,给出一个德语句子后,最先进的 NMT 模块 Transformer 将提供正确的译文。
Transformer
https://arxiv.org/abs/1706.03762
“Der Sprecher des Untersuchungsausschusses hat angekündigt, vor Gericht zu ziehen, falls sich die geladenen Zeugen weiterhin weigern sollten, eine Aussage zu machen.”
(使用机器翻译译成英语:“The spokesman of the Committee of Inquiry has announced that if the witnesses summoned continue to refuse to testify, he will be brought to court.”),
但是,如果我们对输入的句子进行细微更改(将 geladenen 改为近义词 vorgeladenen),译文会变得大不一样(在本例中为翻译错误):
“Der Sprecher des Untersuchungsausschusses hat angekündigt, vor Gericht zu ziehen, falls sich die vorgeladenen Zeugen weiterhin weigern sollten, eine Aussage zu machen.”
(使用机器翻译译成英语:“The investigative committee has announced that he will be brought to justice if the witnesses who have been invited continue to refuse to testify.”)。
NMT 模块的稳定性不足,由于无法容忍这种不稳定性,许多商用系统不会应用这类模块。因此,学习稳定的翻译模块不仅受人欢迎,在许多情形下往往十分有必要。然而,虽然计算机视觉社区已对神经网络的稳健性展开广泛研究,但文献中针对稳定学习的 NMT 模块的先行研究却为数不多。
在《使用双重对抗输入的稳定神经机器翻译 》(Robust Neural Machine Translation with Doubly Adversarial Inputs)(此文将于 ACL 2019 上发表)一文中,我们提出使用已生成的对抗样本提升机器学习模型在面对微小输入干扰时提升稳定性的方法。我们学习了一个稳定的 NMT 模型,以直接克服用模型知识和歪曲模型预测意图所产生的对抗样本。我们发现,此法在标准基准测试中可以提升 NMT 模块的性能。
《使用双重对抗输入的稳定神经机器翻译 》
https://arxiv.org/abs/1906.02443ACL 2019
http://www.acl2019.org/EN/index.xhtml
使用 AdvGen 训练模型
理想的 NMT 模块可以针对含有细微差异的不同输入呈现相似的译文。此方法背后的理念是使用对抗输入干扰翻译模型,以提升模块的稳定性。这种方法采用名为对抗生成 (Adversarial Generation, AdvGen) 的算法实现,AdvGen 生成合理的对抗样本,对模型进行干扰,随后将其反馈送回模型,以此进行对抗性训练。虽然此方法受到对抗生成网络 (GAN) 的启发,但其并不依靠鉴别网络,而是仅在训练中使用对抗样本,有效地扩展训练集的范围。
对抗生成网络
https://arxiv.org/abs/1406.2661
第一步是使用 AdvGen 干扰模型。开始时,我们使用 Transformer 根据源语言输入句、目标语言输入句和目标语言句输出计算出翻译损失。随后,AdvGen 在源语言句子中随机选择一些单词,并假设这些单词均匀分布。每个单词拥有一个近义词列表,即用于替代的候选词,AdvGen 从近义词列表中选择在 Transformer 输出结果中最有可能出现错误的单词。随后,将生成的对抗句反馈给 Transformer,进而初始化对抗阶段。
在对抗阶段,对抗句反馈给 Transformer 模块。再次计算翻译损失,但这次使用源对抗输入。AdvGen 使用与上述相同的方法,使用目标语言输入句、替代候选词、用注意力矩阵计算得出的单词选择分布以及翻译损失,构造对抗 目标语言 样本。
最后,对抗句反馈回 Transformer,并计算使用源对抗样本、对抗目标语言样本和目标语言句的稳定性损失。如果干扰造成严重损失,需将模型在遇到相似干扰时的损失降至最低,从而不再犯相同错误。另一方面,如果干扰造成的损失很少,没有出现错误,即表明模型已能够处理此干扰。
模型性能
为了验证效果,我们将此方法应用于标准的中英和英德翻译基准测试。我们观察到,与同类 Transformer 模块相比,我们的模型在处理两个语言对时有显著提升,BLEU 得分分别提高 2.8 和 1.6,性能达到新的水平。
标准基准测试中 Transformer 模型(Vaswani 等,2017年)比较
随后,我们使用嘈杂的数据集对模型进行评估,该数据集使用类似于 AdvGen 过程生成。我们采用清洁数据集输入(例如标准翻译基准测试所使用的数据集),并随机选择单词进行近义词替换。我们发现,与近期其他模型相比,我们模型的稳定性有所提升。
人工嘈杂输入中 Transformer、Miyao 等人的模型和 Cheng 等人的模型对比
这些结果表明,我们的模型能够克服输入句中的微小干扰,提升泛化性能。该模型的表现超出其他同类翻译模型,在标准基准测试中的翻译表现已达到最高水平(state-of-the-art)。希望我们的翻译模块可以成为稳定的构建基块,用于提升许多下游任务的表现,尤其是对翻译输入缺陷十分敏感甚或无法容忍的任务。
致谢
此研究由 Yong Cheng、Lu Jiang 和 Wolfgang Macherey 开展。此外,感谢我们的领导 Andrew Moore 和 Julia (Wenli) Zhu。