0%

cs224n-6.机器翻译

早期机器翻译

采用 单词对应词典的形式,存储在磁带上,翻译时通过查字典的形式,找到对应词组合成句子。

基于统计的机器翻译(Statistical Machine Translation SMT)

从概率的角度解决机器翻译问题, 首先语料中学习概率模型(不同语言单词之间的概率和语言内的语言模型),通过建立的概率模型实现翻译功能。

基于神经网络的机器翻译(Nerual Machine Translation)2014

采用了一种叫做seq2seq(sequence to sequence)的模型,使用两个RNN单元(可以是任意类型的RNN)实现机器翻译问题

  1. Eecoder RNN:输入源语言句子,对该句子进行编码
  2. Decoder RNN:输入编码器生成的编码(隐藏状态)和开始符,不断地生成预测单词,最后组合成为翻译句子

几个主要的seq2seq类型任务

  1. 总结摘要(原文章 到 摘要/总结)
  2. 对话 (前一句话 到 后一句话)
  3. 代码生成等

seq2seq模型是一种条件语言模型

  1. seq2seq的作用仍然是给定上文推断出下一个词语,所以是语言模型
  2. 条件体现在这种推断是基于源语言段落输入(在源语言的条件下)

seq2seq相较于SMT更加优越是在于

  1. seq2seq模型直接模拟 目标语言在源语言条件下的语言模型

  2. SMT 将这种模拟拆成两个子问题,源语言到目标语言的概率 和 目标语言的语言模型

如何训练seq2seq模型

输入 平行语料(源语言-目标语言的句子对),分别作为Encoder和Decoder的输入,Decoder每个时间步的预测输出与目标结果单独计算loss函数,最后以所有时间步的平均loss作为优化目标loss,反向传播实现训练。

  • 与预测不同,Decoder的每个时间步的输出不再作为下一个时间步的输入,输入来自于源语言对应的目标语言(类似于监督学习)。

解码器的解码策略

贪婪解码(greedy decoding)

每个时间步选择预测概率最大的词作为预测结果,但是存在无法回退的问题

束搜索解码(beam search decoding)

由于穷举搜索的成本过高,贪婪解码又可能错过最优解,采用一种折中的思路,每次选取预测概率最大的k个词作为备选词,进入下一次预测,下一次同样选取概率最大的k个序列,其中k为束搜索的宽度。

如何结束搜索?
  1. 限定束搜索的最大时间步数
  2. 限定生成完整翻译句子的数字(最后一个时间步输出\标签)
解决束搜索倾向问题

由于score函数的计算方式,预测的翻译序列越长,其得分越高,导致束搜索更加倾向于短的翻译结果,通过对score归一化解决

NMT的优势

如何评价机器翻译效果

BLUE(Bilingual Evaluation Understudy)

将机器翻译结果语句(candidate)与一系列人类翻译的参考语句(references)相比较,比较相似度:

  1. 依赖n-gram语法(以长度为n的子句子作为衡量的单元),计算 candidate中 n-gram在references中出现的个数 比上references中所有n-gram出现的次数。
  2. 并给倾向于生成过短翻译的系统以惩罚

基本计算公式如下

通过召回率和惩罚因子,解决了重复出现和翻译较短给分较高的问题

机器翻译目前问题

  1. 遇到语料库之外的词语,翻译效果较差
  2. 如果训练材料较为局限,训练出来的模型也不具备普适性(Domain mismatch)
  3. 无法解决长文本、书籍等的翻译问题(聚焦于句子,没有对全文信息的参考)
  4. 翻译好的 训练数据较少

Attention机制

编码器最后将整个句子的信息编码进入一个输出向量中,该向量可能无法包含所有的句子信息,导致解码器在信息缺失的情况下进行生成翻译短文(information bottleneck),注意力机制提供了一种解决这种问题的方法。

在Decoder的每个时间步,不再直接使用隐藏状态作为预测输出层的输入,而是需要计算注意力输出

  1. 当前时间步与编码器的每个时间隐藏状态输出点乘获得一个多个注意力分数,组成向量

  2. 输入注意力分数向量到softmax计算概率分布

  3. 对Encoder的每个时间步的隐藏状态进行概率分布加权平均(”注意力“ 就是 对哪个实践步隐藏状态的概率值大小,越大说明我对对应词语注意力越集中)

  4. 将注意力输出与当前隐藏状态拼接,作为当前时间步输出层的输入,获得预测词语

Attention机制的优势

  1. 显著提升了NMT系统的效果
  2. 解决了编码器存在的信息瓶颈问题
  3. 有助于解决梯度消失问题
  4. 提供了一定的可解释性(注意力分数)