自注意力和多头注意力的区别

自注意力(Self-Attention)和多头注意力(Multi-Head Attention)是Transformer架构中的两个核心概念,它们之间是基础构件与增强策略的关系。

简单来说,自注意力是“根”,多头注意力是“枝”。多头注意力是在自注意力机制的基础上,通过并行运行多个自注意力模块来增强模型能力的一种策略。

自注意力 (Self-Attention)

自注意力是一种让模型在处理序列数据(如一句话)时,能够理解上下文关联的机制。它允许序列中的每个元素(例如一个词)与序列中的所有其他元素进行交互,从而捕捉它们之间的依赖关系
  • 核心思想:让模型学会“关注”输入序列中与当前位置相关的其他部分。
  • 工作原理:对于输入序列中的每个词,模型会生成一个查询(Query)、一个键(Key)和一个值(Value)向量。通过计算查询与所有键的相似度,得到一个权重分布,再用这个权重对所有的值进行加权求和,最终得到融合了全局信息的新表示
  • 局限性:单个自注意力头只能从一种角度、在一个表示子空间中捕捉信息,可能会忽略其他重要的关联模式

多头注意力 (Multi-Head Attention)

多头注意力是为了解决单头自注意力的局限性而提出的增强策略。它的核心思想是“分工合作”
  • 核心思想:与其让模型只从一个角度理解信息,不如让它同时从多个不同角度去观察。
  • 工作原理
    1. 并行计算:将输入的查询、键、值向量拆分成多个子空间(即多个“头”)。
    2. 独立学习:在每个子空间内,独立地运行一个自注意力机制。这样,每个“头”就可以学习到不同类型的依赖关系,例如一个头关注语法结构,另一个头关注语义关联
    3. 融合输出:将所有“头”的输出拼接起来,再通过一个线性变换层进行融合,得到最终的输出

核心区别对比

为了让你更清晰地理解,以下是两者的主要区别:
表格

比较维度自注意力 (Self-Attention)多头注意力 (Multi-Head Attention)
本质机制单个注意力计算单元多个并行的自注意力单元(头)的组合
表达能力只能从一个角度捕捉信息,表达能力相对单一能从多个角度并行捕捉信息,表达能力更强、更丰富
计算复杂度相对较低。更高,因为需要并行计算多个头
角色关系是构成多头注意力的基础构件是自注意力的增强策略,不能等价互换

生动比喻:盲人摸象

这个比喻可以帮你直观地感受两者的差异:
  • 自注意力 就像一个盲人摸象。他只摸到了大象的腿,就可能认为大象像一根柱子。他的视角是单一的,对整体的理解是片面的。
  • 多头注意力 就像一群盲人摸象。一个人摸腿,一个人摸耳朵,一个人摸尾巴。最后,他们把各自感知到的信息拼合起来,就能得到一个关于大象更完整、更准确的画像。
自注意力和多头注意力的区别
© 版权声明

相关文章

暂无评论

none
暂无评论...