1. 前言

本文介绍一种无监督的机器翻译的模型。无监督机器翻译最早是《UNSUPERVISED NEURAL MACHINE TRANSLATION》提出。这个模型主要的特点,无需使用平行语料库,使用去噪和回译的步骤构建NMT系统。

2018年Facebook人工智能实验室再次公布了有关无监督神经网络翻译的最新模型《Phrase-Based & Neural Unsupervised Machine Translation》,相当于用 10 万个参考译文训练过的监督模型。“在机器翻译领域,这是一个重大的发现,尽管世界上有超过 6500 种语言,但可利用的翻译训练资源池要么不存在、要么就是太小不足以运用在现有系统中。”

2. Facebook论文原理

Neural Unsupervised Machine Translation介绍了两个模型:

  1. 基于短语的无监督翻译模型 (PBSMT)
  2. 基于神经网络的无监督翻译模型 (NUMT) 。

2.1 Unsupervised MT(无监督学习)步骤

在论文中介绍了Unsupervised MT(无监督学习)的主要过程:

  1. word-by-word Initialization(词到词的参数初始化)
  2. Language Modeling(语言建模,有去噪效果)
  3. Iterative Back-translation(迭代回译,自动生成双语对照)

伪代码的形式如下,伪代码中的步骤少了一个word-by-word Initialization的过程:

再看一个论文中介绍3个过程的图:

  1. 图A是两个单独的语言语料库的数据
  2. 图B是第一原则:word-by-word Initialization初始化。 这两个单独的语言语料库大致对齐。可以通过单词对齐的形式进行。
  3. 图C是第二个原则:Language Modeling语言建模。分别学习两个语言模型。语言模型有去噪的作用(弹簧连接的点代表噪声)。
  4. 图D是第三个原则:Iterative Back-translation反向翻译。从观察到的源句(填充红色圆圈)->预测目标句子(蓝色的叉)。然后从翻译目标句子(蓝色的叉)->重建观察到的源句(填充红色圆圈)。

这4幅图简单的介绍了Unsupervised MT(无监督学习)的3个过程。

2.2 Back-translation回译原理

回译的过程《UNSUPERVISED NEURAL MACHINE TRANSLATION》提出的,结构如下图所示:

首先右边的L1 decoder和L2 decoder分别为两个语言的语料库的Language Modeling(语言模型)。

左边的shared encoder是两个语料库公用的encoder,并且它的embedding是fixed cross-lingual embedding(交叉语言的vocabulary)。

Back-translation的过程:

  1. L1 sentence->shared encoder(L1)->L2 decoder->predict L2 sentence
  2. predict L2 sentence->shared encoder(L2)->L1 decoder->L1 sentence

这样就算完成了一个Back-translation的过程,这个过程会去调整fixed cross-lingual embedding的值。

2.3 PBSMT

PBSMT是phrase-based statistical
machine translation(基于短语的机器翻译)。PBSMT用来生成无监督的短语表 (phrase-table) 。

Facebook的研究人员上述原则应用于基于经典计数统计方法的另一个机器翻译模型,叫做(基于短语的机器翻译)。通常而言,这些模型在训练数据(也即翻译好的语言对)较少时表现更好,这也是首次将其应用于无监督的机器翻译。基于短语的机器翻译系统,能够得出正确的单词,但仍然不能形成流畅的句子。但是,这种方法取得的结果也优于以前最先进的无监督模型。

3. 数据结果展示

这个结果在无监督机器翻译领域是有着显著的提升的。最好的方式是PBSMT+NMT的模型结构,这个结果给资源比较少的小语种翻译带来了希望。

4. 总结

Facebook的这篇论文,给无监督机器翻译领域带来了重大发现,使得机器翻译可以不再依赖大规模的平行语料库的标注,也使得在全世界6500种预语言中的小语种翻译带来了前所未有的突破。并且研究人员表示,这种无监督方法不仅适用于机器翻译,也可以扩展到其他领域,让智能体在使用无标记数据的情况下,完成只有极少甚至没有训练数据的任务。这是机器翻译以及无监督学习的一项重大突破。

Phrase-Based & Neural Unsupervised Machine Translation基于短语非监督机器翻译的更多相关文章

  1. 神经机器翻译 - NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE

    论文:NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE 综述 背景及问题 背景: 翻译: 翻译模型学习条件分布 ...

  2. 基于短语的统计机器翻(PBMT) 开源工具 :Moses

    如何运行Moses 1. Moses的历史 Moses是Pharaoh的升级版本,增加了许多功能.它是一个基于短语的统计机器翻译系统,整个系统用C++语言写成,从训练到解码完全开放源代码,可以运行在L ...

  3. 对Neural Machine Translation by Jointly Learning to Align and Translate论文的详解

    读论文 Neural Machine Translation by Jointly Learning to Align and Translate 这个论文是在NLP中第一个使用attention机制 ...

  4. Effective Approaches to Attention-based Neural Machine Translation(Global和Local attention)

    这篇论文主要是提出了Global attention 和 Local attention 这个论文有一个译文,不过我没细看 Effective Approaches to Attention-base ...

  5. On Using Very Large Target Vocabulary for Neural Machine Translation Candidate Sampling Sampled Softmax

    [softmax分类器的加速器] https://www.tensorflow.org/api_docs/python/tf/nn/sampled_softmax_loss This is a fas ...

  6. 【转载 | 翻译】Visualizing A Neural Machine Translation Model(神经机器翻译模型NMT的可视化)

    转载并翻译Jay Alammar的一篇博文:Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models Wi ...

  7. 基于TensorRT优化的Machine Translation

    基于TensorRT优化的Machine Translation 机器翻译系统用于将文本从一种语言翻译成另一种语言.递归神经网络(RNN)是机器翻译中最流行的深度学习解决方案之一. TensorRT机 ...

  8. 课程五(Sequence Models),第三周(Sequence models & Attention mechanism) —— 1.Programming assignments:Neural Machine Translation with Attention

    Neural Machine Translation Welcome to your first programming assignment for this week! You will buil ...

  9. Sequence Models Week 3 Neural Machine Translation

    Neural Machine Translation Welcome to your first programming assignment for this week! You will buil ...

随机推荐

  1. hashCode和identityHashCode底层是怎么生成的

          前言:在工作中使用==埋下的坑这篇博文的最后,我想到了两个问题,其中一个是——为什么 int int1=99;int int2=99;int1和int2的identityHashCode是 ...

  2. 为什么你学不会递归?告别递归,谈谈我的一些经验 关于集合中一些常考的知识点总结 .net辗转java系列(一)视野 彻底理解cookie,session,token

    为什么你学不会递归?告别递归,谈谈我的一些经验   可能很多人在大一的时候,就已经接触了递归了,不过,我敢保证很多人初学者刚开始接触递归的时候,是一脸懵逼的,我当初也是,给我的感觉就是,递归太神奇了! ...

  3. Inside i++

    i++.++i.i=i+1.效率怎么样?看过一本书上说,i++比i=i+1好的地方是因为i=i+1中的那个1要占用一个寄存器,所以速度没有i++快,于是我想验证一下.另外,以前听说过Java中的“i= ...

  4. SQL中实现SPLIT函数几种方法

    例1 代码如下 复制代码 create function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10))returns @temp ...

  5. 5.翻译:EF基础系列---EF中的上下文类

    原文地址:http://www.entityframeworktutorial.net/basics/context-class-in-entity-framework.aspx EF中的上下文类是一 ...

  6. 解决iPad/iPhone下手机号码会自动被加上a标签的问题

    解决办法: 在页面顶部<head></head>中增加: <meta name="format-detection" content="te ...

  7. Windows 计划任务 Task Schedule 怎么 运行 .bat文件

    1. 新建 test.bat 需要切换文件夹以后 并且执行程序. cd /D "F:\xxxfolder" && dotnet testdll.dll 2. 直接设 ...

  8. vue-client脚手架使用

    1.必须安装node环境 2.安装vue-client脚手架,在命令提示符中运行npm install -g vue-cli 3.创建项目 vue init 模板名 项目名 例如:vue init w ...

  9. [Leet Code]Path Sum

    很简单一道题,搞错了N次,记录一下. public class Solution { private int currSum = 0; public boolean hasPathSum(TreeNo ...

  10. Enum,Int,String的互相转换 枚举转换

    Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型.如果没有显式声明基础类型,则使用 Int32.编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举. 注意:枚举类型的基 ...