Jeffrey Erickson | 高级撰稿人 | 2025 年 11 月 14 日
“越努力,越显轻松”——这句话出自冰球名将 Jonathan Toews,恰似相似性搜索技术的箴言。表面看来,它总是游刃有余:在几秒钟内给出答案和推荐。然而支撑这项搜索技术的复杂数据流、AI 系统和计算能力,实则是精心构筑的强大能力。通过在海量数据中快速锁定匹配项,相似性搜索已悄然成为自然语言处理、推荐系统、欺诈检测和搜索引擎等领域的核心引擎,更在药物研发等众多行业场景中崭露头角。但这项灵活的技术究竟如何快速地处理海量非结构化数据?它与成熟的关键词搜索有何异同,又如何相辅相成?现在,就让我们一同探索相似性搜索的方方面面。
相似性搜索(又称最近邻搜索)是一种用于信息检索和数据分析的技术,它能在数据集中查找和查询项最相似的数据项。这项技术广泛应用于需要识别和查询对象具有共同特征的物品、文档、图像或其他数据点的场景,例如图像搜索引擎或流媒体平台的内容推荐系统。
相似性搜索系统会为数据集中的每个对象生成一组称为“向量”的数值,这些向量以数字形式表征对象的特征。无论是图像、文本、音频、视频还是其他类型的数据,计算机都能通过这种数值化方式理解真实世界的概念和对象。
代表海量数据的向量被存储于向量数据库中,并通过创建向量索引实现快速搜索。当查询数据集时,系统会运用与创建数据库向量相同的算法,为查询词所代表的特征和概念生成向量嵌入。数据库随即通过特定算法定位数据集中与查询匹配的结果。
此类搜索常被称为“语义搜索”,因为它依据数据对象所代表的属性与概念进行匹配,而非依赖文档中的关键词或图像中的像素。相似性搜索能够在海量数据中提供快速精准的结果,因而成为自然语言处理、图像识别和内容过滤等 AI 系统的核心技术。
在商业应用中,相似性搜索和传统关键词搜索经常被结合使用,例如结合实时价格、库存等商业信息的推荐系统。这类功能可通过专有向量数据库和传统数据库的协同数据流转来实现,也可借助能同时原生处理向量数据和关系数据的多模态数据库完成。
简而言之,传统搜索旨在找到您明确指定的内容,而相似性搜索则致力于发现与您已有或所描述内容最相近的信息。
传统搜索通常用于数据库查询,通过特定关键词或条件在结构化数据中寻找精确匹配或高度相关的结果。例如,当您搜索“旧金山最佳拉面店”时,传统搜索引擎会返回包含这些精确关键词、预定义近义词或经过评分排名的网页。其核心目标是确保结果准确并直接对应查询词条。
相似性搜索则用于查找在概念或结构上与查询内容近似的数据项。它尤其适用于图像、文本或复杂数据点等非结构化或半结构化数据场景。如果您上传一张照片进行图像搜索,系统会识别其中的视觉特征或模式(如草地、摩天大楼、色彩或情绪表达),并返回具有相似特征的其他图像,即使它们并非完全一致。在文档检索系统中,它也能返回主题相近或语言风格相似的文稿,即使其中并未出现原查询的关键词。以拉面搜索为例,相似性搜索可通过分析评论内容的文本向量作为搜索基础。
主要差异
我们可以从多个角度思考传统搜索和相似性搜索的关键差异,包括搜索方法的目标、使用的数据类型、采用的数学技术以及适合部署的应用场景。如前所述,传统搜索旨在根据特定关键词或特定条件查找完全匹配或高度相关的结果,而相似性搜索则侧重于寻找在概念或结构上与查询内容相似的数据项。
传统搜索基于企业应用中常见的结构化表格数据(想想用于组织库存或人事记录的行和列),而相似性搜索更擅长处理图像、音频及复杂数据点等非结构化或半结构化数据(通常以 JSON 格式存储)。
二者背后的数学原理也截然不同。传统搜索依赖布尔逻辑、关键词匹配及排序算法来确定数据集中项目的相关性;相似性搜索则采用向量距离度量(如余弦相似度、欧几里得距离和杰卡德相似度)来量化索引项目间的相似程度,具体度量方法将在后文详细展开。由此可推断,传统搜索更常用于需要从商业信息检索系统中获取精确查询结果的场景,而相似性搜索则用于推荐系统、图像识别和内容过滤等领域。
值得注意的是,在众多商业应用场景中,采用检索增强生成 (RAG)技术的系统同时运用两种检索技术与大型语言模型 (LLM),将语义搜索结果与更新的企业数据相结合,从而为商业目的生成精准且有价值的输出。例如,推荐引擎通过相似性搜索匹配商品,同时使用传统 SQL 查询获取价格和库存信息,再交由 LLM 生成生成通俗易懂的自然语言回答。
关键要点
相似性搜索是数据科学和机器学习领域的一项关键技术,旨在快速从数据集中找出与查询项最相似的项目。这些系统如何判断数据集中的图像、文本或音频等项目是否相似呢?其核心在于通过精密的 AI 模型对数据进行处理,将每个项目的真实特征量化为可数学计算的形式。描述这些特征的数值称为向量嵌入。它让计算机能够通过数字化的方式理解非结构化数据中的概念和对象。向量数据库专门用于存储、索引和检索海量向量数据。每个向量都代表着高维空间中的独立个体,这种数学表达方式使得系统能够精确计算任意两个项目之间的接近程度或相似度。
系统会基于经典的距离度量标准(如欧几里得距离、余弦相似度或杰卡德相似度)来识别匹配的结果。开发相似性搜索系统的数据科学家会根据数据类型(如图像、文本等)及系统用途(如异常检测、商品推荐或自然语言处理),选择合适的度量标准和搜索算法。例如,近似最近邻 (ANN) 算法通过平衡精度与速度来加速搜索过程,特别适用于包含数十亿项目的超大规模数据集。当前主流的 ANN 方法包括 Annoy 和 Faiss。前者是一个开源库,通过树状结构实现高效搜索;后者则采用高级索引技术,处理数十亿级别的向量数据。
相似性搜索旨在识别查询项与被搜索数据集项目之间的特征相似性。这一过程通常通过向量嵌入、索引构建和最近邻搜索等技术实现。以下是具体步骤解析:
相似性搜索是一种强大的技术工具,特别在处理非结构化数据的应用中优势显著。然而,清晰认识其局限性,并为具体场景选择合适的技术与度量标准同样至关重要。
掌握相似性搜索的核心概念对于在应用中有效实施和使用该技术至关重要。以下技术和方法相互协作,共同实现搜索目标。
向量表示是将存储内容的特征与属性转换为多维空间中数值向量的过程。这些向量捕捉了数据项的实质内容,例如文本中的单词含义、图像中的视觉元素或音频中的模式。描述项的最终向量称为“向量嵌入”。通过为数据和查询分别生成向量,向量数据库可利用这些表示来高效度量并比较不同数据项和查询之间的接近程度。
距离度量在相似性搜索中是必不可少的,用于量化向量间的相似或差异程度。距离度量的选择需依据数据特性与应用场景的具体需求而定。常见的距离度量包括:欧几里得距离,用于测量两点间的直线距离;余弦相似度,通过计算两个向量间的夹角余弦值来评估其方向关系;以及杰卡德相似度,该方法适用于比较向量表示的特征集,即使集合大小不同仍可有效计算。
企业在选择相似性搜索技术时,需以应用场景的最终目标为导向。例如,系统是用于异常检测、图像搜索还是自然语言处理?这些技术通常结合前文所述的距离度量方法来实现特定任务。以下将介绍两种主流技术:KNN(最近邻算法)和 ANN(人工神经网络)。
K 最近邻算法 (KNN):在基于 KNN 的相似性搜索中,查询向量会与数据集中的向量进行比较,算法根据选定的距离度量(如欧几里得距离或余弦相似性)找出与查询最接近的“k”个数据点。KNN 基于“相似数据在向量空间中彼此邻近”的假设,通过比对数据集中相邻点的特征来预测新数据或查询项的类别和数值。
由于需要计算查询项与数据集中所有点的距离,KNN 在大型数据集上的计算成本较高。尽管如此,KNN 在推荐系统、图像识别和异常检测等场景中仍具有显著效果。
近似最近邻算法 (ANN):ANN 是一种能在海量数据集中高效查找和查询向量高度近似元素的搜索技术,无需精确计算查询向量与每个数据点的距离。该方法适用于大规模数据集,因为精确最近邻搜索在这种场景下会消耗过多计算资源。ANN 算法通过局部敏感哈希 (LSH) 或树形索引等方法,借助降维技术或索引结构快速缩小候选范围,实现近似搜索。其结果虽非完全精确,但通常能满足实际应用的要求,现已广泛应用于图像搜索与自然语言处理等领域。
相似性搜索在多种应用场景中广受欢迎。无论是流媒体服务的推荐内容,还是搜索引擎的答案,其背后都可能运用了这项搜索技术。此外,这项搜索技术同样存在于金融和数据安全领域的后台系统中。以下是相似性搜索的其他常见应用场景:
目前已有多种工具和库可帮助组织高效实现相似性搜索,它们在方法和上有所不同。例如:
您正在或计划在应用中实现相似性搜索吗?若答案是肯定的,就不要把您的数据带入 AI。Oracle 可以在简化的企业级架构中为您的业务数据提供 AI 和相似性搜索功能。
借助 Oracle AI Database 的原生 AI 向量搜索功能,您可以轻松设计、构建并运行相似性搜索,同时为了增强应用,您可以无缝兼容关系型、文本、JSON、空间及图形等多种数据类型——所有数据均可集中于单一数据库中管理。您现在即可免费试用。
Oracle AI Vector Search 具备文档加载、转换、分块、嵌入、相似性搜索及支持自选大语言模型的 RAG 等能力,这些功能可通过数据库原生接口或 API 使用。
在 Oracle Cloud Infrastructure 上构建相似性搜索功能,您将获得专为企业打造的 AI 技术支撑,其数据管理平台内置可扩展性、高性能、高可用性和安全性,为您的 AI 应用提供坚实支撑。
您的数据基础设施是否已为支持相似性搜索和其他 AI 计划做好准备?我们的电子书为您规划了构建坚实数据基石的路径,助您为 AI 应用的成功部署奠定基础。
相似性搜索如何助力企业?
在企业中部署 AI 向量搜索系统,能让员工通过自然语言指令轻松探索数据存储和文档。同时,该技术可帮助企业将个性化功能融入客户服务,例如为在线零售平台构建推荐引擎。
相似性搜索中可以使用哪些类型的数据?
相似性搜索可用于任何具有向量嵌入的数据,但较常用于非结构化或半结构化数据,例如文本、图像、视频和音频。
相似性搜索如何改善客户体验?
相似性搜索可以根据客户偏好和历史行为,为客户提供个性化的内容和推荐,从而改善客户体验。
相似性搜索处理大规模数据的可扩展性如何?
相似性搜索具备高度灵活性与可扩展性。它通过对向量数据建立高效索引,即使面对海量数据集也能快速定位并返回与查询高度匹配的结果。
注:为免疑义,本网页所用以下术语专指以下含义: