生成AI应用程序的向量搜索:③ 对向量搜索的概念性理解

首先

背景 – Apache Cassandra和DataStax Astra DB作为向量数据库的选项。

基于DataStax工程师提出的对Apache Cassandra的扩展建议,以应对2022年起生成AI的兴盛,现在可以在DataStax的Cassandra托管服务Astra DB中使用扩展的向量搜索功能。本系列文章将根据DataStax公司发布的白皮书内容,作为对这一趋势的一部分的呈现。

引用和日本语版

此系列文章的原始資料可以在以下途徑獲得。

 

在博客文章中,我们注重易读性而非忠实翻译,因此对部分内容进行了省略。
如需获取无省略的日语版白皮书,请联系info-jp@datastax.com,我们将提供给您。

【为生成AI应用程序的向量搜索】③ 向量搜索的概念理解

向量搜索是什么?

向量搜索是一种用于搜索具有相似属性或特征的相关对象的方法。可以应用向量搜索的一般例子包括文本、图像、视频等。

在向量搜索中,使用一种特定类型的机器学习模型称为嵌入,来描述对象及其上下文。嵌入数据是捕捉对象语义的向量。通过这种方法,在向量搜索中,无需预先了解哪些部分是相似目标,就能够找到相似的数据。

如果以英语为例,在传统的关键词搜索中,词语“happy”、“cheerful”和“joyful”都具有相同的意思,但使用关键词“happy”时,无法搜索到与“cheerful”和“joyful”匹配的文件。解决这个问题的能力是向量搜索。向量搜索可以理解意义,因此无需用户做出全面指示,就可以传达想要搜索的对象。

使用近似最近邻(ANN)搜索算法进行向量搜索可以非常快速地执行。ANN(近似最近邻)可以快速地推导出在数学上相似的向量。

嵌入(Embedding)的基本概念。

嵌入(Embedding)是将文本的意义封装为数学表示的过程。在将文本转化为向量化的嵌入表示时,我们将文档中的单词集合转换为数字列表。通过嵌入,具有高度相关意义的向量在向量空间中将被放置在靠近的位置。

事先提醒一下,向量空间通常具有非常高的维度(向量由许多数字构成),但在这里进行了简化。

对于向量之间的相似性的概念理解

让我们通过一个例子来思考。图1展示了一个简单的向量空间,其中有两个维度,一个是关于”服装类型”的维度,另一个是关于”服装颜色”的属性维度。

选项:

1. 图1. 描述服装的二维向量空间

image.png

在这个例子中,向量具有二维信息,构成向量数据的每个元素代表着以下两个信息:

[<衣服の種類>, <服の色>] 

在这里,假设“红色衬衫”的向量为 [1, 1],“蓝色裤子”的向量为 [-1, -1]。现在我们要加入一个“绿色裙子”。裙子在功能上更接近于裤子,并且绿色在色谱中靠近蓝色,因此可以推测它的嵌入向量应该位于靠近“蓝色裤子”的位置,例如 [-0.8, -0.8]。

上述例子展示了利用嵌入来构建向量空间的方法,以及关于对象存在的位置在该空间中的观念。

对于嵌入式运算的算术运算

接下来,让我们通过一个示例来了解嵌入向量的算术运算如何工作。我们在这里处理的向量空间涵盖了两个概念,即”人物的职称”和”性别”。请参考图2。

图2. 示范了保留语义信息的向量运算例子。

image.png

嵌入(嵌入)表达是向量,因此可以对向量进行算术运算。在进行此类运算时,预计结果向量会保留与原自然语言组合相对应的意义概念。

例如,在向量计算中,可以认为计算式《“王子”-“男性”+“女性”》的结果向量与代表“公主”的向量非常相似。

同样地,由于《「王子」 – 「男性」》和《「公主」 – 「女性」》两个算式的结果向量非常接近,因此可以认为这些向量捕捉到了「王族(不论性别)是指与国王或女王有直接血缘关系的后代」这个概念。

最后

下面列出的用例只是为了概念理解而简化的例子。
例如,对于表示三维空间的向量,每个元素分别表示高度、宽度和深度的距离值,与实际的嵌入模型不同,在实际模型中,无法简单地把每个维度的含义看作是这样。

因此,对于嵌入模型所进行的操作,基本上将其视为黑盒是合理的(例如,可以将其类比为表示三维空间向量数据,其本身的数值并不包含有关三维空间布局的信息)。重要的是,使用相同的模型进行结果之间的比较是有意义的。

嵌入模型有着不同的目的。您可以在Hanging Face排行榜中查看信息,供参考。

 

广告
将在 10 秒后关闭
bannerAds