自从谷歌在线翻译于十年之前发布开始,它已经成为全世界互联网用户中最受欢迎的快捷翻译工具之一,而如今,谷歌公司的工程师们在幕后悄悄调整了机器翻译服务的算法,这带来了谷歌在线翻译服务的一次重大更新,将目前十分热门的人工智能(artificial intelligence)技术应用其中,也就是我们所熟知的深度学习(deep learning)。
像谷歌翻译这样的机器翻译服务通常采用“基于词组”的软件算法,就是把句子拆成单词和词组,分别翻译成目标语言之后再组合起来。不过几年前,谷歌开始试验采用深度学习技术的神经机器翻译(neural machine translation),不同于将语句拆分成几个部分的方法,神经机器翻译技术可以直接翻译整个语句。这一技术最终证明可以将使用传统方法所导致的翻译错误减少百分之六十。
“我们相信,我们是第一家把神经机器翻译技术进行大规模应用的公司。”谷歌公司的研发科学家Mike Schuster提到。
很多主要的大型科技公司都在神经机器翻译上进行了投资,但是来自纽约大学(New York University),重点研究自然语言处理(natural language processing)的深度学习技术研究者Kyunghyun Cho认为,他们基本只是出于研究的目的,而谷歌则是第一个在公开的在线翻译工具上应用这一技术的公司。
谷歌翻译已经在它每日1800万次的中英文翻译功能中开始使用神经机器翻译技术,在一篇博客公告中,谷歌公司的研究员承诺,将会在未来的几个月内,将这一技术推广至更多语种。
谷歌的神经机器翻译的深度学习方法基于一种被称为递归神经网络(recurrent neural network)的软件算法。这样的模拟神经网络由一个多层网络结构组成,每一层网络上都有1024个节点,这些节点被称为人工神经元(artificial neuron)。
其中,一个八层网络作为编码器,以中文翻译为英文为例,编码器将会定位需要进行翻译的语句,并把它转化为一个向量(vector)列表,每个向量包含着目前为止读取到的单词的含义,即第一个向量包含第一个单词的含义,第二个向量不仅包含前两个单词各自的含义,还包含了两个单词组成的词组的含义,以此类推,那么整个向量列表不仅拥有语句中每个单词的含义,还包括了前后单词组合起来形成词组所表示的含义。
语句被编码器读取并处理之后,另一个八层网络作为解码器开始对每个单词逐个进行翻译。有一个独立的被称为Attention Network的识别网络系统将编码器和解码器连接起来,使得解码器在工作时能够得到编码器发送来的信息,从而对于某些向量列表的数据进行重点处理。这就像人工翻译时,翻译员会在翻译过程中,时不时地参考原文的语句。
传统的编码-解码(encoder-decoder)算法中,编码器将输入语句压缩为一个固定长度的向量,而不会考虑原始语句的长度,而前文所提到的技术就是这一算法的改良版本,Cho教授是关于这一技术的论文共同作者,他这样来解释之前那种不精确的编码-解码算法:
如果我把机器翻译和人工翻译进行类比,这种算法就相当于一个翻译人员只看一遍原文,把所有的语句、单词记下来,然后就开始进行翻译,而不能再回过去参看一下原文。这在实际的人工翻译中是不现实的,也是效率很低的。所以我们的机器翻译为什么不能采用反复参照原文的概念呢?
几年之前,谷歌公司就开始研究神经机器翻译,但是这一技术相比传统的词组翻译方法需要更多的计算资源来达到更高的精确度,而对精确度的高要求往往是以牺牲响应速度为代价的,对于谷歌在线翻译工具的广大使用者,实时翻译又是最主要的需求之一。
谷歌的开发人员不得不采取一些灵活的变通方法来优化他们的深度学习算法,使其能够突破目前神经机器翻译技术遇到的限制,比如在连接解码器和编码器的Attention系统中,开发团队采用了并行技术,即在多个处理器中同时处理深度学习算法中的各个部分,这样的方法会牺牲一部分精确度(并行计算的各个部分可能是相互关联的,而并行方式使得它们的运算过程和结果相互独立),但是可以有效地提高运算速度。
Schuster研究员提到,“我们相信,这样的体系结构是独一无二的,我们所做的优化主要是为了尽可能提高运算的并行性,同时保证较高的翻译精确度。”
另一项创新则帮助神经机器翻译去处理那些生僻的单词。谷歌的部分解决方案是从Schuster及其同事针对谷歌的日语、韩语的语音识别技术的优化工作中得到的灵感,他们将生僻单词分解为字块(wordpiece),将这些字块再存储在一个相对较小的集合中,这使得神经机器翻译可以更简便地处理这些词语。
第三项创新技术来自于量化计算(quantized computation),通过适当降低系统运算的精确性来提高翻译速度。谷歌的神经机器翻译系统可以容忍一定的量化误差(quantization error)从而输出并不绝对精确的翻译结果。Schuster提到,“量化计算远远快于非量化计算,这是因为在量化计算中,32位或者64位的数据可以被压缩为8位或者16位,节省了获取数据的时间,从而提高整体的运算速度。”
谷歌的神经机器翻译能够成功也有赖于性能更强的处理器,这家科技巨头公司为这一新技术配备了专门为深度学习所涉及的处理芯片,被称为张量处理器(Tensor Processing Unit,TPU)。这些TPU芯片相比普通芯片可以将翻译速度提高3.5倍。
通过上面提到的创新,以及其他的先进算法和技术,谷歌成功在保证精确性的前提下,将神经机器翻译的速度提高了超过30倍,因此谷歌最终决定将深度学习算法应用在谷歌翻译的汉译英功能中,这样的成果对于像Cho这样的谷歌公司之外的专家来说也是十分出色的。
Cho表示道,“我十分赞赏他们在这一领域付出的努力和取得的成就,他们利用量化算法和高性能的TPU芯片成功地将神经机器翻译的速度提升到可以实际应用的水准。
包括谷歌翻译在内,现在互联网上的翻译工具都还有着很大的优化空间。举个例子来说,即便是优化升级后的谷歌翻译,仍然会在处理生僻字的时候出现错乱,或者是出现遗漏某些词语的情况,利用上下文优化翻译结果的算法也存在一些问题。但Schuster对机器翻译未来的进步持乐观态度。他说:“回顾机器翻译的发展历史,我们可以看到翻译质量和速度的不断提升,而我们将会继续看到这样的进步,直至机器翻译达到人工翻译的顶级水准。”
翻译:刘卓 审稿:赵昌昊
深度学习算法助力谷歌翻译
本文来自:
特别声明:本文转载仅仅是出于科普传播信息的需要,并不意味着代表本网站观点或证实其内容的真实性;如其他媒体、网站或个人从本网站转载使用,须保留本网站注明的“来源”,并自负版权等法律责任;作者如果不希望被转载或其它相关事宜,请与我们接洽。
[责任编辑:系统管理员]