[发明专利]一种基于Spark的大规模高维数据近似近邻查询系统和方法在审
申请号: | 202111672312.3 | 申请日: | 2021-12-31 |
公开(公告)号: | CN114329094A | 公开(公告)日: | 2022-04-12 |
发明(设计)人: | 徐姚亨;姚斌;张鹏程;唐飞龙;沈耀;郑文立 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F16/901 | 分类号: | G06F16/901;G06F16/9032 |
代理公司: | 上海市汇业律师事务所 31325 | 代理人: | 王函 |
地址: | 200030 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 spark 大规模 数据 近似 近邻 查询 系统 方法 | ||
1.一种基于Spark的大规模高维数据近似近邻查询系统,其特征在于,所述系统包括:
向量获取模块,索引构建模块和查询模块;
所述向量获取模块,用于获取所述系统待处理的待处理向量,即待处理的数据集,包括从待处理的非结构化数据转换而来的所述待处理向量;一个所述待处理向量在所述系统中可视作一个点;
所述索引构建模块包括:
聚类分区模块,全局索引构建模块和分区索引构建模块;
所述聚类分区模块,用于计算所述数据集的m个分区质心,把一个所述数据集分割成所述m个不同分区,使得每个所述分区中所述待处理向量都是同构的,即每个所述分区里的所述点相互靠近;m≥2,m∈N;
所述全局索引构建模块,用于在所述系统的主节点构造全局索引;所述全局索引构建模块包括:数据采样单元,数据打标单元和建立索引单元;所述数据采样单元,用于根据所述数据集和所述主节点的资源情况,从各个所述分区均匀采样n个所述待处理向量,即所述点,成为采样数据,通过所述采样数据表示所述分区的所述待处理向量的分布;所述数据打标单元,用于给所述采样数据打上所在的所述分区的分区标签;所述建立索引单元,用于使用所述采样数据在所述主节点构建全局索引,并将所述全局索引保存在内存中;所述全局索引的索引结构采用HNSW;
所述分区索引建构模块,用于为每个所述分区创建分区索引,并将所述分区索引保存在所述内存中;所述分区索引的索引结构采用所述HNSW;
所述查询模块,包括:
查询发起模块,全局查询模块,分区查询模块和排序模块;
所述查询发起模块,用于发起查询Q;所述查询Q指定了查询向量,待查询分区的数量s,以及结果向量的数量k;所述查询向量由用户进行设置;1≤s≤m,s∈N;k≥1,k∈N;
所述全局索引查询模块,用于在所述全局索引中查找距离所述查询向量代表的所述点最近的p个所述采样数据,得到初步结果向量,并根据所述分区标签统计各所述分区包含的所述初步结果向量的数量,从多到少,依次排序,选取处于前列的所述s个包含所述初步结果向量的数量非零的所述分区,成为所述待查询分区;p≥s,p∈N;
当所述全局索引查询模块选取到的所述分区的个数不足所述s个时,
可按实际的所述待查询分区的数量给所述s赋值,并对所述待查询分区进行查询;
也可增加所述初步结果向量的数量,即增加p的值,直到选取出所述s个所述待查询分区;
所述分区查询模块,用于查询所述s个所述待查询分区中的所述点,得到各个所述待查询分区中所述k个距离所述查询向量最近的所述点,即所述分区结果向量;
所述排序模块,用于在所述分区查询模块查询过所述s个所述待查询分区后,对得到的s×k个所述分区结果向量进行排序,选取距离所述查询向量表示的所述点最近的k个所述点,得到所述结果向量。
2.根据权利要求1所述的系统,其特征在于,所述采样数据的数量,即所述n的值,可以由所述用户进行设置。
3.根据权利要求1所述的系统,其特征在于,所述初步结果向量的数量,即所述p的值,可以由用户进行设置;所述初步结果向量的数量的增加幅度,也可以由所述用户进行设置。
4.根据权利要求1-3任一项所述的系统,其特征在于,所述待查询分区的数量,即所述s的值,可以由所述用户进行设置。
5.根据权利要求1-3任一项所述的系统,其特征在于,所述分区的数量,即所述k的值,可以由所述用户进行设置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111672312.3/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置