标准回答
瓶颈来源
标准自注意力计算 softmax(QKᵀ)V。先算 QKᵀ 会得到一个 n×n 的注意力矩阵,复杂度和显存都是 O(n²),序列一长就成为瓶颈。
核函数近似
softmax 本质是衡量 query 与 key 的相似度。线性注意力用一个特征映射 φ(核函数,如 elu+1)把相似度近似为 φ(Q) 与 φ(K) 的内积,即去掉了 softmax 中不可分解的指数归一化。
结合律重排
去掉 softmax 后,输出 ≈ φ(Q)·(φ(K)ᵀV)。利用矩阵乘法结合律,先计算 φ(K)ᵀV 得到一个 d×d 的小矩阵,再左乘 φ(Q),整体复杂度变为 O(n·d²),对序列长度 n 是线性的,也无需存储 n×n 矩阵。
代价与定位
牺牲了 softmax 的精确归一化和尖锐注意力分布,表达力与精度有损,在需要精确长程检索的任务上往往不及标准注意力;常与门控、衰减等机制结合(如 RetNet、GLA)改善。详见 线性注意力架构演进。
常见误区
⚠️ 常见踩坑
线性是「对序列长度 n 线性」,不是「整体免算力」;d²/d 项仍在。另外它是近似 softmax 而非等价,精度通常有损,不要宣称无损替代。
追问
追问 1:线性注意力在自回归生成时还能保持 O(1) 每步吗?
追问 2:它和 Flash Attention 解决的是同一个问题吗?
不是。Flash Attention 仍是精确 softmax 注意力,O(n²) 计算不变,只是通过分块和不落地 n×n 矩阵来省显存、提访存效率;线性注意力是改变算法本身、近似 softmax 把计算复杂度降到线性,二者一个治标存内访存、一个改变复杂度量级。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。