大规模信息网络中数据语义信息的处理方法与流程

文档序号:11803472阅读:418来源:国知局
大规模信息网络中数据语义信息的处理方法与流程
本发明主要涉及到信息网络中数据处理领域,特指一种大规模信息网络中数据语义信息的处理方法,特指一种对任意维度、任意类型的语义信息进行规格化处理的方法。

背景技术:
随着信息技术的发展及计算机网络的普及,信息在社会中发挥着越来越大的作用,深刻影响着人们的生产、生活和学习方式。随着时代的进步,网络中的信息资源呈指数增长且日趋复杂化,变现形式各异;同时,用户对信息资源的需求也在不断提高,因此如何从海量的网络信息资源中获取用户想要的结果变得更加困难。传统基于关键字的信息管理和搜索方法根据数据信息的表现形式(语法层次)进行数据组织和查询,不能满足用户智能的信息需求。因此有必要从语义层次上(提取网络数据信息的关键属性)分析管理网络中的数据,通过比较、关联及聚合数据信息间语义上的相关性,高效实现大规模数据信息智能管理和发现。信息网络中存在丰富的数据信息,但是由于人们缺乏有效的数据组织管理方法,造成了“数据丰富而信息缺乏”的状况。信息网络中数据对象包含的信息量越来越丰富,可能包含几百甚至成千上万个属性。为了在海量的网络数据中组织和发现用户需要的信息,传统方法将数据对象表示成高维属性空间中的点或向量,从而将网络中的数据对象集用高维数据集合来表示。但网络中大量的高维数据也导致了“维度灾难”(cursesofdimensionality)问题的出现,“维度灾难”指在数据分析中遇到的由于变量(属性)过多而引起的所有问题。这些问题主要表现以下几个方面:1.高维空间数据分布非常稀疏,很难对有相似语义的数据信息进行有效的组织管理,在发现有相似语义的数据信息时,需要访问较大的空间区域;2.在高维空间中一个给定数据点到其最近邻和最远邻在很多情况下几乎是等距的,不能高效地组织和发现与该数据点语义相近的数据信息;3.随着维数的升高,高维数据空间中数据索引节点之间的重叠度随之增大,当对给定数据信息进行语义搜索查询时,重叠度的加大增加了查询访问路径,从而增加了查询代价,当维数增加到一定数量时,采用索引结构反而不如顺序扫描。近年来,围绕着高维数据带来的问题,学者们提出了不同的解决方法,试图在特定的应用背景下解决“维度灾难”的问题,总结起来有以下几种:1.基于过滤的方法。基于过滤的方法是指通过过滤一些向量以便信息检索过程中只需访问较少部分的向量,可以通过多种途径实现,聚类、分类及潜在语义分析(LSI)是常用的手段。三角不等式d(i,q)≥|d(i,k)-d(q,k)|也是一个有效的过滤方法,其中d为距离度量公式,q和k分别代表特征向量,利用该公式进行特征向量过滤。VA-File及其一系列变形是相对于近似最近邻搜索的一种精确搜索方法,例如:中国专利申请号为03129687.4、名称为“一种高维矢量数 据快速相似检索方法”记载的技术方案也属于基于过滤的方法。这类方法将空间划分为2b个超立方体形状的单元,b是用户指定的位串长度,用来近似估计原始特征向量,为每一个单元分配一个惟一位串值,并用这个位串近似表示落在该单元内部的原始特征向量。当对点进行搜索时,先对近似文件进行顺序扫描,需要时再通过一些查找项对精确文件进行查找。这种近似文件的表示比原始的向量文件小得多,存储耗费也小得多,在高维情况其性能超过了顺序扫描和绝大多数多维索引方法,但是存在两个主要缺陷:随着维数的增加,需要更多的位来近似表示特征向量;对于非均匀分布的数据,该方法的性能急剧下降。2.对数据空间进行划分的索引方法。此类方法通过划分数据空间、根据划分对数据进行聚类并利用划分对搜索空间进行剪枝以提高查询效率。这类方法根据数据空间的划分不同可分为两类,一类是K-D树演化而来的,包括K-D树、K-D-B树及LSDh树等;一类则是由R树演化而来,包括R树、R*树、SS树及X树等。前类使用空间划分方法,沿着预先定义的超平面来划分数据空间,而不考虑数据的分布,得到的区域相互分离的;后者使用数据划分方法,根据数据的分布对数据空间进行划分,这样得到的区域会产生一定的重叠。此类方法在处理低维数据时效果很好,但由于高维空间中数据分布的稀疏性,在处理高维数据时其性能甚至差于顺序扫描。3.多重空间填充曲线。多重空间填充曲线方法将d维的数据点映射到实数轴上,从而将d维数据向量进行排序,降低了需要访问的向量数,这种从Rd到R1的映射称为空间填充曲线(Space-FillingCurve,SFC)。在检索数据时,查询向量q先通过空间填充曲线映射到实数轴,然后通过二分查找或搜索树找到q的近邻点。然而,该映射的本质决定了某些在多维空间中的近邻点在实数轴上会互相远离,从而会给检索结果带来较大的错误率;为了提高检索精度,需要引进多个映射并扩大在实数轴上的查询范围,但这样又会不可避免的降低近邻检索的效率。4.降维方法。降维的方法是解决维度灾难的一个最直接的途径,其主要思想是构造降维映射,获得高维数据低维表示的方法。基本过程是先利用单值分解(SingularValueDecomposition,SVD)、离散小波变换(DiscreteWaveletTransform,DWT)、离散余弦变换(DiscreteCosineTransform,DCT)等方法对数据集进行降维处理,然后利用传统的多维索引方法对降维后的数据建立索引。iDistance方法是一种典型的降维方法,将高维数据空间分割成若干个子空间,再为每个子空间选取一个参考点,然后根据子空间里的每个点与参考点之间的距离,将各个点降维映射到一维空间上,再在一维空间上进行数据检索操作。降维方法能够数据对象从不易管理的高维空间映射到低维空间,方便用户快速查找到想要的信息,提高了数据检索效率,是解决“维灾”问题的有效手段之一。例如:中国专利申请 号为201110291515.8、名称为“一种基于街区距离的高维向量快速检索算法”记载的技术方案提出了一种基于街区距离的高维到一维转换的索引结构BlockB-tree,通过高维到一维转换后key值的过滤,能够加快高维向量的相似检索速度;中国专利申请号为201010167504.4、名称为“一种用于聚类的基于非负矩阵分解的降维方法”记载的技术方案提供了一种不增加原油NNMF复杂度而收敛速度快,计算时间省的非负矩阵降维方法;中国专利申请号为201110308490.8、名称为“一种用于高维数据聚类的半监督降维方法”记载的技术方案提供了一种用于高维数据聚类的半监督降维方法,能够改善聚类分析的效果,提高聚类分析的判别能力;中国专利申请名称为“一种基于图像数据结构保护的嵌入式降维方法”记载的技术方案通过将原始多维数据集内各向量根据两两向量对之间的距离关系进行相似子集与非相似子集的划分,针对不同的子集做不同的嵌入操作达到距离转换的目的,再对新的距离矩阵做投影达到降维目的。以上所有现有降维方法的基础都是建立在数据属性和维数都确定或者相同的基础之上的。但是,现在信息网络中的数据信息成分复杂,种类繁多,变现为数据类型及维度的不确定性,如僵尸网络、病毒、蠕虫、木马等恶意软件不断演化,其表现形式及语义属性不断改变,很难把它们都统一抽象成固定维数、固定类型的向量;而且网络数据向量在高维属性空间中大都分布不均匀,无法对数据向量聚集区进行有效地划分,在这种情况下现有降维方法的执行效率不高。

技术实现要素:
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种处理方法,原理简单、操作简便、易实现和推广、能够解决语义信息维灾问题的大规模信息网络中数据语义信息的处理方法。为解决上述技术问题,本发明采用以下技术方案:一种大规模信息网络中数据语义信息的处理方法,其步骤为:(1)高维数据规格化:利用哈希函数将网络中不同种类的高维数据A用相同的属性序列表示,将不同属性的数据对象统一映射到相同结构的属性数组B中,高维数据对象转化为固定维空间中的点;(2)数据分区:对多维数据空间中随机分布的高维数据进行数据分区,将高维数据分成多个互不相交的数据聚集区,保证每个聚集区内的数据尽量趋于均匀分布;(3)数据区归整划分:首先将每个数据聚集区归整为高维数据空间内的多维超立方体,并为每一个超立方体确定一个立方体数j;然后以超立方体中心为顶点,数据聚集区的(d-1)维超平面作为基,将每个d维数据聚集区(超立方体)划分为2d个金字塔,并为每个金字塔 赋予一个金字塔值i;(4)数据映射:将每个金字塔分成与基平行的几个子划分,每一个子划分与一个B+树数据页相对应,然后根据高维数据点到金字塔基的距离将数据聚集区内的高维数据映射为一维数值;(5)数据处理:在一维数据空间内为每一个多维超立方体划分一个区间,保证各区间互不相交,根据高维数据点所在的立方体数、金字塔值及其到基的距离将高维数据映射到一维空间内,并利用B+树创建索引;(6)数据搜索:根据查询点和查询范围判断是否与多维数据空间中的超立方体相交,若相交则计算相交边界值的一维索引关键字,根据索引关键字确定高维数据空间中的精确搜索范围,然后根据用户需求利用相似搜索方法求得结果数据信息并输出结果。作为本发明的进一步改进:所述步骤(1)的具体步骤如下:(1.1)将网络中高维数据对象的属性用一个序列表示,如A={A1,A2,…,An},Ai.attr(0<i<n)指的是属性的名称,Ai.val为每个属性对应类型的值,由于数据对象有其独特的属性种类及属性值,不同数据对象的属性序列不一致,映射到不同的属性空间中;(1.2)定义哈希函数iHash1(Ai.attr),根据数据对象属性的名称把属性集合A映射到一个有M个单元的归一化属性数组B中,返回的是A中每个属性单元在B中的具体位置;(1.3)定义哈希函数iHash2(Bi,Ai.val),将A中每个属性的值都哈希成N位的比特流,存放于该属性在B中的位置;形式化表示为其中B是一个由M个单元构成的数组,每个单元大小都是N位,值代表着A中的属性单元。作为本发明的进一步改进:所述步骤(2)的具体步骤如下:(2.1)先随机的选取K个对象作为数据分区的中心;(2.2)将数据空间中剩余的数据对象分配到离其最近的中心点;(2.3)在每个数据分区内根据数据对象分布计算出新的数据区中心点;(2.4)重复以上过程,直到每个数据区中心点不再发生变化。作为本发明的进一步改进:所述步骤(3)的具体步骤如下:(3.1)首先将每个数据分区归整为高维数据空间内的多维超立方体,并为每一个超立方体确定一个立方体数j;(3.2)对多维超立方体进行归一化处理,即每一维的边长为1,超立方体的中心点则表示为(0.5,0.5,…,0.5);(3.3)以超立方体中心为顶点,数据聚集区的(d-1)维超平面作为基,将每个d维数据聚集区划分为2d个金字塔;(3.4)为每一个金字塔确定一个金字塔值pi,则数据分区内的每一个高维数据点都对应有惟一的一个金字塔数,如果给定数据点v位于金字塔pi内,表明点v的金字塔数为i;确定给定点v的金字塔值pi的方法如下:只需要确定点v的维数i具有到中心点最大偏移度∣0.5-vi∣,则点v的金字塔数为i或者i+d;令点v的所有维坐标值中具有到中心点最大偏移度的那个坐标的维数为lmax,当点v的第lmax维坐标值小于0.5时,点v的金字塔数i等于lmax,当点v的第lmax维坐标值大于等于0.5时,点v的金字塔数等于lmax+d。作为本发明的进一步改进:所述步骤(4)的具体步骤如下:(4.1)将每一个金字塔分成与基平行的几个切片,每一个切片与一个B+树的数据页相对应;(4.2)定义金字塔中每一个多维数据点v的金字塔高度hv=∣0.5-hv’∣,其中hv’是数据点v到所属金字塔基平面的垂直距离;(4.3)根据一个多维数据点的金字塔数和金字塔高度,将一个多维数据点v映射为一个一维数值(i+hv),称(i+hv)为点v的金字塔值。作为本发明的进一步改进:所述步骤(5)的具体步骤如下:(5.1)在一维数据空间内为每一个高维立方体划分一个区间,保证各区间互不相交;定义一个范围常量c,c是一个足够大的常数,保证不同高维立方体内的数据对象映射到一维数轴不同的区间范围内;(5.2)根据高维数据点所在的立方体数、金字塔值及其到基平面的距离创建高维数据对象的索引关键字,将高维数据映射到一维空间内;(5.3)根据高维数据对象的索引关键字来建立B+树,高维对象原始信息保存在B+树的叶子节点的指针桶中;高维数据空间中每个超立方体被划分成若干个金字塔,每个金字塔进一步划分为切片,每个切片对应一个B+树的数据页,切片中的数据对象映射到数据页的最大值和最小值之间,同一切片中数据在相同的数据页上。作为本发明的进一步改进:所述步骤(6)的详细步骤如下:(6.1)根据用户需求,利用查询点及查询半径在多维数据空间内求得查询范围;(6.2)判断查询范围与数据空间内的各个数据聚集区是否相交,如果相交,进行下一步,否则失败返回;(6.3)计算相交边界值的一维索引关键字,在B+树种查找边界值的索引关键字,进而获得一个高维数据点的集合,得到精确搜索范围;(6.4)根据用户需求,在精确搜索范围内利用点查询、范围查询、最近邻查询或k-近邻查询搜索方法进行搜索,找到结果数据信息并输出。与现有技术相比,本发明的优点在于:本发明的大规模信息网络中数据语义信息的处理方法,原理简单、操作简便、易实现和推广、能够解决语义信息的维灾问题;本发明通过将任意维度、任意类型的复杂语义描述信息规格化到一个固定维度无结构化的语义向量,解决了语义向量空间的爆炸问题;且进一步通过数据聚类、规整、降维的数据管理,实现了智能高效的数据组织和发现。附图说明图1是本发明的流程示意图。图2是本发明在具体应用实例中的详细流程示意图。图3是本发明中进行高维数据规格化处理的原理示意图。图4是本发明中进行高维数据分区归整处理的原理示意图。图5是本发明中进行金字塔划分处理的原理示意图。图6是本发明中进行高维数据从高维空间映射到一维空间的原理示意图。图7是本发明中处理点查询的原理示意图。图8是本发明中处理范围查询的原理示意图。具体实施方式以下将结合说明书附图和具体实施例对本发明做进一步详细说明。如图1所示,本发明的大规模信息网络中数据语义信息的处理方法,为一种基于智能编码iHash(intelligenthash)的高维数据处理方法,其具体步骤如下:(1)高维数据规格化:针对现实网络中数据信息种类繁多、数据属性数量不一致的问题,利用哈希函数将网络中不同种类的高维数据A用相同的属性序列表示,将不同属性的数据对象统一映射到相同结构的属性数组B中,高维数据对象转化为固定维空间中的点。(2)数据分区:对多维数据空间中随机分布的高维数据进行数据分区,将高维数据分成多个互不相交的数据聚集区,保证每个聚集区内的数据尽量趋于均匀分布。(3)数据区归整划分:聚类得到的数据聚集区可能形状不规则,首先将每个数据聚集区归整为高维数据空间内的多维超立方体,并为每一个超立方体确定一个立方体数j,然后以超立方体中心为顶点,数据聚集区的(d-1)维超平面作为基,将每个d维数据聚集区(超立方体)划分为2d个金字塔,并为每个金字塔赋予一个金字塔值i。(4)数据映射:将每个金字塔分成与基平行的几个子划分,每一个子划分与一个B+树数据页相对应,然后根据高维数据点到金字塔基的距离将数据聚集区内的高维数据映射为一维数值。(5)数据处理:在一维数据空间内为每一个多维超立方体划分一个区间,保证各区间互 不相交,根据高维数据点所在的立方体数、金字塔值及其到基的距离将高维数据映射到一维空间内,并利用B+树创建索引。(6)数据搜索:首先根据查询点和查询范围判断是否与多维数据空间中的超立方体相交,若相交,则计算相交边界值的一维索引关键字,根据索引关键字确定高维数据空间中的精确搜索范围,然后根据用户需求利用相似搜索方法求得结果数据信息并输出结果。本实施例中,上述步骤(1)的详细步骤如下:(1.1)将网络中高维数据对象的属性用一个序列表示,如A={A1,A2,…,An},Ai.attr(0<i<n)指的是属性的名称,Ai.val为每个属性对应类型的值,由于数据对象有其独特的属性种类及属性值,不同数据对象的属性序列不一致,映射到不同的属性空间中。(1.2)定义哈希函数iHash1(Ai.attr),根据数据对象属性的名称把属性集合A映射到一个有M个单元的归一化属性数组B中,返回的是A中每个属性单元在B中的具体位置。这个函数的主要目的是把不同数据对象的属性都统一映射到数组B的结构中,把数据对象的属性个数变成相同的,便于转化为M维的点。在具体实现上,该函数主要是把属性名字符串作为输入,经过多次和随机数的运算、移位等操作,得出范围在[0,M-1]内的值。函数结果是有可能发生碰撞的,但是可以通过选取适当的M的大小来降低碰撞率。(1.3)定义哈希函数iHash2(Bi,Ai.val),将A中每个属性的值都哈希成N位的比特流,存放于该属性在B中的位置。形式化表示为其中B是一个由M个单元构成的数组,每个单元大小都是N位,值代表着A中的属性单元。由于数据对象不同,那么它们的属性值对应的类型和空间大小都可能不相同,所以这个函数的目的是把每个属性的值都映射成相同格式的数据,便于对其进行处理操作。在这个函数中,我们主要采用的是SHA-1算法,把每个属性的具体值作为输入,经过加密处理后得出160位的摘要,然后再把摘要处理成N位的值存放到iHash1(A)得出的结果对应在B中的位置。例如N取值32,那么就可以把得出的摘要划分成5个部分,然后按位异或处理或者移位相加等操作,得到最终的结果。本实施例中,上述步骤(2)的详细步骤如下:(2.1)先随机的选取K个对象作为数据分区的中心;(2.2)将数据空间中剩余的数据对象分配到离其最近的中心点;(2.3)在每个数据分区内根据数据对象分布计算出新的数据区中心点;(2.4)重复以上过程,直到每个数据区中心点不再发生变化。本实施例中,上述步骤(3)的详细步骤如下:(3.1)每个数据分区可能分布不规则,首先将每个数据分区归整为高维数据空间内的多 维超立方体,便于分区划分,并为每一个超立方体确定一个立方体数j;(3.2)对多维超立方体进行归一化处理,即每一维的边长为1,超立方体的中心点则表示为(0.5,0.5,…,0.5);(3.3)以超立方体中心为顶点,数据聚集区的(d-1)维超平面作为基,将每个d维数据聚集区划分为2d个金字塔;(3.4)为每一个金字塔确定一个金字塔值pi,则数据分区内的每一个高维数据点都对应有惟一的一个金字塔数,如果给定数据点v位于金字塔pi内,表明点v的金字塔数为i。确定给定点v的金字塔值pi的方法如下:只需要确定点v的维数i具有到中心点最大偏移度∣0.5-vi∣,则点v的金字塔数为i或者i+d。令点v的所有维坐标值中具有到中心点最大偏移度的那个坐标的维数为lmax,当点v的第lmax维坐标值小于0.5时,点v的金字塔数i等于lmax,当点v的第lmax维坐标值大于等于0.5时,点v的金字塔数等于lmax+d。本实施例中,上述步骤(4)的详细步骤如下:(4.1)将每一个金字塔分成与基平行的几个切片,每一个切片与一个B+树的数据页相对应;(4.2)定义金字塔中每一个多维数据点v的金字塔高度hv=∣0.5-hv’∣,其中hv’是数据点v到所属金字塔基平面的垂直距离;(4.3)根据一个多维数据点的金字塔数和金字塔高度,将一个多维数据点v映射为一个一维数值(i+hv),称(i+hv)为点v的金字塔值。本实施例中,上述步骤(5)的详细步骤如下:(5.1)在一维数据空间内为每一个高维立方体划分一个区间,保证各区间互不相交。定义一个范围常量c,c是一个足够大的常数,保证不同高维立方体内的数据对象映射到一维数轴不同的区间范围内。(5.2)根据高维数据点所在的立方体数、金字塔值及其到基平面的距离创建高维数据对象的索引关键字,将高维数据映射到一维空间内。如高维数据对象v所在的立方体数为j,金字塔数为i,v到所在金字塔基平面距离为hv’,则数据对象v的索引关键字y为:y=j×c+(i+hv)=j×c+(i+|0.5-hv')降维后,每一个高维立方体内高维数据对象的一维值被限定在[j*c,(j+1)*c]区间内,c是一个足够大的常数,从而确保每一个数据分区中的数据对象具有不同于别的分区的索引关键字。(5.3)根据高维数据对象的索引关键字来建立B+树,高维对象原始信息保存在B+树的叶子节点的指针桶中。高维数据空间中每个超立方体被划分成若干个金字塔,每个金字塔进 一步划分为切片,每个切片对应一个B+树的数据页,切片中的数据对象映射到数据页的最大值和最小值之间,同一切片中数据在相同的数据页上,处理同一切片内的数据速度就很快。本实施例中,上述步骤(6)的详细步骤如下:(6.1)根据用户需求,利用查询点及查询半径在多维数据空间内求得查询范围。(6.2)判断查询范围与数据空间内的各个数据聚集区(超立方体)是否相交,如果相交,进行下一步,否则失败返回。(6.3)计算相交边界值的一维索引关键字,在B+树种查找边界值的索引关键字,进而获得一个高维数据点的集合,得到精确搜索范围。(6.4)根据用户需求,在精确搜索范围内利用点查询、范围查询、最近邻查询或k-近邻查询等相似搜索方法进行搜索,找到结果数据信息并输出。以具体应用实例来对本申请的方法进行进一步详细描述。如图1和图2所示,在本实例中,具体实施步骤如下:1)网络数据采集:对网络中存在的数据信息进行采集,网络中现存数据信息多种多样、形式各异,搜索引擎很难直观理解其中蕴含的语义,需要对其进行形式化处理,便于机器理解及处理。2)将网络数据抽象为高维数据:根据网络数据的属性将不同形式的数据信息用属性序列表示,抽象成高维数据空间的点集。例如:某恶意感染可以提取成为属性集合A={name,scan,ip,port,connect,…},集合里面的各项是属性的名称,每个属性都有对应的具体的值。其中name是感染的名称,为string类型;scan表示是否有扫描主机端口的操作,值为1或0;ip为目的主机的网络地址,例如为192.168.1.15;port是被扫描的端口号,可以是一个值,也可以是一个集合等等。将每个流量数据都按照上述方法抽象成为对应的属性集合,最后形成数据集DB。3)数据规格化处理:网络中不同数据信息的属性各异,得到的高维数据点表现为维度不一致,为便于管理,需将维度各异的数据整合到同一高维数据空间。如图3所示,步骤2中的用iHash的方法规格化多维数据,主要的过程就是按照技术方案里面描述的函数处理过程进行转化。首先声明属性数组B,B中包含16个单元,每个单元大小为32比特,初始化为0。将属性集合A作为参数传入dHash1函数中。该函数把A中的字符串形式的变量名哈希成0-15之间的整形数据,也就是得出A的变量名在数组B中具体存放的位置v。将A进行第二次哈希函数dHash2处理,参数是A中变量的具体的值,以及第一层哈希得到的位置结果。采用的主要算法是SHA-1,将值加密处理成160位的信息摘要,然后再把这个摘要按比特分割成从高到低的5个32位的值r1,r2,r3,r4,r5,对这5个值进行异或运算,得出结果然后存入位置v。对每个属性集合都做出上述处理后就都对应着一个16维空间上的点。将恶意流量与数据点之间的对应关系记录下来,以方便之后的操作。4)高维数据降维处理:为消除“维灾”带来的影响,需要将高维数据映射到低维空间以便于组织管理。数据空间中“距离”临近的数据有着相似的信息语义,如图4所示,本发明中首先对数据空间中随机分布的高维数据进行数据聚类分区,将具有相近语义的数据划分在一个数据聚集区内,减少了查询范围。聚类得到的数据聚集区形状不规则,为了方便之后的降维处理,将数据聚集区归整为高维数据空间内的多维超立方体,并进行归一化处理,每一个数据聚集区内的数据都局限在一个边长为1的多维超立方体内,并为空间内超立方体赋予不同的立方体数j。多维超立方体划分,如图5所示,针对每一个d维的超立方体,以超立方体中心(0.5,0.5,…,0.5)为顶点,超立方体的(d-1)维超平面作为基,将每个d维数据聚集区划分为2d个金字塔。为每一个金字塔确定一个金字塔值pi,则数据分区内的每一个高维数据点都对应有惟一的一个金字塔数,如果给定数据点v位于金字塔pi内,表明点v的金字塔数为i。确定给定点v的金字塔值pi的方法如下:只需要确定点v的维数i具有到中心点最大偏移度∣0.5-vi∣,则点v的金字塔数为i或者i+d。令点v的所有维坐标值中具有到中心点最大偏移度的那个坐标的维数为lmax,当点v的第lmax维坐标值小于0.5时,点v的金字塔数i等于lmax,当点v的第lmax维坐标值大于等于0.5时,点v的金字塔数等于lmax+d。之后将每个金字塔分成与基平行的几个子划分,如图5,每一个子划分与一个B+树数据页相对应,根据高维数据点到金字塔基的距离将数据聚集区内的高维数据映射为一维数值。具体映射步骤如下:定义金字塔中每一个多维数据点v的金字塔高度hv=∣0.5-hv’∣,其中hv’是数据点v到所属金字塔基平面的垂直距离;根据一个多维数据点的金字塔数和金字塔高度,将一个多维数据点v映射为一个一维数值(i+hv),称(i+hv)为点v的金字塔值;创建高维数据的一维索引关键字:y=j×c+(i+hv)=j×c+(i+|0.5-hv'|),其中j为立方体数,i为金字塔数,降维后,每一个多维立方体内高维数据对象的一维值被限定在[j*c,(j+1)*c]区间内,如图6所示,从而确保每一个数据分区中的数据对象具有不同于别的分区的索引关键字。5)根据高维数据对象的索引关键字来建立B+树,索引关键字在一维空间内按顺序排列,高维对象原始信息保存在B+树的叶子节点的指针桶中,检索到索引关键字,就能相应找到原始数据信息。高维数据空间中每个数据分区被划分成若干个金字塔,每个金字塔进一步划分为切片,每个切片对应一个B+树的数据页,切片中的数据对象映射到数据页的最大值和最小值之间,同一切片中数据在相同的数据页上,处理同一切片内的数据速度就很快。6)用相似搜索方法查询搜索。在前面介绍的高维数据降维、用B+树组织索引关键字的 基础上,可以利用相似搜索方法有效确定搜索范围,快速得到用户需求的数据信息。相似搜索方法分为四类:点查询(PointQuery)、范围查询(RangeQuery)、最近邻查询(NearestNeighborQuery)及k-近邻查询(KNNQuery)。点查询:在数据空间S中查找到与给定查询点q相同的目标对象p。形式化描述为:Rpoint(q)={p|p∈S,p=q}范围查询:对于给定的查询点q及阀值r,在数据空间S中查找到满足d(p,q)≤r的所有目标对象p。形式化描述为:Rrange(q,r)={p|p∈S,d(p,q)≤r}最近邻查询:在数据空间S中查找到与给定查询点q最近的目标对象p。形式化描述为:k-近邻查询:在数据空间S中查找到与给定查询点q最近的k个目标对象p。形式化描述为:处理点查询时,如图7所示(以二维空间为例),首先根据查询点的坐标确定其金字塔数和金字塔高度,进一步计算出查询点的索引关键字,然后根据索引关键字在B+树中查找,获得一个点的集合(图中黑线上点的集合),将此集合中的点依次与查询点做比较,最后输出结果。处理范围查询时,如图8所示(以二维空间为例),首先根据查询点坐标及其查询半径得出查询范围(图中的圆形区域),并判断是否与数据空间内数据聚集区相交,如果存在数据聚集区与查询范围相交,确定聚集区内每个金字塔与查询范围相交的两个边界索引关键字ylow和yhigh,根据这两个索引关键字在B+树种进行范围查找,获得一个点集(图中阴影区域内的点集),然后精确判断点集中的数据点是否属于查询范围,最后输出结果。处理最近邻查询时,首先进行点查询,如果找到结果则终止查询;如果没有找到相同点,则确定一个足够小的查询半径r进行范围查询,若输出1个结果终止查询,否则缩小或增大查询半径进行范围查询,直到找到最近邻数据点。处理KNN查询时,搜索过程从一个查询半径为r的范围查询开始,如果范围查询结果的个数小于k,增大查询半径,使之覆盖更多的高维数据点,如此迭代,直到结果集中数据点的个数等于k个。以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术 人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1