CN104166731B - 一种社交网络重叠社区发现系统及其方法 - Google Patents
一种社交网络重叠社区发现系统及其方法 Download PDFInfo
- Publication number
- CN104166731B CN104166731B CN201410436259.0A CN201410436259A CN104166731B CN 104166731 B CN104166731 B CN 104166731B CN 201410436259 A CN201410436259 A CN 201410436259A CN 104166731 B CN104166731 B CN 104166731B
- Authority
- CN
- China
- Prior art keywords
- community
- mrow
- node
- network
- msub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 239000011159 matrix material Substances 0.000 claims abstract description 17
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000005192 partition Methods 0.000 claims description 5
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 238000011156 evaluation Methods 0.000 claims description 2
- 238000006243 chemical reaction Methods 0.000 abstract description 10
- 238000012545 processing Methods 0.000 abstract description 5
- 238000011160 research Methods 0.000 description 6
- 235000005156 Brassica carinata Nutrition 0.000 description 4
- 244000257790 Brassica carinata Species 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 241001077262 Conga Species 0.000 description 1
- 241000030538 Thecla Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000004060 metabolic process Effects 0.000 description 1
- 102000004169 proteins and genes Human genes 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提出了一种社交网络的重叠社区发现系统及其方法,由数据采集模块对实际网络数据的采集;网络转换模块对采集数据的转换,以邻接矩阵的形式存储原始网络信息;非重叠社区获取模块采用非重叠社区发现方法对网络进行处理,初始时认为单个节点代表一个社区,然后每次合并使模块度增量最大的两个社区,反复迭代直到模块度为最大值,从而得到非重叠社区;重叠社区获取模块通过计算社区中节点与其他社区的隶属度,判断是否应将该节点加入对应社区,从而可以得到重叠节点,同时发现重叠社区。本发明采用的重叠社区发现方法兼顾了社区发现的准确度以及时间复杂度,可用于处理拥有众多节点的社交网络数据。
Description
技术领域
本发明涉及数据挖掘和复杂网络研究领域,尤其涉及一种社交网络重叠社区发现系统及其方法。
背景技术
现实世界中存在的许多复杂系统大多可以用复杂网络进行描述。例如:新陈代谢网,蛋白质交互网,基因网络,科学家合著网络,电力网,航空网以及社交网络等等。一直以来人们对于复杂网络的研究从未间断,近些年来,由于互联网的快速发展使得人们越来越关注复杂网络,尤其是社交网络,并进行了大量的研究工作。
一般而言,复杂网络由于自身内部结构较为复杂,直接对整个网络进行研究是一件十分困难的事,因此人们一般通过研究网络的社区结构从而更好地理解整个网络。所谓社区,是节点的集合,在社区内部节点连接很紧密,但是属于不同社区的节点连接则比较稀疏。社区结构普遍存在于复杂网络中,社交网络作为复杂网络的一类也已被证明网络内部具有社区结构,很多用于复杂网络的社区发现算法也可用于社交网络。
当前,对于网络社区结构发现的研究已经有不少成果,提出了众多社区发现方法。早期的研究主要集中于非重叠社区发现,即认为单个节点只能属于一个社区。典型的方法有Kernighan-Lin方法、基于Laplace矩阵的谱平分法以及Newman等人提出的FastNewman方法和CNM方法,其中CNM方法还是时间复杂度最低的算法之一。但是后来人们研究发现实际生活中社区有可能是重叠的,即一个节点有可能同时属于多个社区。例如在社交网络中一个人可能同时参加多个讨论小组。最早的重叠社区方法是Palla等人提出的K-clique派系过滤算法,它将相邻的K-clique进行合并,而属于多个K-clique的节点便构成了网络中社区的重叠部分。该方法可有效的检测出网络中的社区,然而该方法需提前告知网络社区的数目,而实际网络往往不知道最终的社区数目,这使得该方法的使用受到限制。网络重叠社区的发现对于深入了解网络的结构特征具有重要的意义,从而提供更有效、更具个性化的服务。社交网络由于数据量较大,因此要求社区发现方法的时间复杂度尽可能低的同时也具有较高的划分准确度。而现有的不少方法往往时间复杂度低却难以保证划分准确度,具有较高的划分准确度的方法时间复杂度也很高。
发明内容
技术问题:本发明的目的在于提供一种社交网络重叠社区发现系统及其方法,解决现有技术对重叠社区发现准确率和时间复杂度难以兼顾的问题。
技术方案:本发明提出一种可用于社交网络的重叠社区发现系统,包括数据采集模块、网络转换模块、非重叠社区获取模块、重叠社区获取模块以及显示模块。其中数据采集模块主要实现对实际网络数据的采集;网络转换模块实现对采集数据的转换,以邻接矩阵的形式存储原始网络信息;非重叠社区获取模块则采用非重叠社区发现方法对网络进行处理,初始时认为单个节点代表一个社区,然后每次合并使模块度增量最大的两个社区,反复迭代直到模块度为最大值,从而得到非重叠社区;重叠社区获取模块通过计算社区中节点与其他社区的隶属度,判断是否应将该节点加入对应社区,从而可以得到重叠节点,同时发现重叠社区;显示模块主要将最终获取的重叠社区以网络节点图的形式直观地展示。
本发明还提出了一种可用于社交网络的重叠社区发现方法,首先将采集实际网络数据,然后采用非重叠社区发现方法找出网络中的非重叠社区,最后在非重叠社区的基础上找出其中的重叠节点,从而得到重叠社区。
为实现上述目的,本发明技术方案包括如下步骤:
步骤一、采集实际网络数据,以邻接矩阵的形式存储原始网络信息。
步骤二、采用非重叠社区发现方法对网络进行处理,得到非重叠社区。
(一)将单个节点视为一个社区,同时进行变量初始化设置。
(二)计算任意两个社区合并之后的模块度增量ΔQ。
(三)重复第二步直到模块度Q达到最大值,此时认为社区划分达到最优化,算法结束。
步骤三、通过计算社区中节点与其他社区的隶属度,判断是否应将该节点加入对应社区,从而可以得到重叠节点,也发现网络中的重叠社区并将其展示。
一种社交网络重叠社区发现系统,其特征在于,包括数据采集模块、网络转换模块、非重叠社区获取模块和重叠社区获取模块;
由数据采集模块实现对实际网络数据的采集;
网络转换模块对采集的数据进行转换,以邻接矩阵的形式存储原始网络信息;
非重叠社区获取模块采用非重叠社区发现方法对网络进行处理,初始时认为单个节点代表一个社区,然后每次合并使模块度增量最大的两个社区,反复迭代直到模块度为最大值,从而得到非重叠社区;
在得到的非重叠社区基础上,由重叠社区获取模块通过计算社区中节点与其他社区的隶属度,判断是否应将该节点加入对应社区,从而得到重叠节点,同时发现重叠社区。
一种社交网络重叠社区发现方法,其特征在于,包括以下步骤:
(1)采集实际网络数据,以邻接矩阵的形式存储原始网络信息;
(2)采用非重叠社区发现方法对网络进行处理,得到非重叠社区;
(3)在步骤(2)中得到的非重叠社区基础上,通过计算社区中节点与其他社区的隶属度,判断是否应将该节点加入对应社区,从而得到重叠节点,也发现网络中的重叠社区。
第(1)步中,网络中任意两节点存在连接关系,在邻接矩阵相应位置为1,反之,对应位置为0。
第(2)步中,使用非重叠社区发现方法得到非重叠社区时,初始时单个节点认为是一个社区,然后每次合并两个模块度增量最大的社区,当模块度达到最大值时停止;模块度增量定义如下:
ΔQ=eij+eji-2aiaj=2(eij-aiaj)
其中eij表示连接社区i与社区j的节点的边与网络总边数之比,而eji则表示连接社区j与社区i的节点的边与网络总边数之比,ai、aj分别表示与社区i、社区j中节点相连的边与整个网络总边数之比;进行社区合并时计算任意两个社区合并之后的模块度增量ΔQ值,将使模块度增量ΔQ取最大值时的两个社区进行合并。
第(2)步中,在非重叠社区发现方法确定何时结束社区划分是通过模块度Q达到最大值完成的,
其中Auv是邻接矩阵,m是网络总边数,V是所有节点的集合,C表示所有社区的集合,ku和kv分别是节点u和v的度。δcu表示节点u是否属于社区c,属于的话该值为1,反之为0。
第(3)步中,通过第(2)得到非重叠社区之后,计算社区中节点与其他社区的隶属度,隶属度的求取如下:
euv表示连接节点u和v的边,当euv=1时,表示节点u和v相连,当euv=0时,表示两节点没有连接,隶属度反应了节点u与社区c之间的紧密关系;判断将节点添加到社区之后整个网络的模块度Q0值是否大于初始时的整个网络的模块度Q0值,大于则将节点添加至该社区,反之,保持社区不变;
Q0值计算公式:
其中Auv是邻接矩阵,m是网络总边数,C表示所有社区的集合,V是所有节点的集合,ku和kv分别是节点u和v的度,B(u,c)和B(v,c)分别是节点u和v与社区c之间的隶属度;通过计算社区中节点与其他社区间的隶属度,同时在一定条件下比较Q0值,决定是否将节点添加至对应社区;一个节点属于多个社区,则认为该节点为重叠节点,而具有重叠节点的社区则是重叠社区。
第(3)步,得到重叠社区之后,评价划分社区的准确度,给出划分准确度指标CLA:
其中,分母n表示网络总节点数,分子表示正确划分节点的数目;Ci表示实际的社区集合C={C1,C2,…,Ck1}中第i个社区,Si表示社区发现算法划分出的社区集合S={S1,S2,…,Sk2}中第j个社区,|Ci∩Sj|表示社区Ci和社区Si中相同节点的个数;表示社区Ci与Si中每个社区求取相同节点个数,然后找出其中的最大值;最后对社会集合C中每一个社区重复这一步骤,得到正确划分的节点个数,与网络总节点数相除得到划分准确度。
有益效果:本发明首先使用时间复杂度低的非重叠社区方法得到非重叠社区,这保证了方法可用于大规模的社交网络,然后在从非重叠社区中寻找其中的重叠节点,这确保了与其他重叠社区发现方法相比具有较高的社区发现准确率。另外本方法只需输入原始网络数据即可得到最终网络的重叠社区,无需设定初始的社区数目。本发明方法可用于处理社交网络这类复杂的数据集。
附图说明
图1是本发明一个实施例的社交网络重叠社区发现系统模块图;
图2是本发明一个实施例的非重叠社区获取模块算法流程图;
图3是本发明一个实施例的重叠社区获取模块算法流程图;
图4是本发明另一个实施例的典型重叠社区网络图;
图5是本发明另一个实施例的重叠社区发现的示意图;
图6是本发明方法对karate数据集处理的划分结果图;
图7是本发明方法对strike数据集处理的划分结果图;
图8是本发明方法对polbooks数据集处理的划分结果图;
图9是本发明方法对football数据集处理的划分结果图;
图10是本发明方法与其他算法对Facebook数据集处理的运行时间对比图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细描述。
图1为本发明使用的一个实施例的社交网络重叠社区发现系统的模块图。本实施例中社交网络重叠社区发现系统包括:数据采集模块101、网络转换模块102、非重叠社区获取模块103、重叠社区获取模块104以及显示模块105。在本实施方式中发现重叠社区可分为三个步骤:
步骤一、采集实际网络数据,以邻接矩阵的形式存储原始网络信息。
该步骤可在数据采集模块101和网络转换模块102完成。对实际网络数据进行相应的处理,在社交网络中节点一般表示人,而边一般表示人与人之间的关系。社交网络数据集可从网络上获取,因此在这一步骤中主要工作是将数据集转化成邻接矩阵的形式存储。在本发明实例中使用图4中的网络,得到邻接矩阵Auv。
其中u、v代表网络中的任意两个节点,对应于社交网络为单个个体,例如A12为1,表示节点1与节点2是相连的;而A19为0,则表示这两个节点没有连接。设网络为G(V,E),其中V是网络中节点的集合,E是边的集合,具有n个节点和m条边,节点u的度ku可用下式表示:
步骤二、采用非重叠社区发现方法对网络进行处理,得到非重叠社区。
这一步主要在非重叠社区获取模块103实现。图2展示了在这一模块中进行的算法流程图。在本步骤中借用了非重叠社区发现算法CNM的思想进行社区发现,这是因为CNM算法具有较低的时间复杂度,十分适用于社交网络这类大数据的网络。算法的主要流程如下:
(一)将单个节点视为一个社区,同时进行变量初始化设置。
步骤201、将网络中的每个节点都当成一个社区,因此以图4中的网络为例,在初始时共有11个社区。
步骤202、对eij、ai以及模块度增量ΔQ也进行相应的初始化。其中m为网络总边数,ki为节点i的度,eij表示连接社区i与社区j的节点的边与网络总边数之比,ai表示与社区i中节点相连的边与整个网络总边数之比。若节点i与j相连,则认为eij为1/2m,ai的初始值为ki/2m。下式则是社区i与社区j的模块度增量ΔQij计算公式,该公式是从CNM算法中得到的。
(二)计算任意两个社区合并之后的模块度增量ΔQ。
步骤203、计算任意两个社区合并之后的模块度增量ΔQ。
初始时模块度增量的计算在上一步中已经给出,模块度增量的计算用于判断需要将哪些社区合并,计算公式如下:
ΔQ=eij+eji-2aiaj=2(eij-aiaj) (3)
其中eij表示连接社区i与社区j的节点的边与网络总边数之比,ai表示与社区i中节点相连的边与整个网络总边数之比。任意两个社区合并之后的模块度增量都将分别计算。
(三)重复第二步直到模块度Q达到最大值,此时认为社区划分达到最优化,算法结束。
模块度的计算公式如下:
其中Auv是网络中的任意两个节点u和v的邻接矩阵,m是网络总边数,C表示所有社区的集合,ku和kv分别是节点u和v的度。δcu表示节点u是否属于社区c,属于的话该值为1,反之为0。一般认为,Q的最大值对应的社团结构就是网络的社团结构。Q的上限为Q=1,Q越接近这个值,就说明网络的社团结构越明显。实际网络中,该值通常位于0.3到0.7之间。
步骤204、判断最大的模块度增量是否小于0。最大的模块度增量ΔQ大于0时表示模块度在增加,此时网络中的社区还可以继续合并,如社区i和社区j合并之后使模块度增量取最大值,则将它们合并为一个社区,同时更新整个网络,如步骤205所示;若均小于0则表示模块度Q已达到最大值,此时社区划分达到最佳。之所以计算模块度增量ΔQ而不直接计算模块度,是由于模块度的计算量相当大,会使得整个算法时间复杂度增加。
前一步中选取模块度增量ΔQ达到最大值的两个社区进行合并,然后更新整个网络,再继续迭代,求取任意两个社区合并之后的模块度增量ΔQ,直到ΔQ小于0,此时模块度达到最大值Q,认为社区划分达到最优化,算法结束,得到非重叠社区。
步骤三、通过计算社区中节点与其他社区的隶属度,判断是否应将该节点加入对应社区,从而可以得到重叠节点,也发现网络中的重叠社区并将其展示。
该步骤可在重叠社区获取模块和显示模块中实现。图3展示了在重叠社区获取模块中进行的算法流程图。显示模块将最终获取的重叠社区以网络节点图的形式直观地展示,一般可用液晶屏实现。
步骤301、输入步骤二中得到非重叠社区数据。
步骤302、计算节点与除自身所在社区之外所有其他社区的隶属度,对于节点u和社区c,它们之间的隶属度B(u,c)的求取如下所示:
B(u,c)表示节点u隶属于社区c的程度。如果u的所有邻接节点都在社区c中B(u,c)=1,反之,B(u,c)<1。隶属度反应了节点与社区之间的紧密关系,从上式中也可看出分子是节点与社区中节点连接的边之和,分母则是节点与整个网络中节点连接的边之和。
步骤303、判断节点与社区的隶属度是否大于等于0.4。若隶属度不满足这个条件,说明节点与该社区之间的连接较为稀疏,则不做任何处理,继续判断其他节点。反之,若隶属度大于等于0.4,则可认为节点与该社区连接较为紧密,首先执行步骤304,将节点加入该社区。此时,如步骤305继续判断隶属度是否大于等于0.5,如果满足该条件,表示节点与社区连接非常紧密,而由于步骤304中已将节点加入社区,因此也不做任何处理;反之,则需如步骤306所示,继续判断计算此时的整个网络的模块度Q0是否大于未将节点加入社区之前的整个网络的模块度Q0,不满足此条件说明节点与社区的连接不够紧密,同时将节点从该社区删除。步骤308用于判断是否遍历了所有节点。下式是Q0值计算公式:
其中Auv是网络中的任意两个节点u和v的邻接矩阵,m是网络总边数,C表示所有社区的集合,V是所有节点的集合,ku和kv分别是节点u和v的度,B(u,c)和B(v,c)分别是节点u和v与社区c之间的隶属度。
通过计算社区中节点与其他社区间的隶属度,同时在一定条件下比较Q0值,可以决定是否将节点添加至对应社区。一个节点属于多个社区,则认为该节点为重叠节点,而具有重叠节点的社区则是重叠社区。因此经过上述所有三个步骤可成功得到重叠社区。最终可由显示模块将重叠社区进行可视化展示。
另外,为了准确的评价社区发现算法划分社区的准确性,提出了划分准确度指标CLA。
其中,分母n表示网络总节点数,分子表示正确划分节点的数目。Ci表示实际的社区集合C={C1,C2,…,Ck1}中第i个社区,Sj表示社区发现算法划分出的社区集合S={S1,S2,…,Sk2}中第j个社区,|Ci∩Sj|表示社区Ci和社区Sj中相同节点的个数。表示社区Ci与Sj中每个社区求取相同节点个数,然后找出其中的最大值。最后对C中每一个社区重复这一步骤,从而得到正确划分的节点个数,与网络总节点数相除得到划分准确度。利用该指标可以成功得出社区发现算法划分社区的准确度,成为衡量算法的一个重要指标。
在一个实施例中说明了重叠社区发现的过程,如图5所示,用图形的方式详细阐述了整个发现的过程。图5(a)中是一个典型节点网络图,图中的数据将通过数据采集模块得到,在实际处理中还需将该图用网络转换模块转换成邻接矩阵的形式,在该图中每个节点就是一个社区。图5(b)展示了合并两个社区之后的网络,这一过程是在非重叠社区获取模块中完成的。将图5(a)也就是原始网络中的任意两个社区合并,然后分别计算各自的模块度增量(如节点1和节点2、节点1和节点3、节点2和节点4等等),选取其中使模块度增量为最大且大于零的两个社区进行合并,从图5(b)中可以看出通过计算发现节点1所在社区和节点3所在社区合并之后的模块度增量为最大值,因此将它们合并,并将节点1和节点3视为一个社区,继续计算它和其他社区之间的模块度增量。图5(c)就是反复合并社区之后的结果,这一过程同样在非重叠社区获取模块中实现。图5(b)中合并节点1和节点3之后,将其视为新社区求取与其他社区之间的模块度增量,然后将满足要求的社区合并,一直重复这一过程直到所有的模块的增量均小于0,最后得到图5(c)中的两个社区C1和C2。图5(d)则是最终发现的重叠社区,这一过程主要在重叠社区获取模块实现。在图5(c)已经得到非重叠社区的基础上,检测其中的重叠节点,通过计算节点与除自身所在社区之外所有社区的隶属度值实现(即社区C1中的节点1、2、3、4、5只需计算其与社区C2的隶属度,社区C2中节点也类似),通过计算发现节点6与社区C1的隶属度为0.5,于是同时将其添加进社区C1,社区C1和社区C2共有节点6,而其他节点与对应社区的隶属度均小于0.4,因此不做改变,最终得到了重叠社区C1和C2,重叠社区的可视化展示这一过程是在显示模块实现的。
实施例中采用了四个带类标的数据集(节点所属社区已经确定)对算法准确度进行测试,并与其它经典重叠社区算法进行对比实验。准确度是用公式(7)CLA进行评价的,四个数据集分别是:karate数据集、strike数据集、polbooks数据集以及football数据集。
Karate数据集是经常被使用的经典数据集,它反映的是美国一所大学空手道俱乐部成员之间的社会关系。该数据集有34个节点、78条边。利用CNM算法进行划分时发现节点10划分出错,而本发明的方法检测节点10为重叠节点,参见图6,不同的形状表示不同的社区,实心黑色节点10就是检测到的重叠节点。
Strike数据集是关于一家伐木厂罢工事件中不同种族员工的人际关系的数据集,具有24个节点和38条边。在实际的社区划分中,根据语言与年龄的不同而划分为3个社区,分别是:西班牙语员工、年轻的英语员工和年长的英语员工。利用本发明方法也发现了三个社区,同时检测到重叠节点15,划分结果如图7。
Polbooks数据集是关于美国2004年总统选举的政治图书在亚马逊网站上的销售情况。网络中的节点是由亚马逊网站上售出的政治图书,其中的边代表两本书之间的关系,共有105个节点,441条边。实际网络中根据节点类别分为三个社区。如图8所示,利用本发明方法也发现了三个社区,同时检测到三个重叠节点49、51和58。
Football数据集是关于美国大学足球队于2000赛季各队之间的比赛情况。其中节点代表参赛的各所大学足球队,边则表示两支球队在本赛季进行过比赛,共有115个节点和613条边。如图9所示,本发明发现了六个社区,同时检测到五个重叠节点3、5、43、84和94。
本发明与其他经典重叠社区检测算法CONGA和Chen’s algorithm在划分准确度上进行对比实验,实验结果见表1。
表1、三种算法的重叠社区发现准确率对比
从表中,不难发现本发明与其他两类算法相比在划分准确度上均有不同程度的提高。对四个带类标的数据集进行处理本文方法得到的CLA始终高于或等于其他算法的CLA。
另外,采用Alan等人收集的Facebook数据集对算法的时间复杂度进行测试。由于数据集过于庞大,从数据集中抽取了部分数据进行测试,如图10所示,纵坐标为算法执行时间,横坐标是节点数目,节点数目从500开始依次递增500个节点。从图10中不难看出本发明的方法(Our algorithm)在不同规模节点数上运行的时间均比其他两个算法低。
本发明提出了一种可用于社交网络的重叠社区发现系统及方法,首先将采集实际网络数据,然后借用了非重叠社区发现方法CNM的思想用于划分非重叠社区,最后在非重叠社区的基础上找出其中的重叠节点,从而得到重叠社区。本发明首先使用时间复杂度低的非重叠社区方法得到非重叠社区,这保证了方法可用于大规模的社交网络,然后在从非重叠社区中寻找其中的重叠节点,这确保了与其他重叠社区发现方法相比具有较高的社区发现准确率。另外本方法只需输入原始网络数据即可得到最终网络的重叠社区,无需设定初始的社区数目。
本领域普通技术人员可以理解,实现上述实施例社交网络重叠社区发现方法的过程可以通过程序指令相关的硬件来完成,所述的程序可以存储于可读取存储介质中,该程序在执行时将依次执行上述方法中的对应步骤。所述的存储介质可以如:ROM/RAM、磁碟、光盘等。另外对于显示模块一般可采用液晶屏实现。
综上所述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及原则范围内,对上述实施例进行相应地修饰、等效替换或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与设计思想下所完成的一切等效修饰或改变,仍应涵盖在本发明的权利保护范围之内。
Claims (4)
1.一种社交网络重叠社区发现方法,其特征在于,包括以下步骤:
(1)采集实际网络数据,以邻接矩阵的形式存储原始网络信息;
(2)采用非重叠社区发现方法对网络进行处理,得到非重叠社区;
(3)在步骤(2)中得到的非重叠社区基础上,通过计算社区中节点与其他社区的隶属度,判断是否应将该节点加入对应社区,从而得到重叠节点,也发现网络中的重叠社区;
第(2)步中,在非重叠社区发现方法确定何时结束社区划分是通过模块度Q达到最大值完成的,
<mrow>
<mi>Q</mi>
<mo>=</mo>
<mfrac>
<mn>1</mn>
<mrow>
<mn>2</mn>
<mi>m</mi>
</mrow>
</mfrac>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mi>c</mi>
<mo>&Element;</mo>
<mi>C</mi>
</mrow>
</munder>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mi>u</mi>
<mo>,</mo>
<mi>v</mi>
<mo>&Element;</mo>
<mi>V</mi>
</mrow>
</munder>
<msub>
<mi>&delta;</mi>
<mrow>
<mi>c</mi>
<mi>u</mi>
</mrow>
</msub>
<msub>
<mi>&delta;</mi>
<mrow>
<mi>c</mi>
<mi>v</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<msub>
<mi>A</mi>
<mrow>
<mi>u</mi>
<mi>v</mi>
</mrow>
</msub>
<mo>-</mo>
<mfrac>
<mrow>
<msub>
<mi>k</mi>
<mi>u</mi>
</msub>
<msub>
<mi>k</mi>
<mi>v</mi>
</msub>
</mrow>
<mrow>
<mn>2</mn>
<mi>m</mi>
</mrow>
</mfrac>
<mo>)</mo>
</mrow>
</mrow>
其中Auv是邻接矩阵,m是网络总边数,V是所有节点的集合,C表示所有社区的集合,ku和kv分别是节点u和v的度;δcu表示节点u是否属于社区c,属于的话该值为1,反之为0;
第(3)步中,通过第(2)得到非重叠社区之后,计算社区中节点与其他社区的隶属度,隶属度的求取如下:
<mrow>
<mi>B</mi>
<mrow>
<mo>(</mo>
<mi>u</mi>
<mo>,</mo>
<mi>c</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mfrac>
<mrow>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mi>v</mi>
<mo>&Element;</mo>
<mi>c</mi>
</mrow>
</munder>
<msub>
<mi>e</mi>
<mrow>
<mi>u</mi>
<mi>v</mi>
</mrow>
</msub>
</mrow>
<mrow>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mi>v</mi>
<mo>&Element;</mo>
<mi>V</mi>
</mrow>
</munder>
<msub>
<mi>e</mi>
<mrow>
<mi>u</mi>
<mi>v</mi>
</mrow>
</msub>
</mrow>
</mfrac>
</mrow>
euv表示连接节点u和v的边,当euv=1时,表示节点u和v相连,当euv=0时,表示两节点没有连接,隶属度反应了节点u与社区c之间的紧密关系;判断将节点添加到社区之后整个网络的模块度Q值是否大于初始时的整个网络的模块度Q0值,大于则将节点添加至该社区,反之,保持社区不变;
Q0值计算公式:
<mrow>
<msub>
<mi>Q</mi>
<mn>0</mn>
</msub>
<mo>=</mo>
<mfrac>
<mn>1</mn>
<mrow>
<mn>2</mn>
<mi>m</mi>
</mrow>
</mfrac>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mi>c</mi>
<mo>&Element;</mo>
<mi>C</mi>
</mrow>
</munder>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mi>u</mi>
<mo>,</mo>
<mi>v</mi>
<mo>&Element;</mo>
<mi>V</mi>
</mrow>
</munder>
<mi>B</mi>
<mrow>
<mo>(</mo>
<mi>u</mi>
<mo>,</mo>
<mi>c</mi>
<mo>)</mo>
</mrow>
<mi>B</mi>
<mrow>
<mo>(</mo>
<mi>v</mi>
<mo>,</mo>
<mi>c</mi>
<mo>)</mo>
</mrow>
<mrow>
<mo>(</mo>
<msub>
<mi>A</mi>
<mrow>
<mi>u</mi>
<mi>v</mi>
</mrow>
</msub>
<mo>-</mo>
<mfrac>
<mrow>
<msub>
<mi>k</mi>
<mi>u</mi>
</msub>
<msub>
<mi>k</mi>
<mi>v</mi>
</msub>
</mrow>
<mrow>
<mn>2</mn>
<mi>m</mi>
</mrow>
</mfrac>
<mo>)</mo>
</mrow>
</mrow>
其中Auv是邻接矩阵,m是网络总边数,C表示所有社区的集合,V是所有节点的集合,ku和kv分别是节点u和v的度,B(u,c)和B(v,c)分别是节点u和v与社区c之间的隶属度;通过计算社区中节点与其他社区间的隶属度,同时在一定条件下比较Q0值,决定是否将节点添加至对应社区;一个节点属于多个社区,则认为该节点为重叠节点,而具有重叠节点的社区则是重叠社区。
2.根据权利要求1所述的社交网络重叠社区发现方法,其特征在于,
第(1)步中,网络中任意两节点存在连接关系,在邻接矩阵相应位置为1,反之,对应位置为0。
3.根据权利要求1所述的社交网络重叠社区发现方法,其特征在于,
第(2)步中,使用非重叠社区发现方法得到非重叠社区时,初始时单个节点认为是一个社区,然后每次合并两个模块度增量最大的社区,当模块度达到最大值时停止;模块度增量定义如下:
ΔQ=eij+eji-2aiaj=2(eij-aiaj)
其中eij表示连接社区i与社区j的节点的边与网络总边数之比,而eji则表示连接社区j与社区i的节点的边与网络总边数之比,ai、aj分别表示与社区i、社区j中节点相连的边与整个网络总边数之比;进行社区合并时计算任意两个社区合并之后的模块度增量ΔQ值,将使模块度增量ΔQ取最大值时的两个社区进行合并。
4.根据权利要求1所述的社交网络重叠社区发现方法,其特征还在于,
第(3)步,得到重叠社区之后,评价划分社区的准确度,给出划分准确度指标CLA:
<mrow>
<mi>C</mi>
<mi>L</mi>
<mi>A</mi>
<mo>=</mo>
<mfrac>
<mrow>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mrow>
<mi>k</mi>
<mn>1</mn>
</mrow>
</munderover>
<mi>max</mi>
<mo>{</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mrow>
<mi>k</mi>
<mn>2</mn>
</mrow>
</munderover>
<mrow>
<mo>|</mo>
<mrow>
<msub>
<mi>C</mi>
<mi>i</mi>
</msub>
<mo>&cap;</mo>
<msub>
<mi>S</mi>
<mi>j</mi>
</msub>
</mrow>
<mo>|</mo>
</mrow>
<mo>}</mo>
</mrow>
<mi>n</mi>
</mfrac>
</mrow>
其中,分母n表示网络总节点数,分子表示正确划分节点的数目;Ci表示实际的社区集合C={C1,C2,…,Ck1}中第i个社区,Sj表示社区发现算法划分出的社区集合S={S1,S2,…,Sk2}中第j个社区,|Ci∩Sj|表示社区Ci和社区Sj中相同节点的个数;表示社区Ci与Sj中每个社区求取相同节点个数,然后找出其中的最大值;最后对社区集合C中每一个社区重复这一步骤,得到正确划分的节点个数,与网络总节点数相除得到划分准确度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410436259.0A CN104166731B (zh) | 2014-08-29 | 2014-08-29 | 一种社交网络重叠社区发现系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410436259.0A CN104166731B (zh) | 2014-08-29 | 2014-08-29 | 一种社交网络重叠社区发现系统及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104166731A CN104166731A (zh) | 2014-11-26 |
CN104166731B true CN104166731B (zh) | 2017-11-17 |
Family
ID=51910544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410436259.0A Expired - Fee Related CN104166731B (zh) | 2014-08-29 | 2014-08-29 | 一种社交网络重叠社区发现系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104166731B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408149B (zh) * | 2014-12-04 | 2017-12-12 | 威海北洋电气集团股份有限公司 | 基于社交网络分析的犯罪嫌疑人挖掘关联方法及系统 |
CN104636978B (zh) * | 2015-02-12 | 2017-11-14 | 西安电子科技大学 | 一种基于多标签传播的重叠社区检测方法 |
CN105405058A (zh) * | 2015-12-16 | 2016-03-16 | 上海电机学院 | 博客社区识别方法 |
CN107240028B (zh) * | 2017-05-03 | 2020-09-15 | 同济大学 | 一种Fedora系统组件复杂网络中的重叠社区检测方法 |
CN107832964A (zh) * | 2017-11-21 | 2018-03-23 | 江苏神威云数据科技有限公司 | 银行客户关系圈分析方法及系统 |
CN107944705B (zh) * | 2017-11-27 | 2022-03-11 | 国网河南省电力公司信息通信公司 | 一种基于模块度划分通信社团的全端可靠性计算方法 |
CN110351106B (zh) * | 2018-04-03 | 2022-01-25 | 中移(苏州)软件技术有限公司 | 一种网络结构的检测方法、装置、电子设备及存储介质 |
CN108537452A (zh) * | 2018-04-13 | 2018-09-14 | 中山大学 | 一种面向大规模复杂网络的密集可重叠社区划分方法 |
CN109086629B (zh) * | 2018-09-19 | 2019-07-30 | 海南大学 | 基于社交网络的时效敏感的仿区块链密码体系 |
CN109559230B (zh) * | 2018-12-13 | 2021-03-30 | 中科曙光南京研究院有限公司 | 基于重叠社区发现算法的银行交易群体发现方法和系统 |
CN109726402B (zh) * | 2019-01-11 | 2022-12-23 | 中国电子科技集团公司第七研究所 | 一种文档主题词自动提取方法 |
CN110535681B (zh) * | 2019-07-18 | 2021-04-27 | 西安电子科技大学 | 基于开放运算语言OpenCL并行的重叠社区检测方法 |
CN110704612B (zh) * | 2019-08-09 | 2022-09-16 | 国家计算机网络与信息安全管理中心 | 一种社交群体发现方法、装置和存储介质 |
CN111091385B (zh) * | 2019-12-13 | 2024-02-27 | 南京三百云信息科技有限公司 | 基于权重的对象识别方法、装置以及电子设备 |
CN111368213A (zh) * | 2020-03-04 | 2020-07-03 | 山西大学 | 一种民航旅客关系网络的重叠社区结构检测方法及系统 |
CN111464343B (zh) * | 2020-03-22 | 2021-10-26 | 华南理工大学 | 一种基于平均互信息的最大派系贪心扩展社区发现方法及系统 |
CN111626891B (zh) * | 2020-06-03 | 2023-08-01 | 四川大学 | 一种基于扩展节点的动态销售网络社团发现方法 |
CN112886589B (zh) * | 2021-04-09 | 2022-09-20 | 华中科技大学 | 基于社区挖掘的供电分区方法、系统、终端、介质及配电网 |
CN113516562B (zh) * | 2021-07-28 | 2023-09-19 | 中移(杭州)信息技术有限公司 | 家庭社交网络构建方法、装置、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8578501B1 (en) * | 2006-11-14 | 2013-11-05 | John W. Ogilvie | Anonymous social networking with community-based privacy reviews obtained by members |
US8395622B2 (en) * | 2008-06-18 | 2013-03-12 | International Business Machines Corporation | Method for enumerating cliques |
CN102857525A (zh) * | 2011-06-28 | 2013-01-02 | 安徽大学 | 基于随机游走策略的社区发现方法 |
CN103425737A (zh) * | 2013-07-03 | 2013-12-04 | 西安理工大学 | 面向网络的重叠社区发现方法 |
CN103413027B (zh) * | 2013-07-22 | 2016-06-08 | 北京航空航天大学 | 一种社会网络重叠社区发现方法的评价方法 |
-
2014
- 2014-08-29 CN CN201410436259.0A patent/CN104166731B/zh not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
Detecting overlapping communities of weighted networks via a local algorithm;Duanbing Chen;《Physica A》;20100604;第389卷(第19期);4177-4187 * |
Also Published As
Publication number | Publication date |
---|---|
CN104166731A (zh) | 2014-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104166731B (zh) | 一种社交网络重叠社区发现系统及其方法 | |
CN108509483A (zh) | 基于知识图谱的机械故障诊断知识库构建方法 | |
CN105243388B (zh) | 基于动态时间规整和划分算法的波形分类方法 | |
CN104750819B (zh) | 一种基于词分组排序算法的生物医学文献检索方法及系统 | |
CN106874688A (zh) | 基于卷积神经网络的智能化先导化合物发现方法 | |
CN107103754A (zh) | 一种道路交通状况预测方法及系统 | |
CN107797931A (zh) | 一种基于二次评价的软件质量评价方法及系统 | |
CN110516757A (zh) | 一种变压器故障检测方法及相关装置 | |
CN110046379A (zh) | 一种基于空间-频率信息的结构整体损伤识别方法 | |
CN109102002A (zh) | 结合卷积神经网络和概念机递归神经网络的图像分类方法 | |
CN102857525A (zh) | 基于随机游走策略的社区发现方法 | |
CN107680018A (zh) | 一种基于大数据及人工智能的高考志愿填报系统及方法 | |
CN107945534A (zh) | 一种基于gmdh神经网络的交通车流量预测方法 | |
CN109145956A (zh) | 评分方法、装置、计算机设备及存储介质 | |
CN105975973A (zh) | 一种用于森林生物量的遥感影像特征选择方法和装置 | |
CN102819611A (zh) | 一种复杂网络局部社区挖掘方法 | |
CN107766695A (zh) | 一种获取外周血基因模型训练数据的方法及装置 | |
CN107220497A (zh) | 一种基于分组教与学算法的圆度误差评定方法 | |
CN106682695A (zh) | 一种基于支持向量机的县域耕地自然质量评价方法 | |
Autry et al. | Metropolized forest recombination for Monte Carlo sampling of graph partitions | |
CN109656904A (zh) | 一种案件风险检测方法及系统 | |
CN110956010B (zh) | 基于梯度提升树的大规模新能源接入电网稳定性辨识方法 | |
US20230063614A1 (en) | Decision support method and system based on graph database | |
CN113780146B (zh) | 基于轻量化神经架构搜索的高光谱图像分类方法及系统 | |
CN109684436A (zh) | 一种知识的关联方法及应用 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171117 Termination date: 20210829 |