基于分区的高维相似性结合方法

文档序号:6376405阅读:212来源:国知局
专利名称:基于分区的高维相似性结合方法
技术领域
本发明涉及一种高维相似性结合方法,具体涉及基于分区的高维相似性结合方法,允许通过利用一种维选择算法预先动态地选择空间分区的维和分区的维的数量来有效地测量相似性。
背景技术
一般,诸如音频、视频、图像和文本、指示在一段时间上的序列的时间序列数据、大量用于各种数据仓库的商业数据的多媒体数据首先通过预先处理程序,然后被映射到高维空间的点来用于搜索、管理等,如图6所示。基于在高维空间中的数据之间的欧几里得距离来测量在所映射的数据之间的相似性。例如,基于在映射到高维空间上的两个点之间的距离来测量在两个图像文件之间的相似性。
术语“相似性结合”被定义为当从大量的多媒体数据集、医疗数据集、科学数据集、时间序列数据集等作为输入数据提供高维数据时有效地在数据集中检索相似数据的方法,并且在诸如图像和多媒体数据系统和时间序列数据系统等的高维数据系统中不可缺少地需要相似性结合。
相似性结合可以建模如下。
假定数据集R和S存在于d维空间中并且用于数据集R和S的任意元素r和s被分别表示为r=[r1,r2,...,rd],s=[s1,s2,...,sd],则相似性结合查询可以以公式如下表示 其中p是特殊的距离量度,ε是作为用户定义的参数的截止(cutoff)相似性值,并且仅空间距离小于构成数据集R和S的元素的数据对中的ε的数据对,被作为结果返回。
传统的相似性结合方法良好地适用于低维数据,但是由于执行时间和系统存储的要求,对于要求大维数、即10或100甚至1000维的高维数据,传统的相似性结合方法效率很低。
传统的相似性结合方法的典型示例可以包括基于ε-kdB树的相似性结合方法(“High dimensional similarity joins”by K.Shim,R.Srikant and R.Agrawal,Proceedings of the 1997 IEEE International Conference on Data Engineering,1997(“高维相似性结合”,K.Shim,R.Srikant和R.Agrawal,1997年数据工程IEEE国际会议会刊,1997))和利用ε-网格顺序(grid order)(“ε-grid orderAnalgorithm for the similarity join on massive high dimensional data”by C.Bhm,B.Braunmuller,F.Krebs,and H.-P.Kriegel,Proceedings of the 2001ACM-SIGMOD Conference,2001(“ε-网格顺序一种用于大量高维数据的相似性结合的算法”,C.Bhrn,B.Braunmuller,F.Krebs和H.-P.Kriegel,2001年美国计算机协会-数据管理专业组会议,2001))的相似性结合方法。
在基于ε-kdB树的相似性结合方法中,数据空间沿着一维轴被划分为具有ε面积的单元,数据被存储在这些单元中,并且对于各个单元构造具有多维索引结构的ε-kdB树。这个方法可以通过限制用于以ε为单位的数据划分的分区面积而有效地减少结合的数量。但是,因为必须在系统存储器中保存指示各个分区的的ε-kdB树结构,因此随着空间维数的增加,所需要的系统存储量也增加。结果,用于执行相似性结合所需要的时间也成比例地增加。
另外,在利用ε-网格顺序执行相似性结合的算法中,根据通过将具有ε单元长度的网格分布在数据空间上和随后以字典式顺序来比较网格单元而执行对于高维数据的相似性结合。即使具有与利用ε-kdB树的方法相反的有限存储量,这种算法也可以提供很大数据集的有效换算。但是,有一个缺点在于,为了搜索p的结合对,必须考虑在p-[ε.ε..ε]和p+[ε.ε..ε]之间的所有点,如图7所示,因此随着维数的增加,在一个间隔中的所搜索的网格单元的数量变得很大,导致执行时间增加。
同时,虽然用于低维空间数据系统的空间分区方法可以用于高维数据空间中的相似性结合,但是从实际的角度出发不期望它们要求对所有的维轴的空间分区。换句话说,因为随着加入分区的维轴的数量的增加(例如,如果每个维轴被划分成10个连续的子间隔,则对于8、16、32和64维产生的单元的数量分别是108、1016、1032和1064)从分区产生的单元的数量爆炸性增加,因此有可能这些数量通常大于在未分区之前的原始数据集中的点的数量。如果从分区产生的单元的数量变得更大,则过大地产生数据歪斜畸变现象。因此,基于空间分区的算法本身变得无效。在此,数据歪斜畸变现象是指当高维空间被划分成单元时,在单元中的数据分布不均匀,如图8所示。
因此,需要一种新的相似性结合方法,其中可以在短时间内有效地执行高维数据的相似性结合,并且在相似性结合的执行期间不需要大量的存储空间。

发明内容
本发明的一个目的是提供一种在较短时间期间有效执行高维数据的相似性结合而不需要大量的存储空间的方法。
本发明的另一个目的是提供一种能够改善相似性结合的执行的分区的维的选择算法。这个分区维数选择算法选择维和维的数量,它可以利用对于给定数据集的各个轴的分布值来动态和有效地对数据空间分区。
本发明提供了一种基于分区的高维相似性结合方法,包括步骤分区高维数据空间和在预定数据集之间执行结合。在空间分区之前提前确定用于分区高维数据空间的维和分区的维的数量,并且当数据集的各个单元彼此重叠或彼此相邻时执行结合。
优选的是,所述方法还包括步骤对在数据集的各个单元之间的结合中会发生的结合计算的次数计数。
可以根据所述结合计算的数量来确定用于分区高维数据空间的维。
优选的是,通过比较数据集的大小和其中存储数据集的盘块的大小而获得用于分区高维数据空间的维的数量dp,并且可以通过下列方程来获得dp 其中,|R|block和|S|block分别是其中存储数据集R和S的盘块的总数,BlockSize是盘块的大小, 是单元的数量。
可以通过计算包括在用于各个维的各个单元中的数据集R和S的项目的数量和随后对在用于各个维的单元之间的结合的距离计算的数量计数来获得结合计算的数量。
作为另一种选择,可以通过计算包括在用于各个维的单元中的采样单元中的数据集R和S的项目的数量和随后对在用于各个维的单元之间的结合的距离计算的数量计数来获得结合计算的数量。


通过下面参照

优选实施例,本发明的上述和其他目的、特点和优点将会变得更加清楚,其中图1是示出应用了本发明的硬件示例的配置的图;图2是图解按照本发明的基于分区的高维相似性结合方法的流程图;图3示出了在对于两维的分区步骤之后的被分区的数据空间;图4a和4b是说明对特定的数据集R和S所期望的距离计算的数量计数的思想的图;图5示出了对于数据集R和S的分区维选择算法;图6示出了高维数据通过预先处理程序并且然后被映射到高维空间上的点来用于搜索、管理等的思想;图7示出了使用传统的ε-网格顺序的相似性结合中的数据空间;图8示出了当高维数据空间被划分成单元时在单元中的数据分布不均匀。
具体实施例方式
以下,参照附图来说明本发明的一个优选实施例以提供本发明的非限定说明性描述。但是,实施例仅仅是本发明的示例,因此下面所述的具体特征仅仅用于更容易地说明这样的实施例和提供对本发明的全面理解。因此,本领域中的技术人员将容易地认识到,本发明不限于下述的具体实施例。而且,为了清楚和简短,省略对本领域中的技术人员所公知的本发明的不同配置和组成的说明。
而且,不要求本发明克服上述的缺陷和其他缺陷,本发明的一个说明性、非限定性实施例可能不克服所述缺陷的任何一个。
图1是示出应用了本发明的硬件示例的配置的图。
如图1所示,单个或多个处理器P1、P2、...、Pn11、在主存储器中的存储区域12和输入/输出处理器15经由系统总线16连接。在主存储器的存储区域12中存在共享的存储区域13,并且输入/输出处理器15与作为辅助存储器的盘14连接。本发明可以在通常包括单个或多个处理器和共享的存储区域的硬件环境中工作。
现在参照图2说明按照本发明的基于分区的高维相似性结合方法。
按照本发明的一个实施例的基于分区的高维相似性结合方法包括步骤分区高维数据空间(S100);在空间分区之前确定用于分区高维数据空间的维的数量(S200-S220);确定用于分区高维数据空间的维(S300-S320);执行在预定的数据集之间的结合(S400)。
下面具体说明每个步骤。
在分区步骤S100,整个数据被划分成ε长度的单元,ε表示截止相似性值。假定在数据空间中的所有项目在单元超正方体内,即当每个维轴在
范围中时,每个维被划分成[1/ε]个单元。在加入相似性结合的数据集R和S中的每个项目通过数据的预先处理程序被分配和存储在它所属的一个相关单元中。图3示出了在对于两维的分区步骤之后的被分区的数据空间,其中小矩形表示结果单元。
在相似性结合步骤S400中,从加入相似性结合的两个数据集搜索满足特殊相似性请求的数据对。但是,来自数据集之一的每个单元不必与另一个数据集的每个单元成对,而是仅仅与在数据空间中它重叠或相邻的单元成对。一般,在d维数据空间中,不位于所述单元超正方体的边界的在数据集中的一个单元应当与另一个集中的第3个单元成对。例如,在图3中所示的两维数据空间中,为了相似性结合,单元P应当与在另一个集的单元中的阴影的9个单元成对。
如上所述,在高维相似性结合的情况下,如果在分区步骤期间通过使用所有的维来划分数据空间,则从分区产生的单元的数量可能爆炸性增加,于是数据歪斜畸变现象会严重。这因此导致盘的I/O成本的增加。另外,如果分区维的数量增加,则用于向相关单元映射数据的散列函数的计算成本也作为开销的另一个来源。因此,取代利用所有的维来分区数据空间,所期望的是通过仅仅在维中选择具有数据的“均匀分布”的几个维来执行数据空间的分区。在此,“均匀分布”的含义被理解为一个相对的概念,即一个维示出一个数据集的均匀分布而不示出另一个数据集的均匀分布。另外,随着截止相似性值的变化,维的均匀程度也相应改变。即,根据给定的两个数据集和截止相似性值来动态地确定维的均匀程度。
因此,本实施例不利用所有的维来分区数据空间,而是通过从所有的维选择示出数据的“均匀分布”的几个维来执行空间分区。
以下,将说明按照本发明的一个优选实施例的步骤在空间分区之前确定用于分区高维数据空间的维的数量(S200-S220);确定用于分区高维数据空间的维(S300-S320)。
分区维的数量在处理在高维数据空间中的两个数据集R和S的相似性结合的情况下,在数据点均匀地分布在数据空间中的假设下,当分区维的数量是dp时,通过对数据集R和S的数据项的成对数量计数而计算的CPU成本[Cost(CPU)]可以用公式表示如下 另外,作为盘访问成本的盘I/O成本[Cost(IO)]可以用公式表示如下Cost(IO)=|R|block+3dp|S|block--(3)]]>对于其中存储R和S的数据块的总数,|R|block用于R,|S|block用于S。
按照方程(2)和(3),可以明白随着分区维的数量dp增加,CPU成本降低(假设在[1/ε]>3的情况下),而盘I/O成本增加。即,对于相似性结合的执行,在CPU成本和盘I/O成本之间存在折中。
在这个方面,按照本实施例的方法通过将数据集的大小与盘块的大小相比较而确定分区维的数量。
假定平均单元大小与盘块的大小相同,则在分布步骤之后产生的单元总数Np可以被计算如下(S200)Np=Min(|R|block,|S|block)BlockSize---(4)]]>其中,|R|block和|S|block分别是其中存储数据集R和S的盘块的总数,Min()是返回值中较小者的函数,BlockSize是盘块的大小。
而且,可以如下来计算当空间被分区成预定数量的维时产生的单元的数量Np’(S210)
因此,从方程中可以看出,Np=Np’。结果,可以如下来获得分区维的数量dp(S220) 分区维的选择其中数据可以存在于高维数据空间中的域的大小指数地增加(被称为“维的灾难”的现象),于是,在高维数据空间中存在的实际数据不示出均匀的分布。
如上所述,因为可以根据两个给定的数据集和截止相似性值来动态地确定维的均匀度,因此应当考虑到在多个数据集之间的相关关系而选择相似性结合的分区维。结果,一个数据集的数据分布不是相似性结合处理的有效的分区维的选择的标准。
考虑到上述方面,作为相似性结合处理的有效分区维的选择标准,本实施例使用当两个数据集被结合到一个相关的维轴时的两个数据集的项目的成对数量,即距离计算的数量,也就是说在结果单元之间的结合的情况下产生的结合计算的数量。结合计算的数量被作为在每个维轴的单元之间的结合成本,并且根据预先对于每个维轴计算的结合成本来选择分区维。
图4a是说明对特定的数据集R和S所期望的距离计算的数量计数的思想的图。
在数据集R和S中的每个项目按照它的维轴的坐标值、通过向一个维轴的空间投影被映射到在长度ε的[1/ε]个单元中的任何一个。然后,对于每个维,计数包括在每个单元中的数据集R和S的项目的数量(S300)。
其后,获得利用项目的数量在单元之间的结合中发生的距离计算的数量(S310)。此时,在数据集R中的单元和与其相邻或重叠的、在数据集S中的三个单元成对地结合。即在数据集R中的任意单元与在数据集S中的三个单元成对,这三个单元即在其左侧的单元、与其重叠的单元和在其右侧的单元。
例如,如图4b所示,如果对于一个特定的维,数据集R分别具有1、3、0、5、...个项目并且数据集S分别具有1、3、4、2、5、...个项目,则距离计算的数量被计数如下{(1×1)+(1×3)}+{(3×1)+(3×3)+(3×4)}+{(0×3)+(0×4)+(0×2)}+{(5×4)+(5×2)+(5×5)}+...
最后,考虑对于每个维轴所获得的距离计算的期望次数越小,结合成本越低,并且最后,将具有最低结合成本的维选择作为分区维(S320)。
同时,在对距离计算的数量计数的情况下,不必实际分区和存储数据,并且可以通过仅仅记录属于两个数据集的每个单元的数据的数量来进行计数。即,在选择分区维时,不执行实际的结合计算,并且仅仅利用分配到每个单元的项目的数量来计数结合所需要的距离计算的数量。
另外,在获得项目的数量的情况下,虽然可以获得分配到所有数据集的每个单元的项目的数量,但是也可能通过对数据集的一部分取样而获得项目的数量。
图5示出了按照本发明的一个优选实施例的、对于数据集R和S的分区维选择算法。
在所述算法中的行7-11和12-16是计算包括在每个维的每个单元中的数据集R和S的项目的数量的处理,行18-24是计数在每个维的单元之间的结合的距离计算的数量的处理。
如上所述,本发明的本实施例允许已经一般地用于低维空间中的空间分区算法可以被应用到高维数据空间,因此即使从空间分区产生的单元的数量爆炸性增加,也可以在最佳化CPU和I/O成本的同时执行相似性结合。
另外,存在一个优点,即按照本发明的一个优选实施例,可以通过选择动态和最有效地对空间分区的维、经由使用给定数据集的各个轴的分布值的维的数量来降低相似性结合的执行时间。
权利要求
1.一种基于分区的高维相似性结合方法,包括确定用于分区高维数据空间的维和分区的维的数量;按照所确定的维和分区维的数量来分区高维数据空间;按照所分区的维来在数据集之间执行结合,其中仅仅当数据集的各个单元彼此重叠或彼此相邻时执行结合。
2.按照权利要求1的方法,还包括操作对在数据集的各个单元之间的结合中会发生的结合计算的次数计数。
3.按照权利要求2的方法,其中根据所述结合计算的次数来确定用于分区高维数据空间的维。
4.按照权利要求2的方法,其中,按照下面的方程,通过比较数据集的大小和其中存储数据集的盘块的大小而获得用于分区高维数据空间的维的数量dp 其中,|R|block和|S|block分别是其中存储数据集R和S的盘块的总数,BlockSize是盘块的大小, 是单元的数量。
5.按照权利要求4的方法,其中,通过计算包括在用于各个维的各个单元中的数据集R和S的项目的数量和随后对在用于各个维的单元之间的结合的距离计算的数量计数来获得结合计算的数量。
6.按照权利要求4的方法,其中,通过计算包括在用于各个维的单元中的采样单元中的数据集R和S的项目的数量和随后对在用于各个维的单元之间的结合的距离计算的数量计数来获得结合计算的数量。
7.按照权利要求3的方法,其中,按照下面的方程,通过比较数据集的大小和其中存储数据集的盘块的大小而获得用于分区高维数据空间的维的数量dp 其中,|R|block和|S|block分别是其中存储数据集R和S的盘块的总数,BlockSize是盘块的大小, 是单元的数量。
8.按照权利要求7的方法,其中,通过计算包括在用于各个维的各个单元中的数据集R和S的项目的数量和随后对在用于各个维的单元之间的结合的距离计算的数量计数来获得结合计算的数量。
9.按照权利要求7的方法,其中,通过计算包括在用于各个维的单元中的采样单元中的数据集R和S的项目的数量和随后对在用于各个维的单元之间的结合的距离计算的数量计数来获得结合计算的数量。
全文摘要
一种基于分区的高维相似性结合方法,允许通过利用维选择算法预先动态选择空间分区维和分区维的数量来有效地测量相似性。一种在较短的时间期间有效地执行高维数据的相似性结合而不要求大量的存储空间的方法。所述方法按照本发明包括步骤分区高维数据空间和在预定数据集之间执行结合。在空间分区之前提前确定用于分区高维数据空间的维和分区的维的数量,并且仅仅当数据集的各个单元彼此重叠或彼此相邻时执行结合。
文档编号G06F7/00GK1485766SQ03154330
公开日2004年3月31日 申请日期2003年8月15日 优先权日2002年9月11日
发明者申孝燮 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1