自注意力
自注意力是深度学习中一种让序列内各个位置相互比较、彼此赋权并重新组合信息的神经网络机制,也称内部注意力。它把每个元素分别投影成查询、键、值三个向量,用查询与键的相似度决定该元素从其他位置取用多少信息,因此同一层内任意两个位置都能直接建立关联。2017 年提出的 Transformer 架构完全以自注意力为核心,取代循环与卷积,成为机器翻译、语言模型等任务的基础结构。
定义
自注意力是一种作用于单个序列内部的操作:输入序列中的每个元素各自生成一个输出表示,而该表示由序列中所有元素的信息按权重加权得到,权重反映元素之间的相关程度。与处理两个不同序列之间关系的交叉注意力不同,自注意力的查询、键、值全部来自同一段输入。
在工程实现中,自注意力通常被写成一个网络层,即自注意力块。它的输入是每个序列元素对应的一个向量,输出是同一序列的新向量表示;输出可以直接作为该层结果,也可以再经过前馈层、残差连接和归一化处理。有些实现会给注意力加上因果掩码,使某一位置只能读取它之前的位置,而看不到后续内容。[1]
原理
计算的第一步是投影。对输入序列中的每个向量 $x_i$,分别用三个可学习的权重矩阵做线性变换,得到查询向量 $q_i = x_i W_Q$、键向量 $k_i = x_i W_K$ 和值向量 $v_i = x_i W_V$。三个角色分开,使模型在匹配相关性与传递内容时可以各自学习不同的表示,比单一向量承担全部功能更灵活。[2]
第二步是打分与归一化。位置 $i$ 的查询与位置 $j$ 的键做点积,得到两者的匹配分数;为避免维度增大后点积数值过大,分数要除以键向量维度的平方根,再经 softmax 变成和为 1 的权重。第三步是加权求和,用这些权重对全部值向量求和,得到位置 $i$ 的输出 $z_i$。整个过程可以写成 $\mathrm{softmax}(QK^{\top}/\sqrt{d_k})V$,用矩阵一次算出所有位置的结果。[1]
实际模型很少只用一组注意力。多头注意力并行运行多组查询、键、值投影,每组使用不同的投影矩阵,各自得到一份输出,再拼接起来并做一次线性变换。这样不同的头可以关注不同类型的关系,在总维度不变的前提下增加模型容量,而计算开销与单头全维度注意力相当。[3]
标准自注意力对输入顺序不敏感:打乱输入元素的次序,输出只是跟着一起打乱,模型本身无从判断谁在前谁在后。因此 Transformer 在输入端叠加位置编码,把位置信息注入向量,使自注意力能够区分序列顺序。位置编码可以是固定的函数形式,也可以是训练中学习的参数。[4]
发展历程
注意力机制早期主要用于编码器—解码器结构,作为连接两端的辅助手段。2017 年,阿希什·瓦斯瓦尼等 8 位作者在论文《注意力就是你所需要的一切》(Attention Is All You Need) 中提出 Transformer,完全依靠注意力构建网络,不再使用循环和卷积。该模型在英德翻译上取得 27.5 的 BLEU 分数,在英法翻译上达到 41.1,单模型即超过此前的集成结果,且训练并行度更高、耗时更短;论文给出的模型约有 1.65 亿个参数。[5]
2018 年,肖、乌斯科雷特与瓦斯瓦尼发表关于相对位置表示的自注意力工作,把元素之间的相对距离纳入注意力计算,弥补绝对位置编码的不足。[6] 同年,BERT 与 GPT 相继出现,两者分别以 Transformer 的双向编码器和单向解码器为基础,通过大规模预训练加下游微调的范式,在多项自然语言处理任务上刷新结果。[7]
此后自注意力被移用到文本之外。视觉研究中出现只由自注意力构成的图像模型与局部自注意力的视觉骨干网络,把图像切成小块后按序列处理。[6] 在医学影像方向,也有工作用堆叠自注意力模块从少量扩散加权测量中估计扩散张量。[4]
应用
自然语言处理是自注意力最主要的应用领域。以它为基本单元的 Transformer 被用于机器翻译、语言建模和序列处理任务,并能把大规模预训练获得的知识迁移到标注数据较少的任务上。[8] BERT 借助多层自注意力与前馈网络捕捉上下文,通过遮蔽语言模型和下一句预测两个任务预训练;GPT 系列则采用单向解码器结构做自回归生成,参数规模逐代扩大。[9]
计算机视觉中,自注意力被用于图像分类、目标检测、实例分割和图像超分辨率等任务,也被作为模块插入残差网络以增强特征表示。[10] 推荐系统里,它被用来对用户的历史行为序列建模,捕捉序列内部的依赖关系。[11] 此外,有研究把预训练 Transformer 最深注意力层中的表示用于估计输入符号之间的条件独立关系,从而在无需额外训练的情况下做因果结构发现。[12]
局限
最常被提及的限制是计算与存储开销随序列长度呈平方增长。序列长度为 $n$ 时,注意力矩阵的大小是 $n \times n$,计算 $QK^{\top}$ 和后续加权求和的复杂度都是 $O(n^2)$;多头注意力的总复杂度为 $O(n^2 d_{\mathrm{model}} + n d_{\mathrm{model}}^2)$,仍带平方项。[8][3] 序列很长时这一项占主导,实践中只能把上下文窗口限制在可承受的范围内,从而削弱了对远距离依赖的建模能力。[8]
围绕平方复杂度,研究者提出多类改进路径:稀疏注意力、低秩近似、基于 Nyström 方法的线性近似,以及把近场带状矩阵与远场低秩矩阵结合的分解方案。Nyströmformer 以 $O(n)$ 复杂度逼近标准自注意力,可处理上千个词元的序列;不过部分高效 Transformer 在换取效率的同时会带来精度下降。[13][8]
另一类局限与机制本身的性质有关。自注意力对排列不敏感,必须额外引入位置编码才能感知顺序,这使顺序信息依赖附加设计而非结构固有。[4] 它还对序列中所有位置两两建模,注意力模式存在冗余,序列越长冗余越明显;此外,关于该机制为何能提升模型性能,目前多数解释仍建立在直觉与经验之上,缺少直接的建模分析。[14][10]
参见
参考资料
- US12086713B2 [引用日期2026-10-29]
- 2025-2026-Deep-Learning-Gallinari-MasterProbaFinance(PDF) [引用日期2026-10-29]
- arxiv.org 上的网页 [引用日期2026-10-29]
- arxiv.org 上的网页 [引用日期2026-10-29]
- Attention is all you need - Veja o artigo [引用日期2026-10-29]
- Ashish Vaswani [引用日期2026-10-29]
- BERT 与 GPT 模型如何重塑 NLP 格局| IBM [引用日期2026-10-29]
- xml [引用日期2026-10-29]
- 预训练语言模型:从BERT到GPT,NLP的新纪元 [引用日期2026-10-29]
- ieee.org 上的网页 [引用日期2026-10-29]
- citations [引用日期2026-10-29]
- citations [引用日期2026-10-29]
- aaai.org 上的网页 [引用日期2026-10-29]
- CN113761934A(PDF) [引用日期2026-10-29]