相似性搜索:基于向量检索指南
了解相似性搜索如何驱动现代 AI 应用并改变数据检索。掌握向量嵌入、算法和实际应用案例

想象一下搜索数十亿的图像、文档或产品,并在毫秒内找到您需要的确切内容。相似性搜索使这成为可能,改变了我们与海量、复杂数据集交互的方式。
它不依赖于匹配确切的词语。相反,它理解您的查询背后的更深层含义。
这项技术将抽象概念转化为数学表示。然后,计算机可以立即比较和检索这些表示。从推荐引擎到医学研究,这项技术正在重塑机器理解和导航信息的方式,具有前所未有的精确度和速度。
理解相似性搜索
当您在电子商务网站上搜索“黑色皮靴”或在音乐平台上查找“听起来像 Taylor Swift 的歌曲”时,您甚至在不知不觉中使用了相似性搜索。 相似性搜索的核心是帮助查找相似的项目。
什么是相似性搜索,为什么它如此重要?
将相似性搜索想象成一位聪明的图书管理员。这位图书管理员不仅仅看书名,还理解每本书的内容。当您要求“像哈利·波特这样的书”时,这位图书管理员知道推荐其他奇幻小说。
这些小说将有成长故事和魔法学校。这正是相似性搜索所做的——它理解您正在寻找的本质,并找到与该本质相匹配的项目。
相似性搜索如何与向量嵌入一起工作
为了理解计算机如何找到相似的项目,想象一下将所有内容变成数字列表。当您拍摄照片、写句子或录制歌曲时,相似性搜索会将其转换为特殊的数字列表。此列表称为 向量嵌入。
这些数字捕捉了项目的重要特征。 对于照片,它可能包括有关颜色、形状和存在的对象的信息。
将这些向量想象成地图上的坐标。您可以通过查看城市在地图上的位置来找到附近的城市。相似性搜索通过查看项目向量彼此之间的距离来查找相似的项目。 相似的项目将具有在此数学空间中彼此靠近的向量。
相似性搜索和最近邻搜索之间的主要区别
虽然这些术语经常互换使用,但它们的服务目的略有不同。最近邻搜索就像使用卷尺来查找离您站立位置最近的点。它很精确,但如果您必须测量到每个点的距离,则速度会很慢。
另一方面,相似性搜索更像是询问方向。它可能不会给您绝对最接近的匹配项,但它速度更快,通常也足够好。
相似性搜索在 AI 驱动的应用中扮演什么角色?
AI 应用严重依赖相似性搜索来理解大量信息。当您使用回答您问题的聊天机器人时,它很可能使用相似性搜索在其知识库中查找相关信息。
想知道如何在实际应用中实现相似性搜索吗?了解如何使用相似性搜索构建 RAG 系统,以增强您的 AI 应用。
相似性搜索的实际应用
相似性搜索改变了我们与数字内容交互的方式。它为我们每天使用的许多功能提供支持。让我们探索一些实际应用,展示其在不同领域的影响。
多媒体系统中基于内容的检索
当您将照片上传到 Google 图片并询问“查找相似图片”时,您正在体验基于内容的检索。
例如,Pinterest 使用此技术来帮助用户发现视觉上相似的图钉。如果您找到自己喜欢的舒适客厅设计,该平台可以通过比较其视觉嵌入立即向您展示数十种类似的室内设计。
这些系统将图像和视频分解为向量嵌入,这些向量嵌入捕获颜色、形状和图案等视觉元素。
使推荐更个性化和准确
推荐系统已经从简单的“购买 X 的用户也购买了 Y”建议发展而来。现代平台使用相似性搜索来创建丰富、个性化的体验。
以 Spotify 的“每周发现”播放列表为例。它结合了您的收听历史、喜欢的流派,甚至您喜爱的歌曲的声学特性,来推荐您可能喜欢的新音乐。
亚马逊等电子商务网站使用多模态相似性,结合不同类型的数据来改进推荐。他们可能会考虑
- 产品描述和评论(文本数据)
- 产品图片(视觉数据)
- 购买模式(行为数据)
- 价格范围和类别(数值和分类数据)
通过一起分析所有这些维度,他们可以推荐真正符合您需求的产品,而不仅仅是显示同一类别中的热门商品。这为用户创造了更好的体验。
来自该领域的真实成功案例
医疗保健中的相似性搜索,除了影像学之外,还有助于诊断。医院系统使用它通过向量化患者数据将患者与具有相似症状和病史的患者进行匹配。
研究表明其在预测分析中的效用,提高了糖尿病预测等领域的准确性。这支持个性化治疗和结果预测,以实现更有效的护理。
为现代 AI 应用提供动力
LLM 和检索增强生成 (RAG) 系统的兴起为相似性搜索创造了新的应用。当您与需要从知识库中提取相关信息的 AI 助手聊天时,相似性搜索会在后台工作,以查找最相关的内容来告知其响应。这对 AI 应用来说是一个游戏规则改变者。
例如,当客户服务聊天机器人需要回答有关产品的特定问题时,它会使用相似性搜索来查找最相关的产品文档、支持票证和常见问题解答条目。这有助于机器人提供准确、情境化的响应,而不是通用的答案。
距离度量:相似性搜索的核心
在搜索相似项目时,我们需要一种方法来衡量向量彼此之间有多近或多远。这就像使用标尺来测量物理距离。
理解主要的距离度量
距离度量的选择可能会成就或破坏您的相似性搜索。将其视为为工作选择合适的工具。您不会用锤子切割木头,对吧?三种最流行的距离度量各有其优点。
欧几里得距离就像两点之间的直线。它是“直线距离”。当处理物理测量或向量的大小很重要时,此度量会发光。例如,如果您正在构建一个系统来查找相似的房价,那么欧几里得距离将是一个不错的选择,因为实际的数值差异很重要。
另一方面,余弦相似度关心向量之间的角度,而不是它们的长度。它非常适合文本搜索,因为它可以判断两个文档是否关于同一主题,即使其中一个文档比另一个文档长得多。它有助于提供更相关的结果,而与文本长度无关。
曼哈顿距离(也称为 L1 距离)测量距离,就好像您在城市街区中行走一样。您只能水平或垂直移动。当处理网格状数据或当您想平等对待向量之间所有差异时,它特别有用。
为您的数据选择正确的度量
度量 | 用例 | 主要优势 |
---|---|---|
余弦相似度 | 文本搜索 | 处理不同的文档长度;侧重于意义。 |
欧几里得距离 | 图像搜索、传感器数据 | 测量数值差异;尺度有意义。 |
曼哈顿距离 | 分类数据(用户偏好等) | 独立处理每个维度;对特征中的异常值具有鲁棒性。 |
这是一个考虑它的实用方法。
对于文本搜索,余弦相似度通常是您的最佳选择。它可以很好地处理不同长度的文档,并侧重于意义而不是大小。这在搜索文章、产品描述或用户查询时尤其重要。
对于图像搜索,欧几里得距离通常效果更好,因为像素值或图像特征之间的实际数值差异很重要。传感器数据或任何尺度有意义的数值测量也是如此。
对于分类数据(如用户偏好或产品属性),曼哈顿距离可能更合适。它独立处理每个维度,并且不会被单个特征的巨大差异所影响。
处理混合数据类型
实际应用通常一次处理多种数据类型。例如,电子商务搜索可能需要同时考虑产品描述(文本)和产品图片。在这些情况下,您可以使用混合方法。
- 使用适用于每种数据类型的适当度量分别计算相似性
- 使用加权平均值组合结果
- 标准化分数以确保公平比较
这种灵活的方法允许您微调不同特征的重要性。当搜索服装商品时,您可能希望产品图片比文本描述更重要。
对搜索性能的影响
距离度量的选择不仅会影响准确性。它还会显着影响搜索速度。 欧几里得距离和曼哈顿距离通常比余弦相似度计算速度更快,但像 Meilisearch 这样的现代搜索引擎优化了这些计算,因此您几乎不需要担心性能差异。
更重要的是选择与您的数据和用例匹配的度量。提供不太相关结果的更快度量不是一个好的权衡。首先关注对您的用户及其搜索需求有意义的内容,然后在必要时优化性能。
为相似性搜索提供动力的算法
现在我们了解了距离度量如何帮助衡量向量之间的相似性。然后让我们探索使搜索这些向量变得高效且可扩展的算法。它们专门设计用于处理基于向量的搜索,同时平衡速度和准确性要求。
不同的搜索算法以不同的方式处理距离计算 - 有些算法针对每个向量进行比较以获得完美的准确性,而另一些算法则使用巧妙的快捷方式来加快处理速度。算法的选择通常取决于您的数据集大小、向量的维度以及您是否需要精确或近似的结果。
让我们检查相似性搜索的主要方法,从基本的精确匹配到复杂的近似方法。
精确与近似:找到最佳匹配
k-最近邻 (k-NN) 算法查找精确最接近的匹配项。它将您的搜索与每个项目进行比较。虽然准确,但这对于大型数据集来说很慢。当速度很重要时,k-NN 不实用。 想象一下将一本书与数百万本书进行比较!
近似最近邻 (ANN) 算法是一种更快的替代方案。它们做出有根据的猜测以快速找到良好的匹配项。ANN 有时可能会错过绝对最佳匹配项,但它速度快得多,并且对于大多数用途来说足够准确。
空间划分和图导航
空间划分方法,如 KD 树和 Voronoi 图,组织数据以加快搜索速度。KD 树将搜索空间划分为更小的区域。Voronoi 图根据与某些点的接近程度划分空间。这些方法适用于更简单的数据,但在处理复杂的高维数据时不太有用。
分层可导航小世界 (HNSW) 是一种用于相似性搜索的尖端算法。它在数据点之间创建连接网络。HNSW 非常适合现代 AI 中使用的复杂数据。 它可以快速搜索数百万个项目,同时提供相关的结果,非常适合语义搜索和推荐系统等。
搜索的未来:拥抱语义智能
相似性搜索正在通过将传统方法与先进的语义理解联系起来,从而改变信息检索。
这项技术使用向量嵌入和复杂的算法来实现更智能、更具上下文感知能力的搜索体验。 随着 AI 的发展,相似性搜索对于在许多领域和应用中使搜索更直观、精确和有意义至关重要。