趋近智
绝对精确的最近邻搜索在高维向量空间中可能非常缓慢。想象一下,在一个包含数百万或数十亿条数据的数据库中,尝试计算查询向量与每一个向量之间的距离——这种计算开销很快就会变得不切实际,无法用于即时应用。这时,近似最近邻 (ANN) 搜索就发挥作用了。
ANN 背后的基本理念简单而有效:以少量搜索准确度为代价,换取速度和效能的显著提升。 ANN 算法并非旨在确保完全最相似的对应项,而是力求以极快的速度找到大部分最相似的对应项,或者与查询非常接近的点。
可以把它想象成在线搜索信息。一个完美的搜索引擎会阅读并理解互联网上的每份文档,以给出唯一的最佳答案(就像精确最近邻搜索)。而搜索引擎使用巧妙的索引机制来快速返回高度相符的结果,即使无法保证绝对的最佳结果排在首位(就像 ANN 搜索)。对于许多应用,特别是语义搜索或推荐系统,其相似度本身有些不明确,极快地找到“足够好”的邻居,远比缓慢地找到计算上完美的邻居更有用。
这引出了 ANN 的核心思想:取舍关系图。通常无法同时让准确度和速度都达到最高。提升其中一个,通常会以牺牲另一个为代价。我们需要方法来评估和管理这种均衡。
在使用 ANN 时,我们通过以下几个衡量参数来评估表现:
召回率与延迟之间的关系通常如下所示:
这是一种常见情况,即提高目标召回率通常会引起查询延迟增加。具体的图线主要受算法、数据集和参数配置的影响。
重要的是,ANN 算法并非固定不变;它们提供参数,使您能够调节这种取舍。通过在索引构建期间或查询时(取决于算法和具体实现)调整这些参数,您可以调整这种均衡。您可以将索引设置为:
“了解准确度(召回率)与表现(延迟、资源)之间的这种核心取舍,是在后续章节中学习 HNSW、IVF 或 LSH 等具体 ANN 算法前不可或缺的。这些算法提供不同的策略和参数,用于高效地处理这种折中。ANN 通过认识到在许多情况下,快速提供的接近完美的结果远胜于速度过慢的完美结果,从而使大规模向量搜索变为可能。”
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造