深度之眼Paper带读笔记NLP.18:UMT

文章目录

  • 前言
  • 第一课 论文导读
    • 机器翻译简介
      • 机器翻译研究意义
      • 机器翻译的发展历史
        • 基于规则的机器翻译
        • 基于统计的机器翻译
        • 基于实例的机器翻译
        • 基于神经网络的机器翻译
        • 端到端的神经机器翻译(Sequence2Sequence)
    • 无监督机器翻译相关技术
      • 无监督机器翻译的基本形式
      • 去噪自编码器
      • 语言中的去噪自编码器
    • 前期知识储备
  • 第二课 论文精读
    • 论文整体框架
    • 传统方法
      • 无监督机器翻译的基本形式(见第一课)
        • 逐词翻译
        • 语言模型
        • 反向翻译(回译)
    • 论文提出的模型
      • 无监督机器翻译
        • 初始化:
        • 语言建模:
        • 反向翻译:
      • 无监督统计机器翻译
    • 实验和结果
      • 实验设置
      • 实验结果
    • 讨论和总结
      • 论文主要贡献:
      • 总结
  • 作业
  • 相关论文

前言

Phrase-Based&Neural Unsupervised Machine Translation
基于短语和神经网络的无监督机器翻译
作者:Guillaume Lample
单位:Facebook AI Research
发表会议及时间:EMNLP 2018
2018年是无监督机器翻译取得突破性进展的一年。
在线LaTeX公式编辑器
机器翻译
机器翻译是指运用机器,通过特定的计算机程序将一种书写形 式或声音形式的自然语言,翻译成另一种书写形式或声音形式的自然语言。机器翻译是一门交叉学科,组成它的三门子学科分别是计算机语言学、人工智能和数理逻辑, 各自建立在语言学、计算机科学和数学的基础之上。
机器翻译的技术路线
基于规则的机器翻译
基于统计的机器翻译
基于实例的机器翻译
基于神经网络的机器翻译
无监督机器翻译
我们无法为所有语言对都找到大量双语平行语料,训练出有监督的机器翻译系统。对于两个单独(非平行)的单语语料库的数据,首先通过单词对齐的形式进行两个单语语言语料库大致对齐,随后学习两种语言的语言模型(核心思想:学习两种语言之间共同潜在空间),最后从源句预测目标句子,然后从翻译的目标句子重建观察到的源句(转化为监督问题)。

第一课 论文导读

机器翻译简介

机器翻译是指运用机器,通过特定的计算机程序将一种书写形式或声音形式的自然语言,翻译成另一种书写形式或声音形式的自然语言。
机器翻译是一门交叉学科,组成它的三门子学科分别是计算机语言学、人工智能和数理逻辑,各自建立在语言学、计算机科学和数学的基础之上。
深度之眼Paper带读笔记NLP.18:UMT_第1张图片

机器翻译研究意义

“人类曾经联合起来兴建能通往天堂的高塔一—巴别塔,为了阻止人类的计划,上帝让人类说不同的语言,使人类相互之间不能沟通,计划因此失败,人类自此各散东西。”
——《圣经》
机器翻译可以实现世界上不同国家不同语言间的低成本交流,其主要优点体现为:
1.成本低:相对于人工翻译来说,机器翻译的成本要低很多。机器翻译需要人工参与的程序其实很少,基本上由计算机自动完成翻译,大大降低了翻译成本。
2.易把控:机器翻译的流程简单快捷,在翻译时间的把控上也能进行较为精准的估算。
3.速度快:计算机程序的运行速度非常快,其速度是人工翻译速度不可比拟的。

机器翻译的发展历史

深度之眼Paper带读笔记NLP.18:UMT_第2张图片
理性主义方法
·基于规则的机器翻译
经验主义方法
·基于统计的机器翻译
·基于实例的机器翻译
·基于神经网络的机器翻译

终极目标:信(准确)达(通顺)雅(得体)

基于规则的机器翻译

基于规则的机器翻译方法的基本思想认为,一种语言无限的句子可以由有限的规则推导出来。依据语言规则对文本进行分析,再借助计算机程序进行翻译,这是多数商用机器翻译系统采用的方法。基于规则的方法比较直观,能够直接表达语言学家的知识。其中,最典型的就是直接翻译。
直接翻译是指把源语中的单词或句子直接替换成相应的目的语的单词,必要时可以对词序进行适当的调整。这是机器翻译最初构想的体现,是早期机器翻译系统常用的方法,后来IBM提出的统计机器翻译模型也可以认为是采用了这一范式,
在这里插入图片描述

基于统计的机器翻译

统计机器翻译的基本思想是,充分利用机器学习技术,通过对大量的平行语料进行统计分析进行翻译。通俗来讲,源语到目的语的翻译过程是一个概率统计的问题,任何一个目的语句子都有可能是任何一个源语的译文,只是概率不同,机器翻译的任务就是找到概率最大的那个句子。
在这个金字塔上,越往塔尖的方向走,对语言的分析也越深入。但是,分析语言本身就是一个很难的问题,分析的深度越深,往往引入的错误也越多,反而会导致翻译质量的下降。因此,如何通过引入更深层的语言分析来提高模型的排歧能力,同时又要避免分析导致的错误,就成了统计翻译模型要解决的主要问题。
深度之眼Paper带读笔记NLP.18:UMT_第3张图片

基于实例的机器翻译

在基于实例的机器翻译系统中,系统的主要知识源是双语对照的翻译实例库,实例库有两个字段,一个字段保存源语言句子,另一个字段保存与之对应的译文。对于每输入一个源语言的句子,系统把这个句子同实例库中的源语言句子字段进行比较,找出与这个句子最为相似的句子,模拟与之相对应的译文并输出。
整个翻译过程其实是查找和复现类似的例子,不需要对源语言进行任何分析,只需要通过类比就可以实现翻译。但是,现阶段,由于缺少大规模的双语对齐语料库,基于实例的机器翻译系统匹配率其实并不高。
深度之眼Paper带读笔记NLP.18:UMT_第4张图片

基于神经网络的机器翻译

利用深度学习改进统计机器翻译中的相关模块,如语言模型、翻译模型等。
统计机器翻译有着不可避免的缺点,其中较为严重的是数据稀疏问题,而深度学习可以帮助统计翻译模型较好的解决这一问题。机器翻译的核心是语言模型,语言模型对译文的流利度和质量都有着至关重要的作用,而通过深度学习可以帮助改进语言模型。
N-gram是传统的语言模型所采用的方法,模型参数是通过极大似然估计训练所得,采用离散表示(每个词都是独立的符号),但是因为大多数N-gram在语料库中只出现一次,所以极大似然估计面临着严重的数据稀疏问题。尽管传统的统计机器翻译使用了平滑和回退等一系列策略,但通常还是只能使用4-gram或者5-gram语言模型。神经网络的一大特点就是可以有效缓解数据稀疏问题。

端到端的神经机器翻译(Sequence2Sequence)

其实也属于神经网络的机器翻译。
这种翻译方法通过神经网络直接将源语言文本映射成目标语言文本,仅通过非线性的神经网络便能直接实现自然语言文本的转换,不再需要由人工设计词语对齐、短语切分、句法树等隐结构,也不需要人工设计特征。缺点:可解释性差,训练复杂度高。
深度之眼Paper带读笔记NLP.18:UMT_第5张图片

无监督机器翻译相关技术

机器翻译需要语句级别的平行数据来训练模型,即对于源语言中的每个句子,目标语言中都有对应的译文。
神经机器翻译最大的问题是需要双语平行数据集。对于英语、法语这类广泛使用的语言来说,这类数据比较容易获取。而对于全世界7000种语言中的许多语言来说,可能根本不存在这样的数据。
动机:我们无法为所有语言对都找到大量双语平行语料,训练出有监督的机器翻译系统。

无监督机器翻译的基本形式

深度之眼Paper带读笔记NLP.18:UMT_第6张图片
A:两个单独(非平行)的单语语料库的数据
B:通过单词对齐的形式进行两个单语语言语料库大致对齐
C:学习两种语言的语言模型(核心思想:学习两种语言之间的共同潜在空间)
D:从源句预测目标句子(反向翻译),然后从翻译的目标句子重建观察到的源句(转化为监督问题)

去噪自编码器

自编码器,是一种利用反向传播算法使得输出值等于输入值的自监督神经网络,它先将输入压缩成潜在空间表征,然后通过这种表征来重构输出。由两部分组成:
编码器:将输入压缩成潜在空间表征,用编码函数 h = e ( x ) h=e(x) h=e(x)表示。
解码器:重构来自潜在空间表征的输入,用解码函数 y = d ( h ) y=d(h) y=d(h)表示。
如果自编码器的唯一目的是让输出值等于输入值,那这个算法将毫无用处。事实上,我们希望潜在空间表征将具有价值属性。为了达到这个目的,我们向输入添加一些噪声,然后构建网络用来重建原始输入(不带噪声的版本),通过让网络学习什么是噪声,来使其学习输入中的有用特征,这就是去噪自编码器的基本原理。
深度之眼Paper带读笔记NLP.18:UMT_第7张图片

语言中的去噪自编码器

使用去噪编码器以无监督的方式学习特征,损失函数为:
在这里插入图片描述
l l l是语言, x x x是输入(单词), C ( x ) C(x) C(x)是将噪声加到 x x x之后的结果。 e ( ) e() e()是编码器, d ( ) d() d()是解码器。等式末尾的 Δ ( x ^ , x ) \Delta(\hat x,x) Δ(x^,x)是单词(token,在机器翻译中,一个单词就是一个 token)级别的交叉熵误差总和。由于是通过输入序列得到输出序列,我们需要确保句子中的每个单词都以正确的顺序排列,因此可以将这个任务其视为一个多标签分类问题,其中输入中的第 i i i个单词和输出中的第 i i i个单词对比。
如何添加噪声:
1.以一定的概率从输入中删除一个单词
2.单词按照一定的约束从初始位置偏移(调整单词顺序)

前期知识储备

机器翻译:了解机器翻译的概念和发展历程,以及按照技术的分类。
去噪自编码器:了解去噪自编码器的原理,理解为什么要在无监督机器翻译中使用去噪自编码器。
无监督翻译:了解无监督机器翻译的动机和基本形式(三个步骤)。
语言模型:了解语言模型的相关知识,理解语言模型在机器翻译任务中扮演的角色。

第二课 论文精读

论文整体框架

0.摘要:文章的动机和背景,要解决问题的概括思想
1.引言:详解动机和背景,提出自己的方案
2.无监督翻译原理(三大原理)
3.无监督翻译系统
4.实验
5.6.相关工作和结论

传统方法

介绍作者在文中总结出的无监督机器翻译的三大原理

无监督机器翻译的基本形式(见第一课)

根据前面的内容得到无监督机器翻译的步骤
1.逐词翻译(初始化):通过这一步,将不同语言的词嵌入空间进行了对齐,这样就产生了一个可以进行逐词翻译的模型。
2.语言建模:在有了一个逐词翻译的模型之后,使用单语言的语言模型,去将翻译出来的不完整不流利的句子进行改进,使其符合在当前语言下的语法和规范。同时,这样产生的语料可以作为平行语料,这就是第二步单侧语言模型的作用。
3.反向翻译:翻译大约可以看做是A语言->B语言的过程,反向翻译则是将这一过程反向即从B->A的过程。由于上一阶段已经产生了伪平行语料,这样将这个伪平行语料翻译回A的过程就可以看做是一个有监督的过程。

逐词翻译

首先让系统学习双语词典,将一个词与其他语言对应的多种翻译联系起来。就好比让系统学会“Bug"在作为名词时,既有“虫子”、“计算机漏洞”,也有“窃听器”的意思。具体来说,让系统首先为每种语言中的每个单词学习单词的向量表示。随后,系统会训练词嵌入(例如,word2vec),根据其上下文来预测给定单词周围的单词。尽管词嵌入是一种非常简单的表示方法,但从中可以获得很有趣的语义结构。例子:
与“kitty”这个词距离最近的是“cat”,并且“kitty”这个词与“animal”之间的距离要远远小于它与“rocket”这个词的距离。换句话说,“kitty”很少出现在有“rocket”的上下文里。
深度之眼Paper带读笔记NLP.18:UMT_第8张图片
可以通过简单的旋转(WX)并对齐两种语言(X和Y)的二维词嵌入,然后通过最近邻搜索实现单词翻译。鉴于这些相似之处,作者在之前的一篇工作中提出了一种方法,让系统通过对抗训练等方法,学习将一种语言的词嵌入结构进行旋转,从而匹配另一种语言的词嵌入结构。有了这些信息以后,我们就可以推断出一个相当准确的双语词典,无需任何已经翻译好的语句,并且基本上可以做到逐字翻译。

语言模型

使用无监督方法得到双语词典的逐字翻译并不能完成一个很好的翻译系统,因为单词可能会丢失,无序或者完全错误。但是,它保留了大部分词义,我们可以在此基础上进行改进。通过使用在大量单语数据上训练好的语言模型进行局部编辑,它可以对不同的单词排序打分,故此流畅的句子得分要高于不符合语法或构造不良的句子。
这个单语模型比较好获得,只要有大量单语数据集就可以。这样,我们通过使用单语模型对逐字翻译模型进行优化,就得到了一个比较原始的机器翻译系统。
什么是语言模型:
我们把一句话记为S,里面有n个单词;
P ( S ) = P ( w 1 , w 2 , . . . , w n ) P(S)=P(w_1,w_2,...,w_n) P(S)=P(w1,w2,...,wn)
我们可以把这句话出现的概率写成每个单词的形式,每一个单词出现的概率只与他上文的单词有关:
P ( w 1 , w 2 , . . . , w n ) = P ( w 1 ) P ( W 2 ∣ w 1 ) P ( W 3 ∣ w 1 , w 2 ) . . . P ( W n ∣ w 1 , w 2 , . . . , w n − 1 ) P(w_1,w_2,...,w_n)=P(w_1)P(W_2|w_1)P(W_3|w_1,w_2)...P(W_n|w_1,w_2,...,w_{n-1}) P(w1,w2,...,wn)=P(w1)P(W2w1)P(W3w1,w2)...P(Wnw1,w2,...,wn1)
最后得到的目标函数:
L = ∑ w ∈ C l o g P ( w ∣ c o n t e x t ( w ) ) L=\sum_{w\in C}logP(w|context(w)) L=wClogP(wcontext(w))

反向翻译(回译)

反向翻译是一种数据增强(广)的技巧,具体做法是把单语语料用训好的模型翻译一遍做成伪平行语料,然后把这样的句对也当做训练数据来训练模型,算是一种半监督学习的做法。接下来,我们将这些系统翻译出的语句(原文为乌尔都语,翻译为英语)作为标注过的真实数据进行处理,以训练从英语到乌尔都语的反向翻译系统,现在我们有了一个更偏向流畅句子的乌尔都语语言模型,我们可以将反向翻译中生成的平行句子与乌尔都语语言模型提供的校正相结合,以此来训练从英语到乌尔都语的翻译系统。这个文章也是反向翻译技术首次应用于完全无监督的系统。
在这里插入图片描述
下图的回译方式基于Encoder-Decoder框架,两种语言共享编码器,各自拥有一个自己的解码器。回译的过程:
L1句子->共享编码器(L1)->L2解码器->预测的L2句子
预测的L2句子->共享编码器(L2)->L1解码器->回译的L1句子
深度之眼Paper带读笔记NLP.18:UMT_第9张图片

论文提出的模型

无监督机器翻译

s:source(源语言)t:target(目标语言)
1.语言模型:根据单语语料学习语言模型
2.初始化翻译模型:分别初始化一个s->t和一个t->s的翻译模型(词对词的翻译模型)
3.反向翻译:使用翻译模型生成源语言和目标语言的句子,根据生成的句子再次训练新的翻译模型
深度之眼Paper带读笔记NLP.18:UMT_第10张图片

初始化:

初始化:使用上文介绍的逐词翻译的方法,实现单词到单词的对齐,还使用了BPE算法来处理未登录词,BPE是很多NMT系统中使用的标准subword分割方式。BPE分割在词表大小和解码效率之间提供了良好的平衡,并且避免了对未知单词进行特殊处理的需要。
BPE算法的输入是原始字典,其中每个单词被表示成一串字符,BPE算法迭代的执行k次,每次选择一个出现频率最高的符号(子串)对进行合并,生成一个新的符号,注意这种合并是不超过单词边界的。
在中文语料中,假设“大学文凭”是一个中文未登录词,被标记为UNK,通过BPE的方法,将“大学文凭”拆解为“大学”和“文凭”两个部分,而“大学”和“文凭”这两部分恰恰是在词汇表中的,可以准确翻译,从而可以得到“大学文凭”的正确翻译结果如下:
Eg.大学文凭→大学———文凭→university diploma

语言建模:

在NMT中,语言建模通常都是通过去噪自编码器实现的。
在这里插入图片描述
其中的C()代表噪声,即去掉一部分词或者交换一部分词的顺序,希望解码出正确的原始的句子。

反向翻译:

举例来说明(source为英语,traget为乌尔都语),把英语看做输入x,那么翻译模型输出的乌尔都语 v ∗ ( x ) v^*(x) v(x)的表达式为:
v ∗ ( x ) = a r g m a x P s → t ( v ∣ x ) v^*(x)=argmaxP_{s\rightarrow t}(v|x) v(x)=argmaxPst(vx)
在输入x的情况下,当翻译模型给出v的概率最大时,即是x在乌尔都语下的翻译 v ∗ ( x ) v^*(x) v(x),这样就可以生成平行语料,再将语料翻译回x,也就是反向翻译。
在这里,我们已知的原始的x是一定正确的,所以就可以认为是反向翻译一个有监督的任务。如果再存在一个反过程,将这两个过程结合在一起,就可以使得系统形成一个闭合的回路。
在这里插入图片描述
不可否认,由于第一个系统(从乌尔都语到英语的原始机器翻译系统)的翻译错误,作为训练数据输入的英语句子质量并不高,因此第二个反向翻译系统输出的乌尔都语翻译效果可想而知。不过,有了刚才训练好的那个乌尔都语单语模型,就可以用它来对第二个反向翻译系统输出的乌尔都语译文进行校正,从而不断优化、迭代,逐渐完善第二个反向翻译系统。
深度之眼Paper带读笔记NLP.18:UMT_第11张图片

无监督统计机器翻译

同样地,上述三个步骤也可以应用到基于短语的无监督统计机器翻译中。
**初始化:**首先使用旋转的方法构建双语词典,随后扩充短语表,s和t分别表示源语言和目标语言的词,W是旋转矩阵,e()是embedding
p ( t j ∣ s i ) = e 1 T c o s ( e ( t j ) , W e ( s i ) ) ∑ k e 1 T c o s ( e ( t k ) , W e ( s i ) ) (3) p(t_j|s_i)=\frac{e^{\frac{1}{T}cos(e(t_j),We(s_i))}}{\sum_ke^{\frac{1}{T}cos(e(t_k),We(s_i))}} \tag 3 p(tjsi)=keT1cos(e(tk),We(si))eT1cos(e(tj),We(si))(3)
**语言建模:**使用基于N-gram的方法学习语言模型,最终得到初始的翻译模型,和翻译后的语料。
**反向翻译:**使用上一次迭代的语料训练回译模型并得到回译语料,使用回译语料再次训练翻译模型,得到新一轮的翻译后的语料。
深度之眼Paper带读笔记NLP.18:UMT_第12张图片

实验和结果

实验设置

考虑五种语言对
English-French(英语-法语)
English-German(英语-德语)
English-Romania(英语-罗马尼亚语)
English-Russian(英语-俄语)
English-Urdu(英语-乌尔都语)
初始化词向量:使用fastText产生
深度之眼Paper带读笔记NLP.18:UMT_第13张图片

实验结果

1.无监督的NMT产生的翻译比逐字翻译更流畅,但没有达到我们预期的效果。
2.无监督的PBSMT在低资源语言对上表现更好,这是第一次将此方法应用于无监督的机器翻译,我们发现这种翻译具有正确的单词但不太流畅。
3.无监督的PBSMT与使用10万个平行句子训练的监督模型效果相当(下图)。
启发:将两种模型结合起来得到一个既流利又善于翻译的模型。
深度之眼Paper带读笔记NLP.18:UMT_第14张图片
1.无论是PBSMT还是NMT都取得了很好的效果,超越了之前的无监督基线模型,尤其是英-法场景下,PBSMT提升了11个BLUE值。
2.PBSMT中的迭代回译的确是有作用的,翻译性能也在不断地提升。
3.将PBSMT与NMT相结合能够取得更好的效果(PBSMT+NMT:先训练一个NMT模型再使用PBSMT翻译的句子进行微调)。
4.然而,先训练PBSMT,再使用NMT回译的句子进行微调时,却没有对PBSMT产生更进一步的提升。
深度之眼Paper带读笔记NLP.18:UMT_第15张图片
探索性实验还将结果进一步展开:
深度之眼Paper带读笔记NLP.18:UMT_第16张图片
远距离语言对(语言差异非常大),如英语-俄语;译文资源匮乏的语言,如英语-罗马尼亚语;资源极度匮乏且远距离的语言对,如英语-乌尔都语。在所有情况下,我们的方法都有很大提升,有时甚至超过使用来自其他域或其他语言的平行语料数据的有监督方法。
一个德-英的例子:
结果表明:
逐字翻译可读性很差
Neural MT流畅度很好,但是语义上有偏差
PBMT语义正确,但是翻译的结果有一定的冗余,不是十分通顺
把上面两个结合就可以得到即通顺又准确的结果。
深度之眼Paper带读笔记NLP.18:UMT_第17张图片

讨论和总结

论文主要贡献:

A.结合了之前两种神经网络的方法,简化了结构和损失函数,最终的模型在性能上超过了之前的方法。
B.把无监督机器翻译应用到短语级统计机器翻译中,其在样本数少的时候会比NMT效果要好。
C.我们把这些方法应用到低资源的语言上,取得了令人欣喜的成绩。

总结

整体:总结现有工作的优缺点,取长补短地提出自己的做法,给出一种解决问题的范式。
引言:不同于一般的论文,作者在引言部分只强调了无监督的重要性,并没有刻意针对之前的无监督工作。
实验:充分考虑各种可能性,探讨不同情况下模型的性能,并且对结果展开一系列的可解释性分析

作业

NMT中Sharing Latent Representations有什么作用?
公式2中的每一项分别代表着什么意思?
关闭一切资源,从零开始,在一幅图上画出无监督机器翻译的三个准则。

相关论文

1.清华大学AMiner.机器翻译与人工智能研究报告.2018.
2.Guillaume Lample.Unsupervised Machine Translation Using Monolingual Corpora Only.In ICLR.2018.
3.Mikel Artetxe.Unsupervised Neural Machine Translation.In /ClR.2018.
4.Alexis Conneau.Word Translation without Parallel Data.In ICLR.2018.
5.Rico Sennrich.Improving Neural Machine Translation Models with Monolingual Data.In ACl.2016.
2和3是无监督翻译的三大原理的来源
4是提出了逐字翻译的方法,通过旋转词向量,对抗训练来实现词语级别的翻译
5提出了贯穿本文的反向翻译方法。

你可能感兴趣的