注意力机制
一句话定义:注意力让模型在处理每个位置时,动态关注其他相关位置,是 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)
评论
评论加载中…