Cointime

扫码下载App
iOS & Android

向量数据库——实现大规模相似性搜索的最强工具

媒体

作者:Shashank Vats. 编译:Cointime.com QDD

向量数据库

向量数据库是一种将数据存储为高维向量的数据库,这些向量是特征或属性的数学表示。这些向量通常是通过对原始数据(如文本、图像、音频、视频等)应用某种嵌入函数生成的。

向量数据库可以定义为一种工具,用于索引和存储向量嵌入,以实现快速检索和相似性搜索,具有元数据过滤和水平扩展的功能。

向量数据库在很大程度上依赖于向量嵌入,这是一种数据表示类型,其中包含了对于AI获得理解并在执行复杂任务时可以借鉴的长期记忆至关重要的语义信息。因此,在我们进一步了解向量数据库之前,让我们先了解一下向量嵌入是什么!

向量嵌入

向量嵌入就像一张地图,但它不是显示物体在世界中的位置,而是显示物体在所谓的向量空间中的位置。向量空间就像一个大操场,每个物体都有自己的位置。假设我们有一些动物——一只猫、一只狗、一只鸟和一条鱼。我们可以通过为每个图像创建一个向量嵌入,在操场上给它一个特殊的位置。猫可能在一个角落,狗在另一边。鸟可能在天空中,鱼可能在池塘里。这个地方是一个高维空间。每个维度对应它们的不同特征,比如鱼有鳍,鸟有翅膀,猫和狗有腿。它们的另一个特征可以是鱼属于水域,鸟大多在天空中,猫和狗在陆地上。一旦我们拥有了这些向量,我们可以使用数学技巧根据它们的相似性将它们分组在一起。根据我们拥有的信息,我们可以将具有相似特征的动物,如猫和狗,更接近地放置在向量空间中。

因此,向量嵌入就像一张地图,它帮助我们找到向量空间中物体之间的相似性。就像地图帮助我们在世界中找到方向一样,向量嵌入帮助我们在向量的操场上找到方向。

现在我们可能已经明白,关键的思想在于具有语义相似性的嵌入之间的距离较小。为了找出它们有多相似,我们可以使用向量距离函数,如欧几里德距离、余弦距离等。然而,考虑到我们必须计算和比较查询向量与每个其他向量之间的距离,比较距离可能是一项相当令人生畏的任务。这就是为什么我们有向量数据库和向量库的原因。现在可能会出现最大的问题是——既然它们都允许通过向量进行高效搜索,它们之间的区别是什么呢?让我们找出答案!

向量数据库 vs 向量库

向量库将向量嵌入存储在内存索引中,以进行相似性搜索。向量库具有以下功能/限制:

1. 仅存储向量 — 向量库仅存储向量嵌入,而不是生成它们的相关对象。这意味着当我们运行查询时,向量库将返回相关的向量和对象ID。这是有限制的,因为实际信息存储在对象中而不是ID。要解决这个问题,我们需要将对象存储在辅助存储中。然后,我们可以使用查询返回的ID与对象匹配以了解结果。

2. 索引数据是不可变的 — 向量库产生的索引是不可变的。这意味着一旦导入数据并构建了索引,我们就无法进行任何修改(无法进行新的插入、删除或更改)。要对索引进行任何更改,我们将需要从头开始重新构建它。

3. 导入期间的查询限制 — 大多数向量库在导入数据时不能进行查询。需要先导入所有数据对象,然后在导入对象后构建索引。这可能会成为需要导入数百万甚至数十亿对象的应用程序的问题。

有许多向量搜索库可用 — Facebook的FAISS、Spotify的Annoy和Google的ScaNN。FAISS使用聚类方法,Annoy使用树,而ScaNN使用向量压缩。每种方法都存在性能权衡,我们可以根据应用程序和性能要求进行选择。

向量数据库与向量库之间最核心的区别是能够存储、更新和删除数据。向量数据库完全支持CRUD(创建、读取、更新和删除)操作,解决了向量库的限制。

1. 存储向量和对象 — 数据库可以同时存储数据对象和向量。由于两者都被存储,我们可以将向量搜索与结构化过滤器结合使用。过滤器可以确保最近的邻居与元数据匹配。

2. 可变性 — 由于向量数据库完全支持CRUD,我们可以在创建索引后轻松地添加、删除或更新条目。这在处理持续变化的数据时非常有用。

3. 实时搜索 — 与向量库不同,数据库允许我们在导入过程中查询和修改数据。当我们上传数百万个对象时,已导入的数据仍然完全可访问和可操作,因此我们无需等待导入完成才能开始处理已有的数据。

简而言之,向量数据库通过解决独立向量索引的限制,提供了处理向量嵌入的优越解决方案,正如上述几点所讨论的。

但是,是什么使得向量数据库优于传统数据库呢?

向量数据库 vs 传统数据库

传统数据库旨在使用关系模型存储和检索结构化数据,这意味着它们对基于数据列和行的查询进行了优化。虽然可以将向量嵌入存储在传统数据库中,但这些数据库并不适用于向量操作,不能以高效的方式在大型数据集上执行相似性搜索或其他复杂操作。

这是因为传统数据库使用基于简单数据类型(如字符串或数字)的索引技术。这些索引技术不适用于高维向量数据,高维向量数据需要使用反向索引或空间树等专门的索引技术。

此外,传统数据库并未设计用于处理常与向量嵌入相关的大量非结构化或半结构化数据。例如,图像或音频文件可能包含数百万个数据点,传统数据库无法高效处理这些数据。

另一方面,向量数据库专门设计用于存储和检索向量数据,并针对大型数据集执行相似性搜索和其他复杂操作进行了优化。它们使用专门的索引技术和算法来处理高维数据,使它们比传统数据库在存储和检索向量嵌入方面更加高效。

既然你已经阅读了这么多关于向量数据库的内容,你可能想知道它们是如何工作的。让我们来看一看。

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

我们都知道传统数据库的工作原理——它们将字符串、数字和其他类型的标量数据存储在行和列中。另一方面,向量数据库操作的是向量,因此它的优化和查询方式相当不同。

在传统数据库中,我们通常查询数据库中值与我们的查询完全匹配的行。在向量数据库中,我们应用相似度度量来查找与我们的查询最相似的向量。

向量数据库使用多种算法的组合来参与近似最近邻(ANN)搜索。这些算法通过哈希、量化或基于图的搜索来优化搜索过程。

这些算法组合成一个管道,可以快速准确地检索查询向量的邻居。由于向量数据库提供近似结果,我们需要考虑的主要权衡是准确性和速度之间的平衡。结果越准确,查询的速度就越慢。然而,一个好的系统可以以超快的速度提供几乎完美的准确性。

以下是向量数据库的常见管道:

l   索引 — 向量数据库使用PQ、LSH或HNSW等算法对向量进行索引。这一步将向量映射到将实现更快搜索的数据结构。

l   查询 — 向量数据库将索引查询向量与数据集中的索引向量进行比较,以找到最近的邻居(应用索引所使用的相似度度量)。

l   后处理 — 在某些情况下,向量数据库从数据集中检索最终的最近邻,并对其进行后处理以返回最终结果。这一步可以包括使用不同的相似性度量重新排序最近邻。

总结

向量数据库是在大型数据集上进行相似性搜索和其他复杂操作的强大工具,这些操作在传统数据库中无法有效执行。要构建一个功能完备的向量数据库,嵌入是必不可少的,因为它们捕捉了数据的语义含义,并实现了准确的相似性搜索。与向量库不同,向量数据库的设计可以根据我们的用例进行扩展,使其成为性能和可扩展性至关重要的应用程序的理想选择。随着机器学习和人工智能的兴起,向量数据库在许多应用中变得越来越重要,包括推荐系统、图像搜索、语义相似性等等。随着这一领域的不断发展,我们可以期待在未来看到更多对向量数据库的创新应用。

评论

所有评论

推荐阅读

  • 5月14日早间要闻速递

    1.拜登禁止中国投资人支持的加密矿企在美国导弹基地附近拥有土地

  • 全网 BTC 期权未平仓头寸为 184.6 亿美元,ETH 期权未平仓头寸为 90.8 亿美元

    据 Coinglass 数据显示,目前全网 BTC 期权未平仓头寸的名义价值为 184.6 亿美元,ETH 期权未平仓头寸的名义价值为 90.8 亿美元。

  • CFTC与Falcon Labs就注册违规问题达成和解

    美国商品期货交易委员会(CFTC)与加密主要经纪公司Falcon Labs, Ltd.达成和解,解决了Falcon Labs应该注册但未注册的问题。这是CFTC首次针对未注册期货佣金商进行的行动,Falcon Labs被指责不当地促进客户在数字资产交易所的交易。Falcon Labs未承认也未否认CFTC的发现,被罚款超过170万美元。此前,CFTC曾指控Binance及其前CEO,Falcon Labs随后改变了其收集客户信息的方式,并更新了其了解客户政策。CFTC表示,希望通过对Falcon Labs的合作和整改,鼓励其他非法数字资产中介机构向其报告活动。

  • 巴西4个月交易量达到60亿美元

    Kaiko Research表示,比特币 (BTC) 与股票的相关性正在上升,90 天相关性在 3 月份触及 0.01 的多年低点后,上周升至 0.17。根据该公司5 月 13 日的研究报告,比特币与股票的 90 天相关性在 5 月 5 日当周升至 0.17,高于 3 月份的多年低点 0.01。BTC 与风险资产的相关性低于牛市期间的 0.6 高位。 该研究报告还强调了巴西加密货币市场的高交易量。巴西的交易量大幅增加,并超过了美元。2024 年 1月至 5 月初,巴西雷亚尔 (BRL) 交易量达到 60 亿美元,使其成为拉丁美洲最大的加密货币市场和全球第七大法定货币市场。 Kaiko还报告了其他数据。该公司指出,自 3 月份以来,ETH 看跌期权和看涨期权的价格出现了分歧。 Kaiko 表示,随着美国 SEC 于 5 月 23 日拒绝或批准现货以太坊 ETF,这一趋势“可能是波动即将来临的迹象”。

  • 以太坊基金会宣布第五期Ethereum Protocol Fellowship计划正式开放申请

    5月14日消息,以太坊基金会宣布第五期 Ethereum Protocol Fellowship(EPF)计划正式开放申请,申请截止日期为5月26日。 EPF 是一个无需许可的项目,旨在为有抱负的协议贡献者提供一个为以太坊做出有意义贡献的通道。第五期项目为期五个月,从2024年6月持续到11月,期间将在布鲁塞尔的 EthCC 和东南亚的 Devcon 举行两次线下活动。 5月21日UTC时间16:00,EPF 团队将举行一次线上交流会,介绍项目详情并回答问题。有兴趣的开发者可以在 GitHub 仓库中查看完整的项目细则,并及时提交申请。

  • 拜登禁止中国投资人支持的加密矿企在美国导弹基地附近拥有土地

    美国总统拜登发布命令,禁止一家中国投资人占多数股权的加密货币挖矿公司在怀俄明州的一个空军基地附近拥有土地。根据美国财政部周一发布的一份声明,拜登还要求将该土地出售。

  • Tether CEO :Ripple首席执行官的言论散布了人们对USDT的恐惧

    Tether首席执行官Paolo Ardoino在社交媒体平台上回应了Ripple首席执行官Brad Garlinghouse在最近一次有关稳定币Tether ( USDT ) 的采访中发表的评论。Garlinghouse在采访中表示,美国政府正在追捕 Tether,这对我来说很清楚。 Ardoino表示,据报道,一位不知情的首席执行官领导一家正在接受 SEC 调查的公司推出了具有竞争力的稳定币(cui prodest),散布了人们对USDT的恐惧。Ardoino强调Tether在为新兴和发展中地区无银行账户社区提供金融服务方面发挥着关键作用,而这些地区往往被传统金融机构忽视。他进一步断言,Tether坚持严格的透明度和监管遵守标准,这体现在其遵守OFAC/SDN名单、与Chainalysis的合作以及与国际执法机构的广泛合作以检测和防止非法活动,从而增强其生态系统的安全性。

  • Multisig Exploit黑客相关地址开始活跃并进行洗钱

    据MistTrack监测,Multisig Exploit黑客攻击是ETH历史上的第一次黑客攻击,其中超过15万个ETH被盗,当时价值约3000万美元(早在2017年7月)。今天它的价值接近4.5亿美元,涉及的0xb37647开头地址目前仍然有超过8万枚ETH。该地址总共向7个不同的地址发送了约7万枚ETH,每个地址有1万枚ETH。在过去的几个月里,这些不同的地址一直在慢慢地洗钱。其中一个0x5167052开头地址最近又开始活跃。

  • Web3 AI平台ChainML完成620万美元种子轮扩展融资,Hack VC领投

    Web3 AI 平台 ChainML 宣布完成 620 万美元种子轮扩展融资,Hack VC 领投,Inception Capital、HTX Ventures、Figment Capital、Hypersphere Ventures 和 Alumni Ventures 等参投,该平台还宣布推出其代理基础层 Theoriq。

  • 元宇宙项目 Baby Shark Universe 以 3400 万美元估值完成种子轮融资

    元宇宙项目 Baby Shark Universe 宣布完成种子轮融资,估值为 3400 万美元,投资方包括 Animoca Brands、CREDIT SCEND、Sui Foundation、Comma3 Ventures、Creditcoin、GM Ventures、Neuler、Notch Ventures、X+ 和 Planetarium 等。具体金额暂未披露,所筹集的资金将用于开发和全球营销。