transformer 注意力机制解析

一、例子句子

我们用一句经典的歧义句:

复制代码
小明 打了 小红 因为 他 生气了

问题:

复制代码
“他” 指谁?

人类很容易理解:

复制代码
他 = 小明

Transformer 就是通过 Attention 自动学会这个关系


二、Step1:分词(Tokenization)

模型首先会分词:

复制代码
[小明] [打了] [小红] [因为] [他] [生气了]

每个词叫一个 token


三、Step2:查词表(Vocabulary)

模型有一个词表,例如:

ID
1 小明
2 打了
3 小红
4 因为
5
6 生气了

句子就变成:

复制代码
[1,2,3,4,5,6]

四、Step3:查 Embedding

模型有一个 Embedding 表

向量
小明 0.9 , 0.1
打了 0.5 , 0.4
小红 0.8 , 0.2
因为 0.3 , 0.7
0.7 , 0.3
生气了 0.4 , 0.9

句子变成向量:

复制代码
小明     [0.9 ,0.1]
打了     [0.5 ,0.4]
小红     [0.8 ,0.2]
因为     [0.3 ,0.7]
他       [0.7 ,0.3]
生气了   [0.4 ,0.9]

五、Step4:生成 Q K V

Transformer 会生成:

复制代码
Query
Key
Value

公式:

复制代码
Q = XWq
K = XWk
V = XWv

为了简单,假设:

复制代码
Q = embedding
K = embedding
V = embedding

六、Step5:计算 Attention(重点)

我们重点看:

复制代码

模型要判断:

复制代码
他 和 谁最相关?

公式:

复制代码
score = Q · K

1️⃣ 他 → 小明

复制代码
Q他 = [0.7 ,0.3]
K小明 = [0.9 ,0.1]

score =
0.7×0.9 + 0.3×0.1
= 0.63 + 0.03
= 0.66

2️⃣ 他 → 打了

复制代码
[0.7,0.3] · [0.5,0.4]

= 0.35 + 0.12
= 0.47

3️⃣ 他 → 小红

复制代码
[0.7,0.3] · [0.8,0.2]

= 0.56 + 0.06
= 0.62

4️⃣ 他 → 因为

复制代码
[0.7,0.3] · [0.3,0.7]

= 0.21 + 0.21
= 0.42

5️⃣ 他 → 生气了

复制代码
[0.7,0.3] · [0.4,0.9]

= 0.28 + 0.27
= 0.55

七、Step6:得到 Attention Score

score
小明 0.66
小红 0.62
生气了 0.55
打了 0.47
因为 0.42

八、Step7:Softmax 归一化

Softmax 后:

权重
小明 0.28
小红 0.24
生气了 0.20
打了 0.15
因为 0.13

注意力图:

复制代码
            他
         / / |  \
      小明 小红 生气了 ...
      0.28 0.24 0.20

九、Step8:加权 Value

Transformer 会把这些信息融合:

复制代码
Output = Σ attention × V

例如:

复制代码
0.28 × V小明
0.24 × V小红
0.20 × V生气了
...

求和得到新的:

复制代码
他'

新的向量包含:

复制代码
小明 + 小红 + 生气

但:

复制代码
小明权重最大

所以模型会学到:

复制代码
他 ≈ 小明

十、为什么模型能学会这个?

因为训练数据中会不断出现:

复制代码
小明 打了 小红 因为 他 生气了

正确标签:

复制代码
他 = 小明

训练时模型会调整:

复制代码
Wq
Wk
Wv

让:

复制代码
score(他→小明) 最大

十一、Attention 的本质

Attention 本质就是:

复制代码
谁和谁最相关?

用数学表达:

复制代码
相似度 = 向量点积

十二、Transformer 最强的地方

每个词都会做一遍:

复制代码
词 → 关注整个句子

例如:

复制代码
小明 打了 小红 因为 他 生气了

注意力矩阵:

复制代码
        小明 打了 小红 因为 他 生气
小明     •
打了     •
小红     •
因为     •
他      → 小明
生气     → 他

十三、一句话彻底理解 Attention

Attention 就是:

复制代码
每个词问:

我应该关注谁?

然后:

复制代码
关注越多 → 信息贡献越大

相关推荐
冬奇Lab18 小时前
Workflow 系列(01):基础理论——三种执行模型与 Anthropic 5 种模式
人工智能·agent·工作流引擎
冬奇Lab19 小时前
每日一个开源项目(第143篇):page-agent - 纯 JS 的网页 GUI Agent,无需截图、无需插件、无需后端
前端·人工智能·agent
程序员cxuan21 小时前
虽迟但到!GPT-5.6 终于来了!
人工智能·后端·程序员
ZhengEnCi1 天前
Q03-UI设计进阶技巧-让界面更高级的7个核心原则
人工智能
IT_陈寒1 天前
React的这个渲染问题连官方文档都没说清楚
前端·人工智能·后端
不加辣椒1 天前
第12章 工具调用与 Agent 提示工程
人工智能
用户1693176172661 天前
前端给AI消息做日期分组与时间线
人工智能
i晟1 天前
Claude Code Harness 深度拆解:从你敲回车到模型回复,中间发生了什么
人工智能
用户252736278141 天前
【踩坑复盘】我在本地跑 RAG 知识库时踩了 5 个大坑,吐血整理避坑指南
人工智能
大模型真好玩1 天前
LangChain DeepAgents 速通指南(九)—— 生产级智能体框架 DeepAgents Code 源码导读
人工智能·langchain·agent