在近似搜索后加入重排序步骤,通过使用精确距离计算优化候选列表,可以提高结果的准确性。近似最近邻 (ANN) 方法,如局部敏感哈希 (LSH) 或基于图的索引,通过牺牲精确性来换取计算效率,从而优先考虑速度。这些方法可以快速生成候选列表,但由于近似误差,可能会错过最接近的匹配项。重排序将精确距离度量(如欧几里得或余弦相似度)应用于此较小的子集,从而纠正初始搜索中引入的不准确性。这种混合方法平衡了速度和精度,确保最相关的结果排在最前面,同时保持可控的计算时间。
重排序通过确保最终结果按真实相似度排序来直接提高精度。例如,在推荐系统中,ANN 步骤可能会在几毫秒内检索 100 个候选项目,但由于量化或哈希伪影,其中一些可能是误报。通过使用精确计算对这 100 个候选项目进行重排序,系统可以过滤掉不匹配的项目,并显示与查询真正相似的项目。精度——衡量为前 K 个列表中相关结果的比例——会提高,因为精确度量可以消除近似可能引入的歧义。这在图像检索等应用中尤其重要,因为像素值或嵌入的细微差异可能会严重影响相关性。重排序步骤充当质量检查,确保系统的输出与真实排名紧密对齐。
与精度提升相比,计算上的权衡是最小的。精确距离计算在大规模情况下计算成本很高,但将其应用于候选列表(例如,100-1,000 个项目)只会增加少量开销。例如,使用 FAISS 进行近似搜索的向量数据库可能在 5 毫秒内检索 1,000 个候选项目,然后花费额外的 2 毫秒使用精确余弦相似度对前 100 个项目进行重排序。这种两阶段方法避免了穷举地将查询与数十亿个向量进行比较的不切实际的成本,同时仍然提供精确的结果。开发人员可以调整候选列表的大小,以平衡其用例的延迟和准确性。在实践中,这种方法广泛用于搜索引擎、欺诈检测和语义文本匹配,在这些应用中,速度和准确性都是不可协商的。