60 秒回答模板

Self-Attention 里同一个 token 表示会分别乘以 Wq、Wk、Wv 得到 Q、K、V。Q 表示当前 token 想找什么信息,K 表示每个 token 能被匹配的索引特征,V 表示真正要被聚合的内容。如果不做线性变换,就只能在原始 embedding 空间做固定匹配,表达能力弱。线性投影让模型学习不同子空间的关系,多头注意力还会把表示拆到多个头里捕捉不同模式。

考点 Q 查找信息
难度 真实面经题
回答目标 讲清方法、取舍和追问

深入解析

01

角色分离

Q 用于发起查询,K 用于被匹配,V 用于提供内容。三者来自同一输入但承担不同功能。

02

提升表达能力

可学习线性变换让模型决定哪些维度用于匹配、哪些维度用于传递信息,而不是受原始 embedding 限制。

03

支持多头机制

不同头有各自的 QKV 投影,可以学习语法、位置、语义、实体等不同关系模式。

04

区分匹配和传递

注意力分数由 Q 和 K 决定,但真正汇总的是 V。把匹配空间和内容空间拆开后,模型可以一边学习谁该关注谁,一边学习应该传递什么信息。

05

避免表达退化

如果直接用原始输入同时承担查询、索引和内容三种角色,模型只能在同一表示空间里完成所有关系建模。QKV 投影给了模型重新组织维度和学习任务相关子空间的能力。

06

联系参数学习

Wq、Wk、Wv 都是随任务一起训练的参数,模型会自动学习哪些维度适合做匹配、哪些维度适合传递内容。回答到这里能说明你理解的不是固定特征工程,而是端到端可学习表示,也能解释为什么不同层不同头会学到不同关系。

易错点

  • 不要把 QKV 说成三份完全不同的输入,它们通常来自同一输入的不同投影。
  • 不要只背公式,要讲清查询、匹配和内容聚合的角色差异。
  • 不要忽略多头注意力,QKV 投影是多头表达能力的重要来源。

面试官追问

Q 和 K 为什么不共用一个投影?

它们角色不同,一个表达查询需求,一个表达可匹配特征,独立参数能提升灵活性。

V 为什么不直接等于输入?

V 投影让模型选择要传递的内容维度,也能配合多头在不同子空间聚合信息。

多头注意力和 QKV 有什么关系?

每个头通常有独立的 QKV 投影,在不同低维子空间做注意力,再拼接回输出。