【机器翻译】机器翻译入门

机器翻译入门,传统的以及微软刘铁岩团队提出的Dual learning,相关内容转载以下。声明:一些内容转载并整合。html

 

 

第一部分:转载自http://www.javashuo.com/article/p-tirrieah-by.html;做者:xingoonginx

咱们先来看看机器翻译是怎么被玩坏的吧!git

PS: 这个梗真的不是我黑谁!我也是从PPT上面看到的,以为这个例子很不错.....程序员

话说回来,在机器翻译的领域,有不少难点。好比,语言的复杂程度,上下文的关联等等。想一想看,一样是汉语,山东大汉和陕西小哥以及东北姑娘说出来的都是不同的;再想一想汉语中的博大精深,一样一段话,上下文不一样表达的含义也是不同的;再复杂点,涉及到两种语言的切换,就更恐怖了。github

目前业内主要的实现手段有基于规则的、基于实例的、基于统计的以及基于神经网络的,看着感受蒙蒙哒,咱们来具体的了解下吧:web

基于规则的机器翻译

基于规则的机器翻译,是最古老也是见效最快的一种翻译方式。算法

根据翻译的方式能够分为:swift

  • 直接基于词的翻译
  • 结构转换的翻译
  • 中间语的翻译

从字面上理解,基于词的翻译就是直接把词进行翻译,可是也不是这么简单,会经过一些词性的变换、专业词汇的变换、位置的调整等一些规则,进行修饰。markdown

能够看到翻译的质量不好,可是基于这种词规则的翻译,基本上能够辅助咱们作一些翻译的工做;并且这种翻译也带来了机器翻译的0到1的飞跃网络

那么基于结构转换 其实就是不只仅考虑单个词,而是考虑到短语的级别。好比根据端与do chicken有可能被翻译成烹饪鸡,那么整句话就好多了咱们烹饪鸡好吗

最后一种就是基于中间语的翻译,好比过去在金本位的年代,各国都有本身的货币。中国使用中国的货币,美国使用美国的货币,那么货币之间怎么等价呢?就能够兑换成黄金来衡量价值。这样就能够进行跨币种的买卖了..翻译也是如此,假若由两种语言没法直译,那么也能够先翻译成中间语,而后经过中间语进行两种语言的翻译。

基于统计的机器翻译

基于统计的机器翻译明显要比基于规则的高级的多,由于引入了一些数学的方法,整体上显得更加专业。那么咱们看看它是怎么作的吧!

首先,咱们有一段英文想要把它翻译成汉语:

we do chicken right

会根据每一个词或者短语,罗列它可能出现的翻译结果:

咱们/作/鸡/右 咱们/作/鸡/好吗 咱们/干/鸡/怎么样 ...

这样的结果有不少种...

而后咱们须要一个大量的语料库,即有大量的文章...这些文章会提供 每一种翻译结果出现的几率,几率的计算方式多是使用隐马尔可夫模型,即本身算相邻词的几率,这个原理在《数学之美》中有介绍,感兴趣的能够去看看。

最终挑选几率最高的翻译结果做为最终的输出。

总结来讲大体的流程是:

所以能够看到,这种翻译方式依赖大量的语料库,所以大多数使用这种方式并且效果比较好的都是那种搜索引擎公司,好比Google和Baidu,他们依赖爬虫技术有互联网中大量的文本资料,基于这些文本资料能够获取大量的语料来源,从而为本身的翻译提供大量的依据数据。

基于实例的机器翻译

这种翻译也比较常见,通俗点说就是抽取句子的模式,当你输入一句话想要翻译的时候,会搜索相相似的语句,而后替换不同的词汇翻译。举个例子:

I gave zhangsan a pen I gave lisi an apple

就能够抽取他们类似的部分,直接替换不同的地方的词汇就行。这种翻译其实效果不太好,并且太偏领域背景...

基于神经网络的机器翻译

在深度学习火起来后,这种方式愈来愈受关注。咱们先来了解下什么是神经网络:

基本的意思就是咱们会有不少的输入,这些输入通过一些中间处理,获得输出。获得的输出又能够做为下一个计算过程的输入...这样就组成了神经网络。

在机器翻译中主要使用的是循环神经网络,即上一次的输出能够做为此次的输入继续参与计算。这样有什么目的呢?

就是在翻译的过程当中,虽然是以句子为单位进行翻译的,可是每一句话都会对下一句话的翻译产生影响,这样就作出了上下文的感受....好比do chicken单纯的翻译有不少中翻译的结果。可是若是前面出现过厨师等这类的词句,那么这个单词就能够更倾向翻译成烹饪鸡

这种操做模式,在问答系统中也会遇到...以后会有所介绍.

总结

总结的来讲,若是想要快速搭建一个机器翻译的系统,能够先从基于规则开始,添加一些领域背景的知识,就能达到一个比较快速的效果。而基于统计的方法从数据获取的成本和模型的训练来讲,成本都很高...

针对机器翻译是否能代替人工翻译,知乎上面也有很多讨论,我这个门外汉也以为,暂时不太可能,不过机器翻译做为人工翻译的一种辅助手段仍是很必要的。好比那些非专业的翻译人士,如写论文的研究生、看前沿技术的程序员小朋友,这种机器翻译能够做为一种颇有效的阅读辅助的手段,由于大部分的时候,都是直接把某一段英文粘贴到翻译的输入框,而后按照翻译出来的结果,本身再组织理解...(我想大部分人都是这么用的吧~ 原谅我英语差)

那么机器翻译的扫盲就暂时介绍到这里了,以后会再研究下情感分析相关的内容...

参考

--------------------------------------------------分界线------------------------------------------------------------------

第二部分:转载自http://www.cnblogs.com/zhbzz2007;做者:zhbzz2007

 

 

本文主要是翻译及整理MSRA 刘铁岩团队在NIPS 2016 会议上发表的论文“Dual Learning for Machine Translation”。对于论文中的算法思想可能尚未理解透彻,还请诸位大牛多多指教。

 

1 简介

最早进的机器翻译系统,包括基于短语的统计机器翻译方法、最近出现的基于神经网络的翻译方法,严重依赖于对齐的平行训练语料。然而,实际收集这些平行语料数据的代价很是大,所以语料的规模也每每有限,这将会限制相关的研究和应用。

咱们知道在互联网中存在海量的单语数据,很天然的想到,可否利用它们去提高机器翻译系统的效果呢?实际上,基于这个想法,研究人员已经提出了许多不一样的方法,这里能够粗略的分为两类。第一类,目标语言的单语语料被用于训练语言模型,而后集成到翻译模型(从平行双语语料中训练出)中,最终提高翻译质量。第二类,经过使用翻译模型(从对齐的平行语料中训练)从单语数据中生成伪双语句对,而后在后续的训练过程当中,这些伪双语句对被用于扩充训练数据。尽管上述方法可以在必定程度上提高翻译系统的效果,可是它们依然存在必定的局限性。第一类的方法只使用了单语数据来训练语言模型,并无解决平行训练数据不足这个问题。尽管第二类方法能够扩充平行训练数据,可是并不能保证伪双语句对的质量。

在这篇文章中,刘铁岩团队提出了一种Dual-Learning(对偶学习)机制,能够有效地利用单语数据(源语言与目标语言)。经过使用他们提出的机制,单语数据与平行双语数据扮演着类似的角色,在训练过程当中,能够显著下降对平行双语数据的要求。对偶学习机制应用在机器翻译中,能够想象成两个agent(机器)在玩通讯游戏,以下图所示,

  1. 第一个机器,只理解语言A,经过噪声信道,发送一条信息(是语言A)给第二个机器,噪声信道经过翻译模型会将语言A转换成语言B;
  2. 第二个机器,只理解语言B,接收到翻译过来的信息(是语言B)。它检查这条信息,并通知第一个机器(第二个机器可能没法确认这个翻译的正确性,由于它不知道原始的消息)。而后,它经过另外一个噪声信道(使用另一个翻译模型,将接收到的消息从语言B转换为语言A)将接收到的信息发送给第一个机器。
  3. 从第二个机器接收到信息后,第一个机器会检查它,并通知第二个机器它接收到的信息是否包含它原来的信息。经过这个反馈,两个机器就能够知道这两个通讯信道(也就是两个翻译模型)表现是否良好以及可否提升它们的效果。
  4. 这个游戏也能够从第二个机器开始,那么原始的消息就是语言B,这两个机器将会通过一个对称化的过程,经过反馈从而提升两个信道(翻译模型)的效果。

从上面的描述中,很容易发现,尽管两个机器可能没有对齐的双语语料,它们依然能够得到两个翻译模型的翻译质量方面的反馈,而后基于反馈持续提高模型的效果。这个游戏能够玩任意轮,两个翻译模型经过强化过程(例如,经过策略梯度方法)获得持续改善。经过这种方式,他们开发了一个通用的学习框架,经过对偶学习游戏,这个框架可用于训练机器翻译模型。

对偶学习机制很一些不一样的特色。首先,咱们经过强化学习从未标注数据中训练翻译模型。这个工做显著下降了对对齐双语数据的要求,它打开了一个新的窗口,能够从头开始(甚至不使用任何平行数据)学习一个翻译模型。实验结果显示,这个方法颇有前景。

其次,显示出深度强化学习(DRL)在复杂真实世界中的应用,而不只仅是在游戏这个领域。在最近几年,深度强化学习吸引了不少科研人员的注意力。可是,大部分应用仍是集中在视频或者棋盘游戏,将深度强化学习应用到更加复杂的应用(规则没有事先定义好,而且没有明确的奖励信号),依然存在很大挑战。对偶学习提供了一种颇有前景的方式,能够在真实世界应用中,例如,机器翻译,抽取出强化学习须要的奖励信号。

2 相关背景

对偶学习框架能够应用到基于短语的统计机器翻译和神经机器翻译中。在这篇文章中,咱们主要聚焦在后者--神经机器翻译,由于它做为一个端到端的系统,很简单,不须要人工设计精巧的工程。

神经机器翻译系统一般是经过基于编码-解码框架的循环神经网络(RNN)来实现。这个框架从源语言句子 x=x1,x2,...,xTx x=x1,x2,...,xTx 到目标语言 y=y1,y2,...,yTyy=y1,y2,...,yTy 学习了一个几率映射 P(y|x),其中,xi 和 yt 分别是句子x的第i个词和句子y的第t个词。

更具体一些,神经机器翻译的编码器读取源语言句子 x ,而后基于RNN生成 TxTx 个状态,

hi=f(hi1,xi)      (1)hi=f(hi−1,xi)      (1)

hihi 是时刻t的隐状态,函数f是循环单元,例如Long Short-Term Memory(LSTM)单元或者Grated Recurrent Unit(GRU)。而后,神经网络的解码器计算每一个目标词 ytyt 的条件几率,对于 ytyt ,已知它先前的词 y<ty<t 和源语言句子,例如, 基于几率链式法则, 使用 P(yt|y<t,x)P(yt|y<t,x) 来肯定 P(y|x)P(y|x) 。P(yt|y<t,x)P(yt|y<t,x) 以下列所示,

P(yt|y<t,x)exp(yt;rt,ct)      (2)P(yt|y<t,x)∝exp(yt;rt,ct)      (2)

rt=g(rt1,yt1,ct)      (3)rt=g(rt−1,yt−1,ct)      (3)

ct=q(rt1,h1,...,hTx)      (4)ct=q(rt−1,h1,...,hTx)      (4)

其中, rtrt 是解码器RNN在时刻t的隐状态,类似地,也是经过LSTM或者GRU进行计算; ctct 根据编码器的隐状态定义了生成词 ytyt 的上下文信息。 ctct 能够是句子 x 的全局信息,例如 c1=c2=...=cTy=hTxc1=c2=...=cTy=hTx , 或者是局部信息,局部信息经过注意力机制实现,例如 ct=Txi=1αihi,αi=exp{a(hi,rt1)}jexp{a(hj,rt1)}ct=∑i=1Txαihi,αi=exp{a(hi,rt−1)}∑jexp{a(hj,rt−1)} , 其中, a(.,.)a(.,.) 是一个前馈神经网络。

咱们将神经网络中待优化的全部参数定义为 ΘΘ ,将用于训练的源语言-目标语言数据集定义为 D ,而后要学习的目标函数就是寻找最优的参数 ΘΘ∗ 。

Θ=argmaxΘ(x,y)DTyt=1logP(yt|y<t,x;Θ)      (5)Θ∗=argmaxΘ∑(x,y)∈D∑t=1TylogP(yt|y<t,x;Θ)      (5)

3 对偶学习在机器翻译中的应用

在这章中,咱们将会介绍对偶学习机制在神经机器翻译中的应用。注意到翻译任务常常是两个方向,咱们首先设计一个有两个机器人的游戏,包含前向翻译步骤和反向翻译步骤,即便只使用单语数据,也能够给两个对偶翻译模型提供质量反馈。而后咱们提出了对偶学习算法,称之为对偶神经机器翻译(简称dual-NMT),在游戏中,基于反馈回来的质量,提高两个翻译模型。

有两个单语语料 DADA 和 DBDB ,分别包含语言A和语言B的句子。须要注意的是,这两个语料并不须要互相对齐,甚至互相之间一点关系都没有。假设,咱们右两个弱翻译模型,能够将句子从语言A翻译到语言B,反之亦然。咱们的目标是使用单语语料而非平行语料来提升两个模型的准确率。从任何一个单语数据的句子开始,咱们首先将其翻译为另外一种语言,而后再将其翻译回原始语言。经过评估这两个翻译结果,咱们将会了解到两个翻译模型的质量,并根据此来提高它们。这个过程能够迭代不少轮直到翻译模型收敛。

假设语料 DADA 有 NANA 个句子, DBDB 有 NBNB 个句子。定义 P(.|s;ΘAB)P(.|s;ΘAB) 和 P(.|s;ΘBA)P(.|s;ΘBA) 为两个神经翻译模型,这里 ΘABΘAB 和 ΘBAΘBA是它们的参数(正如第2章中所描述)。

假设咱们已经有两个训练好的语言模型 LMA(.)LMA(.) 和 LMB(.)LMB(.) (很容易得到,由于它们只须要单语数据),每一个语言模型获取一个句子做为输入,而后输出一个实数值,用于表示这个句子是它所属语言天然句子的自信度。这里,语言模型既可使用其余资源,也能够仅仅使用单语数据 DADA 和 DBDB。

若是游戏是从 DADA 中的句子 s 开始 ,定义 smidsmid 做为中间翻译输出。这个中间步骤有一个中间的奖励 r1=LMB(smid)r1=LMB(smid) , 表示输出句子在语言 B 中的天然程度。已知中间翻译输出 smidsmid ,咱们使用从 smidsmid 还原过来的 s 的对数几率做为通讯的奖励(咱们将会交替使用重构和通讯)。数学上定义, 奖励 r2=logP(s|smid;ΘBA)r2=logP(s|smid;ΘBA) 。

咱们简单采用语言模型奖励和通讯奖励的线性组合做为总体奖励,例如, r=αr1+(1α)r2r=αr1+(1−α)r2 , 这里 αα 是超参数。因为游戏的奖励能够视为s , smidsmid 以及翻译模型 ΘABΘAB 和 ΘBAΘBA 的函数,所以,咱们能够经过策略梯度方法来优化翻译模型中的参数,从而达到奖励最大化,这个方法在强化学习中应用很普遍。

咱们基于翻译模型 P(.|s;ΘBA)P(.|s;ΘBA) 采样出 smidsmid 。而后咱们计算指望奖励 E[r]E[r] 关于参数 ΘABΘAB 和 ΘBAΘBA 的梯度。根据策略梯度定理,很容易获得,

ΘBAE[r]=E[(1α)ΘBAlogP(s|smid;ΘBA)]     (6)▽ΘBAE[r]=E[(1−α)▽ΘBAlogP(s|smid;ΘBA)]     (6)

ΘABE[r]=E[rΘABlogP(smid|s;ΘAB)]     (7)▽ΘABE[r]=E[r▽ΘABlogP(smid|s;ΘAB)]     (7)

这里指望替换掉 smidsmid 。

基于公式(6)和公式(7),咱们能够采用任何的采样方法来估计指望的梯度。考虑到随机采样将会带来很是大的方差,而且会致使机器翻译中出现不合理的结果,针对梯度计算,咱们使用束搜索来获取更加有意义的结果(更加合理的中间翻译输出),例如,咱们贪婪地产生top-K个高几率的中间翻译输出,而后使用束搜索的平均值来近似真实的梯度。若是游戏是在 DBDB 中的句子 s 开始,梯度的计算就是一个对称,在此,咱们忽略掉它。

游戏能够重复不少轮。在每一轮中,一个句子从 DADA 中采样,另外一个句子是从 DBDB 中采样,咱们基于游戏(分别从两个句子开始)来更新这两个翻译模型。具体的细节在算法1中给出。

4 相关实验

咱们作了一系列实验来测试提出的对偶学习机制在机器翻译上的效果。

4.1 实验设置

咱们使用两个基准系统和对偶机器翻译方法进行对比,1)标准神经机器翻译(简称NMT),2)最近提出的基于NMT的方法,经过单语语料生成伪双语句对用于辅助训练(简称pseudo-NMT)。咱们的全部实验都是使用Theano实现的辅助NMT系统来完成。

咱们评估这些算法在一对翻译任务上的效果,包括英语翻译为法语(En->Fr)和法语到英语(Fr->En)。具体地,咱们使用相同的双语语料,语料来源于WMT14,共有1200万句对。而后将newstest2012和newstest2013做为开发数据集,newstest2014做为测试数据集。WMT14 提供的“News Crawl:articles from 2012”做为单语数据。

咱们使用GRU网络并遵循论文1(D. Bahdanau, K. Cho, and Y. Bengio. Neural machine translation by jointly learning to align
and translate. ICLR, 2015.)中的实践来设置实验参数。对于每种语言,咱们用平行语料中最频繁的3万个词构造词汇表,将包含至少一个OOV单词的句子删除。每一个词被映射到620维的连续向量空间,循环单元的维度是1000。咱们将训练集中超过50个词的句子删除。batch的大小为80,每20个batch被预取,并按照句子长度排序。

对于基准的NMT模型,咱们彻底按照论文1提出的设置。对于基准的pseudo-NMT模型,咱们使用训练好的NMT模型从单语数据中生成伪双语句对,删除超过50个词的句子,将生成的数据与原始平行训练数据融合在一块儿,而后训练这个模型,并用于测试。每一个基准系统经过AdaDelta算法在K40m GPU进行训练,直到它们的效果在开发集上再也不提高为止。

对偶神经机器翻译(简称dual-NMT)模型须要每种语言的语言模型。咱们对于每种语言,使用相应的单语语料,训练了基于RNN的语言模型。实验中,语言模型就固定了,而后收到信息的对数似然做为通讯信道(例如,翻译模型)的奖励。

在玩游戏时,咱们使用暖启动翻译模型(已经从双语语料中训练出来的)来初始化信道,而后观察dual-NMT模型可否有效提高模型翻译准确率。在咱们的实验中,为了从双语数据训练的初始模型平滑过渡到彻底从单语数据训练的模型,咱们采用了如下软着陆策略。在每次对偶学习过程的开始,对于每一个mini batch,咱们使用单语数据一半的句子和双语数据(从数据中采样出来的用于训练初始模型)中一半的句子。目标就是基于单语数据最大化奖励(在第3部分定义的)的加权之和以及基于双语数据的似然度(在第2部分定义)。随着训练过程的持续,咱们逐渐在mini batch中增长单语数据的比例,直到彻底不使用双语数据。这里,咱们在实验中测试了两个测试:

  • 第一个设置(参考Large),咱们在软着陆阶段,使用所有的1200万双语句对。也就是,暖启动模型是基于所有双语数据进行学习的;
  • 第二个设置(参考Small),咱们在1200万双语句对中随机采样了10%的数据,并在软着陆阶段使用它;

对于每一个设置,咱们都是训练对偶机器翻译算法一周。咱们在中间翻译过程当中设置束搜索大小为2。实验中的全部超参数经过交叉验证来设置。咱们使用BLEU做为评估标准,由moses提供的 脚本工具 进行计算。遵循常规的实践,在测试阶段,如同先前许多的工做,咱们对于全部的算法均使用大小为12的束搜索。

4.2 实验结果分析

咱们在这部分分析实验结果。回忆以前提到的两个基线系统,英语->法语和法语->英语是分别训练的,可是,dual-NMT系统一块儿训练这两个基线系统。咱们在表1中总结了全部系统的效果,在源语言句子的各个长度上的BLEU分值曲线在图1中画出。

从表1中,咱们能够看到dual-NMT系统在全部的设置中均超过了基线系统。在从英语翻译为法语的任务上,dual-NMT系统分别在第一种/第二种暖启动方式超过基线NMT系统大约2.1/3.4个百分点,超过pseudo-NMT大约1.7/3.1个百分点。在从法语翻译为英语的任务上,提高更加显著,dual-NMT系统在第一个/第二个暖启动方式上分别超过NMT大约2.3/5.2个百分点,超过pseudo-NMT大约2.1/4.3个百分点。使人惊讶的是,在只有10%的双语数据上法语翻译为英语的任务中,相比使用100%的常规NMT系统,dual-NMT取得了可比的翻译正确率。这些结果显示了dual-NMT算法的有效性。另外,咱们也观察到以下结果:

  • 尽管pseudo-NMT的效果超过NMT,它的提高并不显著。咱们认为,多是从单语数据中生成的伪双语句对质量很差,这个限制了pseudo-NMT的效果提高。须要注意的就是须要仔细选择和过滤生成的伪双语句对,以便pseudo-NMT能够取得更好的效果;
  • 当平行双语数据较少时,dual-NMT能够有更大的提高。这个显示了对偶学习机器能够很好的利用单语数据。所以,咱们认为dual-NMT在较少的有标签平行数据和更大的单语句对上更有用。dual-NMT打开了一个新的窗口,能够从头开始学习一个翻译模型。

咱们在源语言句子的各个长度上的BLEU分值曲线在图1中画出。从这个图中,咱们能够看出dual-NMT算法在全部的长度上超过了基准系统。

咱们对dual-NMT算法作了一些更深刻的研究,如表2所示。咱们研究了各个算法的重构后的效果:对于测试集的每一个句子,咱们将它翻译到第4次并返回,而后使用BLEU分值来检查返回的翻译句子。咱们使用束搜索生成全部的翻译结果。很容易地从表2中观察到,dual-NMT的重构后的BLEU分数比NMT和pseudo-NMT更高。实际上,在从大规模平行数据上训练的暖启动模型上,dual-NMT超出NMT大约11.9/9.6,在10%数据上训练的暖启动模型上,dual-NMT超出NMT大约20.7/17.8。

咱们在表3上列出了几个例句,用于对比使用对偶学习以前和以后模型的重构结果。很明显,在对偶学习以后,重构的效果在两个方向(英语->法语->英语,法语->英语->法语)上都有很大提高。

总之,全部的结果均显示出对偶学习机器颇有前景而且能够更好地利用单语数据。

5 扩展

在这部分,咱们讨论对偶学习机制可能的扩展。

首先,尽管在咱们在这篇文章中集中在机器翻译任务上,可是对偶学习的基本思想具备通用的应用性:只要两个任务具有对偶形式,咱们就能够利用强化学习算法将对偶机学习机制应用到从未标注数据中同时学习两个任务。实际上,许多人工智能任务自然的是对偶形式,例如,语音识别和语音合成,图像抓取和图像合成,问题回答和问题生成,搜索(匹配查询词与文档的类似度)和关键词抽取(从文档中抽取关键字/查询词)等等。对于更多的对偶任务,而不只仅是机器翻译,设计和测试对偶学习算法将会颇有意义。

第二,尽管咱们将对偶学习集中在两个任务上,可是咱们的技术并不只仅局限在两个任务。实际上,咱们主要的想法是造成一个闭环,目的是咱们经过比较原始输入数据和最终输出数据,可以提取出反馈信号。所以,若是有多于两个相关的任务能够造成闭环,咱们能够应用这个技术来提高每一个任务在无标签数据的效果。例如,对于英语句子 x ,咱们能够先将它翻译为中文句子 y ,而后将 y 翻译为法语句子 z ,最终再将 z 翻译为英文句子 xx′ 。句子 x 和 xx′ 的类似度能够表示闭环中三个翻译模型的有效性,咱们基于闭环中的反馈信号能够再次使用策略梯度方法来更新和提高这些模型。咱们更愿意将这种通用的对偶学习命名为闭环学习,而且在将来会测试它的有效性。

6 展望

咱们计划在后续探索以下的方向,第一,在实验中,咱们使用了双语数据用于暖启动dual-NMT的训练。更加激动的方向就是从头学习,例如,直接从两种语言的单语数据(可能须要词汇词典)开始学习。第二,dual-NMT是基于NMT系统的,咱们基本的想法也能够用于基于短语的统计机器翻译系统中,咱们将会探索这个方向。第三,咱们仅仅考虑一对语言,咱们将会进行扩展,使用单语数据,联合训练至少3种语言的翻译模型。

7 从控制系统的角度思考对偶学习

在第5章中,提到了对偶学习能够视为一个闭环学习。闭环学习的概念来源于反馈控制系统。反馈控制系统,输入信号通过控制器、执行器,获得输出信号,而后再将输出信号采集回来,输入信号减去采集回来的输出信号,获得偏差,根据偏差来调节控制器,使得输出可以跟随输入信号。

对偶神经机器翻译系统能够视为一个反馈控制系统,这里以中文翻译为英文,再将英文翻译为中文为例。

  • 经过中->英翻译模型将中文翻译为英文,就是将输入信号经过控制器、执行器,转换为输出信号,也就是英文;
  • 经过英->中翻译模型将英文翻译为中文,就是将输出信号经过信号采集器返回给输入端,转换为与输入信号同等量纲的信号,也即中文;
  • 经过指标,比较原始中文与翻译过来的中文的类似性,来评估两个翻译模型的效果,也就是计算输入信号与采集回来的信号之间的偏差,从而经过控制器的调节,调整输出信号的变化;

循环迭代,直到输出信号可以跟随输入信号。

在控制系统的设计中,须要考虑三个指标:

  • 稳定性
  • 准确性
  • 快速性

分别将这三个指标对应到对偶机器翻译系统中,

  • 稳定性就是对偶机器翻译系统中两个翻译模型的稳定性,若是翻译系统存在漏翻译、翻译质量低等问题,可否在迭代过程当中逐渐改善?若是不能获得改善,将会致使翻译质量会愈来愈低,而非愈来愈好,这个系统就会逐渐的变差,也就是这个系统是不稳定的。
  • 准确性,也就是对偶机器翻译系统最终稳定时,翻译质量能达到多少?
  • 快速性,若是对偶翻译系统须要达到一个指望的准确度,须要多少时间能达到?另外,若是要超越NMT基线系统,须要多少时间?

所以,咱们能够发现,对偶机器翻译系统是反馈控制系统的一个特例,对偶机器翻译系统在设计时,同反馈控制系统同样,须要考虑稳定性、准确性和快速性三个指标。很期待对偶学习以及其在机器翻译领域的发展。

8 Reference

Di He, Yingce Xia, Tao Qin, Liwei Wang, Nenghai Yu, Tie-Yan Liu, and Wei-Ying Ma , Dual Learning for Machine Translation , NIPS 2016.

演讲 | 微软亚洲研究院刘铁岩:对偶学习推进人工智能的新浪潮

研究|对偶学习:一种新的机器学习范式

相关文章
相关标签/搜索