一种基于街区距离的高维向量快速检索算法的制作方法

文档序号:6434308阅读:232来源:国知局
专利名称:一种基于街区距离的高维向量快速检索算法的制作方法
技术领域
本发明属于多媒体信息检索、智能信息处理、数据挖掘等数据处理领域,具体涉及的是一种基于街区距离的高维向量快速检索算法。
背景技术
随着计算机和信息技术的发展,产生了海量的多媒体数据,如何在海量的多媒体数据库中快速找到所需的信息是当前多媒体数据库领域研究的一个重点问题。传统的方法是由人工对多媒体数据进行标注,然后通过文本检索来实现多媒体信息检索。然而人工标注存在工作量大和主观性强的缺陷,对于爆炸式增长的多媒体数据来说,完全人工标注是不可实现的,因此需要研究基于内容的多媒体信息检索技术。实现基于内容的多媒体信息检索的技术路线是通过特征变换,将多媒体数据映射到高维空间中的点——特征向量,用该特征向量来描述多媒体对象,得到特征库;然后用同样的特征变换方法来提取查询对象的特征向量,最后通过特征向量间的相似度匹配来实现多媒体信息的相似检索。因此多媒体信息的相似检索转变为在高维特征空间中寻找与给定查询点最近的点集的过程。要在高维空间中寻找与给定查询点最相近的点集,最简单直观的方法就是顺序扫描,即依次将特征库中的每个特征(高维向量)与查询点进行相似度匹配,返回最匹配的那些特征点集,得到检索结果。顺序扫描随着特征库中特征数目和特征维度的增加,计算消耗时间线性增大,当特征库中的特征数目很大时,顺序扫描将不能满足实时性需求。为了加快检索速度,最常用的方法就是借助于高维索引技术。为了实现对海量高维向量的管理,研究者们提出了大量的索引结构,其中最为经典的是以R-tree为代表的R-tree家族系列索引结构。R-tree是20世纪80年代由Guttman 提出的,用于管理多维矩形块数据而设计的一种索引结构,它是一种利用树结构管理数据的高度平衡树,每个节点用该节点中所有数据的最小外接矩形(MBR =Minimal Bounding Rectangle)来表示,实际数据仅出现在叶子节点中。该索引结构通过扩展也可用于高维空间中点数据的管理。在查询过程中,从根节点层到叶子节点层进行向下搜索,通过计算查询向量和各节点MBR之间的最小距离来判断查询范围是否与某节点相交来实现剪枝过滤,仅搜索可能包含结果的子树,从而加快检索速度。该索引结构允许节点之间的空间重叠,影响了其查询效率。为了提高R-tree的性能,研究者们相续提出了 R+-tree、R*-tree、SS-tree、 SR-tree、X-tree、A-tree等索引结构。但这些树型索引结构随着特征维度的增加,查询效率急剧下降,甚至不如顺序扫描,这就是所谓的“维数灾难”。除了树型结构之外,还存在高维到一维转换的索引结构,例如金字塔技术、 NB-tree、!Distance, iMinMax等等。高维到一维转换的索引结构通过某种规则,将高维向量映射为一维数据(称为key值),然后采用一维的B+-tree来管理这些key值,key值在 B+-tree的叶子节点层有序排列。进行查询时,首先通过相同的高维到一维转换规则计算查询向量的查询key值,最后根据查询范围,确定搜索的key值起始位置和结束位置,并依次扫描这些key值对应的高维向量,计算查询向量与这些高维向量间的相似性,返回那些最相似的高维向量集,得到检索结果。由查询过程可知,高维到一维转换的索引结构在任何情况下性能均优于或等效于顺序扫描,且基于前人的大量实验表明,这类索引结构随维数和数据量的增加,性能降低缓慢。街区距离是高维向量相似度匹配算法中最常用的度量方式之一,其运算简单,且具有较高的检索效率,但先前提出的高维到一维转换的索引结构大都是基于欧式距离匹配度量提出的,没有哪一种能直接支持街区距离这一度量方式的。

发明内容
本发明的目的在于提出了一种基于街区距离的高维到一维转换的索引结构 BlockB-tree,通过高维到一维转换后key值的过滤,能够加快高维向量的相似检索速度。 该索引结构既能有效支持基于街区距离的查询度量方式,同时也能支持欧式距离的查询度量方式。本发明的总体思想如下选取高维空间中的某个点作为参考点,将高维向量集 (特征库)中的所有高维向量采用这些向量对所选参考点间的街区距离映射为一维的key 值,然后用B+-tree来管理这些key值,得到BlockB-tree。进行查询时,计算查询向量和参考点间的街区距离,得到查询key值,然后根据查询范围,确定搜索的key值起始位置和结束位置,并扫描这些key值对应的特征向量,计算查询向量与这些特征向量间的相似性,返回那些最相似的向量集,得到检索结果。具体创新点采用高维向量与选定参考点间的街区距离作为高维到一维转换的规则,使得本发明提出的高维到一维转换的索引结构BlockB-tree能够直接支持基于街区距离的度量方式进行检索,且也能支持基于欧式距离的度量方式进行检索。本发明的具体方法步骤为(1)在高维空间中选取一个参考点,将所有的高维向量采用这些高维向量对所选参考点间的街区距离映射为一维的key值;(2)然后逐一将这些高维向量和对应的key值插入到BlockB-tree中;( 进行检索时,首先计算查询向量与所选参考点间的街区距离得到一维的查询key值;(4)根据查询范围和查询key值,得到需要进行搜索的key值的起始位置和结束位置,扫描计算这些key值对应的高维向量与查询向量间的距离,得到检索结果。更进一步,步骤1中所述的参考点的选取,既可选取原点或数据分布的质心为参考点,也可选取高维空间中的任意一个高维向量为参考点。更进一步,步骤2中所述的BlockB-tree采用B+-tree索引结构来管理上层的key 值,同时叶子节点层的每个key值都绑定一个指向对应高维向量的指针,当插入一个高维向量和对应的key值时,根据该key值的大小定位其应插入到的叶子节点,如果该叶子节点未满,则直接将key值插入到该叶子节点中,并产生指向对应高维向量的指针,更新其父节点对应的key值;如果该叶子节点已满,处理的方法包括以下两种1)结合待插入的高维向量和key值,直接对该叶子节点进行分裂,并将分裂后新产生的叶子节点插入到其父节点中,同时更新其父节点对应的key值,如果父节点也已满, 分裂过程继续向上传递,并更新对应的key值;2)如果该叶子的左右兄弟节点存在未满的情况,则结合其左右兄弟节点,进行待插入高维向量和key值的插入,并更新其父节点对应的key值,如果其左右兄弟节点均满, 再采用方法1的处理方式进行处理。更进一步,步骤3中所述的检索方式,既包括范围查询也包括k近邻查询。更进一步,步骤4中所述的查询范围,对于范围查询来说,是由查询半径来确定的,对于k近邻查询来说是由按某一步长递增的查询半径来确定的,直到第k个近邻到查询向量的距离值小于查询半径为止。再进一步,如上所述的查询半径确定查询范围的方法,对于采用街区距离作为查询度量的方式,查询范围为(查询key值-查询半径)到(查询key值+查询半径)。再进一步,如上所述的查询半径确定查询范围的方法,对于采用欧式距离作为查询度量的方式,查询范围是由高维空间中点到超平面的距离公式来确定搜索的key值起始位置和结束位置的,设高维向量的维度为d,选取的参考点为0(Ol,o2, ... , od),查询向量为 q(qi,Q2,... , qd),对应的查询key值为key,,q以r为半径的查询范围对应的key值起始位置为keyi,结束位置为key2:1)首先key,的计算可以表示为fk "0J = keyq,根据查询向量q与参考点0之间
/=1
的位置关系,可将该式表示为A (q-o) = key,,得到系数矩阵A ;2)对于1 ^2所对应的各超平面;£|\-0,| = 6炒2位于与查询向量相对于参考点同一象限的超平面可表示为A(X-O) = key23)高维空间中点α到Ax = β所确定的超平面的距离公式d =
I At (AAt) ―1 (Α α - β ) I I,则根据点q到A (χ-O) = key2所确定的超平面的距离r,代入到该距离公式中,可以求出key2,根据查询范围上下界key值的对称性,可以求出Icey1 r = \AT{AAry'[A{q-O)-key2]\\ = \AT{AAryx[keyq -L·y2]\=> Jcey2 = Keyq +r /| 丫⑷7.)-丨 |由对称性得keyi= keyq-r/ | | At (AAt) 11再进一步,步骤4中所述的扫描计算起始位置和结束位置区间所有key值对应的高维向量与查询向量间的距离,其扫描方法可以是从起始位置开始到结束位置的顺序扫描,也可以是通过查询key值定位到叶子节点应该进行插入的位置,从此位置开始,分别向前扫描到起始位置再向后扫描到结束位置或先向后扫描到结束位置再向前扫描到起始位置。


图1 (a)本发明所述方法的流程 1 (b) BlockB-tree 的示例2在BlockB-tree上进行范围查询的框3在BlockB-tree上进行k近邻查询的框图
具体实施方式
下面结合附图对本发明的具体实施方式
做进一步说明本实施例的技术方案如图1 (a)所示首先,从高维向量集中选取一个参考点;然后逐一计算高维向量集中每个高维向量与参考点间的街区距离,得到每个高维向量对应的key值;再将各高维向量及其对应的 key值进行插入,得到BlockB-tree (如图1 (b)所示,上层为B+-tree,叶子节点层的每个key 值都绑定一个指向对应高维向量的指针)。在进行检索时,计算查询向量与参考点间的街区距离,得到查询key值,并定位查询key值在BlockB-tree叶子节点层应该进行插入的位置,通过查询范围和查询key值,得到需要进行搜索的key值起始位置和结束位置,然后扫描计算这些key值对应的高维向量与查询向量间的距离,得到检索结果。本发明范围查询的流程图如图2所示,k近邻查询的流程图如图3所示。由图3可知,k近邻查询是通过范围查询来实现,因此下面我们只对范围查询作进一步的分析。由于本发明所提出的索引结构BlockB-tree既能支持基于街区距离的查询度量方式,又能支持基于欧式距离的查询度量方式,由此,我们根据两种查询度量方式分别做详细说明。已知高维向量的维度d及参考点为0(Ol,o2,…,od),给定查询向量q和查询半径r :1)街区距离的查询度量方式首先计算查询向量的key值keyj如公式1),并定位 key,在叶子节点层所在的位置。然后由查询半径为r,可知对应的搜索key值的起始位置为 keyq-r,结束位置为keyjr。最后由key,所在的位置向前扫描到key^-r止(包含key^-r), 逐一计算每个key值对应的高维向量\ (j的取值范围由key^-r到key,间的key值数目确定)与查询向量q间的街区距离(如公式2),将所有街区距离小于等于r的高维向量插入到检索结果向量集中;再由key^f在的位置向后扫描到keyjr止(包含keyjr),逐一计算每个key值对应的高维向量Vk(k的取值范围由key,到keyjr间的key值数目确定)与查询向量q间的街区距离,将所有街区距离小于等于r的高维向量插入到检索结果向量集中, 得到检索结果。
权利要求
1.一种基于街区距离的高维向量快速检索算法,其特征在于具体步骤如下1)在高维空间中选取一个参考点,将所有的高维向量采用该高维向量对所选参考点间的街区距离映射为一维的key值;2)然后逐一将这些高维向量和对应的key值插入到BlockB-tree中;3)进行检索时,首先计算查询向量与所选参考点间的街区距离得到一维的查询key值;4)根据查询范围和查询key值,得到需要进行搜索的key值的起始位置和结束位置,扫描计算这些key值对应的高维向量与查询向量间的距离,得到检索结果。
2.如权利要求1所述的一种基于街区距离的高维向量快速检索算法,其特征在于步骤1中所述的参考点的选取,包括可选取原点或数据分布的质心为参考点,也包括可选取高维空间中的任意一个高维向量为参考点。
3.如权利要求1所述的一种基于街区距离的高维向量快速检索算法,其特征在于步骤2中所述的BlockB-tree采用B+-tree索引结构来管理上层的key值,同时叶子节点层的每个key值都绑定一个指向对应高维向量的指针,当插入一个高维向量和对应的key值时,根据该key值的大小定位其应插入到BlockB-tree中的某一叶子节点,如果该叶子节点未满,则直接将key值插入到该叶子节点中,并产生指向对应高维向量的指针,更新其父节点对应的key值;如果该叶子节点已满,处理的方式有两种1)结合待插入的高维向量和key值,直接对该叶子节点进行分裂,并将分裂后新产生的叶子节点插入到其父节点中,同时更新其父节点对应的key值,如果父节点也已满,分裂过程继续向上传递,并更新对应的key值;2)如果该叶子节点的左右兄弟节点存在未满的情况,则结合其左右兄弟节点,进行待插入高维向量和key值的插入,并更新其父节点对应的key值,如果其左右兄弟节点均满, 再采用方法1的处理方式进行处理。
4.如权利要求1所述的一种基于街区距离的高维向量快速检索算法,其特征在于步骤3中所述的检索方式,既包括范围查询也包括k近邻查询。
5.如权利要求1所述的一种基于街区距离的高维向量快速检索算法,其特征在于步骤4中所述的查询范围,对于范围查询来说,是由查询半径来确定的,对于k近邻查询来说是由按某一步长递增的查询半径来确定的,直到第k个近邻到查询向量的距离值小于查询半径为止。
6.如权利要求5所述的查询半径确定查询范围的方法,其特征在于对于采用街区距离作为查询度量的方式,查询范围为(查询key值-查询半径)到(查询key值+查询半径)。
7.如权利要求5所述的查询半径确定查询范围的方法,其特征在于对于采用欧式距离作为查询度量的方式,查询范围是由高维空间中点到超平面的距离公式来确定搜索的 key值起始位置和结束位置的,设高维向量的维度为d,选取的参考点为0(Ol,o2,…,od), 查询向量为9( ,q2,…,qd),对应的查询key值为key,,q以r为半径的查询范围对应的 key值起始位置为key”结束位置为key2 1)首先key,的计算可以表示为
8.如权利要求1所述的一种基于街区距离的高维向量快速检索算法,其特征在于步骤4中所述的扫描计算起始位置和结束位置区间所有key值对应的高维向量与查询向量间的距离,其扫描方法可以是从起始位置开始到结束位置的顺序扫描,也可以是通过查询key 值定位到叶子节点应该进行插入的位置,从此位置开始,分别向前扫描到起始位置再向后扫描到结束位置或先向后扫描到结束位置再向前扫描到起始位置。
全文摘要
本发明是一种基于街区距离的高维向量快速检索算法,属于多媒体信息检索、智能信息处理、数据挖掘等数据处理领域。在本发明中,提出了一种基于街区距离的高维到一维转换的索引结构BlockB-tree,它采用高维向量对参考点间的街区距离将该高维向量映射为一维key值,用B+-tree索引结构来管理这些key值,同时叶子节点层的每个key值都绑定一个指向对应高维向量的指针。进行检索时,使用相同的映射方法将查询向量映射为一维的查询key值,然后只需对key值与查询key值相近的那些高维特征进行相似度计算,减少计算量,大大加快检索速度。在高维向量的相似度匹配算法中,街区距离是最常用的度量方式之一,其运算简单,且具有较高的检索效率,但当前大多数索引结构都是基于欧式距离匹配度量提出的。本发明提出的索引结构不但支持基于欧式距离度量方式的检索,而且直接支持基于街区距离度量方式的检索。
文档编号G06F17/30GK102306202SQ20111029151
公开日2012年1月4日 申请日期2011年9月30日 优先权日2011年9月30日
发明者吕慧, 吕锐, 杨丽芳, 黄祥林 申请人:中国传媒大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1