Self-Attention Mechanism

深度学习的核心引擎

从序列交互到上下文感知,揭秘 Transformer 的灵魂

1. 核心思想 (Core Idea)

自注意力机制 (Self-Attention) 的本质是让序列中的每个元素都能够“看见”并“关注”序列中的其他所有元素。 它通过计算元素之间的相互关联强度(权重),动态地聚合上下文信息,从而生成包含全局语境的特征表示。

  • Self (自): 注意力机制发生在序列内部,即自己关注自己。
  • Attention (注意力): 赋予重要的信息更高的权重,忽略无关信息。

想象你在阅读一句话:“The animal didn't cross the street because it was too tired.” 当你读到 "it" 时,你的大脑会自动将其与 "animal" 关联起来,而不是 "street"。 自注意力机制就是让模型学会这种“关联”能力。

2. 数学计算步骤 (Mathematical Steps)

2.1 输入表示:Q, K, V 的诞生

对于输入序列中的每个向量 \(x\),我们通过三个可学习的权重矩阵 \(W^Q, W^K, W^V\) 将其映射到三个不同的空间,得到:

  • Query (Q): 查询向量,代表“我在寻找什么信息”。
  • Key (K): 键向量,代表“我包含什么特征”,用于被 Query 匹配。
  • Value (V): 值向量,代表“我的实际内容”,最终被加权求和的信息。
X Input W_Q W_K W_V Q K V

2.2 注意力分数计算 (Attention Score)

核心公式如下:

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

步骤解析:

  1. 点积 (Dot Product) \(QK^T\): 计算 Query 和 Key 的相似度。相似度越高,分数越大。
  2. 缩放 (Scale) \(\frac{1}{\sqrt{d_k}}\): 除以维度的平方根,防止点积结果过大导致 Softmax 梯度消失。
  3. 归一化 (Softmax): 将分数转换为概率分布(权重和为 1)。
  4. 加权求和 (Weighted Sum): 用权重乘以 Value,得到最终的上下文向量。

Query Matrix Q Key Matrix Transposed K^T MatMul Scale Softmax V MatMul Output Z / sqrt(d_k) Attention Weights

3. 多注意力头 (Multi-Head Attention)

为了捕捉不同子空间(Subspace)的特征,我们并行运行多个自注意力机制,称为“头”(Head)。 例如,一个头可能关注语法结构,另一个头关注语义关联。

最终,我们将所有头的输出拼接(Concat)起来,再经过一次线性变换,得到最终的输出。

V, K, Q Linear Projections Head 1 Head 2 ... Head h Concat Linear

4. 在 Transformer 中的应用

自注意力机制是 Transformer 架构的基石。

  • 编码器 (Encoder): 利用自注意力处理输入序列,理解上下文(如机器翻译中的源语言句子)。
  • 解码器 (Decoder): 利用“掩码自注意力” (Masked Self-Attention) 生成目标序列,确保生成时只能看到已生成的词。
  • 交叉注意力 (Cross-Attention): 解码器关注编码器的输出,实现源语言到目标语言的对齐。

5. 位置编码 (Positional Encoding)

自注意力机制的一个关键局限:它本身是排列不变的(Permutation Invariant)。 这意味着如果打乱输入序列的顺序,输出结果在数学上是等价的。

但语言和序列数据通常对顺序敏感——"猫追狗" 和 "狗追猫" 意义完全不同。 为了解决这一问题,Transformer 引入了位置编码,将位置信息注入到输入向量中。

5.1 正弦余弦位置编码

原始 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) \]

其中 pos 是位置索引,i 是维度索引,d_model 是模型维度。 这种设计使模型能够学习相对位置关系。

输入嵌入 (Word Emb) + 位置编码 (Pos Enc) 位置感知 嵌入向量

5.2 其他位置编码方法

方法 特点 代表模型
正弦位置编码 固定、无需学习、支持外推 原始 Transformer
可学习位置编码 随机初始化并训练优化 BERT, GPT
旋转位置编码 (RoPE) 融合绝对与相对位置信息 LLaMA, GPT-NeoX
相对位置编码 直接建模位置间的相对距离 Transformer-XL, T5

6. 优点与意义

特性 RNN / LSTM CNN Self-Attention (Transformer)
计算并行度 低 (顺序计算) 极高 (全并行)
长距离依赖 弱 (梯度消失) 中 (受限于卷积核) 强 (直接交互 O(1))
可解释性 好 (注意力权重可视化)

6.1 可视化演示:注意力热力图

鼠标悬停在单词上,查看它对其他单词的“关注度”(模拟数据)。

7. 实际应用案例

7.1 大语言模型 (LLM)

GPT 系列、LLaMA、Claude 等大语言模型的核心架构都基于自注意力机制。 它们使用解码器仅架构(Decoder-Only),通过掩码自注意力实现自回归文本生成。

  • GPT-4:多模态大模型,支持文本与图像理解,参数规模达万亿级别
  • LLaMA 3:Meta开源高效模型,使用 GQA(分组查询注意力)优化注意力计算
  • Claude 3:Anthropic推出,强调安全性与长上下文处理能力(支持200K tokens)
  • Gemini:Google DeepMind推出的多模态模型,原生支持文本、图像、音频、视频

7.2 计算机视觉 (Vision Transformer)

ViT (Vision Transformer) 将图像分割成固定大小的 patch, 将其展平为序列后输入 Transformer 进行处理,证明了自注意力在视觉任务中的有效性。

图像分块 展平为序列 Transformer Encoder

7.3 语音识别与合成

Whisper(语音识别)和 TTS 模型(语音合成)都采用了基于自注意力的架构, 能够处理长时间的音频序列并捕捉复杂的声学特征。

7.4 多模态融合

在多模态模型(如 CLIP、GPT-4V、Gemini)中,自注意力机制用于跨模态的信息融合, 使模型能够同时理解文本、图像、音频等多种模态的数据。

7.5 自注意力的变体与优化

随着模型规模的增长,研究者提出了多种自注意力的优化变体:

变体名称 核心思想 复杂度 代表模型
稀疏注意力 仅计算部分位置的注意力 O(n√n) Sparse Transformer
线性注意力 用核函数近似softmax O(n) Linear Transformer
Flash Attention IO感知的分块计算 O(n²)但更快 LLaMA 2/3
滑动窗口注意力 限制注意力范围为局部窗口 O(n·w) Mistral, Longformer
分组查询注意力 (GQA) 多个Query共享Key-Value 减少KV缓存 LLaMA 2/3

Copyright© 2026 GptKong.com. All Rights Reserved.