CeQe: Grounding Lexical Retrieval in Semantic Evidence
Adam Kahirov, Umesh Deshpande, Swaminathan Sundararaman
cs.IR, cs.AI
2026-08-01
BM25 漏掉换种说法的答案,重排也救不回。CE-QE 把交叉编码器的 token 归因挑出来加回 BM25 查询,NQ 召回 0.32→0.47,索引不动。
BM25 这类词法检索靠精确关键词匹配,换个说法的答案就搜不到。这叫词汇鸿沟(vocabulary gap):当相关文档用的词和查询不一样时,BM25 根本不会把它放进候选集。而重排、融合这些下游环节只能在已经召回的文档里重新排序,捞不回一开始就没进池子的文档。召回天花板在第一阶段就锁死了。
这是个真问题:混合检索(词法加语义)已经是标配,但只要词法这一路漏掉了,后续怎么加权都补不回来。
CE-QE(Cross-Encoder Query Expansion)的核心是借语义检索的结果来给词法查询扩词,但扩得有理有据。流程是这样:
几个设计选择有明确理由。扩词的种子来自语义检索的结果,而不是 BM25 自己的 top 结果,后者正是经典伪相关反馈(RM3)的做法,会用可能本来就错的 BM25 结果自我强化、把查询带偏。挑词靠交叉编码器的归因,而不是词频统计,因为词频分不清通用词和决定性词;归因能看出模型到底把哪些 token 当成了判相关的依据。每个扩词都从检索到的段落里逐字复制,不像 HyDE、Query2doc 那样让大模型凭参数知识生成文本,因此不会引入语料库里根本不存在的词。代价只有一个:交叉编码器的归因提取,而混合管线本来就要跑交叉编码器做重排。
SESF(Semantically Enriched Score Fusion)是 CE-QE 的融合变体,把扩词后的 BM25 结果和语义分数融合再重排。
在 BEIR 的七个数据集上,CE-QE 把词法召回拉了上来,而且涨得最猛的正是查询和答案词汇差异大的地方。
| 数据集 | Recall@100(原 BM25 → 加 CE-QE) |
| NQ | 0.32 → 0.47 |
| TREC-COVID | 0.56 → 0.67 |
| Climate-FEVER | 0.19 → 0.26 |
| FEVER | 0.71 → 0.70(几乎持平) |
融合层面,SESF 比交叉编码器分数融合在 Recall@100 上高 2.5%,比 SPLADEv2 和 ColBERTv2 在 nDCG@10 上分别高 5.3% 和 4.6%。代价是延迟:RRF 约 154 毫秒,交叉编码器分数融合约 400 毫秒,完整 SESF 约 557 毫秒。
作者还点出一个被忽视的成本结构:重排才是大头。无界重排会让每查询从几十毫秒涨到 25 到 86 秒,慢 485 到 2051 倍,最坏在 TREC-COVID 上。CE-QE 的价值在于把召回天花板在源头抬高,这正是重排救不了的部分。
对做检索系统的从业者,这是一个便宜、不碰索引的办法来抬高混合检索的召回天花板。BM25 索引完全不用改,扩词只是普通查询输入,任何词法索引都能直接接。召回这一环最值钱,因为重排再强也排不出没召回的文档。
FEVER 上几乎没涨也说明该在哪用:查询和答案本来就用同一套词时,扩词是白花钱,该按「词法-语义一致性」这种廉价信号决定要不要扩。
作者承认:只在扁平 BM25 上测到 880 万文档,十亿级分块、和层级索引组合的效果没量;只研究了两个重排器,归因质量直接决定扩词质量,标定差的重排器会挑出不那么有区分度的词;还建议用廉价信号做门控决定何时扩词,但门控本身没评估。
一处存疑:NQ 0.32 到 0.47 的提升很显眼,但论文没给召回提升最终落到端到端问答准确率上的数字,召回和下游任务之间的转化在这篇里是断开的。