Unsupervised Neural Machine Translation with SMT as Posterior Regularization

Unsupervised Neural Machine Translation with SMT as Posterior Regularization

这是2019 AAAI 微软的一篇文章。

文章链接:

Unsupervised Neural Machine Translation with SMT as Posterior Regularization

代码链接:

https://github.com/Imagist-Shuo/UNMT-SPR

知识点

  1. 使用了基于短语的统计机器翻译(SMT)模型,并作为后验正则来指导无监督NMT模型在迭代反翻译过程中的训练。
  2. SMT不仅可以去噪,还可以作为后验正则。
  3. 通过单语词嵌入得到了跨语言词嵌入(怎么实现的?)。

摘要

没有真实的平行语料,无监督神经机器翻译模型训练的时候需要通过回译的方法来生成伪平行语料。然而,由于是弱监督,伪平行语料不可避免的包含噪声和错误,这些噪声和错误在后续的训练过程中会积累并增强,最终导致不好的翻译效果。为了解决这一问题,我们引入了对噪声数据具有鲁棒性的基于短语的统计机器翻译(SMT)模型,作为后验正则化来指导无监督NMT模型在迭代反翻译过程中的训练。我们的方法从使用预先训练的语言模型和从跨语言词嵌入推断得到的单词级别的翻译表所构建的SMT模型开始。然后,在统一的EM框架中,对SMT和NMT模型进行联合优化,并以增量方式相互促进。通过这种方式,(1)通过对短语表进行SMT滤波,可以及时缓解迭代回译过程中错误带来的负面影响;与此同时,(2) NMT可以弥补SMT固有的流畅性不足的缺陷。在英法和德英的翻译任务上显示,我们的方法优于强基线任务,并且实现了 state-of-the-art 机器翻译性能。

本文方法

在这里插入图片描述
看完上图其实整体流程还是比较清晰的:

该方法的整体结构大致分为两部分,如上图所示。左边是模型初始化,通过单语数据训练出两种语言(如英语和法语)的词向量(word embedding),之后通过无监督的训练方法得到 cross-lingual embedding,并通过计算其余弦相似度得到初始的词到词的翻译概率表(word translation table)。这个翻译概率表连同由单语训练得到的语言模型(language model)作为初始的 SMT 模型的特性,从而完成了模型初始化。

上图右边是方法的主体部分,初始的 SMT 模型翻译一批单语数据,构成的伪数据作为初始 NMT 模型的训练数据。在训练得到初始的 NMT 模型后,将继续进行交替回译(右下,iterative back-translation NMT),并用收敛的 NMT 模型翻译出一批新的伪数据。此时产生的伪数据含有大量的噪音,可以通过这批伪数据训练新的 SMT 模型(右上,SMT as PR)。SMT 模型通过构造质量更高的基于片段的翻译概率表(phrase translation table),将伪数据中的噪音过滤掉,并通过翻译新的一批单语数据,得到互译性更好的一批伪数据。这一批伪数据便可以用于调整(fine-tune)之前的 NMT 模型,之后 NMT 模型再次进行交替回译。我们将训练 NMT 和 SMT 的过程集成在一个 EM 训练框架中,两个过程进行交互迭代直到最终收敛。

下面是原文中的模型介绍:

1. 方法概括

由于伪平行数据中含有大量噪声,本文通过SMT作为后验正则化(上图的红框)来降噪。

整个过程分为两部分,上图中左右两部分。给定语言对X-Y,对于模型初始化,我们根据下面初始化的方法 通过单语数据预训练得到的语言模型 和 从跨语言词嵌入推断得到的单词翻译表 构建了两个初始SMT模型。然后初始SMT模型将生成伪数据来预训练两个NMT模型。注意,NMT模型不仅使用SMT模型生成的伪数据,还使用回译NMT模型用迭代反向翻译方法生成的结果来进行训练。然后,nmt生成的伪数据被反馈给SMT模型。作为后验正则化(PR), SMT模型通过构造具有良好频繁翻译模式的强短语表,及时滤除噪声和不常见错误,然后生成去噪的伪数据来指导后续的NMT训练。受益于此,NMT为SMT生成更好的伪数据,以提取更高质量的短语,同时通过反向翻译弥补SMT固有的平滑性缺陷。这两个步骤在 3 中描述的EM框架中是统一的,NMT和SMT模型在那里联合训练,并逐步增强彼此,直到最终收敛

2. 初始化:

我们的初始化SMT模型通过 词表 和 由Moses得到的两个预训练语言模型 来构建。
Mouse: https://github.com/moses-smt/mosesdecoder
对于词表翻译,我们先利用单语语料为两种语言分别训练对应的词嵌入。在此基础上我们使用Artetxe在2018AAAI上发表的文章《Generalizing and Improving Bilingual Word Embedding Mappings with a Multi-Step Framework of Linear Transformations》中的方法来获得各自的跨语言词嵌入。

在这里插入图片描述
S和T是单词的个数,从单词xi到yi的翻译可能性为:

在这里插入图片描述
λ是控制峰值分布的超参数。yi到xi的计算类似。基于上述的基础,我们为初始短语表中的每个单词选择top-k翻译候选词。我们只在初始短语表中使用两个特性,即翻译可能性和回译可能性。

3. Unsupervised NMT with SMT as PR

这一节有很多公式,还借鉴了以前后验正则的相关工作,不太好理解,就先不介绍了。

4. 训练算法

我们结合模型初始化和整个训练过程到算法1,如下图所示。

根据公式9(3中的公式)我们需要减小SMT模型和NMT模型之间的差距,但是,通过梯度下降算法不能够实现。近似的,我们使用相应的NMT模型生成的伪数据来训练SMT模型,以适应NMT后验分布的模式。因此,它们之间的KL散度减小了。这一步对应于算法1中的第7行和第8行,意味着SMT从当前NMT模型生成的数据中提取良好且频繁的翻译模式来完成去噪。在第M布,我们使用梯度下降法优化了两个NMT模型。我们用公式表示公式10中 θ(y->x)的更新, θ(x->y)类似。

在这里插入图片描述
在这里插入图片描述
这个步骤对应于算法1中的第14到17行。这里的一个难点是候选翻译的指数搜索空间。为了解决这个问题,我们利用(Shen et al. 2015)中的抽样方法,在我们的实验中简单地生成近似的最高目标句。注意,在第11行,NMT模型使用仅由SMT模型生成的去噪伪数据来训练,而在第13行,使用混合数据和反向NMT模型生成的伪数据。这里的意图是首先使用去噪的伪数据来纠正前面建立的NMT模型。然后在去噪数据的指导下,采用迭代反译法对NMT模型进行增强。NMT也弥补了SMT平滑度的不足的缺点。通过这种方式,SMT和NMT模型可以在EM迭代中彼此受益。

发布了52 篇原创文章 · 获赞 7 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/weixin_38937984/article/details/102146268