什么是 Attention(注意力机制)?
Attention 是一种模仿人类注意力选择性聚焦能力的神经网络机制。它最早在机器翻译任务中被提出,用于帮助模型在处理长序列时动态关注输入中最相关的部分。
核心思想:不是对所有输入一视同仁,而是根据当前任务“有选择地关注”某些关键信息。
Attention 的工作原理
以经典的 Encoder-Decoder + Attention 架构为例:
- Query(查询):来自解码器当前时间步的隐藏状态
- Key(键)和 Value(值):来自编码器的所有时间步输出
- 通过计算 Query 与每个 Key 的相似度,得到权重(注意力分数)
- 用权重对 Value 加权求和,得到上下文向量(Context Vector)
公式简化表示为:
Attention(Q, K, V) = softmax(QKᵀ / √dₖ) V
Attention 的类型
- 加性注意力(Additive Attention):使用神经网络计算相似度
- 点积注意力(Dot-product Attention):直接计算向量点积
- 自注意力(Self-Attention):输入同时作为 Q、K、V,用于捕捉序列内部依赖
- 多头注意力(Multi-Head Attention):并行多个注意力头,增强模型表达能力
Transformer 与 Attention
2017 年 Google 提出的 Transformer 模型完全基于 Attention 机制,摒弃了 RNN/CNN 结构,成为现代大模型(如 BERT、GPT)的基础。
Transformer 的核心组件包括:
- 多头自注意力层
- 前馈神经网络
- 位置编码(Positional Encoding)
- 残差连接与 Layer Normalization
应用场景
- 机器翻译(如 Google Translate)
- 文本摘要与生成
- 语音识别
- 图像描述生成(结合 CNN + Attention)
- 推荐系统(用户行为建模)
学习资源推荐
- 论文《Attention Is All You Need》
- 李沐《动手学深度学习》Attention 章节
- Hugging Face Transformers 教程
- 可视化工具:Transformer Explainer