ES8的ANN能否为k结果提供准确的相似度分数与排名?第二步是否近似?
ES8近似最近邻(ANN)的相似度分数与排名准确性问题
核心结论
针对问题:步骤2不存在近似处理,筛选出的k个结果的相似度分数和排名是精确计算得出的。
详细说明
在ES8中执行k值为100的ANN查询时,流程分为两步:
- 第一步:通过HNSW近似算法筛选出100个候选近邻。这一步属于近似处理,无法保证选出的是全局真实Top100最近邻,官方基准测试的
recall指标也显示召回率难以达到100%。 - 第二步:对第一步筛选出的100个候选结果,使用指定的相似度算法(如
dot_product)精确计算每个结果的相似度分数,再基于这些精确分数完成排名。
简单来说:最终返回的k个结果不一定是全局范围内最相似的Top k,但针对这k个结果本身,它们的相似度分数是准确计算的,排名也是基于这些精确分数的真实排序,不存在近似处理。
内容的提问来源于stack exchange,提问作者RvPr
相关产品推荐
相关产品推荐

