机器翻译(MT)利用机器的力量来做「从一种自然语言(源语言)到另一种自然语言(目标语言)的自动翻译」[1]。使用机器来做翻译的想法最早由Warren Weaver在1949年提出。在很长一段时间里(1950s~1980s),机器翻译通过研究源语言和目标语言的语言学信息而开展,基于词典和语法生成翻译结果,这被称作基于规则的机器翻译(RBMT)。随着统计学的发展,统计模型开始被应用在机器翻译中,它基于对双语文本语料的分析生成翻译结果。这种方法被称作统计机器翻译(SMT),SMT的性能优于RBMT,在1980s至2000s,SMT方法主导了这个领域。1997年,Ramon Neco和Mikel Forcada提出了使用「encoder-decoder」结构来做机器翻译的想法 [2]。几年后的2003年,蒙特利尔大学由Yoshua Bengio领导的一组研究者基于神经网络开发出了一个语言模型 [3],这个模型改善了传统SMT模型中数据稀疏性的问题。他们的工作为未来神经网络在机器翻译领域的使用奠定了基础。
神经机器翻译的诞生
2013年,Nal Kalchbrenner和 Phil Blunsom提出了一种用于机器翻译的新型端到端编码器-解码器架构 [4]。该模型使用卷积神经网络(CNN)将给定的源文本编码为连续向量,然后使用循环神经网络(RNN)作为解码器将状态向量转换为目标语言。他们的研究可视为神经机器翻译(NMT)的开端,NMT是一种使用深度学习神经网络在自然语言之间进行映射的方法。NMT的非线性映射不同于线性SMT模型,NMT使用连接编码器和解码器的状态向量来描述语义等价。此外,RNN应该能够捕捉到长句子背后的信息,解决「长距离调序」(long distance reodering)的问题[29]。然而,「梯度消失/爆炸」问题 [28] 使得 RNN 实际上很难处理长距离依赖的问题;对应地,NMT模型起初也不能实现很好的性能。
长距离记忆
一年后(2014),Sutskever et al.和 Cho et al 开发出序列到序列(seq2seq)方法,该方法在编码器和解码器中都使用RNN [5][6],并且在NMT中引入LSTM(RNN的一种变体)。由于LSTM中的门机制允许外显记忆删除和更新,「梯度爆炸/消失」的问题得以控制,因此模型可以更好地捕捉到句子中的「长距离依赖」。
LSTM的引入解决了「长距离调序」的问题,却将NMT的主要挑战转移到了「定长向量」的问题上:如图1所示,不管源句子有多长,神经网络需要将源句子压缩为固定长度的向量,这增加了解码阶段的复杂度和不确定性,尤其是源句子比较长的时候 [6]。
注意力,注意力,注意力
自Yoshua Bengio的团队在2014年向NMT引入「注意力机制」之后,「定长向量」的问题开始被解决。注意力机制最初是由DeepMind在解决图像分类问题时提出的 [23],它能够「使神经网络在执行预测任务的时候更加关注与输入相关的部分,而不太关注不相关的部分」 [24]。当解码器生成一个目标句子的组成单词时,只有源句子中的一小部分是相关的;所以基于内容的注意力机制就被用来基于源句子动态地生成一个(加权)语境向量(如图2所示,紫色线条的透明度表示的就是权重)。然后基于语境向量预测目标单词,而不是基于定长向量去预测。之后,NMT的性能得到了显著的提升,「注意力编码器-解码器网络」成为NMT最先进的模型。
NMT vs. SMT
尽管NMT已经取得了显著的成绩,尤其是在翻译实验中,然而研究者们仍在担忧这种优秀性能能否在其他任务中得以持续,以及NMT是否可以取代SMT。因此,Junczys-Dowmunt等人在包含15个语言对、30个翻译方向的联合国平行语料库上做了实验。在以BLEU值(评价机器翻译的一种方法,得分越高越好)为度量的实验中,NMT在30个翻译方向上与SMT持平或者优于SMT。此外,在2015年的WMT竞赛中,蒙特利尔大学团队使用NMT成功地拿下了英语-德语翻译的冠军,以及德语-英语、捷克语-英语、英语-捷克语翻译的第三名 [31]。
与SMT相比,NMT可以联合地训练多个特征,而且不需要先验知识,这赋予它zero-shot翻译的能力 [32]。除了更高的BLEU值和更好的句子结构之外,NMT还有助于减少SMT中常见的形态学错误、句法错误和词序错误。另一方面,NMT还面临着需要解决的问题和挑战:训练过程和解码过程相当慢;同一单词的译文风格可能不一致;翻译结果中存在「out-of-vocabulary」问题;「黑箱」神经网络机制造成了较差的可解释性;用于训练的参数大部分是基于经验选择的。
竞赛进行时
由于NMT本身的特点和相对于SMT的优势,NMT最近也开始被用于产业界。2016年9月,Google Brain团队发表一篇博客,显示他们已经在其产品Google Translate的中英翻译中用NMT替换基于词组的翻译(PBMT,SMT的一种变体)[8]。他们部署的NMT叫做谷歌神经机器翻译(GNMT),同时还发表了一篇论文来解释模型的细节 [9]。仅仅一年时间(2017),Facebook AI 研究院(FAIR)宣布他们使用CNN实现NMT的方法,这个方法能够达到和基于RNN的NMT相似的性能 [10][11],但运行速度是后者的9倍。作为回应,谷歌于同年6月发布了一个仅仅基于注意力的NMT模型,该模型既没有使用CNN也没有使用RNN,而是仅依靠「注意力」机制 [12]。其他科技巨头也在行动,例如亚马逊发布了基于MXNet的NMT实现 [13];微软在2016年的时候就谈到他们使用了NMT,2018年3月,微软机器翻译出现新突破 [27]。IBM Watson(机器翻译领域的老兵)、NVIDIA(AI计算领域的领跑者),以及SYSTRAN (机翻领域的先锋)[35] 都或多或少地参与了NMT的研发。在遥远的东方,中国这颗AI领域的明日之星,已经有更多的公司已经部署了NMT,这些公司包括百度、网易-有道、腾讯、搜狗、科大讯飞以及阿里巴巴等。所有这些公司都在尽全力,以在下一轮机器翻译革命中得到竞争优势。
未来是NMT的天下吗?
在快节奏和高度竞争的环境中,NMT技术正在经历相当大的发展。在ACL 2017大会上,机器翻译领域的15篇接收论文全部是关于神经机器翻译的 [34]。我们可以发现,NMT的连续发展表现在不同的方面,包括:
- Rare word problem [14] [15]
- Monolingual data usage [16] [17]
- Multiple language translation/multilingual NMT [18]
- Memory mechanism [19]
- Linguistic integration [20]
- Coverage problem [21]
- Training process [22]
- Priori knowledge integration [25]
- Multimodal translations [26]
- 罕见词问题 [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机制和实现的全面论述。此外,我们已经发布的AI技术报告中有专门介绍机器翻译的内容。
参考文献
[1] Russell, S. & Norvig, P. (1995). Artificial intelligence: a modern approach.
[2] Neco, R. P., & Forcada, M. L. (1997, June). Asynchronous translations with recurrent neural nets. In Neural Networks, 1997., International Conference on (Vol. 4, pp. 2535-2540). IEEE.
[3] Bengio, Y., Ducharme, R., Vincent, P., & Jauvin, C. (2003). A neural probabilistic language model. Journal of machine learning research, 3(Feb), 1137-1155.
[4] Kalchbrenner, N., & Blunsom, P. (2013, October). Recurrent Continuous Translation Models. In EMNLP (Vol. 3, No. 39, p. 413).
[5] Sutskever, I., Vinyals, O., & Le, Q. V. (2014). Sequence to sequence learning with neural networks. In Advances in neural information processing systems(pp. 3104-3112).
[6] Cho, K., Van Merriënboer, B., Gulcehre, C., Bahdanau, D., Bougares, F., Schwenk, H., & Bengio, Y. (2014). Learning phrase representations using RNN encoder-decoder for statistical machine translation. arXiv preprint arXiv:1406.1078.
[7] Bahdanau, D., Cho, K., & Bengio, Y. (2014). Neural machine translation by jointly learning to align and translate. arXiv preprint arXiv:1409.0473.
[8] A Neural Network for Machine Translation, at Production Scale. (2017). Research Blog. Retrieved 26 July 2017, from https://research.googleblog.com/2016/09/a-neural-network-for-machine.html
[9] Wu, Y., Schuster, M., Chen, Z., Le, Q. V., Norouzi, M., Macherey, W., ... & Klingner, J. (2016). Google's neural machine translation system: Bridging the gap between human and machine translation. arXiv preprint arXiv:1609.08144.
[10] Gehring, J., Auli, M., Grangier, D., & Dauphin, Y. N. (2016). A convolutional encoder model for neural machine translation. arXiv preprint arXiv:1611.02344.
[11] Gehring, J., Auli, M., Grangier, D., Yarats, D., & Dauphin, Y. N. (2017). Convolutional Sequence to Sequence Learning. arXiv preprint arXiv:1705.03122.
[12] Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017). Attention Is All You Need. arXiv preprint arXiv:1706.03762.
[13] Train Neural Machine Translation Models with Sockeye | Amazon Web Services. (2017). Amazon Web Services. Retrieved 26 July 2017, from https://aws.amazon.com/blogs/ai/train-neural-machine-translation-models-with-sockeye/
[14] Jean, S., Cho, K., Memisevic, R., & Bengio, Y. (2014). On using very large target vocabulary for neural machine translation. arXiv preprint arXiv:1412.2007.
[15] Luong, M. T., Sutskever, I., Le, Q. V., Vinyals, O., & Zaremba, W. (2014). Addressing the rare word problem in neural machine translation. arXiv preprint arXiv:1410.8206.
[16] Sennrich, R., Haddow, B., & Birch, A. (2015). Improving neural machine translation models with monolingual data. arXiv preprint arXiv:1511.06709.
[17] Cheng, Y., Xu, W., He, Z., He, W., Wu, H., Sun, M., & Liu, Y. (2016). Semi-supervised learning for neural machine translation. arXiv preprint arXiv:1606.04596.
[18] Dong, D., Wu, H., He, W., Yu, D., & Wang, H. (2015). Multi-Task Learning for Multiple Language Translation. In ACL (1) (pp. 1723-1732).
[19] Wang, M., Lu, Z., Li, H., & Liu, Q. (2016). Memory-enhanced decoder for neural machine translation. arXiv preprint arXiv:1606.02003.
[20] Sennrich, R., & Haddow, B. (2016). Linguistic input features improve neural machine translation. arXiv preprint arXiv:1606.02892.
[21] Tu, Z., Lu, Z., Liu, Y., Liu, X., & Li, H. (2016). Modeling coverage for neural machine translation. arXiv preprint arXiv:1601.04811.
[22] Shen, S., Cheng, Y., He, Z., He, W., Wu, H., Sun, M., & Liu, Y. (2015). Minimum risk training for neural machine translation. arXiv preprint arXiv:1512.02433.
[23] Mnih, V., Heess, N., & Graves, A. (2014). Recurrent models of visual attention. In Advances in neural information processing systems (pp. 2204-2212).
[24] Dandekar, N. (2017). How does an attention mechanism work in deep learning for natural language processing?. Quora. Retrieved 26 July 2017, from https://www.quora.com/How-does-an-attention-mechanism-work-in-deep-learning-for-natural-language-processing
[25] Cohn, T., Hoang, C. D. V., Vymolova, E., Yao, K., Dyer, C., & Haffari, G. (2016). Incorporating structural alignment biases into an attentional neural translation model. arXiv preprint arXiv:1601.01085.
[26] Hitschler, J., Schamoni, S., & Riezler, S. (2016). Multimodal pivots for image caption translation. arXiv preprint arXiv:1601.03916.
[27] Hassan, H., Aue, A., Chen, C.; Chowdhary, V, et al. (2018) Achieving Human Parity on Automatic Chinese to English News Translation. arXiv preprint arXiv: 1803.05567.
[28] Pascanu, R., Mikolov, T., & Bengio, Y. (2013, February). On the difficulty of training recurrent neural networks. In International Conference on Machine Learning (pp. 1310-1318).
[29] Sudoh, K., Duh, K., Tsukada, H., Hirao, T., & Nagata, M. (2010, July). Divide and translate: improving long distance reordering in statistical machine translation. In Proceedings of the Joint Fifth Workshop on Statistical Machine Translation and MetricsMATR (pp. 418-427). Association for Computational Linguistics.
[30] Junczys-Dowmunt, M., Dwojak, T., & Hoang, H. (2016). Is neural machine translation ready for deployment. A case study on, 30.
[31] Bojar O, Chatterjee R, Federmann C, et al. Findings of the 2015 Workshop on Statistical Machine Translation[C]. Tech Workshop on Statistical Machine Translation, 2015.
[32] Johnson, M., Schuster, M., Le, Q. V., Krikun, M., Wu, Y., Chen, Z., ... & Hughes, M. (2016). Google's multilingual neural machine translation system: enabling zero-shot translation. arXiv preprint arXiv:1611.04558.
[33] Bartolome, Diego, and Gema Ramirez. “Beyond the Hype of Neural Machine Translation,” MIT Technology Review (May 23, 2016), bit.ly/2aG4bvR.
[34] ACL 2017. (2017). Accepted Papers, Demonstrations and TACL Articles for ACL 2017. [online] Available at: https://chairs-blog.acl2017.org/2017/04/05/accepted-papers-and-demonstrations/ [Accessed 7 Aug. 2017].
[35] Crego, J., Kim, J., Klein, G., Rebollo, A., Yang, K., Senellart, J., ... & Enoue, S. (2016). SYSTRAN's Pure Neural Machine Translation Systems. arXiv preprint arXiv:1610.05540.