Ch09 Transformer修订于 二〇二六年七月六日

注意力机制 (Attention Mechanism)

一句话理解

让模型”关注”输入中最重要的部分——不是所有输入都同等重要,注意力机制让模型学会给不同位置分配不同的权重。

零基础理解

想象你在阅读一段文字:“猫是一种哺乳动物,它喜欢吃鱼,它的毛很柔软。” 当被问到”猫喜欢吃什么?“时,你不会逐字逐句地读,而是会重点看”猫”和”吃”和”鱼”这几个关键词。注意力机制做的就是类似的事情——给重要的词分配更多”注意力”,给不重要的词分配更少。

核心概念

Query, Key, Value (QKV)

注意力机制的核心思想源于信息检索:给定一个查询(Query),在一组键值对(Key-Value)中找出与查询最相关的信息。

概念角色类比(数据库检索)来源
Query (Q)当前要查询的信息搜索关键词当前token的表示
Key (K)用于匹配的索引文档标题/摘要所有token的表示
Value (V)实际输出的内容文档正文所有token的表示

计算流程:

  1. 计算Query与每个Key的相似度(点积),得到注意力分数(Attention Scores)
  2. 对分数进行缩放(除以 ),防止点积过大导致softmax梯度消失
  3. 通过Softmax将分数归一化为概率分布(注意力权重)
  4. 用注意力权重对Value加权求和,得到最终输出

缩放点积注意力 (Scaled Dot-Product Attention)

为什么需要缩放因子 : 当 较大时,点积的方差会增大,导致softmax输出过于尖锐(接近one-hot),梯度几乎为零。除以 将方差控制为1,保持梯度稳定。

注意力权重

注意力权重是一个概率分布,表示每个位置对当前位置的”重要程度”。

特性说明
范围[0, 1],由Softmax保证
总和每个Query的权重之和为1
可解释性可视化注意力权重可以理解模型在”看”哪里
稀疏性实际训练中,注意力往往集中在少数位置

注意力类型

自注意力 (Self-Attention)

同一个序列既做Query又做Key和Value,让序列中的每个位置都能关注到序列中的所有位置(包括自己)。Transformer的核心组件。

特点: 捕捉序列内部的长距离依赖,不受距离限制。

交叉注意力 (Cross-Attention)

Query来自一个序列,Key和Value来自另一个序列。典型应用: Transformer解码器中的编码器-解码器注意力,解码器(Query)关注编码器输出(Key, Value)。

多头注意力 (Multi-Head Attention)

将Q、K、V分别投影到多个低维子空间,在每个子空间中独立计算注意力,最后拼接结果。

为什么需要多头: 不同头可以关注不同的表示子空间,例如一个头关注语法关系,另一个头关注语义关系。

注意力类型对比

类型Q来源K来源V来源典型应用计算复杂度
自注意力自身自身自身Transformer编码器
交叉注意力解码器编码器编码器Transformer解码器
多头注意力任意任意任意所有Transformer
因果注意力自身自身(掩码)自身GPT自回归生成
稀疏注意力自身自身(局部)自身Longformer/BigBird

从Bahdanau到Transformer的演化

年份模型创新局限
2014Bahdanau Attention首次将注意力引入Seq2Seq,对齐源语言和目标语言依赖RNN编码器,无法并行
2015Luong Attention提出多种注意力打分函数(dot/general/concat)仍依赖RNN
2017Transformer完全抛弃RNN,仅用自注意力,实现并行训练长序列计算复杂度高
2020+高效注意力线性注意力,稀疏注意力,FlashAttention性能和效率的权衡

为什么注意力是深度学习最重要的机制之一

  1. 长距离依赖: 信息传递路径长度为O(1),无论两个token距离多远,注意力都能直接连接
  2. 并行计算: 不依赖序列顺序,可在GPU上高效并行
  3. 可解释性: 注意力权重可视化提供了模型决策的直观理解
  4. 通用性: 从NLP扩展到CV(ViT)、语音、多模态等多个领域

2026年趋势

方向代表工作核心思想
线性注意力Mamba/Mamba2将注意力复杂度从降到
稀疏注意力Longformer局部窗口+全局token
KV缓存优化vLLM/FlashAttentionIO感知的注意力计算
混合架构Jamba/Griffin注意力+状态空间模型

相关笔记

来源

关联28

知识图谱

局部图谱 · 点节点跳转