Cross-encoder models, which jointly encode and score a query-item pair, are prohibitively expensive for direct k-nearest neighbor (k-NN) search. Consequently, k-NN search typically employs a fast approximate retrieval (e.g. using BM25 or dual-encoder vectors), followed by reranking with a cross-encoder; however, the retrieval approximation often has detrimental recall regret. This problem is tackled by ANNCUR (Yadav et al., 2022), a recent work that employs a cross-encoder only, making search efficient using a relatively small number of anchor items, and a CUR matrix factorization. While ANNCUR's one-time selection of anchors tends to approximate the cross-encoder distances on average, doing so forfeits the capacity to accurately estimate distances to items near the query, leading to regret in the crucial end-task: recall of top-k items. In this paper, we propose ADACUR, a method that adaptively, iteratively, and efficiently minimizes the approximation error for the practically important top-k neighbors. It does so by iteratively performing k-NN search using the anchors available so far, then adding these retrieved nearest neighbors to the anchor set for the next round. Empirically, on multiple datasets, in comparison to previous traditional and state-of-the-art methods such as ANNCUR and dual-encoder-based retrieve-and-rerank, our proposed approach ADACUR consistently reduces recall error-by up to 70% on the important k = 1 setting-while using no more compute than its competitors.
翻译:交叉编码器模型通过对查询-条目对进行联合编码与评分,在直接用于k近邻(k-NN)搜索时计算成本过高。因此,k-NN搜索通常采用快速近似检索(如使用BM25或双编码器向量)后接交叉编码器重排序的策略;然而,近似检索常导致显著的召回率损失。针对该问题,ANNCUR(Yadav等人,2022)提出了一种仅使用交叉编码器的方法,通过少量锚点条目和CUR矩阵分解实现高效搜索。虽然ANNCUR的单次锚点选取策略能在平均意义上近似交叉编码器距离,但这种方法丧失了精确估计查询邻近条目距离的能力,导致关键端任务(top-k条目召回率)出现性能损失。本文提出ADACUR方法,通过自适应、迭代且高效的方式,最小化实际重要的top-k近邻近似误差。该方法通过反复利用当前锚点集执行k-NN搜索,并将检索到的近邻条目添加至下一轮锚点集来实现。在多个数据集上的实验表明,与ANNCUR及基于双编码器的检索-重排序等传统及最新方法相比,ADACUR在重要的k=1设定下稳定地将召回误差降低高达70%,同时计算开销与对比方法持平。