近年来,神经机器翻译(NMT)系统的性能越来越好,有些甚至达到了与人类同等的水平。如果真的能部署与人工翻译相媲美的系统,那就能实现 “无人工翻译 “的梦想,而这个行业似乎越来越沉溺于此。
是什么推动了这些神经机器翻译(NMT)系统的成功?一方面,这肯定与模型架构方面取得的进展有关,尤其是在机器翻译领域发明的 Transformer 模型。另一方面,高质量的训练数据仍然是训练高性能机器翻译系统的硬性要求。
尽管目前已经建立了众多高性能翻译系统,但它们所覆盖的领域和语言组合还只是冰山一角。在当今世界使用的约 6000 种语言中,大多数语言都没有机器翻译系统,也没有可用于构建这些系统的语言数据。但即使是英语、荷兰语或日语等资源较丰富的语言,在某些语言环境中,现有机器翻译系统的表现也会比我们希望或期望的要差。例如,当我们要翻译与特定领域相关的文本数据时,就会出现这种情况,这往往因为这些待翻译的数据与翻译模型在训练过程中看到的训练数据大相径庭。其中一个例子就是有关蛋白质折叠的科学文章。在这种情况下,现成的模型(如英语到荷兰语的亚马逊翻译模型)可能不会有很好的表现。
我们已经提到,世界上大多数语言都没有语言数据或语言数据很少。就我们想讨论的大多数可能遇到的翻译领域而言,情况其实也并无不同。我们在某些领域拥有大量数据,例如议会会议记录(Europarl 语料库)或 TED 演讲,但在许多其他领域却并非如此。
低资源语言和低资源领域文本的翻译问题已通过各种方式得到解决。在本文中,我们将重点介绍一种以数据为中心的方法用于解决机器翻译模型的领域适应问题或低资源语言数据翻译问题,即通过反向翻译生成合成并行数据。首先,我们将简要介绍这些术语,然后举几个我们在 TAUS 实验中的例子。
合成数据生成是指无需收集和标注新数据就能自动生成数据。合成数据生成技术有很多种,这些技术在很大程度上取决于我们正在研究的领域和任务(例如,图像分类与情感分析与机器翻译)。合成数据生成有两种形式:数据增强和纯粹的合成数据生成。数据增强指的是在已有数据的基础上生成新数据,例如裁剪照片。纯粹的合成数据生成指的是数据完全由人工生成,例如,通过使用图像作为指令生成的或由文本生成模型Purely合成的数据可以反过来用于数据增强,以增强我们已经掌握的自然数据。
计算机视觉和合成数据生成
计算机视觉是计算机科学的一个领域,它开创了大多数合成数据生成技术。当我们想到视觉任务的训练数据可能是什么样子时,就可以理解这一点了。比方说,我们想训练一个能识别照片中猫的分类器。如果我们想用更多的猫的例子来增强我们的数据集,我们可以直接使用我们已有的照片,然后将它们变成黑白的、旋转、裁剪……但仍将它们定义为是描绘猫的!或者,如果我们想使用纯粹的合成图像,我们甚至可以使用像 DALL-E 这样的图像生成模型,仅根据文本指令 “猫 “来生成猫的图像。
说到自然语言处理( NLP),由于语言数据的离散性,语言数据增强的使用并不那么简单。因此,如果我们尝试类似于我们在讨论计算机视觉时所描述的方法,将句子中的一些单词互换位置,那么我们最终得到的句子很可能在语法上是不正确的,或者至少与我们最初得到的句子含义不同。尽管如此,仍有许多不同的方法可以让合成数据生成在自然语言处理(NLP)中发挥作用,尤其是在涉及情感分析等任务时。这里有一个很好的入门指南。(请注意,该资料以及许多其他资料(这其中翻译并非数据增强和合成数据生成的主要任务)都将反向翻译与往返翻译混为一谈。本博客的其余部分将详细介绍反向翻译。往返翻译与反向翻译类似,但是是在它们都使用翻译模型生成合成数据的意义上,且二者生成合成数据的方式和目的不尽相同。在往返翻译中,某个源语言的句子被翻译成另一种目标语言,然后又被翻译回原始源语言,最终形成原始句子的合成意译(synthetic paraphrase)。
通过反向翻译生成合成数据
说到机器翻译任务,大多数合成数据生成技术都依赖于手头的文本生成模型,即翻译模型,因为翻译当然也是文本生成的一种方式。使用最广泛、最有用的技术叫做反向翻译。反向翻译技术使我们可以充分利用单语语言数据,与双语平行数据相比,单语数据总是更丰富、更容易获得。其工作原理如下:如果我们的目标是建立一个能将源语言 A 翻译成目标语言 B 的机器翻译系统,而我们有语言 B 的单语数据,那么我们可以利用一个知道如何将语言 B 翻译成语言 A 的语言模型来翻译语言 B 中的单语实例,然后将它们与其语言A的译文配对,就可以得到一个包含 A → B 实例的合成平行数据集。要从 B 翻译到 A,我们可以使用已有的模型,或者在从头开始训练模型时,我们可以使用 A → B 中的原始数据,翻转源语和目标语,然后使用这些数据训练一个模型。这个合成平行数据集可以用来训练我们正在构建的机器翻译系统,即从 A 语言翻译到 B 语言的系统。
为什么反向翻译效果好?
首先要注意的是,合成数据实际上只包括一端,即并行训练数据集的源端。目标端是自然数据,即目标语言中的单语句子。这意味着,通过使用我们的反向翻译合成并行数据集作为训练数据,我们将向我们的模型展示许多有效的目标句子,这将加强解码器的功能。有些源语句子也是有效的、格式正确的,但有些实际上是糟糕的翻译。不过,这应该不会对我们的系统造成太大影响,因为它永远不会被要求翻译类似的错误句子。回到蛋白质折叠的例子,假设我们有一些英语单语句子,我们希望将这些句子反向翻译成荷兰语,从而建立一个荷兰语 → 英语的模型,该模型在处理 “蛋白质折叠领域 “的句子时表现出色。我们用来将英语翻译成荷兰语的模型并不好,它将 “蛋白质折叠 “翻译成 eiwit bouwing ,而不是 eiwitvouwing 或 eiwitopvouwing,而后者才是正确的翻译。但是,当我们使用这些由错误翻译数据训练出来的荷兰语 → 英语模型时,我们就不会指望它再犯同样的错误了,因为我们一开始就不可能要求它将“蛋白质折叠”翻译 “eiwit bouwing”,因为在这个领域这不是一个有效的概念!
另外需要注意的是,当使用合成并行数据集来增强自然并行数据时,反向翻译通常效果最佳。因此,我们将自然并行数据和合成并行数据结合起来,得到一个由自然并行数据和合成并行数据按一定比例(如 1:1、1:2 或 1:4)添加的训练数据集。最佳比例将取决于源语和目标语语言对和翻译领域,我们可以通过实验来加以印证,因为随着合成数据越来越多,模型的功能可能会开始退化,产生的结果在某些时候甚至会比原始模型产生的结果更糟。
如前所述,合成数据可用于低资源语言或领域的翻译。在 TAUS,我们最近尝试了领域适应背景下的反向翻译,如我们的 TAUS DeMT™,其中高质量的 TAUS 数据被用于适应通用领域模型,如 Amazon Translate,使其在金融服务或电子商务等领域表现出色。
我们利用三个领域的数据对英语 → 荷兰语亚马逊翻译模型进行了调整试验,这三个领域分别为金融服务、制药和电子商务。平均而言,在使用三个领域的高质量 TAUS 数据时,我们获得的翻译结果比通用的现成模型好 5 个 BLEU 点。在使用亚马逊现成的荷兰语 → 英语模型进行反向翻译后,我们仅使用原始并行数据集的目标语一方,就能生成比未调整模型表现基线平均高出 2 BLEU 点的翻译结果。因此,反向翻译数据确实有助于语言模型适应相关领域,但高质量的自然并行数据的表现要好得多。
我们已经提到,反向翻译数据在用于增强自然数据时效果最佳。为了在我们自己的例子中测试这一点,我们进行了一系列实验,在自然并行数据中加入了不同数量的合成数据。同样,当只使用自然数据时我们获得最佳结果,但将自然数据和合成数据结合使用的效果要比只使用合成数据好得多。
我们进行的最后一项实验涉及自然数据设置。在上述实验中,我们总是以自然数据为上限进行定制,然后使用部分自然数据生成合成数据,而现在我们希望使用我们拥有的所有自然数据进行调整和适配,并在此基础上添加我们在相关领域拥有的目标语言真实单语数据。
总之,我们仍然相信,在定制高性能通用领域翻译模型时,要想使其在某个特定的翻译领域表现得更好,高质量的自然并行数据是训练时的首选。不过,当面临低资源语言或无法获得高质量并行数据的情况下,使用反向翻译作为合成数据生成方法有助于进一步提高模型性能,尽管再提高可能也不及由真实的自然语言数据训练下的模型性能。
(机器翻译,轻度译后编辑,仅供参考)
编辑:胡跃