milvus索引算法优化_Milvus 揭秘| 向量索引算法HNSW和NSG的比较

本文探讨了在机器学习和深度学习背景下,如何利用图数据结构进行向量搜索。特别是,文章重点分析了两种基于近邻图的向量搜索算法——HNSW和NSG,阐述了它们的工作原理并比较了适用场景,为海量向量数据的高效检索提供了参考。
摘要由CSDN通过智能技术生成
f7c0d7dd434ac752a71bdac1cba7a831.png

随着机器学习、深度神经网络的不断发展,数据的向量化无处不在。而针对海量向量数据的搜索,无论是工业界还是学术界都做了大量的研究。本文主要讲解两个基于近邻图的向量搜索算法,并比较其适用场景。

    这里不得不先提一个学术上的对应名词 Approximate Nearest Neighbor Search (ANNS),近似的最近邻搜索。之所以近似是由于精确的近邻搜索太过困难,研究随之转向了在精确性和搜索时间做取舍。由于精确的向量搜索在海量数据的场景下搜索时间过长,所以目前的常见做法,是在向量上建立近似搜索索引。         这里先介绍一下现在常用的索引类型以及它们的局限性。首先是基于树的算法,这里举例较为经典的 KD-tree。这种索引类型在向量维度 稍大一些的情况下 (d>10),索引性能会急剧下降甚至不如暴力搜索。再说说基于 LSH (locality-sensitive hashing) 的索引,如果想要取得高召回率,LSH算法必须要建立大量的Hash表,这会使得索引大小膨胀数倍。不仅如此,树和LSH都属于空间切分类算法,此类算法有一个无法避免的缺陷,即为了提高搜索精度,只能增大搜索空间。图1-A描述了基于树的切分搜索,每个虚线分割出的区域是一个子树,如果搜索向量在子树的边缘时,算法需要搜索多个子树来获取结果。图1-B描述了基于 Hash 的切分搜索,虚线描述了每个独立的hash表,搜索面临的问题与基于树的搜索算法类似。所以空间切分类算法在最坏的情况下需要扫描几乎整个数据集,这在很多场景下显然是无法接受的。 2c046f0e3136d3dc59007ea993a7dfa9.png

由于图数据结构有天生近邻关系的特性,在图上做最近邻搜索看来是一种不错的思路,所以近年来基于图的向量搜索算法也是一个研

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值