Phrase-Based & Neural Unsupervised Machine Translation基于短语非监督机器翻译
1. 前言
本文介绍一种无监督的机器翻译的模型。无监督机器翻译最早是《UNSUPERVISED NEURAL MACHINE TRANSLATION》提出。这个模型主要的特点,无需使用平行语料库,使用去噪和回译的步骤构建NMT系统。
2018年Facebook人工智能实验室再次公布了有关无监督神经网络翻译的最新模型《Phrase-Based & Neural Unsupervised Machine Translation》,相当于用 10 万个参考译文训练过的监督模型。“在机器翻译领域,这是一个重大的发现,尽管世界上有超过 6500 种语言,但可利用的翻译训练资源池要么不存在、要么就是太小不足以运用在现有系统中。”
2. Facebook论文原理
Neural Unsupervised Machine Translation介绍了两个模型:
- 基于短语的无监督翻译模型 (PBSMT)
- 基于神经网络的无监督翻译模型 (NUMT) 。
2.1 Unsupervised MT(无监督学习)步骤
在论文中介绍了Unsupervised MT(无监督学习)的主要过程:
- word-by-word Initialization(词到词的参数初始化)
- Language Modeling(语言建模,有去噪效果)
- Iterative Back-translation(迭代回译,自动生成双语对照)
伪代码的形式如下,伪代码中的步骤少了一个word-by-word Initialization的过程:
再看一个论文中介绍3个过程的图:
- 图A是两个单独的语言语料库的数据
- 图B是第一原则:word-by-word Initialization初始化。 这两个单独的语言语料库大致对齐。可以通过单词对齐的形式进行。
- 图C是第二个原则:Language Modeling语言建模。分别学习两个语言模型。语言模型有去噪的作用(弹簧连接的点代表噪声)。
- 图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的过程:
- L1 sentence->shared encoder(L1)->L2 decoder->predict L2 sentence
- 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基于短语非监督机器翻译的更多相关文章
- 神经机器翻译 - NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE
论文:NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE 综述 背景及问题 背景: 翻译: 翻译模型学习条件分布 ...
- 基于短语的统计机器翻(PBMT) 开源工具 :Moses
如何运行Moses 1. Moses的历史 Moses是Pharaoh的升级版本,增加了许多功能.它是一个基于短语的统计机器翻译系统,整个系统用C++语言写成,从训练到解码完全开放源代码,可以运行在L ...
- 对Neural Machine Translation by Jointly Learning to Align and Translate论文的详解
读论文 Neural Machine Translation by Jointly Learning to Align and Translate 这个论文是在NLP中第一个使用attention机制 ...
- Effective Approaches to Attention-based Neural Machine Translation(Global和Local attention)
这篇论文主要是提出了Global attention 和 Local attention 这个论文有一个译文,不过我没细看 Effective Approaches to Attention-base ...
- 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 ...
- 【转载 | 翻译】Visualizing A Neural Machine Translation Model(神经机器翻译模型NMT的可视化)
转载并翻译Jay Alammar的一篇博文:Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models Wi ...
- 基于TensorRT优化的Machine Translation
基于TensorRT优化的Machine Translation 机器翻译系统用于将文本从一种语言翻译成另一种语言.递归神经网络(RNN)是机器翻译中最流行的深度学习解决方案之一. TensorRT机 ...
- 课程五(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 ...
- Sequence Models Week 3 Neural Machine Translation
Neural Machine Translation Welcome to your first programming assignment for this week! You will buil ...
随机推荐
- ROS学习(十)—— 使用rosed编辑ROS中的文件
一.rosed 1.作用: 直接编辑一个文件而不需要打开完整路径名 2.语法: rosed [package_name] [filename] 3.如果不知道编译哪个文件名,可以使用tab进行查询 r ...
- 安卓PopupWindow+ListView实现登录账号选择下拉框
这段时间在做android开发,发现自定义下拉框有很多种方法实现,我介绍一种PopupWindow+ListView的方式,实现起来比较灵活.效果: 直接看核心代码: //获取文本框 etLoginN ...
- 微信支付HTTPS服务器证书验证指引
1. 背景介绍 2. 常见问题 3. 验证证书 4. 安装证书 背景介绍 微信支付使用HTTPS来保证通信安全, 在HTTPS服务器上部署了由权威机构签发的证书, 用于证明微信支付平台的真实身份. 商 ...
- Checkstyle-Configuration
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE module PUBLIC "-/ ...
- TensorFlow 中的 tf.train.exponential_decay() 指数衰减法
exponential_decay(learning_rate, global_step, decay_steps, decay_rate, staircase=False, name=None) 使 ...
- 解决Android中多次点击(快速点击多次 )启动多个相同界面的问题
通过以下代码可以解决这个问题. /** * 防止快速点击 * @param ev * @return */ @Override public boolean dispatchTouchEvent(Mo ...
- Smarty标签 for运算
$select="SELECT {$col_name} FROM woke_order where deleted=0 ".$where.$orderby ; // 取出数组 $r ...
- android 蓝牙编程重点---如何发送和接收16进制数据
最近的android蓝牙开发项目也逐渐接近尾声,基本的功能都已经完成,只剩下界面的设计.现在真的是舒了一口气! 作为编程学习经验只有1年的菜鸟,这是我独自完成的商业性产品,而且还是涉及到与单片机蓝牙模 ...
- asp.net中C#中计算时间差代码
我用的最简单的办法是 代码如下 复制代码 DateTime dtone = Convert.ToDateTime("2007-1-1 05:32:22");DateTime dtw ...
- 变量命名神器Codelf
个人感觉,当觉得命名困难的时候,其实是因为还没有想清楚这个变量.这个方法或者这个类是要干什么,还不能用一个或几个词准确描述它的工作,才觉得无法命名,这是命名的最困难的阶段.而只要想清楚了它的任务,命名 ...