基于改进的PSO算法的网络社区划分方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于改进的PSO算法的网络社区划分方法
张钰莎;蒋盛益;谢柏林;唐凯
【摘要】网络社区划分是复杂网络研究领域的一个热点,现有的复杂网络社区划分方法时间复杂度比较高,准确性过于依赖先验知识,因此许多现有的社区划分方法不太适用于实际网络的社区结构分析.对PSO算法进行改进,改进后的PSO算法的参数设置更简单.基于改进后的PSO算法,提出一种复杂网络社区划分方法,该社区划分方法时间复杂度比较低,并且无需预先知道网络的社区数量、社区节点数.实验结果表明该方法具有良好的性能.%Network community detection is a focus in complex network research field.Present complex network community detection methods' time complexity is high and their accuracy depends too heavily upon prerequisite knowledge.Therefore many present community detection methods are unfit for practical network community structure analysis.The paper improves PSO algorithm to simplify the improved PSK algorithm's parameter configuration.Based on the improved PSO algorithm the paper proposes a complicated network community detection method whose time complexity is low while there is no prerequisite knowledge for network's community number or community node number.Experiment results illustrate that the method shows good performance.
【期刊名称】《计算机应用与软件》
【年(卷),期】2013(030)008
【总页数】4页(P25-27,50)
【关键词】复杂网络;社区划分;PSO算法;社区结构
【作者】张钰莎;蒋盛益;谢柏林;唐凯
【作者单位】广东外语外贸大学南国商学院广东广州510545;广东外语外贸大学信息学院广东广州510420;广东外语外贸大学信息学院广东广州510420;上海申腾信息技术有限公司上海200040
【正文语种】中文
【中图分类】TP393
0 引言
复杂网络可以用来描述人与人之间的社会关系、物种之间的捕食关系、计算机之间的网络连接以及网页之间的连接关系等,目前复杂网络的研究正渗透到不同的研究领域中,例如生命学科、社会学科、计算机学科等。
对复杂网络的定量与定性研究已成为一个重要的挑战性课题。
随着对复杂网络的深入研究,研究者们发现很多实际网络中都具有一个共同性质:网络社区,即网络可以看成是由若干个社区组成,网络社区内部的节点之间连接紧密,而网络社区之间的连接则比较稀疏[1]。
复杂网络社区划分是复杂网络研究领域中的一个热点。
划分网络中的社区结构对于了解整个网络结构与分析网络特性具有十分重要的意义。
目前国内外有不少学者在研究如何划分网络中的社区结构,已有一些比较有效的算法。
例如Kernighan-Lin 算法[2]、GN 算法[3]、Newman 快速算法[4]和派系过滤算法[5]等。
下面对这几种典型的网络社区划分算法进行简单介绍。
(1)Kernighan-Lin算法
Kernighan-Lin算法是基于贪婪算法原理。
该算法首先引入一个增益函数Q(Q的
定义为:两个社区内部的边数减去这两个社区之间的边数),然后再寻找使Q值最大的社区划分方案,最后按照该方案把网络划分为两个大小已知的社区。
利用该算法来划分网络社区时,必须事先知道网络社区的具体数目,否则该算法很难得到网络的正确社区结构。
(2)GN算法
GN算法是一种分裂算法。
在社区划分过程中,该算法通过不断地移除网络中介数最大的边来划分网络社区,边的介数定义为:网络中经过该边的最短路径的数目。
由于GN算法每次在移除一条介数最大的边时,都要对整个网络中所有边的介数
进行计算,因此该算法的计算复杂度比较大。
该算法的时间复杂度为:O(m2n),m,n分别为网络中的边数和节点数。
另外,利用该算法来划分网络社区时,需要一些附加的信息来确定算法要重复到哪一步才能停止。
(3)Newman快速算法
Newman快速算法是Newman在GN算法的基础上提出来的,该算法是一种基
于贪婪思想的凝聚算法。
该算法在划分网络社区时,采用模块度增量来选择最佳的社区结构,其划分速度比GN算法有了很大的改善。
该算法可以用于分析节点数
达100万的复杂网络,然而该算法在划分网络社区结构时,仍然需要一些附加的
信息来确定算法需要重复到哪一步才能停止。
(4)派系过滤算法
派系过滤CP(clique percolation)算法是由Palla等人提出的。
在现实世界中,很多网络并不存在绝对彼此独立的社区结构,在这些网络中其社区之间存在重叠现象。
派系过滤算法可以用来分析这种互相重叠的社区结构。
在派系过滤算法中,一个网络社区被看成是由一些互相连通的“小的全耦合网络”构成的,而这些“全耦合网络”就称为“派系”。
上述几种网络社区划分算法主要存在以下两个不足:首先,算法的时间复杂度比较
大;其次,算法的准确度不够高,很多算法需要人为附加一些信息才能得到比较好
的划分结果,例如Kernighan-Lin算法、GN算法等。
因此,上述几种社区划分
方法不太适用于实际网络的社区结构分析。
另外,王磊等人[6]提出了一种基于个体中心论的局部优化社区发现算法;曹凌等人[7]提出了基于域驱动的链接数据的社区发现算法。
本文对PSO算法进行了一些改进,改进后的PSO算法的参数选择更简单,无需
人工设置。
基于改进后的PSO算法,我们提出一种复杂网络社区划分方法,该方
法使用一趟聚类来初始化网络社区,从而使得本文提出的方法具有比较高的社区划分效率,该方法能适用于实际网络的社区结构分析。
1 PSO算法简介
粒子群优化算法PSO是由Kennedy和Eberhart于1995年提出的[8],它是
一种基于群体协作的随机搜索算法。
假设在一个由n个粒子组成的D维搜索空间中,每个粒子xi的位置向量为Xi={xi1,…,xiD},速度向量为Vi={vi1,…,viD}。
粒子xi在搜索解空间过程中,需要记录其自身历史最佳位置pi和其群体历史最佳位置pg,其中pi={pi1,…,piD},pg={pg1,…,pgD} 。
PSO算法在每次迭
代时,粒子xi根据自己所对应的Vi、pi和pg值来调整自己目前的速度向量Vi,然后通过速度调整来改变自己的当前位置Xi。
在每次更新中,粒子xi根据以下公
式来改变自己的速度和位置[9]:
其中,w为惯性权重;c1和c2为学习因子,也称为加速常数,c1的功能是调节微粒飞向自身最优值的步长,c2的功能是调节微粒飞向全局最优值的步长;r1,r2为(0,1)范围内的两个随机数。
在式(1)中引入惯性权重w可以平衡全局搜索和局部
搜索所占的比例,从而提高算法的性能。
PSO算法执行的步骤如下:
第1步参数初始化。
在D维搜索空间中随机产生n个粒子{x1,x2,…,xn},并
随机产生n个初始解与初始速度,然后令t=1,并设置惯性权重w的初值。
第2步计算每个粒子的适应度值。
第3步将每个粒子的当前适应度值与其自身历史最佳位置pi和群体历史最佳位置pg进行比较。
如果某个粒子的适应度值优于其pi值,则把该粒子的pi值设置为
其当前适应度值;如果该粒子的当前适应度值还优于其pg值,则把该粒子的pg值设置为其当前适应度值。
第4步根据式(1)和式(2),更新每个粒子的速度和位置。
第5步对结果进行判断。
如果结果已达到预期的要求,则结束循环,否则跳转到
第2步。
文献[9,10]研究了惯性权重w对算法性能的影响,其研究发现:当w取值较大时,算法的全局搜索能力强,局部搜索能力弱,此时有利于算法跳出局部极小点;
而当w取值较小时,算法的全局搜索能力弱,局部搜索能力强,此时有利于算法
收敛。
在全局搜索过程中,一般希望算法前期有较高的搜索能力以得到合适的种子,而在后期有较高的开发能力,以加快收敛速度。
为了实现上述目标,文献[9,10]推荐采用线性递减权重策略来对w的值进行设置,即:
其中tmax为最大进化代数,t为当前进化代数,wini为初始惯性权重值,wend
为进化至最大代数时的惯性权重值。
一般取wini=0.9,wend=0.4 。
2 基于改进的PSO算法的社区划分方法
在PSO算法中,其粒子速度的更新和惯性权重w的取值分别如式(1)和式(3)所示。
在式(1)和式(3)中,参数的设置没有简单有效的方法、通常依赖于人工经验。
本文
对PSO算法进行一些改进,简化PSO算法参数的设置,并且基于改进后的PSO
算法,提出一种网络社区划分方法,在该方法中我们使用一趟聚类[11]来对社
区进行初始化,以便提高社区划分的速度。
(1)改进的PSO算法
在式(1)中,PSO算法的收敛速度会受到进化因子c1、c2的影响,如何选取进化
因子c1和c2是一个比较困难的问题。
经过仔细分析,我们发现可以将c1r1、
c2r2分别用另外两个相互独立的随机变量b1、b2来代替,以减少参数选取的困难。
变量替换后,式(1)变为:
同时,我们采用式(5)来设置w的值,使得w的值随着迭代的进行而逐渐自动减小:
修改后的PSO算法具有以下两个优点:第一,简化了计算;第二,减少了用户参数选择的困难。
为了使粒子能更快地向全局最优逼近,在式(4)中,可以限定b2≥b1。
此外,我们在许多数据集上测试时发现,当b1的取值在(0,2),b2的取值在(1.4,2)时,其社区划分效果比较理想。
(2)社区初始化
在社区划分方法中,社区初始化对社区划分的影响比较大,如果社区初始化合理,则可以加速算法的收敛,从而大大提高社区划分的速度。
文献[12]提出了一种
社区初始化的方案,该方案是通过从指定节点向四周邻接节点扩散来初始化社区
ID号。
采用这种策略容易产生初始社区之间规模差异大的不平衡问题,且社区数
目难以事先确定。
为了加快算法的收敛速度,启发于一趟聚类算法的思想,本文提出一种新的社区初始化方案。
在用户节点数为n、社区号初始值为0的集合中,该方案初始化社区ID号的步骤如下:
第1步在用户节点集合中随机选取一个节点,并以该节点建立一个聚类簇,然后
把当前社区号增1,最后将当前社区号作为该聚类簇的标识;
第2步在用户节点集合中删除最近一次处理过的节点,当前用户节点集合的规模
减1。
第3步在当前用户节点集合中随机选取一个节点,并依次与已存在的各个聚类簇
中的用户节点进行相似度比较。
如果找到一个聚类簇,在该簇中存在足够多的用户节点与该节点相连接,则把该节点加入到该聚类簇中,并把该节点所属的社区号设置为该簇的标识;否则,该用户节点自己建立一个新的聚类簇,社区号增1,并将
其作为该簇的标识。
第4步判断此时用户节点集合是否为空,若不为空,则跳转到第2步,否则结束
循环。
(3)社区划分方法
基于上述改进后的PSO算法和社区初始化方法,提出一种复杂网络社区划分方法。
该方法的步骤与PSO算法的步骤基本相同,两者的不同之处在于参数初始化和粒
子适应度值的求解。
我们提出的社区划分方法在初始化参数时,其粒子位置、速度向量的维数是根据网络中节点的数量来设置,而其它参数也是根据网络的具体情况来设置。
在求解粒子的适应度值时,是以Newman等人[13]提出的衡量复杂网络社区划分质量的模块度作为粒子适应度函数。
3 实验及结果分析
文献[14]提出了一种基于PSO算法的社区划分方法,该方法在划分社区时无需预先知道社区的数量、社区节点数。
我们使用 Power[15]、Dolphins[16]、Football[17]数据集对本文中的方法与文献[14]中的方法进行了比对测试,
测试结果如下。
其中“改进前”的曲线表示文献[14]中的方法,“改进后”的
曲线表示本文中的方法。
在图1、图2、图3中,X轴表示迭代的次数,Y轴表示
模块度[13]Q的取值。
图1 Power数据集测试结果
图2 Dolphins数据集测试结果
图3 Football数据集测试结果
上述测试结果表明:本文提出的方法优于文献[14]中的方法。
由于我们采用一趟聚类来初始化网络社区,因此本文提出的方法具有比较快的划分速度。
4 总结与展望
本文对PSO算法进行了改进,改进后的PSO算法的参数设置更简单。
基于改进后的PSO算法,我们提出一种复杂网络社区划分方法,使用一趟聚类来初始化网络社区,来降低算法的时间复杂度、提高算法的效率。
我们使用Power、Dolphins、Football数据集对本文提出的方法进行了测试,实验结果表明该方法在划分社区时具有较快的速度和较高的准确度。
今后的工作主要是使用现实中真实的数据来全面测试该方法的性能。
最后感谢陈东慧和区雄发在实验中所做的大量测试工作。
参考文献
[1]Girvan M,Newman M E munity structure in social and biological networks[C]//Proceedings of the National Academy of Sciences of the United States of America,2002,99(12):7821 -7826. [2]Kernighan B W,Lin S.An efficient heuristic procedure for partition graphs[J].Bell System Technical Journal,1970,49(2):291 - 307. [3]Girvan M,Newman M E munity structure in social and biological networks[C]//Proc.Natl.Acad.Sci,2001,99:7821 -7826. [4]Newman M E J.Fast algorithm for detecting community structure in networks[J].Phys.Rev.E,2004,69:066133.
[5]Palla G,Derenyi I,Farkas I,et al.Uncovering the overlapping community structure of complex networks in nature and society
[J].Nature,2005,435(7043):814-818.
[6]王磊,吕强,李亚飞,等.一种基于个体中心论的局部优化社区发现算法
[J].计算机应用与软件,2010,27(10):269 -271.
[7]曹凌,陈华钧.基于域驱动的链接数据的社区发现研究与实现[J].计算机应用与软件,2011,28(5):78 -82.
[8]Kennedy J,Eberhart R C,Particle swarm optimization[C]
//Proceedings of the 1995 IEEE International Conference on Neural Networks,Vol 4,IEEE Press,1942 -1948.
[9]Shi Y,Eberhart R C.A Modified Particle Swarm Optimization[C]
//Proceedings of the Congress on Evolutionary Computation,Piscataway.IEEE Press,1998:69 -73.
[10]Shi Y,Eberhart R C.Empirical Study of Particle Swarm Optimization [C]//Proceedings of the Congress on Evolutionary Computation,Piscataway.IEEE Service Center,1999:1945 -1950.
[11]Jiang Shengyi,Song Xiaoyu.A Clustering-based Method for Unsupervised Intrusion Detections[J].Pattern Recognition Letters,2006(5):802-810.
[12]戴飞飞,唐普英.基于PSO微粒群算法的复杂网络社区结构发现[J].计算机工程与应用,2008,44(22):56 -58.
[13]Newman M E J,Girvan M.Finding and evaluating community structure in networks[J].Physical Review E,2004,69:026113.
[14]段晓东,王存睿,刘向东,等.基于粒子群算法的Web社区发现[J].计算机科学,2008,35:18 -22.
[15]Watts DJ,Strogatz S H.Collective dynamics of'small-world'networks [J].Nature,1998,393(6684):440 - 442.
[16]Lusseau D,Schneider K,Boisseau O J,et al.The bottlenose
dolphin community of Doubtful Sound features a large proportion of long-lasting associations[J].Behavioral Ecology and Sociobiology,2003,
54(4):396-405.
[17]Zachary W W.An information flow model for conflict and fission in small groups[J].Journal of anthropological research,1977,33(4):452-473.。