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 ...
随机推荐
- HDU 3032 Nim or not Nim? (sg函数)
Nim or not Nim? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- iscsi target 之LIO配置
LIO 配置 现在主流Linux都可以设置iSCSI,如STGT/TGT.LIO Target等.Linux-IO(LIO)Target是当前Linux标准的iSCSI target的开源实现,包含在 ...
- FluentValidation:C#后端输入验证框架的官方文档解读
参照 FluentValidation 的官方文档写的例子,方便日后查看和使用. 原文:https://github.com/JeremySkinner/FluentValidation/wiki H ...
- 【SqlServer】SqlServer中Alter语句的使用
在修改Sql Server表结构时,常用到Alter语句,把一些常用的alter语句列举如下. 1:向表中添加字段 Alter table [表名] add [列名] 类型 2: 删除字段 Alte ...
- ASP.NET Core 不同操作系统环境安装之Hello World 教程
Official Website:https://www.microsoft.com/net/learn/get-started-with-dotnet-tutorial#install Window ...
- SQLServer2008 全文检索摘记
最近在做全文搜索的内容,google了一下全文检索,发现了一些问题,现在总结如下: 全文索引和查询概念(摘自SQL 联机帮助)SQL Server 2008 为应用程序和用户提供了对 SQL Serv ...
- oracle中exists和in的比较
exists 是Oracle sql中的一个函数.表示是否存在符合某种条件的记录.如 select * from A,B where A.id=B.id and exists (SELECT * FR ...
- Linux下多路复用IO接口epoll/select/poll的区别
select比epoll效率差的原因:select是轮询,epoll是触发式的,所以效率高. Select: 1.Socket数量限制:该模式可操作的Socket数由FD_SETSIZE决定,内核默认 ...
- [转]单元测试利器 JUnit 4
引言 毋庸置疑,程序员要对自己编写的代码负责,您不仅要保证它能通过编译,正常地运行,而且要满足需求和设计预期的效果.单元测试正是验证代码行为是否满足预期的有效手段之一.但不可否认,做测试是件很枯燥无趣 ...
- php分享二十八:mysql运行中的问题排查
一:杀掉mysql连接的方法: kill thread_id: 杀掉当前进程,断开连接 kill query thread_id: 只杀掉某连接当前的SQL,而不断开连接. 批量杀死MySQL连接的 ...