文章目录
0. 背景
机构:Facebook
作者:Guillaume Lample, Myle Ott, Alexis Conneau
发布地方:EMNLP2018
面向任务:无监督机器翻译
论文地址:https://arxiv.org/abs/1804.07755
论文代码:https://github.com/facebookresearch/UnsupervisedMT
0.1 摘要
目前的机器翻译系统多数依赖于平行语料,但是这种方案真的适用于大多数语言对吗?本文尝试探索仅基于各自语种下的大规模单语种语料,即可实现机器翻译。为此,本文提出2种模型:基于神经网络(NMT)和基于短语的模型(PBSMT)。这两种模型采用
(1)特定的参数初始化方案
(2)语言模型的去噪操作
(3)迭代反译法(back-translation)自动生成平行语料
实验结果证明,本文的模型确实优于以往的模型,且更简单、超参数更少。在WMT’14 English-French 和 WMT’16 German-English benchmarks上,在没有用任何平行语料的前提下分别取得28.1 和 25.2 的BLUE得分。这高出当时最先进模型 11 个BLEU分值。在低资源语种,如English-Urduand 和 English-Romanian,本文的模型也优于半监督和有监督的方法。
1. 介绍
虽然现在的机器翻译算法很先进,也已经近乎人类的水平,但是其中一个主要的挑战是目前的学习算法依赖于大型并行语料库。不幸的是,绝大多数语言对几乎没有(如果有的话)平行数据。为此,学习算法需要更好地利用单语种数据,以使得机器翻译能够更广泛地适用。
(Lample et al., 2018; Artetxe et al., 2018)开创了完全无监督的机器翻译先河,是真正的完全无监督,只需要各种语种的语料数据即可。虽然上述两者的工作在技术上有细微的差别,但我们还是发现了它们成功背后的几个共同原则:
(1)系统用双语字典进行初始化
(2)利用健壮的语言模型。训练序列到序列(sequence-to-sequence)系统以作为降噪自编码器(denoising autoencoder)
(3)通过 back-translation 自动生成句子对,将无监督问题转化为有监督问题。把source 句子 输入source-to-target模型,输出结果作为targetto-source模型的输入。反之亦然。它们约束编码器产生的隐藏表征在两种语言之间共享。
本文的贡献:
(1)融合先前2个神经网络模型,简化了架构和损失函数,使其更易于训练和微调。
(2)将总结出的3项原则移植到传统的 phrase-based statistical machine translation (PBSMT)上。本文的PBSMT简单,易于解释,训练快速,且能够取得与NMT近似甚至超越NMT的结果。
在最终的结果上,本文的NMT模型在benchmarks上的BLUE得分高出10+,而PBSMT模型则高出+12的BLUE得分。
2. 无监督机器翻译的共同原则
研究之前的无监督机器翻译工作,发现无监督机器翻译背后有以下3大共同原则:
(1)恰当的初始化
(2)建立语言模型
(3)迭代式的back-translation
具体如 Figure 1 所示:
恰当的初始化:
模型初始化表达了期望得到的解决方案空间上的自然先验。一般可以通过使用单词、短语甚至子单词的近似翻译来启动这个过程(Sennrich et al., 2015b)。Klementiev et al. (2012)使用双语字典来进行初始化,Lample et al. (2018)和Artetxe et al.(2018)则是使用基于无监督方式推断而得到的字典来进行初始化。虽然这种最初的“逐字”的翻译可能很糟糕,但是如果语言或语料库不是紧密相关的,它仍然保留了一些原始语义。这点令人对未来怀有期待。
语言模型:
在获取到如此大量的单语种数据后,可以再source语种和target语种上训练语言模型。这些语言模型表达了一个数据驱动的先验信息,即每种语言的句子应该如何阅读。再通过局部替换和单词重排序改善翻译模型的性能。
迭代式Back-translation:
Back-translation或许是能够最有效利用单语种数据的半监督方法。在无监督方法中,Back-translation将source-to-target的翻译系统与从target-to-source的逆向翻译模型结合起来。逆向翻译模型对每个target 句子生成一个source 句子。 这就把无监督问题变成了监督学习任务,尽管source 句子中夹杂噪声。随着原模型在翻译方面的改进(改进后得到现有模型),再利用现有模型对back-translation模型进行改进,得到了一个经过迭代算法训练的耦合系统。back-translation模型改进后,又可以生成更优质的数据,从而进一步改进现有模型。如此迭代前行优化。
3. 无监督机器翻译模型
前文已经总结出3条无监督机器翻译的原则,那么怎么融入到NMT模型和PBSMT模型的上下文中呢?
我们将source 句子和 target 句子分别记为 and ;在 source 语料和 target 语料上训练的语言模型分别为和; source到target的翻译系统 和 target到source的翻译系统分别记为 和 。
算法流程图 如 Algorithm 1 所示:
3.1 无监督 NMT
本文的无监督NMT 脱胎于Artetxe et al. (2018) 和 Lample et al. (2018)的工作。之后我们先介绍如何将前文总结出的3条原则融入本文的模型呢?再介绍系统的一个附加属性:跨语言表征共享。
初始化:
本文这里提出了一种比此前使用双语字典更有效、更简单的方法,这种方法特别适用于source 语种 和 target 语种之间是相关的。具体怎么做呢?
(1)我们不考虑词,而是使用byte-pair encodings (BPE)。这有2点好处:第一、减少了词汇量,并避免了输出翻译中生成生词的情况。第二、我们没有学习source 语言和 target 语言中的BPE之间的显式映射,而是通过联合处理两种单语语料库来定义 BPE tokens。当source 语言和 target 语言是相关的,它们会天然地共享部分的 BPE tokens。这可以避免推理双语字典。
(2)在实际使用中
- 加入单语种语料库
- 在语料上应用 BPE tokenization
- 在语料上学习token embeddings。再使用学习到的结果初始化encoder and decoder中的lookup tables。
语言模型:
在NMT中,语言模型是一个去噪自编码模型,该模型的最小化目标函数如下:
其中是一个噪声模型,加噪方式为词的丢弃或者乱序。和 分别表示 source 语种 和 target 语种上 encoder 和 decoder的组成结果,即包含了encoder 和 decoder。
Back-translation:
用表示 source 语种中的一句,该语句来自于 target 语种 到source 语种 的翻译结果。数学公式的表现形式:。类似地, 是一条 target 语种中的一句,它是source 语种 翻译 到 target 语种的结果。数学形式如下:
上述生成的两种pairs: 构成了自动生成的平行语料对。可以基于该生成的平行语料对训练两个Back-translation 模型,对应的最小损失函数如下:
需要注意的一点是:最小化上述损失函数时,我们不反向传播到生成数据的模型,这既一来是为了简单,二来也是因为我们在这样做时没有观察到改进。在随机梯度下降(SGD)的每次迭代中最小化目标函数,仅仅是最小化 和 之和。 为了防止模型为语言建模和翻译任务使用不同的子空间,而达到目的最小化目标函数,我们添加了一个额外的约束,即共享隐表征。
共享隐表征:
共享 encoder 表征就像一种国际语言,在decoder端这种国际语言就可以不关心输入源语言是什么,翻译到目标语言。如此可以看到降噪自动编码器目标实现的语言建模的好处,很好地从有噪声的源转换为翻译,并最终帮助NMT模型更流畅地转换。为了共享 encoder 的表征,我们在两种语言之间共享所有 encoder 参数(包括嵌入矩阵,因为我们执行joint tokenization 联合标记),以确保source 语句的隐含表征对 source 语言是健壮的。类似地,在两种语言之间共享 decoder 参数。共享 encoder 对模型的工作至关重要,但共享 decoder 仅仅引入有用的正则化。与先前的工作 (Johnson et al., 2016)有所不同的是,decoder 的第一个token 指定模块使用的语言,而encoder 没有任何语言标识符。
3.2 无监督 PBSMT
PBSMT源于其在低资源语种对有的优异表现而闻名,因此该框架在无监督学习方面也是大有潜力。
从翻译为,PBSMT系统对翻译结果的评分:,其中源于"phrase tables",是语言模型对翻译结果的评分。
对于给定的数据集,PBSMT先对齐 source 和 target 中的短语,再用这些结果填充短语表"phrase tables",该表中存储着 source/target 语种中的n-gram 映射到 target/source 语种的 另一个 n-gram。在无监督配置中,训练单语种的语言模型是很简答的,但是如何填充这些短语表是不太清楚的。而这又是一个翻译系统所必要的组成部分。所幸的是,前文总结出来的3条原则可以顺利解决该问题。
初始化:
我们先用 Conneau et al. (2018)中的方法基于单语种语料构建双语字典,再使用该双语字典从source-to-target和 targe-to-source 这两个方向填充短语表。此后,我们将短语视为一个word,同样的方法也适用于更长的n-gram。从source-to-target的短语填充按照的是source word 的翻译得分:
其中表示 target 字典中的第个word,表示 source 字典中的第个word,是用以调节分布峰值的超参数,是用以将source embedding 映射为 target embedding 的旋转矩阵,表示的embedding。
语言模型:
source 语种和 target 语种 平滑的n-gram语言模型都是利用KenLM 学习到的。
迭代式Back-translation:
初始化迭代过程,包含2个部分:
(1)无监督的短语表
(2)在target side 上构建的语言模型
上述这两部分组成了seed PBSMT。
我们再利用此seed PBSMT 将 source 语种语料翻译为 target 语种(back-translation 步骤)。一旦数据生成后,我们就可以以这些数据(生成的 target 句子-> 原始的 source 句子)以有监督方式训练一个PBSMT模型。这里的输入其实是机器生成的,所以会有各种问题,但是输出的标准source 确是真实的。接着,在另一个语种对方向上,执行数据生成和训练步骤。详细过程参见 Algorithm 2:
短语表中的许多条目直观上是不正确的,因为在训练期间的任何给定点上PBSMT的输入都是有噪声的。尽管如此,语言模型可能能够在生成时修复这些错误。只要这种情况发生,翻译质量就会改进,下一轮的短语表也会随之改进。这也会有更多的条目对应正确的短语,这使得PBSMT模型变得更强大,因为它有更大的短语表,并且可以在更长的时间跨度内进行短语交换。
4. 实验
4.1 评测的数据集:
English-French,
English-German, English-Romanian, EnglishRussian and English-Urdu.
4.2 初始化
NMT 和 PBSMT 分别需要 跨语种的 BPE embedding(用以初始化共享lookup tables)和n-gram embedding(用以初始化短语表phrase table)。具体细节查看原始论文就好了,这里就不多说了。
Table 1 展示了 French-English 无监督的 phrase table:
从中可以看出,uni-grams 被正确地对齐到bi-grams,反之亦然。
4.3 训练
NMT 和 PBSMT的训练细节略
4.4 模型选择
略
4.5 结果
NMT 和 PBSMT的结果见于 Table 2:
Table 3 展示了PBSMT迭代次数的影响:
Figure 2 展示了同一架构在不同数据尺度下的性能结果:
4.6 消融研究
消融研究的结果见 Figure 3:
5. 相关工作
略
6. 总结和未来工作
本文基于过往的无监督机器翻译总结了无监督机器翻译的3大原则,并将其应用到PBSMT 和 NMT中。从实验结果中,我们发现在完全无监督设置下,PBSMT 系统通常要优于 NMT系统。本文的系统能够在多个任务数据集刷新纪录,且在低资源的语言对上也表现卓越。未来的工作还可能扩展到半监督设置中。