Fighting Hallucinations with Counterfactuals: Diffusion-Guided Perturbations for LVLM Hallucination Suppression

(CVPR 2026)

一句话概述:作者构建了OHC-25K(物体幻觉反事实数据集,25,000 个样本)。在此基础上使用投影来缓解幻觉(类似Nullu)。

生成反事实数据集 (OHC-25K)

首先,需要一组“真实图像”和对应的“被篡改图像”。 给定一张真实图像 $I_i$ 和它正确的文本描述 $\mathcal{C}_i$。利用 GPT 生成一个包含错误物体的假描述 $\tilde{\mathcal{C}}_i$ 。接着,使用稳定扩散模型(Stable Diffusion, SDM)生成篡改图像:

将原图通过 VAE 编码器 $\mathcal{E}$ 转换成潜变量 $z_0$ :$z_0 = \mathcal{E}(I_i)$

正向扩散(加噪):

向 $z_0$ 中加入 $t_h$ 步的高斯噪声($\epsilon \sim \mathcal{N}(0,I)$):$$\overline{z} _ {t_h} = \sqrt{\overline{\alpha} _ {t_h}}z_0 + \sqrt{1-\overline{\alpha} _ {t_h}}\epsilon$$

反向扩散(以假描述为条件去噪):

使用假描述 $\tilde{\mathcal{C}}_i$ 作为条件,引导模型去噪 :

$$\tilde{z} _ {t-1} = f_\theta(\tilde{z}_t, t, \tilde{\mathcal{C}}_i), \quad t = t_h, \dots, 1$$

将去噪后的潜变量通过解码器 $\mathcal{D}$ 还原为反事实图像 $\tilde{I} _ {i,j}$ :$\tilde{I} _ {i,j} = \mathcal{D}(\tilde{z}_0)$

由于扩散过程有随机性,针对每一张原图,作者生成了 $B$ 张(论文中 $B=5$)变体图像 。

缓解幻觉

把“真图+真描述” $(I_i, \mathcal{C}_i)$ 和“假图+真描述” $(\tilde{I} _ {i,j}, \mathcal{C}_i)$ 分别输入到被测试的 LVLM(例如 LLaVA)中 。 故意用真描述配假图,是为了在模型内部激发出一种“认知冲突”(即视觉上看到了假物体,但文本没提)。

对于 LVLM 的第 $l$ 层,提取所有文本 token 的隐藏状态,并Mean-pool:真图的平均特征$h_l^{(i)}$ 、假图的平均特征(对 $B$ 个变体再次求平均)$\tilde{h}_l^{(i)}$

计算两者的差值,这个差值向量就代表了从真实语义向幻觉语义偏移的方向

$\delta_l^{(i)} = \tilde{h}_l^{(i)} - h_l^{(i)}$

将它们堆叠成一个巨大的矩阵 $\Delta_l \in \mathbb{R}^{M \times d}$ :

$$\Delta_l = [\delta_l^{(1)}; \delta_l^{(2)}; \dots; \delta_l^{(M)}]$$

由于这些偏差中可能夹杂了噪音,作者使用奇异值分解(SVD)来提取最主要的“幻觉成分” :

$$\Delta_l = U_l \Sigma_l V_l^\top$$

提取右奇异矩阵 $V_l$ 中对应奇异值最大的前 $r$ 个向量($V _ {l,r} = [v _ {l,1}, \dots, v _ {l,r}]$),这就构成了第 $l$ 层的幻觉基底库(Hallucination Basis Bank)

构建一个投影矩阵 $P_l$:

$$P_l = I - V _ {l,r}V _ {l,r}^\top$$

然后,将模型原始的隐藏状态 $h _ {l,k}^{test}$ 乘上这个投影矩阵,得到净化后的特征向量:

$h _ {l,k}^{clean} = P_l h _ {l,k}^{test}$


Fighting Hallucinations with Counterfactuals: Diffusion-Guided Perturbations for LVLM Hallucination Suppression
https://lijianxiong.space/2026/20260317/
作者
LJX
发布于
2026年3月17日
许可协议