定义

什么是矢量搜索?

矢量搜索可利用 Machine Learning (ML) 来捕获非结构化数据(包括文本和图像)的含义和上下文,并将其转换为数字化表示形式。矢量搜索常用于语义搜索,通过利用相似最近邻 (ANN) 算法来找到相似数据。与传统的关键字搜索相比,矢量搜索产生的结果相关度更高,执行速度也更快。

Video thumbnail

为什么矢量搜索很重要?

您遇到过多少次想要查找某个东西却不确定它叫什么的情况?您或许知道它的用途,又或者知道怎么描述它。但如果没有关键字,您就只能大海捞针似的搜索了。

矢量搜索克服了这一限制,可让您按照自己的意思进行搜索。它可以根据相似度搜索快速为查询提供答案。这是因为矢量嵌入除了捕获文本之外,还能捕获非结构化数据,如视频、图像和音频。它可以根据上下文快速为查询提供答案。这是因为矢量嵌入可捕获同义词和关联,它们本质上是搜索背后的含义。您可以将矢量搜索与筛选和聚合相结合,通过实现混合搜索并将其与传统评分相结合来优化相关性,从而增强搜索体验。

Video thumbnail

矢量搜索引擎的工作原理?

矢量搜索引擎也称为矢量数据库、语义搜索或余弦搜索,可用于查找给定(矢量化)查询的最近邻。

传统搜索方法依赖于关键字的提及率、词汇相似度和单词出现的频率,而矢量搜索引擎则是使用嵌入空间中的距离信息来表示相似度。这样一来,查找相关数据就变成了搜索您查询内容的最近邻。

  • 矢量嵌入

    矢量嵌入是数据和相关上下文的数字化表示,存储在高维度(密集)矢量中。用于生成嵌入的模型可以使用数百万的示例进行训练后得到,可提供更相关也更准确的结果。在某些用例中,您收集或精心设计的为呈现文档关键特性的数值数据,可以作为嵌入来使用。您只需能够高效地进行搜索即可。

  • 相似度分数

    矢量搜索引擎的核心思想是,如果数据和文档相似,它们的矢量也会相似。使用矢量嵌入对查询和文档都完成索引后,您就可找到与您的查询最近邻相似的文档。

  • 人工神经网络 (ANN) 算法

    传统的最近邻算法(如 k 最近邻算法 (kNN))会导致执行时间过长并占用计算资源。ANN 牺牲了完美准确性,以换取在高维度嵌入空间中实现大规模高效运行。

矢量搜索用例

矢量搜索不仅为下一代搜索体验提供了强大动力,而且还为各种新的可能性打开了大门。

  • 语义搜索

    矢量搜索支持语义搜索或相似度搜索。由于可在嵌入中捕获数据的含义和上下文,矢量搜索因而能够理解用户的意思,而无需做到关键字完全匹配。它可以处理文本型数据(文档)、图像和音频。您可以轻松快速地找到与所查询内容相似或相关的产品。

  • 推荐

    用于生成嵌入的模型可通过不断学习,以此来识别相似的文档以及文档在嵌入空间中的矢量。例如,应用程序可能会向您推荐购买了相同项目的其他人也喜欢的电影或产品。但是,要确保这些嵌入是以一定的知名度和美誉度作为目标指标来得出的。

    矢量距离可以与其他指标结合使用,以便推荐达到多个目标。例如,您可以根据满意度分数和收入潜力对产品推荐进行排名。

  • 问题回答

    在将文档转换为文本嵌入时,可以与现代自然语言处理 (NLP) 相结合,从而提供问题的全文本答案。使用这种方法,用户无需学习冗长的手册,而且您的团队也能够更快地提供答案。

    “问答”转换器模型可以采用文档知识库和您的当前问题的文本嵌入表示形式,以提供最接近的匹配项作为“答案”。

矢量搜索助您成就更多

不要仅仅停留在语义搜索上!

  • 浏览非结构化数据

    搜索任何非结构化的数据。您可以为文本、图像、音频或传感器测量值创建嵌入。

  • 基于元数据进行筛选

    使用元数据筛选矢量搜索结果。通过应用与近似最近邻 (ANN) 搜索一致的筛选条件,在不牺牲速度的情况下保持查全率。

  • 重新排序搜索结果

    矢量相似度可以解释为相似度分数,您可以结合其他数据对该分数重新排序。这包括矢量搜索数据库中已有的静态字段,以及应用 Machine Learning 模型获得的新属性。

  • 混合评分

    为了进一步优化,您可以将矢量相似度与 BM25F 评分相结合,这称为混合评分。使用混合评分,可让您在实现 BM25F 的同时按矢量相似度对图像进行排序,从而提供更好的文本排名。

如何开始体验

借助 Elastic 轻松应用矢量搜索和自然语言处理 (NLP)

实施矢量搜索和应用自然语言处理 (NLP) 模型并非困难重重。有了 Elasticsearch Relevance Engine™ (ESRE),您便可获得一个工具包,用于构建可与生成式 AI 和大型语言模型 (LLM) 搭配使用的 AI 搜索应用程序。

使用 ESRE,您可以构建富有创意的搜索应用程序,生成嵌入,存储和搜索矢量,以及通过 Elastic 的 Learned Sparse Encoder 实现语义搜索。欢迎详细了解如何使用 Elasticsearch 作为您的矢量数据库。

Video thumbnail
  • 语义搜索开箱即用

    Elastic Learned Sparse Encoder 提供了高度相关的开箱即用型语义搜索,且无需进行域适应。在配置搜索应用程序时,只需单击一下即可使用。该模型可使用相关的关键字和相关性分数扩展查询,这是它在训练过程中学到的技巧,因此您不必配置同义词,而且与稠密矢量嵌入不同,它们解读起来也很容易。

  • 大型语言模型

    使用您的私有数据(不仅仅是公开训练的数据)为大型语言模型 (LLM) 提供特定业务的信息。使用 Elasticsearch,并通过与您所选 LLM 集成的 API 和插件访问生成式 AI。

  • 文本嵌入等 

    了解如何使用 Elastic 为数据分配情感和其他类别。应用命名实体识别 (NER),通过额外的元数据改善搜索体验。