一种基于混合层次聚类的rdf数据平衡分割算法
【技术领域】
[0001] 本发明涉及计算机技术领域,具体涉及一种基于混合层次聚类的RDF数据平衡分 割算法。
【背景技术】
[0002] RDF(resource description framework)是由WWW提出的对万维网上信息进行描 述的一个框架,它为Web上的各种应用提供信息描述规范。它用主语表示信息实体或概念, 谓语表示实体所具有的相关属性,宾语表示对应的属性值。这种简单的表述方式可以用来 表示Web上的任意被标识的信息,为在应用程序之间交换数据提供了互操作性。因此,RDF 数据被广泛应用于多种领域的元数据描述。如Wikipedia,DBLP等都用RDF表达它们的元 数据,IBM智慧地球的研究中也广泛采用RDF数据描述和集成语义。
[0003] 随着RDF数据的广泛应用,RDF数据规模急剧增加,原始的单机存储RDF数据在存 储和查询上遇到了性能瓶颈,分布式的存储方案是解决大规模RDF数据存储的一种常用的 解决方案。而RDF数据的分布式存储面临的一个关键问题是RDF的数据分割,不同的数据 分割方式在数据的查询性能和节点间通信上有很大差异。
[0004] 基于三元组的水平或垂直分割方式,在划分数据时忽略了元组间关联性,因此在 执行查询时,存储节点间需要传递大量信息完成子句的关联查询。
[0005] 基于图的分割方式可以将逻辑上相连的数据划分到一个存储节点,使大部分查询 子句的连接能够在存储节点内部完成,减少了存储节点间数据通信量,提高了数据并行查 询可能性。
[0006] 基于图的分割算法主要包括网格划分算法、谱聚类算法、启发式算法和多层划分 算法。网格划分根据统计和估算不同区域的网格单元个数,使各区域的网格单元个数尽可 能相等,从而得到较平衡的划分结果。由于网格划分方法所依据的不是结点间的连接信息, 而是一个已有的网格单元组结构,因此网格划分方法更适用于已知结点坐标信息的情况, 尽管也有算法能够根据结点的连接信息计算出结点的坐标,但是时间消耗太大。
[0007] 谱聚类算法建立在谱图理论基础上,与传统的聚类算法相比,具有它能在任意形 状的样本空间上聚类且收敛于全局最优解的优点,其本质是将聚类问题转化为图的最优划 分问题。该算法首先根据给定的样本数据集定义一个描述成对数据点相似度的矩阵,并且 计算矩阵的特征值和特征向量,然后选择合适的特征向量聚类不同的数据点。谱聚类算法 的聚类过程中需要求解矩阵的特征值与特征向量,处理大规模数据集的时候,求解过程不 但非常耗时,而且所需要的内存空间也非常大,面临着内存溢出的危险,对计算机内存容量 和处理速度都要求很高。
[0008]启发式方法不关注区域网格单元的个数,尽可能把连接关系密切的节点划分在一 个区域,常用的启发算法包括广度优先划分、KL/FM方法。广度优先划分方法从某一个结点 开始,通过加入相邻的结点来逐渐增大所在区域,并尽可能地把相连的结点都划分到同一 个区域。KL/FM算法是启发式划分方法中较为典型的算法。KL/FM方法本质上是对图的再 划分。即已经存在一个图的初始划分,或者是一个图的随机划分,在此基础之上进行较少次 数的节点调整,从而减少边割数。启发式方法对数据的初始化要求较高,因此要进行多次初 始化,从结果中选择最好的划分。
[0009] KL/FM算法通常只能处理IO4个顶点规模以内的图,为了处理规模较大的图, Kumar、Hendrickson、Hauck等人都各自提出了多层次的图划分框METIS。METIS算法包括 三个阶段:粗化,分割和反粗化。即首先通过粗化将大图缩减成可接受的小图,然后在小图 上采用一定的分割算法进行划分,划分好后再通过反粗糙化将小图上的划分还原成原图上 的划分。METIS可以处理百万规模以内的大图,为了处理更大规模的数据,Kumar等人又提 出了并行版本的METIS-ParMetis,其能处理千万顶点规模的大图。METIS框架执行图分割 时效率非常高,但算法执行前要对输入数据进行转换,此转换效率非常高。
[0010] Shang等人在层次聚类思想基础上,利用FS (Fast Sampling)算法在稀疏图上选 择图中代表性的数据点,然后利用谱聚类算法对这些数据点进行分割,最后对分割图进行 反粗化,但该算法没有考虑图分割平衡性问题。
[0011] 针对图的分割算法很多,但这些算法都有各自的局限性,当面临大规模RDF数据 时,这些算法并没有真正的从RDF数据本身特性出发,实现有效性分割存储。因此随着RDF 数据的大量增长,RDF数据应用范围扩大,一种有效的RDF分割是十分有必要的。
【发明内容】
[0012] 随着RDF数据应用领域的不断扩大,其数据规模越来越大,由于内存和CPU的限 制,单机存储和查询大规模RDF数据出现瓶颈,分布式存储是一种解决大规模RDF数据存储 和查询的有效方法,有效的数据分割是实现分布式存储的前提。本发明探究一种基于混合 层次聚类的RDF数据平衡分割算法,包括以下步骤:
[0013] 步骤1、基于节点合并和移除的RDF数据预处理;
[0014] 步骤2、基于邻域和交互边的两种相似性度量方法;
[0015] 步骤3、基于AP的多层次聚类;
[0016] 步骤4、层次聚类的平衡调整;
[0017] 步骤5、基于κ-means的图分割算法。
【附图说明】
[0018] 图1为混合层次聚类的RDF数据平衡分割算法框架图。
[0019] 图2为移除不同高度数节点的边割比例变化情况。
[0020] 图3为移除不同高度数节点算法执行效率。
[0021] 图4为平衡分割算法与FAP算法的边割比对比。
[0022] 图5为平衡分割算法与FAP算法的执行效率对比。
【具体实施方式】
[0023] 下面结合附图对本发明实施例做进一步说明。
[0024] 图1为混合层次聚类的RDF数据平衡分割算法框架图,本发明考虑RDF数据本身 特性,对于一个给定的RDF图,其图中节点分为资源节点和值节点两类,其中有部分值节点 只属于某一个资源节点,即资源节点存在一个属性,其值在RDF图中是唯一的,为了降低图 分割时的计算量,本发明将此类节点合并到其资源节点中,逻辑上合成一个数据点实现图 的压缩。另外,RDF图中高邻域节点严重影响分割和查询性能,因此本发明针对高邻域节点 进行移除处理,该方法对于降低边割比和分割执行效率效果显著。
[0025] RDF图分割需要计算节点间相似性,本发明基于分割时边割比的考虑,定义基于邻 域和交互边两种不同的节点相似度计算方法,这两种方法分别用于原始图和数据块儿顶点 图两种不同节点相似性的计算。初始时,对原始图采用基于邻域的节点相似度计算方法,当 对图粗化,图的顶点聚类成数据块儿后采用交互边相似度计算方法。
[0026] 算法执行首先采用AP聚类自动将联系紧密的节点聚类成一个数据块儿,由于 分布式存储最终制定存储节点数目,因此后继聚类可以根据实际计算能力和需求采用 k-means聚类实现最终指定数目的分割。
[0027] 具有步骤如下:
[0028] 1、一种基于混合层次聚类的RDF数据平衡分割算法,包括如下步骤:
[0029] 步骤1、基于节点合并和移除的RDF数据预处理;
[0030] 步骤2、基于邻域和交互边的两种相似性度量方法;
[0031] 步骤3、基于AP的多层次聚类;
[0032] 步骤4、层次聚类的平衡调整;
[0033] 步骤5、基于K-means的图分割算法。
[0034] 步骤1、基于节点合并和移除的RDF数据预处理:
[0035] 以RDF图节点压缩和节点移除为基础的数据预处理,节点压缩针对唯一属性值节 点,节点移除针对高邻域节点,降低RDF图中参与聚类节点数目。
[0036] 1)节点合并
[0037] 给定RDF图G= (V,E),其中V = VeU V :表示图中节点的集合,VeR表实体节点, V1表示属性值节点。E= R(VhVj)IvDVje V} =E1^U Ea表示有向边的集合,其中E/f戈表 关系边,Ea代表属性边。
[0038] 在RDF有向图中,如果属性边Ea所对应的属性值节点V V1只属于指向它的主 语节点Vi e V ^,则节点Vj在数据分割时必然要与V ;划分到同一存储节点。因此针对这类 节点,将节点Vj与指向它的主语节点V i合并成一个节点。
[0039] 2)节点移除
[0040] 在RDF图中,节点邻域分布并不是均匀的,