全局注意力


  1. 定义
  2. Global attention(全局注意力)是一种注意力机制,在序列到序列(seq - to - seq)模型中应用广泛。它允许解码器在生成输出序列的每一个位置时,都能够关注到整个输入序列的所有位置的信息,从而能够充分利用输入序列的全局语义。

  3. 与局部注意力的对比

  4. 局部注意力(Local Attention)
    • 局部注意力机制限制了解码器能够关注的输入序列范围,通常是输入序列中的一个局部窗口。例如,在处理文本时,局部注意力可能只允许解码器关注输入句子中某个单词周围的几个单词。这种机制计算量相对较小,但可能会错过输入序列中其他位置的重要信息。
  5. 全局注意力优势

    • 全局注意力没有这种限制,能够在生成输出序列的任何一个位置时,综合考虑输入序列从开头到结尾的所有信息。以机器翻译任务为例,当翻译目标语言句子中的一个单词时,全局注意力可以让解码器查看源语言句子中的所有单词,从而更好地理解源语言句子的完整语义,生成更准确的翻译。
  6. 计算过程

  7. 输入表示
    • 假设我们有一个编码器 - 解码器架构。编码器输出一个序列$X = {x_1, x_2, \cdots, x_n}$,这个序列包含了输入信息的编码表示。解码器在生成输出序列$Y = {y_1, y_2, \cdots, y_m}$的过程中使用全局注意力。
  8. 计算注意力权重(Query - Key步骤)
    • 对于解码器中的每一个位置$i$(对应生成$y_i$),计算一个查询向量(Query)$q_i$。这个查询向量通常是由解码器当前的隐藏状态等信息生成。然后计算$q_i$与输入序列$X$中的每个元素(键向量,Key)$x_j$的相似度得分。常见的计算方式是点积,即$e_{ij}=q_i^T x_j$,也可以使用其他更复杂的相似度计算方法,如加性注意力($e_{ij}=v^T \tanh (W_q q_i + W_k x_j)$,其中$v$、$W_q$和$W_k$是可学习的参数)。
  9. 计算注意力权重(Softmax步骤)
    • 对相似度得分进行归一化处理,得到注意力权重。通过$a_{ij}=\frac{\exp(e_{ij})}{\sum_{k = 1}^{n}\exp(e_{ik})}$,这里$a_{ij}$表示在生成$y_i$时,$y_i$对$x_j$的注意力权重。
  10. 加权求和(Value步骤)

    • 根据注意力权重,对$X$中的值向量(Value)进行加权求和,得到$y_i$经过全局注意力后的输出$z_i=\sum_{j = 1}^{n}a_{ij}x_j$。这个输出可以作为解码器生成$y_i$的重要参考信息,与解码器本身的其他信息(如之前的隐藏状态等)相结合,用于生成$y_i$。
  11. 应用场景

  12. 自然语言处理
    • 机器翻译:在翻译句子时,全局注意力能够帮助解码器全面考虑源语言句子的语义。例如,对于源语言句子中有指代关系或者复杂语义结构的句子,全局注意力可以让解码器准确地找到指代对象或者理解语义关系,从而生成更准确的翻译。例如,对于句子“The book which I bought yesterday is very interesting.(我昨天买的那本书很有趣)”,全局注意力可以帮助解码器在翻译时正确处理从句和主句之间的关系。
    • 文本生成:在生成文本(如故事生成、诗歌生成等)任务中,全局注意力可以让生成器利用整个输入文本的信息。如果输入是一个故事梗概,全局注意力可以使生成的故事在情节、风格等方面更好地符合梗概的要求,并且能够利用梗概中的所有细节信息,而不是只关注局部内容。
  13. 计算机视觉与跨模态任务
    • 在图像字幕(Image Captioning)任务中,图像经过卷积神经网络(CNN)等处理后得到一个特征序列(可以看作是输入序列),文本生成部分(解码器)可以使用全局注意力来关注图像的所有特征。这样在生成图像字幕时,能够全面考虑图像的内容,包括物体的位置、形状、颜色等各种信息,生成更准确、更详细的字幕。