发明名称 一种基于混合层次聚类的RDF数据平衡分割算法
摘要 一种基于混合层次聚类的RDF数据平衡分割算法,包括如下步骤:通过对唯一属性值节点的合并和高邻域节点的移除来压缩RDF聚类数据规模;通过基于邻域节点的相似性度量和基于交互边的相似性度量计算RDF图中节点和数据块儿间的相似性;通过逐层AP聚类发现图中所有潜在的聚类中心和数据块儿,实现图的粗化;通过平衡调整算法实现RDF图分割的平衡;最后通过K-means聚类算法实现指定数目的数据分割。本发明实施例针对RDF数据有向图的本质,将AP聚类与K-means聚类相结合实现RDF数据基于图的平衡分割。本发明有效地提升网络接入服务评估准确性、动态响应性能和连接时间的预测准确度。
申请公布号 CN105117488A 申请公布日期 2015.12.02
申请号 CN201510603743.2 申请日期 2015.09.19
申请人 大连理工大学 发明人 陈志奎;冷泳林;程心如
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 大连理工大学专利中心 21200 代理人 关慧贞;梅洪玉
主权项 一种基于混合层次聚类的RDF数据平衡分割算法,包括如下步骤:步骤1:基于节点合并和移除的RDF数据预处理以RDF图节点压缩和节点移除为基础的数据预处理,节点压缩针对唯一属性值节点,节点移除针对高邻域节点,降低RDF图中参与聚类节点数目;1)节点合并给定RDF图G=(V,E),其中V=V<sub>e</sub>∪V<sub>l</sub>表示图中节点的集合,V<sub>e</sub>代表实体节点,V<sub>l</sub>表示属性值节点;E={e(v<sub>i</sub>,v<sub>j</sub>)|v<sub>i</sub>,v<sub>j</sub>∈V}=E<sub>r</sub>∪E<sub>a</sub>表示有向边的集合,其中E<sub>r</sub>代表关系边,E<sub>a</sub>代表属性边;在RDF有向图中,如果属性边E<sub>a</sub>所对应的属性值节点v<sub>j</sub>∈V<sub>l</sub>只属于指向它的主语节点v<sub>i</sub>∈V<sub>e</sub>,则节点v<sub>j</sub>在数据分割时必然要与v<sub>i</sub>划分到同一存储节点;针对这类节点,将节点v<sub>j</sub>与指向它的主语节点v<sub>i</sub>合并成一个节点;2)节点移除在RDF图中,节点邻域分布并不是均匀的,有一部分节点的邻域数目非常高;节点邻域数目越高,和其关联的节点就越多,当查询时这些节点被查询的几率越高,因此产生的网络通信代价越高;为降低存储节点间通信代价,在对RDF图进行分割前,将节点度数超过一定阈值的节点从RDF图中移除,待图分割结束后加这些高度数节点分别存储到与之相关的存储节点上,用存储代价换取通信代价;步骤2:基于邻域和交互边的两种相似性度量方法:1)基于邻域相似性度量:如果一个节点的邻域节点同另一个节点相连,则认为这两个节点相似性大;同时,一个节点的邻域节点同另一个节点的远近关系也影响着相似度的大小;路径长度表示两个节点远近;设N<sub>r</sub>(v)是节点v在半径为r的邻域集合,邻域内任意节点q与节点v的最短距离为l,节点q到节点v的权重w<sub>qv</sub>=1/l;节点q到v的权重和路径长度有关,路径长度越长,则权重越小,即该点与v的相似度越小;计算节点u到任意节点v的相似度如公式(1):<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>s</mi><mi>i</mi><mi>m</mi><mi>i</mi><mi>l</mi><mi>a</mi><mi>r</mi><mi>i</mi><mi>t</mi><mi>y</mi><mrow><mo>(</mo><mi>u</mi><mo>,</mo><mi>v</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msub><mi>&Sigma;</mi><mrow><mi>k</mi><mo>&Element;</mo><msub><mi>inter</mi><mi>r</mi></msub><mrow><mo>(</mo><mi>u</mi><mo>,</mo><mi>v</mi><mo>)</mo></mrow></mrow></msub><msub><mi>w</mi><mrow><mi>k</mi><mi>v</mi></mrow></msub></mrow><mrow><msub><mi>&Sigma;</mi><mrow><mi>k</mi><mo>&Element;</mo><msub><mi>N</mi><mi>r</mi></msub><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow></mrow></msub><msub><mi>w</mi><mrow><mi>k</mi><mi>u</mi></mrow></msub></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000806627900000011.GIF" wi="773" he="167" /></maths>其中N<sub>r</sub>(u)和N<sub>r</sub>(v)是节点u,v的半径为r的邻域集合,inter<sub>r</sub>(u,v)=N<sub>r</sub>(u)∩N<sub>r</sub>(v)表示两个节点邻域的交集;2)基于交互边相似性度量交互边是指位于两个不同集合的节点间的连接边;RDF图分割的一个目的是使分割后的交互边最小,混合层次聚类算法中从第二层聚类开始;以交互边作为两个聚类数据块儿间的权重,衡量两个数据块儿间的相似度,如果数据块儿间交互边越多,代表两个数据块儿相似度越大,否则越小;给定两个数据块C<sub>i</sub>和C<sub>j</sub>,cut(C<sub>i</sub>,C<sub>j</sub>)表示两个数据块内节点间的交互边数目,cut<sub>min</sub>(C<sub>k</sub>)和cut<sub>max</sub>(C<sub>k</sub>)分别代表所有数据块间最小交互边和最大交互边数目,则两个数据块相似性计算如公式(2)<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>s</mi><mi>i</mi><mi>m</mi><mi>i</mi><mi>l</mi><mi>a</mi><mi>r</mi><mi>i</mi><mi>t</mi><mi>y</mi><mrow><mo>(</mo><msub><mi>C</mi><mi>i</mi></msub><mo>,</mo><msub><mi>C</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mi>c</mi><mi>u</mi><mi>t</mi><mrow><mo>(</mo><msub><mi>C</mi><mi>i</mi></msub><mo>,</mo><msub><mi>C</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>-</mo><msub><mi>cut</mi><mi>min</mi></msub><mrow><mo>(</mo><msub><mi>C</mi><mi>k</mi></msub><mo>)</mo></mrow></mrow><mrow><msub><mi>cut</mi><mi>max</mi></msub><mrow><mo>(</mo><msub><mi>C</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>-</mo><msub><mi>cut</mi><mi>min</mi></msub><mrow><mo>(</mo><msub><mi>C</mi><mi>k</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000806627900000021.GIF" wi="1213" he="150" /></maths>步骤3:基于AP聚类算法的多层次聚类:AP聚类算法通过迭代更新吸引度矩阵R=[r(i,k)]与归属度矩阵A=[a(i,k)],逐步确定高质量聚类中心,吸引度矩阵和归属度矩阵更新规则如下:用归属度矩阵与相似度矩阵S=[s(i,k)]更新吸引度矩阵R:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>r</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mi>s</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>k</mi><mo>)</mo></mrow><mo>-</mo><munder><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow><mrow><msup><mi>k</mi><mo>&prime;</mo></msup><mo>&NotEqual;</mo><mi>k</mi></mrow></munder><mo>{</mo><mi>a</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><msup><mi>k</mi><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>+</mo><mi>s</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><msup><mi>k</mi><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>}</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000806627900000022.GIF" wi="821" he="94" /></maths>用吸引度矩阵R更新归属度矩阵A:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>a</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mi>min</mi><mo>{</mo><mn>0</mn><mo>,</mo><mi>r</mi><mrow><mo>(</mo><mi>k</mi><mo>,</mo><mi>k</mi><mo>)</mo></mrow><mo>+</mo><munder><mo>&Sigma;</mo><mrow><msup><mi>i</mi><mo>&prime;</mo></msup><mo>&NotElement;</mo><mo>{</mo><mi>i</mi><mo>,</mo><mi>k</mi><mo>}</mo></mrow></munder><mi>m</mi><mi>a</mi><mi>x</mi><mo>{</mo><mn>0</mn><mo>,</mo><mi>r</mi><mrow><mo>(</mo><msup><mi>i</mi><mo>&prime;</mo></msup><mo>,</mo><mi>k</mi><mo>)</mo></mrow><mo>}</mo><mo>}</mo></mrow>]]></math><img file="FDA0000806627900000023.GIF" wi="900" he="131" /></maths><maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>a</mi><mrow><mo>(</mo><mi>k</mi><mo>,</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><munder><mo>&Sigma;</mo><mrow><msup><mi>i</mi><mo>&prime;</mo></msup><mo>&NotEqual;</mo><mi>k</mi></mrow></munder><mi>m</mi><mi>a</mi><mi>x</mi><mo>{</mo><mn>0</mn><mo>,</mo><mi>r</mi><mrow><mo>(</mo><msup><mi>i</mi><mo>&prime;</mo></msup><mo>,</mo><mi>k</mi><mo>)</mo></mrow><mo>}</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000806627900000024.GIF" wi="931" he="123" /></maths>其中,s(i,k)为点i到点k的相似度,表明点k作为点i的聚类中心的合适程度;r(i,k)表示点k对点i的吸引度,反映点k通过与其他数据点k'竞争,作为适合数据点i的聚类中心的程度;a(i,k)表示点i对点k的归属度,反映数据点i选择数据点k作为其聚类中心的适合程度;当i=k时,s(k,k)由输入的偏向参数p(k)设置,p(k)越大,数据点k越有可能被选为聚类中心,聚类个数越多;反之,p(k)越小,聚类个数越少;在执行过程中,吸引度矩阵和归属度矩阵需要迭代更新,每次更新的时间复杂度为O(n<sup>2</sup>),算法迭代T次,时间复杂度为O(Tn<sup>2</sup>);RDF图分割的目的是将紧密连接的节点分配到一个存储节点,如果两个节点间的相似性越小,则这两个节点被分配到一个存储节点的可能性就越小;在执行AP聚类前,设定相似度矩阵中小于阈值δ的节点间的相似性为‑∞,提高时间性能;AP层次聚类算法步骤:输入:RDF图G=(V,E),聚类数目阈值T输出:聚类数据块C={C<sub>1</sub>,C<sub>2</sub>,...,C<sub>m</sub>},其中m≤T步骤:1)基于邻域相似度方法构建稀疏相似度矩阵S;2)在稀疏相似度矩阵S上执行AP聚类算法,产生m个数据块;3)如果m&gt;T,利用公式(2)计算数据块间相似度,生成新的相似度矩阵S;3)将S作为新的输入,重新执行2),直到m≤T;步骤4、层次聚类的平衡调整将大图分割成子图分布式存储到不同存储节点时,子图的大小规模均衡性影响查询效率,如果子图大小规模不均性,并行计算和查询效率会降低;为了确保分割均衡性,在AP聚类的每一层引入平衡调整算法;给定一个图G=(V,E),将图分割成k个划分P={P<sub>1</sub>,P<sub>2</sub>,…,P<sub>k</sub>},k个分割平衡性应满足1‑e<sub>1</sub>≤PB<sub>i</sub>≤1+e<sub>2</sub>,其中PB<sub>i</sub>=|V<sub>i</sub>|/m并且m=|V|/k;分割平行性越好,e<sub>1</sub>,e<sub>2</sub>值越小;平衡调整算法步骤:输入:聚类后的分割P={P<sub>1</sub>,P<sub>2</sub>,…,P<sub>k</sub>},e<sub>1</sub>,e<sub>2</sub>输出:平衡后分割P'={P<sub>1</sub>',P′<sub>2</sub>,…,P<sub>t</sub>'}步骤:1)分别计算聚类后k个分割的平行性PB={PB<sub>1</sub>,PB<sub>2</sub>,...,PB<sub>k</sub>}2)For p=1to kif PB<sub>i</sub>&lt;1‑e<sub>1</sub>merge(P<sub>i</sub>,P<sub>j</sub>),其中Cut(P<sub>i</sub>,P<sub>j</sub>)最大,且PB<sub>j</sub>&lt;1+e<sub>2</sub>else if PB<sub>i</sub>&gt;1+e<sub>2</sub>利用KL算法分割P<sub>i</sub>直到1‑e<sub>1</sub>≤P<sub>i</sub>'≤1+e<sub>2</sub>;步骤5:基于K‑means的图分割算法利用AP聚类逐层缩小图的规模,当得到一定规模数据块后,采用K‑means聚类实现最终数目的聚类分割;K‑means算法步骤:输入:数据块交互边矩阵S,最终分割数目k输出:分割集合C={C<sub>1</sub>,C<sub>2</sub>,...,C<sub>k</sub>}步骤:1)随机选择k个初始聚类中心C={c<sub>1</sub>,c<sub>2</sub>,...,c<sub>k</sub>}2)将其它数据块分配到和其相似度最小的聚类中心3)更新聚类中心①计算聚类C<sub>i</sub>的平均向量<img file="FDA0000806627900000041.GIF" wi="124" he="82" /><maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mi>S</mi><mrow><mo>(</mo><mover><msub><mi>v</mi><mi>i</mi></msub><mo>&OverBar;</mo></mover><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mrow><mo>|</mo><msub><mi>C</mi><mi>i</mi></msub><mo>|</mo></mrow></mfrac><munder><mo>&Sigma;</mo><mrow><msub><mi>v</mi><mi>k</mi></msub><mo>&Element;</mo><msub><mi>C</mi><mi>i</mi></msub></mrow></munder><mi>S</mi><mrow><mo>(</mo><msub><mi>v</mi><mi>k</mi></msub><mo>,</mo><msub><mi>v</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>,</mo><mo>&ForAll;</mo><msub><mi>v</mi><mi>j</mi></msub><mo>&Element;</mo><mi>V</mi></mrow>]]></math><img file="FDA0000806627900000042.GIF" wi="664" he="148" /></maths>②计算新的聚类中心c<sub>i</sub>'<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msubsup><mi>c</mi><mi>i</mi><mo>&prime;</mo></msubsup><mo>=</mo><msub><mi>argmin</mi><mrow><msub><mi>v</mi><mi>k</mi></msub><mo>&Element;</mo><msub><mi>C</mi><mi>i</mi></msub></mrow></msub><mo>||</mo><mi>s</mi><mrow><mo>(</mo><msub><mi>v</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>-</mo><mi>s</mi><mrow><mo>(</mo><mover><msub><mi>v</mi><mi>i</mi></msub><mo>&OverBar;</mo></mover><mo>)</mo></mrow><mo>||</mo></mrow>]]></math><img file="FDA0000806627900000043.GIF" wi="601" he="109" /></maths>③重复步骤2)和3),直到目标函数E收敛<maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><mi>E</mi><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>k</mi></munderover><munder><mo>&Sigma;</mo><mrow><msub><mi>v</mi><mi>k</mi></msub><mo>&Element;</mo><msub><mi>C</mi><mi>i</mi></msub></mrow></munder><msup><mrow><mo>||</mo><mi>s</mi><mrow><mo>(</mo><msub><mi>v</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>-</mo><mi>s</mi><mrow><mo>(</mo><mover><msub><mi>v</mi><mi>i</mi></msub><mo>&OverBar;</mo></mover><mo>)</mo></mrow><mo>||</mo></mrow><mn>2</mn></msup><mo>.</mo></mrow>]]></math><img file="FDA0000806627900000044.GIF" wi="561" he="149" /></maths>
地址 116024 辽宁省大连市甘井子区凌工路2号