机器翻译模型的编码器是先读取整个句子后传递到解码器中翻译,对于过长句子序列(例如超过30个词的句子)的记忆能力弱,翻译效果不理想。此时就出现了注意力模型,它是模仿人类翻译,一部分一部分地翻译,从而提高长句子的翻译能力。
表示一组前向后向激活值 特征提取模型本文示例翻译法语句子:Jane visite I’Afrique en Septembre。用来索引法语序列的词。
使用双向RNN用于待翻译序列的特征提取。下图中蓝色的表示激活值,左右箭头表方向,分别是前向传播 和 后向传播 的激活值。
注意力权重
注意力模型在生成每个翻译结果时只考虑部分提取到的特征。注意力权重参数(a set of attention weights)表示当你在时间步处生成输出词,你应该花多少注意力在第个输入词上面。例如分别表示前三个单词对第一个词语的翻译结果具有的影响力。类似的分别表示表示在翻译得到第二个单词时,要分别放多少注意力在前三个单词上。并且前一步翻译的输出也会作为下一步的输入。
翻译过程
计算第一个翻译结果词翻译使用的是一个单向RNN,用状态表示RNN的隐藏状态(the hidden state in this RNN),表示上下文(context),作为状态的输入。参数满足以下公式:
1、每次考虑的所有注意力权重之和等于1
2、特征步激活值和注意力权重的乘积之和作翻译模型的输入,即上下文
计算注意力权重
为了满足,计算注意力权重的方法(即使用softmax)是:
计算上式的关键是计算,现直到计算需要上一个翻译状态的值和特征提取模型中本状态的激活值但不知道具体函数关系,需要通过一个小的神经网络学习对应的具体的函数关系式。
得到第二个翻译结果词示意图,以此类推注意力模型的缺点
缺点是时间花费是,因为注意力参数部分的计算。如果有个输入词,个输出词,则注意力权重参数的总数就是x。
注意力模型
网友评论