基于最小生成树的社交网络层次化社区发现方法及系统与流程

文档序号:15817759发布日期:2018-11-02 22:48阅读:300来源:国知局
基于最小生成树的社交网络层次化社区发现方法及系统与流程
本发明涉及网络分析
技术领域
,尤其是一种基于最小生成树的社交网络层次化社区发现方法及系统。
背景技术
社区发现是社交网络分析的一项重要内容,对于分析社交网络的拓扑结构,理解复杂系统的功能,发现社交网络中的隐藏规律、演化趋势以及预测社交网络的行为等都具有重要的意义。真实社交网络的社区结构往往呈现出显著的层次性,大的社区内部可以包含小的社区,小社区可以包含更小的社区。最小生成树法是层次社区发现的一个重要分支,现有的基于最小生成树的层次社区发现方法存在以下不足:(1)构造最小生成树的时间复杂度为o(nlogn),复杂度较高,不适合大规模网络。(2)需要事先设定多个控制参数,不同的参数设置导致不同的结果,给社交网络层次社区划分带来了不确定性。技术实现要素:鉴于上述的分析,本发明旨在提供一种基于最小生成树的社交网络层次化社区发现方法及系统,解决现有基于最小生成树的社交网络层次社区发现方法中存在的最小生成树构造时间复杂度高以及需要人为设定多个参数等问题。本发明的目的主要是通过以下技术方案实现的:一种基于最小生成树的社交网络层次社区发现方法,包括:计算给定社交网络所有相邻节点间的连接强度;根据相邻节点间的连接强度构建微社区;计算所有微社区间的紧密度;构造最小生成树,得到社交网络的层次社区结构。进一步地,所述节点间连接强度的计算公式为:其中,sim_node(i,j)为节点i与相邻节点j之间的连接强度,γ(i)为节点i及其邻居节点的集合,γ(j)为节点j及其邻居节点的集合;d(i)为节点i的度,d(j)为节点j的度。进一步地,所述微社区的构建包括:从每个社交网络节点的邻居节点中选择与所述节点连接强度最大的邻居节点,将所述两个节点作为密集对;合并所有存在共同节点的密集对,直到密集对之间不存在共同节点,合并后的密集对构成一个微社区。进一步地,所述微社区间紧密度的计算公式为:其中,sim_com(ci,cj)为微社区ci和cj之间的紧密度,e(ci,cj)为微社区ci和cj之间的连接边数,e(ci,ci)是微社区ci内部边数,e(cj,cj)是微社区cj内部边数,e(ci)、e(cj)表示微社区ci、cj的外部边数。进一步地,最小生成树的构造方法为prim方法,其中,将微社区作为初始节点,微社区间紧密度的倒数作为初始节点间的权重。一种基于最小生成树的社交网络层次社区发现系统,包括:节点连接强度计算模块210,微社区构造模块220,微社区紧密度计算模块230,社区划分模块240;所述节点连接强度计算模块210,计算给定的社交网络中所有相邻节点间的连接强度;所述微社区构造模块220与所述节点连接强度计算模块210相连,根据计算的节点连接强度结果,构造微社区;所述微社区紧密度计算模块230与所述微社区构造模块220相连,计算所有微社区间的紧密度;所述社区划分模块240与所述微社区紧密度计算模块230相连,构造社交网络的层次社区结构。进一步地,所述节点连接强度计算模块210的数学模型为:其中,sim_node(i,j)为节点i与相邻节点j之间的连接强度,γ(i)为节点i及其邻居节点的集合,γ(j)为节点j及其邻居节点的集合;d(i)为节点i的度,d(j)为节点j的度。进一步地,所述微社区构造模块220从每个社交网络节点的邻居节点中选择与所述节点连接强度最大的邻居节点,将所述两个节点作为密集对;合并存在共同节点的密集对,重复合并过程,直到所有密集对间不存在共同节点,此时,每个合并后的密集对即为一个微社区。进一步地,所述微社区紧密度计算模块230的数学模型为:其中,sim_com(ci,cj)为微社区ci和cj之间的紧密度,e(ci,cj)为微社区ci和cj之间的连接边数,e(ci,ci)是微社区ci内部边数,e(cj,cj)是微社区cj内部边数,e(ci)、e(cj)表示微社区ci、cj的外部边数。进一步地,所述社区划分模块240,将微社区作为初始节点,微社区间紧密度的倒数作为初始节点间的权重,采用prim方法构造最小生成树,得到社交网络的层次社区结构。本发明有益效果如下:本发明中的最小生成树构造复杂度低,能够有效处理大规模社交网络数据;无需任何人为参数设置,在微社区的基础上构造最小生成树,并在构造最小生成树的过程中完成层次社区的划分,能够准确、高效地发现社交网络的层次社区结构。附图说明附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。图1为本发明一个实施例的基于最小生成树的社交网络层次社区发现方法的流程示意图。图2为本发明一个实施例的基于最小生成树的社交网络层次社区发现系统的结构示意图。图3为空手道俱乐部社会网络的拓扑结构示意图。图4为空手道俱乐部社会网络的最小生成树图。图5为空手道俱乐部社会网络的对应层次谱图。图6为lfr网络生成器的u参数变化时不同方法的nmi指标变化示意图。图7为lfr网络生成器的u参数变化时不同方法的模块度指标变化示意图。图8为lfr网络生成器的n参数变化时不同方法的nmi指标变化示意图。图9为lfr网络生成器的n参数变化时不同方法模块度指标变化示意图。图10为lfr网络生成器的n参数变化时不同方法的平均运行时间指标变化示意图。具体实施方式下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。实施例一如图1所示,本实施例提供了一种基于最小生成树的社交网络层次社区发现方法,包括:s101、计算给定社交网络所有相邻节点间的连接强度;可选择的,节点间连接强度的计算公式为其中,sim_node(i,j)为节点i与相邻节点j之间的连接强度,γ(i)为节点i及其邻居节点的集合,γ(j)为节点j及其邻居节点的集合;d(i)为节点i的度,d(j)为节点j的度。采用上述公式计算连接强度,充分考虑两层邻居节点信息,有效确保节点间连接强度计算的准确性。s102、根据相邻节点间的连接强度构建微社区;具体包括:1)根据计算得到的节点间的连接强度,确定密集对;从每个社交网络节点的邻居节点中选择与所述节点连接强度最大的邻居节点,将所述两个节点作为密集对;2)合并密集对构成微社区;合并所有存在共同节点的密集对,直到密集对之间不存在共同节点,则经合并后的密集对构成一个微社区。s103、计算所有微社区间的紧密度。具体的,采用的微社区间紧密度的计算公式为:其中,sim_com(ci,cj)为微社区ci和cj之间的紧密度,e(ci,cj)为微社区ci和cj之间的连接边数,e(ci,ci)是微社区ci内部边数,e(cj,cj)是微社区cj内部边数,e(ci,cj)为微社区ci和cj之间的连接边数,e(ci)、e(cj)表示微社区ci、cj的外部边数。采用上述公式计算紧密度,充分考虑微社区内部的边数以及微社区外部边数信息,确保微社区间紧密度计算的准确性。s104、构造最小生成树,得到社交网络的层次社区结构。具体的,将每个微社区作为一个初始节点,微社区间紧密度的倒数作为初始节点间的权重,采用prim方法构造最小生成树,根据最小生成树的每条边在树构造过程中出现的先后顺序可以得到微社区的层次结构,从而得到社交网络的层次社区结构。本实施例提供的基于最小生成树的社交网络层次社区发现方法,用于解决现有基于最小生成树的社交网络层次社区发现方法中的最小生成树构造复杂度高以及需要人为设定多个参数等问题,采用的最小生成树构造复杂度低,能够有效处理大规模社交网络数据,无需任何人为参数设置即可进行层次社区划分,具有很强的适应性。实施例二如图2所示,本实例还提供一种基于最小生成树的社交网络层次社区发现系统,包括:节点连接强度计算模块210,微社区构造模块220,微社区间紧密度计算模块230,社区划分模块240。节点连接强度计算模块210,计算给定的社交网络中所有相邻节点间的连接强度;具体为,节点连接强度计算模块210的数学模型为其中,sim_node(i,j)为节点i与相邻节点j之间的连接强度,γ(i)为节点i及其邻居节点的集合,γ(j)为节点j及其邻居节点的集合;d(i)为节点i的度,d(j)为节点j的度。微社区构造模块220与所述节点连接强度计算模块210相连,根据计算的节点连接强度结果,构造微社区;具体为,从每个社交网络节点的邻居节点中选择与所述节点连接强度最大的邻居节点,将所述两个节点作为密集对。合并存在共同节点的密集对,重复合并过程,直到所有密集对间不存在共同节点,此时,每个合并后的密集对即为一个微社区。微社区间紧密度计算模块230与微社区构造模块220相连,计算所有微社区间的紧密度;具体为,所述微社区间紧密度计算模块230的数学模型为:其中,sim_com(ci,cj)为微社区ci和cj之间的紧密度,e(ci,cj)为微社区ci和cj之间的连接边数,e(ci,ci)是微社区ci内部边数,e(cj,cj)是微社区cj内部边数,e(ci)、e(cj)表示微社区ci、cj的外部边数。社区划分模块240与所述微社区间紧密度计算模块230相连,构造社交网络的层次社区结构;具体为,将微社区作为初始节点,微社区间紧密度的倒数作为初始节点间的权重,采用prim方法构造最小生成树,得到社交网络的层次社区结构。特殊的,该系统可以实现本发明所述的基于最小生成树的社交网络层次社区发现方法,但该基于最小生成树的社交网络层次社区发现方法的实现装置包括但不限于所述基于最小生成树的社交网络层次社区发现系统。本实施例提供的基于最小生成树的社交网络层次社区发现系统,用于解决现有基于最小生成树的社交网络层次社区发现方法中的最小生成树构造复杂度高以及需要人为设定多个参数等问题,采用的最小生成树构造复杂度低,能够有效处理大规模社交网络数据;无需任何人为参数设置即可进行层次社区划分,具有很强的适应性。实施例三本实例涉及一个空手道俱乐部网络,其拓扑结构如图3所示,空手道俱乐部网络包含34名成员,该俱乐部由于主席和教练产生矛盾分歧而分裂成2个社区。本实施例包括以下具体步骤:s301、根据给定的空手道俱乐部网络,采用实施例一中的方法计算所有相邻节点的连接强度。空手道俱乐部网络相邻节点的连接强度见表1:表1:空手道俱乐部网络相邻节点的连接强度s302、按照本发明实施例一所述的方法,计算空手道俱乐部网络形成的微社区;根据节点连接强度计算结果,从每个空手道俱乐部网络节点的邻居节点中选择与所述节点连接强度最大的邻居节点,将所述两个节点作为密集对。合并存在共同节点的密集对,重复所述合并过程,直到所有密集对间不存在共同节点,此时,每个合并后的密集对即为一个微社区。按照本发明实施例一所述的方法,空手道俱乐部网络形成了8个微社区,见表2:表2:空手道俱乐部网络的微社区微社区编号微社区内包含节点1[1,5,11,12,14,20]2[2,18,22]3[3,8,10]4[4,13]5[6,7,17]6[9,24,27,28,29,30,31,34]7[15,16,19,21,23,33]8[25,26,32]可见,微社区的个数远远小于空手道俱乐部网络的节点个数。s303、微社区间的紧密度。空手道俱乐部网络中微社区间的紧密度见表3:表3:空手道俱乐部网络微社区间的紧密度微社区对紧密度微社区对紧密度微社区对紧密度微社区对紧密度(2,1)1.2347(3,2)1.9846(5,3)4.0000(8,4)6.0000(3,1)2.1787(4,2)2.2360(6,3)1.9549(6,5)4.0000(4,1)1.3930(5,2)4.0000(7,3)4.1958(7,5)4.0000(5,1)0.8590(6,2)4.1875(8,3)6.0000(8,5)4.0000(6,1)3.3261(7,2)9.0000(5,4)4.0000(7,6)0.9198(7,1)12.000(8,2)6.0000(6,4)6.0000(8,6)1.2411(8,1)2.8897(4,3)1.5000(7,4)6.0000(8,7)2.7001s304、采用prim方法构造最小生成树,得到社交网络的层次社区结构。将表2中的8个微社区作为初始节点,表3中微社区间紧密度的倒数作为初始节点间的权重,采用prim方法构造最小生成树得到社交网络的层次社区结构,图4所示为空手道俱乐部社会网络的最小生成树图,图5所示为构造的空手道俱乐部社会网络的对应的层次谱图。实施例四本实施例涉及真实社交网络和人工网络,本实施例采用实施例一中方法划分上述网络的层次社区,并与其它典型的层次社区划分方法进行比较,评价各种方法的性能。其它典型的层次社区划分方法包括:fn方法、在fn基础上采用堆数据结构计算和更新模块度的cnm算法以及基于最小生成树的ana算法。本实施例中将实施例一中方法简称mst。为了更好地评价各种方法的性能,使用准确度nmi、模块度和平均运行时间等评价指标。s401、采用所述4种方法对已知社区结构的karate、books、football网络进行层次社区划分;s402、然后从每种方法得到的社区层次结构中选择最优层进行性能评价,结果如表4所示;其中q为模块度,nmi为准确度,t是运行30次的平均时间。从表4可以看出,与所述其它3种典型方法相比,本发明所述的方法(mst)在karate、books和football网络上的nmi值和模块度值较高,能更为准确地检测出社区结构。此外,mst方法在3个网络上的平均运行时间最短,效率高。表4:不同方法在已知社区结构的真实网络上的性能特殊的,采用所述4种方法对选取7个不同规模的真实网络,分析比较所述4种社区发现方法的模块度q和平均运行时间t;所述7个真实网络包括:恐怖分子电话网络call1、酵母细胞网络yeast、facebook社交圈网络facebook、美国西部电网分布网络power、广义相对论与量子宇宙学领域学者合作网络cagrqc、高能物理理论领域学者合作情况网络cahepth、高能物理学-现象学领域学者合作网络cahepph。表5显示了所述4种方法在所述7个网络上的性能。可以看出:本发明所述的方法(mst)在模块度和平均运行时间上均优于其它3种方法。表5:不同方法在未知社区结构的真实网络上的性能进一步的,借助lfr网络生成器生成人工社交网络,利用人工社交网络对实施例一中的方法的性能进行评价。lfr模型能够根据一系列输入参数生成包含社区结构的人工网络,该模型被定义为:lfr=(n,k,kmax,cmin,cmax,t1,t2,u)。n是人工网络节点个数,k和kmax分别是节点的平均度值和最大度值;cmin和cmax分别为社区最小规模和最大规模;t1和t2分别是节点度值和社区规模的幂律分布指数;u是混合参数,用于调节产生的社区结构的质量。其中,节点规模n和混合参数u的变化将很大程度上影响人工社交网络的拓扑结构。图6和图7显示了混合参数u改变,其余参数不变时,不同方法的nmi和模块度的变化情况。图8、图9和图10显示了节点规模改变,其余参数不变时,不同方法的nmi、模块度、平均运行时间的变化情况。从图6-图10可以看出,本发明所述的方法能够很好地处理各种结构特性的人工网络,社区划分的性能优于其它3种方法。本实施例中的最小生成树构造复杂度低,能够有效处理大规模社交网络数据;无需任何人为参数设置,在微社区的基础上构造最小生成树,并在构造最小生成树的过程中完成层次社区的划分,能够准确、高效地发现社交网络的层次社区结构。本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1