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

news2024/11/24 13:08:20

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

向量到底是什么?

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

作为向量的表格数据

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

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

表示为向量的表格数据

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

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

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

图像作为矢量

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

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

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

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

文本作为矢量

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

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

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

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

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

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

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

生成向量嵌入的 ML 管道

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

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

那么有什么大不了的呢?

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

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

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

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

更多关于如何使用 Elasticsearch 进行向量搜索的知识,请阅读 AI文章专栏。

向量搜索用例

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1036995.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

马尔可夫链预测举例——钢琴销售的存贮策略

问题概述 一家钢琴专卖店,根据以往的销售经验,平均每周只能售出一架钢琴,现在经理指定的存贮策略是,每周末检查库存存量,仅当库存量为零时,才订购3架供下周销售;否则就不订购。试估计这种策略下…

Linux环境变量配置说明(配置jdk为例-摘录自尚硅谷技术文档)

配置环境变量的不同方法 Linux的环境变量可在多个文件中配置,如/etc/profile,/etc/profile.d/.sh,~/.bashrc,~/.bash_profile等,下面说明上述几个文件之间的关系和区别。 bash的运行模式可分为login shell和non-login shell。 例…

Zookeeper 集群安装(linux )

1、规划 节点名称安装软件hadoop01jdk1.8 zookeeper3.4.6hadoop02jdk1.8 zookeeper3.4.6hadoop03jdk1.8 zookeeper3.4.62、下载jdk 和 zookeeper 3、上传jdk和zookeeper 到3台机器上解压 目录:/opt/software/ tar -zxvf jdk1.8.0_191.tar.gz tar -zxvf zookeeper-3.4.6…

minikube搭建k8s

环境:centos7,docker18 minikube搭建k8s 说明 minikube是最接近原生kubernetes的本地单机版集群,支持大部分kubernetes功能,用于学习和开发k8s。支持Linux、Windows、Mac 官网安装文档 安装前提 一台物理机或者虚拟机&#x…

钾和钠含量

声明 本文是学习GB-T 397-2022 商品煤质量 炼焦用煤. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件规定了炼焦用商品煤产品质量等级和技术要求、试验方法、检验规则、标识、运输及贮存。 本文件适用于生产、加工、储运、销售、使用…

【GNN论文精读】A Gentle Introduction to Graph Neural Networks

论文地址:A Gentle Introduction to Graph Neural Networks 作者:谷歌的三位大佬 时间:2021年 参考李沐老师的论文讲解课而做的笔记 Transformer论文逐段精读【论文精读】_哔哩哔哩_bilibili 目录 1. 前言 2. 什么是图 2.1 图的基本概念 …

9.24周报

文章目录 文献阅读GAN学习总结 文献阅读 题目:Improvement of streamflow simulation by combining physically hydrological model with deep learning methods in data-scarce glacial river basin https://www.sciencedirect.com/science/article/pii/S00221694…

【深度学习实验】前馈神经网络(三):自定义两层前馈神经网络(激活函数logistic、线性层算子Linear)

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入必要的工具包 1. 构建数据集 2. 激活函数logistic 3. 线性层算子 Linear 4. 两层的前馈神经网络MLP 5. 模型训练 一、实验介绍 本实验实现了一个简单的两层前馈神经网络 激活函数…

41. Linux系统配置FTP服务器并在QT中使用QFtp实现文件上传

1. 说明 这篇博客主要记录一些在Linux系统中搭建FTP服务器时踩过的一些坑,以及在使用QFtp上传文件时需要注意的问题。 2. FTP环境搭建 在linux系统中,需要安装vsftpd,可以在终端中输入下面的命令进行安装: sudo apt-get install vsftpd使用上述命令安装后,系统中会有一…

day28IO流(字节流字符流)

1. IO概述 1.1 什么是IO 生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrls ,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢&a…

机试算法学习

又到了一年一度的校招干饭环节,本人不得已以应届生的身份卷入了这场洪流,让我们各自加油吧! 蛇形矩阵 xx机考编程题 题目描述 输入两个整数 n和 m,输出一个 n 行 m 列的矩阵,将数字 1到 nm按照回字蛇形填充至矩阵中…

【前段基础入门之】=>HTML 标签元素

前言: 在前一章节中,我们讲解认识了,HTML 的概念,以及它的标准文档结构,所以本章节就带来 HTML 学习的第二步,学习了解HTML 的排版标签元素。 文章目录 文档排版标签元素语义化标签块级元素与行内元素文本标…

Linux桌面环境中应用程序无法启动图形交互界面

现象: 点击永中office或者金山office快捷图标无法启动对应的程序。 从命令行执行对应的程序则提示 按照提示安装组件 再次执行命令行程序 原因探析: /opt/Yozosoft/Yozo_Office/Yozo_Writer.bin: error while loading shared libraries: libgdk-x11-2.0.…

SQL 如何提取多级分类目录

前言 POI数据处理,原始数据为csv格式,整理入库至PostGreSQL,本例使用PostGreSQL13版本。 一、POI POI(一般作为Point of Interest的缩写,也有Point of Information的说法),通常称作兴趣点&am…

Cloudflare分析第一天:简单的算法反混淆

记录1: Cloudflare 加密方式为动态JS,每次请求JS文件都会变化,笨方式,先复制一份出来分析看! 原JS: window._cf_chl_opt.uaSR true; window._cf_chl_opt.uaO false; function(ia, fy, fz, fA, fB, fC, fM, fV, fW…

Windows 11 家庭中文版添加本地安全策略

一、报错 Windows11中打开本地组策略编辑器(cmd中输入gpedit.msc),报错: 二、解决 1、新建txt文件,文件名任意,将下面的内容复制粘贴进去。2、将文件后缀名由txt改为cmd。3、以管理员身份执行该cmd文件,安装本地安全…

java Spring Boot生成图片二维码

首先 我们要引入依赖 pom.xml中插入 <dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.4.1</version> </dependency> <dependency><groupId>com.google.zxing</grou…

Jetpack Compose 的简单 MVI 框架

Jetpack Compose 的简单 MVI 框架 在 Jetpack Compose 应用程序中管理状态的一种简单方法 选择正确的架构是至关重要的&#xff0c;因为架构变更后期代价高昂。MVP已被MVVM和MVI取代&#xff0c;而MVI更受欢迎。MVI通过强制实施结构化的状态管理方法&#xff0c;只在reducer中…

Linux 快捷键

1、快捷键小操作 1.1、ctrl c 强制停止 Linux某些程序的运行&#xff0c;如果想要强制停止它&#xff0c;可以使用快捷键ctrl c 命令输入错误&#xff0c;也可以通过快捷键ctrl c&#xff0c;退出当前输入&#xff0c;重新输入 1.2、ctrl d 退出或登出 可以通过快捷键&…