在过去的十年里,翻译(Google Translate)从最初仅支持几种语言发展到今天的 103 种,每天翻译的字词超过 1400 亿个。为了做到这一点,在任意两种语言之间,谷歌翻译都要运行多个翻译系统,这带来巨大的计算成本。如今,许多领域都正在被神经网络技术颠覆。谷歌确信他们可以利用神经网络进一步提升翻译质量。这要求谷歌重新思考谷歌翻译的算法架构。
今年九月,谷歌发表声明,基于神经机器翻译的谷歌翻译全新上线。(GNMT,Google Neural Machine Translation)。神经机器翻译是端到端的学习架构,它能从数百万的实例中学习,提供大幅提升的翻译效果。虽然功能得到了改善,但是让谷歌翻译把当下支持的 103 种语言全部采用神经机器翻译技术,却是一项巨大的挑战。
一周前,谷歌的工程师门发表了一篇论文 “谷歌的多语言神经机器翻译系统:使 Zero-Shot 翻译成为可能”(“Google’s Multilingual Neural Machine Translation System: Enabling Zero-Shot Translation”),雷锋网在论文发表后第一时间做了覆盖。其中,Zero-Shot 翻译是指在完成语言 A 到语言 B 的翻译训练之后,语言 A 到语言 C 的翻译不需要再经过任何学习。 它能自动把之前的学习成果转化到翻译任意一门语言,即便工程师们从来没有进行过相关训练。
通过 Zero-Shot,谷歌解决了把神经机器翻译系统扩展到全部语言的难题。有了它,一套系统就可以完成所有语言的互翻。从前两种语言之间都需要多个翻译系统的情况,从此成为了历史。这套架构在翻译其他语言时,不需要在底层 GNMT 系统做任何改变。只需在输入语句的开头插入一个输出语种标记,就可以把结果翻译为任意语言。
下面这幅动图对该 Zero-Shot 系统的运作做了示意。
假设谷歌训练该系统做日语英语、韩语英语的互译,图中用蓝色实线来代表。 GNMT 系统就可以分享这四组翻译(日英,英日,韩英,英韩)的参数。这允许它把任意一组语言的翻译经验转到其他语言上去。学习成果转移和多语言翻译的要求,迫使该系统更好地使用建模的能力。
这启发了工程师们设想:我们能否让系统翻译一组它从来没有翻译过的语言?这可以用韩语日语互译的例子来说明。虽然该系统从未处理过韩日互译,但它利用之前的韩英、日英翻译学习成果,能进行水平不错的韩日互译。谷歌把这个过程称为 “zero-shot” 翻译,图中用黄虚线表示。谷歌宣称,这是世界上首例应用在机器翻译上的学习成果转移。
Zero-shot 翻译的成功带来了另外一个重要问题:这个系统是否在学习语言的通用表达(不管是翻译成什么语种,相同含义的语句都被系统使用相似的表达方式)?——类似于“国际语”或者中介语言?工程师们使用了 3D 图像展示系统的内部网络数据,以了解它在处理日、韩、英的任意互译组合时是如何运作的。
上方图片a部分(左)展示了这些翻译的几何结构。意义一致的语句用颜色相同的点代表。比方说,英译韩和日译英的两句话如果意思一致,就会是图上颜色相同的两个点。通过这种方式,我们可以很容易地区分不同颜色(含义)的点。b 部分放大了红色区的点,c 部分则对源语言进行区分。在同一组颜色的点里,我们看到含义相同但从属不同语种的句子。这意味着该系统必然对句子的语义进行了编码,而不是记忆一个短语到另一个短语的翻译。谷歌的工程师把这看作是系统中存在中介语言的标志。
谷歌在论文里面展示了更多的分析结果。他们希望这些发现不但对机器学习和机器翻译的研究人员们有用处,也能对语言学家和对单一系统怎么处理多语言学习感兴趣的人有价值。
今日 (美国时间 11 月 22 日),基于 Zero-Shot 的多语言神经机器学习系统正式登陆谷歌翻译。它目前被应用于新增加的 16 个语言组中的 10个,带来更高的翻译质量和简化的系统架构。我们可以期待在不久的将来,该系统会逐步支持更多的谷歌翻译语种。(三川)