什么是 注意力机制?

注意力机制(Attention Mechanism)是一种可微计算:它在掩码允许的表示上计算与数据相关的权重,并据此组合输出。其行为取决于 Query、Key、Value 投影、掩码、归一化、学习参数和外围模型。

快速了解

全称Attention Mechanism
创建时间2014 年由 Bahdanau 等人提出,2017 年由 Vaswani 等人推广
规范文档官方规范

工作原理

注意力机制先形成 Query(Q)、Key(K)和 Value(V)表示,对允许的 Q-K 对打分,应用掩码和归一化,再根据权重组合 Value。自注意力的三者来自同一表示流;交叉注意力的 Query 与 Key/Value 来自不同表示流;多头注意力并行执行多组学习投影并组合结果。注意力是 Transformer 的重要组件,但整体行为还取决于前馈层、残差路径、归一化、位置编码、数据和训练。 稠密注意力的计算与内存成本会随序列长度变化。因果掩码、局部或稀疏模式、分组查询变体、内核实现、精度、批形状和硬件都会改变权衡。注意力图可作为诊断工具,但不能单独作为模型决策的因果解释。应结合形状与掩码测试、数值检查、目标任务质量、内存、延迟和代表性失败案例评测实现。

主要特点

  • 在掩码允许的位置上计算数据相关的加权组合
  • 可建模长距离交互,但受上下文、掩码和资源限制
  • 使用语义由训练学习而非预先指定的 QKV 投影
  • 常见稠密实现支持并行计算,但序列成本为二次增长
  • 因果、Padding、局部或交叉掩码会改变其行为
  • 需要目标任务评测,权重可视化不是完整解释

常见用途

  1. Transformer 架构作为现代语言模型的核心构建模块
  2. 机器翻译中用于对齐源语言和目标语言表示
  3. 图像识别和视觉 Transformer 中的空间特征注意力
  4. 语音识别中用于音频处理的时序对齐
  5. 文本摘要和问答系统中的上下文感知生成

示例

loading...
Loading code...

常见问题

什么是深度学习中的注意力机制?

注意力是一种数据相关的加权计算。模型把表示投影为 Query、Key 和 Value,对允许的 Query-Key 对打分、归一化,再组合 Value。权重仅展示其中一部分计算,不能单独证明某个位置导致了最终预测。

自注意力和交叉注意力有什么区别?

自注意力(内部注意力)允许序列中的每个位置关注同一序列中的所有位置,捕获内部依赖关系。交叉注意力则实现两个不同序列之间的交互,例如翻译模型中编码器输出和解码器状态之间的交互。

注意力机制在 Transformer 中是如何工作的?

在 Transformer 中,注意力使用查询(Q)、键(K)和值(V)向量。注意力分数通过查询和键的点积计算,经过缩放并应用 softmax。这些分数对值进行加权以产生输出,使模型能够关注相关上下文。

注意力机制有哪些优势?

注意力可以在允许的位置间建立灵活交互,常见实现也支持并行计算。其成本与收益取决于序列长度、掩码、架构、内核、硬件和任务;它不会自动使系统可解释、高效或鲁棒,必须用目标任务证据验证。

如何用 Python 实现注意力机制?

实现缩放点积注意力:从输入计算 Q、K、V 投影,计算注意力分数 softmax(QK^T / sqrt(d_k)),并与 V 相乘。PyTorch 和 TensorFlow 等库提供了内置的 MultiheadAttention 模块。

相关工具

相关术语

相关文章