内容提要
向量搜索能够高效处理高维度的非结构化数据,提供相关结果并使用机器学习模型找到相似结果。MongoDB Atlas Vector Search引入了精确最近邻(ENN)向量搜索,超越了近似最近邻(ANN)方法。ENN向量搜索提高了搜索和生成AI应用的精度和速度,在小规模向量数据、ANN查询回忆基准和多租户架构等特定场景中具有优势。
延伸解读
ENN与ANN的适用场景对比
ENN向量搜索并非要取代ANN,而是针对特定场景的补充。当向量数据集小于1万条时,ENN的线性时间复杂度使其成为可行选择,且无需像ANN那样调参。在多租户架构中,若每个租户的向量数量较少(几千条),ANN在应用高选择性过滤时准确性会下降,而ENN能提供精确结果。因此,选择ENN还是ANN应基于数据规模、过滤需求和对准确性的要求。
利用ENN进行ANN召回率基准测试
ANN查询虽然快速,但开发者难以确认返回结果是否对应索引中真正最近的向量。ENN可以提供精确的结果集,用于与ANN的近似结果集进行比较,通过Jaccard相似度或其他排名感知的召回率指标,量化ANN查询的准确性。这有助于在数据演变过程中建立定量基准,增强对ANN查询准确性的信心。
ENN在MongoDB Atlas中的实现特点
ENN向量搜索与Atlas现有的$vectorSearch阶段无缝集成,使用方式类似。其关键特点包括:保证返回指定数量的最近向量;遵循最终一致性模型;配置简化,只需指定返回向量数量,无需调整numCandidates参数;支持大规模召回评估;对于未过滤查询,在最多1万条文档内可保持亚秒级延迟,对于高选择性过滤也能提供低延迟响应。
ENN向量搜索的典型应用场景
ENN向量搜索适用于多租户数据服务和概念验证开发。在多租户数据服务中,为代理检索客户专有数据时,必须正确应用元数据过滤并执行ENN,以确保只检索对应租户ID的文档。在概念验证开发中,例如新推荐引擎的早期阶段,数据量有限,ENN的穷举搜索能确保从可用选项中返回最相关推荐,同时简化开发体验。
Q&A
什么是精确最近邻(ENN)向量搜索?
精确最近邻(ENN)向量搜索是一种能够保证检索到与查询最接近的向量的方法,超越了近似最近邻(ANN)方法的准确性限制。
ENN向量搜索在小规模数据集中的优势是什么?
在小规模数据集(如少于10,000个向量)中,ENN的线性时间复杂度使其成为可行的选择,能够提供更高的准确性。
如何在多租户架构中使用ENN向量搜索?
在多租户架构中,ENN向量搜索能够在小结果集内提供精确结果,克服ANN在应用高度选择性过滤时的准确性问题。
ENN向量搜索如何提高搜索和生成AI应用的精度?
ENN向量搜索通过提供准确的结果集,增强了对ANN查询结果的信心,从而提高了搜索和生成AI应用的精度。
在MongoDB Atlas中,ENN向量搜索的配置复杂性如何?
ENN向量搜索的配置相对简单,只需指定返回向量的数量限制,而不需要像ANN那样调优参数。
ENN向量搜索适用于哪些用例?
ENN向量搜索适用于多租户数据服务和概念验证开发等用例,能够提供精准的检索结果。