当前位置:文档之家› 大型复杂网络中的社区结构发现算法

大型复杂网络中的社区结构发现算法

—92—大型复杂网络中的社区结构发现算法胡 健1,董跃华1,杨炳儒2(1. 江西理工大学信息工程学院,赣州 341000;2. 北京科技大学信息工程学院,北京 100083)摘 要:在大型复杂网络中自动搜寻或发现社区具有重要的实际应用价值。

该文把超图模型以及基于此的聚类算法应用到社区结构发现的领域。

对于简单图的社区结构发现,引入边聚集系数的概念,提出基于边聚集系数的社区发现算法。

将安然邮件数据集作为测试数据集,通过算法对比分析,证明该算法在时间复杂度上可以提高一个数量级。

关键词:边聚集系数;社区结构;社区发现Community Structure Discovery Algorithmin Large and Complex NetworkHU Jian 1, DONG Yue-hua 1, YANG Bing-ru 2(1. Faculty of Information Engineering, Jiangxi University of Science and Technology, Ganzhou 341000; 2. School of Information Engineering, University of Science and Technology Beijing, Beijing 100083)【Abstract 】The automatic search and community discovery in large and complex network has important practical applications. This paper applies the hypergraph based model and cluster algorithm in community structure discovery, introduces the concept of Edge Clustering Coefficient(ECC) to community structure discovery of simple graph and proposes an algorithm of community discovery based on ECC. Enron e-mail data sets are test data sets, through comparative analysis of algorithm, to prove that this algorithm can significantly improve the time complexity. 【Key words 】Edge Clustering Coefficient(EBB); community structure; community discovery计 算 机 工 程Computer Engineering 第34卷 第19期Vol.34 No.19 2008年10月October 2008·网络与通信·文章编号:1000—3428(2008)19—0092—02文献标识码:A中图分类号:TP301.61 概述复杂网络中社区发现(community finding)的研究起源于社会学的研究工作。

能够在大型复杂网络中自动搜寻或发现“社区”具有重要的实际应用价值[1],如社会网络中的社区可能代表的是根据兴趣或背景而形成的真实的社会团体,引文网络中的社区或许代表的是针对同一主题的相关论文,万维网中的社区或许就是讨论相关主题的若干网站,而生物化学网络或者电子电路网络中的社区可能就是某一类功能单元。

发现这些网络中的社区有助于更有效地理解和开发这些网络。

与社区发现相关的成熟理论包括图论以及模式识别。

Wu 和Huberman 的研究成果[2]以及Newman 和Girvan 的研究成果[3]使得复杂网络中的社区发现成为近几年复杂网络领域的一个研究热点并形成了复杂网络中的一个重要研究方向。

Newman 和Girvan 把社区发现问题定义为将网络节点划分成若干组,使得组内的节点之间连接比较稠密而不同组节点之间的连接则比较稀少。

Newman 和Girvan 在其研究中提出了基于边介数(edge betweenness)概念的分割方法,尽管该方法计算量很大,但由于其性能优越而成为社区发现研究的重要参考模型。

对于一般简单图的社区发现,也可以称之为基于图的聚类,把具有相同或者相似属性的有共性的节点聚合到一起,形成一个个的聚类[2]。

这方面的方法有很多,最常用的有G-N 算法、谱二分法和层次聚类法。

尽管人们对复杂网络的社区发现问题已进行了大量的研究,但是仍然存在一些目前无法解决的基本问题[4],如社区的概念虽然大量使用,但却缺少严格的数学定义;大多数社区发现算法虽然性能优越,但所需要的计算量却很大;更为关键的是,很多算法不是针对异构数据集。

这说明复杂网络中社区发现的研究还远没有成为体系,还有很多工作待完善。

2 边的聚集系数定义为了刻画描述一个网络,通常有这样几个角度,一个是这个网络中点与点之间的距离以及整个网络的平均距离;另一个是每个节点的度以及整个网络的平均的度;还一个就是节点之间聚集的情况,点的聚集系数这个概念是用来体现对于某个节点A 来讲,如果B 和C 都是A 的邻接点(朋友关系),那么B 和C 两者之间也有邻接(朋友)的可能性。

定义1 某节点n 的聚集系数(node clustering coefficient) ()C n 如下定义:(1)假设某节点n 的度是k ,则该节点的这些邻居之间可能形成边的最大数是:()(1)/2T n k k =−(2)()E n 表示图中这些邻居之间实际的边的个数,则 ()()/()C n E n T n =定义2 一个网络的聚集系数为这个网络中节点的聚集系数的平均值。

如图1所示,节点1的度为5,所以与它相连接的5个顶点之间最多存在54/210×=条边;而实际上另外5个顶点相互之间存在6条边,所以节点1的聚集系数是6/100.6=。

基金项目:国家自然科学基金资助项目(60675030)作者简介:胡 健(1967-),男,副教授、博士,主研方向:数据挖掘,智能信息检索;董跃华,副教授;杨炳儒,教授、博士生导师 收稿日期:2008-08-01 E-mail :euguenehu@—93—123546图1 求凝聚系数示例图G-N 算法借助点介数的概念,引入了边介数的度量方法,类似的也借助顶点的聚集系数,来引入某一条边的聚集系数(Edge Clustering Coefficient, ECC)概念。

假设有一条边ij E ,其顶点为i 和j ,考虑网络中是否有以及有多少个另外的节点k 与i ,j 都相邻,即存在另外5条边jk E ,ik E 与ij E 形成三角环(即边数为3的闭合路径),若一个三角环包含一条连接不同社区的边,则该三角环中的另2条边中的某一条仍然连接这2个社区的可能性将很大。

但是由于连接不同社区的边非常稀少,因此包含一条给定的连接不同社区的边的三角环可能很多。

因此,将一条边的边聚集系数定义为包含该边的三角环所占比例:1min(1,1)ij ij i j z C k k +=−−其中,i k ,j k 分别表示节点i 和j 的度;ij z 表示网络中实际包含该边的三角环的个数。

上式中的分母表示包含该边的最大可能的三角环的个数。

在图1中,边3,6E 的节点3n 和6n 的度数分别是5和4,则最多形成min(51,41)3−−=个三角环,而包含3,6E 的三角环有3个1,3,6∆,3,4,6∆,3,5,6∆,所以,3,61C =。

3 ECC 算法描述首先给出关于简单图中社区的定义,一个社区V 实际上是整个网络G 中部分子图,即V G ⊂。

对于V 中的一个节点i ,用i k 表示该节点的度数,而在计算该节点的度数时,其邻接点分为来自V 内部(即,()in j V i i j k V A ∈=∑)和V 外部(即,()out j V i i j k V A ∉=∑)2个部分,所以有()()()in out i i i k V k V k V =+。

下面给出一个社区的紧密程度在2个级别上的定义。

定义3 如果在一个社区V 中,每个节点的()in i k V 都大于()out i k V ,即()()in out i i k V k V i V >∀∈ 则称该社区是强连接社区。

定义4 如果在一个社区V 中,所有节点的()in i k V 之和大于()out i k V 的和,即()()in out i ii Vi Vk V kV i V ∈∈>∀∈∑∑ 则称该社区是弱连接社区。

在本实验中,只有满足上述2个定义的子图才作为一个社区,从开始的整个图,不断地去除边,不存在满足上述定义的社区时便停止程序。

整个方法步骤与G-N 算法类似,都是基于去边,但不是根据边介数选择要去除的边,而是根据边的聚集系数这一新指标。

下面是该算法步骤:(1)计算整个图中的每一条边的聚集系数ij C ;(2)把其中聚集系数最小的边ij E 去除掉;(3)重新计算以i 和j 为顶点的所有边的聚集系数,其他的边不需要重新计算;(4)返回步骤(2),直到网络中不存在任何符合上述定义的社区。

4 实验及算法分析以安然公司邮件数据集[5]作为测试数据集。

首先进行预处理,导入到MySql 数据库中后,分别用数据库中的几个表保存响应信息,经过统计,在网络上与安然公司150个领导人有邮件联系的共计87 474人,其中公司内部有34 885人,外部有52 589人。

参照其他邮件数据集预处理的经验,对整个网络进行限制,规定只留下满足如下条件的人员:(1)这个人的邮件总数超过30,而如果2个人的互通邮件总数超过 6封才在2个人之间画一条边,另外同时对于任意存在边的 2个节点之间的这条线,依据两者之间的邮件数可以作为这条边的权重。

显然通过限制每个人的至少邮件总数以及5个人的至少邮件总数,可以调整整个网络的大小。

Prefuse [6]是一个基于Java 的网络可视化工具包,用这个软件把结果显示。

通过调整每个人互通邮件的最少数量,得到不同大小的图。

然后用ECC 算法进行社区分析后,部分截图见图2。

对于一个含有n 个节点m 条边的图,整个算法的运行时间为42(/)O m n ,而G-N 算法的时间复杂度是2()O m n 。

本算法与常用的4种算法的时间复杂度进行了对比(见表1)。

对于稀疏图,本算法计算速度要比G-N 算法快一个数量级。

相关主题