Attention 三步可视化
前面探针反复说「注意力,留到总成拆」——这就是那个总成。注意力只有三步:每个词拿着 Query 去和别人 Key 算点积(谁相关)、softmax 归一化(相关多少)、加权求和 Value(把相关的混进来)。点「我想吃苹果」里的任一个词,看这三步怎么走完,看「苹果」怎么被钉成水果。
每个词预设 5 维语义向量,Q·K 点积和
softmax 算的是真实数学,零 API、零延迟。
点一个词,看它的注意力怎么看上下文:
当前看「苹果」的注意力——它拿着自己的 Q,去和别人配对。
①
Q · K 点积 = 相关性分数
「苹果」拿着自己的 Query,去和每个词的 Key 算方向一致性——方向越一致,点积越大。
我
0.12
想
0.12
吃
1.34
苹果
1.20
分数最高的是「吃」——「苹果」最关注它。
②
softmax 归一化 = 注意力权重
把分数变成加起来等于 1 的权重,而且让强相关的更突出、弱相关的更微弱。
我
12%
想
12%
吃
41%
苹果
35%
权重集中在最相关的几个词上——相关的多看,不相关的几乎不看。
③
加权求和 V = 更新后的向量
按权重把每个词的 Value 混进来,「苹果」的向量被更新。下面是 5 个语义维度的强度。
动作
0.41
食物
0.35
人称
0.12
意图
0.12
自指
0.00
新向量在「动作」(0.41)、「食物」(0.35)最强。——多义的「苹果」吸收了「吃」的进食动作 + 自身的水果实体,被上下文钉成了「被吃的水果」,不是苹果公司。这就是 attention 的消歧义本事。