“Google’s Multilingual Neural Machine Translation System: Enabling Zero-Shot Translation”

Zero-Shot 翻译是指在完成语言 A 到语言 B 的翻译训练之后,语言 A 到语言 C 的翻译不需要再经过任何学习。 它能自动把之前的学习成果转化到翻译任意一门语言,即便工程师们从来没有进行过相关训练。

通过 Zero-Shot,谷歌解决了把神经机器翻译系统扩展到全部语言的难题。有了它,一套系统就可以完成所有语言的互翻。从前两种语言之间都需要多个翻译系统的情况,从此成为了历史。这套架构在翻译其他语言时,不需要在底层 GNMT 系统做任何改变。只需在输入语句的开头插入一个输出语种标记,就可以把结果翻译为任意语言。

下面这幅动图对该 Zero-Shot 系统的运作做了示意。

假设谷歌训练该系统做日语英语、韩语英语的互译,图中用蓝色实线来代表。 GNMT 系统就可以分享这四组翻译(日英,英日,韩英,英韩)的参数。这允许它把任意一组语言的翻译经验转到其他语言上去。学习成果转移和多语言翻译的要求,迫使该系统更好地使用建模的能力。

这启发了工程师们设想:我们能否让系统翻译一组它从来没有翻译过的语言?这可以用韩语日语互译的例子来说明。虽然该系统从未处理过韩日互译,但它利用之前的韩英、日英翻译学习成果,能进行水平不错的韩日互译。谷歌把这个过程称为 “zero-shot” 翻译,图中用黄虚线表示。谷歌宣称,这是世界上首例应用在机器翻译上的学习成果转移。

Zero-shot 翻译的成功带来了另外一个重要问题:这个系统是否在学习语言的通用表达(不管是翻译成什么语种,相同含义的语句都被系统使用相似的表达方式)?——类似于“国际语”或者中介语言?工程师们使用了 3D 图像展示系统的内部网络数据,以了解它在处理日、韩、英的任意互译组合时是如何运作的。

上方图片 a 部分(左)展示了这些翻译的几何结构。意义一致的语句用颜色相同的点代表。比方说,英译韩和日译英的两句话如果意思一致,就会是图上颜色相同的两个点。通过这种方式,我们可以很容易地区分不同颜色(含义)的点。b 部分放大了红色区的点,c 部分则对源语言进行区分。在同一组颜色的点里,我们看到含义相同但从属不同语种的句子。这意味着该系统必然对句子的语义进行了编码,而不是记忆一个短语到另一个短语的翻译。谷歌的工程师把这看作是系统中存在中介语言的标志。

谷歌在论文里面展示了更多的分析结果。他们希望这些发现不但对机器学习和机器翻译的研究人员们有用处,也能对语言学家和对单一系统怎么处理多语言学习感兴趣的人有价值。

今日 (美国时间 11 月 22 日),基于 Zero-Shot 的多语言神经机器学习系统正式登陆谷歌翻译。它目前被应用于新增加的 16 个语言组中的 10个,带来更高的翻译质量和简化的系统架构。我们可以期待在不久的将来,该系统会逐步支持更多的谷歌翻译语种。

扩展阅读

  1. 迁移学习(Transfer Learning)的方法: 考虑到不同语种间的翻译任务存在一定相关性,通过迁移学习可以将已经学到的知识分享给新模型从而加快模型训练,避免模型训练从零开始。以A和C的翻译任务为例,首先训练A和B之间的NMT模型,之后在训练A和C的翻译模型时,使用A与B的NMT模型参数作为初始值,使用少量A与C的标注平行语料数据进行模型参数的重新训练,得到最终的NMT模型。□B. Zoph , D. Yuret, J. May, and K. Knight,Transfer Learning for Low-Resource Neural Machine Translation , EMNLP 2016.

作者:王砚峰
链接:https://www.zhihu.com/question/59955680/answer/175411676
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

多任务学习(Multi-Task Learning)的方法:充分利用不同语种翻译的相关性,采用共享相同的NMT参数同时学习多个翻译任务,以A和C的翻译任务为例,首先建立A与B、A与C共享的一套NMT网络,其中该NMT网络的输入是A,输出有两个,分别是B和C,训练的过程中A与B、A与C的标注平行语料共同更新一套NMT网络的参数,与使用较少的A与C语料单独训练的NMT网络相比,翻译效果有较大提升。此外,谷歌于2016年下半年提出的Zero-Shot翻译方法,基于多语种共享的词汇集,使用单个神经机器翻译(NMT)模型在多种语言之间进行翻译,除了提升训练数据中包含的语种对之间互译的翻译质量之外,很有意义的是,还能完成训练数据中不包含的语言对之间的zero-shot翻译。

  • □Thang Luong, Quoc Le, Ilya Sutskever, Oriol Vinyals, and Lukasz Kaiser, Multi-task Sequence to Sequence Learning,ICLR 2016.
  • □Melvin Johnson, Mike Schuster, Quoc V. Le, Maxim Krikun, Yonghui Wu, Zhifeng Chen, Nikhil Thorat, Fernanda B. Viégas, Martin Wattenberg, Greg Corrado, Macduff Hughes, and Jeffrey Dean. Google’s multilingual neural machine translation system: Enabling zero-shot translation.

以A和C的翻译任务为例,如果A和B、B和C之间的训练语料较多,就可以将B作为枢轴语言,进行语言对之间的桥接,训练A和B、B和C两个NMT的网络,从而完成A和C的互译任务。目前关于枢轴语言的方法主要集中在如何实现两个NMT网络的联合训练上。□Yong Cheng, Qian Yang, Yang Liu, Maosong Sun, and Wei Xu. 2017. Joint Training for Pivot-based Neural Machine Translation. IJCAI 2017

https://www.zhihu.com/question/59955680/answer/175411676

一般针对小语种,比如蒙古语。
充分利用大语种丰富的对齐语料来提升小语种机器翻译的能力

TODO

  • ende的语料库,把de转化为zh,得到enzh语料

Back Translation(反向翻译)

要求比较原文和反向译文的差异

反向翻译是将已经译成一种外语的文件反向翻译为原文件语言的过程,通常由独立的第三名译员来完成。反向翻译的目的在于通过第三者将译文反向翻译回原来的语言,以便与原文比较,来判断、提高原译文的可靠性和准确性。反向翻译是一种成本高、效果好的质量控制过程,欧洲的一些客户常常使用这种方法来提高翻译质量。
Back Translation is the process of translating a document that has already been translated into a foreign language back to the original language - preferably by an independent translator. Back translation can improve the reliability and validity of research in different languages by requiring that the quality of a translation is verified by an independent translator translating back into the original language. Original and back translated documents can then be compared.

#

  • deep: 不同的层表征不同level的信息
    • deep cnn/lstm
  • self-attention
    • transformer也能用来学习embedding

embedding

embedding plus

  • [count]: count embedding
    • 类似加密破解,就用到了词频统计
      -
    • count应该是个ranking值吧
  • segment embedding
    • 比如[Q]、[A],[src]、[target]
  • [pos]: position embedding
    • 自己学
    • 经验embedding
  • [cls]
    • 类别
  • [char] char以及中文字形
    • 比如
  • 词性
  • 大小写(首字母大写、全大写、全小写)

实例应用

序列数据

  • 连续时间
    • 语音
  • 离散时间
    • 文本
      -

方法论

  • 基于学习的方法
    • 无监督学习
    • 监督学习

context很重要

上下文很重要,比如以下这句话:

“I arrived at the bank after crossing the…” 要知道bank的意思,最后一个词是“road”还是“river”很重要。

RNN

优点

-

  • 长依赖: RNN的成功引入, 解决了长距离依赖的问题, 而且引入了上下文和记忆的概念。
  • LSTM: 相对传统RNN

缺点

  • 非线性数目:
  • 编码能力弱: 没有attention的RNN,对长序列编码能力较弱
  • 难并行:training阶段RNN很难并行
  • 决策步骤太长: RNN需要一个个地读取bank到river之间的所有单词,才能够确定bank的实际意义。

另外,由于RNN是时序处理,在GPU上不易并行化

这两点说的太好了,赞,赞。

CNN

优点:

  • 易并行:CNN的计算不存在序列依赖问题,training时容易并行化
  • 易优化:CNN的非线性单元的数目固定,容易优化。而RNN的非线性单元随序列长度变化
  • 依赖路径更短: conv在处理dependency问题时,利用卷积的感受野receptive field,通过堆叠卷积层来扩大每个encoder输出位置所覆盖单词的范围,每个单词走的路径大致是$log_{k}n$步,缩短了dependency的长度。
    • 对于距离为n的长依赖,RNN的复杂度是O(n), CNN的复杂度是O(n/k),k是kernel width
  • gated linear units

缺点
-

-

self attention

  • 句子中的单词dependency长度最多只有1,减少了信息传输路径
  • 这种attention的方式直接可以挖掘句子内部单词与单词的语义组合关系,将它作为一个语义整体,使得翻译时更好地利用单词组合甚至是短语的信息,更好地decode出语义匹配的目标语言单词
    • 这里的单词组合不仅仅是局部上下文,而是更长的距离的单词组合

缺陷:

  • 获得任意长度word dependency的同时,丢失了位置信息。
    • 解决办法,slef-attention的同时,加入位置依赖的attention
    • positon enhanced self-attention: ss

其他

  • long-dependency问题:

    LSTM引以为豪的是long-dependency较好。实际上CNN也可以通过堆叠CNN层来增大感受野,实现long-dependency。


或者dilated convolutions
-