Understanding and Mitigating Hallucinations in Multimodal Chain-of-Thought Models
(CVPR 2026)
motivation
发现一:幻觉是由“思考”过程传播到“回答”阶段的。实验发现,思考阶段和回答阶段的幻觉发生率呈高度正相关。通过注意力可视化进一步证实,MCoT 模型在生成最终答案时,注意力严重偏向于自身的“思考词汇”(Thinking Tokens),而对图像的注意力比例极低(小于 0.04)。
发现二:幻觉主要产生于“发散性思维”(Divergent Thinking)。作者将模型的推理链进行细粒度分析,发现虚构的文本主要产生于“联想推理”步骤中,这被称为发散性思维。在这一模式下,模型倾向于依赖其内部的推理能力,而不是真实的视觉证据。实验表明,发散性思维阶段产生幻觉的概率是正常思考阶段的约 5 倍。


方法
1. 前置计算:获取视觉激活概率
给定视觉输入 $v = [v_1, …, v_m]$,MCoT 模型首先会将其映射为隐藏状态,然后通过语言头和 softmax 层转化为词表 $V$ 上的概率分布 $p_v \in \mathbb{R}^{\vert{}V\vert{} \times m}$。 对于当前正在生成的预测词元(token) $y_t$,模型会提取其对应的视觉激活概率 $p_v(y_t) \in \mathbb{R}^m$。这个概率向量代表了该词元是由各个视觉片段(图像特征)生成的可能性大小。
2. 核心指标:视觉熵(Visual Entropy)
为了衡量模型当前生成的内容在多大程度上依赖于视觉输入,作者基于上述概率定义了视觉熵 $E(y_t, v)$:
$$E(y_t, v) = -\frac{\sum _ {i=1}^m p _ {v,i}(y_t) \log(p _ {v,i}(y_t))}{\log m}$$
- $p _ {v,i}(y_t)$:表示概率向量 $p_v(y_t)$ 中的第 $i$ 个元素。
- $m$:视觉输入的序列长度。
- $\log m$:用于将计算出的熵值归一化到 $[0, 1]$ 的区间内,方便统一比较。
当模型在推理时对图像的关注度降低、不确定性增加时,这个熵值就会变高。
3. 阈值判定:定位“发散性思维”
由于论文发现幻觉主要集中在“发散性思维”阶段,因此需要在生成过程中实时找出这些阶段。 系统会设定一个阈值 $\gamma$(实验中通常取 0.5)。在第 $t$ 个推理步骤中,如果当前预测词元的视觉熵 $E(y_t, v) > \gamma$,则判定模型正在进行发散性思维,可能要开始产生幻觉了,此时需要触发干预。如果低于该阈值,则视为正常思考,继续常规解码。
4. 动态解码干预(Mitigating Hallucinations)
一旦检测到发散性思维,模型就会在标准的自回归解码概率 $p_t$ 基础上施加一个约束,计算出干预后的新概率分布 $\hat{p}_t$:
$$\hat{p}_t(\cdot\vert{}v, q, y _ {<t}) = p_t(\cdot\vert{}v, q, y _ {<t}) \cdot e^{-\alpha \cdot E(\cdot, v)}$$
- $q$ 与 $y _ {<t}$:分别代表用户的查询(Query)和历史生成的词元序列。
- $\alpha \in [0, 1]$:干预程度(Intervention Degree),用于控制对高熵词元的惩罚力度(最优取值通常在 0.75 左右)。
- $e^{-\alpha \cdot E(\cdot, v)}$:这是一个衰减项。视觉熵越高的词元,受到的惩罚越大,被选中的概率就越低。