暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
向量数据库|第2期|pgvectorscale.docx
180
5页
1次
2024-11-01
5墨值下载
向量数据库

大家都听说

,一个

存储和查询向量的扩展,是

生态当之无愧
最受推崇的工具之一。


中添加了

类型,以及各种搜索操作符和索引,
使其拥有


的完整数据库能力。但他的

索引有两个问题:
)需要将整个索引都放到内存,否则会变慢。索引成为整个应用的唯一瓶颈
)基于

索引的

不能以一种合理的方式充分利用预过滤。利用

查询
是 ,

仅能

中返最大果集大多情况小于

,否会变
慢)。假设你有一个多租户应用,维护数千支

,每一个有数千个文本(或
量)。针对你的查询请求

会查询所有

,返回一个有限数量的结果集,
然后此结集上行过。如最佳果位不相

中时无法证为

找到任何向量。
pgvectorscale
Rust
言开添加于磁引,这两
的说,它添加了微
 !
论文中提到的
StreamingDiskANN
,一种图结构的专门用于过
滤的近邻查询的索引。

的三大特性:支持
 !
索引(算法)、支持
 "#$ "
、支持
%
&&' "()*"&+&"
)。
1
DiskANN
算法
 !
算法

类似基于。基法有:查
一个距离
 &"
非常远的点非常耗时,因为它需要大量


通过入一分层统(层仅
"#",
边,高速路边帮助速进
"#"
问题,但通过分层系统引入了更多的
" &"
,需要更多随机访问,从而需要
将该图放到
-.
中以获得更好的性能。
与此相反,
 !
使用单层图,在图构建时通过引用远距离的邻居边来解决
"#"
题。单层构建简化了算法,并且在查询时减少了不必要的随机访问,使得

更加高效。
相对

来说,它从一个随机图开始,他的核心是一个
/"
的图

算法
构建图的算法为
)随机始化一个度为
-
的图
:每个节点随机选择
-
数量的邻居节点并建立连接
算图
导航点,也是近似
0
)以距离全局质心最近的点作为搜索算法始节点,为每个点重新选择近邻
1
)基于
的随近邻步骤
0
,对个点
(
贪婪放到
2
2
了解如何选择候选邻居集。
3
)执行步骤
0
)和
1
)两遍,第一遍
α=1
,第
α>=1
是,在随机图基上,从心开始遍历两遍重新生成图。
如何体现
Disk4
对于引构的问
 !
在构索引通过
!#"
方式整个据集
!
,然后将每个节点分到最近的

中,每个构建
/"
图,这样就
以在内存中进行索引的构建,最后通过简单的边并集将所有不的图合并为一个图。
1.1
如何选择近邻
的一邻图算法如上绿色居,假设选择两个邻居
构建邻图选择绿个点
居集在各
 !
论文中提,一个确的近邻不并不一是最合

因此可以通过连接距离的点来构建近邻图:先将距绿最近的点
(加绿
点的近邻集),然后对点
进行
56786
绿
7
则不将
加入绿点的近邻集
其中
表示两点的距离。
0
的其他点进行顺序是离旅店到远
最后判断
1
617961
绿
7
,所以将
1
加入绿点的近邻集。
这种方法比较激进,会删除很多边。
1.2
如何整,再增加一些长
据集在一条线如上
2
进行每个
和离最近两个执行

时,导致均跳高,
:
'
'
6796'7
'
的近线其他
蔽掉
'
了,因为
6
其他
786'
其他
7
6
其他
786
其他
7
/"
对此进行了整,加一个
α
α*d(a
c
,其他
)>d(b,
其他
)
,通过
α
,从而加一些长边。
of 5
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜