这一讲研究NLP中一个重要的领域——机器翻译Machine Translation。机器翻译顾名思义,就是将源语言中的文字转换成对应的目标语言中的文字的任务。早期的机器翻译很多是人为rule-based的,随后逐渐发展出依赖于统计信息的Statistical Machine Translation(简称SMT),之后又发展出利用神经网路使得准确度大幅改善的Neural Machine Translation(NMT),它依赖于Sequence-to-Sequence的模型架构,以及进一步将其改善的Attention机制。
SMT
SMT的核心思想是从数据中学习出概率模型。假设我们想要从法语翻译成英语,我们希望给定输入的法语句子 ,找到对应最好的英语句子 ,即找到
利用贝叶斯法则,这相当于求 ,其中 被称作translation model模拟单词或片语该如何翻译,主要是处理局部的片语的翻译, 被称作language model 即如何挑选这些单词或片语组成合理的目标语言中的句子。之前语言模型已总结过如何学习语言模型,而对于translation model,我们需要parallel data,即大量的成对的法语、英语句子。
SMT系统实际上要比这个复杂很多,而且需要很多feature engineering,很难维护。而NMT的出现极大的改善了这些问题。
Neural Machine Translation 与 Seq2Seq
NMT依赖于Sequence-to-Sequence的模型架构,即通过一个RNN作为encoder将输入的源语言转化为某表征空间中的向量,再通过另一个RNN作为decoder将其转化为目标语言中的句子。我们可以将decoder看做预测目标句子 的下一个单词的语言模型,同时其概率依赖于源句子的encoding,一个将法语翻译成英语的Seq2Seq模型如下图所示。