多作用域同时检索时,结果合并需要统一的相关性标准
别名: 集合融合 · federated ranking · 跨库排序
概念解释
一次查询打进几个作用域——邮件与云盘、本站与帮助中心、多个仓库——再把命中交错进同一列表,这份交错必须共享同一套相关性尺度。各库自己的分数(本库 BM25、本库点击率)不能直接比大小:帮助中心的 12.4 和邮件的 0.8 单位不同,交错会变成「哪个库的分数膨胀谁就排前」。联邦检索里的 collection fusion、CombSUM / CombMNZ、库选择(resource selection)处理的就是把异质分数接到一条可比较的轴上。
合并不是把几份排好序的列表洗牌。没有统一尺度,洗牌只是把不可比的第一名硬排在一起。
机制
相关性分数相对它所在的候选集。IDF 随集合改变,字段权重随模式改变,点击先验随库的使用方式改变。把原始分并排放,等于拿不同量尺量出的长度比长短。结果是某一作用域系统性霸占首屏:不是因为它更相关,而是因为它的分数量级更大,或它的集合更小、IDF 更大。人看见的「最相关」其实是「分数最膨胀的那个库」。
统一尺度的办法是变换:按库内百分位或 z 分数归一、用跨库训练的点击模型、或先做库选择再在入选库上用同一打分器重打。无论哪一种,合并发生在变换之后。变换之前的分数只在库内有效。
怎么研究
用已知相关文档分布在多个库的查询,比较「按原始分交错」与「归一化后交错」。
- 范式:联邦检索评测(TREC Federated Search、多个垂直库)报告跨库 nDCG,并单独报告每个库在前十中的份额。实验室任务可以问「前三是不是都来自同一个看起来更相关的类型」。
- 自变量:分数变换(无 / 库内百分位 / 跨库学习排序)、库大小是否悬殊。
- 因变量:跨库 nDCG、前十的库份额相对相关文档真实分布的偏离、某一库霸占前三的频率。
- 方法论注意点:若相关文档本来就集中在一个库,霸占是正确的。金标准要按对象相关与否来标,不要按「每个库都该有代表」的配额。配额是多样性政策,不是相关性尺度。
边界
各作用域的结果本来就分栏呈现(邮件一栏、文件一栏),不需要统一尺度,栏内排序即可;强行合成一条列表才会触发这个问题。实时库与归档库的「相关」定义不同(新邮件 vs 旧合同),一条尺度会压错时间偏好,应允许按类型分栏或按任务切换尺度。安全检索里某些库的分数不能外送,只能在库内排序后交前 k 条,融合算法要能在截断列表上工作(如 CombMNZ 的变体),不能假设看得到全部分数。
怎么落地
- 多范围合一列表之前,先规定一条跨库分数:同一打分器重打,或库内归一后再融合。禁止直接比较各引擎的原始分。
- 检查前十的库份额:若某库稳定占满而它并不持有更多相关对象,尺度还没统一。
- 多样性(每类至少一条)若需要,写成单独政策,不要靠某一库分数膨胀来「自然」露出。
- 验证:构造两个库,相关文档均匀分布,但 A 库原始分数量级大一个零。按原始分合并时 A 应霸占前十;变换之后前十应接近真实分布。若变换后仍全是 A,融合没有校准。