注意力机制(Attention)的本质


一句话总结

注意力机制通过计算Query与所有Key的相似度来动态分配权重,从Value中提取相关信息,本质是一种软寻址(soft addressing)机制。

核心概念

Attention的核心公式:Attention(Q,K,V)=softmax(QK^T/√d_k)V。过程分三步:(1)用Q和K计算相似度得分(点积);(2)通过softmax归一化为权重分布;(3)用权重对V加权求和。√d_k是缩放因子,防止点积值过大导致softmax梯度消失。直觉上,Q是’我在找什么’,K是’我有什么’,V是’我能提供什么’。Attention允许每个位置直接关注序列中任意其他位置,突破了RNN的顺序依赖限制。

为什么重要

Attention解决了两个关键问题:(1)长距离依赖——RNN中距离越远的信息越难传递,Attention直接建立任意两个位置的连接;(2)并行计算——RNN必须顺序处理,Attention的矩阵运算可以高度并行化。这两点奠定了Transformer超越RNN的基础。

实践要点

注意力权重矩阵可以可视化来分析模型关注了哪些Token;标准Attention的计算复杂度为O(n²),n为序列长度,这是长文本处理的瓶颈;Flash Attention等优化方案通过IO优化大幅提升效率而不改变数学结果。

常见误区

误区一:Attention就是Transformer——Attention只是Transformer的核心组件之一,还需要FFN、LayerNorm等。误区二:Attention权重直接等于可解释性——高注意力权重不一定意味着因果关系,不能过度解读。误区三:所有位置的注意力权重之和不为1——经过softmax后,每个Query对所有Key的权重之和恰好为1。