GeminiFusion

哈基米fusion

Motivation

作者对 TokenFusion 提到的先剪枝再替换进行研究,发现在网络浅层,所有token会被标记成不重要,也就是说另一种模态会无差别替换他们,只有在深层才能符合我们最初的预期。分析认为,这个现象是因为每个标记携带有独特的信息,直接替换导致信息不可逆损失,同时不同模态也应该必须相互保留并融合。

并且作者观察到,基于交换的融合方法在性能上不如基于交叉注意力的融合方法,但是做全注意力的额外开销又构成了巨大挑战,所以提出了 GeminiFusion:对于两种模态,只有来自相应模态的两个匹配的标记会参加融合过程。

Method

作者上来首先锐评了一下 TokenFusion,因为实验证明,TokenFusion没有像预期那样根据改变 $\theta$ 而交换tokens,甚至当 $\theta = 1$ 也就是全部交换 token 的时候反而能有更好的成果。

image-20251020163117213

接下来回顾了一下由交叉注意力来做融合的方法,也就是:image-20251020164724180

把另外一个模态的信息作为 KV,做交叉注意力(其实是 CMNEXT 的做法),这样的时间复杂度是 $O(n^2c)$ 的,这个复杂度限制了我们。所以作者提出了 GeminiFusion 模块,设计为优先处理来自不同模态,空间位置相同的 patch 之间的也交互,也就是改成了对每个patch做注意力:image-20251020170005404

直接把时间复杂度变成了 $O(nc^2)$,但是也有问题:注意力得分不一致,跨模态交互里一个模态偏好的是和另一个模态更相似的 patch,以及因为现在是逐点做的,所以 softmax 就没用了。

所以引入了一个轻量级的关系判别器,用于评估不同模态的差异:也就是用一个 1*1 卷积后面接 softmax 的协同组合满足需求

image-20251106183124081

也就是把公式里计算 $K$ 的方法改成用一个轻量级判别器(源码实际上就是一个Mlp + softmax。。。)。而对于 $Y^2$ 的计算,换成了一个逐点注意力,并且为了避免自注意力有学习自己特征的倾向,作者加上了一个层级的自适应噪声,把这些都做完之后 concat 到一起,最后表示为

image-20251025150442467

作者

Doubeecat

发布于

2025-10-20

更新于

2025-11-10

许可协议