自注意力模型

自注意力模型(Self-Attention Mechanism)是注意力机制的核心变体,它允许序列中的每个位置关注该序列中的所有其他位置,从而捕获长距离的上下文依赖关系。

核心思想

传统注意力机制通常在编码器与解码器之间计算注意力权重,而自注意力则将这种计算限制在单一序列内部。对于输入序列中的每一个 token,自注意力会计算它与序列中所有 token 的相关性,并据此生成一个上下文感知的新表示。

QKV 计算范式

自注意力模型引入了 查询(Query)、键(Key)、值(Value) 的三元组计算范式:

  1. 线性投影:输入序列 通过三个可学习的权重矩阵 分别投影到查询 、键 、值 空间。
  2. 注意力分数计算:对于每个查询 ,计算其与所有键 的点积相似度,得到注意力分数矩阵。
  3. 缩放与归一化:将注意力分数除以 (键向量的维度)以防止梯度消失,再通过 Softmax 函数归一化为概率分布。
  4. 加权求和:将归一化后的注意力权重与对应的值 进行加权求和,得到每个位置的输出表示。

数学表达

自注意力的计算可以统一表示为:

其中

计算过程可视化

下图展示了从输入 token 到输出的完整自注意力计算流程:

在这个过程中,相当于通过学习得到 QKV 的矩阵参数后,对输入的 token 进行计算得到 QKV,并通过公式计算,得到一个变换矩阵,通过这个矩阵,可以对当前的 token 输入变换得到其得到带上上下文的新表示。

优势与局限

优势

  • 能够捕获任意距离的依赖关系,不受序列长度的限制(与 RNN 相比)
  • 计算可以高度并行化,训练效率高
  • 每个位置的输出都直接融合了全局信息

局限

  • 计算复杂度为 ,当序列长度 很大时计算开销显著
  • 纯粹的注意力机制不具备序列顺序感知能力,需要额外引入位置编码
  • 对低层特征的局部模式捕获能力较弱

自注意力模型是 Transformer 架构的基础构建块,后续的多头注意力、编码器和解码器均在此基础上演化而来。

链接到