[发明专利]一种基于分层可导航小世界图的近似最近邻搜索方法在审
申请号: | 201910279860.6 | 申请日: | 2019-04-09 |
公开(公告)号: | CN110008256A | 公开(公告)日: | 2019-07-12 |
发明(设计)人: | 徐小良;李畅;王宇翔;何宏;夏一行 | 申请(专利权)人: | 杭州电子科技大学 |
主分类号: | G06F16/2458 | 分类号: | G06F16/2458;G06F16/22 |
代理公司: | 杭州千克知识产权代理有限公司 33246 | 代理人: | 周希良 |
地址: | 310018 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 结点 最近邻 索引 近似最近邻搜索 分层 小世界 二进制文件 输入目标 索引结构 索引生成 贪婪算法 遍历 构建 近似 集合 搜索 查询 查找 保存 平衡 | ||
本发明公开了一种基于分层可导航小世界图的近似最近邻搜索方法。本发明包括以下步骤:步骤一B‑HNSW索引生成方法,包括构建和遍历结点集合
技术领域
本发明涉及近似最近邻搜索领域,具体涉及一种基于分层可导航小世界图的近似最近邻搜索方法。
背景技术
最近邻搜索是使用最为广泛的一种数据搜索技术,广泛应用于计机器学习、模式识别、文本和多媒体搜索等领域。但是实际应用由于搜索集通常非常大,不能满足对于大规模数据检索的时间性能要求。因此,近似最近邻搜索得到越来越多的研究和关注。
近似最近邻搜索目前有多种方法实现,比如树方法,哈希方法,矢量量化方法,近邻图方法等。其中近邻图方法是近期提出的查询速度和召回率表现最为优秀的一种方法。分层可导航小世界图(HNSW)是Yury A.Malkov提出的一种图索引方法,并且使用类似于跳表结构的思想构建分层索引图,使用贪婪算法的变体进行朴素查找最近邻。HNSW在大多数情况下召回率和搜索速度都高于其他ANN方法,并且支持增量更新索引,在推荐系统的应用上具有优势。但是HNSW采用指数衰变概率分布函数来随机选取整数作为最大层数,容易导致索引结构不平衡和搜索速度不稳定。
发明内容
本发明的目的在于克服上述已有技术的不足,提出一种基于分层可导航小世界图的近似最近邻搜索方法,称为B-HNSW。B-HNSW通过修改插入新结点以及分层的方式,解决HNSW索引结构不平衡的问题,使查询近似最近邻结点的时间更为快速、稳定。
本发明具体内容如下:
步骤1.B-HNSW索引生成
1.1构建结点集合
构建向量集合P,将每个向量作为B-HNSW中的一个结点,向量集合P即可视作结点集合P。
1.2插入初始结点
遍历步骤1.1遍历结点集合P,将结点集合P中的第1个结点插入B-HNSW索引中,作为初始结点。
1.3遍历结点集合P并插入后续结点
设置当前节点p的最大边数量ef,并从B-HNSW索引的第0层开始如下步骤:
(1)在B-HNSW索引的当前层插入当前结点p,随机选择当前层中已经存在的一个结点作为入口结点。通过欧氏距离或余弦距离计算入口结点的邻居结点与p的距离,使用贪婪算法在当前层中查找最近邻的ef个结点,并将p与这ef个最近邻结点连接生成边,被连接的结点称作邻居结点。
(2)检查p的邻居结点,如果这些邻居结点都没有在上层存在,则将p提升到上一层并回到步骤1.3(1);若p所连接的邻居结点中有在上层存在的结点或结点p的邻居结点数目少于ef个,则p插入B-HNSW索引完成。
1.4保存索引
保存步骤1.3中生成的B-HNSW索引为可被加载的二进制文件。
步骤2.B-HNSW近似最近邻搜索
基于步骤1.4保存的B-HNSW索引文件,输入一个目标向量作为目标结点q,在B-HNSW索引中找到最近邻的k个结点。具体搜索过程如下:
a)加载B-HNSW索引并读取,假设B-HNSW索引层数为N。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910279860.6/2.html,转载请声明来源钻瓜专利网。