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

2023-09-21 13:29:56

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 像素的彩色图像可以表示为如下所示的矩阵。

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

文本作为矢量

文本信息可以转换为一个长的数字向量,其中向量中的位置代表单词,值代表该单词在文本中出现的次数。 这称为文本数据的词袋(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. 抄袭检测:根据文档与数据库中文档的匹配程度来检测抄袭。
更多推荐

2023年8月京东空调行业品牌销售排行榜(京东数据报告)

鲸参谋监测的京东平台8月份空调市场销售数据已出炉!鲸参谋数据显示,今年8月份,京东平台上空调的销量将近146万,环比降低约44%,同比降低约37%;销售额为41亿+,环比下降约45%,同比下降约40%。可以看到,8月份空调市场整体下滑。*数据源于鲸参谋-行业趋势分析(来自公开渠道获取,数据仅供参考)空调市场中,格力品牌

Python编程指南:利用HTTP和HTTPS适配器实现智能路由

目录HTTP和HTTPS适配器什么是智能路由利用HTTP和HTTPS适配器实现智能路由总结在Python编程中,利用HTTP和HTTPS适配器实现智能路由是一项非常实用的技能。智能路由可以根据不同的条件选择不同的路由,从而提高网络性能和用户体验。在本文中,我们将介绍如何使用Python编程语言和HTTP/HTTPS适配

非对称加密、解密原理及openssl中的RSA示例代码

一、【原理简介】非对称加密非对称加密,也被称为公钥加密,其中使用一对相关的密钥:一个公钥和一个私钥。公钥用于加密数据,私钥用于解密数据。公钥可以公开分享,而私钥必须保密。密钥生成:当一个用户或设备希望使用非对称加密时,要生成一对密钥:一个公钥和一个私钥。这两个密钥是数学上相关的,但从公钥中计算出私钥在计算上是不可行的。

【操作系统笔记】内存寻址

物理寻址主存(内存)计算机主存也可以称为物理内存,内存可以看成由若干个连续字节大小的单元组成的数组每个字节都有一个唯一的物理地址(PhysicalAddress)CPU访问内存前,先拿到内存地址,然后,通过内存地址访问内存中数据指令总线的分工数据总线:负责传输实际数据的地址总线:负责传输数据地址的,用来确定到底把数据传

FPGA千兆网 UDP 网络视频传输,基于88E1518 PHY实现,提供工程和QT上位机源码加技术支持

目录1、前言版本更新说明免责声明2、我这里已有的以太网方案3、设计思路框架视频源选择OV5640摄像头配置及采集动态彩条UDP协议栈UDP视频数据组包UDP协议栈数据发送UDP协议栈数据缓冲IP地址、端口号的修改TriModeEthernetMAC介绍以及移植注意事项88E1518PHYQT上位机和源码4、vivado

AOSP源码中Android.mk文件中的反斜杠符号(\)的作用和使用

简介在AOSP(AndroidOpenSourceProject)源码中的Android.mk文件中,反斜杠符号(\)的主要作用是将一行代码拆分成多行,以提高可读性并帮助组织较长的代码块。这对于定义复杂的构建规则和变量时特别有用。以下是\符号在Android.mk文件中的作用以及如何使用它的示例:多行命令:Androi

Nacos使用教程(三)——nacos注册中心(2)

文章目录什么是注册中心注册中心的作用1.服务注册2.服务发现3.负载均衡4.故障恢复注册中心的解决的问题1.服务管理问题2.服务调用问题3.负载均衡问题4.故障恢复问题服务的发现与注册的实现模式服务注册表Nacos注册中心的部署与使用什么是Nacos注册中心Nacos注册中心的部署下载Nacos安装包解压安装包修改配置

【图像处理】怎么让图片背景变透明?怎么改变图片中线条的颜色?在线PS软件

文章目录前言一、打开图二、背景透明处理三、改变线条颜色总结前言我们处理图片将会使用到PS软件,如果安装了PS那直接打开使用。如果没有安装PS,可使用在线PS软件:https://www.uupoop.com/#/一、打开图第一步,从这个入口打开图片。第二步:打开图片,我们打开一个MySQL数据库的图标。二、背景透明处理

【AIGC】提示词 Prompt 分享

提示词工程是什么?Promptengineering(提示词工程)是指在使用语言模型进行生成性任务时,设计和调整输入提示(prompts)以改善模型生成结果的过程。它是一种优化技术,旨在引导模型产生更加准确、相关和符合预期的输出。在生成性任务中,输入提示是指提供给语言模型的初始文本或问题,用以引导其生成后续的文本或回答

无CDN场景下的传统架构接入阿里云WAF防火墙的配置实践

文章目录1.配置网站接入WAF防火墙1.1.配置网站接入方式1.2.填写网站的信息1.3.WAF防火墙生成CNAME地址2.配置WAF防火墙HTTPS证书3.修改域名DNS解析记录到WAF防火墙4.验证网站是否接入WAF防火墙传统架构接入WAF防火墙非常简单,配置完WAF网站接入后,将得到CNAME地址配置在域名DNS

Linux(Centos7)中安装Docker和DockerCompose

一、安装DockerDocker分为CE和EE两大版本。CE即社区版(免费,支持周期7个月),EE即企业版,强调安全,付费使用,支持周期24个月。DockerCE分为`stable``test`和`nightly`三个更新频道。官方网站上有各种环境下的https://docs.docker.com/install/,这

热文推荐