自然语言处理(二)机器翻译 篇 (NLP: machine translation)

2015 年 7 月 1 日 DeepLearning中文论坛 deepnn团队

上篇给大家介绍了几种 NLP 中的语言模型,其中 RNN 比 neural network language model (NNLM) 和 n-gram language model 有明显的优势:RNN 考虑到前面所有的 word,而 NNLM 和 n-gram 都是基于马可夫假设的,所以第 n +1 个 word 的概率只取决于它的前 n 个 word。不过常规 RNN 的问题是:在参数学习阶段,通过 back propagation 来更新参数时,会有 gradient explosion / vanishing 问题。后期学者们提出的 LSTM (long-short term memory) 和 GRU (gated recurrent unit) 都是用来解决这个问题的,而 LSTM 和 GRU 本质上仍然属于 RNN。


我们首先介绍 RNN 与 HMM 和 LDS 的区别和联系,然后讲述怎样用 RNN 来建立机器翻译模型。


(1) RNN vs. HMM / LDS


如果把 RNN 在时间维度展开,它也是一条 linear chain,它与 Hidden Markov Model (HMM) 和 Linear Dynamic System (LDS) 有着相似的结构。那么 RNN 跟 HMM 和 LDS 的区别和联系是什么呢?


HMM 与 LDS 是两种简单的 Dynamic Bayesian Network (DBN)。HMM 的 state space 是离散随机变量,而 LDS 的 state space 是连续随机变量,并且服从高斯分布。线性离散和高斯分布都会给 inference 带来便利,所以它们都有 exact inference 算法,如 Viterbi algorithm, Kalman filter 等。如果 hidden state 是连续但不服从高斯分布的话,那么 exact inference 就是一个大问题,这时我们需要使用 approximate inference 算法,如 particle-based inference (e.g. MCMC) 和 variational inference (e.g. EM)。在 HMM 或 LDS 的参数学习阶段,目标是 maximize marginal likelihood,其中观测值 (observed variable) 的 marginal probability 需要通过对 hidden state 积分得到。


再说 RNN,它虽然也是一条 linear chain,但它是 deterministic 的:hidden state 到 hidden state 的 transition 是固定的而不是随机的,hidden state 到 observation state 也是固定的。既然 RNN 是一个 deterministic parametric model,一旦通过 back propagation 学习参数后,inference 就相当容易了,不需要对 hidden state 积分或求和。所以,RNN 中 hidden state 可以是任意连续的向量,不需要对它的分布做任何假设。我们今后会特别讲解 RNN 的技术细节。



(2) 机器翻译 (machine translation)


机器翻译就是把A语言翻译成B语言。目前最好的机器翻译模型 (translation model) 是基于 Neural Nets 的,它使用 neural network 建立了一个条件概率 (conditional distribution) 模型:给定一个 source sentence - Sa (A语言),那么 target sentence - Sb (B语言) 的条件概率是多少,也就是 p( Sb | Sa )。在2014年的NIPS会议上,Ilya Sutskever et al. 发表了一篇关于机器翻译的经典文章:Sequence to Sequence Learning with Neural Networks。文章中将机器翻译分为两个阶段,encode source sentence 和 decode target sentence。首先用一个 encoding LSTM 来对 source sentence 进行编码,得到一个固定维数的向量 C;然后,以 C 为输入,用另一个 decoding LSTM 来解码得到 target sentence。


在参数学习阶段,通过 back propagation 来联合训练两个 LSTM 里面的参数。在翻译阶段,给定A语言的一句话,如何把它翻译成B语言呢?先通过 encoding LSTM 得到 A 的编码后,把该编码输入到 decoding LSTM 中,就可以按顺序地得到每个词了,这一系列词就组成了 target sentence。想得到条件概率最大的 target sentence,也就是使 p( Sb | Sa ) 最大的 Sb,brute force search 是不可取的,实际中一般使用 beam search algorithm 来得到若干个条件概率较大的 candidate sentences。这种 encoding-decoding 模式是解决 机器翻译 问题非常有效的框架,它不仅启发了后续一系列的改进模型,还启发了计算机视觉领域中的 image / video description 研究。




基于以上的 encoding-decoding 框架的 翻译模型 有一个突出的问题:使用 encoding LSTM 模型,把整个 source sentence 压缩成了一个固定长度的向量 C,而这个向量 C 是下一个 decoding LSTM 的唯一输入。这样导致的问题是,对于短句子的翻译效果不错,可是翻译长句子时,BLUE score 明显下降 (BLUE score 是一种度量机器翻译质量的测度)。直观上其实很好理解:如果以整个 source sentence 的编码向量作为 decoding LSTM 的输入,那么 source sentence 中的 temporal 信息以及每个词自身的信息都丢失掉了。为了解决这个问题,Dzmitry Bahdanau et al. 在 Neural Machine Translation by Jointly Learning to Align and Translate 文章中提出了 jointly align and translate 机器翻译模型。它仍然是基于 encoding-decoding 框架的,核心的不同是,decoding LSTM 的输入不是整个 source sentence 的编码向量 C,而是 encoding LSTM 得到的 source sentence 里每个词的编码向量,这样每个词的信息都保留了下来。他们的模型不仅可以翻译整个句子,而且还可以把翻译得到的每个词对应到 source sentence 的每个词。这篇文章值得好好读一读。


好了,这里我们主要给大家讲解了目前最优的机器翻译模型。大家对模型的细节可能还存在不少疑惑。在后面的文章里 (不一定在“自然语言处理”系列),我们会深入到 RNN 和 LSTM 的技术细节里。



DeepLearning中文论坛公众号的原创文章,欢迎转发;如需转载,请注明出处。谢谢!


长按以下二维码,轻松关注DeepLearning

登录查看更多
10

相关内容

隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。其难点是从可观察的参数中确定该过程的隐含参数。然后利用这些参数来作进一步的分析,例如模式识别。 其是在被建模的系统被认为是一个马尔可夫过程与未观测到的(隐藏的)的状态的统计马尔可夫模型。
深度学习自然语言处理概述,216页ppt,Jindřich Helcl
专知会员服务
209+阅读 · 2020年4月26日
【Google】无监督机器翻译,Unsupervised Machine Translation
专知会员服务
35+阅读 · 2020年3月3日
机器翻译深度学习最新综述
专知会员服务
96+阅读 · 2020年2月20日
机器学习入门的经验与建议
专知会员服务
89+阅读 · 2019年10月10日
ThinkNet:迄今为止最简单的语言建模网络
机器之心
3+阅读 · 2019年5月15日
基于PyTorch/TorchText的自然语言处理库
专知
27+阅读 · 2019年4月22日
自然语言处理中的语言模型预训练方法
PaperWeekly
14+阅读 · 2018年10月21日
学好机器学习,这里有你想要的一切
伯乐在线
3+阅读 · 2018年6月13日
近期有哪些值得读的QA论文?| 专题论文解读
PaperWeekly
4+阅读 · 2018年6月5日
Machine Learning:十大机器学习算法
开源中国
19+阅读 · 2018年3月1日
干货|从LSTM到Seq2Seq
全球人工智能
15+阅读 · 2018年1月9日
深度神经网络机器翻译
机器学习研究会
5+阅读 · 2017年10月16日
自然语言处理 (三) 之 word embedding
DeepLearning中文论坛
19+阅读 · 2015年8月3日
Phrase-Based & Neural Unsupervised Machine Translation
Arxiv
3+阅读 · 2018年6月1日
Arxiv
3+阅读 · 2018年3月28日
Arxiv
6+阅读 · 2018年2月26日
Arxiv
4+阅读 · 2018年1月29日
VIP会员
相关资讯
ThinkNet:迄今为止最简单的语言建模网络
机器之心
3+阅读 · 2019年5月15日
基于PyTorch/TorchText的自然语言处理库
专知
27+阅读 · 2019年4月22日
自然语言处理中的语言模型预训练方法
PaperWeekly
14+阅读 · 2018年10月21日
学好机器学习,这里有你想要的一切
伯乐在线
3+阅读 · 2018年6月13日
近期有哪些值得读的QA论文?| 专题论文解读
PaperWeekly
4+阅读 · 2018年6月5日
Machine Learning:十大机器学习算法
开源中国
19+阅读 · 2018年3月1日
干货|从LSTM到Seq2Seq
全球人工智能
15+阅读 · 2018年1月9日
深度神经网络机器翻译
机器学习研究会
5+阅读 · 2017年10月16日
自然语言处理 (三) 之 word embedding
DeepLearning中文论坛
19+阅读 · 2015年8月3日
Top
微信扫码咨询专知VIP会员