Facebook提出全新CNN机器翻译:准确度比谷歌快9倍
去年谷歌在机器翻译上取得了连续不断的突破,谷歌的方法用到了文本处理惯用的循环神经网络。近日, Facebook 也宣布在神经机器翻译上取得了重大进展,在超过了去年谷歌研究的水平的同时还实现了显著的速度提升。而和谷歌的方法不一样,Facebook的方法采用了一种完全基于卷积神经网络的架构。
Facebook的使命是让世界更加开放和互联,让每个人都能以自己偏好的语言享受视频和博文——当然,准确度和速度要尽可能最高。因此,语言翻译就显得很重要了。
今天, FAIR 团队推出了一项研究成果:使用一种全新的卷积神经网络(CNN)进行语言翻译,结果以9倍于以往循环神经网络(CNN)的速度实现了目前最高准确率。另外,你可以在GitHub开源许可下下载到FAIR序列模型工具包(fairseq)源代码和训练过的系统,研究人员可以打造用于翻译、文本摘要以及针对其他任务的定制化模型。
为什么是CNN?
几十年前,最初由Yann LeCun开发的CNN已经成功用于多个机器学习领域,比如图像处理。不过, 对于文本应用来说,因为RNN的高准确度,其已经当仁不让地成为了被最广泛采用的技术和语言翻译的最佳选择。
尽管历史表明,在语言翻译任务上,RNN胜过CNN,但其内在设计是有局限性,只要看看它是如何处理信息的就能明白这一点。计算机的翻译办法是:阅读某种语言句子,然后预测在另一种语言中相同含义的语词排列顺序。RNN运行严格遵照从左到右或者从右到左的顺序,一次处理一个单词。 这一运行方式并不天然地契合驱动现代机器学习系统的高度并行的GPU硬件。由于每个单词必须等到网络处理完前一个单词,因此计算并不是完全并行的。对比之下,CNN能够同时计算所有元素,充分利用了GPU的并行,计算也因此更高效。CNN的另一个优势就是以分层的方式处理信息,因此,捕捉数据中的复杂关系也更容易些。
在之前的研究中,被用于翻译任务的CNN的表现并不比RNN出色。然而,鉴于CNN架构潜力,FAIR开始研究将CNN用于翻译,结果发现了一种翻译模型设计,该设计能够让CNN的翻译效果也很出色。鉴于CNN更加出色的计算效率,CNN还有望扩大翻译规模,将世界上6,500多种语言(世界语言种类大约为6,900多种——译者注)纳入翻译范围。
在速度上达到当前最佳
我们的研究结果表明,与RNN相比,我们的系统在由机器翻译协会(WMT)提供的广泛使用的公共基准数据集上达到了新的最佳效果。特别是,CNN模型在WMT2014英语-法语任务(该度量标准被广泛用于判断机器翻译的准确度)上超过了之前最佳结果1.5BLEU。我们的模型在WMT2014英语-德语任务上提高了0.5BLEU,在WMT2016英语-罗马尼亚语上提高了1.8BLEU。
对于实际应用,神经机器翻译的一个考量因素是我们为系统提供一个句子后,它到底需要多长时间进行翻译。FAIRCNN模型在计算上十分高效,它要比强RNN系统快九倍左右。许多研究聚焦于量化权重或浓缩(distillation)等方法来加速神经网络,而它们同样也可被用于本CNN模型,甚至提速的效果还要大些,表现出了显著的未来潜力。
利用 多跳注意 (multi-hopattention)和门控(gating)来改善翻译效果
在我们模型架构中,一个明显不同的组件就是多跳注意,这个机制就像人类翻译句子时会分解句子结构:不是看一眼句子接着头也不回地翻译整个句子,这个网络会反复“回瞥(glimpse)”句子,选择接下来翻译哪个单词,这点和人类更像:写句子时,偶然回过头来看一下关键词。[3]多跳注意是这一机制的增强版本,可以让神经网络多次“回瞥”,以生成更好的翻译效果。多次“回瞥”也会彼此依存。比如,头次“回瞥”关注动词,那么,第二次“回瞥”就会与助动词有关。
在下图中,我们给出了该系统读取法语短语(编码)并输出其英语翻译(解码)的情形。我们首先使用一个CNN运行其编码器以为每个法语词创建一个向量,同时完成计算。接下来,其解码器CNN会一次得到一个英语词。在每一步,该注意都会「回瞥」原法语句子来确定翻译句子中最相关的下一个英语词。解码器中有两个所谓的层,下面的动画给出了每层中注意完成的方式。绿线的强度表示了该网络对每个法语词的关注度。当该网络被训练时,其一直可以提供翻译,同时也可以完成对英语词的计算。
我们的系统另一方面是门控(gating),其控制了神经网络中的信息流。在每一个神经网络中,信息流也就是通过隐藏单元的数据。我们的门控机制将具体控制哪些信息应该需要传递到下一个神经元中,以便产生一个优良的翻译效果。例如,当预测下一个词时,神经网络会考虑迄今为止完成的翻译。而门控允许放大翻译中一个特定的方面或取得广义的概览,这一切都取决于神经网络在当前语境中认为哪个是适当。
未来开发
这种方法是一种可选的机器翻译架构,也为其它文本处理任务开启了新的大门。比如说,在对话系统中的多跳注意(multi-hopattention)让神经网络可以关注到对话中距离较远的部分(比如两个分开的事实),然后将它们联系到一起以便更好地对复杂问题作出响应。
以下为相关论文的摘要介绍:
论文:卷积序列到序列学习(Convolutional Sequenceto Sequence Learning)
序列到序列学习(sequence to sequence learning)的普遍方法是通过循环神经网络将一个输入序列映射到一个可变长度的输出序列。我们引入了一种完全基于卷积神经网络的架构。
相比于循环模型,其在训练阶段中所有元素上的计算都是完全并行的,且其优化更简单,因为非线性的数量是固定的且独立于输入的长度。我们使用门控线性单元简化了梯度传播(gradient propagation),而且我们为每个解码器层都装备了一的单独的注意模块(attention module)。我们在WMT'14英语-德语翻译和WMT'14英语-法语翻译上的准确度表现都超过了Wuetal.(2016)的深度LSTM设置,且在GPU和CPU上的速度都实现了一个数量级的提升。