美文网首页aboutDL算法小白菜Deeplearning
注意力模型(Attention Model)简记

注意力模型(Attention Model)简记

作者: madeirak | 来源:发表于2019-02-01 00:43 被阅读120次

    机器翻译模型的编码器是先读取整个句子后传递到解码器中翻译,对于过长句子序列(例如超过30个词的句子)的记忆能力弱,翻译效果不理想。此时就出现了注意力模型,它是模仿人类翻译,一部分一部分地翻译,从而提高长句子的翻译能力。

    本文示例翻译法语句子:Jane visite I’Afrique en Septembre。用t^`来索引法语序列的词。

    使用双向RNN用于待翻译序列x的特征提取。下图中蓝色的a^{<t^`>}表示激活值,左右箭头表方向,分别是前向传播 和 后向传播 的激活值。

    a^{<t^`>}表示一组前向后向激活值 特征提取模型


    注意力权重

    注意力模型在生成每个翻译结果时只考虑部分提取到的特征。注意力权重参数(a set of attention weights)表示当你在时间步t处生成输出词,你应该花多少注意力在第t^`个输入词上面。例如a^{<1,1>}、a^{}、a^{}分别表示前三个单词对第一个词语的翻译结果具有的影响力。类似的a^{<2,1>}、a^{}、a^{}分别表示表示在翻译得到第二个单词时,要分别放多少注意力在前三个单词上。并且前一步翻译的输出也会作为下一步的输入。


    翻译过程

    翻译使用的是一个单向RNN,用状态S^{<i>}表示RNN的隐藏状态(the hidden state in this RNN),C^{<i>}表示上下文(context),作为状态S^{<i>}的输入。参数满足以下公式:

    1、每次考虑的所有注意力权重之和等于1       

          \sum_{t^`}a^{}<1,t^`>=1

    2、特征步激活值和注意力权重的乘积之和作翻译模型的输入,即上下文C^{<i>}                                                  C^{<i>}=\sum_{t^`}a^{}a^{}

    计算第一个翻译结果词



    计算注意力权重

    为了满足\sum_{t^`}a^{}<1,t^`>=1计算注意力权重的方法(即使用softmax)是:

    计算上式的关键是计算e^{<t,t^`>},现直到计算e^{<t,t^`>}需要上一个翻译状态的值s^{<t-1>}和特征提取模型中本状态的激活值a^{<t^`>}但不知道具体函数关系,需要通过一个小的神经网络学习对应的具体的函数关系式。

    得到第二个翻译结果词示意图,以此类推



    注意力模型的缺点

    缺点是时间花费是O(n^3),因为注意力参数部分的计算。如果有T_x个输入词,T_y个输出词,则注意力权重参数的总数就是T_x xT_y

    注意力模型

    相关文章

      网友评论

        本文标题:注意力模型(Attention Model)简记

        本文链接:https://www.haomeiwen.com/subject/nbclsqtx.html