注意力机制与常见变种-概述
1️⃣ 注意力机制本质
经典的注意力机制:
Attention(Q,K,V)=softmax(QKTdk)V \text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=softmax(dkQKT)V
- Q:查询(想问什么问题)
- K:键(候选答案的标识)
- V:值(候选答案的内容)
本质:用 Q 对 K 做匹配,给 V 加权。
2️⃣ 为什么会出现很多新方法?
(1) 不同模态的数据
-
时间序列、文本、图像、音频等都有不同特点
-
QKV 的设计会针对模态优化:
- CrossModalAttention:Q = 时间序列,K/V = 文本
- MHA (Multi-head):多头 QKV,提高表达能力
- FEDformer / Autoformer:使用 频域注意力 或 自相关替代注意力,降低复杂度 O(L² → O(L log L) 或 O(L))
(2) 长序列问题
-
传统 QK^T 计算量 O(L²),长序列时很慢
-
解决方法:
- Sparse Attention(稀疏注意力,只计算局部或者特定模式)
- Fourier / Wavelet Attention(先变换到频域,捕捉周期模式)
- Linear Attention(将点积拆解成线性复杂度)
(3) 不同输出需求
-
序列级别 vs 全局向量
- CrossModalAttention:点乘后求和 → 全局聚合
- Transformer:输出每个时间步 → 可以保留序列信息
-
任务差异:分类、预测、生成 → 决定注意力结构
(4) 实践中的优化
- LayerNorm / Residual / Dropout
- 可学习投影 / 可学习掩码 / 参数共享
- 这些都不是改变“QKV原理”,只是让注意力更稳定、有效、可训练
3️⃣ 总结
本质没变:注意力还是 QKV + 加权求和。
不同方法只是**:
- 改变 QKV 的来源(跨模态、局部、全局)
- 改变计算方式(频域、线性化、稀疏化)
- 改变输出需求(序列级 vs 全局向量)
- 加入正则化和可学习参数(稳定训练)