其他
导读:机器翻译是个学术味和生活味都特别浓的词。现在中国是个很大的市场,国外的游戏、小说和影视剧现在都出了中文版,如果译文质量不好大家就会吐槽,文雅一点的说“味同嚼蜡”,大多数人就直白多了,直接就说“像机翻一样”。这里的“机翻”就是机器翻译。01为什么要有机器翻译小标题起得有点凡尔赛,其实原因我们都知道,因为翻译始终是一种短缺的资源,尤其对于一些小众的语言和小众的消息,可能永远不会有人来翻译成中文。这时我们要去获取信息无非就两种选择,一种是发下狠誓自学这门外语,另一种就是指望机器翻译——这也是大多数人的选择。不过,早年机器翻译总给人一种指望不上的感觉。译文经常牛头不搭马嘴,在中文语境无论如何都不可能凑在一起的两个词,在译文中偏偏就凑在了一起,剩下的部分只能靠大家的想象力来弥补。我曾经就加过同好群,一些同学负责在国外网站上搬运消息,另一些同学则负责猜测机翻到底说了什么东西,大家乐此不疲也算是机翻带来的另一种趣味。到了移动互联网时代,机器翻译就跟在手机后面深深地渗透进了我们的日常生活。微信有长按翻译,能英译中也能中译英,据说做外贸的同学爱得不行。华为手机有全屏翻译,上外文网站也能如履平地。我最喜欢的则是翻译App都有的拍照翻译功能,买了外国的产品,对着外包装上爬满的洋文拍个照,App就直接在原图上给P成中文,感觉一下就打开了新天地,让人有种语言从此不再是问题的错觉。拍照翻译功能看着神奇,原理说穿了也简单,就是OCR+机器翻译,OCR负责把图片上的字抠出来,然后输进机器翻译。技术都是现成的,不过不要小看它,这项功能绝对是“找准了应用场景,价值飙升”的典型案例。以前也有很多翻译软件,但都得先把外文输入进去,然后才能翻译成中文,问题就出在输入这个环节,如果这里的外文是英语我们还有点办法,单词不认识好歹字母还认识,要是法语、德语或者日语,不是学这个语种的都不知道应该怎么用键盘敲出来这个词。有了拍照翻译就简单多了,不但极大简化输入过程,不用再苦恼怎样输入奇怪的外文字符,甚至干脆不用输入,而且拍照本身就是手机自带属性,拍照翻译简直就是二者最佳的结合点,机器翻译的应用场景也一下变得更为广阔。02机器翻译的进化简史现在机器翻译可以说是无处不在,手机自然是其中一个原因,但更重要的原因当然是机翻水平这几年确实有了长足的进步,从早些年的不知所云,到现在已经至少是可堪使用。虽然距离“信达雅”的要求还差很远,但意思已经能读懂个八九不离十。然而,冰冻三尺非一日之寒,机器翻译也是经历了漫长而曲折的进化历程。机器翻译在学科划分上,属于计算语言学。注意,这里是“计算语言学”,不是“计算机语言学”。不过,在我看来,计算语言学更像是机器翻译的前传。计算语言学也是起源于翻译,当时还是1950年代,美国人想要了解冷战对手苏联的科技发展情况,可是这事说起来简单做起来难,懂技术的专家大多不懂俄文,懂俄文的专家又大多不懂技术,两者都会的专家人数稀少,翻译效率可想而知,项目刚起步就撞上了语言障碍。而1950年代正是计算机科学特别是人工智能科学崭露头角的年代,科学界充满了理想甚至幻想,自然而然就想用快得多的计算机来完成翻译工作。不过,不要以为这是人类第一次提出机器翻译的概念。对于机器翻译最早的起源,各家文献说法不一,有的说最早可以追溯至17世纪的笛卡尔时代,有的则说是1930年代有发明家提出具有机器翻译功能的设计图纸。只是,实现机器翻译不但需要大胆的想象和果决的执行,还要有相应的技术发展作为坚实基底,在技术发展达到某个水平之前,所有的设计只能是没法落地的空想。目前公认机器翻译的真正开端始于乔治城大学和IBM的联合实验,成功将约60条俄文句子通过机器翻译译成英文,证明了机翻是可行的。学界对实验结果大感振奋,都觉得机翻稳了,在此后十年,美国政府也不断加大资金投入以期尽快产出成效。不过,现在我们拥有了上帝视角,当然知道那时的美国人过于天真了,果然,到了1960年代,学界终于发现机器翻译远比想象的复杂,关键在于人类语言远比想象复杂,于是专门就有了采用计量方法研究复杂人类语言的计算语言学。计算语言学的目的和现在我们常说的自然语言处理,也就是NLP非常类似,就是建立语言模型,最终达到让计算机也能理解、分析和处理人类语言,说的直白点,就是教计算机学说人话。科学家最开始想到的办法和我们小学学英语的办法是一样的,从句法、语法入手。语言学家阅读了大量语料,试图从中归纳出通用性的规则。也许大家看过很多后来的文献,都知道这是一条吃力不讨好的路线。不过,如果放下后来者的上帝视角,会发现这条路线会有许多理所当然的地方:计算机是很擅长学会规则的,编程从某种意义上说就是编写各种规则,而人类学习语言直至今日也是从学习语法规则开始,所以,想到用规则达成目标从当时的角度来看确实是符合直觉的。当时的机器翻译也是沿着规则归纳这条路进行的研究。这条路线取得了一些成果,当然最终不了了之。问题也许不在于规则,而在于不讲规则,是字面意义上的“不讲规则”。回想一下,我们学讲话的时候,有谁是从语法规则学起的吗?没有。我们是怎么学的呢?耳濡目染。很小的小孩子开始当然是不会说话的,但是他们会听,在生活中观察到大人谈论到某个对象时会固定发几个音,听得多了就知道那个对象该发什么音。从某种意义上说,这个过程使用的就是“统计学习方法”。统计学习方法不再需要语言学家归纳规则,核心在于统计。也就是说,我再不管你背后有什么语法什么规律,我只看大家都怎么说。大家都这么说了,我就跟着这么说。当然,学说话不仅仅只是听,还要学,会根据参考答案修正。譬如学着对某个对象也发几个音,发对了大人会点头认可,发错了则会纠正,一来二去就学会说话了。用机器学习的术语来说,这叫有监督学习。统计学习方法替代规则归纳成为主流以后,计算语言学就走上了快车道。不过,用统计学习方法来做计算语言学的任务,并不只是一种方法,而是发展出一系列的方法。技术发展是受客观规律限制的,当时方法是对路了,但硬件计算资源不足,各种不同流派的科学家于是八仙过海,各自想法子在螺蛳壳里做道场。我手边有一本宗成庆老师的《统计自然语言处理》第二版,这是NLP领域的一本经典著作,相信搞NLP的同学都读过。这本书第一版写于2007年,第二版写于2013年,从时间上看并不太老,但如果和现在新出版的教科书比较,会发现在内容编排上已经出现了很多肉眼可见的不同。技术路线上的变化足以写一本书,我们就从用户角度谈谈机器翻译的发展吧。机器翻译大概是从1980年代开始走上统计学习方法这条路的,一方面得益于计算机技术的发展,另一方面我觉得和数据积累达到一定量级也有关系。毕竟统计方法虽然不需要消耗专家,但是需要消耗计算资源和数据资源,也慢慢开始推出了一些产品。不过,前面已经一再说过,早期的机翻产品有各种一言难尽的地方,要知道,这里的“早期”指的不是1950年代,而已经是2010年代。这时的机器翻译虽然找对了大方向,还要继续找一找小方向。这一找就找到了2016年,谷歌翻译宣布采用神经网络模型来做机器翻译,这在当时算个挺大的事,科技新闻几乎都报道了,我马上跑去试了试,果然,和那时候一众一言难尽的机器翻译软件一比,完全可以用“效果拔群”来形容,很快就一扫大家对机翻很烂的刻板印象。以前大家宁愿自己辛苦一点查字典,现在挺多同学都养成了先丢进机翻看看大概意思再细读的习惯,这个习惯多半就是从2016年开始的,功臣就是神经网络模型。03神经网络中的机器翻译机器翻译和神经网络有着千丝万缕的关系。神经网络是一种方法,而机器翻译是其中最大的目标应用场景之一,很多神经网络技术的发展,最早就是从做机器翻译任务开始的。机器翻译任务从机器学习的角度看,是一种生成任务,因为它要输出的结果不是类别编号,而是一串字符序列。在神经网络和深度学习中,做机器翻译任务的模型,也称为Seq2Seq(sequence