外观
Self-Attention 中的 Q、K、V 到底是什么?
3 分钟速学卡
30 秒口述: 在 Self-Attention 中,Q、K、V 都由同一输入序列经过不同可学习线性投影得到。Q 表示当前位置想找什么,K 表示每个位置可被怎样匹配,Q 与 K 的相似度经缩放、Mask 和 Softmax 得到权重,再对 V 做加权汇总。Q、K、V 不是固定语义标签;它们的职责由训练目标学出,维度、Mask 和数值稳定性必须一起检查。
- 本质: Q/K 计算关注关系,V 携带被汇总的内容。
- 核心机制: Q、K、V 是输入的三组可学习投影;QK 点积经缩放、Mask 和 Softmax 形成权重。
- 关键判断: 输出是 V 的加权组合;面试时要能推公式、形状和 Mask 边界。
- 项目落地: 示例验证:用长度 3、单头小矩阵手算 QK 分数、Mask、Softmax 和输出,并断言每行权重和接近 1。实现中同时打印 [batch, heads, seq, dim],可快速发现转置或广播错误。
- 边界与坑: “Q 是用户问题,K 是数据库键,V 是答案”:只是类比,不是张量定义;“Q、K、V 来自三个不同数据源”:Self-Attention 中通常来自同一输入的不同投影。
目录
面试官为什么问
这道题用来区分“背过数据库类比”和“能推张量形状、Mask 与计算流程”。中高级回答还应连接多头注意力、KV Cache 和复杂度。
小白先看懂
一名参会者拿着问题卡寻找资料:问题卡是 Q;每份资料封面的索引词是 K;资料正文是 V。问题卡先和所有索引词计算匹配度,再按匹配度汇总正文。Self-Attention 中每个 Token 同时扮演提问者和资料提供者。
类比没有体现 Q/K/V 都是向量投影,也没有说明 Softmax、因果 Mask 和多头子空间,因此不能把 K 当数据库主键或把 V 当原文复制。
图:教学图片|Self-Attention 中的 Q、K、V 到底是什么?
替代文本: 16:9 中文教学图,会议桌上提问卡匹配多份资料索引,再按权重汇总正文;右侧是简化矩阵流程。

读图结论: Q/K 决定关注谁,V 决定取回什么。
这张图片用于建立 Q、K、V 分工及聚合流程的空间直觉。精确公式、参数、失败分支和事实边界仍以正文与 Mermaid 为准。
图片生成记录: model=gpt-image-2,generated=2026-07-15,prompt_version=v1,reviewed=2026-07-16,review_basis=user-confirmed;查看生成 Prompt。
图:Q 匹配 K 后聚合 V
替代文本: 当前 Token 的 Q 与序列中每个 K 做点积,经过缩放、Mask 和 Softmax 得到注意力权重,权重再对对应 V 加权求和形成输出。
图表加载中…
读图结论: Q/K 决定“关注谁”,V 决定“取回什么”,三者共同形成上下文相关输出。
核心原理
若输入 (X\in\mathbb{R}^{n\times d_{model}}),则:
缩放项避免维度增大导致点积方差过大、Softmax 过饱和;Mask (M) 可屏蔽 padding 或未来位置。输出每一行是对所有可见 V 的加权组合。
项目和生产视角
示例验证: 用长度 3、单头小矩阵手算 QK 分数、Mask、Softmax 和输出,并断言每行权重和接近 1。实现中同时打印 [batch, heads, seq, dim],可快速发现转置或广播错误。
生产上关注长序列显存、低精度 Softmax 数值稳定和 Mask 泄漏。解码 KV Cache 缓存历史 K/V,但每步仍计算新 Q 并读取历史缓存;本文未提供真实性能数据。
常见错误回答
- “Q 是用户问题,K 是数据库键,V 是答案”:只是类比,不是张量定义。
- “Q、K、V 来自三个不同数据源”:Self-Attention 中通常来自同一输入的不同投影。
- “相似度最大就只取一个 V”:Softmax 通常产生分布并加权多个 V。
- “KV Cache 缓存 QKV”:标准自回归缓存主要保存历史 K/V。
递进追问
- 为什么点积要除以
? - Padding Mask 与 Causal Mask 有什么区别?
- Cross-Attention 的 Q、K、V 来自哪里?
- 多头注意力如何拆分维度?
- KV Cache 为什么只缓存 K/V?
关联阅读
总结
一句话记忆: Q/K 计算关注关系,V 携带被汇总的内容。
- Q、K、V 是输入的三组可学习投影。
- QK 点积经缩放、Mask 和 Softmax 形成权重。
- 输出是 V 的加权组合。
- 面试时要能推公式、形状和 Mask 边界。