一种基于辐射伸展图的高维数据的近似最近邻检索方法及检索系统与流程

文档序号:13804785阅读:153来源:国知局
一种基于辐射伸展图的高维数据的近似最近邻检索方法及检索系统与流程
本发明涉及数据检索
技术领域
,具体涉及一种基于辐射伸展图的高维数据的近似最近邻检索方法及检索系统。
背景技术
:近年来,最近邻检索技术应用越来越广泛,尤其在计算机视觉、机器学习算法、文本和图像检索等需要处理大规模高维数据的领域中起到了十分重要作用。最近邻检索讨论的对象是大规模高维数据点集合,要求能快速地在这些数据点中找到距离某个待检索点最近的若干数据点。对于大规模高维数据,在原始空间进行多次距离计算的计算量是巨大的,为了提高最近邻检索的效率,学者们提出了一些近似最近邻检索方法。常见的近似最近邻检索方法主要包括:基于树结构的方法、基于哈希的方法和基于图的方法。由于实际应用中数据的复杂性,在处理许多高维数据时,现有方法难以获得良好的效果。基于树结构的方法对高维数据进行最近邻检索时,面临着维度灾难带来的一些问题。而基于哈希的方法,若哈希编码较短,存在着精度低的问题;若哈希编码较长,则无法使用哈希表来剪枝检索。最近基于图的方法收到了广泛的关注。一些方法已经在实验上证明超过传统的基于哈希和树结构的方法。然而基于图的方法的效率受到图内在结构的影响,传统的最近邻图只有在图内每点的出边数量很高的情况下才能得到较高的效率。公开号为cn105550358a的中国专利文献公开了一种高维数据的近似最近邻检索方法及检索系统,包括以下步骤:步骤1,采用初始化检索方法对高维数据库点集,建立初始化索引,并建立所述高维数据库点集的最近邻表;步骤2,根据初始化索引,获得待检索数据点在所述高维数据库点集中的若干个最邻近点,若干个最邻近点构成初始候选点集;步骤3,构造临时点集,针对初始候选点集中的每个数据点,在最近邻表中查询该数据点的若干个近邻点,并将查到的各近邻点以及初始候选点添加至临时点集中;步骤4,计算临时点集中所有数据点与待检索数据点的距离,将距离最小的若干个数据点作为新的候选点集;步骤5,将新的候选点集作为初始候选点集;步骤6,重复步骤3~步骤5,直至候选点集中的数据点不再更新或者迭代次数达到预定值,输出候选点集中距离待检索数据点最近的若干数据点作为近似最近邻数据点进行。上述方法与其他常规方法相比,提高了高维数据最近邻点的检索检索精度和效率。然而该检索方法检索时占用的内存空间比较大,在一定时间内的检索精度也有很大的提升空间。技术实现要素:本发明提供了一种基于辐射伸展图的高维数据的近似最近邻检索方法,不仅能够大大提高一定时间内对高维数据进行最近邻检索时的精度,而且能大幅度减小检索时内存空间的占用。一种基于辐射伸展图的高维数据的近似最近邻检索方法,包括:步骤1,对高维数据库点集建立辐射伸展图;步骤2,对待检索点,从辐射伸展图的中心点出发,在辐射伸展图上进行贪婪近似最近邻检索;步骤3,将得到的候选点集中的给定数量的点作为结果,即待检索点的最近邻点集。所述的对高维数据库点集建立辐射伸展图的方法,包括:步骤1-1,建立高维数据库点集的最近邻图;步骤1-2,计算数据库所有点的均值,并在最近邻图上,从随机点出发进行贪婪近似最近邻检索,找到距离均值点最近的点作为中心点;步骤1-3,取出数据库中一点a作为待考察点,在最近邻图上,从中心点出发进行贪婪近似最近邻检索,并记录该检索过程在最近邻图上形成的路径上的所有点,构成候选点集;步骤1-4,对候选点集中的点根据到点a的距离从小到大排序,从最小点开始,从小到大筛选非互斥点集,其中,所述非互斥点集为,对该点集中任意两点b和c,边ab和ac的夹角不小于60度;步骤1-5,当非互斥点集大小达到预定值或者候选点集中的点被遍历,将该非互斥点集作为辐射伸展图中点a的邻居点集;步骤1-6,重复步骤1-3~步骤1-5,直至数据库所有点被遍历,得到辐射伸展图。其中,上述贪婪近似最近邻检索算法,包括:步骤2-1,建立空的候选点集,将数据库点集中的指定一点作为初始点,加入候选点集,并标记为未访问点;步骤2-2,将候选点集中距离待检索点最近的未访问点作为考察点,并标记为已访问点;步骤2-3,通过查询给定图结构,得到考察点的邻居,将所有邻居标记为未访问点,加入候选点集,并将候选点集按照到待检索点的距离从小到大排序;步骤2-4,若候选点集的大小超过预定值,删除候选点集中距离待检索点最远的若干点,使候选点集大小不超过预定值;步骤2-5,重复步骤2-2~步骤2-4,直到候选点集中没有未访问点,将候选点集中距离待检索点最近的指定个数的点作为结果返回。所述的图结构为最近邻图或辐射伸展图。本发明中建立辐射伸展图方法的输入为高维数据库点集,输出为辐射伸展图及其中心点。贪婪近似最近邻方法的输入为待检索点、数据库点集中某一点作初始点、高维数据库点集和图结构。基于辐射伸展图的近似最近邻检索方法的输入为待检索点、数据库点集中心点、高维数据库点集和辐射伸展图。本发明还提供了一种基于辐射伸展图的高维数据的近似最近邻检索系统,包括:核心模块,包括:贪婪近似最近邻检索模块,用于根据给定图结构和初始点,获得待检索数据点在所述高维数据库点集中的若干个最邻近点;初始化检索子模块,是贪婪近似最近邻检索模块的子模块,用于构造空的候选点集,将给定初始化点加入候选点集,并标记为未访问点;获取考察点子模块,是贪婪近似最近邻检索模块的子模块,用于获取当前候选点集中距离待检索点最近的未访问点,作为考察点,并标记为已访问点;检索候选点集更新子模块,是贪婪近似最近邻检索模块的子模块,用于查询给定图结构,获取考察点的邻居加入候选点集,并按照到待检索点的距离升序排序;检索候选点集筛选子模块,是贪婪近似最近邻检索模块的子模块,用于筛选候选点集中的候选点。当候选点集大小大于给定值时,将候选点集中距离待测点最远的若干点删除,保证候选点集大小刚好不超过给定值;检索迭代控制子模块,是贪婪近似最近邻检索模块的子模块,用于依次调用获取考察点子模块、检索候选点集更新子模块和检索候选点集筛选子模块,直至候选点集中没有未访问点,停止迭代;检索结果输出子模块,是贪婪近似最近邻检索模块的子模块,用于将候选点集中距离待检索点最近的值定数目的点作为结果返回;离线辐射伸展图部分,包括最近邻图模块,用于对高维数据库点集,建立最近邻图;初始化构图模块,用于计算数据库点集的均值,以均值点为待检索点,利用贪婪近似最近邻检索,在所述最近邻图上,以随机点为初始化点进行检索,将距离均值点最近的数据点作为中心点;构图候选点集获取模块,用于收集对数据库点集中的某考察点进行贪婪近似最近邻检索时所形成路径上的点,构成构图候选点集;非互斥点集筛选模块,用于将构图候选点集中的点筛选出非互斥点集。将构图候选点集中的点按到考察点的距离进行排序,按距离近到远顺序将候选点集中的点加入到非互斥点集中,考察其是否满足互斥性,不满足则删除新加入点。互斥性定义为,对考察点a,互斥点集中任意两点b、c,边ab和ac夹角不小于60度。互斥点集为空时,直接加入候选点集中的距离考察点最小点;构图迭代判断模块,用于判断构图迭代过程是否达到终止条件。当数据库点集中所有点都得到对应的非互斥点集时停止迭代。辐射伸展图结果输出模块,用于将所有点的非互斥点集构成辐射伸展图,并保证辐射伸展图中所有点的邻居数目不超过给定值。若某点的邻居超过给定值,则删除较远的邻居。在线检索部分,包括初始化模块,为贪婪近似最近邻检索模块提供输入,包括待检索点、辐射伸展图和数据库点集中心点;结果输出模块,将贪婪近似最近邻检索得到的候选点集中的,距离待检索点最近的k个点作为结果返回,k为预定值。本发明提供的基于辐射伸展图的高维数据的近似最近邻检索方法通过将数据库中心点加入初始化候选点集,通过辐射伸展图扩展该初始化候选点集(将初始化候选点集中点的若干近邻点加入到候选点集中);计算候选点集中各候选点与所述待检索点的实际距离,根据与待检索点的距离从所述候选近邻点中得出更好的近邻候选点集,反复迭代得到所述待检索点的最近邻点集。利用本发明可以使候选最邻近点集具有指数级收敛速度,不仅可以大大提高一定时间内的检索精度,而且可以大幅度减小检索时的内存占用空间。附图说明图1为本发明基于辐射伸展图的高维数据的近似最近邻检索方法的流程示意图;图2为本发明贪婪近似最近邻检索方法流程示意图;图3为k取值10时,通过本发明方法与其他传统方法得到的recall值和检索时间比较图;图4为k取值100时,通过本发明方法与其他传统方法得到的与通过其他传统方式得到的recall值和检索时间比较图。图5为本发明一种基于辐射伸展图的高维数据的近似最近邻检索系统的模块组成结构示意图。具体实施方式为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。如图1所示,高维数据的近似最近邻检索方法包括离线阶段和在线检索阶段。离线阶段的目的在于建立辐射伸展图,包括步骤s101至步骤s107如下:s101,建立高维数据库点集的最近邻图。最近邻图为有向图,对于图中任意一点,其出边数量为一固定值k,且这k条边所连接的邻居是其最近的k个。本发明中所需的最近邻图,可以是精确的k近邻图,也可以是近似k近邻图,即其中任意一点的k近邻不是完全是其最近的k个邻居。s102,计算数据库所有点的均值。在所述最近邻图上,从随机点出发进行贪婪近似最近邻检索,找到距离均值点最近的点作为中心点c。设置初始考察点下标i=0,即从第一个数据库点p0开始进行迭代。s103,取出数据库中一点pi作为考察点,在所述最近邻图上,从中心点c出发进行贪婪近似最近邻检索。同时建立空的建图候选点集,记录在最近邻图上进行贪婪检索路径上的所有点,加入建图候选点集,对建图候选点集大小不进行限制。在检索路径上会历经很多点,在筛选非互斥点集时会淘汰大量的点,因此需要记录路径所有点。另外辐射伸展图不仅要求任意一点的出边非互斥,还要求这些出边尽可能短,使得辐射伸展图中的点的出边可以从最近处向更远处伸展开。由于检索路径上会包含考察点的最近邻,从近处向远处筛选可以保证较好的伸展性。s104,对建图候选点集中的点根据到点pi的距离从小到大排序。从距离最小点开始,从候选点集删除,加入非互斥点集,并验证当前非互斥点集是否满足非互斥性。若不满足,则删除新加入点。其中,所述非互斥性为,对该点集中任意两点b和c,边ab和ac的夹角不小于60度。这样的性质可以使得图中任意一点的出边大幅度张开,实验证明这样更有利于高效检索。s105,非互斥点集筛选控制模块。判断建图候选点集是否为空集,是则停止筛选。或非互斥点集是否达到指定大小m,是则停止迭代。s106,建图迭代控制模块。判断当前考察点pi是否为数据库最后一个点。是则停止迭代;否则i增加1,回到步骤s203继续迭代。由于不同的考察点之间的行为相互独立,十分易于并行化。s107,输出模块。将得到的所有数据库点的非互斥点集作为结果输出。在线检索阶段,基于所述辐射伸展图,通过贪婪近似最近邻检索获得最近邻点集,包括步骤s111至步骤s113如下:s111,初始化检索模块。将待检索点q、辐射伸展图g和数据库点集中心点c作为输入,提供给贪婪近似最近邻检索模块。s112,根据给定输出参数,在辐射伸展图上进行贪婪近似最近邻检索过程,得到点q的最近邻候选点集。s113,输出模块,将候选点集中距离点q最近的k个点作为结果返回,k为预定值。如图2所示,高维数据的近似最近邻检索方法包括一个关键的贪婪近似最近邻检索模块,包括步骤s201至步骤s207如下:s201,建立空的候选点集,其最大容量为预定值m。将数据库点集中的指定一点作为初始点,加入候选点集,并标记为未访问点。候选点集中的点对象包括该点的索引值(或下标值),到待检索点的距离以及访问标记三个属性。目的是方便对候选点进行排序和节约计算量。s202,将候选点集中距离待检索点最近的未访问点作为考察点,并标记为已访问点。考察点的邻居很有可能距离待检索点更近。将其标记为已访问点的目的在于以后的检查中不会重复检查该点,造成多余计算量。s203,通过查询给定图结构,得到考察点的邻居。将所有邻居标记为未访问点,计算与待检索点之间的距离后,被加入候选点集。并且要在插入的时候保证候选点集是按照距离升序进行排序的。其目的是,由于最近点的邻居很有可能更近,在下一次迭代时,我们希望一直去检查未访问过的最近邻居。从直观上,这样靠近真实结果的效率更高。此外,所述图结构可以是任意的图结构。此贪婪近似最近邻检索算法兼容所有图结构,例如最近邻图,本发明中的辐射伸展图等等。s204~s205,若候选点集的大小超过预定值m,删除候选点集中距离待检索点最远的若干点,使候选点集大小不超过预定值m。其目的在于,使得算法能够在一定次数的迭代后停止检索,不陷入无限循环直到遍历所有点。s206~s207,迭代终止判断模块。检测候选点集中的点是否都是已访问点。如果不是,说明还有发现新的最近邻点的可能;否则,说明在当前参数设定下无法找到新的最近邻点,停止检索。将候选点集中的前k个点,即距离待检索点最近的k个点作为结果返回。k为预定值。为了更直观的描述得到的待检索点的最近邻点的精确度,对所述精确度进行量化,具体地,采用平均召回率量描述所述最近邻点的准确度,平均召回率的计算公式如下:其中,q为待检索点的数量,k为每个检索点的最近邻点的数量,recall为所述最近邻点的平均精度,表示第i个待检索点的第j个最近邻点是否是准确的最近邻点,若是,pi,j为1,若否,pi,j为0。由上述高维数据的近似最近邻检索方法可知,利用数据库中心点得到初始化候选点集,通过辐射伸展图扩展该候选点集(将初始化候选点集中数据点的若干近邻点加入到候选点集中),计算候选点集中各候选点与检索点的实际距离,根据与待检索点的距离从候选近邻点中得出更好的近邻候选点集,反复迭代得到检索点的最近邻点集。本发明充分利用了基于图方法的快速收敛特性和辐射伸展图在近似最近邻检索中的优势,大大提高了高维数据最近邻点的检索效率。以下为本发明高维数据的近似最近邻检索方法的一个较佳的实现方式,具体过程如下:以gist图像特征数据为例对本实现方式作进一步的详细说明,如表1的gist数据集信息表。表1数据集基础集数据点数目测试集数据点数目维度gist100000010000960离线阶段,使用gist数据集中的测试集(不同于基础集的数据点)的10000个数据点作为检索点,基础集的1000000个数据点为数据库点集,建立辐射伸展图。步骤a、在gist数据集上建立近似最近邻图n,其中该最近邻图的k=300,即图中每个点都有300个邻居(出边)。步骤b、计算gist数据集1000000个数据点的均值。将均值点作为待检索点、数据集中随机点a作为起始点和图n作为输入,进行贪婪近似最近邻检索。其中,贪婪近似最近邻检索的候选点集大小设置为150,将返回的结果中的距离均值点最近的点,作为数据集中心点c。设置遍历点下标i=1。步骤c、取出数据库中一点pi作为考察点,在图n上,从中心点c出发进行贪婪近似最近邻检索。同时建立空的建图候选点集p,p为有序数组,按照距离升序进行排序。记录在最近邻图n上进行贪婪检索路径上的所有点,加入点集p,对p大小不进行限制。其中,贪婪近似最近邻检索的候选点集大小设置为150。步骤d、由于p为有序数组,且p中的点是根据到点pi的距离从小到大排序的。建立非互斥点集fi,从p中第一个点开始,将其从p中删除,加入到点集fi,并验证fi是否满足非互斥性。若不满足,则删除新加入点。否则继续加入p中第一个点并从p移除,进行迭代。其中,所述非互斥性为,对该点集中任意两点b和c,边ab和ac的夹角不小于60度。当p变为空集或者m中的点个数达到预定值70时停止迭代。步骤e、检查i是否大于等于1000000,是则停止迭代,否则i=i+1,回到步骤c。步骤f、将所有点的非互斥点集fi构成辐射伸展图g作为结果输出。检索阶段,使用以下步骤获得与待检索点距离最近的若干候选近邻点:步骤1、设输入为待检索点q,上述辐射伸展图g,数据集中心点c,设置p为贪婪最近邻检索候选点集t最大容量。其中,p为可调参数,p越大精度越高,检索时间越长。步骤2、根据以上参数进行贪婪最近邻检索,获得包含p个候选点的集合t。步骤3、将t中距离点q最近的k个点作为结果返回。采用平均召回率量计算k个最近邻点的准确度为:其中,q为检索点的数量,取值为10000,k为每个检索点的最近邻点的数量,recall为最近邻点的平均精度,表示第i个检索点的第j个最近邻点是否是准确的最近邻点,若是,pi,j为1,若否,pi,j为0。根据上述公式,计算得到最近邻点检索结果的recall值和消耗时间。在同样的数据集下测试本发明方法(nsg算法)、kgraph算法、hnsw算法、fanng算法和efanna算法的检索结果的recall值和检索时间,求出单位时间处理的查询次数。即统计在最近邻点的数量k=10和k=100的情况下,通过本实施例得到的检索结果的recall值和消耗时间、以及本发明方法(nsg算法)、kgraph算法、hnsw算法、fanng算法和efanna算法得到的检索结果的recall值和单位时间处理查询次数。其中,所比较方法都是已知最好的一些基于不同图结构的近似最近邻检索方法。图3是k取值10时,本实施例与其他基于图结构算法检索时的recall值和单位时间处理查询次数的比较,图4为k取值100时,本实施例与其他基于图结构算法检索时的recall值和单位时间处理查询次数比较。由图3和图4可知,单位时间处理查询次数相同的情况下,本实施例得到的检索结果的recall值明显高于kgraph算法、hnsw算法、fanng算法和efanna算法的检索结果的recall值,因此,本发明提供的高维数据的近似最近邻检索方法的检索效率较高。如图5所示,一种基于辐射伸展图的高维数据的近似最近邻检索系统,包括:核心模块:贪婪近似最近邻检索模块,用于根据给定图结构和初始点,获得待检索数据点在所述高维数据库点集中的若干个最邻近点;初始化检索子模块,是贪婪近似最近邻检索模块的子模块,用于构造空的候选点集,将给定初始化点加入候选点集,并标记为未访问点;获取考察点子模块,是贪婪近似最近邻检索模块的子模块,用于获取当前候选点集中距离待检索点最近的未访问点,作为考察点,并标记为已访问点;检索候选点集更新子模块,是贪婪近似最近邻检索模块的子模块,用于查询给定图结构,获取考察点的邻居加入候选点集,并按照到待检索点的距离升序排序;检索候选点集筛选子模块,是贪婪近似最近邻检索模块的子模块,用于筛选候选点集中的候选点。当候选点集大小大于给定值时,将候选点集中距离待测点最远的若干点删除,保证候选点集大小刚好不超过给定值;检索迭代控制子模块,是贪婪近似最近邻检索模块的子模块,用于依次调用获取考察点子模块、检索候选点集更新子模块和检索候选点集筛选子模块,直至候选点集中没有未访问点,停止迭代;检索结果输出子模块,是贪婪近似最近邻检索模块的子模块,用于将候选点集中距离待检索点最近的值定数目的点作为结果返回;离线辐射伸展图部分:最近邻图模块,用于对高维数据库点集,建立最近邻图;初始化构图模块,用于计算数据库点集的均值,以均值点为待检索点,利用贪婪近似最近邻检索,在所述最近邻图上,以随机点为初始化点进行检索,将距离均值点最近的数据点作为中心点;构图候选点集获取模块,用于收集对数据库点集中的某考察点进行贪婪近似最近邻检索时所形成路径上的点,构成构图候选点集;非互斥点集筛选模块,用于将构图候选点集中的点筛选出非互斥点集。将构图候选点集中的点按到考察点的距离进行排序,按距离近到远顺序将候选点集中的点加入到非互斥点集中,考察其是否满足互斥性,不满足则删除新加入点。互斥性定义为,对考察点a,互斥点集中任意两点b、c,边ab和ac夹角不小于60度。互斥点集为空时,直接加入候选点集中的距离考察点最小点;构图迭代判断模块,用于判断构图迭代过程是否达到终止条件。当数据库点集中所有点都得到对应的非互斥点集时停止迭代。辐射伸展图结果输出模块,用于将所有点的非互斥点集构成辐射伸展图,并保证辐射伸展图中所有点的邻居数目不超过给定值。若某点的邻居超过给定值,则删除较远的邻居。在线检索部分:初始化模块,为贪婪近似最近邻检索模块提供输入,包括待检索点、辐射伸展图和数据库点集中心点;结果输出模块,将贪婪近似最近邻检索得到的候选点集中的,距离待检索点最近的k个点作为结果返回,k为预定值。以上实施例的各种技术特征可以任意组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上实施例仅表达了本发明的一种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,都属于本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1