Type: concept
Confidence: 0.90
Created: 2026-04-16
Updated: 2026-04-16
Tags: 深度学习Transformer注意力机制NLPLLM能力

Self-Attention机制

概述

Self-Attention(自注意力)是 Transformer 的核心机制,让序列中每个位置根据内容动态关注其他所有位置,从而获得全局上下文表示,时间复杂度为 O(n²d)。

关键内容

基本计算过程

输入矩阵 $X \in \mathbb{R}^{n \times d}$(序列长度 n,维度 d)经三组线性变换映射为:

$$Q = XW_Q,\quad K = XW_K,\quad V = XW_V$$

其中 $Q, K, V \in \mathbb{R}^{n \times d_k}$。核心公式:

$$\text{Attention}(Q,K,V)=\text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V$$

四步流程:

  1. 计算注意力分数:$QK^T$,结果为 $n \times n$ 矩阵,表示每个位置对所有位置的相似度
  2. 缩放:除以 $\sqrt{d_k}$,防止点积值过大导致 softmax 梯度消失
  3. Softmax 归一化:对每行归一化,使权重之和为 1
  4. 加权求和:用注意力权重对 V 加权聚合,得到输出表示

直觉理解

每个 token 以自身 Q 与所有 token 的 K 比较,决定从哪些位置取多少信息,再对对应 V 加权汇总。

计算复杂度

操作 复杂度
计算 $QK^T$:$(n \times d)(d \times n)$ $O(n^2 d)$
注意力机制</td> <td>注意力权重乘 $V$:$(n \times n)(n \times d)$
总时间复杂度 $O(n^2 d)$,简写 $O(n^2)$
空间复杂度(存储注意力机制</td> <td>注意力矩阵

$O(n^2)$ 是 Transformer 处理长序列的主要瓶颈,注意力预算随序列增长而被稀释。

与 RNN/CNN 的对比

维度 RNN CNN Self-Attention
并行化 串行(时间步依赖) 并行 全并行
感受野 全局(需多步传播) 局部 天然全局
长距依赖 困难(梯度消失 困难 直接
复杂度(序列长度) $O(n)$ $O(n)$ $O(n^2)$

Self-Attention 的优势:能直接建模长距离依赖,无需按顺序传播,每个位置可直接看到全局上下文。

来源

相关