自学内容网 自学内容网

Transformer自注意力机制和多头注意力

自注意力机制(Self-Attention Mechanism):

自注意力机制是 Transformer 的核心部分,它用于计算序列中每个元素与其他所有元素的关系,从而捕捉全局依赖。

自注意力的计算过程:

假设输入序列为 X = [x_1, x_2, ..., x_n],其中每个 x_i 都是一个向量,表示序列中的第 i 个元素。自注意力的计算包括以下几个步骤:

  1. 计算 Query、Key 和 Value

    • 对每个输入向量 x_i,通过线性变换生成三个向量:Query(查询向量)、Key(键向量)和 Value(值向量)。这些向量可以理解为不同的视角来表示输入。
    • 计算公式为:
      [
      Q = XW_Q, \quad K = XW_K, \quad V = XW_V
      ]
      其中,W_Q, W_K, W_V 是可学习的权重矩阵,Q 是 Query 向量,K 是 Key 向量,V 是 Value 向量。
  2. 计算注意力得分(Attention Scores)

    • 通过 Query 和 Key 之间的点积来计算每个元素之间的相关性(注意力得分)。点积反映了 Query 和 Key 的相似性。
    • 计算公式为:
      [
      \text{Attention Scores} = \frac{Q \cdot K^T}{\sqrt{d_k}}
      ]
      其中,d_k 是 Key 的维度,点积结果除以 d k \sqrt{d_k} dk 是为了防止数值过大。
  3. 计算注意力权重(Attention Weights)

    • 对上一步的注意力得分进行 Softmax 操作,转化为概率分布,即注意力权重,表示当前元素对其他元素的注意力分布。
    • 公式为:
      [
      \text{Attention Weights} = \text{Softmax} \left( \frac{Q \cdot K^T}{\sqrt{d_k}} \right)
      ]
  4. 加权求和得到输出

    • 最终的输出是对 Value 向量的加权求和,权重是由注意力权重确定的。
    • 输出向量的公式为:
      [
      \text{Output} = \text{Attention Weights} \cdot V
      ]

通过这个过程,自注意力机制可以让每个输入元素 x_i 根据它与其他所有输入元素的关系,来动态地调整自己的表示。换句话说,每个元素都会“注意”其他元素,并根据这些注意力权重更新自身的表示。

自注意力机制的特点:
  • 全局信息捕捉:每个元素都可以和序列中的所有其他元素交互,捕捉全局依赖关系。
  • 动态权重:注意力权重根据输入数据动态计算,不是固定的权重。

多头自注意力机制(Multi-Head Self-Attention):

多头自注意力机制是 Transformer 中的一种扩展,它通过并行计算多个自注意力机制来增强模型的表现力。

工作原理:
  1. 多个注意力头

    • Transformer 中会并行计算多组 Query、Key 和 Value,每组计算称为一个“注意力头”(Attention Head)。每个注意力头可以通过不同的子空间来捕捉序列中的不同信息。
    • 假设有 h 个注意力头,每个头都有各自的 W_Q, W_K, W_V 权重矩阵。每个头都可以独立计算注意力分布。
  2. 并行处理

    • 每个头独立计算出一组自注意力结果(多个输出向量),这些结果将会拼接(Concat)在一起,然后通过一个线性层进行映射,形成最终的输出。
  3. 多样性和表达能力增强

    • 通过多个注意力头,每个头可以从不同的角度来关注输入序列中的不同部分,从而提高模型对复杂数据的表达能力。
    • 举例来说,一个注意力头可能专注于句子中的短期依赖关系,而另一个头可能专注于更长距离的依赖。
多头自注意力的公式:

对于每个注意力头 i,其输出为:
[
\text{head}_i = \text{Attention}(QW_Q^i, KW_K^i, VW_V^i)
]
然后将所有的注意力头拼接在一起:
[
\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \dots, \text{head}_h) W_O
]
其中,W_O 是最终映射的线性层的权重矩阵。


总结:

  • 自注意力机制 通过对输入序列中所有元素的相关性进行建模,能够有效捕捉全局依赖关系。
  • 多头自注意力机制 则通过并行计算多个注意力头来增强模型的多样性和表达能力,使得 Transformer 在处理复杂数据时更加灵活和强大。

相较于 CNN,Transformer 更擅长处理长序列数据和全局依赖关系的建模,并且具备更强的并行处理能力和灵活性。


原文地址:https://blog.csdn.net/weixin_43251493/article/details/142993163

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!