Learning from Failures: Retrieval-Centric CoT via Hard Negatives for Unified Multimodal Retrieval
Zelong Sun, Jun Wang, Kaicheng Yang, Tiancheng Gu, Ziyong Feng, Zhiwu Lu
cs.CV
2026-08-06
UniME-R1 放弃只对着查询生成 CoT 的做法,先做一次检索,让 adviser 分析候选里的混淆点再写纠偏式思维链,在 MMEB-V2 上以 2B 模型拿到 69.9,超过所有更大基线。
统一多模态检索要把文本、图片、视频、文档这些异构输入映到同一个表示空间。把视觉语言模型直接当编码器用很高效,但把原始输入压成一个向量,往往会丢掉区分目标与相似候选的细粒度线索。
最近的 Reasoner-Embedder 方法想用思维链来补救:先让模型生成一段推理或描述,再把这段文字编码进查询。问题是这些推理只看查询本身,不看检索器实际返回了什么。它解释得了「查询在说什么」,却说不清「检索器到底在哪混淆了」。这种推理还会在初次检索本来就很准时引入冗余噪声。
UniME-R1 的核心论点:有效的检索推理应当基于检索反馈,而不是基于查询。框架分两个角色。双模态编码器(dual-mode embedder)先用判别模式做一次初始 top-k 检索。检索感知的 adviser 逐个分析候选,找出检索器混淆的判别线索。它把故障诊断和语义纠正分开:<cotfocus> 字段提炼被混淆的属性、关系或事件,<cotanswer> 把这些线索转成补充原始查询的简洁描述,两者合起来就是检索中心思维链(RC-CoT)。
推理上还有个自适应的「重排或重检」策略。adviser 判断目标是否已在 top-k 里:在就直接重排候选;不在就把 RC-CoT 拼到原查询后,用生成式编码模式重新提取表示,在全库重检。
训练三步走:挖难负样本模拟真实检索失败;联合优化直接检索与 RC-CoT 增强检索;用监督学习和面向检索的强化学习(GRPO,四个奖励:格式、判定、重排、检索)对齐 adviser。编码器用 Qwen3-VL-2B/4B 加 LoRA,adviser 用 Qwen3-VL-4B。
MMEB-V2 上两个规模都拿了最佳总体分。
| 方法(规模) | 总体 |
| Embed-RL(最强基线) | 66.8 |
| UniME-R1-2B | 69.9 |
| UniME-R1-4B | 70.3 |
2B 模型就已经超过所有中等规模(4B-7B)基线,说明增益主要来自框架而非规模。和最直接的 Reasoner-Embedder 基线比,2B 版相对 UME-R1、TTE 分别高 9.8 和 6.8 个点。Flickr30K、COCO、ShareGPT4V、Urban1K 等通用检索任务上也有稳定提升。
最有说服力的消融是「检索反馈到底有没有用」。只看查询的思维链总体 65.6,换成随机候选只涨到 66.5,而基于真实 top-k 的 RC-CoT 到 68.5,分别高 2.9 和 2.0 个点。去掉 <cotfocus> 故障诊断字段会掉 0.6 个点,说明总结候选暴露的混淆本身有用。重排与重检两条路互补,学习到的路由策略最优;但 oracle 路由(每条都选更好的那条)能到 72.2,说明路由决策还有提升空间。
它把检索推理从「围绕查询发散」改成「围绕检索失败收敛」,这个视角转换是实打实的贡献。增益虽然只有几个点,但在多个基准和模态上一致,且 2B 模型能打过更大的基线,说明难负样本驱动的反馈式推理是正路子,不是堆参数。
对做检索系统的人,这是个可以直接借鉴的设计:推理要看着检索结果写,而不是闭门造车。
代价是延迟。初始检索、adviser 逐个分析候选、可能还要全库重检,这套流程比直接编码一次贵得多。论文用「目标在 top-k 就不重检」来缓解,但 adviser 本身是独立的 4B 模型,部署上多了一个部件。
2B 到 4B 只涨 0.4 个点,边际收益已经在递减。训练数据全部来自 MMEB-V2 训练集,跨域泛化只测了零样本检索,没测更极端的分布外场景。oracle 路由与学习路由之间 2.3 个点的差距,说明 adviser 判断「该重排还是该重检」这件事做得还不够准。