This is my reading note for [ICLR 2018] Unsupervised Neural Machine Translation.

Abstract

  • 缺乏大型并行语料库

  • 已有建议:

    • 三角测量

    • 半监督学习

      它们仍然需要强大的跨语言信号。

这项工作中我们完全消除了对并行数据的需求,提出了一种完全无监督训练 NMT 的新方法,只依赖于单语语料库。

As for monolingual corpora, parallel and comparable corpora: https://zhuanlan.zhihu.com/p/59514775

Arch:模型建立在最近关于无监督嵌入映射的工作之上,并由一个稍微修改的注意力编码器-解码器模型组成,

Training:该模型可以单独使用去噪和反向翻译的组合在单语语料库上进行训练。

Performance:尽管该方法很简单,但我们的系统在 WMT 2014 法语 → 英语和德语 → 英语翻译中获得了 15.56 和 10.21 BLEU 点。 该模型还可以从小样本量的平行语料库中获益,结合100,000个平行句子分别获得21.81和15.24分。

Open Source:https://github.com/artetxem/undreamt

Introduction

神经机器翻译 (NMT) 最近已成为机器翻译的主要范式。与传统的统计机器翻译 (SMT) 不同,NMT 系统是端到端训练的,利用连续表示大大缓解稀疏问题,并利用更大的上下文,从而减轻局部性问题。 正因为如此,NMT 在自动指标和人工评估方面都比 SMT 有显着改进。

第二段复读了一遍 abstract 里面的话:

  • 缺乏大型并行语料库

  • 已有建议:

    • 三角测量

    • 半监督学习

      它们仍然需要强大的跨语言信号。

补课:端到端(end to end)是个啥东西?:https://www.zhihu.com/question/51435499 see also https://blog.csdn.net/Dontla/article/details/104550858/

在这项工作中:

  • 我们消除了对跨语言信息的需求,并提出了一种新方法

  • 完全无监督的方式训练 NMT 系统,仅依赖单语语料库。

  • 我们的方法基于最近关于无监督跨语言嵌入的工作(Artetxe 等人,2017;Zhang 等人,2017)。

  • 这个方法使用了一个共享 encoder,两个 translation 方向都用了一个不变的跨语料嵌入,这样呢,就可以使用单语数据训练整个系统以重建其输入。 为了学习有用的结构信息,在这个输入中引入了random token swap形式的噪声。 除了去噪,我们还将back translation纳入训练过程以进一步改善结果。

image-20220204162631703

Conclusion

In this work, we propose a novel method to train an NMT system in a completely unsupervised manner. We build upon existing work on unsupervised cross-lingual embeddings (Artetxe et al., 2017; Zhang et al., 2017), and incorporate them in a modified attentional encoder-decoder model. By using a shared encoder with these fixed cross-lingual embeddings, we are able to train the system from monolingual corpora alone, combining denoising and backtranslation. The experiments show the effectiveness of our proposal, obtaining significant improvements in the BLEU score over a baseline system that performs word-by-word substitution in the standard WMT 2014 French-English and German-English benchmarks. Our manual analysis confirms the quality of the proposed system, showing that it is able to model complex cross-lingual relations and produce high-quality translations. Moreover, we show that combining our method with a small parallel corpus can bring further improvements, showing its potential interest beyond the strictly unsupervised scenario.

Proposed Method

System Architecture

  • encoder-decoder architecture + attention mechanism
    • 2 layer bidirectional RNN in the encoder, another two-layer RNN in the decoder.
      • All RNNs use GRU cells with 600 hidden units
      • the dimensionality of the embeddings is set to 300.
    • Attention
      • global attention method proposed by Luong et al. (2015b) with the general alignment function.
  • three important aspects in which our system differs from the standard NMT:
    • Duel Structure: 翻译是双向的
    • Shared Encoder: 整个系统中只有一种编码器。两种语言共享编码器。这种通用编码器旨在生成输入文本的语言独立表示,然后每个解码器应将其转换为相应的语言。
    • Fixed Embeddings in the encoder: 虽然大多数 NMT 系统在训练期间随机初始化它们的嵌入并更新它们,但我们在编码器中使用预训练的跨语言嵌入,这些嵌入在训练期间保持固定。 这样,编码器就被赋予了与语言无关的词级表示,它只需要学习如何组合它们来构建更大短语的表示。 如第 2.1 节所述,有几种无监督方法可以从单语语料库训练这些跨语言嵌入,因此这在我们的场景中是完全可行的。 请注意,即使嵌入是跨语言的,我们也会为每种语言使用单独的词汇表。 这样,在法语和英语中都存在的单词chair(在前者中的意思是“肉”)在每种语言中都会得到不同的向量,尽管它们都在一个公共空间中。

Unsupervised Training

Denoising

the whole system can be optimized to:

  • take an input sentence in a given language
  • encode it using the shared encoder
  • reconstruct the original sentence using the decoder of that language.

encoder 学习用独立于语言的方式来组合两种语言的embedding。 decoder 学习到的是把这种表示来解码成他们对应的语言。

推理时把 decoder 换了就行。 encoder 是 language-independent 的,就不用换了。

然而,这种理想的行为受到了这样一个事实的严重影响,即由此产生的训练过程本质上是一个微不足道的复制任务。 因此,该任务的最佳解决方案不需要捕获所涉及语言的任何真正知识,因为会有许多退化的解决方案盲目地复制输入序列中的所有元素。 如果是这种情况,当用于在推理时从一种语言翻译成另一种语言时,系统最多只能进行非常字面的逐字替换。

为了避免退化,就在句子里面加随机噪声。更具体地说,对于 N 个元素的序列,我们进行 N/2 个随机交换。 这样,系统需要了解所涉及语言的内部结构才能恢复正确的词序。 同时,通过阻止系统过度依赖输入序列的词序,我们可以更好地解释跨语言的实际词序差异。

a> denoising:有点像 denoising auto-encoder。就是把某种语言的句子加一些噪声(随机交换一些词的顺序等),然后用 shared encoder 编码加噪声后的句子,最后用该语言的句子解码恢复它。通过最大化重构出的概率来训练 shared encoder 和该语言的 decoder。加噪声的目的是想让 encoder 学会分析语言的结构、提取语义特征,decoder 学一个好的语言模型,而不是仅仅学会复制粘贴;

From: (Notes on Unsupervised Neural Machine Translation:https://zhuanlan.zhihu.com/p/30649985)

On-the-fly backtranslation

背景:尽管有去噪策略,上面的训练过程仍然是一个复制任务,有一些综合改变,最重要的是,每次都涉及一种语言,而不考虑我们在两种语言之间翻译的最终目标。 为了在真正的翻译环境中训练我们的系统,而不违反只使用单语语料库的限制,我们建议采用 Sennrich 等人提出的反向翻译方法。

给定一种语言的输入句子,我们使用具有贪心解码的推理模式系统将其翻译成另一种语言(即应用共享的编码器和另一种语言的解码器)。 这样,我们获得了一个伪平行句子对,并训练系统从这个合成翻译中预测原始句子。

b> back-translation:语言 L1 的句子 s1 先用编码器编码,然后用 L2 decoder 贪心解码出 s2,这样就造出了伪平行句对 (s2, s1),这时只做推断不更新模型参数;然后再用 shared encoder 编码 s2,用 L1 decoder 解码出 s1,这里通过最大化 P(s1|s2) 来训练模型(也就是 shared encoder 和 L1 decoder 的参数)。

(注:back-translation 是 Sennrich 15 年提出来的数据增广的技巧,详见论文 [1511.06709] Improving Neural Machine Translation Models with Monolingual Data 。具体做法是把单语语料用训好的机器学习模型翻译一遍做成伪平行语料,然后把这样的句对也当做训练数据来训模型,其实就是半监督学习的做法。叫 back-translation 是因为假如你增广语料的时候是把 s1 翻译成了 s2,那么训练的时候要用 s2 翻译出 s1 这个方向来训模型。其动机是,目标语言必须始终是真句子才能让翻译模型翻译的结果更流畅、更准确,而源语言即便有少量用词不当、语序不对、语法错误,只要不影响理解就无所谓。其实人做翻译的时候也是一样的:翻译质量取决于一个人译出语言的水平,而不是源语言的水平(源语言的水平只要足够看懂句子即可))

From (Notes on Unsupervised Neural Machine Translation:https://zhuanlan.zhihu.com/p/30649985)

Reference

Notes on Unsupervised Neural Machine Translation:https://zhuanlan.zhihu.com/p/30649985

Categories:

Updated: