注意力机制

一句话定义:注意力让模型在处理每个位置时,动态关注其他相关位置,是 Transformer 的核心。

1. 直觉

  • 传统序列模型(RNN)按顺序处理,长距离信息易丢失。
  • 注意力让每个位置直接"看"所有位置,按相关性加权聚合。
  • 类比:阅读时,理解当前词会回看上下文相关词。

2. Self-Attention(自注意力)

Q / K / V

  • 每个位置生成三个向量:Query(查询)Key(键)Value(值)
  • 用 Q 与所有位置的 K 做点积,得到相关性分数。
  • 分数 softmax 归一化后,对 V 加权求和,得到该位置输出。

公式

$$\text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V$$

  • $\sqrt{d_k}$ 缩放防止点积过大导致梯度消失。

3. Multi-Head Attention(多头注意力)

  • 把 Q/K/V 分成多组(多个"头"),各自做注意力再拼接。
  • 不同头可关注不同关系(语法、语义、位置等)。
  • 类比:多个视角同时分析。

4. 为什么有效

  • 长距离依赖:任意两位置直接交互,无需层层传递。
  • 并行计算:所有位置同时算,比 RNN 快。
  • 动态加权:根据内容决定关注谁,非固定。

5. 复杂度

  • 序列长度 $n$,自注意力 $O(n^2)$——长上下文成本高,催生高效注意力(FlashAttention、稀疏注意力)。

6. 学习要点

  • QKV 点积 = 相似度,softmax = 归一化权重,加权 V = 聚合信息。
  • 多头 = 多视角并行关注。
  • $O(n^2)$ 是长上下文瓶颈,FlashAttention 是工程优化。

7. 参考资料

  • "Attention is All You Need"(2017)
  • "The Illustrated Transformer"(Jay Alammar)