买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:上海交通大学
摘要:本发明提供的一种基于Spark的大规模高维数据近似近邻查询系统和方法,主要在内存中执行近似近邻查询。首先根据向量的相似性进行聚类分区,每一个聚类分区对应Spark弹性分布式数据集的一个分区。对每一个分区的数据进行比例采样,并且打上分区的标签。使用该采样数据在主节点建立全局索引,在相应的分区上建立分区索引。查询时,通过该全局索引找到相应的需要查询的若干个该分区,再对各个分区的结果汇总排序,得到最终结果。本发明的技术方案基于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个所述点,得到所述结果向量。
全文数据:
权利要求:
百度查询: 上海交通大学 一种基于Spark的大规模高维数据近似近邻查询系统和方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。