Self Attention与Cross Attention的区别

发布时间:2026/6/26 6:30:12

Self Attention与Cross Attention的区别 1、Attention 本质上是在 token 之间分配权重在 Transformer 里模型处理的基本单位是 token可以是文本 token也可以是图像 patch token、动作 token、状态 token甚至是多模态模型里的任意特征 token。Attention 做的事情可以理解为当前 token 想更新自己时应该重点参考哪些 token里面有三个关键向量Query当前 token 拿什么去查 Key其他 token 拿什么被匹配 Value其他 token 真正提供什么信息最后得到的新 token 表示本质上就是从一批 Value 里按权重加权求和得到的。2、Self Attention 是同一组 token 内部互相交流假设现在有一组 token[t1, t2, t3, t4]在 Self Attention 里每个 token 都会看这组 token 里的其他 token包括它自己。比如 t2 想更新自己的表示它会分别和 t1、t2、t3、t4 计算相关性。然后根据这些相关性决定 t2 更新时更应该参考谁。这时 Q、K、V 都来自同一组 tokenQ [t1, t2, t3, t4] K [t1, t2, t3, t4] V [t1, t2, t3, t4]所以 Self Attention 解决的问题是同一组 token 之间谁和谁更相关比如在视觉模型里一张图被切成多个 patch tokenSelf Attention 就是在建模这些 patch token 之间的关系。某个 patch token 更新自己时可以参考图像中其他位置的 patch token。3、Cross Attention 是一组 token 去看另一组 tokenCross Attention 里会出现两组 token。假设有两组 tokenA [a1, a2, a3] B [b1, b2, b3, b4]在 Cross Attention 中A 这组 token 会去关注 B 这组 token。比如 a2 想更新自己不是去看 a1、a2、a3而是去看 b1、b2、b3、b4。这时 Q 来自 AK 和 V 来自 BQ A 组 token K B 组 token V B 组 token所以 Cross Attention 解决的问题是一组 token 如何从另一组 token 里取信息举个更贴近多模态模型的例子A 动作 tokenB 图像 token动作 token 生成时需要知道图像里哪些位置更重要于是动作 token 作为 Query去图像 token 里找相关信息。这个过程就是 Cross Attention。4、两者的核心区别Self Attention 和 Cross Attention 最大的区别就是 token 来源不同。对比项Self AttentionCross Attentiontoken 来源同一组 token两组 tokenQ 来自哪里token 组 Xtoken 组 AK 来自哪里token 组 Xtoken 组 BV 来自哪里token 组 Xtoken 组 B关注范围自己这组 token 内部A 组 token 去看 B 组 token典型作用建模内部关系融合外部信息

相关新闻