0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是向量数据库?关系数据库和向量数据库之间的区别是什么?

新机器视觉 来源:新机器视觉 2023-08-16 10:13 次阅读

近些年来,向量数据库引起业界的广泛关注,一个相关事实是许多向量数据库初创公司在短期内就筹集到数百万美元的资金。

你很可能已经听说过向量数据库,但也许直到现在才真正关心向量数据库——至少,我想这就是你现在阅读本文的原因…… 如果你阅读本文只是为了简单回答上面的问题,那就让我们直接进入话题吧。

定义:什么是向量数据库?

向量数据库是一种以向量嵌入(高维向量)方式存储和管理非结构化数据(如文本、图像或音频)的数据库,以便于快速查找和检索类似对象。

如果这个定义只会引起人们更多的理解上的混乱,那么就让我们一步一步来进行解释。本文的灵感来自WIRED的5级视频系列,本文将揭示向量数据库在以下三个难度级别中的内容:

最浅显的解释

向数字原住民和技术爱好者解释向量数据库

工程师和数据专业人员解释向量数据库

向量数据库:最浅面的解释

这有点离题,但你知道我不明白的是什么吗?当人们按颜色排列书架时,哎哟!当他们不知道书的封面是什么颜色时,他们是如何找到书的?

向量数据库背后的直觉

如果你想快速找到一本特定的书,那么,按类型和作者排列书架比按颜色排列更有意义。这就是为什么大多数图书馆都是这样组织的原因,以便帮助你快速找到你想要的东西。

但是,你如何根据一个查询而不是一个流派或作者来找到可以阅读的书籍呢?如果你想读一本书,例如:类似于《饥饿的毛毛虫》或关于一个和你一样喜欢吃美食的主角?

如果你没有时间浏览书架,最快的方法是向图书管理员征求他们的推荐,因为他们读过很多书,会确切地知道哪本书最适合你的查询。

在组织书籍的例子中,你可以将图书管理员视为向量数据库,因为向量数据库旨在存储关于对象(例如书籍)的复杂信息(例如书籍的情节)。

因此,向量数据库可以帮助你根据特定的查询(例如,一本关于…的书)而不是一些预定义的属性(例如,作者)来查找对象,就像图书管理员一样。

向数字原住民和技术爱好者解释向量数据库

现在,让我们继续探讨图书馆的例子,并获得更多的技术知识:当然,现在,在图书馆中搜索书籍的技术比只按类型或作者搜索更先进了一些。

如果你去图书馆,通常角落里会有一台电脑,可以帮助你找到一本具有更具体属性的书,比如书名、国际标准图书编号、出版年份或一些关键词。根据输入的值,就可以查询存储可用书籍信息的数据库。不过,这个数据库通常是一个传统的关系数据库。

c1f95bca-3b70-11ee-9e74-dac502259ad0.png

关系数据库和向量数据库之间的区别是什么?

关系数据库和向量数据库之间的主要区别在于它们存储的数据类型。虽然关系数据库是为适合表的结构化数据而设计的,但是,向量数据库即是为非结构化数据(如文本或图像)而设计的。

存储的数据类型也会影响数据的检索方式:在关系数据库中,查询结果基于特定关键字的匹配。在向量数据库中,查询结果是基于相似性进行的。

你可以把传统的关系数据库想象成电子表格。它们非常适合存储结构数据,例如关于一本书的基本信息(例如,标题、作者、ISBN等),因为这类信息可以存储在列中,非常适合过滤和排序。

使用关系数据库,你可以快速获取所有书籍,例如儿童书籍,并且标题中有“毛虫”。

但是,如果你喜欢《饥饿的毛毛虫》是关于食物的呢?你可以试着搜索关键词“食物”,但除非在书的摘要中提到关键词“食品”,否则你甚至找不到“非常饥饿的毛毛虫”。相反,你可能会以一堆烹饪书和失望告终。

这是关系数据库的一个限制:你必须添加你认为某人可能需要的所有信息才能找到该特定项目。但是,你怎么知道该添加哪些信息以及添加多少信息呢?添加所有这些信息往往非常耗时,并且不能保证完整性。

然而,这正是向量数据库发挥作用的地方! 不过,你首先需要先来了解一下一个叫做向量嵌入(vector embeddings)的概念。

今天的机器学习(ML)算法可以将给定的对象(例如,单词或文本)转换为保留该对象信息的数字表示。想象一下,你给一个ML模型一个词(例如,“食物”),然后这个ML模型发挥了它的魔力,给你返回了一长串数字。这个长长的数字列表是单词的数字表示,即称为向量嵌入。

因为这些嵌入是一长串数字,所以我们称之为高维。让我们假设这些嵌入只是三维的,以便将它们可视化,如下所示。

c24bb762-3b70-11ee-9e74-dac502259ad0.png  

你可以看到,类似的单词,如“饥饿”(hungry)、“口渴”(thirsty)、“食物”(food)和“饮料”(drink),都被分组在一个相似的角落里,而其他单词如“自行车”(bicycle)和“汽车”(car),则在这个向量空间中靠近在一起,但在不同的角落里。

数字表示使我们能够将数学计算应用于通常不适合计算的对象,如单词。例如,除非将单词替换为其嵌入;否则,以下计算将不起作用:

drink - food + hungry = thirsty

因为我们可以使用嵌入进行计算,所以我们也可以计算一对嵌入对象之间的距离。两个嵌入对象之间的距离越近,它们就越相似。

正如你所看到的,向量嵌入非常酷。

让我们回到前面的例子,假设我们将每本书的内容嵌入到图书馆中,并将这些嵌入存储在向量数据库中。现在,当你想找到一本“主角喜欢食物的童书”时,你的查询也会被嵌入,并返回与你的查询最相似的书籍,例如《饥饿的毛毛虫》或《金发姑娘与三只熊》。

向量数据库的使用情况是什么?

事实上,向量数据库在大型语言模型(LLM)的宣传开始之前就已经存在了。最初,它们被应用于推荐系统中,因为它们可以快速找到给定查询的相似对象。但是,由于它们可以为大型语言模型提供长期记忆,因此最近也被应用于问答应用程序中。

向工程师和数据专业人员解释向量数据库

如果在打开本文之前,你已经猜到向量数据库可能是存储向量嵌入的一种方式,并且只想知道向量嵌入的背后是什么,那么,现在让我们来深入了解并讨论一下相关的算法。

向量数据库是如何工作的?

向量数据库能够快速检索查询中的类似对象,因为它们已经预先计算过了。其基本概念被称为近似最近邻(Approximate Nearest Neighbor:ANN)搜索,它使用不同的算法来索引和计算相似性。

正如你所能想象的,当你有数百万个嵌入时,用简单的k近邻(kNN)算法计算查询和每个嵌入对象之间的相似性可能会变得相当耗时。而使用ANN搜索算法,你可以以一定的准确性换取速度,并检索与查询近似最相似的对象。

索引:为此,向量数据库对向量嵌入进行索引。此步骤将向量映射到数据结构,从而实现更快的搜索。

你可以把索引看作是把图书馆里的书分成不同的类别,比如作者或流派。但由于嵌入可以包含更复杂的信息,进一步的分类可能是“主角的性别”或“情节的主要位置”。因此,索引可以帮助您检索所有可用向量的较小部分,从而加快检索速度。

我们不会讨论索引算法的技术细节;但是,如果你有兴趣进一步阅读,你可能想从查找分层导航小世界(Hierarchical Navigable Small World:HNSW)开始。

相似性度量:为了从索引向量中找到查询的最近邻居,向量数据库应用相似性度量。常见的相似性度量包括余弦相似性、点积、欧几里得距离、曼哈顿距离和汉明距离(Hamming distance)。

向量数据库相对于将向量嵌入存储在NumPy数组中的优势是什么?

我经常(已经)遇到的一个问题是:我们不能只使用NumPy数组来存储嵌入吗?——当然,如果你没有很多嵌入,或者你只是在做一个有趣的爱好项目,你可以这样做。但正如你已经猜到的,当你有很多嵌入时,向量数据库会明显更快,而且你不必把所有东西都保存在内存中。

最后,我仅会简短地说一句,因为伊桑·罗森塔尔在解释使用向量数据库和使用NumPy数组之间的区别方面做得比我写的要好得多。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7148

    浏览量

    161986
  • 向量机
    +关注

    关注

    0

    文章

    166

    浏览量

    20716
  • 机器学习
    +关注

    关注

    66

    文章

    8122

    浏览量

    130561
  • LLM
    LLM
    +关注

    关注

    0

    文章

    201

    浏览量

    233

原文标题:一文带你全面理解向量数据库

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    labvies访问数据库

    管理方式都无法正确反映各类数据之间的密切联系,都不能有效的管理和组织数据。因此以数据库为中心,以数据管理为重点,构建的基于
    发表于 08-26 10:19

    数据库连接

    接口(API)用以实现访问关系或非关系数据库中的数据。ADO使用通用数据连接UDL(Universal Data Link)来获得数据库信息
    发表于 06-29 21:29

    建立与数据库的连接

    接口(API)用以实现访问关系或非关系数据库中的数据。ADO使用通用数据连接UDL(Universal Data Link)来获得数据库信息
    发表于 07-01 21:24

    数据库管理

    如题:用labview操作access数据库做公司测试流程管控。因测试数据量大,数据生成多,现在accdb文件已经有50M了,现在发现数据库在本地操作都很快,但是放在远端服务器后操作就
    发表于 11-08 16:58

    对象-关系数据库的映射技术你了解吗?

    为什么对象-关系数据库的映射对于现代开发者是一件大事呢?一方面,对象技术(例如 Java 技术)是应用于新软件系统开发的最常见的环境。另外,关系数据库仍然是许多人都青睐的持久信息存储方法,并且在较长时间内这种情况不太会改变。请继续读下去,了解如何使用这种技术。
    发表于 05-23 06:10

    浅析对象数据库和NoSQL

    (阻抗不匹配)”。于是吗,关系数据库对于程序员的设计始终有相当大的限制,有的人擅长从领域模型去设计程序,有的人喜好从数据存储层面去设计代码。在对象数据库中,可以显式避免了一些传统
    发表于 05-27 06:36

    使用NoSQL数据库的原因

    阻抗失衡 关系模型和内存中的数据结构不匹配 采用更为方便的数据交互方式提升开发效率待处理的数据量很大 数据量超过
    发表于 05-27 06:43

    对象和数据库的天然阻抗

    人一些共性,当然他们之间也有区别,所以我们用上述继承关系来表达这样一个情况。  那么如果这样继承关系的类图如何保存到关系数据库中呢?有两种方
    发表于 05-30 06:56

    关系数据库与非关系数据库区别浅析

    关系数据库的一个劣势就是 阻抗失谐(impedance mismatch):关系模型和内存中的数据结构之间存在差异
    发表于 06-03 06:03

    MobiLink关系数据库同步系统是什么?

    和统一数据库保持同步,达到共享数据和保持数据一致性的目的。MobiLink是iAnywhere Solutions公司开发的基于会话的关系数据库同步系统,它支持远程
    发表于 10-09 06:09

    什么是时序数据库

    本文根据演讲视频以及PPT整理而成。本文将主要围绕以下四个方面进行分享:时序数据与时序数据库时序数据库的演变时序数据库对比总结一、时序数据
    发表于 07-12 08:35

    最新国产数据库排名

    金融领域应用案例;5.分布式、关系型、云化及内存数据库占比统计。01 开篇在刚刚过去的一年也就是2019年是国产数据库崛起的元年,众多的国产数据库产品闯入了我们的视线,目前国产
    发表于 07-28 08:06

    什么是数据库

    什么是数据库数据库的主要特点有哪些?数据库的基本结构是由哪几部分组成的?
    发表于 09-23 09:09

    HarmonyOS数据库的相关资料下载

    1、HarmonyOS数据库篇之轻量级数据存储HarmonyOS中的数据库存储主要分为3种形式:1. 轻量级数据存储2. 关系
    发表于 03-28 11:13

    HarmonyOS关系数据库和对象关系数据库的使用方法

    容易就上手的知识。本篇速成教程直接使用最精准和简短的文字,再配上讲解代码,让我们能在10分钟左右就能掌握最基本的数据库使用方法。数据库的三大要素:数据库、表、字段,接下来为大家介绍关系
    发表于 03-29 14:10