AI发布于 2026年7月13日

Self-Attention 本质

Self-Attention 的本质是让每个 token 根据与上下文中其他 token 的“相关性”动态调整自身向量表示。本文从 QKV 生成、点积相似度计算到 Softmax 加权融合,用具体例子和手算步骤清晰拆解了注意力机制的全流程,帮助读者真正理解 Transformer 为何能实现上下文感知的语义表示。

站点作者25 次阅读最后更新 2026年7月27日
返回首页·Markdown 正文渲染

AI摘要

此内容由 AI 根据文章正文生成,并已由人工审核

DeepSeek Summary

Self-Attention的核心是让每个token根据与上下文中其他token的相关性,动态调整自身的向量表示。它通过生成Query、Key和Value,计算Query与所有Key的点积相似度,经Softmax归一化后得到注意力权重,再对Value加权求和,从而融合上下文信息。这一机制使词向量从静态变为动态,例如“苹果”在不同语境中会有不同含义。整个过程可并行矩阵计算,是Transformer高效的关键。

Self-Attention 本质:

每个 token 根据“相关性”动态聚合其它 token 的信息

比如:

text
苹果很好吃

和:

text
苹果发布了新手机

“苹果”的向量应该不同。Attention:就是动态修改 token 表示。

从一句话开始我们用:

text
小明 喜欢 苹果

假设:Token 化后:

text
[小明] [喜欢] [苹果]

Embedding 后:假设每个词变成 4 维向量:

text
小明 = [1,0,1,0]
喜欢 = [0,1,1,0]
苹果 = [1,1,0,1]

注意:这还只是:初始静态向量。

进入 Self-Attention Transformer 不会直接用 embedding。

而是:先生成Q K V

QKV 怎么来的?其实就是:三个线性层(矩阵乘法)

论文里:每个 token:会分别乘

text
WQ
WK
WV

得到:

text
Q
K
V

也就是:

text
Q = XWQ
K = XWK
V = XWV

这里:X:是 embedding。

Q K V 人话理解(最重要)

Query(Q)

text
“我想找什么?”

Key(K)

text
“我有什么特征?”

Value(V)

text
“我真正携带的信息”

真正开始 Attention假设:现在处理

text
喜欢

它的 Query:会去和所有 Key 比较。

也就是:

text
喜欢Q

分别和:

text
小明K
喜欢K
苹果K

做相似度计算。

计算相关性 本质:点积

结果可能:

text
喜欢 ↔ 小明 = 8
喜欢 ↔ 喜欢 = 5
喜欢 ↔ 苹果 = 7

说明:

text
喜欢 和 小明 关系大
喜欢 和 苹果 关系也大

为什么点积能表示“关系”?因为:向量方向相似:点积就大。

比如:

text
狗 和 猫

方向接近。

text
狗 和 汽车

方向差很多。所以:Attention 本质:“语义相关性匹配”

为什么除 √dk?论文专门解释:

因为:维度大时:点积数值会非常大。

比如:

text
512

点积可能:

text
100
200
300

Softmax 后:

直接:

text
[0.999999, 0.000001]

梯度炸了。


所以:除:√dk让数值稳定。

Softmax 登场

Attention 不是直接用分数。

而是:

text
Softmax(score)

比如:原始:

text
[8,5,7]

变成:

text
[0.7,0.1,0.2]

这就是:注意力权重

意思:

text
70%关注小明
10%关注自己
20%关注苹果

加权求和 Value

也就是:

text
0.7 × 小明V
+
0.1 × 喜欢V
+
0.2 × 苹果V

最终:得到:新的“喜欢”注意:现在:这个“喜欢”:已经不是原始 embedding。

而是:“结合上下文后的喜欢”

这就是:上下文感知(Contextual Representation)

这就是 Transformer 最伟大的地方

以前:词向量:静态

比如 Word2Vec:

text
苹果 永远是同一个向量

Transformer:动态向量

text
苹果很好吃

和:

text
苹果发布会

里面:“苹果” 完全不同。

因为:Attention 动态融合上下文。

Self-Attention 真正流程

python
输入 Token
↓
Embedding
↓
生成 Q K V
↓
Q 和 K 算相关性
↓
Softmax
↓
得到注意力权重
↓
加权 Value
↓
得到新的 token 表示

整个句子一起算

注意:不是:一个词一个词。

Transformer:整句话一起矩阵计算

这里:Q K V:都是矩阵。

为什么 GPU 特别喜欢 Transformer?

因为:全是矩阵乘法

GPU:最擅长:大规模并行矩阵运算

RNN:必须:一步一步

Transformer:整句话一次算完

这就是:AI 爆炸的真正原因之一。

Multi-Head Attention 到底为什么牛?

论文第5页:


单个 Attention:

只能看一种关系。


Multi-Head:

相当于:

多个专家同时分析句子

比如:Head1看:主谓关系 Head2看:时间关系 Head3看:语义关系

Head4看:代词指代

不同 head:真的学出了不同能力。

为什么叫“Self” Attention?

因为:Q K V:都来自:同一句话自己

比如:

text
小明 喜欢 苹果

自己内部互相关注。

所以:叫Self-Attention

Encoder 和 Decoder Attention 区别

Encoder Self-Attention可以看:

text
全部 token

因为输入完整已知。

Decoder Self-Attention必须:Mask 不能偷看未来。

Mask 到底是什么?

比如:生成:

text
我 爱 北 京

预测:

text

时:不能看到:

text

所以:未来位置:会被

text
-∞

Softmax 后:概率≈0。

这就是:Causal Mask

Attention 动画级流程

假设一句话:

text
小明 喜欢 苹果

第一帧:文字被切成 token

text
[小明] [喜欢] [苹果]

第二帧:每个 token 变成向量

text
小明  → embedding
喜欢  → embedding
苹果  → embedding

第三帧:每个 token 生成三张“身份卡”

text
Q:我想找谁
K:我有什么特征
V:我真正携带的信息

第四帧:以「喜欢」为中心,它会问:

text
我“喜欢”应该重点看谁?

于是它拿自己的 Q 去匹配所有 K:

text
喜欢Q · 小明K
喜欢Q · 喜欢K
喜欢Q · 苹果K

第五帧:得到注意力分数

text
小明:高
喜欢:低
苹果:高

第六帧:Softmax 变成权重

text
小明:0.45
喜欢:0.10
苹果:0.45

第七帧:加权融合 V

text
新的“喜欢”
=
0.45 × 小明V
+
0.10 × 喜欢V
+
0.45 × 苹果V

第八帧:得到上下文后的新向量

text
喜欢

已经不是原来的“喜欢”,而是:

text
“小明喜欢苹果”语境里的喜欢

手算一遍 QKV

我们简化成 2 维向量。输入 X:

text
小明 = [1, 0]
喜欢 = [0, 1]
苹果 = [1, 1]

为了好算,先假设:

text
WQ = WK = WV = 单位矩阵

所以:

text
Q = K = V = X

也就是:

text
小明 Q/K/V = [1,0]
喜欢 Q/K/V = [0,1]
苹果 Q/K/V = [1,1]

现在计算「喜欢」关注谁。「喜欢」的 Q:

text
[0,1]

分别点乘所有 K:

text
喜欢Q · 小明K = [0,1] · [1,0] = 0
喜欢Q · 喜欢K = [0,1] · [0,1] = 1
喜欢Q · 苹果K = [0,1] · [1,1] = 1

得到分数:

text
[0, 1, 1]

假设先不除 √dk,Softmax 后大概是:

text
[0.16, 0.42, 0.42]

意思是:

text
喜欢 关注 小明:16%
喜欢 关注 喜欢:42%
喜欢 关注 苹果:42%

然后加权 V:

text
新喜欢 =
0.16 × [1,0]
+
0.42 × [0,1]
+
0.42 × [1,1]

逐项算:

text
0.16 × [1,0] = [0.16, 0]
0.42 × [0,1] = [0, 0.42]
0.42 × [1,1] = [0.42, 0.42]

相加:

text
新喜欢 = [0.58, 0.84]

原来的「喜欢」是:

text
[0,1]

现在变成:

text
[0.58,0.84]

这说明:Attention 已经把「苹果」的信息融合进了「喜欢」里。这就是“动态语义”。

你先记住一句话 Attention 不是查一个词的意思,而是根据整句话重新改写每个词的向量。

#

版权声明

1 本文章标题: Self-Attention 本质

2 本文章地址: https://www.yf2029.com/articles/self-attention-%E6%9C%AC%E8%B4%A8

3 本站文章内容仅供学习、交流与界面验证参考,如有版权或引用问题,请联系站点维护者处理。

4 本站不对文中外部链接、第三方资源或读者据此操作产生的结果承担保证责任。

当前已经是最前面的文章。

下一篇

LangChain2

TypeScript

评论

登录后即可发表评论和回复。

0 条
评分
0/1000
还没有评论,来说两句吧

AI Knowledge Blog

记录代码与设计实践

分享开发经验、项目思考与持续成长的过程

站点反馈

如果你在浏览或使用过程中有建议,欢迎告诉我们。