SimLabs | Transformer 工作原理演示

1. 输入矩阵 X
2. 生成 Q, K, V
3. 计算注意力打分
4. Softmax 归一化
5. 输出上下文向量
步骤 0:输入序列矩阵
我们有 3 个单词(例如 "The", "cat", "sat"),每个词用 4 维向量表示。输入矩阵 $X \in \mathbb{R}^{3 \times 4}$,其中行数代表词的数量,列数代表词向量的维度。
步骤 1:生成 Query、Key、Value 矩阵
将输入矩阵 $X$ 分别与三个可学习的权重矩阵 $W^Q, W^K, W^V$ 相乘,生成 Query(查询)、Key(键)、Value(值)矩阵。这三个矩阵是自注意力机制的核心。
$$Q = XW^Q, \quad K = XW^K, \quad V = XW^V$$
×
=
×
=
×
=
步骤 2:计算注意力打分
用 Query 矩阵 $Q$ 乘以 Key 矩阵的转置 $K^T$,得到原始的注意力打分矩阵。矩阵中的每个元素 $\text{Scores}_{ij}$ 表示第 $i$ 个词对第 $j$ 个词的关注程度(相关性)。
$\text{Scores} = QK^T$
×
=
步骤 3:缩放与 Softmax 归一化
首先将打分矩阵除以 $\sqrt{d_k}$(本例中 $d_k = 3$,所以除以 $\sqrt{3} \approx 1.732$)进行缩放,防止梯度消失。然后对每一行应用 Softmax 函数,将打分转化为概率分布(每行和为 1),得到最终的注意力权重矩阵。
$\text{Attention Weights} = \text{softmax}\left(\frac{\text{Scores}}{\sqrt{d_k}}\right)$
Softmax(
) =
步骤 4:计算最终输出
用注意力权重矩阵乘以值矩阵 $V$,进行加权求和。最终得到的输出矩阵 $Z$ 就是融合了整个句子上下文信息的新词向量表示。每个词的新表示都包含了它对其他词的关注信息。
$Z = \text{Attention Weights} \times V$
×
=
✓ 完成! 输出矩阵 $Z$ 的每一行代表一个词的新向量表示,它融合了该词与句子中所有其他词的关系信息。这就是 Transformer 自注意力机制的核心计算过程。
[System] {{ log }}

Transformer 核心:自注意力机制 (Self-Attention) 原理解析

引言:从词到向量 (Word to Vector)

计算机无法直接理解文字,只能处理数字。因此,我们需要将每个单词转换为一个数字向量(Embedding)。例如,句子 "The cat sat" 中的三个词,每个词被表示为一个 4 维向量,形成输入矩阵 $X \in \mathbb{R}^{3 \times 4}$(3 个词,每个词 4 维)。

一、核心魔法:自注意力机制 (Self-Attention)

在传统的序列模型(如 RNN/LSTM)中,文字是按顺序一个一个处理的。而 Transformer 的颠覆性在于它打破了时间顺序,让句子中的所有词在同一时间相互审视,这就是自注意力机制。

1.1 核心角色:Q, K, V

自注意力机制的核心是将输入矩阵 $X$ 分别乘以三个可学习的权重矩阵,得到三个新矩阵:

  • Q (Query, 查询): 当前词想寻找什么特征?(比如 "bank" 作为主体去询问其他词,想搞清楚自己是"银行"还是"河岸")
  • K (Key, 键): 句子中的每个词身上带有什么特征标签?用于与 Query 进行匹配。
  • V (Value, 值): 如果匹配上了,这个词实际能提供的具体信息内容是什么。

生成 Q, K, V 的公式:

$$ Q = XW^Q, \quad K = XW^K, \quad V = XW^V $$

其中 $W^Q, W^K, W^V \in \mathbb{R}^{d_{model} \times d_k}$ 是可学习的权重矩阵。

1.2 数学推导公式

整个自注意力的计算可以浓缩为一个优雅的矩阵公式:

$$ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V $$

1.3 公式步骤拆解

  1. 步骤 1:计算相关性打分 $QK^T$
    用 Query 矩阵 $Q$ 去点乘所有词的 Key 矩阵 $K$ 的转置。点积越大,说明两个词的特征越匹配,关联度越高。结果是一个 $3 \times 3$ 的打分矩阵,其中 $\text{Scores}_{ij}$ 表示第 $i$ 个词对第 $j$ 个词的关注程度。
  2. 步骤 2:缩放 (Scale)
    除以 $\sqrt{d_k}$(在本演示中 $d_k = 3$,所以除以 $\sqrt{3} \approx 1.732$)。这是为了防止维度较高时,点积的结果过大,导致后续的 Softmax 函数梯度消失。
  3. 步骤 3:Softmax 归一化
    将缩放后的打分矩阵的每一行进行 Softmax 操作,转化为概率分布(每行的和为 1)。这代表了当前词分配给句子中所有词的注意力权重。
  4. 步骤 4:加权求和
    用刚才计算出的注意力权重矩阵乘以值矩阵 $V$,进行加权求和。最终得到的输出 $Z$,就是融合了整个句子上下文语境的全新词向量表示。

二、多头注意力 (Multi-Head Attention)

在实际的 Transformer 中,会使用多个注意力头(Multi-Head)。每个头使用不同的 $W^Q, W^K, W^V$ 权重矩阵,从不同的子空间(视角)去理解句子:

  • 有的头可能关注语法结构(主谓宾关系)
  • 有的头可能关注语义相似性(同义词、近义词)
  • 有的头可能关注时态和情态
$$ \text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \ldots, \text{head}_h)W^O $$ $$ \text{where } \text{head}_i = \text{Attention}(QW^Q_i, KW^K_i, VW^V_i) $$

三、位置编码 (Positional Encoding)

自注意力机制本身是无序的(类似词袋模型),它无法区分 "猫咬狗" 和 "狗咬猫"。因此,Transformer 必须通过位置编码来注入位置信息。常用的方法是使用正弦和余弦函数:

$$ PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d_{model}}}\right) $$ $$ PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d_{model}}}\right) $$

位置编码会被加到词嵌入向量上,形成最终的输入表示。

四、前馈网络与残差连接 (FFN & Residual Connection)

在自注意力层之后,Transformer 还会经过一个前馈神经网络(Feed-Forward Network):

$$ \text{FFN}(x) = \max(0, xW_1 + b_1)W_2 + b_2 $$

同时,为了防止梯度消失和加速训练,Transformer 使用了残差连接(Residual Connection)和层归一化(Layer Normalization):

$$ \text{Output} = \text{LayerNorm}(x + \text{Sublayer}(x)) $$

五、总结

Transformer 的核心创新在于自注意力机制,它让模型能够并行处理整个序列,并动态地关注序列中的不同部分。通过 Q、K、V 三个矩阵的巧妙设计,Transformer 实现了高效的上下文建模,成为了现代 NLP(如 GPT、BERT)和多模态模型(如 CLIP、Stable Diffusion)的基石。

自注意力机制:为什么有效

自注意力机制之所以强大,是因为它从根本上解决了传统神经网络(如RNN、LSTM)处理序列数据时的两大核心缺陷:长距离依赖难题并行计算瓶颈。以下从五个维度拆解其有效性的根源。


1. 解决“忘事”问题:长距离依赖

在RNN或LSTM中,信息按顺序传递,句子越长,开头的信息越容易衰减(梯度消失),导致模型“忘了开头”。

  • 自注意力优势:每个词可以直接与序列中的所有词(包括最开头的词)进行交互计算。
  • 物理意义:无论两个词相隔多远,自注意力都能建立“短路连接”,直接衡量它们的相关性。
    例如句子:“那个在公园里遛狗的人,穿了一件红色的衣服。” 自注意力可让“人”和“红色的衣服”直接关联,不受中间长句的干扰。

2. 并行计算与“上帝视角”

RNN必须按时间步依次计算(处理完第1个字才能处理第2个),限制了GPU并行能力。

  • 自注意力优势:可一次性接收整个句子,通过矩阵运算同时计算所有词之间的相关性。
  • 物理意义:相当于在第一步就拥有“上帝视角”,看到句子全貌,而非逐步爬行。这充分利用了现代硬件的并行能力,大幅提升训练速度。

3. 动态权重分配:关注重点

卷积神经网络(CNN)的卷积核参数是静态的,无论输入内容如何变化,提取特征的方式固定。

  • 自注意力优势:注意力权重是动态生成的,完全依赖于当前的输入内容。
  • 物理意义:模型可根据上下文实时调整关注点。例如处理代词“它”时,自注意力会给前文的名词(如“苹果”或“汽车”)分配更高权重,帮助消歧。这种动态性赋予了模型极强的灵活性。

4. 多重表示:构建丰富的语义地图

Transformer使用多头注意力(Multi-Head Attention),即并行执行多组自注意力计算。

  • 自注意力优势:不同的“头”可以学习不同层面的依赖关系。
  • 物理意义
    • 有的头关注语法关系(如主语与谓语);
    • 有的头关注指代关系(如“小明”和“他”);
    • 有的头关注临近词修饰(如形容词与名词)。
    多视角表示使得文本理解更加立体和丰富。

5. 数学本质:特征向量的加权求和

自注意力核心公式:

Attention(Q, K, V) = softmax( QKT / √dk ) V
  • QKT:计算相似度矩阵,衡量每个元素与其他所有元素的匹配程度。
  • Softmax:将匹配度转换为概率分布(权重),使所有权重之和为1。
  • 乘以V:根据计算出的权重,对所有Value向量进行加权求和——权重越大,该位置对最终输出的贡献越大。

总结

自注意力机制通过全局感知、动态加权、并行计算,突破了传统模型在长序列建模和语义捕捉上的瓶颈。它不仅让模型“看见”每个词,更深刻地理解了词与词之间的相互作用——这正是它有效的根本原因。