自注意力机制(Self-Attention),有时也称为内部注意力机制,是Transformer架构的核心。它是一种允许输入序列中的每个位置都能够考虑到序列中所有其他位置的机制,这样能够在每个位置捕获全局的上下文信息。自注意力机制使得模型特别适合处理具有长距离依赖关系的数据,如文本。
工作原理
自注意力机制通过以下三个步骤计算输入序列的表示:
-
计算Query、Key和Value:
对于给定的输入序列(例如,一句话中的单词),模型首先将每个输入元素(例如,每个单词的嵌入表示)转换成三个不同的向量:Query(查询向量)、Key(键向量)和Value(值向量)。这些向量是通过将输入向量与三个不同的权重矩阵(对于每层自注意力,这些权重矩阵是学习得到的参数)相乘得到的。
-
计算注意力分数:
接下来,模型计算每个Query与所有Key之间的点积,以衡量它们之间的相似度。然后,它将这些点积的结果除以一个缩放因子(通常是Key向量维度的平方根),并应用softmax函数来获得最终的注意力权重。这一步的结果是一个注意力分数矩阵,表示输入序列中每个元素对其他所有元素的关注程度。
-
加权和并输出:
最后,模型将上一步得到的注意力权重应用于Value向量,计算加权和。这样,对于输入序列中的每个位置,模型都生成