深度神经网络机器翻译

作者: 史春奇 | 来源:发表于2017-11-08 13:44 被阅读307次

​2013年,在Brandeis大学聆听薛念文老师(计算语言学领域引用率最高的华人之一, 下图居中, 薛老师右边是好友柏晓鹏和李斌)讨论小组研究语言模型的时候, 已经感到神经网络语言模型的力度。


但是还是非常难以想象到3年不到的这么短时间,就突破到这个程度。 去年年底Google神经网络机器翻译出来的时候, 本人有感于突破之快, 把当年的讨论的部分收获写到了 “概率估值的光滑(Smoothing)”里面。


今天有时间和大家一起讨论下下, 深度神经网络机器翻译。

前言

2016年年底, Google公布了神经网络机器翻译(GNMT), 从此宣告, 机器翻译经过27年左右, 正式从1989年的IBM机器翻译模型(PBMT,基于短语的机器翻译),过渡到了神经网络机器翻译模型。已经极大接近了普通人的翻译了。



而从基于短语的翻译到神经网络翻译, 相对提升可以达到60%以上, 因此一下子引起了欢呼和惊叹。 而这背后的大功臣,就是sequence to sequence (seq2seq)的端到端的模型。


而这个seq2seq模型,除了机器翻译,还极大改变了整个自然语言处理相关应用。包括基本的NLP功能:Parsing, NER等; 传统的NLP应用:Summarization, QA, Conversation等; 还有多模的世界:图像和文字, 语音和文字等。


譬如,Google除了GNMT以外还有基于seq2seq的TTS系统Tacotron


基于seq2seq的问答系统


基于seq2seq的概要提取系统


接下来, 我们按如下顺序介绍seq2seq模型:

Seq2Seq的简史

PBMT 时代的基石和问题

端到端模型的出现

神经网络语言模型的出现

RNN-LM的出现

RNN的发展

Seq2Seq的出现

Seq2Seq的发展

一. Seq2Seq的简史

目前seq2seq的突破,离不开:

a. Attention机制: 现在Attention机制几乎将IBM模型中alignment对齐机制发挥出新的境界。

b. RNN模型升级: RNN出现了双向RNN,堆栈RNN,和残差RNN。在GNMT里面把这些技术统统用上了。使得RNN模型的学习能力达到空前高度。

c. RNN-LM模型: RNN的使用开启解决长距离依赖的问题, 也引发记忆计算在语言模型的新思考。

d. NNLM模型突破:NNLM模型的发展使得非线性的投影和Softmax的近似计算得到突破。

e. 端到端的编解码模型:端到端的早期突破使得多模融合成为可能。

2015年,两个小组:Tim Rocktaschel为代表的伦敦大学院、牛津大学、还有DeepMind的小组(Reasoning about Entailment with Neural Attention),  和爱丁堡大学的Jianpeng Cheng(Long Short-Term Memory-Networks for Machine Reading),发表了基于Attention的对齐机制细分和相关的可视化的分析。 尤其Jianpeng Cheng对Shallow Attention Fusion 和 Deep Attention Fusion的区分,代表了Attention机制在NLP里面的成熟。


2014年 - 2015年,斯坦福计算机系Manning组的 Minh-Thang Luong的论文 Effective Approaches to Attention-based Neural Machine Translation 正式基于高斯分布推导了Local Attention,比较了Global Align Attention和Local Align Attention, 和视频处理里面 Soft Attention 和 Hard Attention建立了联系。


2015年 Bengio的团队中来自德国的Dzmitry Bahdanau(NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE),将Attention机制引入到机器翻译中,正式开启了Attention作为Alignment的大门!


2014年 两个人,Bengio团队的Kyunghyun Cho(Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation)   和Google的 Ilya Sutskever(Sequence to Sequence Learning with Neural Networks) 正式将RNN Encoder-Decoder搬上神经网络机器翻译NMT的历史舞台, 并且命名为Seq2Seq模型!

从上面, 我们看到从Seq2Seq简单模型到有Attention模型的Seq2Seq的经历。

二. PBMT 时代的基石和问题

首先基于短语的机器翻译,从IBM模型一路发展而来, 已经相当成熟。 并且开源系统也很多,极大促进了机器翻译的研究和应用。


最重要的是完成机器翻译的功能模块的分解:双语对齐, 语言模型,翻译模型, 解码器, 测试。


这个使得, 神经网络语言模型诞生后,可以进行独立测试, 逐步发展替代。


其中n-gram语言模型,基于全概率公式和马尔可夫假设,


但是问题也出现在这个n-gram模型, 主要的3大问题

1. 通过频率计算概率, 存在数据稀疏,概率为0的情况难以轻易搞定

虽然,众多概率光滑的算法(尤其 Modified Kneser-Ney 算法)纷纷出现, 依然对人为先验设计要求太高。


2. 长距离依赖的问题难以解决(短语N-Gram中N的局限性)


3. 线性模型学习的局限性


如何解决基于频率的概率估算问题, 解决长距离依赖, 解决线性模型的问题在基于短语的机器翻译PBMT框架下难以彻底截距。

其实, 还有两个神器在PBMT时代已经广泛应用了:

1.Log-Linear模型的提出

在“概率分布の三奥义” 里面,我们就提出了,概率估计发展, 从基于频率, 到基于经验,再到基于最大熵。  需要的数据越来越少。而Log-Linear就是基于最大熵的概率模型(细节参考““66天写的逻辑回归” 引”) 如果想深入了解的, 简单说来Log-Linear和最大交互熵之间的关系就是著名的Donsker-Varadhan定理:


Log-Linear表现为Softmax输出


2. 束查询 Beam Search

当把翻译的词拼成句子的时候, 要求整个句子的似然概率最大, 这时候Beam Search是介于贪心和动态规划(譬如 Viterbi Algorithm)之间个一种均衡了效果和计算量的选择。


三. 端到端模型的出现

端到端模型很早就出现了, Brandeis 的Jordan Pollack早在89年左右就思考如何基于encoder-decoder开始做机器翻译。 不过,那时候叫dual-ported RAAM (recursive auto associate memory)。


大家都知道encoder-decoder的功能是重建对应的元素, 如果x和f(x),存在同样的内在分布表达, 那么可以先训练x重建, 再训练f(x), 甚至可以训练多个f(x)。 如果把f(x)看成是翻译, 这就可以基于多模的翻译, 也可以是多语言的翻译。


不仅仅如此, 还引入了分布表达映射的思想, 增强模型的表达能力。


这是早期的基于神经网络的端到端的机器翻译, 但是局限于当时的算法和计算,效果并不突出。

四. 神经网络语言模型NNLM的出现

PBMT时代后期, Log-Linear的出现和应用, 基本上奠定了NNLM神经网络语言模型的基础了。本质上NNLM就是Log-Linear 保留了Softmax层, 替代了线性映射变成非线性映射tahn。  这样, 引入了非线性映射。

Log-Linear对应的是线性Softmax网络


NNLM: 非线性(tanh)的Softmax网络


这里使用的是tanh,某种意义就是截断的对称线性的光滑近似。


其实,直接在Log-Linear基础上,引入非线性存在个两个问题

1. 需要的网络参数太多, 训练困难

2. Softmax网络的计算量很大, 而且不稳定, 噪声的影响太大。

对于这两个问题,Bengio建议可以尝试RNN来减少参数, 同时提出了Hierarchy Softmax方式减少计算量,但是依然不够稳定。

虽然NNLM引入了非线性, 也使用softmax计算概率问题(等价于最大熵估算概率), 但是并没有解决长距离依赖问题。

五. RNN-LM的出现

Mikolov追随Bengio的建议, 2010年引入了RNN, 虽然引入RNN有利于简化参数, 但是同时引入了深度网络, 使得训练和收敛变得困难。 为了简化计算, 没有采用tanh计算, 使用了sigmoid函数, 同时采用了分组计算softmax。


2年后, Mikolov在提出word2vec之前差不多搞定了Negative Sampling, 进一步提出了提高了Softmax的训练的速度和稳定性。Negative Sampling可以看成2010年 Gutmann and Hyvärinen 提出的Noise Contrastive Estimation的一种近似。 现在NEG和NCE已经成为训练softmax的主流。


有人说, RNN-LM好像就是把NNLM的NN网络换成了RNN网络, 但是训练难度的增加,的确阻碍了好多人的实验成功, 有兴趣可以看一下 Bengio和Mikolov联合在2012年发表的大作 On the difficulty of training Recurrent Neural Networks。

RNN的成功引入, 解决了长距离依赖的问题, 而且引入了上下文和记忆的概念。


RNN-LM 背后的翻译能力的挖掘,还需要回归到早期Encoder-Decoder的表达映射。

六. RNN的发展

RNN自身学习能力也在不停的发展, 譬如堆栈RNN,粗细的表达能力也开始分层次。 构建起一个时间和空间的纵横网络。


在语言模型里面, 就要看双向网络了,正向网络, 好比我的老家溧阳, 那么你遇到溧字,后面只有两个选择溧阳和溧水,但是反过来阳和水前面可以跟的词就多了。 反向网络, 好比New York, 正向看New 后面不一定跟York,但是反过来看York前面一般跟New。


再根据训练收敛的快慢和梯度消失的影响, 引入残差网络的机制, 就得到了残差堆栈RNN。


合并到一起,就是GNMT里面的双向堆栈残差RNN网络了。


除了结构的叠加, 也有人开始改进RNN本身结构, 譬如增强记忆功能的增强RNN:


七. Seq2Seq的出现

有了RNN作为语言模型, 再加上早期的Encoder-Decoder框架作为翻译, 于是诞生了RNN Encoder-Decoder模型。


如果把这个模型水平展开,就不很像encoder-decoder了, 于是命名成Seq2Seq模型了。


再加上词嵌入的发展和t-SNE可视化的发展, 刚出生的Seq2Seq翻译的效果和影响力已经不是dual-ported RAAM可以比拟的啦。


从此端到端的翻译重新回到历史的舞台!

八. Seq2Seq的发展

随着前面简史里面介绍的Attention机制的引入, Seq2Seq的效果一飞冲天。Attention本质上也是一个Softmax的权重计算网络。


但是它很好的构建了注意力权重、上下文向量,注意力向量等模块。


有了这样的模块化, 再加上合理的计算流程, 我们就可以得到基于Attention的候选词计算了。 而Attention机制很好的替代了在PBMT里面的对齐机制。


如果再回到PBMT里面的几大模块:双语对齐, 语言模型,翻译模型, 解码器, 测试。发现可以对应到Attention,RNN-LM,Encoder-Decoder, Beam.

似乎除了Beam之外,全部可以利用神经网络搞定了。 现在为Seq2Seq量身定做Beam Search也是一个研究热点, 最近基于剪枝的算法又开始出现了,希望找到计算量和效果的新的平衡点.


这样,基于概率的剪枝, 是不是和AlphaGo接近了。 这或许就是未来使用AlphaGo做机器翻译的开始。  有兴趣大家可以看看IBM Watson研究院 Markus Freitag 的论文 Beam Search Strategies for Neural Machine Translation.

小结

本文通过逐层说明的方式,对比了从PBMT到NMT的进化实现, 通过问题解答的方式, 阐明了深度神经网络机器翻译是怎么发展起来的。

相关话题:

概率估值的光滑(Smoothing)

机器学习经典人物关系[全]

人工智能深度学习人物关系[全]



相关文章

  • Beam Search

    白话系列: 来自论文基于深度神经网络的中英机器翻译模型研究. 算法解释 beam search原理以及在NLP中应用

  • 2020语言服务展望之七|李光华:神经网络机器翻译时代,我们需要

    “预测未来最好的方式是创造未来” ——彼得·德鲁克 人机合译路漫漫 基于深度神经网络算法带来的机器翻译质量大幅跃升...

  • 深度神经网络机器翻译

    ​2013年,在Brandeis大学聆听薛念文老师(计算语言学领域引用率最高的华人之一, 下图居中, 薛老师右边是...

  • 通过学习对齐翻译的神经机器翻译

    神经机器翻译是最近提出的机器翻译方法。与传统的统计机器翻译不同,神经机器翻译的目的是建立一个单一的神经网络,可以联...

  • 15天倒计时:深度学习高端讲座免费听!

    深度学习是对使用多层神经网络过程进行机器学习的统称。目前已经被应用到图像识别,语音识别,自然语言处理,机器翻译等场...

  • 深度学习笔记之循环神经网络RNN学习笔记

    关键词:循环神经网络;RNN;深度学习;深度神经网络 循环神经网络 RNN 李宏毅: 机器学习,深度学习的课件参考...

  • 18-tensorflow

    基础 深度学习介绍 深度学习,如深度神经网络、卷积神经网络和递归神经网络已被应用计算机视觉、语音识别、自然语言处理...

  • BP神经网络的梳理

    一 BP 神经网络简介 (1)BP神经网络在深度学习的地位 BP神经网络被称为“深度学习之旅的开端”,是神经网络的...

  • 跟我一起学PyTorch-06:卷积神经网络CNN

    以全连接层为基础的深度神经网络DNN是整个深度学习的基石。要说应用最广、影响最大的深度神经网络,那就是卷积神经网络...

  • 2020-02-19

    机器翻译(MT):将一段文本从一种语言自动翻译为另一种语言,用神经网络解决这个问题通常称为神经机器翻译(NMT)。...

网友评论

    本文标题:深度神经网络机器翻译

    本文链接:https://www.haomeiwen.com/subject/hinemxtx.html