神奇的神经机器翻译:从发展脉络到未来前景(附论文资源)

开发 开发工具
机器翻译(MT)是借机器之力「自动地将一种自然语言文本(源语言)翻译成另一种自然语言文本(目标语言)」,下面,一文带你了解 NMT 的神奇之处。

机器翻译(MT)是借机器之力「自动地将一种自然语言文本(源语言)翻译成另一种自然语言文本(目标语言)」[1]。使用机器做翻译的思想最早由 Warren Weaver 于 1949 年提出。在很长一段时间里(20 世纪 50 年代到 80 年代),机器翻译都是通过研究源语言与目标语言的语言学信息来做的,也就是基于词典和语法生成翻译,这被称为基于规则的机器翻译(RBMT)。随着统计学的发展,研究者开始将统计模型应用于机器翻译,这种方法是基于对双语文本语料库的分析来生成翻译结果。这种方法被称为统计机器翻译(SMT),它的表现比 RBMT 更好,并且在 1980 年代到 2000 年代之间主宰了这一领域。1997 年,Ramon Neco 和 Mikel Forcada 提出了使用「编码器-解码器」结构做机器翻译的想法 [2]。几年之后的 2003 年,蒙特利尔大学 Yoshua Bengio 领导的一个研究团队开发了一个基于神经网络的语言模型 [3],改善了传统 SMT 模型的数据稀疏性问题。他们的研究工作为未来神经网络在机器翻译上的应用奠定了基础。

神经机器翻译的诞生

2013 年,Nal Kalchbrenner 和 Phil Blunsom 提出了一种用于机器翻译的新型端到端编码器-解码器结构 [4]。该模型可以使用卷积神经网络(CNN)将给定的一段源文本编码成一个连续的向量,然后再使用循环神经网络(RNN)作为解码器将该状态向量转换成目标语言。他们的研究成果可以说是神经机器翻译(NMT)的诞生;神经机器翻译是一种使用深度学习神经网络获取自然语言之间的映射关系的方法。NMT 的非线性映射不同于线性的 SMT 模型,而且是使用了连接编码器和解码器的状态向量来描述语义的等价关系。此外,RNN 应该还能得到无限长句子背后的信息,从而解决所谓的「长距离重新排序(long distance reordering)」问题 [29]。但是,「梯度爆炸/消失」问题 [28] 让 RNN 实际上难以处理长距依存(long distance dependency);因此,NMT 模型一开始的表现并不好。

用于长距问题的记忆

一年后的 2014 年,Sutskever et al. 和 Cho et al. 开发了一种名叫序列到序列(seq2seq)学习的方法,可以将 RNN 既用于编码器也用于解码器 [5][6],并且还为 NMT 引入了长短时记忆(LSTM,是一种 RNN)。在门机制(gate mechanism)的帮助下(允许在 LSTM 中删除和更新明确的记忆),「梯度爆炸/消失」问题得到了控制,从而让模型可以远远更好地获取句子中的「长距依存」。

LSTM 的引入解决了「长距离重新排序」问题,同时将 NMT 的主要难题变成了「固定长度向量(fixed-length vector)」问题:如图 1 所示,不管源句子的长度几何,这个神经网络都需要将其压缩成一个固定长度的向量,这会在解码过程中带来更大的复杂性和不确定性,尤其是当源句子很长时 [6]。

没有「注意」的原始神经机器翻译机制 [5]

图 1:没有「注意」的原始神经机器翻译机制 [5]

注意、注意、注意

自 2014 年 Yoshua Bengio 的团队为 NMT 引入了「注意力(attention)」机制 [7] 之后,「固定长度向量」问题也开始得到解决。注意力机制最早是由 DeepMind 为图像分类提出的 [23],这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」[24]。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector)(如图 2 所示,紫色线的透明度表示权重大小)。然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。自那以后,NMT 的表现得到了显著提升,「注意力编码器-解码器网络」已经成为了 NMT 领域当前最佳的模型。

谷歌神经机器翻译(GNMT)[8] 的「注意力编码器-解码器网络」架构的机制

图 2:谷歌神经机器翻译(GNMT)[8] 的「注意力编码器-解码器网络」架构的机制

NMT vs. SMT

尽管 NMT 已经在特定的翻译实验上取得了惊人的成就,但研究者还想知道能否在其它任务上也实现这样的优良表现,以及 NMT 是否确实能取代 SMT。因此,Junczys-Dowmunt et al. 在「United Nations Parallel Corpus」语料库上进行了实验,该语料库包含 15 个语言对和 30 个翻译方向;而通过 BLEU 分数(一种自动评估机器翻译的方法,分数越高越好 [33])对实验结果的测定,NMT 在这所有 30 个翻译方向上都得到了与 SMT 媲美或更好的表现。此外,在 2015 年的 Workshop on Statistical Machine Translation(WMT)比赛上,来自蒙特利尔大学的这个团队使用 NMT 赢得了英语-德语翻译的第一名和德语-英语、捷克语-英语、英语-捷克语翻译的第三名 [31]。

与 SMT 相比,NMT 可以联合训练多个特征,而无需先验的领域知识,这可以实现 zero-shot 翻译 [32]。除了更高的 BLEU 分数和更好的句子结构,NMT 还有助于减少 SMT 上常见的形态学错误、句法错误和词序错误。另一方面,NMT 还有一些需要解决的问题和挑战:训练和解码过程相当慢;对同一个词的翻译风格可能不一致;在翻译结果上还存在「超出词汇表(out-of-vocabulary)」的问题;「黑箱」的神经网络机制的可解释性很差;训练所用的参数大多数是根据经验选择的。

NMT vs. SMT

军备竞赛已经开始

因为 NMT 的特性及其相对于 SMT 的优势,产业界最近也开始采用 NMT 了:2016 年 9 月,谷歌大脑团队发布了一篇博客说他们已经在谷歌翻译产品的汉语-英语语言对上开始使用 NMT 替代基于短语的机器翻译(PBMT,这是一种 SMT)。他们部署的 NMT 名叫谷歌神经机器翻译(GNMT),他们也在同一时间发布了一篇论文 [9],对该模型进行了详细的解释。之后还不到一年时间(2017 年),Facebook 人工智能研究院(FAIR)就宣布了他们使用 CNN 实现 NMT 的方法,其可以实现与基于 RNN 的 NMT 近似的表现水平 [10][11],但速度却快 9 倍。作为回应,谷歌在 6 月份发布了一个完全基于注意力(attention)的 NMT 模型;这个模型既没有使用 CNN,也没有使用 RNN,而是完全基于注意力机制 [12]。

其它科技巨头也都各有动作。比如亚马逊刚在 7 月份发布了他们使用 MXNet 的 NMT 实现 [13];微软在 2016 年谈论过他们对 NMT 的应用,尽管目前还未披露进一步的技术细节 [27]。IBM Watson(机器翻译领域的老将)、英伟达(人工智能计算的领军者)和 SYSTRAN(机器翻译先驱)[35] 全都或多或少地参与到了 NMT 的开发中。在东亚地区,中国这个人工智能领域的新星正在升起,百度、网易有道、腾讯、搜狗、讯飞、阿里巴巴等许多公司甚至已经部署了 NMT。它们全都拼尽全力想在机器翻译的下一轮演进中取得竞争优势。

NMT 就是未来吗?

在高速发展和高度竞争的环境中,NMT 技术正在取得显著的进展。在最近的 ACL 2017 会议上,机器翻译类别下接收的 15 篇论文全都与神经机器翻译有关 [34]。我们可以看到 NMT 还将在许多方面得到不断完善,其中包括:

  • 罕见词问题 [14][15]
  • 单语言数据使用 [16][17]
  • 多语言翻译/多语言 NMT [18]
  • 记忆机制 [19]
  • 语言融合 [20]
  • 覆盖问题 [21]
  • 训练过程 [22]
  • 先验知识融合 [25]
  • 多模态翻译 [26]

因此,我们有足够的理由相信 NMT 还将取得更大的突破,还将替代 SMT 逐渐发展成主流的机器翻译技术,并在不久的将来让全社会受益。

最后补充

为了帮你了解 NMT 的神奇之处,我们列出了一些 NMT 的开源实现,它们使用了不同的工具:

  • Tensorflow [Google-GNMT]: https://github.com/tensorflow/nmt
  • Torch [Facebook-fairseq]: https://github.com/facebookresearch/fairseq
  • MXNet [Amazon-Sockeye]: https://github.com/awslabs/sockeye
  • Theano [NEMATUS]: https://github.com/EdinburghNLP/nematus
  • Theano [THUMT]: https://github.com/thumt/THUMT
  • Torch [OpenNMT]: https://github.com/opennmt/opennmt
  • PyTorch [OpenNMT]: https://github.com/OpenNMT/OpenNMT-py
  • Matlab [StanfordNMT]: https://nlp.stanford.edu/projects/nmt/
  • DyNet-lamtram [CMU]: https://github.com/neubig/nmt-tips
  • EUREKA [MangoNMT]: https://github.com/jiajunzhangnlp/EUREKA-MangoNMT

如果你有兴趣进一步了解 NMT,我们鼓励你阅读参考文献中列出的论文:[5][6][7] 是必读的核心论文,能帮你了解什么是 NMT;[9] 是 NMT 的机制和实现的全面展示。此外,在机器之心正在整理编辑的《人工智能技术报告》中,机器翻译也是一个重要篇章。

【本文是51CTO专栏机构“机器之心”的原创文章,微信公众号“机器之心( id: almosthuman2014)”】

戳这里,看该作者更多好文

责任编辑:赵宁宁 来源: 51CTO专栏
相关推荐

2017-02-16 18:40:36

2019-10-25 16:18:34

机器学习人工智能计算机

2017-02-16 14:29:42

2020-10-11 22:05:22

机器翻译谷歌AI

2017-11-03 15:58:08

2022-09-08 12:22:57

元宇宙

2020-04-01 11:12:43

脑机接口机器翻译人工智能

2021-01-12 10:49:58

网络网络通信互联网

2021-10-13 18:59:42

AI

2017-08-21 16:00:14

机器学习机器翻译

2017-03-22 12:39:33

人工智能机器翻译

2017-10-15 21:43:36

2021-10-28 17:52:51

机器翻译人工智能AI

2017-04-21 15:16:30

Python语言JAVA

2012-02-09 09:49:48

2021-10-13 18:57:59

AI

2021-10-21 13:13:57

数字化

2020-10-27 14:34:42

算法MIT机器翻译

2023-09-07 08:00:00

点赞
收藏

51CTO技术栈公众号