深入理解 Self Attention:Transformer 的核心机制

AI 基础深入理解 SelfAttentionopenstarry.com

深入理解 Self Attention:Transformer 的核心机制

Self Attention(自注意力)是 Transformer 模型的核心创新,它让模型能够同时关注输入序列中所有位置的信息,彻底改变了自然语言处理的方式。

为什么需要 Self Attention?

在 Self Attention 出现之前,处理序列数据主要依赖 RNN(循环神经网络)和 LSTM。它们的核心问题是串行处理:必须一步步从前到后处理每个词,无法并行。

RNN 的处理方式:
步骤 1: 处理 "我" → 隐藏状态 h1
步骤 2: 处理 "喜欢" → 结合 h1 → 隐藏状态 h2
步骤 3: 处理 "吃" → 结合 h2 → 隐藏状态 h3
步骤 4: 处理 "苹果" → 结合 h3 → 最终输出

问题:信息逐层传递,距离越远越容易丢失

Self Attention 的解决方案:让每个词直接看到所有其他词,不需要排队。

Self Attention 的处理方式:
"我"    → 直接关联 → "喜欢" "吃" "苹果"(所有词同时可见)
"喜欢"  → 直接关联 → "我" "吃" "苹果"
"吃"    → 直接关联 → "我" "喜欢" "苹果"
"苹果"  → 直接关联 → "我" "喜欢" "吃"

Self Attention 的三个核心概念

1. Query、Key、Value

每个输入词都会生成三个向量:

# 概念示意
词向量 x → 三个线性变换:
Q = x @ W_Q  # 我在找什么?
K = x @ W_K  # 我能提供什么?
V = x @ W_V  # 我的实际内容

2. 注意力分数计算

通过 Query 和 Key 的点积计算每个词对其他词的"关注度":

注意力分数 = Q · K^T / √d_k

其中 d_k 是 Key 向量的维度(用于缩放,防止梯度消失)

"吃" 对 "苹果" 的注意力分数 = Q_吃 · K_苹果 / √d_k

3. Softmax 归一化

将原始分数转换为概率分布(和为 1):

原始分数: [2.1, 0.5, 1.8, 3.2]
Softmax:  [0.24, 0.04, 0.19, 0.53]
         "我"  "喜欢" "吃"  "苹果"

含义:"吃" 这个词最关注 "苹果"(53%),其次是 "我"(24%)

完整计算流程

用一个完整例子走一遍:

输入句子:"小猫 吃 鱼"

步骤 1: 生成 Q, K, V
  小猫: Q1=[0.2,0.8], K1=[0.1,0.9], V1=[0.3,0.7]
  吃:   Q2=[0.5,0.5], K2=[0.6,0.4], V2=[0.8,0.2]
  鱼:   Q3=[0.9,0.1], K3=[0.8,0.2], V3=[0.4,0.6]

步骤 2: 计算注意力分数
  小猫 对 所有词: Q1·[K1,K2,K3]^T = [0.82, 0.50, 0.26]
  吃 对 所有词:   Q2·[K1,K2,K3]^T = [0.50, 0.52, 0.50]
  鱼 对 所有词:   Q3·[K1,K2,K3]^T = [0.17, 0.52, 0.74]

步骤 3: Scale + Softmax
  注意力权重矩阵:
         小猫   吃    鱼
  小猫: [0.40, 0.30, 0.30]
  吃:   [0.33, 0.34, 0.33]
  鱼:   [0.22, 0.34, 0.44]

步骤 4: 加权求和
  输出_小猫 = 0.40×V1 + 0.30×V2 + 0.30×V3
  输出_吃   = 0.33×V1 + 0.34×V2 + 0.33×V3
  输出_鱼   = 0.22×V1 + 0.34×V2 + 0.44×V3

Self Attention 的优势

特性 RNN/LSTM Self Attention
并行计算❌ 串行✅ 完全并行
长距离依赖信息随距离衰减任意距离直接连接
计算复杂度O(n)O(n²)
可解释性难以解释注意力权重可视化

实际应用中的 Self Attention

在 GPT、BERT 等模型中,Self Attention 被扩展为多头注意力(Multi-Head Attention),即同时运行多组独立的 Attention,每组关注不同方面的信息。

例如在句子 "苹果发布了新 iPhone" 中:


总结

Self Attention 的核心思想可以用一句话概括:让序列中的每个位置都能直接访问其他所有位置的信息,并根据相关性加权聚合。这种"全局视野"的设计,使 Transformer 能够高效处理长文本,并成为现代大语言模型的基石。

下一步阅读Multi-Head Attention 在 Transformers 中的工作原理

以 AI 之力,筑未来之境

现在注册,立即免费获赠 200 次大模型调用权益

免费注册 →