AB
AiBoss站
百科

什么是后期交互(Late Interaction)?——ColBERT 提出的高效检索排序架构

后期交互(Late Interaction)是 Omar Khattab 与 Matei Zaharia 在 ColBERT 论文中提出的一种检索排序架构:查询与文档先各自独立编码,再在向量层面做细粒度匹配。它把昂贵的查询—文档交叉计算推迟到编码之后,使文档表示可以离线预计算,从而在保留深度语言模型表达能力的同时大幅降低检索成本。

后期交互(Late Interaction)是一种用于信息检索的排序架构:查询(query)与文档(document)先分别独立地通过深度语言模型编码成向量序列,再在编码完成之后用一个轻量的交互步骤计算两者的细粒度相似度。它要解决的问题是:基于深度语言模型的排序模型效果虽好,但必须把每一个「查询—文档」对整体送入庞大的神经网络才能得到一个相关性分数,计算开销比以往方法高出若干数量级。

这一概念由 Omar Khattab 与 Matei Zaharia 在论文《ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT》中提出,该论文被 SIGIR 2020 接收,预印本于 2020 年 4 月首次提交至 arXiv。

为什么重要

在后期交互出现之前,把深度语言模型用于检索排序的主流做法是「先检索、再重排」:先用传统模型(如词项匹配方法)从大规模文档集合中召回一批候选,再把每个候选文档与查询拼接成一个输入,逐对送入 BERT 之类的模型打分。论文指出,这类基于语言模型的排序模型虽然效果显著,但计算成本比先前方法高出数量级,原因在于每计算一个相关性分数,就要让一个庞大的神经网络完整地处理一遍查询—文档对。

这种做法的代价体现在两个层面。其一是重排阶段:候选文档越多,需要前向计算的次数就越多,延迟随候选规模线性增长。其二是端到端检索:由于分数只有在查询与文档同时输入时才能算出,文档侧无法提前准备任何可复用的表示,因此很难直接借助向量相似度索引从整个文档集合中检索,只能依赖传统模型做第一轮召回。

后期交互的意义在于改变这种耦合关系。论文称,通过「推迟但仍保留」细粒度交互,模型既能利用深度语言模型的表达能力,又能获得离线预计算文档表示的能力,从而显著加快查询处理速度。论文还指出,其交互机制对剪枝友好,使得利用向量相似度索引直接从大规模文档集合做端到端检索成为可能。

工作机制

按论文的描述,后期交互的核心做法可以拆成以下几个要点:

  1. 独立编码查询与文档。查询和文档不再拼接后一起输入,而是各自单独通过 BERT 编码,分别得到一组上下文相关的向量表示。文档侧的编码不依赖具体查询,因此可以离线完成。
  2. 离线预计算文档表示。由于文档编码与查询无关,文档向量可以在建索引阶段一次性算好并存储,查询到来时无需重新编码文档。这是后期交互降低在线开销的关键前提。
  3. 延迟的细粒度交互。查询与文档的交互被推迟到双方编码完成之后,在向量序列层面进行,用来刻画两者之间细粒度的相似性。论文把这一步描述为「廉价却强大」的交互步骤。
  4. 面向剪枝的交互机制。论文称该交互机制对剪枝友好,因而可以配合向量相似度索引使用,支持直接从大型文档集合做端到端检索,而不只是对传统模型召回的结果做重排。

从架构上看,「后期」是相对于「早期交互」而言的:早期交互在输入层就把查询与文档合并,让模型内部各层充分交叉;后期交互则把交叉压缩到编码之后的向量匹配环节。这一取舍保留了词级、上下文相关的匹配信号,同时把最昂贵的部分移出了在线路径。

典型例子

素材中出现的具体实例是论文提出的 ColBERT 模型本身。论文将其描述为一种适配深度语言模型(特别是 BERT)以实现高效检索的新型排序模型,并在两个当时较新的段落检索数据集上进行了评测。

论文报告的结果是:ColBERT 的有效性与已有的基于 BERT 的模型相比具有竞争力,并优于所有非 BERT 基线;同时,其执行速度比这些基于 BERT 的模型快两个数量级,每次查询所需的浮点运算量(FLOPs)少四个数量级。需要说明的是,这些数字是论文作者在其设定的实验条件下给出的结论,属于该论文的主张,而非独立复现的结果。

论文还给出了两类使用场景:一是对传统模型已召回的文档做重排,降低重排成本;二是借助向量相似度索引,直接从大规模文档集合做端到端检索。后者正是后期交互区别于普通重排模型的地方。

边界与常见误解

第一,后期交互不等于「不做交互」。它推迟的是交互发生的时机,而非取消交互;查询与文档之间仍然存在细粒度的相似度计算,只是这一步发生在编码之后、且计算代价较低。把它理解成「只用两个句向量的余弦相似度」并不准确。

第二,后期交互的收益依赖文档表示可离线预计算这一前提。论文的论证建立在文档编码与查询无关的基础上;如果应用场景要求文档表示随查询动态变化,这一前提便不成立,预计算带来的加速也就无从谈起。

第三,论文报告的速度与算力优势是相对于其所对比的基于 BERT 的排序模型而言的,并且是在论文选定的两个段落检索数据集上测得。这些结论不应被外推为「在任何检索任务、任何数据规模上都成立」的普遍规律。

第四,后期交互本身是一种架构思路,而非某个具体产品的名称。ColBERT 是论文给出的一个实现,其具体配置、训练方式与索引结构由论文定义;把后期交互等同于 ColBERT 的全部工程细节,或反过来认为后期交互只能以这一种形式实现,都是常见的混淆。

第五,后期交互并未消除深度模型的使用成本,而是重新安排了成本发生的位置:文档编码从在线转为离线,代价是需要存储并维护每个文档的向量序列,存储开销与索引规模随文档数量增长。论文并未把这一点作为主要讨论对象,但在实际部署中它构成需要权衡的代价。

参考资料