这一讲研究NLP中一个重要的领域——机器翻译Machine Translation。机器翻译顾名思义,就是将源语言中的文字转换成对应的目标语言中的文字的任务。早期的机器翻译很多是人为rule-based的,随后逐渐发展出依赖于统计信息的Statistical Machine Translation(简称SMT),之后又发展出利用神经网路使得准确度大幅改善的Neural Machine Translation(NMT),它依赖于Sequence-to-Sequence的模型架构,以及进一步将其改善的Attention机制。

SMT

SMT的核心思想是从数据中学习出概率模型。假设我们想要从法语翻译成英语,我们希望给定输入的法语句子 x ,找到对应最好的英语句子 y ,即找到 underset{y}{mathrm{argmax}}P(y|x)

利用贝叶斯法则,这相当于求 underset{y}{mathrm{argmax}}P(x|y)P(y) ,其中 P(x|y) 被称作translation model模拟单词或片语该如何翻译,主要是处理局部的片语的翻译, P(y) 被称作language model 即如何挑选这些单词或片语组成合理的目标语言中的句子。之前语言模型已总结过如何学习语言模型,而对于translation model,我们需要parallel data,即大量的成对的法语、英语句子。

SMT系统实际上要比这个复杂很多,而且需要很多feature engineering,很难维护。而NMT的出现极大的改善了这些问题。

Neural Machine Translation 与 Seq2Seq

NMT依赖于Sequence-to-Sequence的模型架构,即通过一个RNN作为encoder将输入的源语言转化为某表征空间中的向量,再通过另一个RNN作为decoder将其转化为目标语言中的句子。我们可以将decoder看做预测目标句子 y 的下一个单词的语言模型,同时其概率依赖于源句子的encoding,一个将法语翻译成英语的Seq2Seq模型如下图所示。

训练过程中,损失函数与语言模型中类似,即各步中目标单词的log probability的相反数的平均值:

上例中的损失函数如下图所示,并且我们可以看出损失函数的梯度可以一直反向传播到encoder,模型可以整体优化,所以Seq2Seq也被看做是end2end模型:

在做inference的时候,我们可以选择greedy decoding即每一步均选取概率最大的单词并将其作为下一步的decoder input。

但是greedy decoding的问题是可能当前的最大概率的单词对于翻译整个句子来讲不一定是最优的选择,但由于每次我们都做greedy的选择我们没机会选择另一条整体最优的路径。

为解决这一问题,一个常用的方法是beam search decoding,其基本思想是在decoder的每一步,我们不仅仅是取概率最大的单词,而是保存k个当前最有可能的翻译假设,其中k称作beam size,通常在5到10之间。

对于 y_1,...,y_t 的翻译,它的分数是

分数越高越好,但求和中的每一项都是负数,这会导致长的翻译分数更低,所以最后在选取整句概率最大的翻译时,要对分数做归一化

与SMT相较,NMT的优势是我们可以整体的优化模型,而不是需要分开若干个模型各自优化,并且需要feature engineering较少,且模型更灵活,准确度也更高。其缺点是更难理解也更纠错,且很难设定一些人为的规则来进行控制。

BLEU

对于机器翻译模型,我们如何来衡量它的好坏呢?一个常用的指标是BLEU(全称是Bilingual Evaluation Understudy)。BLEU基本思想是看你machine translation中n-gram在reference translation(人工翻译作为reference)中相应出现的几率。

我们用

来表示n-gram的precision score, w_n=1/2^n 作为权重,另外引入对过短的翻译的penalty eta = e^{min(0,1-frac{len_{ref}}{len_{MT}})}

BLEU score可以表示为(其中k通常选为4)

BLEU可以较好的反应翻译的准确度,当然它也不是完美的,也有许多关于如何改进机器翻译evaluation metric方面的研究。

Attention

观察Seq2Seq模型,我们会发现它有一个信息的瓶颈即我们需要将输入的所有信息都encode到encoder的最后一个hidden state上,这通常是不现实的,因此引入Attention机制来消除这一瓶颈:在decoder的每一步,通过与encoder的直接关联来决定当前翻译应关注的源语句的重点部分。详细步骤可参考之前的总结文章Attention机制详解(一)——Seq2Seq中的Attention。

参考资料

第八讲讲义web.stanford.edu/class/

补充材料web.stanford.edu/class/

第八讲视频youtu.be/XXtpJxZBa2c


推荐阅读:
相关文章