一种社交网络重叠社区发现系统及其方法

文档序号:6625340阅读:556来源:国知局
一种社交网络重叠社区发现系统及其方法
【专利摘要】本发明提出了一种社交网络的重叠社区发现系统及其方法,由数据采集模块对实际网络数据的采集;网络转换模块对采集数据的转换,以邻接矩阵的形式存储原始网络信息;非重叠社区获取模块采用非重叠社区发现方法对网络进行处理,初始时认为单个节点代表一个社区,然后每次合并使模块度增量最大的两个社区,反复迭代直到模块度为最大值,从而得到非重叠社区;重叠社区获取模块通过计算社区中节点与其他社区的隶属度,判断是否应将该节点加入对应社区,从而可以得到重叠节点,同时发现重叠社区。本发明采用的重叠社区发现方法兼顾了社区发现的准确度以及时间复杂度,可用于处理拥有众多节点的社交网络数据。
【专利说明】一种社交网络重叠社区发现系统及其方法

【技术领域】
[0001]本发明涉及数据挖掘和复杂网络研究领域,尤其涉及一种社交网络重叠社区发现系统及其方法。

【背景技术】
[0002]现实世界中存在的许多复杂系统大多可以用复杂网络进行描述。例如:新陈代谢网,蛋白质交互网,基因网络,科学家合著网络,电力网,航空网以及社交网络等等。一直以来人们对于复杂网络的研究从未间断,近些年来,由于互联网的快速发展使得人们越来越关注复杂网络,尤其是社交网络,并进行了大量的研究工作。
[0003]一般而言,复杂网络由于自身内部结构较为复杂,直接对整个网络进行研究是一件十分困难的事,因此人们一般通过研究网络的社区结构从而更好地理解整个网络。所谓社区,是节点的集合,在社区内部节点连接很紧密,但是属于不同社区的节点连接则比较稀疏。社区结构普遍存在于复杂网络中,社交网络作为复杂网络的一类也已被证明网络内部具有社区结构,很多用于复杂网络的社区发现算法也可用于社交网络。
[0004]当前,对于网络社区结构发现的研究已经有不少成果,提出了众多社区发现方法。早期的研究主要集中于非重叠社区发现,即认为单个节点只能属于一个社区。典型的方法有Kernighan-Lin方法、基于Laplace矩阵的谱平分法以及Newman等人提出的FastNewman方法和CNM方法,其中CNM方法还是时间复杂度最低的算法之一。但是后来人们研究发现实际生活中社区有可能是重叠的,即一个节点有可能同时属于多个社区。例如在社交网络中一个人可能同时参加多个讨论小组。最早的重叠社区方法是Palla等人提出的K-clique派系过滤算法,它将相邻的K-clique进行合并,而属于多个K-clique的节点便构成了网络中社区的重叠部分。该方法可有效的检测出网络中的社区,然而该方法需提前告知网络社区的数目,而实际网络往往不知道最终的社区数目,这使得该方法的使用受到限制。网络重叠社区的发现对于深入了解网络的结构特征具有重要的意义,从而提供更有效、更具个性化的服务。社交网络由于数据量较大,因此要求社区发现方法的时间复杂度尽可能低的同时也具有较高的划分准确度。而现有的不少方法往往时间复杂度低却难以保证划分准确度,具有较高的划分准确度的方法时间复杂度也很高。


【发明内容】

[0005]技术问题:本发明的目的在于提供一种社交网络重叠社区发现系统及其方法,解决现有技术对重叠社区发现准确率和时间复杂度难以兼顾的问题。
[0006]技术方案:本发明提出一种可用于社交网络的重叠社区发现系统,包括数据采集模块、网络转换模块、非重叠社区获取模块、重叠社区获取模块以及显示模块。其中数据采集模块主要实现对实际网络数据的采集;网络转换模块实现对采集数据的转换,以邻接矩阵的形式存储原始网络信息;非重叠社区获取模块则采用非重叠社区发现方法对网络进行处理,初始时认为单个节点代表一个社区,然后每次合并使模块度增量最大的两个社区,反复迭代直到模块度为最大值,从而得到非重叠社区;重叠社区获取模块通过计算社区中节点与其他社区的隶属度,判断是否应将该节点加入对应社区,从而可以得到重叠节点,同时发现重叠社区;显示模块主要将最终获取的重叠社区以网络节点图的形式直观地展示。
[0007]本发明还提出了一种可用于社交网络的重叠社区发现方法,首先将采集实际网络数据,然后采用非重叠社区发现方法找出网络中的非重叠社区,最后在非重叠社区的基础上找出其中的重叠节点,从而得到重叠社区。
[0008]为实现上述目的,本发明技术方案包括如下步骤:
[0009]步骤一、采集实际网络数据,以邻接矩阵的形式存储原始网络信息。
[0010]步骤二、采用非重叠社区发现方法对网络进行处理,得到非重叠社区。
[0011](一 )将单个节点视为一个社区,同时进行变量初始化设置。
[0012]( 二)计算任意两个社区合并之后的模块度增量AQ0
[0013](三)重复第二步直到模块度Q达到最大值,此时认为社区划分达到最优化,算法结束。
[0014]步骤三、通过计算社区中节点与其他社区的隶属度,判断是否应将该节点加入对应社区,从而可以得到重叠节点,也发现网络中的重叠社区并将其展示。
[0015]一种社交网络重叠社区发现系统,其特征在于,包括数据采集模块、网络转换模块、非重置社区获取1?块和重置社区获取1旲块;
[0016]由数据采集模块实现对实际网络数据的采集;
[0017]网络转换模块对采集的数据进行转换,以邻接矩阵的形式存储原始网络信息;
[0018]非重叠社区获取模块采用非重叠社区发现方法对网络进行处理,初始时认为单个节点代表一个社区,然后每次合并使模块度增量最大的两个社区,反复迭代直到模块度为最大值,从而得到非重叠社区;
[0019]在得到的非重叠社区基础上,由重叠社区获取模块通过计算社区中节点与其他社区的隶属度,判断是否应将该节点加入对应社区,从而得到重叠节点,同时发现重叠社区。
[0020]一种社交网络重叠社区发现方法,其特征在于,包括以下步骤:
[0021](I)采集实际网络数据,以邻接矩阵的形式存储原始网络信息;
[0022](2)采用非重叠社区发现方法对网络进行处理,得到非重叠社区;
[0023](3)在步骤(2)中得到的非重叠社区基础上,通过计算社区中节点与其他社区的隶属度,判断是否应将该节点加入对应社区,从而得到重叠节点,也发现网络中的重叠社区。
[0024]第⑴步中,网络中任意两节点存在连接关系,在邻接矩阵相应位置为1,反之,对应位置为O。
[0025]第(2)步中,使用非重叠社区发现方法得到非重叠社区时,初始时单个节点认为是一个社区,然后每次合并两个模块度增量最大的社区,当模块度达到最大值时停止;模块度增量定义如下:
[0026]AQ = eiJ+eJ1-2aiaJ = 2 (Gij-Biaj)
[0027]其中eij表示连接社区i与社区j的节点的边与网络总边数之比,而eji则表示连接社区j与社区i的节点的边与网络总边数之比,%、Bj分别表示与社区1、社区j中节点相连的边与整个网络总边数之比;进行社区合并时计算任意两个社区合并之后的模块度增量Λ Q值,将使模块度增量ΛQ取最大值时的两个社区进行合并。
[0028]第(2)步中,在非重叠社区发现方法确定何时结束社区划分是通过模块度Q达到最大值完成的,
[0029]δ=:5τΣ Σ HK -■^l)
丄讯 ceC a,veF2.1--
[0030]其中Auv是邻接矩阵,m是网络总边数,V是所有节点的集合,C表示所有社区的集合,ku和kv分别是节点u和V的度。δ cu表示节点U是否属于社区C,属于的话该值为1,反之为O。
[0031]第(3)步中,通过第⑵得到非重叠社区之后,计算社区中节点与其他社区的隶属度,隶属度的求取如下:
[0032]B{it,c) = ^^

ref'
[0033]euv表示连接节点u和V的边,当euv = I时,表示节点u和V相连,当euv = O时,表示两节点没有连接,隶属度反应了节点u与社区c之间的紧密关系;判断将节点添加到社区之后整个网络的模块度Qtl值是否大于初始时的整个网络的模块度Q。值,大于则将节点添加至该社区,反之,保持社区不变;
[0034]Q0值计算公式:
[0035]& = Σ B(ux.)B(v'c、(Ain
[0036]其中Auv是邻接矩阵,m是网络总边数,C表示所有社区的集合,V是所有节点的集合,ku和kv分别是节点u和V的度,B (u, c)和B (V, c)分别是节点u和v与社区c之间的隶属度;通过计算社区中节点与其他社区间的隶属度,同时在一定条件下比较Qtl值,决定是否将节点添加至对应社区;一个节点属于多个社区,则认为该节点为重叠节点,而具有重叠节点的社区则是重叠社区。
[0037]第(3)步,得到重叠社区之后,评价划分社区的准确度,给出划分准确度指标CLA:
[0038]ξ-χ{|--η5,ι}
C-L-/1--

η
[0039]其中,分母η表示网络总节点数,分子表示正确划分节点的数目A表示实际的社区集合C= IC1, C2,…,CkJ中第i个社区,Si表示社区发现算法划分出的社区集合S={s1; s2,…,sk2}中第j个社区,Ici η S」表示社区Ci和社区Si中相同节点的个数;
max |£|?ΠΑ||表示社区Ci与Si中每个社区求取相同节点个数,然后找出其中的最大值;最后对社会集合C中每一个社区重复这一步骤,得到正确划分的节点个数,与网络总节点数相除得到划分准确度。
[0040]有益效果:本发明首先使用时间复杂度低的非重叠社区方法得到非重叠社区,这保证了方法可用于大规模的社交网络,然后在从非重叠社区中寻找其中的重叠节点,这确保了与其他重叠社区发现方法相比具有较高的社区发现准确率。另外本方法只需输入原始网络数据即可得到最终网络的重叠社区,无需设定初始的社区数目。本发明方法可用于处理社交网络这类复杂的数据集。

【专利附图】

【附图说明】
[0041]图1是本发明一个实施例的社交网络重叠社区发现系统模块图;
[0042]图2是本发明一个实施例的非重叠社区获取模块算法流程图;
[0043]图3是本发明一个实施例的重叠社区获取模块算法流程图;
[0044]图4是本发明另一个实施例的典型重叠社区网络图;
[0045]图5是本发明另一个实施例的重叠社区发现的示意图;
[0046]图6是本发明方法对karate数据集处理的划分结果图;
[0047]图7是本发明方法对strike数据集处理的划分结果图;
[0048]图8是本发明方法对polbooks数据集处理的划分结果图;
[0049]图9是本发明方法对football数据集处理的划分结果图;
[0050]图10是本发明方法与其他算法对Facebook数据集处理的运行时间对比图。

【具体实施方式】
[0051]下面结合附图和【具体实施方式】对本发明作进一步详细描述。
[0052]图1为本发明使用的一个实施例的社交网络重叠社区发现系统的模块图。本实施例中社交网络重叠社区发现系统包括:数据采集模块101、网络转换模块102、非重叠社区获取模块103、重叠社区获取模块104以及显示模块105。在本实施方式中发现重叠社区可分为三个步骤:
[0053]步骤一、采集实际网络数据,以邻接矩阵的形式存储原始网络信息。
[0054]该步骤可在数据采集模块101和网络转换模块102完成。对实际网络数据进行相应的处理,在社交网络中节点一般表示人,而边一般表示人与人之间的关系。社交网络数据集可从网络上获取,因此在这一步骤中主要工作是将数据集转化成邻接矩阵的形式存储。在本发明实例中使用图4中的网络,得到邻接矩阵Auv。
[0055]

【权利要求】
1.一种社交网络重叠社区发现系统,其特征在于,包括数据采集模块、网络转换模块、非重置社区获取|旲块和重置社区获取|旲块; 由数据采集模块实现对实际网络数据的采集; 网络转换模块对采集的数据进行转换,以邻接矩阵的形式存储原始网络信息; 非重叠社区获取模块采用非重叠社区发现方法对网络进行处理,初始时认为单个节点代表一个社区,然后每次合并使模块度增量最大的两个社区,反复迭代直到模块度为最大值,从而得到非重叠社区; 在得到的非重叠社区基础上,由重叠社区获取模块通过计算社区中节点与其他社区的隶属度,判断是否应将该节点加入对应社区,从而得到重叠节点,同时发现重叠社区。
2.一种社交网络重叠社区发现方法,其特征在于,包括以下步骤: (1)采集实际网络数据,以邻接矩阵的形式存储原始网络信息; (2)采用非重叠社区发现方法对网络进行处理,得到非重叠社区; (3)在步骤(2)中得到的非重叠社区基础上,通过计算社区中节点与其他社区的隶属度,判断是否应将该节点加入对应社区,从而得到重叠节点,也发现网络中的重叠社区。
3.根据权利要求2所述的社交网络重叠社区发现方法,其特征在于, 第(I)步中,网络中任意两节点存在连接关系,在邻接矩阵相应位置为1,反之,对应位置为O。
4.根据权利要求2所述的社交网络重叠社区发现方法,其特征在于, 第(2)步中,使用非重叠社区发现方法得到非重叠社区时,初始时单个节点认为是一个社区,然后每次合并两个模块度增量最大的社区,当模块度达到最大值时停止;模块度增量定义如下:
AQ — Sjj+6ji—2ajaj 一 2 (ejj-Sjaj) 其中eu表示连接社区i与社区j的节点的边与网络总边数之比,而b则表示连接社区j与社区i的节点的边与网络总边数之比,A*分别表示与社区1、社区j中节点相连的边与整个网络总边数之比;进行社区合并时计算任意两个社区合并之后的模块度增量AQ值,将使模块度增量AQ取最大值时的两个社区进行合并。
5.根据权利要求2或4所述的社交网络重叠社区发现方法,其特征在于, 第(2)步中,在非重叠社区发现方法确定何时结束社区划分是通过模块度Q达到最大值完成的, O=-Y Y δ δ (A -k^-)
Im ^ ^uv Jm
ΔΙη ceQ u,veVΔι/ι 其中Auv是邻接矩阵,m是网络总边数,V是所有节点的集合,C表示所有社区的集合,ku和kv分别是节点u和V的度。δ cu表示节点u是否属于社区C,属于的话该值为1,反之为O0
6.根据权利要求5所述的社交网络重叠社区发现方法,其特征还在于, 第(3)步中,通过第(2)得到非重叠社区之后,计算社区中节点与其他社区的隶属度,隶属度的求取如下:
YjeUV B(u,c)=^-

veV euv表示连接节点u和V的边,当euv = I时,表示节点u和V相连,当euv = O时,表示两节点没有连接,隶属度反应了节点U与社区C之间的紧密关系;判断将节点添加到社区之后整个网络的模块度Qtl值是否大于初始时的整个网络的模块度Q。值,大于则将节点添加至该社区,反之,保持社区不变; Q0值计算公式: β0=^-Σ Σ β(κ.)β(ν,ο(Αιη-^~) 其中Auv是邻接矩阵,m是网络总边数,C表示所有社区的集合,V是所有节点的集合,ku和kv分别是节点u和V的度,B (u, c)和B (V, c)分别是节点u和v与社区c之间的隶属度;通过计算社区中节点与其他社区间的隶属度,同时在一定条件下比较%值,决定是否将节点添加至对应社区;一个节点属于多个社区,则认为该节点为重叠节点,而具有重叠节点的社区则是重叠社区。
7.根据权利要求2所述的社交网络重叠社区发现方法,其特征还在于, 第(3)步,得到重叠社区之后,评价划分社区的准确度,给出划分准确度指标CLA:
Xmaxlfiqnsj} CLA==I_-J-

η 其中,分母η表示网络总节点数,分子表示正确划分节点的数目A表示实际的社区集合C= {C1; C2,…,CkJ中第i个社区,Si表示社区发现算法划分出的社区集合S={s1; s2,…,sk2}中第j个社区,Ici η S」表示社区Ci和社区Si中相同节点的个数;11^\|@|€;门^1表示社区(;与匕中每个社区求取相同节点个数,然后找出其中的最大值;最后对社会集合C中每一个社区重复这一步骤,得到正确划分的节点个数,与网络总节点数相除得到划分准确度。
【文档编号】G06F17/30GK104166731SQ201410436259
【公开日】2014年11月26日 申请日期:2014年8月29日 优先权日:2014年8月29日
【发明者】张卓, 游煌斌, 张学武, 范新南, 李敏, 付怀勇 申请人:河海大学常州校区
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1