基于区域分级航线图算法的数据检索方法技术

技术编号:27194972 阅读:24 留言:0更新日期:2021-01-31 11:46
本发明专利技术公开了一种基于区域分级航线图算法的数据检索方法,包括步骤:通过迭代聚类算法对整个区间的数据进行区域划分,并主动选择分级航线图算法HNRG中每级的区域大小和整个航线图的分级数来初始化区域分级航线图,并用于构建索引;利用构建的索引来检索查询数据的近似最近邻等;本发明专利技术适用于高维大数据的快速近似检索,实现了快速、精确匹配高维数据,提高了数据检索效率。了数据检索效率。了数据检索效率。

【技术实现步骤摘要】
基于区域分级航线图算法的数据检索方法


[0001]本专利技术涉及数据检索领域,更为具体的,涉及一种基于区域分级航线图算法的数据检索方法。

技术介绍

[0002]随着互联网,多媒体,以及各种网络应用的高速发展,各种各样的数据影响着、服务着我们的生活,数据规模急速增长,在多个领域以及大企业内,数据规模已经积累到TB、PB甚至EB级别。数据在爆炸式增长的同时出现了一些新的特点,其中最突出的特征是数据的高维化。为了使数据能够更好的表达和记录人们生活的方方面面,许多领域的数据维数动辄成百上千。传统的数据检索方法想精确匹配高维数据难上加难,很难满足时间上的需求,最基本的数据检索过程效率低下,使得自然语言处理,机器学习等上层算法难以进行。为了解决此难题,学者们提出了很多的检索结构,各种树形结构如kd-tree,X-tree,M-tree等被提出。树形结构在数据维度低时效果优秀,但随着数据维数的增加,算法效率急剧下降,检索时间复杂度指数级上升,甚至不及线性扫描的速度,这就是许多检索算法无法克服的“维度灾难”(又称“维度诅咒”)问题。
[0003]又因为在工业上,多数应用并不需要完全精确的结果,学者们提出了近似最近邻检索(ANNS)的概念,允许查到结果与最优解存在一定的误差,以此来满足算法在实际应用中对查询效率的要求。目前,性能优秀的近似最近邻检索算法有很多,如annoy、panns、kgraph、faiss等算法和库都得到了广泛的应用。其中,分层通航小世界图(HNSW)算法被认为是近似最近邻检索算法中性能最优的算法,此算法是通航小世界图(NSW)的升级版,通过分层来实现由“粗”到“细”进行搜索,实现了对数级时间复杂度。然而,在实际应用中分层通航小世界图算法有两个明显的缺点:(1)因为分层通航小世界图算法在构图阶段的层数选择依靠随机数来决定,所以此算法在构图阶段具有较大的随机性,导致此算法的性能有一定的波动。
[0004](2)分层通航小世界图算法也是依靠随机函数选择插入到上层的数据,进一步加大了算法的随机性和性能波动。

技术实现思路

[0005]本专利技术的目的在于克服现有技术的不足,提供一种基于区域分级航线图算法的数据检索方法,适用于高维大数据的快速近似检索,实现了快速、精确匹配高维数据,提高了数据检索效率。
[0006]本专利技术的目的是通过以下方案实现的:一种基于区域分级航线图算法的数据检索方法,包括步骤:通过迭代聚类算法对整个区间的数据进行区域划分,并主动选择区域分级航线图算法中每级的区域大小和分级数来初始化区域分级航线图,并用于构建索引;利用构建的索引来检索查询数据的近似最近邻。
[0007]进一步地,构建索引包括步骤:
S1,载入向量数据;S2,计算区域分级航线图算法的分级数和每级的区域大小;S3,计算区域分级航线图算法中每级的区域中的数据分布;S4,将数据集插入到区域分级航线图算法中;S5,保存索引文件。
[0008]进一步地,利用构建的索引检索查询数据的近似最近邻包括步骤:S6,加载区域分级航线图算法的索引文件,获得区域分级航线图算法的索引结构;S7,在区域分级航线图算法中,利用获得的索引结构检索查询数据的近似最近邻。
[0009]进一步地,在步骤S2中,向量数据集D作为最大区域,在数据插入阶段放在第0级,即第0级的区域大小为N,第1级的区域大小为第0级的1/T,第1级的区域大小N/T,第2级的区域大小为N/T2,第3级的区域大小为N/T3,以此类推,直到第j级的区域大小N
j
<T为止,得到区域分级航线图算法的分级数L和每级的区域大小,T为预先设定的一个正整数比例值,用来表示区域大小的比例关系。
[0010]进一步地,步骤S3中,包括步骤:S31,对第0级进行聚类和数据标记;S32,对区域分级航线图算法的L级中除第0级以外的每一级各自进行聚类。
[0011]进一步地,在步骤S31中,包括步骤:S311,将第1级的数据点作为第0级的类中心数据点,第2级的数据点作为第1级的类中心数据点,第3级的数据点作为第2级的类中心数据点,以此类推规律,将下一级的数据点为上一级的类中心点,记第1级的区域大小为N1,记第0级的类中心点的个数为p0,且,N为第0级的区域大小,T为预先设定的一个正整数比例值,用来表示区域大小的比例关系;S312,将第0级的第一个数据点作为第一个类中心点;S313,计算第0级其他数据点与第k个类中心点的距离之和:计算得到的最大的对应的数据点作为第个类中心点,直到;其中,k=1,2,3...;为数据点;Sum表示求和函数;S314,在第0级分别计算每个数据点与个类中心点的距离,找到与距离最近的类中心点d
*
,并将数据点分到d
*
对应的类中;S315,对每一个类,计算类中所有数据点的均值作为目标中心,选取类中距离目标中心最近的一个数据点作为这个类新的类中心点;S316,重复执行步骤S315,直到所有的类中心点不变为止;S317,对第0级的个类中心点,D是向量数据集,进行标
记f=1,标记表示此点能插入到图中的第1级,对第0级的非类中心点进行标记f=0,表示此点只能插入到第0级;步骤S32中,包括步骤:S321,对被标记能插入到第1级的数据点即第0级的类中心点,进行聚类,计算出第1级的类中心点,标记这些数据点f=2;对标记f=2的数据点即第1级的类中心点,进行聚类,计算出第2级的类中心点,标记这些数据点f=3;以此类推,直到计算完能插入到第L-1级的数据点即第L-2级的类中心点,将其标记为f=L-1。
[0012]进一步地,在步骤S4中,包括步骤:S41,插入第一个数据,在向量数据集D插入之前,区域分级航线图算法的分级数有L级,每级的数据为空,第一个数据没有邻居,直接插入到第0级;S42,插入所有的数据。
[0013]进一步地,在步骤S42中,包括步骤:S421,设不为空的最大级为第Y级,令l=Y,随机选择一个数据点作为第l级的起始节点,计算数据点和的距离dis:S422,遍历的所有邻居节点,计算所有邻居节点与的距离,找到最近的一个邻居节点,=,并更新距离:S423,重复步骤S422,直到不再变化,将作为下一级的起始节点,更新l=l-1;S424,重复执行步骤S422~S423,直到l=0,找到第0级的起始节点,令r的初始值为0;S425,在第r级计算数据点和第r级起始节点的距离、以及计算数据点与起始节点的邻居节点的距离,找到最近的m个邻居节点作为候选节点;S426,遍历m个候选节点的邻居节点,计算这些邻居节点与的距离,更新最近的m个候选节点;S427,重复执行步骤S426,直到m个候选节点不再变化为止;S428,将数据点与m个候选节点连接,完成数据点在第r级的插入,更新r=r+1;S429,重复执行步骤S425~S428,直到数据点的标记f<r为止,至此,数据点完成了第0级到第f级的插入;其中,dist表示欧式距离函数。
[0014]进一步地,步骤S7中,包本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区域分级航线图算法的数据检索方法,其特征在于,包括步骤:通过迭代聚类算法对整个区间的数据进行区域划分,并主动选择区域分级航线图算法中每级的区域大小和分级数来初始化区域分级航线图,并用于构建索引;利用构建的索引来检索查询数据的近似最近邻。2.根据权利要求1所述的基于区域分级航线图算法的数据检索方法,其特征在于,构建索引包括步骤:S1,载入向量数据;S2,计算区域分级航线图算法的分级数和每级的区域大小;S3,计算区域分级航线图算法中每级的区域中的数据分布;S4,将数据集插入到区域分级航线图算法中;S5,保存索引文件。3.根据权利要求1或2所述的基于区域分级航线图算法的数据检索方法,其特征在于,利用构建的索引检索查询数据的近似最近邻包括步骤:S6,加载区域分级航线图算法的索引文件,获得区域分级航线图算法的索引结构;S7,在区域分级航线图算法中,利用获得的索引结构检索查询数据的近似最近邻。4.根据权利要求2所述的基于区域分级航线图算法的数据检索方法,其特征在于,在步骤S1中,载入向量数据集D,获得向量数据集D的数据个数N。5.根据权利要求4所述的基于区域分级航线图算法的数据检索方法,其特征在于,在步骤S2中,向量数据集D作为最大区域,在数据插入阶段放在第0级,即第0级的区域大小为N,第1级的区域大小为第0级的1/T,第1级的区域大小N/T,第2级的区域大小为N/T2,第3级的区域大小为N/T3,以此类推,直到第j级的区域大小N
j
<T为止,得到区域分级航线图算法的分级数L和每级的区域大小,T为预先设定的一个正整数比例值,用来表示区域大小的比例关系。6.根据权利要求5所述的基于区域分级航线图算法的数据检索方法,其特征在于,步骤S3中,包括步骤:S31,对第0级进行聚类和数据标记;S32,对区域分级航线图算法的L级中除第0级以外的每一级各自进行聚类。7.根据权利要求6所述的基于区域分级航线图算法的数据检索方法,其特征在于,在步骤S31中,包括步骤:S311,将第1级的数据点作为第0级的类中心数据点,第2级的数据点作为第1级的类中心数据点,第3级的数据点作为第2级的类中心数据点,以此类推规律,将下一级的数据点为上一级的类中心点,记第1级的区域大小为N1,记第0级的类中心点的个数为p0,且,N为第0级的区域大小,T为预先设定的一个正整数比例值,用来表示区域大小的比例关系;S312,将第0级的第一个数据点作为第一个类中心点;S313,计算第0级其他数据点与第k个类中心点的距离之和:
计算得到的最大的对应的数据点作为第个类中心点,直到;其中,k=1,2,3...;为数据点;Sum表示求和函数;S314,在第0级分别计算每个数据点与个类中心点的距离,找到与距离最近的类中心点d
*
,并将数据点分到d
*
对应的类中;S315,对每一个类,计算类中所有数据点的均值作为目标中心,选取类中距离目标中心最近的一个数据点作为这个类新的类中心点;S316,重复执行步骤S315,直到所有的类中心点不变为止;S317...

【专利技术属性】
技术研发人员:温序铭杨瀚
申请(专利权)人:成都索贝数码科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1