[发明专利]一种分布式计算图节点相似度的方法有效
申请号: | 201410323742.8 | 申请日: | 2014-07-09 |
公开(公告)号: | CN104158840B | 公开(公告)日: | 2017-07-07 |
发明(设计)人: | 申德荣;冯朔;寇月;聂铁铮;王振华;于戈 | 申请(专利权)人: | 东北大学 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;G06F17/30;H04L12/58 |
代理公司: | 沈阳东大知识产权代理有限公司21109 | 代理人: | 梁焱 |
地址: | 110819 辽宁*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种分布式计算图节点相似度的方法,属于计算机数据挖掘领域,包括采用主从模式搭建分布式计算平台;主计算机读入对象数据,建立图模型并发送给各子计算机;主计算机进行任务划分,并将各子任务分配给各子计算机;各子计算机计算其各任务节点分别传递给图模型中节点对的相似度增量计算值;主计算机计算偏移系数并分别发送给对应的各子计算机;子计算机对本地各任务节点的相似度增量计算值进行修正,并将修正后的本地各任务节点的相似度增量进行求和后传送给主计算机;主计算机对图模型中各节点对的相似度进行整合,最终得到图模型中各个节点对的相似度;该方法相比于传统SimRank计算方法,传输代价低,计算时间短,效率明显提高。 | ||
搜索关键词: | 一种 分布式 计算 节点 相似 方法 | ||
【主权项】:
一种分布式计算图节点相似度的方法,其特征在于:包括如下步骤:步骤1:采用主从模式搭建分布式计算平台;搭建的分布式环境中共有N台计算机,将其中一台计算机作为主计算机,其余N‑1台计算机均作为子计算机;步骤2:主计算机读入对象数据,建立图模型并发送给分布式计算平台中的每台子计算机;主计算机以对象为节点,对象间关系为节点之间的边,建立图模型并将该图模型发送给分布式环境中每台子计算机;步骤3:以该图模型的所有节点为任务划分对象,主计算机进行任务划分,并将划分后的各子任务及迭代次数分配给各子计算机;子任务由所划分的不同节点构成;子任务中的不同节点,称作任务节点;步骤4:根据接收的任务,子计算机计算其各任务节点分别传递给图模型中的各个节点对的相似度增量计算值;相似度增量计算值为不考虑所得到的游历是否为首遇游历时,任务节点传递给对应节点对的相似度增量;对于单个任务节点m,对应的子计算机首先构建该节点的相似度增量计算值矩阵,大小为n×n,并将其中每个元素初始化为0,该矩阵用于存放该节点传递给各相应节点对的相似度增量计算值;接下来采用广度优先算法,以该节点m为根节点进行广度优先搜索,将节点m在每一层所能到达的节点存储在集合Listk(m)中,则有Listk(m)={(j,Pk[m,j])},k=1,…,K (2)其中Listk(m)表示以节点m为根节点,在第k层所能到达的图节点;j代表图中任意节点;Pk[m,j]表示从节点j出发,沿入边方向,经k步游走到达节点m的概率,称为节点m到节点j的路径值;以迭代方式计算该节点的相似度增量计算值,即Listk(m)根据Listk‑1(m)计算得到,Listk(m)中每个元素根据式(3)进行更新,Pk[m,j]=∑iPk‑1[m,Ii(j)]/|I(j)|,P0[m,m]=1,i=1,2,…,|I(j)| (3)根据公式(4)及集合Listk(m),计算该节点m在各层传递给节点对(j,j′)的相似度增量计算值v′m,k(j,j′),其中j′为图中任意节点;任务节点m所对应的子计算机将j′=j时的相似度增量计算值v′m,k(j,j′)发送给主计算机;将j′≠j时的相似度增量计算值v′m,k(j,j′)通过公式(5)累加到相似度增量计算值矩阵中;v′m,k(j,j′)=Pk[m,j]Pk[m,j′]Ck (4)其中,v′m,k(j,j′)表示节点m在第k层传递给节点对(j,j′)的相似度增量计算值,即节点对(j,j′)沿入边方向经过k步游走,在节点m相遇的游历值之和;C为衰减因子,是介于0,1之间的常数;s′m(j,j′)=∑kv′m,k(j,j′) (5)其中,s′m(j,j′)表示该任务节点m带给节点对(j,j′)的相似度增量计算值;当迭代k=K次以后,迭代停止,相似度增量计算值矩阵存放的即为节点m传递给各节点对的相似度增量计算值;步骤5.主计算机计算各任务节点的偏移系数并分别发送给对应的各子计算机;偏移系数为用于对各任务节点的相似度增量计算值进行修正的系数;在所有子计算机完成步骤4后,主计算机根据接收到的每个子计算机发送的其各任务节点传递给节点对(j,j′),j′=j时的相似度增量计算值v′m,k(j,j′),建立集合Set={({x′,k′,y′},v′)},其中x′和y′均表示任意图节点,v′表示节点x′在第k′=1,2,…,K次迭代对节点对(y′,y′)的相似度增量计算值v′x′,k′(y′,y′),并用Set(x′,k′,y′)表示集合Set对应的元素v′=v′x′,k′(y′,y′);构建集合Sco={({x,k,y},v)},其中x和y均表示任意图节点,v表示以节点x为起点,经过k步游走,在节点y发生首遇的游历值之和vx,k(y,y),并用Sco(x,k,y)表示集合Sco对应的元素v=vx,k(y,y);下面介绍集合Sco的更新方法:以k=1,2,…,K为迭代顺序更新集合Sco,在第k‑1次迭代计算Sco(x,k‑1,y)全部完成后,才进行第k次迭代计算Sco(x,k,y),其中单个元素Sco(x,k,y)计算方法如下:A.若k=1,则Sco(x,k,y)=Set(x,k,y),则转去执行步骤C;否则执行步骤B;B.Sco(x,k,y)通过从集合Sco中查找出元素Sco(x,k1,p)与从集合Set中查找出元素Set(p,k2,y),且满足k1+k2=k,p为在集合Sco和集合Set中同时出现的节点,根据公式(6)计算得到偏差v″x,k(y,y),公式(6)如下:vx,k′′(y,y)=ΣpΣk1+k2=kvx,k1(p,p)vp,k2′(y,y)---(6)]]>再通过公式(7)计算得到Sco(x,k,y),公式(7)如下:Sco(x,k,y)=(Set(x,k,y)-vx,k′′(y,y))2---(7)]]>C.结束;集合Sco更新完毕后,接下来通过公式(8)计算各个任务节点的偏移系数,δy=ΣxΣkSco(x,k,y)---(8)]]>δy为节点y的偏移系数,主计算机依据根节点的对应关系,将该偏移系数发送给相应的子计算机;步骤6.子计算机接收到其各任务节点的偏移系数之后对本地各任务节点的相似度增量计算值进行修正,并将修正后的本地各任务节点的相似度增量进行求和后传送给主计算机;子计算机根据公式(9)对步骤4求得的本地相似度增量计算值进行修正,即s(j,j′)=∑ys′y(j,j′)(1‑δy) (9)其中s(j,j′)表示节点对(j,j′)的相似度,sy′(j,j′)表示节点y传递给节点对(j,j′)的相似度增量计算值,其为不考虑所得到的游历是否为首遇游历的计算结果;δy表示任务节点y的偏移系数,其用于对任务节点y的相似度增量计算值进行修正;求和符号内s′y(j,j′)(1‑δy)整体表示节点y传递给节点对(j,j′)的相似度增量,为修正后的节点y对应矩阵中的记录;步骤7:根据从各子计算机接收的各节点的相似度增量,主计算机对图模型中各节点对的相似度进行整合,最终得到图模型中各个节点对的相似度;主计算机接收到所有子计算机发送的各节点的相似度增量后,将对应节点对的相似度增量相加,得到每个节点对的相似度值,再将每个节点与其自身的相似度修正为1.0。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东北大学,未经东北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410323742.8/,转载请声明来源钻瓜专利网。