Command Palette
Search for a command to run...
基于Trie的级联IR管道高效实验计划
基于Trie的级联IR管道高效实验计划
Irene Anu Craig Macdonald
摘要
搜索引擎常被设计为级联管道,依次组合不同检索器的结果,逐阶段优化候选文档排序以形成最终排名,用于展示给用户或作为大语言模型的上下文。此类管道的端到端评估较为复杂,需衡量早期阶段的召回率和后期阶段的精确率,两者常可互换。PyTerrier凭借其声明式的管道构建特性及丰富的检索与重排序器生态,非常适合构建与评估级联检索管道。然而,由于存在重复组件,管道的对比评估可能代价高昂。本研究采用trie数据结构,为比较性管道实验制定实验计划,以提升效率,相较于顺序“线性”计划,在包含BM25、MonoT5与DuoT5的MSMARCO v2演示实验中,实验耗时减少了26%。最后,我们汇报了本科生与研究生在实验计划使用方面的用户研究结果。
一句话总结
格拉斯哥大学的研究者提出了一种基于 trie 的实验计划,替代顺序线性计划,用于对级联检索管道进行高效的对比评估,在 MSMARCO v2 上对 BM25、MonoT5 和 DuoT5 管道实现了 26% 的实验时间缩减。
核心贡献
- 论文提出一种基于 trie(基数树)的实验计划,能够识别跨检索管道的共享前缀重叠,使公共阶段只需执行一次,从而减少对比检索实验中的重复计算。
- 在 MSMARCO v2 上对 BM25、MonoT5 和 DuoT5 的实验表明,相比顺序执行计划,总实验时长减少了 26%。
- 一项面向本科生和研究生的用户研究表明,基于 trie 的可视化有助于理解管道结构,是对效率提升的补充。
引言
现代信息检索管道通常将快速的粗排检索器与成本渐增的神经精排模型串联,PyTerrier 支持以声明式方式组合这些级联组件。一个实际痛点在于:评估多个相关管道变体的实验者会因重复运行相同的早期阶段而浪费大量计算,因为 PyTerrier 现有的优化仅重用所有管道共享的最长公共前缀。作者引入了一种实验规划方法,利用基数树(trie)来识别并重用任意管道子集的所有共享前缀,将管道集合转化为一棵最小树执行计划。该方法减少了冗余工作,在 MSMARCO 上将总体实验时长最多降低 26%,并通过生成的管道可视化提升了清晰度。
方法
PyTerrier 将索引和检索组件(如排序器、精排器、特征提取器)表示为转换器。每个转换器接受一个数据框作为输入,输出一个转换后的数据框。这些转换通常作用于标准的数据框类型,包括文档、查询、已检索文档 R⊂D×Q 以及问答对。检索转换器 t 可以在一组查询 Q⊂Q 上执行,记为 [t](Q)。
为组合不同的转换器,该框架实现了一组运算符以支持声明式表达。>> 运算符称为“组合”,通过转换器的函数组合实现多阶段管道,定义为 [[t1≫t2]](Q):=[[t2]]([[t1]](Q))。其他运算符包括排序截断和线性组合,可应用于管道内的转换器。这种表示法使研究者能够简洁地表达复杂的检索管道。
参考框架示意图:
上述示意图展示了一条多阶段检索管道。初始阶段使用 BM25 检索前 100 篇候选文档,然后由 MonoT5 对该候选集进行重新排序,最后对前 20 个结果应用 DuoT5 逐对重排序以计算精细的相关性分数并产生最终排序。
PyTerrier 通过用于评估和比较检索管道的声明式 API 扩展了这一灵活的管道构建模型。pt.Experiment 函数提供了对比评估的抽象,接受一个检索管道列表、一组查询、相应的相关性判断以及评价指标,并输出一个包含每个系统计算指标的数据框。
声明式方法的一个关键挑战是重复执行。例如,在比较多个共享初始 BM25 检索阶段的管道实验中,该阶段会被多次执行。为解决这一问题,作者提出实验计划,将包含共享组件的管道对比集合分解为最小执行集。此前的工作采用最长公共前缀算法来检测并重用共享的起始阶段,但该方法无法优化非前缀的共享组件。为克服这一局限,作者设计了一种树形实验计划,通过实例化 trie 数据结构来检测重叠的管道前缀,从而识别并重用所有可能的共享前缀,避免整个管道结构中的冗余重复计算。
实验
实验评估对比了线性、最长公共前缀和基于树的基数 trie 实验计划在 MSMARCO v1 和 v2 语料上使用 BM25、MonoT5 和 DuoT5 构建的多阶段管道,查询来自 TREC Deep Learning Track。基于树的计划持续减少了总执行时间,同时保持了完全相同的 nDCG@10 分数,当避免在更大索引上的冗余检索时,节省更为显著。一项涉及本科生和研究生的用户研究证实,切换到树状计划感觉直观,并且其可视化有助于参与者理解共享前缀如何消除重复计算。
与线性计划相比,基于树的实验计划显著缩短了执行时间,在 MSMARCO v1 上缩短约五分之一,在 MSMARCO v2 上缩短超过四分之一,同时效果评分完全相同。带有前缀预计算的线性计划相比朴素的线性方法仅有微弱的效率提升,改善幅度不足 6%。相对于无预计算的线性基线,树形计划在 MSMARCO v1 上执行速度快约 19%,在 MSMARCO v2 上快约 26%。在线性计划中加入 LCP 预计算仅能带来边际加速,在较小的语料上执行时间减少 1%,在较大的语料上减少 6%。
该评估比较了 MSMARCO v1 和 v2 上的树形与线性实验计划,包括带与不带 LCP 预计算的情形。相对于朴素的线性基线,树形计划将执行时间在 v1 上缩短约 19%,在 v2 上缩短约 26%,并产生相同的效果评分。在线性计划中加入前缀预计算仅带来极小的加速(最高 6%),表明计划结构本身贡献了观察到的大部分增益。