Interview: Self-Attention为什么需要Q、K、V三个矩阵?用同一个矩阵行不行?


题目解析

这道题考察候选人对QKV分离设计的本质理解。表面上看QKV都来自同一个输入X,似乎可以共享参数,但这会极大限制模型的表达能力。面试官想看你能否从功能分工的角度给出有说服力的解释。

解答思路

Q、K、V承担不同角色:Q代表我在找什么,K代表我能提供什么,V代表我的实际内容。如果Q=K=V=X,注意力矩阵退化为X·X^T经softmax后乘X,这本质上是一个对称的相似度加权平均,无法实现非对称的信息检索。分离投影让模型可以学习:token A关注token B,不意味着B也必须关注A。

关键要点

三个矩阵的核心价值:(1)打破对称性——Q和K使用不同投影时,attention矩阵不必对称,允许非对称关系建模;(2)解耦检索与内容——用什么标准检索(Q·K)和检索到什么内容(V)是独立的;(3)增加参数空间的秩——共享矩阵时有效参数空间受限,分离后模型容量更大。

加分回答

可以提到线性Attention的工作(如Performer),它将Q和K分别通过特征映射后做外积,进一步说明QK分离的必要性。也可以讨论实验证据:有论文尝试过tied QK(sharing Q and K projections),发现性能有明显下降,尤其在需要建模长距离非对称依赖的任务上。

常见踩坑

最常见的错误回答是三个矩阵增加了参数量所以效果更好——这是因果倒置。参数量相同时分离投影依然优于共享投影。另一个误区是认为V矩阵不重要,实际上V的投影决定了输出的表达空间,同样关键。