《面向网络的重叠社区发现方法.pdf》由会员分享,可在线阅读,更多相关《面向网络的重叠社区发现方法.pdf(14页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103425737 A(43)申请公布日 2013.12.04CN103425737A*CN103425737A*(21)申请号 201310277647.4(22)申请日 2013.07.03G06F 17/30(2006.01)(71)申请人西安理工大学地址 710048 陕西省西安市金花南路5号(72)发明人吕林涛 杨维维 孙飞龙 谭芳(74)专利代理机构西安弘理专利事务所 61214代理人李娜(54) 发明名称面向网络的重叠社区发现方法(57) 摘要面向网络的重叠社区发现方法,通过非重叠社区划分的结果初始化网络的节点,然后采用基于模糊合作博弈的方法求社区之间的。
2、重叠点,实现网络的重叠社区划分,具体包括步骤1.选取非重叠社区发现方法进行社区划分,不包含社区的重叠点;步骤2.重新确定隶属函数,计算节点属于每个社区的隶属度;步骤3.重新确定收益函数,计算节点加入到社区后的社区的收益;步骤4.根据计算的节点的隶属度、节点加入社区后社区的收益求社区的重叠点,实现网络的重叠社区划分。本发明运用新的思路解决网络的重叠社区发现问题,提高了网络重叠社区发现方法的准确率。(51)Int.Cl.权利要求书1页 说明书7页 附图5页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书1页 说明书7页 附图5页(10)申请公布号 CN 103425737 ACN。
3、 103425737 A1/1页21.面向网络的重叠社区发现方法,其特征在于,通过非重叠社区划分的的结果初始化网络的节点,然后采用基于模糊合作博弈的方法求社区之间的重叠点,实现网络的重叠社区划分,具体步骤如下:步骤1、选取非重叠社区发现方法进行社区划分,不包含社区的重叠点;步骤2、重新确定隶属函数,计算节点属于每个社区的隶属度;步骤3、重新确定收益函数,计算节点加入到社区后的社区的收益;步骤4、根据计算的节点的隶属度、节点加入社区后社区的收益求社区的重叠点,实现网络的重叠社区划分。2.如权利要求1所述的面向网络的重叠社区发现方法,其特征在于,步骤2中,对每个和节点i相连的社团C,这个节点加入到。
4、社团C的隶属函数可以表示为:式中,m、n分别表示社区C中两个不相同的节点,short_distmn表示节点m和节点n之间的最短路径数,表示节点m和节点n之间经过节点i的最短路径数;在具有n个节点的社区中,对于给定的节点i来说,最为极端的情况是任意两个其他节点之间的最短路径均经过节点i,那么此时,该节点的membershipC(i)达到最大值(n-1)(n-2)/2.因此,归一化的membershipC(i)可以定义为:membershipC(i)membershipC(i)/(n-1)(n-2)/2 (2)3.如权利要求1或2所述的面向网络的重叠社区发现方法,其特征在于,步骤3中,通过EQ函数。
5、来作为节点加入到社区后网络的总体收益,EQ值越大,表明网络的整体收益越大,那么,收益函数定义为:revenge(C)EQ (3)节点i加入社区后社区C的收益变化为:revenge(C)EQ (4)其中,EQ函数表示如下:该公式含义为,给定一个网络G,允许一个网络节点可以同时属于多个社区,Ov为节点所属社区的个数,m为网络中的边数,|C 为总社区的个数,ki和kj分别为节点i和节点j的度,Avw为网络邻接矩阵中,如果节点v和节点w之间有边相连接,Avw1,否则Avw0。权 利 要 求 书CN 103425737 A1/7页3面向网络的重叠社区发现方法技术领域0001 本发明属于网络社区发现方法,。
6、涉及一种面向网络的重叠社区发现方法。背景技术0002 现实世界中包含着各种类型的复杂网络,如社会网络、技术网络、生物学网络、网络中页面之间相互链接而形成的网络、论文合著网络、文献引用网络等等。这些现实世界中大量的复杂网络是由许多不同类型的节点组合而成,其中相同的类型节点之间存在的连接比较多,而不同类型节点的连接却相对较少,复杂网络的这种特性称为社区结构。0003 目前关于社区结构发现的研究己经取得了一定的进展,并且提出了许多社区结构发现方法,应用较多的有:Kernighan-lin方法、GN方法、谱平分法、极值优化方法等,然而,大多数的社区结构发现方法都是假定社区是彼此不重叠的,这就意味着一个。
7、节点只能属于一个社区,但是在现实生活中,社区之间是有可能重叠的。例如,在科研合作网络中,某一个学者有可能同时在多个不同的领域与人合作;在生物网络中,某一种蛋白质有可能与多种其他的蛋白质相互作用,这样就有可能有某些节点同时属于多个社区;在社会网络中,某一个兴趣广泛的人有可能参加多个不同的社区活动。发现复杂网络中的重叠社区结构有助于我们更好地理解复杂网络的拓扑结构,对社区中重叠部分的研究有助于我们开启新的思路解决网络拥塞、计算机病毒、舆论的传播和流行病毒传播等问题。现有的社区发现方法对重叠社区发现的准确率较低,尤其对于大规模网络。发明内容0004 本发明的目的在于提供一种面向网络的重叠社区发现方法。
8、,解决现有技术对重叠社区发现的准确率低的问题。0005 本发明方法所采用的技术方案是,面向网络的重叠社区发现方法,通过非重叠社区划分的结果初始化网络的节点,然后采用基于模糊合作博弈的方法求社区之间的重叠点,实现网络的重叠社区划分,具体步骤如下:0006 步骤1、选取非重叠社区发现方法进行社区划分,不包含社区的重叠点;0007 步骤2、重新确定隶属函数,计算节点属于每个社区的隶属度;0008 步骤3、重新确定收益函数,计算节点加入到社区后的社区的收益;0009 步骤4、根据计算的节点的隶属度、节点加入社区后社区的收益求社区的重叠点,实现网络的重叠社区划分。0010 本发明的特点还在于:0011 。
9、步骤2中,对每个和节点i相连的社团C,这个节点加入到社团C的隶属函数可以表示为:0012 0013 式中,m、n分别表示社区C中两个不相同的节点,short_distmn表示节点m和节说 明 书CN 103425737 A2/7页4点n之间的最短路径数,表示节点m和节点n之间经过节点i的最短路径数;在具有n个节点的社区中,对于给定的节点i来说,最为极端的情况是任意两个其他节点之间的最短路径均经过节点i,那么此时,该节点的membershipC(i)达到最大值(n-1)(n-2)/2.因此,归一化的membershipC(i)可以定义为:0014 membershipC(i)membership。
10、C(i)/(n-1)(n-2)/2 (2)0015 步骤3中,通过EQ函数来作为节点加入到社区后网络的总体收益,EQ值越大,表明网络的整体收益越大,那么,收益函数定义为:0016 revenge(C)EQ (3)0017 节点i加入社区后社区C的收益变化为:0018 revenge(C)EQ (4)0019 其中,EQ函数表示如下:0020 0021 该公式含义为,给定一个网络G,允许一个网络节点可以同时属于多个社区,Ov为节点所属社区的个数,m为网络中的边数,|C|为总社区的个数,ki和kj分别为节点i和节点j的度,Avw为网络邻接矩阵中,如果节点v和节点w之间有边相连接,Avw1,否则Av。
11、w0。0022 本发明具有如下有益效果:本发明利用已有的非重叠社区发现方法的发现结果初始化网络中的节点,使网络中的节点划分为普通的社区,不仅使重叠社区发现方法的工作量减少,而且提高了算法的运行效率和算法的质量。附图说明0023 图1是本发明面向网络的重叠社区发现方法的流程图;0024 图2是本发明实施例采用的Karate网络数据集;0025 图3是本发明实施例采用的Dolphin网络数据集;0026 图4是本发明实施例采用的Football网络数据集;0027 图5是本发明实施karate俱乐部网络BGLL算法划分结果;0028 图6是本发明实施karate网络改进的模糊合作博弈重叠社区发现结。
12、果;0029 图7是本发明实施Dolphins海豚网络BGLL算法划分结果;0030 图8是本发明实施Dolphin网络改进的模糊合作博弈重叠社区划分结果;0031 图9是本发明实施Football网络BGLL算法划分结果;0032 图10是本发明实施football网络改进的模糊合作博弈重叠社区划分结果。具体实施方式0033 下面结合附图和具体实施方式对本发明进行详细说明。0034 面向网络的重叠社区发现方法,通过非重叠社区划分的结果初始化网络的节点,然后采用基于模糊合作博弈的方法求社区之间的重叠点,实现网络的重叠社区划分,按照说 明 书CN 103425737 A3/7页5以下步骤实施:0。
13、035 步骤1、选取合适的非重叠社区发现方法进行社区划分,也就是不包含社区的重叠点;0036 步骤2、重新确定隶属函数,计算节点属于每个社区的隶属度;0037 本发明通过最短路径的方法来说明网络中的节点对与社区的信息流动的影响,影响值越大,表明节点隶属社区的程度越高。因此,对每个和节点i相连的社团C,这个节点加入到社团C的隶属函数可以表示为:0038 0039 式中,m、n分别表示社区C中两个不相同的节点,short_distnm表示节点m和节点n之间的最短路径数,表示节点m和节点n之间经过节点i的最短路径数,该公式刻画了信息流经给定节点的可能性,其可能性越大,说明节点属于社区的程度越大。00。
14、40 在具有n个节点的社区中,对于给定的节点i来说,最为极端的情况是任意两个其他节点之间的最短路径均经过节点i,那么此时,该节点的membershipC(i)达到最大值(n-1)(n-2)/2;因此,归一化的membershipC(i)可以定义为:0041 membershipC(i)membershipC(i)/(n-1)(n-2)/2 (2)0042 步骤3、重新确定收益函数,计算节点加入到社区后的社区的收益;0043 本发明的方法2,通过EQ函数来作为节点加入到社区后网络的总体收益,EQ值越大,表明网络的整体收益越大,那么,收益函数定义为:0044 revenge(C)EQ (3)004。
15、5 节点i加入社区后社区C的收益变化为:0046 revenge(C)EQ (4)0047 其中,EQ函数表示如下:0048 0049 该公式含义为,给定一个网络G,允许一个网络节点可以同时属于多个社区,Ov为节点所属社区的个数,m为网络中的边数,|C|为总社区的个数,ki和kj分别为节点i和节点j的度,Avw为网络邻接矩阵中,如果节点v和节点w之间有边相连接,Avw1,否则Avw0。0050 步骤4、根据计算的节点的隶属度以及节点加入社区后社区的收益以及一定的博弈规则求社区的重叠点,从而实现网络的重叠社区划分。0051 实施例,面向网络的重叠社区发现方法,按照以下步骤实施:0052 步骤1、。
16、选取BGLL算法进行社区划分,不包含社区的重叠点;0053 本实施例采用BGLL算法来进行社区划分,BGLL算法是一种基于优化模块度函数的启发式方法,该算法不仅速度快,而且准确率高,不需要预设社区划分的数目,能处理大规模网络社区发现问题。0054 该算法在对网络的社区结构进行探测过程中,把已经划分好的社区结构看成是新说 明 书CN 103425737 A4/7页6的加权网络中的节点,然后对这个加权网络再次利用模块度优化方法进行社区结构的发现,一直迭代执行下去,直到网络中的节点的模块度整体不再改变。0055 BGLL算法的流程主要分为三个过程,这里假设存在一个包含N个节点的无向无权网络。0056。
17、 Step1:将每个节点划分为一个社区,也就是在初始阶段网络中的节点数目和社区结构的数目一样多,因此共有N个社区;0057 初始的eij和ai满足0058 0059 aiki/2m (2)0060 其中,ki为节点i的度,m为总的边数。0061 Step2:将每一个节点尝试划分到邻居节点,然后计算所获得的Q,0062 Qeij+eji-2aiaj2(eij-aiaj) (3)0063 如果获得的Q大于0的,取最大的情况,将自己划分到对应的社区中,如果Q小于0,该节点保持自己的社团。如果遍历完所有的节点都没有Q大于0的节点,那么就算法返回;该算法中Q函数表达式为:0064 0065 其中m为网络。
18、中的总边数,pij表示随机连接网络中节点i和节点j的概率,pijkikj/2m,ki和kj分别为节点i和节点j的度,其中,A为网络的邻接矩阵;0066 0067 表示ci和cj是否为同一个社区,其中ci和cj分别表示节点i和节点j所在的社区,0068 0069 Step3:重复Step2,直到获得最大的模块度时,该步骤停止,也就是说所有节点移动都不会再改变模块度时,得到网络的初始社区划分结果,该步结束;0070 Step4:基于step2和step3,重新构造新图,新节点表示的是steps3中的一个社团,也就是step3执行之后所生成的每一个社团,新节点中会出现自己与自己的边,该边的权值这是新。
19、节点对应step3社团的内部边权重的总和,新节点之间的权重就是step3生成的社团之间权值的总和24,从而形成一个新的加权网络;0071 Step5:利用公式(15)计算该有权网络的节点i模块度C的收益;说 明 书CN 103425737 A5/7页70072 0073 其中,m是在网络中的所有边的和,是社区C内部所有边的权值的和,是所有与社区C内部的节点连接的边的权值的和,ki是网络中所有与节点i相连接的边的权值的综合,ki,in是节点i与社区C中的节点相连接的边的权值和。0074 Step6:重复执行Step3、Step4以及Step5,直到所有节点最大的模块度获得时,停止迭代过程,网络的。
20、社区结构划分完成。0075 步骤2、重新确定隶属函数,计算节点属于每个社区的隶属度;0076 本发明通过最短路径的思想来考虑网络中的节点对与社区的信息流动的影响,影响值越大,表明节点隶属社区的程度越高。因此,对每个和节点i相连的社团C,这个节点加入到社团C的隶属函数可以表示为:0077 0078 式中,m,n分别表示社区C中两个不相同的节点,short_distmn表示节点m和节点n之间的最短路径数,表示节点m和节点n之间经过节点i的最短路径数,该公式刻画了信息流经给定节点的可能性,其可能性越大,说明节点属于社区的程度越大。0079 在具有n个节点的社区中,对于给定的节点i来说,最为极端的情况。
21、是任意两个其他节点之间的最短路径均经过节点i,那么此时,该节点的membershipC(i)达到最大值(n-1)(n-2)/2.因此,归一化的membershipC(i)可以定义为:0080 membershipC(i)membershipC(i)/(n-1)(n-2)/2 (9)0081 步骤3、重新确定收益函数,计算节点加入到社区后的社区的收益;0082 通过EQ函数来作为节点加入到社区后网络的总体收益,EQ值越大,表明网络的整体收益越大,那么,收益函数定义为:0083 revenge(C)EQ (10)0084 节点i加入社区后社区C的收益变化为:0085 revenge(C)EQ (1。
22、1)0086 其中,EQ函数表示如下:0087 0088 该公式含义为,给定一个网络G,允许一个网络节点可以同时属于多个社区。Ov为节点所属社区的个数,m为网络中的边数,|C|为总社区的个数,ki和kj分别为节点i和节点j的度,Avw为网络邻接矩阵中,如果节点v和节点w之间有边相连接,Avw1,否则Avw0。0089 步骤4、根据计算的节点的隶属度以及节点加入社区后社区的收益以及一定的博弈规则求社区的重叠点,从而实现网络的重叠社区划分。说 明 书CN 103425737 A6/7页80090 本发明通过非重叠社区划分的结果初始化网络中的节点,选取BGLL算法,不仅使重叠社区发现方法的工作量减少。
23、,只需要根据收益函数和隶属函数选择重叠点,而且使算法的主要工作集中在了重叠上了,提高了算法的运行效率和算法的质量。0091 实施例中,选用三种不同的真实数据集验证本文算法的有效性,并与已有的具有代表性的算法在准确率进行对比。这三种数据集分别为:karate空手道俱乐部网络,参照图2所示,该网络一共包含34个节点和78条边,其中俱乐部的每个成员表示网络中的节点,边表示该俱乐部成员之间的关系,;Bottlenose Dolphins海豚网络,参照图3所示,该网络由2个家族组成,总共62只宽吻海豚,这个小型的社会网是由62个节点和159条边组成;美国大学足球联盟Football网络,参照图4所示,足。
24、球球队表示网络中的节点,两个球队之间常规赛季的比赛表示网络的边,它共包含115个节点和613条边。0092 针对Zachary karate俱乐部网络,本发明的重叠社区发现算法设计了改进的基于模糊合作博弈的重叠社区发现中,算法是以普通社区划分结果作为基准的,也就是不包含重叠点的社区划分结果,本发明采用的是BGLL算法,BGLL社区划分的结果如图5所示,然后通过算法计算相应的重叠点,识别中的重叠点如图6所示,即3,9,10,31识别出为重叠节点。0093 针对Bottlenose海豚网络,BGLL算法划分的社区结果如图7所示,然后通过算法计算相应的重叠点,识别中的重叠点如图8图所示,即7、19、。
25、28、30、39识别出为重叠节点。0094 对于football网络,BGLL算法划分的社区结果如图9所示,将网络划分为10个社区,然后通过算法计算社区的重叠点,识别中的重叠点如图10所示,即1、17、6、21、36、90识别出为重叠节点。0095 对常用的GCE算法、CPM算法、LEK算法和本发明方法对比试验进行比较,实验结果参见图4至图6,表1是采用不同算法的网络重叠社区发现的准确率(EQ)对照表。0096 表1、采用五种算法的网络重叠社区发现的准确率(EQ)对照表0097 0098 从表中可以看到,Karate网络中通过不同算法计算的EQ值,本本发明发现方法的EQ值均高于其他算法;Dolphin网络中本本发明发现方法的EQ值均高于GCE算法和CPM算法和LEM算法;football网络中本本发明发现方法的EQ值均高于GCE算法和CPM算法,LEM算法。0099 本发明利用已有的效果好非重叠社区发现方法发现的结果初始化网络中的节点,使网络中的节点划分为普通的社区。本发明选取的是BGLL算法,不仅使重叠社区发现方法说 明 书CN 103425737 A7/7页9的工作量减少,而且使算法的主要工作集中在了重叠上了,提高了算法的运行效率和算法的质量。说 明 书CN 103425737 A1/5页10图1图2说 明 书 附 图CN 103425737 A10。