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. React(0.13) 定义一个动态的组件

    1.因为jsx将两个花括号之间的内容渲染为动态值,只需要引用对应的变量即可 <!DOCTYPE html> <html> <head> <title>R ...

  2. IDEA使用笔记(五)——*.properties中文乱码的修正

    问题:我的IDEA已经将文件的字符集设置成了UTF-8,但是中文在*.properties文件中还是会出现乱码,后来经同事指点修改了一项配置就ok了!话不多说,看下面的对比就清楚了. 设置前: 设置后 ...

  3. numpy 中的axis轴问题

    在numpy库中,axis轴的问题比较重要,不同的值会得到不同的结果,为了便于理解,特此将自己的理解进行梳理 为了梳理axis,借助于sum函数进行! a = np.arange(27).reshap ...

  4. 【转载并整理】Linux - centOS 6 SVN服务器安装、配置及开机启动

    以前在windows上安装svn服务器,用的是VisualSVN-Server用起来还不错,但只能用在windows,在linux上部署使用是 subversion,具体说明如下 参考原文:http: ...

  5. [转]八幅漫画理解使用JSON Web Token设计单点登录系统

    上次在<JSON Web Token - 在Web应用间安全地传递信息>中我提到了JSON Web Token可以用来设计单点登录系统.我尝试用八幅漫画先让大家理解如何设计正常的用户认证系 ...

  6. python标准库介绍——29 zlib 模块详解

    ==zlib 模块== (可选) ``zlib`` 模块为 "zlib" 压缩提供支持. (这种压缩方法是 "deflate".) [Example 2-43 ...

  7. MySQL5.7.11免安装版的安装和配置:解决MYSQL 服务无法启动问题

    在http://dev.mysql.com/downloads/mysql 这个官网下载MySQL5.7.11 ZIP Archive版本号: watermark/2/text/aHR0cDovL2J ...

  8. JAVA之堆内存和栈内存的差别

    欢迎转载.请附上出处: http://blog.csdn.net/as02446418/article/details/47007975 笔者近期在准备面试的时候又一次看了一些JAVA基础的知识,以下 ...

  9. [LeetCode] Shortest Word Distance I & II & III

    Shortest Word Distance Given a list of words and two words word1 and word2, return the shortest dist ...

  10. 高精度运算库gmp

    网址:www.gmplib.org 我下载的是 6.1.2版本:https://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2 执行操作如下: 1. tar -jv ...