近似最近邻 (ANN) 搜索中的假阳性和假阴性是由于在平衡速度和准确性方面固有的权衡而产生的。 假阳性 发生在 ANN 系统返回的项实际上不是查询向量的最近邻时。例如,在产品推荐系统中,假阳性可能是向搜索“跑鞋”的用户展示的一款鞋子,即使结果是一双与此无关的正式礼服鞋。相反, 假阴性 发生在数据集中存在真正的最近邻,但未在搜索结果中返回时。例如,由于 ANN 算法中的近似值,例如使用分层可导航小世界 (HNSW) 图或乘积量化,这会优先考虑速度而不是详尽的检查,因此可能会排除与查询匹配的相关跑鞋。
这些错误直接映射到评估指标 精确率 和 召回率 。精确率衡量检索到的结果中相关的比例(即真阳性)。大量的假阳性会降低精确率,因为不相关的项目会主导结果。例如,如果图像搜索返回 10 张图像,其中 4 张不相关,则精确率会降至 60%。另一方面,召回率衡量数据集中所有相关项目中成功检索到的比例。假阴性会降低召回率,因为它们代表错过的相关项目。如果数据集包含查询的 50 个相关图像,但 ANN 仅返回其中的 30 个,则召回率为 60%。在 ANN 系统中,调整 IVF 索引中的探针数量或局部敏感哈希 (LSH) 中的搜索半径等参数会影响这种平衡:更严格的标准会减少假阳性(提高精确率),但存在增加假阴性(降低召回率)的风险,而更宽松的设置则相反。
在评估 ANN 系统时,开发人员必须根据用例要求确定优先级。对于法律文档检索等应用程序,高召回率至关重要——错过相关文档(假阴性)可能会产生严重后果。在这里,可能会优先考虑增加搜索范围或使用更高质量的嵌入等技术。相反,在实时推荐引擎中,高精确率通常更重要,以避免无关的结果让用户感到沮丧。调整邻居数 (k) 或使用后过滤等参数可以提供帮助。了解这种精确率-召回率权衡使开发人员能够有效地调整 ANN 系统,无论是通过算法选择(例如,选择 HNSW 以获得更好的召回率或基于树的方法以获得精确率),还是通过在索引构建和查询执行期间优化超参数。