一种高维矢量数据快速相似检索方法

文档序号:6330672阅读:709来源:国知局
专利名称:一种高维矢量数据快速相似检索方法
技术领域
本发明属于多媒体信息检索、数据挖掘和聚类分析等数据处理领域,具体涉及一种用于高维矢量数据快速相似检索的方法。
实现k近邻查询的技术路线是提取多媒体数据库中每个多媒体对象的特征矢量(通常是高维的),用该矢量描述或刻画相应对象的内容,从而就得到特征矢量数据库;用同样的特征提取算法抽取待查询对象的特征矢量;任意两个对象之间的相似或相关程度就用它们所对应的特征矢量之间距离来度量;因此,k近邻相似查询就是在特征矢量数据库中搜索k个最近距离的特征矢量,这k个特征矢量对应的多媒体对象就是期望的k近邻相似查询的结果。
在实际应用中,描述对象内容的特征矢量维数从几十到几百甚至几千不等,实现k近邻查询最简单直接的方法是顺序扫描(SScan),即依次读取特征数据库中每个特征矢量,计算每一个特征矢量和查询矢量之间距离,保留k个距离最小者,就得到最终查询结果。当特征矢量的数据量较大时,整个特征数据库就必须存储在磁盘中,因此SScan就需要耗费大量磁盘I/O和CPU计算代价。为了加速查询速度和提高查询效率,最常用方法就是借助索引结构降低磁盘I/O和CPU计算代价。
人们为了实现高维矢量的快速相似性检索,提出了很多高维数据索引结构。R-Tree类索引结构是受关注最多的一类多维索引结构。20世纪80年代Guttman将B+-Tree向多维扩展提出了R-Tree[1],它利用树结构管理数据,每个内部节点为该节点中所有数据的最小外接矩形(MBRMinimal Bounding Rectangle),真实数据仅出现在叶子节点中。文[7]给出了基于R-Tree的k近邻查询算法,它从根结点出发,通过计算查询矢量同各MBR之间的最小距离MINDIST和最小最大距离MINMAXDIST实现对大量路径的取舍,仅查询可能包含结果的子树,从而达到减少磁盘访问代价的目的。但是,R-Tree内部节点之间存在着严重的重叠区域和死区域现象,影响了基于R-Tree的查询效率。为了提高R-Tree的性能,相继提出R+-Tree[5]、R*-Tree[4]、X-Tree[6]、SS-Tree[2]、SR-Tree[3]等,但是这些树形索引结构随着数据维数增加,查询性能迅速下降,当维数超过20后,甚至不如SScan的性能,即面临所谓的“维数灾难”。
除采用树形索引结构之外,Webber等人在文[7]中提出了矢量近似文件(VA-File),它将数据空间的每一维划分为若干量化区间,这样整个数据空间被分割为大量互不重叠的网格,每个网格可用一个占用存储空间非常小的二进制比特串表示,每个高维矢量数据总是落在其中一个网格中,就用这个网格对应的比特串近似表示原数据,这个比特串就称为近似矢量,将这些近似矢量按照原顺序排列就形成VA-File。在VA-File上实现相似查询需经过两个步骤首先扫描VA-File中每一个近似矢量,根据查询矢量同每个近似矢量所代表的网格之间的距离过滤除大量不符合查询条件的数据对象,保留候选者;然后再读取所有候选者对应的原始矢量数据进行精确计算,就得到最终k近邻查询结果。可以看出,VA-File只是采用简单的量化近似方法压缩原始矢量数据来减少磁盘IO代价,并没有采用任何复杂的数据结构去组织管理量化后的近似矢量,对于许多实际应用中成簇分布的数据,查询的第一步往往只能过滤掉比例不大的一部分数据,导致第二步的查询开销依然很大。此后,为了继续提高查询效率,文[8]给出了基于VA-File实现近似k近邻检索的算法,其思想是仅通过第一步查询得到的结果中与查询矢量下界距离最小的k个作为结果集返回,而不读取原始数据进行精确的k近邻查寻,由于第一步计算得到的距离仅是一利近似距离,因此这种查询得到的结果是近似k近邻。
本发明提出的高维矢量数据相似检索方法是在VA-File近似k近邻查询算法的基础上,按照一定规则对VA-File进行排序重组,在进行近似k近邻查询时,不再像VA-File那样对所有近似矢量进行扫描计算,而只是扫描和计算部分近似矢量,从而进一步加速近似k近邻检索。我们称排序重组后的VA-File为Ordered VA-File(即有序化VA-File)。
本发明的步骤如下(1)选用一定的规则对VA-File中的近似矢量进行组织将待插入近似矢量插入到一个特定位置,使得该矢量与这一位置附近的近似矢量的平均距离最小,其目的是使得在高维空间中聚集在一起的数据尽量存放在文件相邻的空间中,其中矢量间的距离计算可采用任意距离度量方法;(2)对排好序的近似矢量数据进行聚类分割,得到若干个类中心矢量,每一类的近似矢量数据在Ordered VA-File中是连续存储,类内近似矢量数据的距离比较近,类问近似矢量数据的距离比较远,并将类中心矢量存储在系统主存中,每一个类中心矢量代表一段连续排列的近似矢量数据,即一个类中心矢量与排序后的近似矢量数据文件中某个起始文件位置和结束文件位置二元组关联;(3)检索时先计算待查询矢量与每个类中心矢量之间的距离,由于类中心矢量存储于主存中,因此距离计算时不需要访问磁盘;(4)根据距离较小的那些类中心矢量得到它们在Ordered VA-File中的起始位置和结束位置,扫描这些起始和结束位置之间连续存放的近似矢量数据,就可以得到近似查询结果。因为不再扫描整个近似矢量数据文件,所以大大减少磁盘访问代价,提高了查询速度。
4)求每个类中近似矢量的均值作为类中心。
本发明中,近似k近邻查询的算法如下Ordered VA-File将每一类的信息(包括类中心矢量、该类在Ordered VA-File中起始和结束位置)始终保存在主存中,进行近似k近邻查询时,不需要对整个文件扫描,而只需读取其中一小部分近似矢量数据进行距离计算,实现步骤如下1)计算查询矢量与各类中心之间的距离,选择距离最小的L类;2)计算查询矢量与上面选择的L类中的近似矢量之间的距离,选择距离最小的k个近似矢量所对应的对象作为近似k近邻查询的结果集。
由于这一算法中仅选择与查询矢量最近的L类进行距离计算,因此效率将远高于传统VA-File的近似k近邻查询算法,而所选择的L类通常就是距离查询矢量最近的,它们最有可能包含查询矢量的k近邻,因此近似结果集可以保证比较高的质量。
本发明中,有关参数的确定准则下1)N的确定N越大,每一类中可能包含的数据数量越小,查询代价也就越小,但保存在主存中的类信息所需要的空间必然越大。因此N的确定原则为根据实际应用中检索系统可使用的主存容量,选择尽可能大的N。在这一原则下会出现两种极端情况(1)内存足够大,N确定为数据库中数据量大小n,此时相当于将整个Ordered VA-File读入内存,查询过程不进行一次磁盘读写操作,查询效率最高;(2)内存极小,N选择为1,即整个Ordered VA-File中的数据为1类,此时查询过程需从磁盘扫描所有近似矢量,查询效率等同于原始的VA-File。由此可以看出,Ordered VA-File的最坏情况下性能等同于传统的VA-File;2)L的确定查询过程中,仅选择与查询矢量最近的L类的近似矢量进行查询,因此L越大,查询结果精度越高,而查询代价越大;L越小,查询结果精度越小,相应的查询代价也就越小,因此L的确定准则可根据用户的查询要求自适应调整如果对精度要求更高,则选择较大的L值;如果更看重效率,则选择较小的L值。极端情况为L选择为N,此时查询效率和结果完全等同于传统的VA-File。
总之,本发明提出了通过对VA-File进行排序重组形成Ordered VA-File,并可根据用户的实际需求进行聚类分割和快速查询,可取得很高的查询效率。在内存极小和查询精度要求极高的最坏情况下,OrderedVA-File的效率等同于传统VA-File。
权利要求
1.一种实现高维矢量数据快速相似检索的方法,其特征在于具体步骤如下(1)按照一定的规则将VA-File中的近似矢量排序重组,该规则就是文件中任意位置处的近似矢量和该位置附近的若干近似矢量的距离之和尽量小,称这种排序后的VA-File为OrderedVA-File;(2)对Ordered VA-File中进行简单的聚类分割,每一类的近似矢量数据在OrderedVA-File中是连续存储的,类内近似矢量数据的距离比较近,类问近似矢量数据的距离较远,取每一类数据的均值为类中心矢量,并将所有类中心矢量存放在主存中;(3)检索时首先计算待查询矢量和每个类中心矢量之间的距离;(4)选择距离较小的那些类中心矢量得到它们在Ordered VA-File中的起始位置和结束位置,扫描这些起始和结束位置之间连续存放的近似矢量数据,得到近似检索结果。
2.根据权利要求1所述的检索方法,其特征在于用任何距离计算公式对高维矢量进行排序。
3.根据权利要求1所述的排序方法,其特征在于将待插入近似矢量数据插入到这样的位置待插入的近似矢量与该位置前后各m个近似矢量的平均距离最小。
4.根据权利要求1所述的检索方法,其特征在于对Ordered VA-File进行聚类分割采用如下算法设包含n个矢量的Ordered VA-File记为 将其分隔为N类的方法如下1)计算每个近似矢量与其前一个位置的近似矢量之间的距离,记为(dist1,dist2,…,distn-1),其中 i>0,D为矢量之间距离度量方法;2)对每个矢量,计算上面得到的距离与其前后各m个距离平均值之间的比例,记为(ratio1,ratio2,…,ration-1),其中ratioi=disti/Σdistjmax(i-m,0)≤j≤min(i+m,n-1),j≠i,]]>其中i>0;3)选择上一步中计算得到的最大的N-1个比例对应的位置,以这N-1个位置为分割点,将整个Ordered VA-File分割为N类;4)求每个类中近似矢量的均值作为类中心。
5.根据权利要求1所述的检索方法,其特征在于近似k近邻查询算法的步骤如下1)计算查询矢量与各类中心之间的距离,选择距离最小的L类;2)计算查询矢量与上面选择的L类中的近似矢量之间的距离,选择距离最小的k个近似矢量所对应的对象作为近似k近邻查询的结果集。
6.根据权利要求1所述的检索方法,其特征在于根据具体应用来自适应调整参数类数量N以及查询时可访问的类数量L。
7.根据权利要求4所述的检索方法,其特征在于类划分数量N的确定原则根据实际应用中可使用的主存容量,选择尽可能大的N。
8.根据权利要求5所述的检索方法,其特征在于k近邻相似检索时访问的类数量L的确定原则如果对查询结果精度要求高,而不看重查询代价,则选择较大的L值;如果更看重查询效率,则选择较小的L值。
全文摘要
本发明为一种高维矢量数据的快速相似性检索算法。在本发明中,提出了一种新的高维数据索引结构Ordered VA-File,它对VA-File中的近似矢量进行排序重组,将在高维空间中聚集在一起的数据尽量存储在文件的相邻位置中,并根据实际应用将Ordered VA-File自适应分割为一定数量的类,每一类的数据在文件中是连续存储的。查询时,仅选择距离查询矢量最近的几类数据进行查询处理,从而大大提高查询的效率,而且可根据实际应用对查询结果精度的不同要求调整需要查询的类数量。本发明方法可大大减少磁盘访问代价,提高查询效率。
文档编号G06F7/24GK1477563SQ0312968
公开日2004年2月25日 申请日期2003年7月3日 优先权日2003年7月3日
发明者董道国, 薛向阳 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1