CN1477563A - 一种高维矢量数据快速相似检索方法 - Google Patents
一种高维矢量数据快速相似检索方法 Download PDFInfo
- Publication number
- CN1477563A CN1477563A CNA031296874A CN03129687A CN1477563A CN 1477563 A CN1477563 A CN 1477563A CN A031296874 A CNA031296874 A CN A031296874A CN 03129687 A CN03129687 A CN 03129687A CN 1477563 A CN1477563 A CN 1477563A
- Authority
- CN
- China
- Prior art keywords
- vector
- class
- file
- approximate
- distance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明为一种高维矢量数据的快速相似性检索算法。在本发明中,提出了一种新的高维数据索引结构Ordered VA-File,它对VA-File中的近似矢量进行排序重组,将在高维空间中聚集在一起的数据尽量存储在文件的相邻位置中,并根据实际应用将Ordered VA-File自适应分割为一定数量的类,每一类的数据在文件中是连续存储的。查询时,仅选择距离查询矢量最近的几类数据进行查询处理,从而大大提高查询的效率,而且可根据实际应用对查询结果精度的不同要求调整需要查询的类数量。本发明方法可大大减少磁盘访问代价,提高查询效率。
Description
技术领域
本发明属于多媒体信息检索、数据挖掘和聚类分析等数据处理领域,具体涉及一种用于高维矢量数据快速相似检索的方法。
背景技术
最近10年来,高维矢量数据的相似性检索在多媒体信息检索领域、数据挖掘和聚类分析等领域占据着越来越重要的地位。对于这些领域的很多实际应用来说,人们往往希望从海量多媒体数据库中迅速找出与某个给定数据对象最相似或最相关的k个对象,即所谓的k近邻查询。
实现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],它利用树结构管理数据,每个内部节点为该节点中所有数据的最小外接矩形(MBR:Minimal 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近邻。
参考文献1.Guttman A.“R-Trees:A dynamic index structure for spatial searching”,Proc.ACMSIGMOD Int.Conf.on Management of Data,Boston,MA,1984:47-57.2.White D.A.,Jain R.“Similarity indexing with the SS-Tree”,Proc.12th Int Conf on DataEngineering,New Orleans,LA,1996.3.N.Katayama and S.Satoh.“The SR-Tree:An index structure for high dimensional nearestneighbor queries”,Int.Proc.Of the ACM SIGMOD Int.Conf.on Management of Data,Tucson,Arizon USA,1997:369-380.4.N.Beckmann and H.P.Kriegel and R.Schneider and B.Seeger.“The R*-Tree:an efficientand robust access method for points and rectangles”,Proc.of the SIGMOD Conf.,AtlanticCity,NJ,June 1990:322-331.5.Sellis T.,Roussopoulos N.and Faloutsos C.“The R+ Tree:A dynamic index formultidimensional objects”,Proc.13th Int.Conf.on Very Large Databases,Brighton,England,1987:507-518.6.Stefan Berchtold,Daniel A.Keim,and Hans-Peter Kriegel.“The X-Tree:An index structurefor high dimensional data”,Proc.of the 22nd VLDB Conference,1996:28-39.7.Roger Weber,Hans-J.Schek,Stephen Blott,“A Quantitative Analysis and PerformanceStudy for Similarity Search Methods in High-Dimensional Spaces,”Proc.of the 24th VLDBConference,New York,USA,1998.8.R.Weber,K.Bohm,“Trading Quality for Time with Nearest Neighbor Search”,In Proc.Ofthe 7th Conf.On Extending Database Technology,Konstanz,Germany,March 2000.
发明内容
本发明的目的在于提出一种改进的VA-File近似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中的起始位置和结束位置,扫描这些起始和结束位置之间连续存放的近似矢量数据,就可以得到近似查询结果。因为不再扫描整个近似矢量数据文件,所以大大减少磁盘访问代价,提高了查询速度。
具体实施方式
本发明中,对VA-File进行排序重组,构建Ordered VA-File可采用如下插入算法:向Ordered VA-File中插入一个新的矢量,首先将该矢量量化压缩得到对应的近似矢量,然后根据目前Ordered VA-File中是否已进行过聚类分割做不同处理:
1)如果当前尚未进行过聚类分割,则从整个Ordered VA-File中查找这样的一个位置:待插入的近似矢量与该位置前后各m个近似矢量的平均距离最小,得到该位置后,将新矢量插入到该位置
2)如果当前已经进行过聚类分割,此时首先计算新矢量与各个类中心之间的距离,在选择距离最小的那一类中查找这样的位置:待插入的近似矢量与该位置前后各
m个近似矢量的平均距离最小;并将矢量插入到这个位置中在本发明中,对构建好的Ordered VA-File进行简单聚类可采用如下聚类分割算法:在Ordered VA-File中,已将高维空间中距离相近的矢量数据尽量存储在较近的位置上,查询前,需将Ordered VA-File分割为一定数量(N)的类,每一类的近似矢量数据在OrderedVA-File中存放顺序是连续的,类中近似矢量数据之间的距离应比较小,而类间的近似矢量数据的距离则比较大。这样在查询时可以仅查找若干各类中的近似矢量数据,就可快速实现相似性检索。设包含n个矢量的Ordered VA-File记为
将其分隔为N类的方法如下:
1)计算每个近似矢量与其前一个位置的近似矢量之间的距离,记为(dist1,dist2,...,distn-1),其中
i>0,D为矢量之间距离度量方法。2)对每个矢量,计算上面得到的距离与其前后各m个距离平均值之间的比例,记为(ratio1,ratio2,...,ration-1),其中
其中i>0。3)选择上一步中计算得到的最大的N-1个比例对应的位置,以这N-1个位置为分割
点,将整个Ordered VA-File分割为N类。
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。
Claims (8)
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),其中 其中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值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 03129687 CN1220159C (zh) | 2003-07-03 | 2003-07-03 | 一种高维矢量数据快速相似检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 03129687 CN1220159C (zh) | 2003-07-03 | 2003-07-03 | 一种高维矢量数据快速相似检索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1477563A true CN1477563A (zh) | 2004-02-25 |
CN1220159C CN1220159C (zh) | 2005-09-21 |
Family
ID=34153648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 03129687 Expired - Fee Related CN1220159C (zh) | 2003-07-03 | 2003-07-03 | 一种高维矢量数据快速相似检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1220159C (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306202A (zh) * | 2011-09-30 | 2012-01-04 | 中国传媒大学 | 一种基于街区距离的高维向量快速检索算法 |
CN102831225A (zh) * | 2012-08-27 | 2012-12-19 | 南京邮电大学 | 云环境下的多维索引结构、其构建方法及相似性查询方法 |
CN103106276A (zh) * | 2013-02-17 | 2013-05-15 | 南京师范大学 | 一种基于小角编码的矢量数据网格索引方法 |
CN103294741A (zh) * | 2012-02-24 | 2013-09-11 | 株式会社日立制作所 | 类似文件检索辅助装置以及类似文件检索辅助方法 |
CN103345496A (zh) * | 2013-06-28 | 2013-10-09 | 新浪网技术(中国)有限公司 | 多媒体信息检索方法和系统 |
CN103377237A (zh) * | 2012-04-27 | 2013-10-30 | 常州市图佳网络科技有限公司 | 高维数据的近邻搜索方法以及快速近似图像搜索方法 |
CN103412879A (zh) * | 2013-07-17 | 2013-11-27 | 中国人民解放军国防科学技术大学 | 大规模信息网络中数据语义信息的处理方法 |
CN103412879B (zh) * | 2013-07-17 | 2016-11-30 | 中国人民解放军国防科学技术大学 | 大规模信息网络中数据语义信息的处理方法 |
CN110309139A (zh) * | 2018-03-05 | 2019-10-08 | 理光软件研究所(北京)有限公司 | 高维近邻对搜索方法和系统 |
US11449484B2 (en) | 2018-06-25 | 2022-09-20 | Ebay Inc. | Data indexing and searching using permutation indexes |
-
2003
- 2003-07-03 CN CN 03129687 patent/CN1220159C/zh not_active Expired - Fee Related
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306202A (zh) * | 2011-09-30 | 2012-01-04 | 中国传媒大学 | 一种基于街区距离的高维向量快速检索算法 |
CN102306202B (zh) * | 2011-09-30 | 2013-09-04 | 中国传媒大学 | 一种基于街区距离的高维向量快速检索算法 |
CN103294741B (zh) * | 2012-02-24 | 2016-12-21 | 株式会社日立制作所 | 类似文件检索辅助装置以及类似文件检索辅助方法 |
CN103294741A (zh) * | 2012-02-24 | 2013-09-11 | 株式会社日立制作所 | 类似文件检索辅助装置以及类似文件检索辅助方法 |
CN103377237B (zh) * | 2012-04-27 | 2016-08-17 | 常州艾斯玛特信息科技有限公司 | 高维数据的近邻搜索方法以及快速近似图像搜索方法 |
CN103377237A (zh) * | 2012-04-27 | 2013-10-30 | 常州市图佳网络科技有限公司 | 高维数据的近邻搜索方法以及快速近似图像搜索方法 |
CN102831225A (zh) * | 2012-08-27 | 2012-12-19 | 南京邮电大学 | 云环境下的多维索引结构、其构建方法及相似性查询方法 |
CN103106276B (zh) * | 2013-02-17 | 2016-03-30 | 南京师范大学 | 一种基于小角编码的矢量数据网格索引方法 |
CN103106276A (zh) * | 2013-02-17 | 2013-05-15 | 南京师范大学 | 一种基于小角编码的矢量数据网格索引方法 |
CN103345496A (zh) * | 2013-06-28 | 2013-10-09 | 新浪网技术(中国)有限公司 | 多媒体信息检索方法和系统 |
CN103345496B (zh) * | 2013-06-28 | 2016-12-28 | 新浪网技术(中国)有限公司 | 多媒体信息检索方法和系统 |
CN103412879A (zh) * | 2013-07-17 | 2013-11-27 | 中国人民解放军国防科学技术大学 | 大规模信息网络中数据语义信息的处理方法 |
CN103412879B (zh) * | 2013-07-17 | 2016-11-30 | 中国人民解放军国防科学技术大学 | 大规模信息网络中数据语义信息的处理方法 |
CN110309139A (zh) * | 2018-03-05 | 2019-10-08 | 理光软件研究所(北京)有限公司 | 高维近邻对搜索方法和系统 |
CN110309139B (zh) * | 2018-03-05 | 2024-02-13 | 理光软件研究所(北京)有限公司 | 高维近邻对搜索方法和系统 |
US11449484B2 (en) | 2018-06-25 | 2022-09-20 | Ebay Inc. | Data indexing and searching using permutation indexes |
US12038896B2 (en) | 2018-06-25 | 2024-07-16 | Ebay Inc. | Data indexing and searching using permutation indexes |
Also Published As
Publication number | Publication date |
---|---|
CN1220159C (zh) | 2005-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Berchtold et al. | The X-tree: An index structure for high-dimensional data | |
Ferhatosmanoglu et al. | Approximate nearest neighbor searching in multimedia databases | |
Ferhatosmanoglu et al. | Vector approximation based indexing for non-uniform high dimensional data sets | |
US6154746A (en) | High-dimensional index structure | |
Weber et al. | An approximation based data structure for similarity search | |
US6084595A (en) | Indexing method for image search engine | |
Fang et al. | Computing Iceberg Queries Efficiently. | |
Kanth et al. | Dimensionality reduction for similarity searching in dynamic databases | |
Cha et al. | The GC-tree: a high-dimensional index structure for similarity search in image databases | |
Lu et al. | Hierarchical indexing structure for efficient similarity search in video retrieval | |
Xin et al. | Computing iceberg cubes by top-down and bottom-up integration: The starcubing approach | |
Yu et al. | ClusterTree: Integration of cluster representation and nearest-neighbor search for large data sets with high dimensions | |
Yu | High-dimensional indexing: transformational approaches to high-dimensional range and similarity searches | |
Cui et al. | Indexing high-dimensional data for efficient in-memory similarity search | |
CN1220159C (zh) | 一种高维矢量数据快速相似检索方法 | |
Berchtold et al. | Optimal multidimensional query processing using tree striping | |
CN1352432A (zh) | 索引和搜索特征向量空间的方法 | |
CN113407542A (zh) | 一种城市路网车辆出行轨迹的检索方法及系统 | |
Fenk et al. | Interval processing with the UB-tree | |
Goh et al. | MOSAIC: A fast multi-feature image retrieval system | |
Cui et al. | Efficient high-dimensional indexing by sorting principal component | |
Cha | Bitmap indexing method for complex similarity queries with relevance feedback | |
Berchtold et al. | Indexing High-dimensional Space: Database Support for Next Decades's Applications | |
Mejdoub et al. | Fast algorithm for image database indexing based on lattice | |
Choupo et al. | Optimizing progressive query-by-example over pre-clustered large image databases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20050921 Termination date: 20100703 |