什么是矢量相似性搜索及其用途?
现代数据搜索是一个复杂的领域。矢量相似性搜索或VSS表示具有上下文深度的数据,并向消费者返回更多相关信息以响应搜索查询。让我们举一个简单的例子。
像“数据科学”和“科幻小说”这样的搜索查询指的是不同类型的内容,尽管它们都有一个共同的词(“科学”)。传统的搜索技术会匹配常用短语以返回相关结果,这在这种情况下是不准确的。矢量相似度搜索会考虑这些搜索查询的实际搜索意图和含义,以返回更准确的响应。
本文将讨论矢量相似性搜索的各个方面,例如其组件、挑战、优势和用例。让我们开始。
什么是矢量相似性搜索 (VSS)?
矢量相似性搜索通过将大量结构化或非结构化数据转换为称为矢量或嵌入的数字表示形式,从大量结构化或非结构化数据中查找和检索上下文相似的信息。
VSS可以管理多种数据格式,包括数字、分类、文本、图像和视频。它将数据语料库中的每个对象转换为与其相关格式对应的高维向量表示(在下一节中讨论)。
最常见的是,VSS定位可比对象,例如相似的短语或段落,或在庞大的图像检索系统中查找相关图像。亚马逊、eBay 和 Spotify 等大型消费品公司使用这项技术为数百万用户改善搜索结果,即提供用户最有可能购买、观看或收听的相关内容。
矢量相似度搜索的三个主要组成部分
在我们了解向量相似性搜索的工作原理之前,让我们先看看它的主要组成部分。实施有效的VSS方法主要包括三个基本组成部分:
- 矢量嵌入:嵌入以数学格式表示不同的数据类型,即有序数组或数字集。他们使用数学计算来识别数据中的模式。
- 距离或相似性度量:这些是计算两个向量相似或密切相关程度的数学函数。
- 搜索算法:算法有助于找到与给定搜索查询相似的向量。例如,K 最近邻或 KNN 算法经常用于支持VSS的搜索系统,以确定数据集中与给定输入查询最相似的 K 个向量。
现在,让我们讨论这些组件如何在搜索系统中工作。
矢量相似性搜索如何工作?
实现向量相似性搜索的第一步是将数据语料库中的对象表示或描述为向量嵌入。它使用不同的向量嵌入方法,例如GloVe、Word2vec和BERT,将对象映射到向量空间。
对于每种数据格式,如文本、音频和视频,VSS构建不同的嵌入模型,但此过程的最终结果是数字数组表示。
下一步是创建一个索引,可以使用这些数字表示将相似的对象排列在一起。像 KNN 这样的算法是实现搜索相似性的基础。然而,为了索引相似的术语,搜索系统使用现代方法,例如局部敏感哈希 (LSH)和近似最近邻 (ANNOY)。
此外,VSS算法计算相似度或距离度量,例如欧氏距离、余弦相似度或 Jaccard 相似度,以比较数据集合中的所有矢量表示并返回相似内容以响应用户查询。
矢量相似性搜索的主要挑战和优势
总的来说,目的是找到数据对象之间的共同特征。然而,这个过程提出了几个潜在的挑战。
实施VSS的主要挑战
- 不同的向量嵌入技术和相似性度量呈现不同的结果。为相似性搜索系统选择合适的配置是主要挑战。
- 对于大型数据集,VSS的计算成本很高,需要高性能 GPU 来创建大规模索引。
- 维度过多的向量可能无法准确表示数据的真实结构和联系。因此,矢量嵌入过程必须是无损的,这是一个挑战。
目前,VSS技术正在不断发展完善中。但是,它仍然可以为公司或产品的搜索体验带来很多好处。
VSS的好处
- VSS允许搜索系统在不同的数据类型上以极快的速度定位相似的对象。
- VSS确保有效的内存管理,因为它将所有数据对象转换为机器可以轻松处理的数字嵌入。
- VSS可以根据系统可能未遇到过的消费者新搜索查询对对象进行分类。
- VSS是处理不良和不完整数据的绝佳方法,因为它可以找到上下文相似的对象,即使它们不是完美匹配。
- 最重要的是,它可以大规模检测和聚类相关对象(可变数据量)。
矢量相似度搜索的主要业务用例
在商业业务中,VSS技术可以彻底改变广泛的行业和应用。其中一些用例包括:
- 问答:向量相似度搜索可以在问答论坛中找到几乎相同的相关问题,从而为最终用户提供更准确、更中肯的回答。
- 语义网络搜索:向量相似性搜索可以根据向量表示的“接近度”来定位相关文档或网页。它旨在提高网络搜索结果的相关性。
- 产品推荐:向量相似度搜索可以根据消费者的浏览或搜索历史进行个性化的产品推荐。
- 更好的医疗保健服务:医疗保健研究人员和从业者利用向量相似性搜索通过分析相关医学研究的向量表示来优化临床试验。
如今,使用基于 SQL 的传统技术来管理、分析和搜索数据已不再可行。互联网消费者在网络上提出复杂的查询——对人类来说看似简单,但对机器(搜索引擎)来说解释起来却异常复杂。机器以机器可理解的格式破译不同形式的数据是一项长期挑战。
矢量相似性搜索使搜索系统可以更好地理解商业信息的上下文。