[发明专利]一种层次重叠并行化社区发现方法在审
申请号: | 201811048015.X | 申请日: | 2018-09-10 |
公开(公告)号: | CN109345239A | 公开(公告)日: | 2019-02-15 |
发明(设计)人: | 许国艳;王诗玉;庄天益;戚荣志;平萍 | 申请(专利权)人: | 河海大学 |
主分类号: | G06Q20/38 | 分类号: | G06Q20/38;G06Q20/42 |
代理公司: | 南京苏高专利商标事务所(普通合伙) 32204 | 代理人: | 李玉平 |
地址: | 211100 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 社区发现 算法 并行化 重叠社区 局部模块 社交网络 发现 并行化处理 实验对比 重叠结构 更新 单机 社区 应用 保证 | ||
1.一种GraphLab框架下的层次重叠并行化社区发现方法,其特征在于,包含以下步骤:
步骤1:初始化图中的最小极大团和剩余节点,每个最小极大团和剩余节点都赋予一个标签和标签隶属度初值指向自身id号;
步骤2:GraphLab启动引擎,所有的节点被激活,每个节点并发的执行其节点程序,每个程序都包括GAS操作;
步骤3:将具有相同标签的节点划分为一个社区,并统计在多个社区存在的重叠节点;
步骤4:在层次重叠社区发现算法中,先对社区的层次结构进行发现,然后结合已经得到的重叠社区进行合并,得到最终的层次重叠社区。
2.如权利要求1所述的GraphLab框架下的层次重叠并行化社区发现方法,其特征在于,所述步骤2的具体操作步骤如下:
步骤2.1:Gather阶段:收集邻居的标签,判断当前迭代步数t的奇偶性来确定当前采用同步还是异步迭代方式,若为偶数,则异步迭代,若为奇数,则同步迭代,继续利用gather函数对当前节点收集它所有邻居的标签,将标签相同的节点对应的隶属度进行计算,当前节点对应的各个标签的隶属度的值;
步骤2.2:Apply阶段:获取Gather阶段统计的各个节点的拥有的标签,进行筛选,更新节点标签;
步骤2.3:Scatter阶段:根据Apply阶段中顶点是否更新来判断是否激活邻居顶点,进而根据是否满足收敛条件来判断是否进入下一次迭代。
3.如权利要求1所述的GraphLab框架下的层次重叠并行化社区发现方法,其特征在于,所述步骤4的具体操作步骤如下:
步骤4.1:初始化每个节点,令每个节点的community id指向自身id号;
步骤4.2:每个节点并发的执行其节点程序,每个程序都包括GAS操作;
步骤4.3:将通过步骤4.1和步骤4.2得到的层次社区作为基础社区,通过标签传播和标签计算,将每个节点定义为:
lable(v)={(c1,s1),(c2,s2),(ci,si)}
其中label(v)代表节点v的标签集合,ci代表节点v所隶属的社区ID,si代表节点v对社区ci的隶属度;
在节点v的传播过程中,将label(v)发送给节点v的所有邻居节点,记邻居节点的集合为Nbs(v),记发送的标签集合为Lsend,同时将Nbs(v)中的各个点的label,记为Lrecieve,发送给节点v即Lrecieve={Lt1,Lt2,…,Ltm},其中t1,t2,…tm∈Nbs(v);对于节点v接收到的邻居节点的标签集合Lrecieve中,得到邻居节点的所有社区ID,即:
表示节点v获得的邻居标签的所有社区ID集合,对于节点v的隶属度的计算,如以下公式所示:
st(c,v)表示在第t次迭代时节点v的所有邻居节点对其所在社区的隶属度,对于隶属于同一个社区的邻居节点的标签,将它们的隶属度相加,并归一化,从而得到重叠社区,将基础社区和重叠社区进行相似度比较,将通过步骤3统计的对应的重叠节点加入到相似度大于给定阈值的基础社区,最后得到整个网络图的层次重叠社区。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于河海大学,未经河海大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811048015.X/1.html,转载请声明来源钻瓜专利网。