自注意力(Self-Attention)和多头注意力(Multi-Head Attention)是Transformer架构中的两个核心概念,它们之间是基础构件与增强策略的关系。
简单来说,自注意力是“根”,多头注意力是“枝”。多头注意力是在自注意力机制的基础上,通过并行运行多个自注意力模块来增强模型能力的一种策略。
自注意力 (Self-Attention)
自注意力是一种让模型在处理序列数据(如一句话)时,能够理解上下文关联的机制。它允许序列中的每个元素(例如一个词)与序列中的所有其他元素进行交互,从而捕捉它们之间的依赖关系。
- 核心思想:让模型学会“关注”输入序列中与当前位置相关的其他部分。
- 工作原理:对于输入序列中的每个词,模型会生成一个查询(Query)、一个键(Key)和一个值(Value)向量。通过计算查询与所有键的相似度,得到一个权重分布,再用这个权重对所有的值进行加权求和,最终得到融合了全局信息的新表示。
- 局限性:单个自注意力头只能从一种角度、在一个表示子空间中捕捉信息,可能会忽略其他重要的关联模式。
多头注意力 (Multi-Head Attention)
多头注意力是为了解决单头自注意力的局限性而提出的增强策略。它的核心思想是“分工合作”。
- 核心思想:与其让模型只从一个角度理解信息,不如让它同时从多个不同角度去观察。
- 工作原理:
- 并行计算:将输入的查询、键、值向量拆分成多个子空间(即多个“头”)。
- 独立学习:在每个子空间内,独立地运行一个自注意力机制。这样,每个“头”就可以学习到不同类型的依赖关系,例如一个头关注语法结构,另一个头关注语义关联。
- 融合输出:将所有“头”的输出拼接起来,再通过一个线性变换层进行融合,得到最终的输出。
核心区别对比
为了让你更清晰地理解,以下是两者的主要区别:
表格
| 比较维度 | 自注意力 (Self-Attention) | 多头注意力 (Multi-Head Attention) |
|---|---|---|
| 本质机制 | 单个注意力计算单元。 | 多个并行的自注意力单元(头)的组合。 |
| 表达能力 | 只能从一个角度捕捉信息,表达能力相对单一。 | 能从多个角度并行捕捉信息,表达能力更强、更丰富。 |
| 计算复杂度 | 相对较低。 | 更高,因为需要并行计算多个头。 |
| 角色关系 | 是构成多头注意力的基础构件。 | 是自注意力的增强策略,不能等价互换。 |
生动比喻:盲人摸象
这个比喻可以帮你直观地感受两者的差异:
- 自注意力 就像一个盲人摸象。他只摸到了大象的腿,就可能认为大象像一根柱子。他的视角是单一的,对整体的理解是片面的。
- 多头注意力 就像一群盲人摸象。一个人摸腿,一个人摸耳朵,一个人摸尾巴。最后,他们把各自感知到的信息拼合起来,就能得到一个关于大象更完整、更准确的画像。

© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...



