美文网首页
Attention Mechanism

Attention Mechanism

作者: 哒丑鬼 | 来源:发表于2018-11-22 23:11 被阅读0次

    Attention

    ( K , V ) = \left[ \left( \mathbf { k } _ { 1 } , \mathbf { v } _ { 1 } \right) , \cdots , \left( \mathbf { k } _ { N } , \mathbf { v } _ { N } \right) \right]表示N个输入信息,给定任务相关的查询向量\mathbf q时,注意力函数为:
    \begin{aligned} \operatorname { att } ( ( K , V ) , \mathbf { q } ) & = \sum _ { i = 1 } ^ { N } \alpha _ { i } \mathbf { v } _ { i } \\ & = \sum _ { i = 1 } ^ { N } \frac { \exp \left( s \left( \mathbf { k } _ { i } , \mathbf { q } \right) \right) } { \sum _ { j } \exp \left( s \left( \mathbf { k } _ { j } , \mathbf { q } \right) \right) } \mathbf { v } _ { i } \end{aligned}
    其中s \left( \mathbf { k } _ { j } , \mathbf { q } \right)为score function,表示\mathbf {k} _ {j}在查询向量\mathbf q的注意力大小。

    在绝大多数场景中,K=V

    下表总结了常用的score function的计算方法

    Name score function Citation
    Additive/Concat s \left( \mathbf { k } _ { j } , \mathbf { q } \right) = v ^ { \top } \tanh \left( \mathbf { W }\mathbf { q } + \mathbf { U } \mathbf { k } _ { j } \right) Bahdanau at al.,2015
    Location s \left( \mathbf { k } _ { j } , \mathbf { q } \right)= \mathbf { W } \mathbf { q } Luong at al.,2015
    General s \left( \mathbf { k } _ { j } , \mathbf { q } \right)= \mathbf { q } ^ { \top } \mathbf { W }\mathbf { k } _ { j } Luong at al.,2015
    Dot Product s \left( \mathbf { k } _ { j } , \mathbf { q } \right)= \mathbf { q } ^ { \top } \mathbf { k } _ { j } Luong at al.,2015
    Scaled Dot-Product s \left( \mathbf { k } _ { j } , \mathbf { q } \right)= \frac { \mathbf { q } ^ { \top }\mathbf { k } _ { j } } { \sqrt { n } } Vaswani at al.,2017

    Self-Attention

    假设输入序列为X = \left[ \mathbf { x } _ { 1 } , \cdots , \mathbf { x } _ { N } \right] \in \mathbb { R } ^ { d _ { 1 } \times N },输出序列为H = \left[ \mathbf { h } _ { 1 } , \cdots , \mathbf { h } _ { N } \right] \in \mathbb { R } ^ { d _ { 2 } \times N },首先我们可以通过线性变换得到三组向量序列:
    \begin{array} { l } { Q = W _ { Q } X \in \mathbb { R } ^ { d _ { 3 } \times N } } \\ { K = W _ { K } X \in \mathbb { R } ^ { d _ { 3 } \times N } } \\ { V = W _ { V } X \in \mathbb { R } ^ { d _ { 2 } \times N } } \end{array}
    其中Q, K, V分别为查询向量序列,键向量序列和值向量序列,W_Q, W_K, W_V分别为可学习的参数矩阵。
    输出向量\mathbf { h } _ { i }可通过以下方法计算得到:
    \begin{aligned} \mathbf { h } _ { i } & = \operatorname { att } \left( ( K , V ) , \mathbf { q } _ { i } \right) \\ & = \sum _ { j = 1 } ^ { N } \alpha _ { i j } \mathbf { v } _ { j } \\ & = \sum _ { j = 1 } ^ { N } \operatorname { softmax } \left( s \left( \mathbf { k } _ { j } , \mathbf { q } _ { i } \right) \right) \mathbf { v } _ { j } \end{aligned}
    其中i , j \in [ 1 , N ]为输出和输入向量序列的位置,连接权重\alpha_{ij} 由注意力机制动态生成。由于自注意力模型的权重是动态生成的,因此可以处理变长的信息序列。

    自注意力模型计算的权重\alpha_{ij}只依赖\mathbf{q} _ {i}\mathbf {k} _ j的相关性,而忽略了输入信息的位置信息。因此在单独使用时,自注意力模型一般需要加入位置编码信息来进行修正Vaswani at al., 2017

    最新研究

    相关文章

      网友评论

          本文标题:Attention Mechanism

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