基于种子节点选择的重叠社区发现算法-齐金山.pdf
《基于种子节点选择的重叠社区发现算法-齐金山.pdf》由会员分享,可在线阅读,更多相关《基于种子节点选择的重叠社区发现算法-齐金山.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第34卷第12期2017年12月计算机应用研究Application Research of ComputersV0134 No12Dec2017基于种子 节点 选择的重叠社区发现算法齐金山12,梁循1,王怡1(1中国人民大学信息学院,北京100872;2淮阴师范学院计算机科学与技术学院,江苏淮安223300)摘要:针对目前从局部社区扩展成全局社区时有关算法的种子节点选择不合理的情形,提出了一种基于种子节点选择的重叠社区发现算法。首先根据影响力函数找出局部影响力最大的节点,由这些节点构成的种子集合较好地分布在整个网络中,然后以这些种子点构造初始社区,根据设定的吸引度函数选择性地添加节点来进行社
2、区扩展。实验结果表明,该算法在真实网络上进行测试时能够有效地挖掘网络中的重叠社区。关键词:重叠社区;局部社区;吸引度函数;社区扩展中图分类号:TP3016 文献标志码:A 文章编号:1001-3695(2017)12-353404doi:103969jissn1001-3695201712003Overlapping community detection algorithm based on selection of seed nodesQi Jinshanl一,Liang Xunl,Wang Yil(1School ofInformation,Renmin University ofChi
3、na,Beijing 100872,China;2School ofComputer Science&Technology,Hnaiyin NormalUniversity,Hnaian Jiangsu 223300,China)Abstract:In view of the unreasonable selection in seed algorithm from the local community expanding into a global communityat present,this paper proposed an overlapping community detect
4、ion algorithm based on selection of the seed nodesThe algorithm used the inflh叠nce function to find out the strongest nodes in local node iniluenceswhich structured the seeds distributing throughout the networkAnd then utilized these seeds to construct the initial community,selectively added nodes t
5、o ex-pand the community according to the set attraction functionThe experimental results show that the algorithm tested in a realnetwork can effectively dig out overlapping community in the networkKey words:overlapping community;local community;attraction function;community expansion0 引言现实世界许多复杂的系统如
6、人际关系网、科学家合作网、流行病传播网、蛋白质相互合作网等都可以抽象为复杂的网络。网络的模块化是指复杂网络中的节点具有聚簇化的特点,其表现形式为模块结构,即社区结构。它是指网络由若干个团或是群组成,每个团内部节点的连接相互紧密,而不同团之间的连接相互稀疏。社区发现的目的就是挖掘复杂网络中的这种团结构,进而实现更深入的应用研究,如社会网络动态演变、异质网络分析、个性化推荐、大规模网络压缩求解等。目前有关社区发现的方法大致可分为两类,第一类是非重叠社区发现方法,此类方法将复杂网络划分为若干个彼此互不相连的社区结构,各节点只归属于其中的一个社区。具体又可分为:a)层次聚类方法,通过给定网络的拓扑结构
7、定义网络节点间的相似性或距离,然后采用单连接层次聚类或全连接层次聚类将网络节点组成一个树状图层次结构,根据实际需求横切树状图,获得社区结构,代表性算法有文献1提出的算法;b)谱聚类方法,该方法源于图的划分问题,其目标是找到一种切割方法,使得切割最少的边就可以将节点分割为不相交的集合,代表性算法有文献2提出的算法,类似的算法还包括文献35;e)模块度优化方法则是采用模块化评价函数Q来描述所发现的社区的优劣,基本思想是基于社区内部的节点连接概率应大于同样度序列随机图的连接概率,Q函数值越大,说明发现的社区结构越好,代表性算法有快速Newman算法陋J、CNM算法J、模拟退火算法(simulated
8、 annealing,sA)o。另一类方法是重叠社区发现方法,该类方法允许一个节点同时属于多个社区的情况,即社区之间有重叠。相关的方法包括:a)CFinder1算法,该算法首先从网络中找出所有大小为k的团,然后将每个团作为节点构建一个新的图,当两个k团共享k一1个节点时,新图中两个对应的节点之间才有边,则新图中每个连通子图所对应的k团集合即构成了一个社区,属于不同社区的k团可能会共享一些节点,类似的算法还有文献10,11;b)COPRA算法2采用标签传播的方法来发现重叠社区,初始化时,每个节点被赋值为一个唯一的标签,然后通过迭代更新节点的标签及其隶属度,最终具有相同标签的节点被划分到相同社区中
9、,若节点具有多个标签即为连接不同社区的重叠节点;C)Link算法。1刊首先对边集进行聚类形成边集社区,然后将边集社区转换为相应的节点社区,分属于不同社区的同一节点即为重叠节点,类似的算法还有文献14,15等;d)基于局部社区优化和扩展的算法,该类算法的思路是从局部出发,逐步扩展,多个扩展之间会形成交叉区域,由此形成重叠社区。典型的算法如LFM 016算法,该算法先从一个随机选择的收稿日期:20160905;修回日期:20161031 基金项目:国家自然科学基金资助项目(71271211,71531012);北京市自然科学基金资助项目(4132067);中国人民大学品牌计划资助项目(10XNl0
10、29)作者简介:齐金山(1977一),男,湖南株洲人,讲师,博士研究生,主要研究方向为社会计算、数据挖掘(qijinshansinacoin);梁循(1965一),男,教授,博导,博士,主要研究方向为商务智能、社会计算、数据挖掘;王怡(1991一),女,硕士研究生,主要研究方向为社会计算、数据挖掘万方数据第12期 齐金山,等:基于种子节点选择的重叠社区发现算法 3535种子节点出发,通过不断向外扩张来构建社区,直至社区函数达到局部最优为止。拓扑势作为另一种新颖的重叠社区发现理论,同样产生了许多相关算法。文献17从数据场思想出发,提出了一种基于拓扑势的社区发现算法该方法引人拓扑势描述网络节点问的
11、相互作用,将每个社区视为拓扑势场的局部高势区,通过寻找被低势区域所分割的连通高势区域实现网络的社区划分;文献18提出了一种基于节点位置分析的新的重叠社区发现算法,该算法使用PageRank来评估节点质量,并且基于它们在拓扑势场的固有峰谷结构中的位置来确定节点的社区联系;文献19提出了一种基于节点拓扑结构和属性相似度的局部社区检测算法,通过融合多个已检测到的局部社区,计算出隶属矩阵从而获取全局重叠社区结构。社会网络中的社区挖掘虽然已经取得了很大的进展,但这些方法大多数只在某个领域或某些条件下表现较优,且实际应用中社会网络结构日趋复杂,发掘的难度也不断增大,因此,网络中的社区发现问题仍然是摆在研究
12、人员面前的巨大挑战。本文提出了一种基于种子节点选择的重叠社区发现算法,其基本思想是:首先求出各顶点间的相异度,作为各顶点链接上的权值,从而将问题转换为加权无向网络,利用提出的影响力函数找出局部影响强度最大的节点,这些局部影响力强度最大的节点构成的集合即为最优的种子节点集合,它们较好地分布在整个社会网络中;然后从种子节点集合中选取各种子节点根据预设的吸引力函数找出种子所在的局部社区结构,进而从局部社区结构扩展至整个网络,从而发现网络中的重叠社区。1 相关工作近些年,随着社会网络的不断发展,随之而来出现了大量有关社区发现的种种算法,本文仅讨论有关从种子点出发识别出局部社区算法。2009年Shen等
13、人20 o提出使用最大团来形成社区的核心,将这些最大团当做种子点其计算的代价太高。2011年Gargi等人旧。首先计算出YouTube网络上每个视频被点播的次数,然后选出播放次数最多的视频当做该网络的种子点来识别社区,然而这种非结构信息社区识别并不适合其他许多社会网络的社区识别。2012年,Coscia等人旧。提出了Demon算法,该算法是把网络中的任意一个节点当做种子点开始识别局部社区,然后对局部社区进行融合进而形成最优的全局社区。同年,Chen等人旧1提出了选择有局部最大的度的节点作为种子点的算法,该算法先建立社会网络图的节点列表;若一个节点具有最大的局部的度,则把该节点作为种子节点加入到
14、种子节点集合中,同时将该节点以及小于此节点的度的邻居节点从节点列表中移除,若一个节点不是局部最大度的节点,它也被移除出节点列表,当节点列表中的节点全部被移除后,就得到了一个局部最大度的种子点集合,从该集合中选取一个种子点进行局部社区的发现,然后把此局部社区从网络中移除,重复以上过程直到算法收敛。2013年,Whang等人1提出了传播中心算法选择种子点,该算法首先根据社会网络中节点的度大小按递减顺序对节点进行排序,然后选择前K个最大的度的节点作为种子点进行社区识别。由于该算法需要对社会网络有一个全局的了解以及假设种子数目K是已知的,这是该算法的不足之处,因为根本无法事先了解整个社会网络的社区结构
15、。为了更好地找出分布在整个社会网络中的种子点集合,进而挖掘出其中的重叠节点,本文提出了基于种子节点选择的重叠社区发现算法,该算法能够解决现有算法存在的种子选择分布不合理以及效率较低等问题。2 基于种子节点选择的重叠社区发现算法通常,一个社会网络可以用无向图G=(y,E)的形式表示,其中y代表图中凡个节点的集合,E代表图中m条边或关系的集合,如图1所示。泓 瑟l 三?H珞定义l节点u的邻居集合N(u)定义为,v(u)=:V,(u,F)E (1)定义2节点u的度D(u)是指与u相关联的边的数目,即D(u)=IN(u)I,其中JI表示集合的势,即元素的个数。定义3节点u对”的影响力NG(u,)定义为
16、NG(等等“芒等 (2)式(3)表示网络中节点M对节点”的影响力大小,其值与节点的度的大小成正比,与节点间的距离成反比。该公式是由牛顿万有引力定律演变而来,式中D(“)用来衡量网络节点的质量,用节点u的度表示,这是因为网络本身具有结构特性,只有节点的度能反映出该节点的有关信息,同时也体现了一个节点与网络中其他节点的通信能力。节点之间的距离d(u,”)用节点之间的相异度来衡量,即d(u,口)=lsim(u,”),其中sim(“,”)代表节点u和”的Jacc缸d相似度值,若节点u与”的相异度越大,则u对”的影响力就越小,它们在同一个社区的可能性就越小。G是影响力常量(本文取值为常数1)。定义4节点
17、“对其所有邻居节点的影响力和值用函数,()表示,即 ,(“):NG():G单鹄(3):mN(u ”:磐【l-8”“,”J厂lJ“ “函数,(“)的值越大,则节点u的影响力强度越大,说明在其邻居节点中的地位就越重要,它越有可能成为种子点。为了发现社会网络中的社区结构,本文首先使用种子节点选择算法找到分布于整个网络中的种子集,然后通过该种子集来识别局部社区,进而扩展至整个社会网络。21 种子节点选择算法在种子节点选择算法中,先利用节点间的链接关系计算其相异度,然后根据F(“)函数求出每个节点的影响力强度,如果一个节点和它的邻居节点相比具有更大的影响力强度,该节点以及邻居节点又最终属于同一个社区,则
18、该节点就是一个好的种子节点1。算法1列出了种子节点选择算法的伪代码,其中行3用来求出每个节点的影响力强度,行6、7则表示一个节点的影响力强度大于其所有邻居节点的影响力强度时,则该节点被视为一个种子点,并将其加入到种子集合|s中。图1中各节点的影响力强度值以及算法1所选择的种子节点结果如表1所示,y代表该节点为种子点。算法1 种子节点选择算法万方数据3536 计算机应用研究 第34卷输入:社会网络G=(r,E)。输出:种子节点集合S。1 S+一:2 fjr each MV do3 F(“)= G(M,);4 en df:or5 for eachV do6 if V抄()aJld F()=F(”)
19、then7 S=SU:8 end if9 endfor10 retum S;表1算法1选择的种子点顶点 ,()值 种子点(YN) 顶点 F(u)值 种子点(YN)1 3054 Y 6 1699 N2 2493 N 7 1004 N3 1781 N 8 185O Y4 100 4 N 9 185O N5 2493 N 10 25 N算法1能够找出分布在社会网络中的种子点,如图1的种子点集合1,8,这些种子点的度在社会网络中未必是最大的,但它们很好地分布在每个社区中。选择好种子点集合后,各种类型的种子点扩展算法可用于识别局部社区,本文提出了一种新的思想通过种子点扩展来识别社会网络中的重叠社区。22
20、重叠社区发现算法假定有一个社会网络G(V,E)中的一个社区c5和一个节点“,则社区cs对节点u的吸引力函数attract(CS,u)的定义为 attract(cs,“)=竺巫箭广(4) G(“,p)其中:吸引力函数attracl(cS,u)反映了社区对节点M的吸引程度,attract(CS,u)的值越大,节点“从属于社区cS的可能性越大,相反altract(CS,)的值越小,节点M从属于社区cS的可能性就越小。若某一节点“的所有邻居节点都在社区cS中,则attract(CS,托)=1,即节点配只属于嬲这一个社区;否则attract(CS,H)占(s为给定的阈值),则节点拉属于该社区。节点H的其
21、他邻居节点假如在另一个社区cs中,有attract(CS,u)占,则节点u也属于社区岱,此时节点“归属于多个社区,即为重叠节点。在图1中假设社区cs包含的节点集合为l,2,3,4,5,社区岱对节点6的吸引力attract(圆,6)的值是(N(6,1)+N(6,2)F(6)=033,若占=04,则节点6不属于社区CS;而另一社区cs包含的节点集合为7,8,9,10,社区cS对节点6的吸引力attract(CS,6)的值是(N(6,7)+N(6,8)+(6,9)F(6)=066,则节点6属于社区cS。如果占=03,则节点6属于上述的两个社区,节点6即为重叠社区。本算法发现一个最终社区的过程如下:取
22、种子集合S中一个种子点构造初始社区;扩展初始社区。为了挖掘出社会网络中的重叠社区,事先将网络中所有节点都标记为false,表示此时这些节点尚未被划分到任何一个社区,若节点已被分配到至少一个社区中,则标记为tree。算法2列出了从种子点集合中取一个种子点“构造初始社区并扩展得到一个最终社区的伪代码。其中2一10行构造了一个初始社区cS,该社区的每个节点的吸引力函数值attract(CS,)均不小于给定的阈值占;行12的find()函数找出社区cS的邻居节点集合C;1320计算出该集合中吸引度函数值attract(CS,u)不小于给定的阈值占的节点集合NC,若NC中的节点个数为0时,则挖掘出了一个
23、最终的社区cS,否则将该NC中的节点添加到社区中,得到一个更大的社区cS,继续迭代;然后将最终的社区cS中的节点划分状态标记为tree。算法2从种子节点扩展到一个最终社区算法输入:G=(V,E),种子节点,阈值s。输出:一个最终社区。1 cS囝;Cg;C一囝;2 c5一cS U:3 for each FE(u)do4 CS+一CS U:5 end for6 l缸each FCS do7 if(attract(cS,)=8)then14 C+一C U”;15 end if16 if(INCI0)then Cs+一CsUNC;Nc一囝:18 else19 break;20 while(tnle)2
24、1 fjr each“CS do22 markedM-tme;23 end for24 retum CS:图1中种子节点8构造的初始社区cS集合为6,7,8,9,10(阈值占取值为040),该社区的邻居节点集合为t 1,3,由于attract(CS,1)=010,attract(CS,3)=014均小于给定的阈值占,则社区扩展过程停止并发现了一个最终的社区cS=6,7,8,9,10。23时间复杂度分析假设社会网络G包含有n个节点和m条边,算法1实质上是求出每个节点的影响力强度,其时间复杂度为O(n)。为了找到一个最终社区,算法2从O()个种子节点中任选一个种子节点作为初始社区。在进行社区扩展时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 种子 节点 选择 重叠 社区 发现 算法 金山
限制150内