Elasticsearch:什么是向量和向量存储数据库,我们为什么关心?

这篇具有很好参考价值的文章主要介绍了Elasticsearch:什么是向量和向量存储数据库,我们为什么关心?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Elasticsearch:什么是向量和向量存储数据库,我们为什么关心?,Elasticsearch,AI,Elastic,数据库,elasticsearch,大数据,搜索引擎,全文检索,人工智能

Elasticsearch 从 7.3 版本开始支持向量搜索。从 8.0 开始支持带有 HNSW 的 ANN 向量搜索。目前 Elasticsearch 已经是全球下载量最多的向量数据库。它允许使用密集向量和向量比较来搜索文档。 向量搜索在人工智能和机器学习领域有许多重要的应用。 有效存储和检索向量的数据库对于构建生产就绪的 AI/ML 服务至关重要。更多关于 Elastic 向量搜索的信息,可以在地址 What is vector search? Better search with ML | Elastic 找到更多的信息。

向量到底是什么?

简而言之,向量是数据的数值表示。 所有数据(表格、文本、图像、视频、声音等)都可以表示为多维数字数组。

Elasticsearch:什么是向量和向量存储数据库,我们为什么关心?,Elasticsearch,AI,Elastic,数据库,elasticsearch,大数据,搜索引擎,全文检索,人工智能

Elasticsearch:什么是向量和向量存储数据库,我们为什么关心?,Elasticsearch,AI,Elastic,数据库,elasticsearch,大数据,搜索引擎,全文检索,人工智能

向量搜索的具体工作方式存在不同的技术变化,但基本思想集中在向量空间中的 ANN 算法搜索概念上。

Elasticsearch:什么是向量和向量存储数据库,我们为什么关心?,Elasticsearch,AI,Elastic,数据库,elasticsearch,大数据,搜索引擎,全文检索,人工智能

如上图所示,我们可以看到在向量(嵌入)空间里,cat 和 kitten 这两个单词靠的比较近,而 dog 稍远一点。king 和 queen 这两个词靠的比较近一点,而和 dog 及 cat,kitten 相隔的比较远。这个我们可以通过阅读文章 “Elasticsearch:语义搜索 - Semantic Search in python” 也可以看出来。 那是一篇非常有趣的文章。值得阅读。

作为向量的表格数据

将数据转换为机器学习算法易于使用的形式是在 ML 管道的数据预处理阶段完成的。 这是管道的早期阶段之一。

表格数据(例如 SQL 数据库中的表)每行包含一个观察值。

Elasticsearch:什么是向量和向量存储数据库,我们为什么关心?,Elasticsearch,AI,Elastic,数据库,elasticsearch,大数据,搜索引擎,全文检索,人工智能
表示为向量的表格数据

每列中的数据可大致分为四种类型之一。

  • Nominal:名义数据是指没有任何顺序或定量值的值。 性别就是此类数据的一个例子。
  • Ordinal:序数数据具有自然排序,其中数字按其在刻度上的位置按某种顺序出现,但我们无法对它们执行任何算术任务。 日期字段是序数数据的示例。
  • Discrete:离散数据包含属于整数或整数的值。 班级中的学生总数是离散数据的一个示例。 这些数据不能分解为小数或分数。
  • Continuous:连续数据采用小数形式。 例如,班级学生的身高就是连续数据的一个例子。

机器学习算法不擅长处理名义数据或有序数据。 因此,在将表格数据输入机器学习算法之前,我们通常需要将这些字段转换为数字。 编码是机器学习中将非数字字段转换为数字字段的过程。 对名义字段和序数字段进行编码后,你获得向量数据集。

图像作为向量

图像可以表示为 3 维数字矩阵(技术上是 Rank-3 Tensor,但现在让我们忽略细节)。 两个维度代表像素的坐标,第三个维度包含三个颜色通道。 矩阵中的数字范围为 0 到 255,代表像素的三基色(红、绿、蓝)的值。 因此,4 x 4 像素的彩色图像可以表示为如下所示的矩阵。

Elasticsearch:什么是向量和向量存储数据库,我们为什么关心?,Elasticsearch,AI,Elastic,数据库,elasticsearch,大数据,搜索引擎,全文检索,人工智能

有关如何把图像转换为向量,请参考文章:

  • Elasticsearch:如何在 Elastic 中实现图片相似度搜索

  • Elasticsearch:使用向量搜索来搜索图片及文字

文本作为向量

文本信息可以转换为一个长的数字向量,其中向量中的位置代表单词,值代表该单词在文本中出现的次数。 这称为文本数据的词袋(bag of words)表示。

Elasticsearch:什么是向量和向量存储数据库,我们为什么关心?,Elasticsearch,AI,Elastic,数据库,elasticsearch,大数据,搜索引擎,全文检索,人工智能

These are not the droid you are looking for. No, I am your father.

these:1, are: 2, not: 1, the: 1, droid: 1, you: 1, look: 1, for: 1

no: 1, i: 1, am:1, you: 1, father: 1

Elasticsearch:什么是向量和向量存储数据库,我们为什么关心?,Elasticsearch,AI,Elastic,数据库,elasticsearch,大数据,搜索引擎,全文检索,人工智能

文本信息可以转换为一个长的数字向量,其中向量中的位置代表单词,值代表该单词在文本中出现的次数。 这称为文本数据的词袋(bag of words)表示。这种早期形式的向量化文本会产生稀疏向量(带有太多零的向量)。现在存在更复杂的方法(词嵌入)将文本转换为向量。 这些方法可以生成紧凑、密集的向量,这些向量具有更小的存储大小,并且还以这样的方式对文本的含义进行编码:向量空间中更接近的文本预计在含义上相似。

为什么我们将数据表示为向量?

数据点(data points)在机器学习中被表示为向量,因为它们可以有效地编码和操作信息。 向量提供了一种简洁且结构化的格式来组织数据点,其中每个向量元素对应于特定的特征或属性。 当数据点表示为向量时,机器学习算法可以轻松执行加法、减法和点积等数学运算。 这有利于训练和推理过程中涉及的各种计算,例如计算数据点之间的相似性、估计距离和优化模型。 此外,向量可以使用线性代数和矩阵运算,这构成了许多机器学习技术的基础。 通过利用向量的力量,机器学习算法可以有效地分析复杂的数据集并从中学习,最终获得准确的预测和有价值的见解。

向量是数学的东西

向量搜索是一种已经发展了数十年的机器学习技术。 它将单词转换为数字并使用相似性度量,或测量这些单词彼此之间的相似程度。 它有点复杂,但我们可以通过依赖高中数学中的一些概念使它更具体。

两点之间的线是一个向量,一端在原点,另一端在一点。 我们将其表示为线段的终点。

用几何术语来思考这一点使它更加具体。 你有一条带有起点(称为原点)的线,它向左延伸六个点,向右延伸六个点。 从同一原点开始,直线向上延伸六点,向下延伸六点。 (你可以将线条延伸至无穷大,但为了具体起见,我们使用了一小部分数字。)

如果我们把这些线变成图表,那么左右的线就是 x 轴,上下的线就是 y 轴。 你可以用数字表示轴上的任何点,一侧为正数,另一侧为负数。 我们一直看到这种二维图形,即平面。

Elasticsearch:什么是向量和向量存储数据库,我们为什么关心?,Elasticsearch,AI,Elastic,数据库,elasticsearch,大数据,搜索引擎,全文检索,人工智能
图 1 展示了带有负数和正数的 x 和 y 图

在图 2 中,我们的向量(或线端点)有两个数字 — 一个代表 x 轴,另一个代表 y 轴。 二维意味着你需要两个数字来描述向量空间中的一个位置。

Elasticsearch:什么是向量和向量存储数据库,我们为什么关心?,Elasticsearch,AI,Elastic,数据库,elasticsearch,大数据,搜索引擎,全文检索,人工智能
图 2 说明了一个二维向量,其中两个点均已标记。

要想象三个维度,我们需要从图表中走出来,就像我们从一页纸上走出来一样。 三维点得到三个数字。

对于添加到向量的每个维度(这很难想象),都会得到一个附加数字(有时称为稠密向量)。

在机器学习应用中,计算机科学家将在数百或数千维的空间中处理向量。 这无疑使我们可视化它们的能力以及我们对几何的一些直觉变得复杂,但二维和三维的相同原理也适用。

测量向量相似度

因此,向量允许我们将非结构化数据转换为数字表示,这些数据包括单词、图像、查询,甚至产品。 数据及其向量通过相似性进行同步,并显示与搜索者的问题和意图相匹配的结果。

我们使用相似性指标将数据与查询进行匹配。 这就是上面关于线、图和向量空间的段落的用武之地。

当我们谈论两个非结构化数据的相关程度时,我们需要某种方法来测量它们在向量空间中的距离。 向量用角度来衡量相似性。 这意味着向量的方向而不是向量的长度很重要。 线条的方向决定了角度的宽度,这就是我们衡量相似性的方式。

Elasticsearch:什么是向量和向量存储数据库,我们为什么关心?,Elasticsearch,AI,Elastic,数据库,elasticsearch,大数据,搜索引擎,全文检索,人工智能
图 3 显示了三个二维向量来说明它们之间的角度

再次查看我们的图表,我们看到三个向量。

  • 向量 A 是 (2,1)
  • 向量 B 是 (3,2)
  • 向量 C 为 (-1,  2)

向量 A 和向量 B 之间的角度比向量 A 和向量 C 之间的角度小得多。

窄角度告诉我们,事物是密切相关的,即使一条线段比另一条线段长得多。 同样,我们感兴趣的是向量的方向,而不是长度。

如果两个向量之间存在 180 度角,则表明它们是反相关的,这可能是有价值的信息。 如果角度为 90 度,则这两个向量无法告诉你彼此的信息。

测量两个向量之间的相似度或距离称为余弦距离,因为距离(数字)的实际计算使用余弦函数。

查看曼哈顿地图,您会发现大多数街道都是从上到下(北/南)和从左到右(东/西)延伸的。 当我们需要查看最好的百吉饼店距离我们酒店有多远时,有人会告诉我们向上三个街区,向下一个街区。

这是测量距离的一种方法 —— 百吉饼店距离我所在的地方(原点)有多远,称为曼哈顿距离。 但也有直线距离,这是一种不同的测量方法,称为欧几里德距离。 测量距离的方法有很多种,但这两个例子给了我们这个想法。

在向量搜索中,更接近意味着 “更相关”,更远意味着 “更不相关”。

Elasticsearch:什么是向量和向量存储数据库,我们为什么关心?,Elasticsearch,AI,Elastic,数据库,elasticsearch,大数据,搜索引擎,全文检索,人工智能

现在我们已经将数据表示为向量,接下来会发生什么?

一旦数据以向量形式表示,通常会被输入到预先训练的机器学习模型中,该模型将这些向量映射到新的向量空间,以便相似对象(文本、图像或数据点)的向量在向量中显得彼此接近。新的向量空间。 这个过程称为嵌入,你猜对了,生成的一组新向量也称为嵌入。

Elasticsearch:什么是向量和向量存储数据库,我们为什么关心?,Elasticsearch,AI,Elastic,数据库,elasticsearch,大数据,搜索引擎,全文检索,人工智能
生成向量嵌入的 ML 管道

一旦我们有了一组新的向量(每个向量代表我们的一个数据点),其中与相似数据对应的向量彼此接近,就会发生令人惊奇的事情。

当数据被表示为基于某种相似性概念彼此靠近排列的向量时,查找与给定项目相似的项目就简化为查找与原始项目向量接近的所有项目向量。

那么有什么大不了的呢?

随着向量搜索的发布,你现在可以使用简单的运算符 HNSW 对存储在 Elasticsearch 中的向量执行相似性搜索,而无需设置完全不同的并行基础设施来执行向量搜索。

应用团队立即开始看到以下好处:

  • 简化的应用程序架构和设计
  • 更快的应用程序发布周期
  • 降低基础设施成本
  • 降低维护费用
  • 更快实现价值

能够使用最新的人工智能技术(例如 LLMs 和生成式人工智能)快速增强用户体验的应用程序团队更有可能在竞争中领先。

更多关于如何使用 Elasticsearch 进行向量搜索的知识,请阅读 AI文章专栏。文章来源地址https://www.toymoban.com/news/detail-716609.html

向量搜索用例

  1. 语义搜索:根据搜索查询的含义和文档内容的含义来搜索文档。 与传统的文本搜索方法相比,语义搜索是一种从数据库或搜索引擎检索信息的更先进的方法。 传统文本搜索依赖于关键字匹配和精确单词匹配,而语义搜索旨在理解用户查询和搜索内容背后的上下文、意图和含义。请参阅文章 “Elasticsearch:如何部署 NLP:文本嵌入和向量搜索”。
  2. 反向图像搜索:查找 “看起来像” 给定图像的图像 - 例如 谷歌图片搜索。请参阅文章 “Elasticsearch:如何在 Elastic 中实现图片相似度搜索”。
  3. 推荐引擎:根据以前的视图推荐社交媒体帖子(Instagram 中的 Think Image 推荐、Twitter 上的推文推荐、Facebook Feed 或 Youtube 中推荐的故事等)
  4. 抄袭检测:根据文档与数据库中文档的匹配程度来检测抄袭。

到了这里,关于Elasticsearch:什么是向量和向量存储数据库,我们为什么关心?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Elasticsearch:向量数据库的真相

    通过工作示例了解什么是向量数据库、它们如何实现 “相似性” 搜索以及它们可以在明显的 LLM 空间之外的哪些地方使用。除非你一直生活在岩石下,否则你可能听说过诸如生成式人工智能和大型语言模型(LLM)之类的术语。 除此之外,你很有可能听说过向量数据库,它为

    2024年02月04日
    浏览(34)
  • 如何使用 Elasticsearch 作为向量数据库

    在今天的文章中,我们将很快地通过 Docker 来快速地设置 Elasticsearch 及 Kibana,并设置 Elasticsearch 为向量搜索。 在上面,我们指定了 elasic 超级用户的密码为 password。这在下面将要使用到。 验证容器是否已启动并正在运行: 从上面我们可以看到 Elasticsarch 及 Kibana 已经完全运行

    2024年04月17日
    浏览(59)
  • 向量数据库的崛起:如何改变数据存储与机器学习的未来

      每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与

    2024年04月28日
    浏览(32)
  • Elasticsearch:语义搜索、知识图和向量数据库概述

    结合对你自己的私有数据执行语义搜索的概述 语义搜索是一种使用自然语言处理算法来理解单词和短语的含义和上下文以提供更准确的搜索结果的搜索技术。 这种方法基于这样的想法:搜索引擎不仅应该匹配查询中的,还应该尝试理解用户搜索的意图以及所使用的单

    2024年02月16日
    浏览(34)
  • 什么是向量数据库 ?| What is a Vector Database?

    目录 What’s the difference between a vector index and a vector database?矢量索引和矢量数据库有什么区别? How does a vector database work?矢量数据库如何工作? Algorithms Random Projection Product Quantization 产品量化

    2024年02月07日
    浏览(43)
  • AI大模型的制作:RAG和向量数据库,分别是什么?

    目录 一、什么是 AI 大模型 二、RAG 三、向量数据库 四、如何制作一个好的 AI 大模型 AI大模型是指具有大规模参数和复杂结构的人工智能模型。传统的机器学习模型通常有限的参数量,而AI大模型则通过增加参数量和层数来提升模型的表达能力和性能。这种模型通常使用深度

    2024年02月05日
    浏览(35)
  • AIGC基础:大型语言模型 (LLM) 为什么使用向量数据库,嵌入(Embeddings)又是什么?

    嵌入: 它是指什么?嵌入是将数据(例如文本、图像或代码)转换为高维向量的数值表示。这些向量捕捉了数据点之间的语义含义和关系。可以将其理解为将复杂数据翻译成 LLM 可以理解的语言。 为什么有用?原始数据之间的相似性反映在高维空间中对应向量之间的距离上。

    2024年02月21日
    浏览(38)
  • LangChain 4用向量数据库Faiss存储,读取YouTube的视频文本搜索Indexes for information retrieve

    接着前面的Langchain,继续实现读取YouTube的视频脚本来问答Indexes for information retrieve LangChain 实现给动物取名字, LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字 LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄 引用向量数据库Faiss 查看OpenAI model main.p

    2024年02月05日
    浏览(39)
  • 使用 Elasticsearch 作为向量数据库:深入研究 dense_vector 和 script_score

    Elasticsearch 是一个非常强大且灵活的搜索和分析引擎。 虽然其主要用例围绕全文搜索,但它的用途广泛,足以用于各种其他功能。 其中一项引起许多开发人员和数据科学家关注的功能是使用 Elasticsearch 作为向量数据库。 随着 dense_vector 数据类型的出现以及利用 script_score 函数

    2024年02月07日
    浏览(37)
  • ModaHub魔搭社区:腾讯云发布的向量数据库有什么特点?技术架构是什么样的?

    腾讯云发布的向量数据库有什么特点?技术架构是什么样的? Tencent Cloud VectorDB从性能上看,具备高性能、高可用、低成本等优势,比如单索引支持10亿级向量规模,最快支持毫秒级数据实时更新,适用于AI运算、检索,数据接入AI的效率比传统方案提升10倍。 同时,提供多副

    2024年02月12日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包