IM (中国电竞) 官方网站

人工智能机器翻译的发展经历了哪几个重要阶段?
栏目:最新动态 发布时间:2024-05-03
 “机器翻译”是一个相对模糊的概念,大体上所有利用机器帮助人类进行翻译活动的技术和服务都可以归类为机器翻译。例如在线词典、翻译套件等,在广义上也可以称为机器翻

  “机器翻译”是一个相对模糊的概念,大体上所有利用机器帮助人类进行翻译活动的技术和服务都可以归类为机器翻译。例如在线词典、翻译套件等,在广义上也可以称为机器翻译。现在绝大多数情况下,机器翻译指的是利用机器(电脑)进行完整的句子或篇章翻译的系统。在线词典等在这种定义下都被排除在外。大体上,机器翻译的发展可以分为一下几个阶段:早期探索时期(1933-1956);第一次热潮时期(1956-1966);商用的基于规则时期(1967-2007);统计机器学习时期(1993-2016);神经网络机器翻译时期,2013至今。

  从机器翻译(Machine Translation)这个名词我们就可以看出这项技术有着悠久的历史——至少比电脑 (Computer)出现还要早。虽然人类很早就开始提出利用机器提供翻译服务,早期的提议大多停留在类似“文曲星”词典的快速词典查找设备上。直到1933年,俄罗斯人特洛伊斯基 (Peter Petrovich Troyanskii) 第一次提出了机器翻译模型,并在1937年展示了一个机器翻译系统。这个机器能够自动地找到句子中每个词的翻译——使用的是一种纸带存储设备。(题外:此君参与了苏联大百科全书的编辑,深感翻译不便的他全心投入翻译机器的设计,当然最后并没有成功)。

  从这个时候开始,直到1949年机器翻译并没有太多的进展,特洛伊斯基的工作和大多数苏联的工作一样并不为西方世界所知。直到电子计算机的出现,机器翻译的可能性才为人们所重视。特别是Warren Weaver 的雄文《翻译》——是的,这份备忘录的名字就叫Translation。此文现在可以在1949.pdf看到。这篇文章并没有实现任何技术,但是极具里程碑意义地提出了让机器翻译超越简单的词到词翻译的四种可能方法,其中包含了许多今天仍然很有意义的概念,例如通用语,文法转写,破译密码的“解码器”等。机器翻译的研究迅速铺开,并在1956年后开始了为期10年的第一个热潮。

  从《翻译》发表之后,整个机器翻译领域就分为两个流派:姑且称为语言学学派和信息论学派。在半个多世纪中,两个门派既有竞争也有合作,直到今日。大体上,语言学学派相信机器翻译需要通过对源语言和目标语言的语法分析,解析其意义,再进行翻译。而信息论学派则从信息论角度出发,认为翻译是一个破解密码的过程——假设我们看到的中文是经过某种加密方法加密后的英文,我们的任务就是通过对大量数据的分析,找出破解密码的方法。早期由于计算机处理能力和数据量的限制,统计方法并不占优。在1954年,Georgetown University和IBM 一起展示了能够翻译49个俄语句子的系统。其实该系统只能翻译250个词,总共就只有6个转写规则…… 然而就是这样一个系统,引发了1956年-1966年期间的巨大的机器翻译泡沫,学者们纷纷开始预测机器翻译很快会得到彻底的解决(是不是有点熟悉的气息?)。

  机器翻译的第一个黄金10年如白驹过隙,其中最成功的系统还是前文所诉的GAT系统。经过10年的发展,其系统已经变得相当复杂,包括了复杂的语法分析。当时大部分的机器翻译研究都是由政府资助的(这一情况一直持续到笔者开始机器翻译研究的前五六年),因此在1964年政府成立了一个自动语言处理顾问委员会Automatic Language Processing Advisory Committee (ALPAC)。经过两年的调查,ALPAC发表了其著名的机器翻译研究现状报告,其结论是机器翻译进展缓慢,质量糟糕,价格昂贵,且看不到未来。这一报告刺破了第一次机器翻译泡沫(甚至连带着刺破了第一次人工智能泡沫),使得机器翻译陷入了长达十年的寒冬。在这个寒冬中,失去政府资助的机器翻译研究人员只好转向定制商用系统,基于转写文法(或称为基于规则的方法,Rule-based)的方法往往对特定的定制领域有较好的效果,因此统计方法几乎被抛弃。1967年直到1992年,各种转写文法研究都取得了很大的进展,其基本方法是手写大量的语法解析规则对源语言进行解析,而后用语法转写规则生成目标语言文法,再通过生成规则产生最终文本。这一方法的影响仍然深远,笔者在2007年仍然上过基于语法转写实现机器翻译的课。我们可以将这个时代的机器翻译称作“人工智能”,但是并非“机器学习”,还是处于有多少人工就有多少智能的阶段。

  随着电子化的文本语料越来越多,基于语料的机器翻译逐渐占据主流。1993年,IBM的 Brown et al. 发表了The mathematics of statistical machine translation: Parameter estimation。这篇文章奠定了此后20年机器翻译的基础。这篇文章将机器翻译描述为一个信道模型(事实上Weaver在《翻译》中就提出了类似想法),并提出了可行的词到词的翻译模型。这一模型的开源实现GIZA在1999年发表,并在2003年为效率大为提高的GIZA++所取代。笔者在2007年开发的MGIZA++和PGIZA++为GIZA++的并行化版本。这些工具的出现,使得处理大规模的数据成为可能。然而,在词到词模型出现的前10年,并没有获得很大的成功。其原因主要是翻译单元粒度太小,利用上下文的能力过弱。

  统计机器翻译的真正崛起,始于Franz Och在2003年的两篇文章Statistical phrase-based translation和Minimum error rate training in statistical machine translation。这篇文章提出了基于短语的翻译模型和最小错误率训练方法。此后直到2015,2016年,这两种方法都是机器翻译的主流方法。2004年,Franz Och加入谷歌,并领导了谷歌翻译的开发。2006年,谷歌翻译作为一个免费服务正式发布,并带来了统计机器翻译研究的一热潮。截止2015年,谷歌翻译已经支持了超过100种语言。这个时代的机器翻译质量较以往的方法有了极大的提高,但是仍然有翻译不准确不流畅的问题。随着数据量的增加,系统性能的提高逐渐变得困难。在2012年之后,统计机器翻译逐渐进入了平台期。2013年,在Seattle举行的EMNLP邀请了Brown进行演讲(Brown早已离开机器翻译领域,在金融界取得巨大成功)——当一项技术开始回忆的时候,它就线年,Franz Och离开了谷歌。与此同时,深度学习技术开始兴起,并带来了神经网络机器翻译技术的诞生。

  神经网络机器翻译技术仍然是一种基于文本语料的翻译技术,但是采用了完全不同的模型。在神经网络机器翻译技术中,词被映射到高维向量空间的矢量,并通过神经网络映射到目标语言。这种方法解决了传统方法的许多问题,例如调序模型的长度限制等,其流畅性比起以往的方法有极大的提高。2016年,百度,谷歌等公司先后将线上机器翻译系统升级到了神经网络机器翻译系统。由于其质量普遍被认为已经跨过许多应用的实用性门槛,也引发了机器翻译的第二股热潮。这也是我们现在正处于的时代。神经网络机器翻译在许多特定的应用领域终于跨越了实用性门槛。

  我也做一点小补充吧,本文会重点介绍现代化机器翻译技术和目前面临的主要挑战

  先说结论,总的来说机器翻译机器翻译经历了三大阶段:基于规则的方法、统计机器翻译和目前流行的神经网络机器翻译

  简单来说,机器翻译就是把一种语言翻译成另外一种语言,在这里,我用的例子都是从中文翻译成英文。上面的句子用Source标记,即源语言,下面用Target标记,即目标语言,机器翻译任务就是把源语言的句子翻译成目标语言的句子。

  第一个挑战,译文选择。在翻译一个句子的时候,会面临很多选词的问题,因为语言中一词多义的现象比较普遍。比如这个例子中,源语言句子中的『看』,可以翻译成『look』、『watch』 『read 』和 『see』等词,如果不考虑后面的宾语『书』的话,这几个译文都对。在这个句子中,只有机器翻译系统知道『看』的宾语『书』,才能做出正确的译文选择,把『看』翻译为『read』 ,『read a book』。译文选择是机器翻译面临的第一个挑战。

  第二个挑战,是词语顺序的调整。由于文化及语言发展上的差异,我们在表述的时候,有时候先说这样一个成份,后面说另外一个成份 ,但是,在另外一种语言中,这些语言成分的顺序可能是完全相反的。比如在这个例子中,『在周日』,这样一个时间状语在英语中习惯上放在句子后面。再比如,像中文和日文的翻译,中文的句法是『主谓宾』,而日文的句法是『主宾谓』,日文把动词放在句子最后。比如中文说『我吃饭』,那么日语呢就会说『我饭吃』。当句子变长时,语序调整会更加复杂。

  第三个挑战,数据稀疏。据不完全统计,现在人类的语言大约有超过五千种。现在的机器翻译技术大部分都是基于大数据的,只有在大量的数据上训练才能获得一个比较好的效果。而实际上,语言数量的分布非常不均匀的。右边的饼图显示了中文相关语言的一个分布情况,大家可以看到,百分之九十以上的都是中文和英文的双语句对,中文和其他语言的资源呢,是非常少的。在非常少的数据上,想训练一个好的系统是非常困难的。

  从1949年翻译备忘录提出到现在,大约过了七十多年。这期间,机器翻译经历了多个不同的发展阶段,也涌现出了很多方法。总结起来主要有三类,一开始是基于规则的方法,然后发展为基于统计的方法。一直到最近几年出现的基于神经网络的方法。下面我分别来简单介绍一下这几个方法的原理。

  基于规则的翻译,翻译知识来自人类专家。找人类语言学家来写规则,这一个词翻译成另外一个词。这个成分翻译成另外一个成分,在句子中的出现在什么位置,都用规则表示出来。这种方法的优点是直接用语言学专家知识,准确率非常高。缺点是什么呢?它的成本很高,比如说要开发中文和英文的翻译系统,需要找同时会中文和英文的语言学家。要开发另外一种语言的翻译系统,就要再找懂另外一种语言的语言学家。因此,基于规则的系统开发周期很长,成本很高。

  此外,还面临规则冲突的问题。随着规则数量的增多,规则之间互相制约和影响。有时为了解决一个问题而写的一个规则,可能会引起其他句子的翻译,带来一系列问题。而为了解决这一系列问题,不得不引入更多的规则,形成恶性循环。

  大约到了上世纪九十年代出现了基于统计的方法,我们称之为统计机器翻译。统计机器翻译系统对机器翻译进行了一个数学建模。可以在大数据的基础上进行训练。

  它的成本是非常低的,因为这个方法是语言无关的。一旦这个模型建立起来以后,对所有的语言都可以适用。统计机器翻译是一种基于语料库的方法,所以如果是在数据量比较少的情况下,就会面临一个数据稀疏的问题。同时,也面临另外一个问题,其翻译知识来自大数据的自动训练,那么如何加入专家知识? 这也是目前机器翻译方法所面临的一个比较大挑战。

  翻译知识主要来自两类训练数据:平行语料,一句中文一句英文,并且这句中文和英文,是互为对应关系的,也叫双语语料;单语语料,比如说只有英文我们叫单语语料。

  从平行语料中能学到什么呢?翻译模型能学到类似于词典这样的一个表,一般称为『短语表』。比如说『在周日』可以翻译成『on Sunday』。后面还有一个概率,衡量两个词或者短语对应的可能性。这样,『短语表』就建立起两种语言之间的一种桥梁关系。

  那么我们能够用单语语料来做什么呢?我们用单语语料来训练语言模型。语言模型是做什么事情的呢?就是衡量一个句子在目标语言中是不是地道,是不是流利。比如这里说『read a book』,这个表述是没有问题的,『read a 』后面跟一个『book 』这个词的概率可能是0.5,那么如果说『read a TV』呢?可能性就很低。因为这不符合目标语言的语法。

  所以,翻译模型建立起两种语言的桥梁,语言模型是衡量一个句子在目标语言中是不是流利和地道。这两种模型结合起来,加上其他的一些特征,就组成了一个统计机器翻译这样的一个公式。

  神经网络翻译近年来迅速崛起。相比统计机器翻译而言,神经网络翻译从模型上来说相对简单,它主要包含两个部分,一个是编码器,一个是解码器。编码器是把源语言经过一系列的神经网络的变换之后,表示成一个高维的向量。解码器负责把这个高维向量再重新解码(翻译)成目标语言。

  随着深度学习技术的发展,大约从2014年神经网络翻译方法开始兴起。2015年百度发布了全球首个互联网神经网络翻译系统。短短3、4年的时间,神经网络翻译系统在大部分的语言上已经超过了基于统计的方法。

  目前,评价机器翻译的译文质量主要有两种方式。第一种,人工评价。一说人工评价,大家第一时间就会想到『信、达、雅』,这是当年严复老先生提出来。我们用『信』来衡量忠实度,语言是为了交流的,『信』衡量译文是不是忠实地反映了原文所要表达的意思。『达』可以理解为流利度,就像刚才语言模型那样衡量的,译文是不是在目标语言中是一个流畅、地道的表达。至于『雅』,相对比较难衡量,这是仁者见仁、智者见智的。目前来说,机器翻译水平还远没有达到可以用『雅』来衡量的状态。

  第二种,自动评价。自动评价能够快速地反映出一个机器翻译的质量好还是不好,相比人工评价而言,自动评价成本低、效率高。

  现在一般采用的方法是,基于n-gram(n元语法)的评价方法。通常大家都用BLEU值。一般地,BLEU是在多个句子构成的集合(测试集)上计算出来的。这个测试集可能包含一千个句子或者两千个句子,去整体上衡量机器翻译系统好还是不好。有了这个测试集以后,需要有参(reference)。所谓参就是人类专家给出的译文。这个过程很像考试,通过比较参和系统译文的匹配程度,来给机器翻译系统打分。

  为了简便,此处我们用一个句子进行说明。比如说就这个句子而言,reference是『I read a book on Sunday』。那么上图中有两个系统译文,一个是system1 ,一个是system2。显见,system2的得分会更高,因为它的译文跟reference是完全匹配的,system1匹配了一些片段,但是不连续。在计算BLEU得分的时候,连续匹配的词越多,得分越高。

  当然,BLEU值也有比较明显的缺点。用一个词来举例,比如『你好』,人给出的一个参考译文是『hello』。机器给出的译文是『how are you』,跟这个reference没有一个词匹配上,从BLEU值的角度来看,它得分是零。但是你能说它错吗?它翻译的很好。所以BLEU值的得分,受reference影响。Reference越多样化,匹配上的可能性就会越大。一般来说,用于评价机器翻译质量的测试集有4个reference,也有的有一个reference,也有的有十几个reference。BLEU分数受测试领域、reference多样性等多种因素的影响,抛开具体的设置,单说一个分数不具有参考性。

  基于同一个测试集,针对不同的翻译系统结果,可以依据上述公式计算BLEU值,从而快速比较多个翻译系统的好坏。通常国际评测中,同时采用自动评价和人工评价方法衡量参赛系统。

  这张图显示了近年来机器翻译质量的进步。这个BLEU值是在5个reference上计算出来的,衡量我们中英翻译的质量。2014年的时候,我们用的还是统计机器翻译的方法。从2015年到现在,随着神经网络翻译方法的不断进步,翻译质量一直是持续提高的。通常来说,BLEU值提高1个百分点就是非常显著的提高。在统计机器翻译时代,每年BLEU提高1个百分点都是比较大的挑战。而在神经网络翻译上线后的这四年之间,我们大约每年都有5、6个百分点BLEU值的提升。

  我们通过一个例子,直观的感受一下神经网络方法的译文质量。这个例子是某一年的大学英语六级考试的翻译真题。这个例子我飘了不同的颜色,表示两种语言句子成分的对应关系。从颜色上我们可以看出来,与原文相比,译文的词语顺序发生了比较大变化。比如说,中文句子中的『尽快』, 在英语端,『as soon as possible』换到后面去了,进行了比较长距离的调序。这在统计机器翻译时代是非常难做的事情,但是神经网络翻译能够把它处理的很好。

  刚才说的它包含编码器和解码器,先来看编码器。它进行了一个双向的编码,双向的编码干了一个什么事情?就是把词用词向量来表示。那么如何做到这一点呢?我们首先有一个词向量表,是通过神经网络训练出来的。源语言句子中的词,可以用一个one hot的向量表示。所谓one hot就是,比如上例中中文句子有8个词。哪个词出现了,就把这个词标为1,其他的词标为0。比如第4个词“看”这个词是1,那么其他的都是0。这两个矩阵这么一乘,相当于一个查表的操作。就把其中这个词向量表的一列取出来了,那么这一列的向量就代表了这个词。神经网络里面所有的词都会用向量来表示。得到词的向量表示后,再经过一个循环神经网络的变换,得到另外一个向量,称为Hidden State(隐状态)。

  为什么做了一个双向的编码?是为了充分利用上下文信息。比如说,如果只是从左往右编码,“我在周日看”,看的是什么呢?“看”后面的你不知道,因为你只得到了“看”前面的信息。那么怎么知道后面的信息呢,这时候我们就想那能不能从后面到前面再进行一个编码,那就是“书本一了看”,从后面往前的编码,这时候“看”呢既有前面的信息,也有后面的信息。所以它有了一个上下文的信息,可以进一步提高译文质量。

  刚才提到,每个词经过一系列变换,映射为一个向量表示。如果将双向编码的向量结合起来呢? 现在一般采用一个非常简单的方法,将两个向量进行拼接。比如两个256维的向量,拼接完成后得到一个512维的向量,用来表示一个词。

  编码完成以后,需要把这个源语言的句子压缩到一个向量里去。这一步是怎么做的?一个最简单的方式是把这所有的向量加起来。但是后来大家发现这样其实不太合理。为什么不太合理,因为每一个词都是被作为相同的权重去对待的,那显然是不合理的,这时候就提出了一个注意力机制,叫Attention。这里用不同深度颜色的线去表示Attention的能量强弱,用以衡量产生目标词时,它所对应的源语言词的贡献大小。所以呢h前面又加一个α,α就表示它的一个权重。

  有了句子的向量表示后,就掌握了整个源语言句子的所有的信息。解码器就开始从左到右一个词一个词的产生目标句子。在产生某个词的时候,考虑了历史状态。第一个词产生以后,再产生第二个词,直到产生句子结束符EOS(End of Sentence) ,这个句子就生成完毕了。

  IM电竞

  去年以来出现了一个大杀器,TRANSFORMER。基本上取得了目前来说神经网络机器翻译最好的效果。TRANSFORMER的改进在哪里,来源一篇谷歌的论文,叫“Attention Is All You Need”。上文提到有一个注意力机制,这篇论文所提出的方法,可以只用注意力机制就把翻译搞定了。

  那么它是怎么来做的呢?它其实也有一个编码器和一个解码器,这个是架构是没有变的。其中编码器和解码器都有多层。下面我们通过一个具体例子,来简单解释一下其原理。

  论文中,把每一个词都用三个向量表示,一个叫Query(Q),一个叫Key(K),另外一个是Value(V)。那怎么得到一个词的Query、Key和Value呢?左边有三个矩阵,WQ、WK和WV,只要跟每一词向量相乘,就能够把这个词转换成三个向量表示。那么目标是什么,我们想把『看』这样一个词,通过一系列的网络变换,抽象到高维的向量表示。

  通过Q和K进行点积,并通过softmax得到每个词的一个attention权重,在句子内部做了一个attention,称作Self Attention。Self Attention可以刻画句子内部各成分之间的联系,比如说“看”跟“书”之间就建立了联系。这样,每个词的向量表示(Z)就包含了句子里其他词的关联信息。

  作者认为只有这一个QKV不太够,需要从多个角度去刻画。如何做呢?提出了“Multi-head”。在里面论文里面定义了8组QKV的矩阵,当然也可以定义16个,这个数值可以自定义。在通过一系列变换,最终得到了每个词的向量表示。这只是encoder一层。那么这一层的输出做为下一层的输入,再来一轮这样的表示,就是Encoder-2,那么再来一轮就是第三层,如此一直到第N层。Decoder也是类似,不再解释。感兴趣的可以阅读原文。

  第一个挑战就是漏译,很多时候,原语言句子有些词没有被翻译出来,比如说在这个句子里面,『假』和『恶』没有被翻译出来。甚至有的时候输入一个长句子有逗号分隔,有几个子句都没有翻译出来。这确实是神经网络翻译面临的一个问题。通过刚才的讲解知道,翻译模型把原文句子整体读进去以后形成了一个向量,然后再对这个向量进行解码。翻译模型认为有些词不应该产生,从而漏掉了译文。

  漏译的原因是什么,如何解决这个问题?这方面有很多工作,下面我就从几个方面去讲一下。我们今年有一篇论文从数据方面去分析。我们发现漏译与词语的熵成正相关关系,这个词的熵越大,漏译的可能性越大。它所对应的目标语言词越多,概率越分散(熵越大),越有可能被漏译。

  左边的例子,S1对应3种不同的翻译,(s1,t1) (s1,t2) (s1, t3 t4),它的熵就比较大。我们把所有对应的翻译统一替换为一个特殊词『stoken4s1』,以降低词语翻译的熵值。右边呢是我们提出来的三种方法,去改善翻译结果,包括pre-training, multitask learning, two-pass decoding。大家有兴趣的话,可以去看论文。

  从实验结果来看,相比Transformer,在中英翻译质量上有显著提高,高熵值词语的漏译比例显著下降。

  第二个挑战就是数据稀疏。相比于统计机器翻译,这个问题对神经网络翻译而言,更严重。实验表明,神经网络对于数据量更敏感。

  针对数据稀疏问题,我们提出了一个多任务学习的多语言翻译模型。在进行多语言翻译的时候,源语言共享编码器,在解码端,不同的语言,使用不同的解码器。这样在源语言端就会共享编码器的信息,从而缓解数据稀疏问题。后来,加拿大蒙特利尔大学、Google等在此方向上陆续开展了多个工作。

  实验表明,我们的方法收敛更快,翻译质量也明显提高。更多细节,请阅读论文。

  这篇论文是2018年EMNLP上的best paper,提出了一个统一的框架。A)里面蓝色的点和红色的点分别代表两种不同的语言句子。如何通过两种语言的单语数据构建翻译系统呢?

  首先我要做一个初始化,B)是初始化。首先构建一个词典,把这两种语言之间的词做一下对齐。C)是语言模型,基于单语数据,可以训练语言模型,用来衡量这个语言的流利度。那么D)是什么? D)是一个称作Back Translation的技术,是目前大家常用的一个用于增强数据的方法。

  用B)初始化后构建的一个词典,就可以从一种语言翻译为另外一种语言,哪怕是先基于词的翻译。然后,用另外一种语言的语言模型去对译文进行衡量。然后把得分高的句子挑出来,再翻译回去,这一过程称作Back Translation,然后再用原来那种语言的语言模型去衡量这个句子好还是不好。这样一轮一轮的迭代,数据就会变得越来越好,系统翻译质量也会越来越好。

  第三个挑战就是引入知识,如何将更多丰富的知识引入翻译模型是机器翻译长期面临的挑战。这个例子中,中文句子中『横流』对应到目标语言端是没有翻译出来的,用一个特殊的记号叫UNK(Unknown Word)来标记。

  那么我们做一个什么样的工作呢?我们引入了几种知识,第一种就是叫短语表或者叫词表。如果发现『横流』这个词没有被翻译出来,我们就去查这个词典,这个词典就作为一个外部知识被引入进来了。同时,那我们还引入了一个语言模型,语言模型去衡量目标语言的这个句子是不是流畅。同时,我们引入一个长度奖励特征去奖励长句子。因为句子越长,可能漏掉的信息就越少。这个工作首次将统计机器翻译中的特征引入神经网络翻译,可以作为引入知识的一个框架。

  但是目前来说,引入知识还是比较表层的。知识的引入,还需要更多更深入的工作。比如说这个例子, 这个句子是存在歧义的。『中巴』 在没有给上下文的时候,是无法判断『巴』是哪个国家的简称。

  但是下面的句子,有一个限定,“金砖框架”。这个时候,人们就知道该如何翻译了。但是,机器能不能知道?大家可以去翻译引擎上去验证。因为人是知道中国跟哪些国家是金砖国家,但是机器没有这个知识。怎么把这个知识交给机器去做,这是一个非常挑战的问题。

  还有一个挑战,是可解释性:神经网络翻译到底是神还是神经?虽然人们可以设计和调整网络结构,去优化系统,提高质量。但是对于该方法还缺乏深入的理解。

  也有很多工作去试图研究网络内部工作机理。清华大学有一篇文章从注意力的角度去进行研究。

  比如左边的例子,出现了一个UNK,那个UNK是怎么产生的,它虽然没有被翻译出来,但是出现在正确的位置,占了一个位置。通过Attention对应关系,可以看到这个UNK对应到『债务国』。右边例子是一个重复翻译的现象。神经网络机器翻译除了经常漏翻译之外,还会经常重复翻译。比如说出现了两个“history”。那么通过这个对应关系我们就可以看到,第6个位置上的“history”是重复出现的,它的出现不仅跟第一个位置“美国人”和第二个位置“历史”相关,还跟第5个位置“the”相关。因为产生了一个定冠词“the”,模型认为这个地方应该出现一个“history”,这篇文章对这样的例子进行了大量的分析,并且给出了一些分析结果和解决方案。如需进一步了解,可以看原始论文。

  还有第五个挑战 ,是机器翻译长期以来面临的挑战,语篇翻译。大部分的翻译系统现在所使用的翻译方法都是基于句子,以句子作为单位,一个句子一个句子的进行翻译。单看这三个句子翻译还可以接受。但是连起来看就觉得生硬不连贯。

  我们的方法输出的结果。可以看到,定冠词、代词的加入提升了句子间的连贯性。

  我们提出了一个两步解码的方法。在第一轮解码中单独生成每个句子的初步翻译结果,在第二轮解码中利用第一轮翻译的结果进行翻译内容润色,并且提出使用增强式学习模型来奖励模型产生更流畅的译文。这是我们系统输出的一个结果,整体上,流畅度提高了。

  如果觉得文章对你有帮助,请大家点赞、关注,升职加薪赢取白富美就靠你们了( ̄▽ ̄)~*

  其他的回复,从“开创 - 低谷 - 复苏 -发展”这个思路来解读,大体是没错的,可能争议在于节点的判断有所区别。

  统计翻译包括传统的统计翻译模型,以及当前基于深度学习的统计翻译模型,后者又有两种路线:

  两种方法目前各家都有探索,谷歌微软百度华为网易等都在神经网络机器翻译上有很多令人侧目的成果,但不管采用哪种技术流派,语言设计本身的问题,始终在影响翻译准确率。

  在人工智能发展进程中艾伦·麦席森·图灵,这位英国著名的数学家和逻辑学家最早提出了机器人是否会思考的概念,图灵也被誉为现代计算机科学之父和人工智能之父!

  我们把时间推回到半个多世纪的某个夏天,此时麦卡锡、明斯基等众科学家们正在举办一场Party,在这次聚会上探讨和共同研究了用机器模拟智能的问题,也是在那时,“人工智能(AI)”的理念正式被提出!

  如今人工智能商业化正在快速推进中,比如我们所知道和了解的人像识别、图像识别技术、语音识别、自然语言理解、用户画像等,现在我们所讨论的机器翻译也是AI一大主要战场!

  现在我们再把焦点放回到机器翻译上,现阶段机器翻译也被主流的称之为:统计翻译

  机器翻译的基本原理是:从语料库大量的翻译实例中自动学习翻译知识,然后利用这些翻译知识自动翻译其他句子。

  不同语言的语序不一样,即使是同一个句子,它也可能有很多种正确的但不同的翻译方法,而且纵使是同一个句子,在不同语境下的内涵和意义也不尽相同,如果再考虑到文化、宗教、政治、信仰等等复杂原因的影响呢!

  大体上来看机器翻译的几大障碍包括:一词多义、理解上的歧义、结构不同造成的歧义、词性多解、文化因素不同,等等都是制约和影响翻译质量的因素。

  机器翻译涵盖人工智能、数学、语言学、计算语言学、语音识别及语音合成等多种学科及技术,显然机器翻译本身很不简单,是一个复杂、庞大、意义重大的系统工程!

  美国乔治敦大学首次用IBM-701计算机进行英俄翻译,通过这次机器翻译的公开演示,算是正式拉开了机器翻译研究的序幕

  该报告全面否定了机器翻译的可行性,并宣称“在近期或可以预见的未来,开发出实用的机器翻译系统是没有指望的”。

  加拿大蒙特利尔大学与加拿大联邦政府翻译局联合开发的TAUM-METEO系统,是机器翻译发展史上的一个里程碑,标志着机器翻译由复苏走向繁荣

  其基本思想是:不通过深层的分析,仅通过已有的经验知识,通过类比原理进行翻译

  IBM的Brown和Della Pietra等人提出的基于词对齐的翻译模型,标志着现代统计机器翻译方法的诞生

  1.多个翻译引擎同时对输入的句子进行翻译,不仅对整句进行,同时对句中任何一个片段也给出对应的译文,并对这些译文片段给出一个评分

  2.各个翻译引擎共享一个类似chart的数据结构,根据其源文片段所处的位置,将这些译文片段放在这个公共的chart结构中

  IM电竞

  4.采用一个动态规划算法(chartwalk算法)选择一组刚好能覆盖整个源文输入句子,同时又具有最高总分的译文片段作为输出

  爱丁堡大学的Koehn提出短语翻译模型,使机器翻译效果显著提升,借助同时期Franz Och提出的对数线性模型及其权重训练方法,短语翻译模型在工业界开始广泛采用

  David Chang提出了层次短语模型,同时还有多个大学和研究所在基于语法树的翻译模型方面研究也取得了长足的进步

  回到当下,人工智能机器翻译尚不能做到无障碍的沟通和顺畅无碍的进行语义上的理解和交流。

  1946年,电子计算机在美国问世,同年英国工程师布斯(A. D. Booth)和美国洛克菲勒基金会副总裁韦弗(W. Weaver)在讨论电子计算机的应用范围时,就提出了利用计算机进行语言自动翻译的想法。1949年,韦弗发表了一份以《翻译》为题的备忘录,正式提出了机器翻译问题。1954年,美国对外声称已研发出能够自动将60个俄语句子翻译成英语的翻译系统,这个系统的出现引发了大家对机器翻译的热烈讨论。那么,二十世纪五十年代以来,人工智能机器翻译经历了怎样的迭代呢?

  参考翻译员的翻译过程,这一时期的科学家研发出一种机器翻译系统,它通过研究源语言与目标语言的语言学信息来进行,也就是基于词典和语法等规则生成翻译,这被称为基于规则的机器翻译(RBMT)。

  基于规则的机器翻译优点有:直观、直接表达语言学共识;规则比较灵活,系统理论上比较可控。但它也存在如下缺点:主观性强、覆盖性差、维护成本高;引入新的规则容易造成冲突;开发成本高,一个语言对应一个系统;自然语言的歧义无法解决(语义障碍)。

  语句产生歧义的情况有很多。例如,“这个人好说话”一句中,到底是说这个人通情达理、好相处呢,还是说这个人喜欢说话,一直说个不停呢?

  在冷战期间,掌握英语的日本国民只占少数,面对势不可挡的全球化进展,日本开始积极地寻求一种高效的机器翻译方法,让语言不再成为日本与外界交流的障碍。

  由于英日两种语言的规则差别较大,基于规则的机器翻译并不适用于英日翻译。于是,在1984年,京都大学的长尾真提出使用现成的短语作为翻译源而不是重复进行翻译,该机器翻译方法后被总结为「基于实例的机器翻译」(EBMT)。

  基于实例的机器翻译的本质是“以翻译实例为基础,基于相似原理的机器翻译”,主要利用预处理过的双语语料和翻译词典。该方法的显著特点是忽略了语法和语义规则,转而依赖大型的文本语料库。它通常包括三步:

  比如我们需要翻译一个句子:“我为你感到高兴。”而在语料库中已经储存了一个类似句子:“我为她感到骄傲。”,且也有这个类似句子的译文。这时,为了翻译第一句话,我们只需要找出两句话的不同之处和相同之处,将不同之处进行替换即可得到最终翻译结果。

  基于实例的机器翻译(EMBT)给机器翻译界带来了新的希望:我们将不再需要自己构建规则,我们只需要将已有的翻译交给机器。然而,在革命的第一步迈出短短5年后,统计机器翻译(SMT)出现了。

  90年代早期,IBM研究中心研发出一种机器翻译系统,它在大量双语平行语料基础上,完成该语对的翻译过程。(注:平行语料:由原文文本及其平行对应的译文文本构成的语料)

  该过程不依靠规则,不依靠词典,机器仅依靠既有的平行语料数据,从双语平行语料中分析出词语的共现情况,发掘出对应的翻译关系,因此该机器翻译技术被称为统计机器翻译(SMT)。

  这种新型翻译技术的翻译过程就好比查词典:由语料构建成的语料库可以被视为一本「词典」,「词典」里一个词会拥有多个译文选择,SMT建立一个模型来算出各个选择与原文词配对的概率,并优先考虑使用概率最大的词

  再将刚刚选出的概率最大的词与原文对应词进行一一对齐,经过调试句子中语法、词与词之间的顺序等步骤,获得最终翻译结果。

  如上图所示:通过模型计算出 the 对应 das 的概率为0.58,对应 haus 的概率为0.02,所以我们可以初步确定 the 对应的译文为 das。其他单词以此类推。

  神经网络技术的应用推动了深度学习技术的发展。2014年蒙特利尔大学的Kyunghyun Cho、Yoshua Bengio等人发布了一篇关于在机器翻译中使用神经网络的论文,该论文并未引发学界广泛关注,但Google注意到了。2016年11月,Google推出神经机器翻译(NMT)系统。NMT在短短的两三年内便取代了SMT成为商业机翻系统的主流模型。

  NMT模型在SMT模型的基础上进行优化。在 NMT中,翻译过程可以用一个「编码→解码」的模型来实现。NMT通过使用编码器将文字转化为固定的向量,从而将源语言表示为连续空间的形式,再使用解码器把向量逐步解码。这个过程好比为小女孩编辫子:「原始输入」是她乌黑顺滑的长发,在经过「编码器」这双巧手的「编织」后变成辫子——「向量」,另一双巧手「解码器」把「向量」辫子解开,就得到了波浪式的卷发——「翻译结果」。

  机器翻译的发展是一个曲折中上升的过程:初创-发展-低迷-复苏-热潮-...,未来也有可能再低迷再热潮,但每一次的发展本质上都是在深化。

  虽然机器翻译技术已取得极大进展,但现今机器翻译仍未彻底实现无障碍沟通及顺畅无碍地进行语义上的理解和交流。显然,距离我们最终希望机器翻译达到的效果,还有很长的路要走。

  机器翻译领域经历了大三阶段:基于规则的方法、统计机器翻译和目前流行的神经网络机器翻译。本期视频简单介绍了第一代基于规则的机器翻译方法,用一分钟的时间,品味“古早味的机器翻译”。