自注意力

Self-Attention,注意力机制的一种特殊形式——序列中的每个 token 同时对所有其他 token 计算注意力权重,既是评价者也是被评价者,所有人同时参与、同时生成各自的综合印象。是 Transformer 架构的核心计算方式。

简介

自注意力(Self-Attention)是注意力机制在”序列内部”的应用:不是用一个序列去关注另一个序列(交叉注意力),而是让同一个序列中的每个 token 都对序列内所有其他 token(包括自己)计算注意力。它的核心特征是”自”——信息来源和目标都在同一个序列内部。

与传统 RNN 按时间步顺序处理不同,自注意力让所有 token 同时参与计算:每个 token 生成 Q、K、V 三个向量,然后用自己的 Q 去和所有 token 的 K 做匹配,得到注意力权重,最后按权重从所有 token 的 V 中加权提取信息。这意味着每个 token 在一次计算中就能”看到”序列中的所有其他 token,不受距离限制。

自注意力的关键意义在于:它让模型能够捕捉序列中任意两个位置之间的依赖关系——无论它们相距多远。在”小明住在北京,他昨天去了上海,因为他要参加一个会议”这句话中,自注意力能让”他”直接关注到”小明”,而不需要像 RNN 那样经过中间所有词的传递。

关键信息

  • 类型:AI 核心技术 / 计算机制
  • 领域:深度学习 / 自然语言处理
  • 核心公式Self-Attention(Q, K, V) = softmax(QKᵀ/√dk)V(Q、K、V 都来自同一序列)
  • 所在架构Transformer(核心组件)
  • 与普通注意力的区别:普通注意力的 Q 来自一个序列、K/V 来自另一个序列(交叉注意力);自注意力的 Q、K、V 都来自同一序列
  • 计算复杂度:O(n²),n 为序列长度——每个 token 都要和所有 token 做匹配

核心特性

1. 序列内部的信息交互

自注意力的核心是让序列中的 token 互相”交流”。每个 token 既提供自己的信息(K、V),也主动去获取别人的信息(Q)。这种双向信息流动让每个 token 的最终表示都融合了全局上下文。

2. 并行计算

与 RNN 必须按时间步顺序处理不同,自注意力的所有 token 可以同时计算。这是 Transformer 训练效率远高于 RNN 的根本原因——现代 GPU 的并行计算能力被充分利用。

3. 动态注意力权重

注意力权重不是固定的,而是随输入内容动态变化。在”猫坐在垫子上,因为它是软的”这句话中,当处理”它”时,自注意力会给”垫子”更高的权重(因为”软的”更可能描述垫子);如果换成”因为它是黑色的”,注意力会转向”猫”。

4. 全局视野

每个 token 在一次计算中就能”看到”序列中的所有其他 token,不受距离限制。这解决了 RNN 的长距离依赖问题——即使两个相关词相隔 100 个 token,自注意力也能直接建立连接。

5. O(n²) 复杂度

序列长度为 n 时,自注意力需要计算 n×n 个注意力分数。这是 Transformer 处理长序列的主要瓶颈——序列越长,计算量和显存占用呈平方增长。各种高效注意力变体(如 Flash Attention、稀疏注意力、线性注意力)都在试图降低这个复杂度。

不同素材中的观点

  • 2026-06-22-transformer-attention-dating-analogy:作者用相亲节目的类比解释自注意力——不是”自己看自己”这种字面翻译,而是”每个人既是评价者,也是被评价者,所有人同时参与”。现场 20 个嘉宾,每个人都在同时做同样的事:拿自己的标准(Q)对照所有人的自我介绍(K),打分,按分数深浅了解每个人(V),最后形成自己的综合印象。你在打量别人的时候,别人也在打量你。20 个人同时做,20 份综合印象同时生成。把嘉宾换成 token,就是自注意力的完整过程。

实用信息

理解路径

  1. 直觉层:想象一场所有人都在同时互相打量的社交场景——每个人都在看别人,同时也在被别人看
  2. 对比层:对比 RNN 的”接力传递”和自注意力的”直接连接”——RNN 是排队传话,自注意力是圆桌会议
  3. 公式层:理解 Q、K、V 都来自同一序列这个关键区别
  4. 可视化层:用注意力热力图看到每个 token”在关注谁”

常见误区

  • “自注意力就是自己看自己”:这是字面翻译。“自”指的是”序列内部”,不是”自己对自己”——每个 token 关注的是序列中所有其他 token
  • “自注意力能记住所有信息”:自注意力只在当前层做一次加权聚合,信息会被后续层的变换覆盖,不是”记忆”
  • “自注意力 = Transformer”:自注意力是 Transformer 的核心组件,但 Transformer 还包含前馈网络、残差连接、层归一化等其他组件

相关页面