无监督神经机器翻译Unsupervised Neural Machine Translation with Weight Sharing

Unsupervised Neural Machine Translation with SMT as Posterior Regularization


这是来自于中科院的的一篇文章,发表于2018年ACL。

文章链接:

Unsupervised Neural Machine Translation with Weight Sharing

代码链接:

https://github.com/ZhenYangIACAS/unsupervised-NMT

知识点

  1. 使用两个独立的编码器(每种语言对应一个),但共享一部分权重。
  2. 提出了两种不同的生成对抗网络(GANs),即局部GAN和全局GAN,以增强跨语言翻译。
  3. 使用了 Directional self-attention。

摘要

无监督神经机器翻译(NMT)是最近提出的一种机器翻译方法,其目的是在不使用任何标记数据的情况下训练模型。无监督NMT提出的模型通常只使用一个共享编码器将不同语言的句子对映射到一个共享潜在空间,这种方法在保持每一种语言的特性和内在特征,如风格、术语和句子结构上表现不好。为了解决这个问题,我们引入了一个扩展方法,使用两个独立的编码器,但共享一部分权重,负责提取输入句子的高级表示。此外,还提出了两种不同的生成对抗网络(GANs),即局部GAN和全局GAN,以增强跨语言翻译。通过这种新的方法,我们在英德、英法、汉英翻译任务上取得了显著的进步。

介绍

被最近无监督跨语言词嵌入所取得的成功《Learning principled bilingual mappings of word embeddings while preserving monolingual invariance》、《Adversarial training for unsupervised
bilingual lexicon induction》、《facebook第一篇》所激励,无监督NMT的模型经常假设: 来自于不同语言的句子对可以在共享的潜在空间中映射为相同的潜在表示(如facebook第二篇文章中的工作)。基于这一假设,Lample等人(facebook第二篇文章)对源语言和目标语言都使用单一编码器和单一解码器。编码器和解码器,作为一个标准的auto-encoder(AE),被训练用以重建输入。《Unsupervised Neural Machine Translation》中用了一个共享编码器,但两个独立的解码器。尽管有一些良好的性能,但它们都有一个明显的缺陷,即,源语言和目标语言只共享一个编码器。虽然共享编码器对于将不同语言的句子映射到共享潜在空间至关重要,但它在保持每一种语言的独特性和内在特征(比如文体、术语和句子结构)方面是很弱的。由于每种语言都有自己的特点,源语言和目标语言都应该独立编码和学习。因此,我们推测共享编码器可能是限制潜在翻译性能的一个因素。

为了解决这个问题,我们扩展了编码器共享模型,即使用两个独立编码器,一种语言对应一个。类似地,使用了两个独立的解码器。对于每种语言,编码器及其相应的解码器执行AE,其中编码器从扰动的输入语句生成潜在的表示,而解码器从潜在的表示重新构造语句。为了将不同语言的潜在表示映射到共享潜在空间,我们提出对两个AEs做权重共享约束。具体来说,我们共享负责提取输入语句的高级表示的两个编码器的最后几层的权重。类似地,我们共享两个解码器的前几层的权重。为了加强共享潜在空间,词嵌入在我们的编码器中被用作增强的编码组件。对于跨语言翻译,我们使用了反向翻译(facebook第二篇中的方法)。此外,还提出了两种不同的生成对抗网络(GAN):local GAN and global GAN(《Improving Neural Machine Translation with Conditional Sequence Generative Adversarial Nets》中的方法)。旨在进一步提高跨语言翻译。我们利用局部GAN来约束源和目标的潜在表示,使其具有相同的分布,因此编码器试图欺骗一个局部鉴别器,该鉴别器同时被训练来区分给定的潜在空间所表示的语言。我们通过全局GAN对相应的生成器进行微调,比如,其他语言的编码器和解码器的组成,通过评估生成的句子与真实数据分布的距离,利用全局鉴别器来指导生成器的训练。
综上所述,我们主要贡献如下:

  1. 我们为无监督的NMT提出了权重共享约束,使模型能够为每种语言使用独立的编码器。为了加强共享潜空间,我们还提出了增强词嵌入的编码器和两种GANs。
  2. 我们进行了大量的英德、英法、汉英翻译实验。实验结果表明,该方法取得了较好的效果。
  3. 最后,针对所提出的模型,我们将定向self-attention引入到模型的时间序列信息中。实验结果表明,研究 NMT self-attention层内的时间顺序信息值得研究者付出更多的努力。

模型结构

无监督神经机器翻译Unsupervised Neural Machine Translation with Weight Sharing
如图1所示,模型架构基于AE和GAN。它由七个子网络组成:包括两个编码器Enc_s和Enc_t,两个解码器Dec_s和Dec_t,本地鉴别器D_l,和全局鉴别器D_g1和D_g2。编码器和解码器使用Transformer中的结构。具体来说,编码器是由四个相同的层组成的堆栈。每一层由一个multi-head self-attention和一个简单的全连接前馈神经网络组成。解码器也由四个相同的层组成。除了每个编码器层中的两个子层外,解码器还插入第三个子层,该子层对编码器堆栈的输出执行多头注意。局部GAN使用多层感知基实现,并基于卷积神经网络(CNN)实现全局GAN。表1总结了几种解释子网角色的方法。该系统有几个引人注目的组成部分,这些部分对于系统以无监督的方式进行训练或提高翻译性能都是至关重要的。

无监督神经机器翻译Unsupervised Neural Machine Translation with Weight Sharing

定向self-attention

递归神经网络相比,简单的self-attention的一个缺点是时间顺序信息丢失。虽然Transformer在self-attention之前对序列做了位置编码,如何对注意力内的时间顺序信息进行建模仍然是一个有待解决的问题。使用《DiSAN: Directional Self-Attention Network for RNN/CNN-Free Language Understanding》一文中的方法,我们在模型中使用directional self-attention来建立编码器,利用位置掩码将时间顺序信息编码到attention输出中。更具体地说,两个位置掩码,即前向掩码M_f 和后向掩码M_b,计算公式如下:

无监督神经机器翻译Unsupervised Neural Machine Translation with Weight Sharing
使用前向掩码M_f, later token仅仅做 attention 连接到序列中的early tokens,反之亦然。我们利用一个 self-attention 网络来处理前向输入序列。这一层的输出作为 upper self-attention 层的输入,并按相反的方向进行处理。

权重共享