能牺牲大语种提升小语种翻译质量的谷歌多语言机器翻译
雷锋网 AI 科技评论按:近期,谷歌拓展了机器翻译系统的边界:用所有可用的数据训练一个超大规模的多语言神经机器翻译系统。这不仅是一次大胆的尝试,也更新了我们对机器翻译模型的一些认识。雷锋网 AI 科技评论把谷歌的这篇介绍博客编译如下。另外,这篇介绍博客也提到了许多相关论文,我们在文中标出的同时,也在文末提供了统一说明和打包下载,方便各位仔细阅读。
「也许语言翻译的奥妙,就在于从每种语言往下挖掘,一直挖到人类沟通的共同基础——那种真实存在但是尚未被发现的通用语言——然后从那里重新衍生出方便的具体路径。」 —— Warren Weaver, 1949
寻找新的挑战
过去几年中,得益于神经机器翻译(NMT)技术的流行,机器翻译的质量越来越高。不过神经机器翻译的成功也同时依赖于大量的有监督训练数据。所以对于只能找到很少标注数据、甚至找不到标注数据的语言要怎么处理呢?人们有一个归纳偏倚,认为「对于学习某一个语言有用的信号也能提高翻译到语言的质量」,这种补救方法似乎有一些潜力,也就带来了多语言神经机器翻译。
多语言机器翻译是用单个翻译模型处理多种不同的语言。对于缺少标注数据的语言而言,多语言训练的方法已经在谷歌的自动语音识别和文本转语音系统中发挥了效果,此前的多语言翻译论文(论文 1、论文 2、论文 3)中也有体现。谷歌自己曾经做过一次实验,研究让单个网络学习更多的语言会如何影响它的表现(论文 4)。不过在那次的研究中谷歌限制了每种语言的训练数据的多少,如果训练模型的时候不再考虑不同语言的数据多少、复杂度和领域,反正把找得到的数据都用上,效果会如何呢?
在最新的论文《Massively Multilingual Neural Machine Translation in the Wild: Findings and Challenges》(论文 5)以及紧接着的几篇论文中(论文 6、论文 7、论文 8 、论文 9),谷歌做了一个逼近极限的实验,他们用超过 100 种语言对英语、一共超过 250 亿组句子对的数据上,训练了一个有 500 亿参数的多语言机器翻译模型。结果表明这种做法不仅可以产出一个在低资源语言和高资源语言上都有更好表现的模型,而且它还可以轻松地改造成单个语言对的模型,还在下游的跨语言迁移任务中也有很好的表现。他们把这个超多语言、超大神经网络模型(massively multilingual, massive neural machine translation)称作 M4。
大规模多语言机器翻译
虽然不同的语言有不同的语料数量是神经机器翻译方法中的一大挑战,但这种状况同时也是研究迁移的理想环境,也就是研究训练提升了对某一种语言的翻译能力以后能否用它来提高对其他语言的翻译能力。在语言-语料分布的一端,有英语对法语、德语、西班牙语这种语料非常丰富的,很容易找到十亿级的平行语料样本,而英语对约鲁巴语、信德语、夏威夷语这种小语种的平行语料就非常缺乏,可能只有成千上万而已。
不同语言的资源数量(纵轴是 log 尺度),以及只使用各自的双语语料训练翻译模型得到的 BLEU 分数
在用所有找得到的数据(103 种语言对英语的句子对,一共超过 250 亿组)训练模型之后,谷歌的研究人员们观察到越低资源的语言就有越明显的提升,资源最低的 30 种语言的翻译质量平均提升了 5 BLEU。这种效果是此前就得到过研究、这次也在预料之中的,不过这个结果仍然让人感到欣喜,毕竟这个多语言模型中对于每种语言的具体表征容量和一个一般的双语模型是一样的。这个发现表明大规模多语言模型的泛化能力很强大,而且可以在众多不同的语言之间找到表征的相似性。
相比于用双语语料分别训练的模型,单个大规模多语言翻译模型能大大提升低资源语言的翻译质量;但高资源语言的翻译质量反而有所下降
在谷歌的 EMNLP 2019 论文《Investigating Multilingual NMT Representations at Scale》(论文 7)中,他们也比较了这个多语言模型为不同语言生成的表征。他们发现,不需要施加外部的约束,多语言翻译模型就能够为语法类似的语言学习到共享的表征,以便利用这些相似性。在论文《Evaluating the Cross-Lingual Effectiveness of Massively Multilingual Neural Machine Translation》(论文 8)中,谷歌的研究人员们进一步在跨语言的下游迁移任务上表明了这些学习到的表征的有效性。
根据表征相似性对所有 103 种语言的编码表征进行聚类的结果。图中带颜色的椭圆是语言学分类的结果 —— 和根据表征的聚类基本相符
构建大规模神经网络
随着谷歌的研究人员们增加模型要学习的低资源语言的数量,高资源语言的翻译质量反而开始下降。这种衰减现象可以在多任务设置下观察到,可能由于任务间的补全以及迁移固有的方向性(总是从高资源语言向低资源语言迁移)。换用更好的学习算法(论文 10)和更好的容量控制算法(论文 11)可以缓解这种负向迁移的作用,他们同时还尝试了把网络扩大,增加网络的参数、提升网络的容量,以便提升高资源语言的翻译质量。
为了提升网络容量,谷歌的研究人员们其实使用了很多技巧,包括增加更多的层、让隐层的表征更宽。在之前的尝试更深的翻译网络的研究(论文 12)的基础上,他们使用了 GPipe 库来训练一个 128 层的 Transformer 模型,其中含有超过 60 亿个参数。增加模型容量大幅提升了模型在所有语言中的表现,平均提升了 5 BLEU。他们还探究了非常深的网络的特性,比如网络深度宽度间的取舍、网络的可训练性,甚至尝试了进一步把网络拓展到超过 1500 层、含有超过 840 亿个参数。
提升模型容量的方法也并不只有直接增加深度一种,还有一种很有意义的补充方案是探索新的架构,以便更好地利用这个问题的「多任务」这个特点。谷歌的研究人员们尝试了把 Transformer 架构本来的正常的前馈层替换成多个专家模型混合组成的稀疏门(论文 13),也大幅提高了模型的容量、成功训练了这样的模型,模型含有的参数也超过了 500 亿;这都让模型的翻译质量继续得到全方面的提高。
用容量更大的模型,配合增加更多语料,高资源语言的翻译质量也能和低资源语言一样继续得到提升
把 M4 模型变得实用
为不同的语言、不同的任务或者迁移任务分别训练不同的大规模模型本来就是很消耗资源、很低效率的一件事,这次谷歌的多语言机器翻译模型更是一个强力的模型,可以作为向单个语言、单个任务迁移的基础。谷歌也设计了一些方法(论文 9)提高 M4 模型的实用性,比如可以通过容量可调的层让 M4 模型可以适应到针对某个语言或者某个人物,而不需要改变原有的模型。
下一步迈向哪里?
有语言学家估计,目前全世界存在的大约 7000 种语言中,在 2100 年以前就会消失一半。多语言翻译技术能起到一定的拯救作用吗?谷歌认为 M4 模型就是在目前的基础上再多拯救 1000 种语言的一个很有希望的办法,把这样的多语言翻译模型作为基础,可以很轻松地拓展到新语言、新领域、新的下游任务上去,甚至当我们没有平行语料的时候都可以做出成果。当然了,我们面对的挑战还有不少,想要得到真正通用的多语言机器翻译模型也还需要一些跨领域的合作。不过,对于机器学习开发者和理论研究者来说,多语言机器翻译模型都是一个多任务学习、元学习、机器学习动力学研究的有趣的实验环境。我们未来还可以做得更好。
提及的论文查阅
- 论文 1:Multi-Task Learning for Multiple Language Translation,https://www.aclweb.org/anthology/P15-1166/
- 论文 2:Google’s Multilingual Neural Machine Translation System: Enabling Zero-Shot Translation,https://arxiv.org/abs/1611.04558
- 论文 3:Multi-Way, Multilingual Neural Machine Translation with a Shared Attention Mechanism,https://www.aclweb.org/anthology/N16-1101/
- 论文 4:Massively Multilingual Neural Machine Translation,https://arxiv.org/abs/1903.00089
- 论文 5:Massively Multilingual Neural Machine Translation in the Wild: Findings and Challenges,https://arxiv.org/abs/1907.05019
- 论文 6:GPipe: Efficient Training of Giant Neural Networks using Pipeline Parallelism,https://arxiv.org/abs/1811.06965
- 论文 7:Investigating Multilingual NMT Representations at Scale,https://arxiv.org/abs/1909.02197
- 论文 8:Evaluating the Cross-Lingual Effectiveness of Massively Multilingual Neural Machine Translation,https://arxiv.org/abs/1909.00437
- 论文 9:Simple, Scalable Adaptation for Neural Machine Translation,https://arxiv.org/abs/1909.08478
- 论文 10:Adaptive Scheduling for Multi-Task Learning,https://arxiv.org/abs/1909.06434
- 论文 11:Soft Conditional Computation,https://arxiv.org/abs/1904.04971
- 论文 12:Training Deeper Neural Machine Translation Models with Transparent Attention,https://arxiv.org/abs/1808.07561
- 论文 13:Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer,https://arxiv.org/abs/1701.06538
这 13 篇论文打包下载见 https://www.yanxishe.com/packages/12
via ai.googleblog.com,雷锋网 AI 科技评论编译