基于动力距离更新的社区检测方法技术

技术编号:18446238 阅读:27 留言:0更新日期:2018-07-14 10:55
本发明专利技术公开一种基于动力同步距离更新的社区检测方法,实现步骤包括:构建社会网络;初始化社会网络中的社区;初始化社会网络中相邻节点之间边的距离;根据边上已有的距离合并与分裂社区;更新社会网络中每条边的距离;判断社会网络中每条边的距离是否全部为0或者1,若是确定社会网络中最终社区,否则返回根据边上已有的距离合并与分裂社区。本发明专利技术的检测社区方法将距离动力学与层次聚类中的合并与分裂的思想相融合,能够有效应用于社会网络社区的检测,提高了社会网络社区检测结果的准确度。

Community detection method based on dynamic distance updating

The present invention discloses a community detection method based on dynamic synchronous distance updating. The implementation steps include: building social network, initializing community in social network, initializing the distance between adjacent nodes in social network, merging and splitting the community area according to the distance on the side; updating the distance from each side in the social network. Leave; determine whether the distance to each side of the social network is 0 or 1, and if the final community in the social network is determined, it returns to merge and split the community on the basis of the distance on the side. The detection community method of this invention combines the idea of combination and split between distance dynamics and hierarchical clustering. It can be applied to the detection of social network community effectively and improve the accuracy of social network community detection results.

【技术实现步骤摘要】
基于动力距离更新的社区检测方法
本专利技术属于计算机
,更进一步涉及社会网络计算
中的一种基于动力距离更新的社区检测方法。本专利技术可以在不需要任何额外输入参数的情况下,快速高效地从大规模社会网络中检测出有意义的社区结构,为进一步挖掘具有商业价值的信息提供技术支持。
技术介绍
由于社会网络的实用性和普遍性,使得对大规模社会网络的研究成为现阶段一个热点的科学问题,在社会网络中最显著的特征是社区,即社团结构。在研究过程中,我们把社交关系建模成图结构,社交关系中的人对应着图中的节点,社交关系中人与人之间的朋友关系对应着图中的边,这样我们可以利用图进一步进行深入地分析,发现社会网络中的社区结构。在DBLP论文合著网络中,论文作者代表节点,作者之间的合著关系用边表示,网络中的一个社区表示这些作者之间的论文合著数量较多,他们研究领域更为相近。在线社交媒体中,用户被视为节点,用户与用户之间的好友关系被视为边,位于同一社区内的好友之间关系更为密切。邵俊明等人在其发表的论文“CommunityDetectionbasedonDistanceDynamics”(ACMSIGKDDConferencesonKnowledgeDiscoveryandDataMining2015)中公开了一种基于动力学的社团检测方法Attractor。该方法以迭代地方式不断更新网络中边的距离。该方法的步骤为:步骤1,输入网络紧凑参数;步骤2,计算网络中每条边的就初始距离;步骤3,扫描网络中的每一条边,根据网络的拓扑结构和紧凑参数计算与该边的两个端点相邻的邻居节点对该边距离的影响,从而更新边的距离;步骤4、重复步骤(3)直到图中每条边的距离不再发生变化。该方法存在不足之处是:Attractor最终的检测出的社区个数以及社区的大小依赖于一个手动输入参数,这使得该方法缺乏自动性。由于Attractor过度依赖于局部结构会产生距离震荡的现象,使得迭代次数过多,该方法较为耗时。通常情况下,Attractor总是将网络划分为很多的小社区。西安电子科技大学在其申请的专利文献“基于振荡器相位同步的符号网络社区检测方法”(专利申请号201310392893.4,公开号CN103475539)中公开一种基于改进的Kuramoto动力学模型的社区检测方法。该方法的步骤为:步骤1,根据待网络中节点之间的关系生成邻接矩阵;步骤2,随机产生N个服从均匀分布的随机数,将所产生的随机数一一对应地设为网络中N个节点的初始相位;步骤3,使用改进的Kuramoto动力学模型更新节点的相位;步骤4,根据每个节点更新前后的相位值差判断节点的相位达到稳定;步骤5,统计各个子区间节点个数。若子区间节点个数大于等于阈值M,则将该组内所有子区间对应的节点作为网络的一个社区;否则,该组内所有节点为网络的重叠节点。该方法存在的不足在于,对于社区间有正连接的网络最终稳定节点相位不能达到一致,导致社区检测的速度慢。另外,该方法检测出来的社区个数依赖于阈值M,这样的阈值会影响到最终检测结果的准确性。
技术实现思路
本专利技术的目的在于针对上述已有技术的不足,提出一种基于动力同步距离更新的社区检测方法,在社会网络数据上检测社区,得到能够满足一定正确率的社区结构。实现本专利技术目的的思路是,首先使用人与人之间的关系构建一个由节点和边构成的社会网络;然后使用Jaccard距离计算公式计算社会网络中每条边的距离,并把每个节点视为一个社区;其次,根据社会网络的拓扑结构以迭代的方式更新社会网络中每条边的距离,距离更新同时社区与社区会发生合并与分裂,直到社会网络中每一条边的距离要么为0要么为1时迭代终止;最后求所有由距离为0的边构成的最大联通分量,每一个最大联通分量是一个最终的社区。为实现上述目的,本专利技术的技术方案包括如下步骤:(1)构建社会网络:(1a)将社交关系中的每一个用户作为社会网络中的一个对应节点,并赋予一个唯一的节点标号;(1b)将社交关系中两个用户之间的关系作为社会网络中对应的边,从而构建出社会网络中节点与节点之间连接的拓扑结构;(2)初始化社会网络中的社区:将社会网络中的每个节点初始化为一个对应的社区,并且将节点标号作为社区标号;(3)初始化社会网络中相邻节点之间边的距离:根据社会网络中的拓扑结构,使用Jaccard距离计算公式,计算社会网络中每条边的距离,将计算的结果作为社会网络中每条边的初始距离;(4)合并与分裂社区:(4a)将社会网络中的所有距离不大于0的边的两个端点所在的社区合并为一个社区;(4b)将社会网络中所有距离不小于1的边的两个端点所在的社区分裂开来;(5)更新社会网络中每条边的距离:(5a)将社会网络中与每一条距离介于0到1之间的边的两个端点相邻的所有节点分成三类集合;(5b)根据当前迭代过程中每条边的距离,分别计算每类集合分别对每条边距离产生的影响;(5c)将三类集合分别对每条边距离产生的影响与当前迭代过程中每条边的距离相加,用相加后的结果更新每条边的距离;(6)判断社会网络中每条边的距离是否全部为0或者1,若是,则执行步骤(7);否则,执行步骤(4);(7)确定最终社区:求社会网路中所有距离为0的边所构成的最大联通分量,将每一个最大联通分量作为一个最终的社区。本专利技术与现有的技术相比具有以下优点:第一,由于本专利技术采用了根据边上已有的距离合并与分裂现有社区用来得到新社区的方法,克服了现有技术中存在的社区检测速度慢、迭代次数过多的问题,使得本专利技术能够快速地从大规模社会网络中检测出社区。第二,由于本专利技术采用了使用社会网络固有的拓扑结构更新社会网络中每条边的距离的方法,使用该方法更新距离的过程中完全依赖网络的拓扑结构,克服了现有技术参数依赖性缺点,使得本专利技术能够有效的避免人为因素的影响。第三,通过分析本专利技术检测出的社区结果可知,本专利技术可以检测出丰富的社区,有效的避免了将整个网络中的节点划分为很多的小社区或者将整个网络中的所有节点划分为一个社区的极端情形。附图说明图1是本专利技术的流程图;图2是本专利技术在toy网络中检测社区的过程示意图;图3是本专利技术对空手道网络检测出的社区示意图;图4是本专利技术与现有的其他检测社区方法比较的示意图。具体实施方式下面结合附图对本专利技术做进一步的描述。参照图1,对本专利技术的具体做进一步的描述。步骤1,构建社会网络。将社交关系中的每一个用户作为社会网络中的一个对应节点,并赋予一个唯一的节点标号。将社交关系中两个用户之间的关系作为社会网络中对应的边,从而构建出社会网络中节点与节点之间连接的拓扑结构。步骤2,初始化社会网络中的社区。将社会网络中的每个节点初始化为一个对应的社区,并且将节点标号作为社区标号。步骤3,初始化社会网络中相邻节点之间边的距离。根据社会网络中的拓扑结构,使用Jaccard距离计算公式,计算社会网络中每条边的距离,将计算的结果作为社会网络中每条边的初始距离。所述的Jaccard距离计算公式如下:其中,d(x,y)表示社会网络中第x个节点与其相邻的第y个节点所构成边的距离;N(x)表示由社会网络中第x个节点与第x个节点相邻的所有节点构成的集合;N(y)表示由社会网络中第y个节点与第y个节点相邻的所有节点构成的集合;∩表示求交集操作;∪表示求并集操作;||本文档来自技高网
...

【技术保护点】
1.一种基于动力同步距离更新的社区检测方法,其特征在于,该方法将每次迭代过程中每条边的距离与社会网络的拓扑结构计算得到的值,作为下次迭代每条边的距离,属于同一社区的节点之间边的距离会动态缩短,不属于同一社区的节点之间边的距离会动态增长,该方法包括如下步骤:(1)构建社会网络:(1a)将社交关系中的每一个用户作为社会网络中的一个对应节点,并赋予一个唯一的节点标号;(1b)将社交关系中两个用户之间的关系作为社会网络中对应的边,从而构建出社会网络中节点与节点之间连接的拓扑结构;(2)初始化社会网络中的社区:将社会网络中的每个节点初始化为一个对应的社区,并且将节点标号作为社区标号;(3)初始化社会网络中相邻节点之间边的距离:根据社会网络中的拓扑结构,使用Jaccard距离计算公式,计算社会网络中每条边的距离,将计算的结果作为社会网络中每条边的初始距离;(4)合并与分裂社区:(4a)将社会网络中的所有距离不大于0的边的两个端点所在的社区合并为一个社区;(4b)将社会网络中所有距离不小于1的边的两个端点所在的社区分裂开来;(5)更新社会网络中每条边的距离:(5a)对于社会网络中距离介于0到1之间的每一条边,将与其相邻的所有节点分成三类集合;(5b)根据当前迭代过程中每条边的距离,分别计算每类集合分别对每条边距离产生的影响;(5c)将三类集合分别对每条边距离产生的影响与当前迭代过程中每条边的距离相加,用相加后的结果更新每条边的距离;(6)判断社会网络中每条边的距离是否全部更新为0或者1,若是,则执行步骤(7);否则,执行步骤(4);(7)确定最终社区:求社会网路中所有距离为0的边所构成的最大联通分量,将每一个最大联通分量作为一个最终的社区。...

【技术特征摘要】
1.一种基于动力同步距离更新的社区检测方法,其特征在于,该方法将每次迭代过程中每条边的距离与社会网络的拓扑结构计算得到的值,作为下次迭代每条边的距离,属于同一社区的节点之间边的距离会动态缩短,不属于同一社区的节点之间边的距离会动态增长,该方法包括如下步骤:(1)构建社会网络:(1a)将社交关系中的每一个用户作为社会网络中的一个对应节点,并赋予一个唯一的节点标号;(1b)将社交关系中两个用户之间的关系作为社会网络中对应的边,从而构建出社会网络中节点与节点之间连接的拓扑结构;(2)初始化社会网络中的社区:将社会网络中的每个节点初始化为一个对应的社区,并且将节点标号作为社区标号;(3)初始化社会网络中相邻节点之间边的距离:根据社会网络中的拓扑结构,使用Jaccard距离计算公式,计算社会网络中每条边的距离,将计算的结果作为社会网络中每条边的初始距离;(4)合并与分裂社区:(4a)将社会网络中的所有距离不大于0的边的两个端点所在的社区合并为一个社区;(4b)将社会网络中所有距离不小于1的边的两个端点所在的社区分裂开来;(5)更新社会网络中每条边的距离:(5a)对于社会网络中距离介于0到1之间的每一条边,将与其相邻的所有节点分成三类集合;(5b)根据当前迭代过程中每条边的距离,分别计算每类集合分别对每条边距离产生的影响;(5c)将三类集合分别对每条边距离产生的影响与当前迭代过程中每条边的距离相加,用相加后的结果更新每条边的距离;(6)判断社会网络中每条边的距离是否全部更新为0或者1,若是,则执行步骤(7);否则,执行步骤(4);(7)确定最终社区:求社会网路中所有距离为0的边所构成的最大联通分量,将每一个最大联通分量作为一个最终的社区。2.根据权利要求1所述的基于动力同步距离更新的社区检测方法,其特征在于,步骤(3)中所述的Jaccard距离计算公式如下:其中,d(x,y)表示社会网络中第x个节点与其相邻的第y个节点所构成边的距离;N(x)表示由社会网络中第x个节点与第x个节点相邻的所有节点构成的集合;N(y)表示由社会网络中第y个节点与第y个节点相邻的所有节点构成的集合;∩表示求交集操作;∪表示求并集操作;||表示求集合中元素的个数操作。3.根据权利要求1所述的基于动力同步距离更新的社区检测方法,其特征在于,步骤(4a)中所述的将社会网络中的所有距离不大于0的边的两个端点所在的社区合并为一个社区是指,将所有位于上述边的两个端点所在社区之间的边的距离置为0,将所含节点个数较少的社区内的节点社区标号改为所含节点个数较多的社区内的节点社区标号,以此合并两个社区为同一个社区。4.根据权利要求1所述的基于动力同步距离更新的社区检测方法,其特征在于,步骤(4b)中所述的将社会网络中所有距离不小于1的边的两个端点所在的社区分裂开来是指,将所有位于上述边的两个端点所在社区之间的边的距离置为1。5.根据权利要求1所述的基于动力同步距离更新的社区检测方法,其特征在于,步骤(5a)中所述的三类集合是指,直接邻居集合,公共邻居集合,独家邻居集合三类集合;其中,所述的直接邻居集合是指社会网络中每一条边的两个端点构成的集合;所述的公共邻居集合是指同时与社会网络中每一条边的两个端点都相邻的所有节点构成的集合;所述的独家邻居集合是指与社会网络中每一条边的两个端点中的一个端点相邻,但与另一个不相邻的所有节点构成的集合。6.根据权利要求1所述的基于动力同步距离更新的社区检测方法,其特征在于,步骤(5b)中所述的计算每类集合对每条边距离产生的影响的公式如下:A.直接邻居集合对边距离产生的影响的计算公式如下,其中,表示在第t次迭代过程中直接邻居集合De,对第x个节点与其相邻的第y个节点所构成边的距离产生的影响;sin表示正弦操作;d(t)(x,y)表示社会网络中第x个节点与其相邻的第y个节点所构成边在第t次迭代的距离;deg(x)表示与社会网络中第x个节点相邻的节点总数;deg(y)表示与社会网络中第y个节点相邻的节点总数;B.公共邻居集合对边距离产生...

【专利技术属性】
技术研发人员:黄健斌边青全周瑜
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1