Tech

Memories

QKV 在 Transformer Attention 中的作用

在 Transformer 的 Attention 机制中,输入的 hidden states 会通过三组不同的权重矩阵,分别投影成 Q(Query)K(Key)V(Value)

Q = X × Wq
K = X × Wk
V = X × Wv

随后 Attention 的核心计算可以简化为:

Attention = softmax(Q × Kᵀ) × V

这里最重要的一点是:Q、K、V 并不是人类提前定义好语义的三类向量,而是模型在训练过程中学出来的三种不同投影。

它们之所以会发挥不同作用,是因为它们在计算公式中的位置不同、接受到的训练信号不同,最终被训练成了不同功能:

  • Q 和 K 决定“看谁”
  • V 决定“看完之后拿走什么信息”

1. Q、K、V 分别代表什么?

向量 参与的计算位置 功能理解
Q / Query 拿去和 K 做相似度匹配 当前 token 想找什么信息
K / Key 被 Q 匹配 每个历史 token 有什么可被匹配的特征
V / Value 被 Attention 权重加权求和 如果这个 token 被关注,它应该传递什么信息

换句话说:

Q 像是在提出问题,K 像是在暴露标签,V 像是在提供内容。

Q 和 K 的点积决定 attention score:

Attention scores = Q × Kᵀ

如果某个 token 的 Q 和另一个 token 的 K 很匹配,那么模型就会认为:当前 token 应该更多关注那个历史 token。

但真正被传递到下一层的信息不是 K,而是 V。


2. 为什么三组权重会学出不同功能?

因为训练过程中,三组权重承受的“训练压力”不同。

权重 训练压力
Wq 当前 token 应该生成什么“搜索请求”?
Wk 历史 token 应该暴露什么“可搜索标签”?也就是决定自己该不该被看到。
Wv 历史 token 被选中后,应该传递什么“内容”?也就是决定被看到之后,别人应该从自己这里拿走什么信息。

更直观地说:

  • Wq 和 Wk 的任务:让正确的 tokens 互相匹配。
    例如当前 token 需要找主语、找时间、找因果关系、找前文定义,那么 Q 和 K 的匹配分数就要更高。

  • Wv 的任务:把被关注 token 中真正有用的信息传递过去。
    例如被关注的是一个名词,那么 V 里可能包含它的语义、单复数、上下文角色等信息。

所以并不是 Q/K/V 天然有语义,而是模型通过大量训练,学会了让三组投影分别承担不同功能。


3. 一个例子:代词指代

假设输入句子是:

The animal didn't cross the street because it was tired.

当模型处理到 it 这个 token 时,它需要判断:it 到底指代谁?

这里有两个可能的历史 token:

  • animal
  • street

在这个过程中,可以这样理解:

Q:当前 token 想找什么?

对于 it 来说,它的 Q 可能表达的是:

我在找一个前文出现过、可以被代词指代的主体。

K:历史 token 有什么可被匹配的特征?

对于 animal 来说,它的 K 可能表达的是:

我是一个可以被代词指代的主体,而且语义上可以 tired。

对于 street 来说,它的 K 可能表达的是:

我是一个名词,但语义上不太像会 tired 的东西。

于是模型会得到更高的匹配分数:

Q_it · K_animal > Q_it · K_street

因此,模型会让 it 更多关注 animal,而不是 street


4. 被关注之后,传递的是 V,不是 K

模型关注 animal 之后,真正传递给 it 的信息并不是 animal 的 K,而是 animal 的 V。

animal 的 V 里可能包含:

  • animal 的语义信息;
  • 它是单数还是复数;
  • 它是否可以和 tired 这个状态兼容;
  • 它在前文中的上下文角色;
  • 其他与当前预测相关的信息。

所以可以总结为:

K 决定:我该不该被看到?
V 决定:我被看到之后,别人应该拿走什么信息?

5. 用搜索引擎来类比

可以把 Attention 类比成搜索引擎:

Attention 机制 搜索引擎类比
Q / Query 用户输入的搜索词
K / Key 每篇文章的标题、标签、关键词
V / Value 文章正文内容
Q × Kᵀ 搜索匹配分数
softmax(Q × Kᵀ) × V 按相关性加权读取文章内容

也就是说:

  • Q 负责提出搜索需求;
  • K 负责判断哪些内容和这个需求匹配;
  • V 负责在匹配成功后,真正把信息传递出去。

6. 总结

Q/K/V 的本质,是 Transformer 在训练中学出来的三组不同投影。

它们不是天然有语义,而是因为在 Attention 公式中的位置不同,最终被训练成了不同功能:

Q:当前 token 想找什么?
K:历史 token 有什么可被匹配的标签?
V:历史 token 被关注后应该传递什么内容?

最核心的一句话是:

Q 和 K 决定 attention 关注谁,V 决定被关注之后传递什么信息。


Discover more from Christina's World

Subscribe to get the latest posts sent to your email.

Leave a Reply

Your email address will not be published. Required fields are marked *