探索向量数据库的用例

2024-07-24

By Ruben Winastwan

探索向量数据库的用例

电子商务是一个竞争非常激烈的行业,这已经不是什么秘密了。因此,持续的创新对于区分一个平台至关重要。实现这一目标的一个有效方法是通过实施个性化的产品建议来改善用户体验。

为了通过个性化来增强用户体验,需要复杂的技术来捕获关于每个用户偏好的有意义的信息。这就是我们需要结合向量嵌入和向量数据库的地方。

在本文中,我们将探讨向量嵌入和向量数据库的概念,探讨它们在改善电子商务中的用户体验中的作用。所以,让我们进去吧!

向量嵌入在电子商务中的作用

在过去,为用户提供个性化产品推荐的首选方法涉及到用户的查询与产品描述之间的关键字或模糊匹配。但是,这种方法存在明显的缺点,由于以下几个原因,导致错过了为用户提供相关项目的机会:

它只关注于查找与用户的查询术语相匹配的项。

用户经常会拼错一些搜索词。

用户可以使用自然语言来描述自己的需求,比如“哪双鞋最适合徒步旅行?”

用户可能会使用不同于产品目录中使用的术语,比如“我的车的轮子”和“轮胎”。“我的车的轮胎”。

此外,用户还会与许多非结构化内容(音频、视频、图像等)进行交互。除了文本之外,它还可以为提供相关结果提供有价值的信息。

为了解决这些挑战,我们需要一种复杂的方法来捕捉两个关键方面:

我们的用户的意图

在我们的电子商务目录中,每个产品背后的含义,无论其形式(文本、图像、音频等)。

这就是向量嵌入发挥作用的地方。

向量嵌入是一个特定项的数值表示。在电子商务中,向量嵌入可以表示产品、用户的会话历史记录、查询、产品描述或其他任何东西。向量中包含的语义信息丰富,相似的项由在高维向量空间中彼此放置的向量来表示。

简单二维向量空间的可视化

一般来说,有两种类型的向量:稀疏向量和密集向量。

密集向量由像BERT这样的深度学习模型生成,以表示非结构化数据,如文本或图像。它主要由非零值组成,它的维度取决于我们所使用的特定的深度学习模型。密集向量捕获输入文本的语义,并以相对紧凑的形式包含大量信息。将我们的数据转换为密集向量的常见深度学习模型包括句子变形器和OpenAI。

同时,一个稀疏向量也可以表示文本,并且具有高维数,其中大多数值为零。只有输入文本中包含单词的元素在该向量中是非零的。由BM25等词包模型生成的稀疏向量通常用于关键字匹配。由SPLADE等机器学习模型生成的现代学习稀疏向量丰富了稀疏表示,同时保留了关键字匹配能力。

在电子商务中,我们可以将产品特性、描述和图像转换为向量嵌入,为用户提供与其查询语义相似的建议。例如,通过将产品颜色转换为向量嵌入,我们可以提供包含语义相似颜色的产品的建议,即使用户使用非标准颜色术语如绿松石色。此外,根据特定的需求,我们可以将产品的分类元数据——如其颜色、品牌、价格和类别——作为元数据存储。然后,该元数据可以在执行向量搜索之前用作过滤器,从而提高了搜索结果的效率和相关性。

一旦我们将这些项目转换为向量嵌入,并将它们存储在像Milvus这样的向量存储中,我们就可以执行向量搜索了。向量搜索通过余弦相似度、余弦距离或内积等度量来计算向量嵌入之间的语义相似度。

向量搜索允许我们返回相关的结果,即使是没有精确匹配的查询,减少了“没有结果”的出现。它还非常适合于处理会话搜索查询和理解用户意图,提供视觉发现,并提供基于上下文的建议。这些都有助于提供更个性化和更高效的用户体验。

向量数据库在电子商务中的作用

现在我们知道一个向量包含了关于一个项目的丰富信息,问题是:如果我们有数百、数千、数百万甚至数十亿的向量嵌入会怎么样?我们该如何处理它们呢?

随着我们的电子商务平台上的产品目录和用户数量的增长,管理和处理大量的向量嵌入变得越来越复杂。这就是病媒数据库发挥作用的地方。

矢量数据库的设计可以有效地存储大量的高维矢量嵌入。在每个嵌入的存储过程中,向量数据库会创建一个专门的索引。该索引使向量数据库能够高效地对每个嵌入进行操作,如向量相似度搜索和数据过滤等。

基于用户查询的类似产品的简单检索过程

Milvus是一个健壮的向量数据库的一个主要例子。它允许您执行各种定制的矢量搜索操作,以增强每个用户的个性化。 假设你在Milvus中有一个密集的向量嵌入的集合,每个集合都代表一个产品的文本描述。一旦用户创建了一个查询,Milvus就会执行一个向量搜索,并返回其描述与该用户的查询相似的产品。

为了给用户提供更个性化和更具体的建议,我们还可以使用Milvus实现所谓的混合搜索。这种搜索能力使我们能够同时使用包含在密集和稀疏向量中的信息。我们将在下一节中看到这个混合搜索的详细实现。

有时,您可能还希望将产品的结构化元数据与相应的向量嵌入一起存储。例如,您可能希望存储每个产品的价格,以便当用户创建具有特定价格范围的查询时,您可以向他们推荐适当的产品。使用Milvus,您可以将这些元数据与向量嵌入一起存储,并根据特定的查询过滤数据。我们还将在下一节中看到它的实现。

一个电子商务用例的向量数据库实现

在本节中,我们将向您展示如何在使用Milvus的电子商务中增强用户个性化。请参见本笔记本中的完整代码。 接下来,请首先安装Milvus独立版和SDK。

让我们首先定义我们将在此实现中使用的数据。假设我们有四种产品,每种产品都有标题、描述和颜色。

我们将把乘积的描述转换为密集的向量全MiniLM-L6-v2句子变形金刚模型。我们还将产品标题转换为TF-IDF的稀疏向量科学学习。

如果您注意到,现在我们有各种格式的数据:密集向量(乘积描述向量)、稀疏向量(乘积title向量)和标量(颜色)。接下来,我们想将所有这些记录存储在Milvus中。让我们定义模式并将数据插入其中。

基本向量搜索

到目前为止,我们已经将这些数据插入到了Milvus数据库中。现在,我们可以用它来执行基本的向量搜索。

假设我们,作为一个用户,我们想要找到一种可以改善我们的音乐体验的产品。因此,我们会问,“我应该买什么产品来改善我的音乐体验?”“像Milvus这样的向量数据库可以很容易地通过在我们的查询和我们的数据库中每个产品的描述之间执行向量相似性搜索来推荐适当的产品。

正如你所看到的,根据我们的查询,最推荐的两个产品是来自两个不同品牌的便携式蓝牙扬声器。

标量过滤向量搜索

考虑以下用例:我们想购买一种产品来改善我们的音乐体验。然而,我们也希望这个产品是蓝色的。

在这种情况下,我们可以向Milvus得到更具体的建议。这是因为我们可以使用元数据作为我们的查询的过滤条件。这个方法与上面的基本向量搜索非常相似。我们所需要做的就是在搜索方法中指定过滤条件。

这样我们就有了。这一次,我们得到了一个不同的推荐信:一个蓝色的便携式蓝牙扬声器。

混合搜索

混合搜索是一种将密集向量信息与稀疏向量信息相结合的向量搜索。这有助于电子商务平台向用户提供更个性化的推荐。让我们来探索一个场景,其中我们希望使用乘积嵌入(密集向量)和标题嵌入(稀疏向量)来实现混合搜索。

为了实现这一目标,Milvus使用近似最近邻(ANN)启动了单独的向量搜索会话——一个用于密集向量,另一个用于稀疏向量。然后,它合并这两个会话,并使用融合方法对结果进行排序。一种常用的融合方法是互秩融合,它根据文档的互秩位置对文档进行排序。

想象一下以下用例:我们想买一个扬声器,而且我们希望这个扬声器是专门来自Anker的。幸运的是,我们的Milvus数据库有一个表示每个产品标题的稀疏向量。

然后,我们可以将表示产品描述的密集向量与表示其标题的稀疏向量结合起来,并利用混合搜索向用户推荐该产品。下面是我们如何用Milvus来实现这一点。

这样我们就有了。我们从Anker推荐了一个便携式蓝牙扬声器,就像我们的查询和喜欢的颜色。

矢量数据库成功案例

上述所有优点都突出了在电子商务平台上使用矢量数据库的必要性。Milvus作为一个开源的向量数据库在电子商务领域的应用已经带来了一些成功的故事,例如:

唯品会

总部位于中国的在线零售商唯品会,随着其业务的迅速扩张,它正面临着建设可扩展基础设施的挑战。他们寻求一种更有效、更快的解决方案来存储向量,并向用户提供个性化的建议。

此前,他们在推荐系统中使用了弹性搜索技术,该系统需要大约300个ms才能从数百万个集合中检索到类似的向量。然而,在转向Milvus后,唯品会的业绩有了显著改善。

Milvus高效的矢量数据更新和召回过程使唯品会完成相同的任务的速度比之前的弹性搜索实现快10倍。此外,Milvus支持分布式部署和水平扩展,允许它在不影响性能的情况下处理数据卷的增加。

百科全书

另一个例子来自印尼最大的电子商务平台东京百科全书。他们利用Milvus作为他们的向量搜索优化引擎来匹配低填充率的用户搜索关键字和高填充率的用户搜索关键字。

这一优化导致东京百科的点击率和转化率增加了10倍。为了确保其语义搜索系统的稳定性和可靠性,东京百科全书还依赖于Milvus提供的工具,比如一个名为Mishards的集群分片中间件。

结论

向量嵌入是一种复杂的方法,它可以有效地捕获用户的意图和每个产品的语义意义。我们可以对向量嵌入执行向量搜索,这允许我们向用户返回个性化的产品,即使是没有精确匹配的查询。

为了有效地存储这些嵌入的集合,我们可以依赖像Milvus这样的向量数据库。它提供了几种向量搜索操作,如基本搜索、标量过滤搜索和混合搜索,这允许我们给用户提供更具体和个性化的建议。

考虑到所有这些好处,电子商务企业必须考虑战略性地采用病媒数据库,以获得竞争优势。 7.webp 7.webp

  • Ruben Winastwan

    Ruben Winastwan

    Freelance Technical Writer

    准备好开始了吗?

    立刻创建 Zilliz Cloud 集群,存储和检索您的向量。

    免费试用 Zilliz Cloud