REVIS:Sparse Latent Steering to Mitigate Object Hallucination in Large Vision-Language Models
(arxiv 2026)
和VTI差不多。
方法
定义原始视觉向量 :$v _ {raw}^{(l)} = \mathbb{E} _ {\mathcal{D} _ {ext}}[h _ {gt}^{(l)} - h _ {\emptyset_hall}^{(l)}]$
- $h _ {gt}^{(l)}$:有图片输入,且回答正确(事实)时的隐藏状态。
- $h _ {\emptyset_hall}^{(l)}$:无图片输入,但模型开始瞎编(幻觉)时的隐藏状态。
定义语言先验向量:$v _ {prior}^{(l)} = \mathbb{E} _ {\mathcal{D} _ {ext}}[h _ {\emptyset_hall}^{(l)} - h _ {\emptyset_unk}^{(l)}]$
$h _ {\emptyset_unk}^{(l)}$:无图片输入,且模型诚实回答“我不知道”(拒绝回答)时的隐藏状态 。这个向量代表了模型脱离视觉约束、纯靠语言概率生成内容的“幻觉方向”。
为了得到纯净的视觉信息,需要从 $v _ {raw}^{(l)}$ 中剔除掉与 $v _ {prior}^{(l)}$ 平行的成分。REVIS 使用格拉姆-施密特(Gram-Schmidt)正交化过程 :
$$
\begin{align}
v _ {vis}^{\perp(l)} &= v _ {raw}^{(l)} - \text{proj} _ {v _ {prior}^{(l)}}(v _ {raw}^{(l)})
\\
v _ {vis}^{\perp(l)} &= v _ {raw}^{(l)} - \frac{v _ {raw}^{(l)} \cdot v _ {prior}^{(l)}}{|v _ {prior}^{(l)}|^2} v _ {prior}^{(l)}
\end{align}
$$
层选择
REVIS 自动寻找区分度最高的最深层 $L ^ \ast$ 。
对于任意隐藏状态 $h$,定义其“幻觉风险”为它与纯净视觉向量的负余弦相似度(即:越不像视觉向量,风险越高):
$$R(h) = -\text{CosSim}(h, v _ {vis}^{\perp(l)})$$
使用校准数据集 $\mathcal{D} _ {cal}$(包含事实回答集合 $\mathcal{H} _ {fact}$ 和幻觉回答集合 $\mathcal{H} _ {hall}$),从最后一层向前搜索,找到第一个满足“可分离性”的层 :
$$L ^ \ast = \max { l \mid R(\mathcal{H} _ {hall}^{(l)}) - R(\mathcal{H} _ {fact}^{(l)}) > 0 }$$
为了避免误伤正常生成的逻辑,REVIS 基于事实样本的风险分布设定一个干预阈值 :
$$\tau = \text{Percentile}({ R(h) \mid h \in \mathcal{H} _ {fact}^{(L ^ \ast)} }, k)$$
对于每一个生成步 $t$:
计算当前风险:
$$R_t = R(h_t^{(L ^ \ast)}) = -\text{CosSim}(h_t^{(L ^ \ast)}, v _ {vis}^{\perp(L ^ \ast)})$$
计算门控系数 ($\lambda_t$):
$$\lambda(t) = \alpha \cdot \mathbb{I}(R_t > \tau)$$
注入修正:
$$\tilde{h}_t^{(L ^ \ast)} = h_t^{(L ^ \ast)} + \lambda(t) \cdot v _ {vis}^{\perp(L ^ \ast)}$$