根据ES8文档,当运行k=100的ANN查询时,Elastic将:
1.使用HNSW近似查找100个最近的邻居
1.计算每个结果的相似性,并使用指定的相似性算法(例如,dot_product
)对它们进行排名
我理解,通过设计,ANN在步骤1中使用近似值。所以这100个结果并不能保证是100个最近的邻居。基准测试中的recall
指标反映了ANN返回的最近邻居的百分比,这不太可能是100%。
但是,在步骤2中是否也使用了近似值?给定一组100个结果,是否保证它们具有准确的排名和相似性得分(例如,使用精确的dot_product
计算)?
1条答案
按热度按时间wd2eg0qa1#
我在elastic.co论坛和received an answer上发布了同样的问题:
点积计算不是近似的。当存储向量时,使用实际点积计算来构建图,并且当探索图时,我们计算向量之间的实际点积。