Improving Unsupervised Word-by-Word Translation with Language Model and Denoising Autoencoder

Improving Unsupervised Word-by-Word Translation with Language Model and Denoising Autoencoder

这是2019EMNLP的一篇文章。这篇文章主要做词级别的翻译,也就是词对齐,在以前的模型上做的改进。

文章链接:

Improving Unsupervised Word-by-Word Translation with Language Model and Denoising Autoencoder

代码链接:

本文分为LM集成和去噪自编码器两个模块,所以代码由两部分组成。

LM集成:

https://github.com/yunsukim86/wbw-lm

去噪自编码器:

https://github.com/yunsukim86/sockeye-noise

知识点

  1. 将语言模型(LM)与跨语言单词嵌入相结合,将上下文信息集成到逐词翻译中。即在衡量单词相似度的时候加入了该目标单词作为输出的概率预测,因为相似度高的单词不一定就是最适合的翻译词。
  2. 用了去噪自编码器。

摘要

跨语言词嵌入的无监督学习可提供跨语言单词的优雅匹配,但在翻译句子时有基本限制。在本文中,我们提出了一种简单有效的方法来改进跨语言嵌入的逐词翻译,仅使用单语语料库而不使用任何反向翻译。我们集成了用于上下文感知搜索的语言模型,并使用一种新颖的降噪自动编码器来处理重新排序。我们的系统超越了最新的无监督神经翻译系统,而无需进行昂贵的迭代训练。我们还分析了词汇量和降噪类型对翻译效果的影响,通过分析可以更好地了解跨语言单词的嵌入及其在翻译中的用法。

引言

在这里,我们提出了一种相当简单的方法,即基于使用跨语言单词嵌入的单词翻译,来快速构建无监督的MT系统。本文的贡献是:

  • 我们制定了一种直接的方法,将语言模型与跨语言的单词相似性相结合,有效地考虑了词汇选择中的上下文。
  • 我们使用降噪自动编码器开发了用于逐词翻译输出的后处理方法,可处理局部重新排序和多对齐词。
  • 我们针对降噪模型分析了不同的人工噪声的影响,并提出了一种新颖的噪声类型。
  • 我们确认跨语言嵌入子词单元在翻译中表现不佳。
  • 我们的经验表明,可以使用少量词汇学习跨语言映射,而不会损失翻译性能。

可以使用现成的软件对提议的模型进行有效的训练,而仅需使用一种语言的数据即可在实现方面进行很少或没有任何更改。提供的分析有助于更好地学习跨语言的单词嵌入,以进行翻译。总而言之,即使在没有训练来自相反翻译方向(即通过反向翻译)的信号的情况下,我们无人监督的MT系统也优于序列到序列的神经模型。

Cross-lingual Word Embedding

在这项工作中,我们利用跨语言词嵌入进行逐词翻译,这在类型翻译质量方面是最先进的。

跨语言单词嵌入是单词的连续表示,其向量空间在多种语言之间共享。这使得跨语言的词嵌入之间的距离计算成为可能,这实际上是在寻找翻译候选者。

我们以完全无监督的方式训练跨语言单词嵌入:

  1. 独立学习单语 源语言和目标语言 嵌入。为此,我们运行以字符n-gram增强的skip-gram算法。
  2. 通过对抗训练找到从源嵌入空间到目标嵌入空间的线性映射(facebook第一篇)。我们不使用种子字典对鉴别器进行预训练,而仅将每种语言的前交叉训练词视为鉴别器的输入。

一旦有了跨语言映射,我们就可以转换给定源词的嵌入并找到具有最接近嵌入的目标词,即最近邻搜索。在这里,我们应用CSLS来度量嵌入分布密集区域中的单词相似度。

我们进一步优化从步骤2获得的映射,如下所示(《Learning bilingual word embeddings with (almost) no bilingual data》中的方法):

  1. 通过查找Vcross-train单词词汇表中两个翻译方向的相互近邻来构建一个综合词典。
  2. 使用第3步得到的字典 运行Procrustes问题求解器 以重新训练映射W。
  3. 重复步骤3和4进行固定次数的迭代,以进一步更新映射。

Sentence Translation

在翻译句子时,跨语言单词嵌入有几个缺点。 我们描述它们中的每一个以及我们相应的解决方案。

3.1 Context-aware Beam Search

使用最近邻居搜索的单词翻译不考虑当前单词周围的上下文。在许多情况下,正确的翻译不是最接近的目标词,而是取决于上下文的具有形态变异或同义词的其他接近词。原因有两个:

  1. 训练单词嵌入可以将语义相关的单词放置在附近,即使它们具有相反的含义。
  2. 高维嵌入空间的中心性问题阻碍了正确的搜索,因为许多不同的单词恰好彼此接近。

在本文中,我们通过将语言模型(LM)与跨语言单词嵌入相结合,将上下文信息集成到逐词翻译中。令f为当前位置的源词,e为可能的目标词。 给定目标词在e之前的历史h,f 的翻译得分 e 为:
在这里插入图片描述
该公式前半个式子衡量的是源词和生成的目标词的相似度,后半个式子衡量的是 根据已经生成的目标词 h ,下一个生成的目标词为 e 的概率。二者两结合不仅考虑到了源词和目标词的相似度,还结合了上下文信息。效果会比单纯考虑相似度要好。

在我们的实验中,我们发现这种简单的线性缩放在最终翻译性能方面比sigmoid或softmax函数更好。

累积每个位置的分数,我们执行波束搜索以仅允许合理的翻译假设。

3.2 Denoising

这部分主要讲了本文加噪声的方法。 去噪之后模型效果有很大提升。

即使我们已经正确翻译了每个位置的单词,输出仍然远远不能接受。我们采用序列去噪自动编码器来改善3.1节的翻译输出。主要思想是训练序列到序列神经网络。该模型将一个嘈杂的句子作为输入,并产生一个(去噪的)干净句子作为输出,这两种语言都是相同的(目标)语言。该模型最初是为了学习句子嵌入而提出的,但是在这里,我们直接使用它来实际去除句子中的噪声。我们将人工噪声注入干净的句子中,我们在逐字翻译的以下几个方面设计了不同的噪声类型。

3.2.1 Insertion(插入)

逐字翻译始终为每个位置输出目标词。但是,在很多情况下,应将多个源词翻译成一个目标词,或者有些源词不翻译成任何词以使输出流畅。 例如,德语句子“ Ich hore zu。 ¨会被逐词翻译器翻译成“I’m listening to”。但是“I’m listening”在英语中更自然。
在这里插入图片描述
通过将随机目标词插入一个干净的句子中,我们假装有可能是多余源词翻译的额外目标词。

  1. 对于每个位置 i ,在[0,1]范围内随机采样一个概率 p_i。
  2. 如果 p_i < p_ins,从最常用的目标单词库 V_ins 中采样一个单词 e 插到位置 i 前面。

我们用V_ins来限制插入的单词,因为目标插入主要发生在常见单词上,例如 介词或冠词,例如上面的示例。我们仅在位置之前(而不是之后)插入单词,因为在结尾单词(通常是标点符号)之后可能没有多余的单词。

3.2.2 Deletion(删除)

类似地,逐字翻译不能处理相反的情况:当一个源词应翻译成多个目标词时,或者应该从一个源词生成一个目标词以确保流畅性。例如,德语单词“ im”必须在英语中为“ in the”,但是单词翻译仅生成两个英语单词之一。另一个示例如图2所示。
在这里插入图片描述
针对这种情况,我们从目标句子中随机丢弃一些单词。对于每一个位置 i ,从[0,1]中随机抽样一个概率值 p_i ,如果 p_i < p_del,则丢弃 i 位置的单词。

3.2.3 Reordering(重新排序)

同样,逐字生成的翻译也不是目标语言的顺序。在我们的波束搜索中,LM仅帮助在上下文中选择正确的单词,而不会修改单词顺序。图3说明了德语-英语的常见重新排序问题。
在这里插入图片描述
我们将单词顺序重新排序,但是限制源位置和新位置之间的最大距离。

实验结果

在这里插入图片描述
实验结果比 Lample 和 Artetxe的要好。

总结

在本文中,我们提出了一种简单的基于跨语言词嵌入的句子翻译方法。我们用LM实现了上下文感知的词汇选择,用去噪的自动编码器解决了插入/删除/重新排序的问题。我们的新型插入噪声即使与其它类型的噪声结合也显示出良好的性能。我们的方法不需要反向翻译步骤,但仍然优于昂贵的无监督神经机器翻译系统。此外,我们还证明,对于一般的翻译目的,一个有效的跨语言映射可以只使用一个小的高频词集,而不是在子词单元上学习。我们的LM集成和去噪自动编码器的实现可以在线获得。