本发明的目的是为了k近邻查询的性能,加快基于内容的海量多媒体检索, 提供一种
基于数据网格的k近邻查询方法。
本发明解决技术问题所采用的技术方案是:
1)对查询核心
算法进行了模块化的封装,在二进制代码级上实现代码的动 态重用,通过
指定统一的
接口,以接口的形式提供协议构件所实现的服务;
2)在数据结点层面对向量数据进行基于始点距离的数据分布,使得每个数 据结点并行地执行向量集缩减;
3)在数据结点层面对向量集进行基于双重距离尺度的缩减,得到候选向量 集;
4)采用“打包”方式将若干个候选向量合并作为一个消息进行传输;
5)在基于始点距离的数据分布、基于双重距离尺度索引的向量集缩减和“打 包”传输技术
基础上,完成网格环境下的k近邻查询,返回查询结果。
基于始点距离的数据分布的步骤如下:
输入:Ω:高维向量集,α个数据结点;
输出:Ω(1 to α):在不同数据结点存放的向量;
(1)计算每个向量的始点距离并且排序;
(2)根据每个分片中向量总数一致的原则将始点距离范围分成α分片;
(3)对于每个分片Ω(j)来说
(4)分别从每个始点距离的子范围中随机选择n/α2个向量,得到Ω(j);
(5)将Ω(j)部署在第j个数据结点;
在数据结点层面对向量集进行基于双重距离尺度的缩减步骤如下:
输入:向量集Ω及查询超球Θ(Vq,r)
输出:被缩减后的候选向量集Ω′(1 to t)
(1)对于每个类超球Θ(Oj,CRj)且j∈[1,T];
(2)对第j个子索引进行中心点为Vq半径为r的范围查询,返回结果Ω′(j);
(3)将得到的Ω′(j)输出到输出缓冲区OB1;
(4)如果Θ(Oj,CRj)相交于Θ(Vq,r)则
(5)继续循环;
(5)否则如果Θ(Oj,CRj)包含Θ(Vq,r)则
(6)结束循环;
采用“打包”方式将若干个向量合并作为一个消息进行传输的步骤如下:
输入:缓存中的高维向量,包的大小P;
输出:待发送的向量;
(1)首先将候选向量缓存到内存;
(2)如果缓存中的向量个数达到“包”大小P,就将该“包”发送至目标结 点;
(3)否则继续等待直到缓存中候选向量个数达到“包”大小。
在基于双重距离尺度索引的向量集“过滤”和“打包”传输技术基础上, 进行网格环境下的k近邻查询步骤如下:
输入:查询向量Vq,k
输出:查询结果Ω″
(1)初始化;
(2)发送查询
请求到数据结点Nd;
(3)当从执行结点返回的结果向量个数‖Ω″‖小于k,开始循环
(4)逐步增加半径r;
(5)利用资源管理机制在网格中找到若干个性能较好的结点作为求精操 作的执行结点;
(6)在数据结点完成向量过滤,得到候选向量Ω′;
(7)把Ω′中的候选向量按照“打包”的方式传输到执行结点;
(8)在执行结点完成求精缩减得到结果向量Ω″;
(9)将Ω″中的结果向量以“打包”的方式发送到查询结点Nq;
(10)当返回结果向量Ω″个数大于k;
(11)从结果向量集Ω″中求得与Vq最远的‖Ω″‖-k-1个向量并且将它们从Ω″中 删除,结束循环;
(12)否则继续循环。
本发明的有益效果:能显著提高k近邻查询的效率,同时具有很好的代码可 移植性、可扩展性及鲁棒性,能够根据实际应用的需要自适应地选择查询执行 结点,从而大大提高系统的性能。
附图说明
图1是本发明的总体体系结构示意图;
图2是本发明的总体流程
框图;
图3是类超球的“切分”例子示意图;
图4是向量缩减例子示意图;
图5是双重距离尺度索引的结构示意图;
图6是k-NN查询执行流程示意图;
图7是基于内容的图像检索例子示意图;
图8是基于形状的书法字检索例子示意图。
具体实施方法
本发明的基于数据网格环境的高维k-NN查询的具体实施的技术方案及步骤 如下:
(一)基于始点距离的数据分布策略
为了最大程度提高在数据结点层面上向量缩减处理并行性,本发明提出对 向量数据进行基于始点距离的数据分布,使得对于每次查询,每个数据结点都 能够并行地执行向量缩减,从而显著提高查询执行的效率。
该数据分布的步骤如下:
输入:Ω:向量集,α个数据结点;
输出:Ω(1 to α):在不同数据结点存放的向量;
(1)计算每个向量的始点距离并且排序;
(2)根据每个分片中向量总数一致的原则将始点距离范围分成α分片;
(3)对于每个分片Ω(j)来说
(4)分别从每个始点距离的子范围中随机选择n/α2个向量,得到Ω(j);
(5)将Ω(j)部署在第j个数据结点;
(二)基于双重距离尺度的向量缩减
定义1(始点距离).给定一向量Vi(x1,x2,...,xd),其始点距离为它到原点向量 Vo(0,0,...,0)的距离,表示为SD(Vi)=d(Vi,Vo)。
定义2(质心距离).给定一向量Vi,它的质心距离为到其对应类Cj的质心Oj 的距离,表示为CD(Vi)=d(Vi,Oj),其中Vi∈Ci且j∈[1,T]。
本发明提出基于加权质心距离的方法,该方法通过对类超球作基于始点距 离的“切分”来得到索引键值。如图3所示,假设查询超球Θ(Vq,r)与类超球Θ(Oj,CRj) 相交,首先将该类超球按照其中点的始点距离大小平均“切分”为λ“片”。对 于该类超球中第l个“分片”中的向量来说,满足
其中l∈[1,λ]且满足 则每个向量对应的 索引键值表示为:
key(Vi)=l+CD(Vi)/MCD (1)
其中由于CD(Vi)可能大于1,需要通过对其分别除以MCD进行归一化,使得其值 小于1。对于真实数据来说,MCD取。而对于均匀分布的随机数据来说,MCD 取 。这样使得每个点对应的加权质心距离的值域不重叠。最后对n个键值建立 基于分片的B+树索引,如图5所示。
双重距离尺度索引结构如图5所示,它由一张哈希表和T个分片索引构成, 其中T为聚类个数。通过聚类后,每个类超球中的向量分别采用一棵B+树建立索 引,作为双重距离尺度的一个分片索引。T个类需要建立T棵B+树,同时需要生 成一张哈希表来根据向量所在类的编号快速地
定位到对应的分片索引。一般采 用最简单的一一对应的方式来完成哈希映射,即其分片索引的编号由某一向量 所在类的编号确定。
双重距离尺度索引的创建分两步:首先对n个向量进行K平均聚类得到T个 类,然后通过T次循环,用newDMFile()生成子B+树索引头文件,接着对于每个 类中的向量,分别计算其始点和质心距离,并且通过转换得到对应的键值,最 后将键值插入对应的子B+树索引。尽管得到的这T个分片索引在物理上是离散存 储,但通过哈希表的统一映射使得其在逻辑上是完整的。该索引存储于网格中 的数据结点。
双重距离尺度索引的创建步骤如下:
输入:高维数据库Ω;
输出:双重距离索引bt(1 to T);
(1)对n个向量进行K平均聚类得到T个类;
(2)对于每个类Cj且j∈[1,T]
(3)用newDMFile()生成子B+树索引头文件;
(4)对于该类中的向量,分别计算其始点(SD)和质心(CD)距离;
(5)按照公式: 求得对应的键值,最后将键值插 入对应的子B+树索引bt(j);
由于向量集存储在数据结点,对于任意一个查询,不需要也没有必要将该 向量集中的所有向量都传输到执行结点进行距离运算。本发明提出在数据结点 通过双重距离尺度索引快速地对向量集进行缩减,从而有效地减少网络传输所 耗费的代价,减少通讯开销。向量缩减过程如图4所示,以下是该算法:
输入:向量集Ω及查询超球Θ(Vq,r)
输出:被缩减后的候选向量集Ω′(1 to t)
(1)对于每个类超球Θ(Oj,CRj)且j∈[1,T];
(2)对第j个分片索引进行以Vq为中心r力半径的范围查询,得到候选向量 Ω′(j);
(3)将得到的Ω′(j)输出到输出缓冲区OB1;
(4)如果Θ(Oj,CRj)与Θ(Vq,r)相交,则
(5)继续循环;
(6)否则,结束循环;
(三)“打包”传输
当从一个结点往另一个结点传输数据时,可以采取向量“打包”(vector package)的方式进行数据传输.该传输方式的主要思想是:把需要传输的向量 “打”成若干“包”,每个“包”包含若干个向量,每次把它当成一个消息进行 传输,而不是把一个向量当成一个消息进行传输。
(i)采取向量“打包”的方式进行数据传输,既可以减少每一次数据传输所 要消耗的启动传输的代价,又可以减少传输每个消息的头文件所耗费的代价。
(ii)向量“打包”传输方式具有很好的鲁棒性。如果传输失败,能够恢复 被中断的传输,即能够在最后一个被传输的“包”的开始
位置恢复传输。
(iii)如果结点间每次传输一个向量,那么网络上任意的延迟都会使在接收 数据的结点上的操作停止执行,采用向量“打包”的传输方式,执行结点可以 把接收到的“包”中的向量进行缓存,当下一个“包”出现网络延迟时,就可 以对缓存中的向量进行操作。
(四)基于数据网格的k近邻查询算法
本发明针对数据网格中存储海量高维向量数据的各结点之间网络带宽的不 同,提出一种基于数据网格环境的高效k近邻(k-NN)查询方法。附图1表示该查 询系统的体系结构。附图2为查询流程。由于k-NN查询是通过嵌套调用范围查 询来完成的。当用户向数据结点发送一个查询请求,首先利用基于双重距离尺 度索引对原始向量集进行缩减,以减少网络传输的代价,再将缩减后的候选向 量通过向量“打包”传输的方式发送到若干个执行结点,在执行结点并行地完 成候选向量的求精(距离)运算。为了充分利用网格中的资源,突出数据网格资源 共享的特点,该算法把网格中性能较好的若干个结点作为高维查询的执行结点。 最后将得到的结果向量发送回查询结点。这样完成了一次高维向量的范围查询。 当返回的候选向量个数小于k时,再通过增大查询半径r的方式再次执行基于数 据网格的范围查询,直到条件满足。
整个k-NN查询的完整算法分为3个阶段,如图6所示;当得到的候选向量 个数小于k时(第3行),再重新增大查询半径(第4行),由于通过上述方法得到 的候选向量个数不一定正好为k个,可能会大于k(第10行)。当遇到该情况时, 需要进行(‖Ω″‖-k-1)次循环(第11行),依次找到在该结果向量集Ω″中距离查询点 Vq最远的(‖Ω″‖-k-1)个向量(第12行)并且将它们删除(第13行)。这样恰好得到k 个最近邻向量。以下为查询步骤:
输入:查询向量Vq,k
输出:查询结果Ω″
(1)初始化;
(2)发送查询请求到数据结点Nd;
(3)当从执行结点返回的结果向量Ω″个数小于k,开始循环
(4)增加半径值r;
(5)利用资源管理机制在网格中找到h个性能较好的结点作为求精操作的 执行结点;
(6)在数据结点对Ω进行缩减,返回候选向量集Ω′;
(7)把Ω′中的候选向量按照向量“打包”的方式传输到h个执行结点;
(8)在执行结点对Ω′进行求精,返回结果向量Ω″;
(9)将Ω″中的结果向量按照“打包”的方式发送到查询结点Nq;
(10)当返回结果向量Ω″个数大于k则
(11)从结果向量集Ω″中删除距Vq最远的‖Ω″‖-k-1个向量,结束循环;
(12)否则继续循环;
需要说明的是,第6和第7步并行执行。因为通过向量缩减后的候选向量 在发送至执行结点之前是先发送到数据结点的缓存中,当缓存中的向量个数达 到传输“包”大小时,再将它们“打包”发送到对应的执行结点。同理,第8 和第9步也是并行执行,也需要将求精后的结果向量先发送至执行结点的缓存 中,再将它们“打包”发送到查询结点Nq。
该查询可应用于的基于内容的海量图像检索中,如图7所示,将当用户从 查询结点提交一张例子图片,首先提取特征并将特征“打包”发送到数据结点, 在数据结点通过向量集缩减从图片库中检索出与该粒子图片相似的候选图片, 然后将这些图片“打包”发送至执行结点进行距离计算,得到结果图片集,并 将其发送到查询结点显示。
类似地,该技术也可以应用基于形状的海量书法字检索,如图8所示,当用 户从查询结点提交一个“题”字到数据结点,通过在数据结点的书法字集“过 滤”、将候选字“打包”发送至执行结点进行距离计算,最终得到结果书法字并 将其发送到查询结点显示。
1 庄越挺,潘
云鹤,吴飞编著.《网上多媒体信息分析与检索》.清华大学出版社.2002年9月
2 Fei Wu,Hong Zhang,Yueting Zhuang.Learning Semantic Correlations for Cross Media Retrieval.In Proc. of ICIP 2006
3 Fei Wu,Yi Yang,Yueting Zhuang and Yunhe Pan.Understanding Multimedia Document Semantics for Cross-Media Retrieval.In Proc.of PCM 2005,pp.993-1004
4 I.Foster,C Kesselman.The Grid:Blueprint for a New Computing Infrastructure San Francisco,CA:Morgan Kaufmann,1998
5 A Chervenak,I Foster,C Kesselman,et al.The data grid:Towards an architecture for the distributed management and analysis of large scientific datasets.Journal of Network and Computer Applications,2001, 23:187-200
6 Wolfgang Hoschek,Javier Jaen Martinez,Asad Samar,et al.Data management in an international data grid projectl In Proc.of the 1st IEEE/ACM Int’l Workshop on Grid Computing.Berlin:Springer Verlag,2000, 17-20
7 B Segal.Grid Computing:The European data grid project.The 2000 IEEE Nuclear Science Symposium and Medical Imaging Conference,Lyon,France.2000
8 Heinz Stockinger.Distributed database management systems and the data grid.In Proc.The 18th IEEE Symp on Mass Storage Systems and the 9th NASA Goddard Conference on Mass Storage Systems and Technologies San Diego,CA,2001
9 J.Smith,A.Gounaris,P Watson,et al.Distributed query processing on the grid In Proc of the 3rd Int’l Workshop on Grid Computing Berlin:Springer-Verlag.pp.279-290,2002
10 杨东华,李建中,张文平.基于数据网格环境的连接操作算法.计算机研究与发展,Vol.41,No.10,2004 11 Christian Bhm,Stefan Berchtold,Daniel Keim:Searching in High-dimensional Spaces:Index Structures for Improving the Performance of Multimedia Databases.ACM Computing Surveys 33(3),2001.
12 A.Guttman.R-tree:A dynamic index structure for spatial searching.In Proc.of the ACM SIGMOD Int.Conf. on Management of Data. 1984. pp.47-54.
13 N.Beckmann.H.-P.Kriegel,R.Schneider,B.Seeger.The R*-tree:An Efficient and Robust Access Method for Points and Rectangles.In Proc.ACM SIGMOD Int.Conf.on Management of Data.1990,pp.322-331.
14 S.Berchtold,D.A.Keim and H.P.Kriegel.The X-tree:An index structure for high-dimensional data.In Proc. 22th Int.Conf.on Very Large Data Bases,1996,pp.28-37.
15 R.Weber.H.Schek and S.Blott.A quantitative analysis and performance study for similarity-search methods in high-dimensional spaces.In Proc.24th Int.Conf.on Very Large Data Bases,1998,pp.194-205.
16 S.Berchtold,C.Bohm,H.P.Kriegel,J.Sander and H.V.Jagadish.Independent quantization:An index compression technique for high-dimensional data spaces.In Proc.16th Int.Conf.on Data Engineering,2000, pp.577-588.
17 M J.Fonseca and J A.Jorge.NB-Tree:An Indexing Structure for Content-Based Retrieval in Large Databases. In Proc.of the 8th International Conference on Database Systems for Advanced Applications,Kyoto,Japan, Mar 2003,pp.267-274.
18 H.V.Jagadish,B.C.Ooi,K.L.Tan,C.Yu,R.Zhang:iDistance:An Adaptive B+-tree Based Indexing Method for Nearest Neighbor Search.ACM Transactions on Data Base Systems,30,2,364-397,June 2005.
19 H.V.Jagadish,B.C.Ooi,Q.H.Vu,R.Zhang,A.Y.Zhou:VBI-Tree:A Peer-to-Peer Framework for Supporting Multi-Dimensional Indexing Schemes.In Proc.22nd IEEE International Conference on Data Engineering, 2004.