CN106599187B - 一种基于边不稳定度的社区发现系统及方法 - Google Patents
一种基于边不稳定度的社区发现系统及方法 Download PDFInfo
- Publication number
- CN106599187B CN106599187B CN201611150384.0A CN201611150384A CN106599187B CN 106599187 B CN106599187 B CN 106599187B CN 201611150384 A CN201611150384 A CN 201611150384A CN 106599187 B CN106599187 B CN 106599187B
- Authority
- CN
- China
- Prior art keywords
- edge
- community
- instability
- result
- nodes
- 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 19
- 238000004364 calculation method Methods 0.000 claims description 49
- 238000005192 partition Methods 0.000 claims description 21
- 230000008859 change Effects 0.000 claims description 12
- 230000010354 integration Effects 0.000 claims description 10
- 238000010606 normalization Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 4
- 238000007405 data analysis Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 43
- 238000011160 research Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 206010033799 Paralysis Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/288—Entity relationship models
-
- 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)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Economics (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- Human Resources & Organizations (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明为一种基于边不稳定度的社区发现系统及方法,属于软件工程和数据分析领域。本发明的社区发现方法基于边不稳定度,在传统社区发现算法的基础上实现,首先将软件函数调用图作为一个网络,定义了边不稳定度的概念;然后在传统社区发现算法的基础上结合边不稳定度进行改进,主要包括:改进的Fast Unfolding算法,改进的GN算法。本发明的社区发现算法在传统算法的基础上,增加了更好的划分标准,在一定程度上可以提高社区发现算法的效率。
Description
技术领域
本发明涉及一种基于边不稳定度的社区发现系统及方法,属于软件工程和数据分析技术领域。
背景技术
复杂网络社区发现早已成为计算机科学、生物学、社会信息学等多个领域的研究热点之一,如何准确、高效的发现复杂网络中存在的具有社区特性的系统结构分布,一直以来是值得深入研究的问题。
网络是一种包含节点和边(或连接)的集合,通常节点代表该系统的组成成员,而边(或连接)用以描述系统成员间的相互作用关系。相对而言,复杂网络具有以下特征:(1)网络规模非常大,节点和边的规模数以万计,传统方法对此等规模的系统只能借助系统的统计学特征进行初步的探测之后再分析。(2)网络结构的复杂性和多样性:现实世界中的网络结构通常不是绝对随机也不会是绝对规律,而是两者的结合体,同时组成网络的大量子单元和子系统结构复杂多变。(3)网络节点类型不一,对于不同的研究对象其意义不同,同时节点间相互作用也错综复杂,其表现有二:一是权值的多样性,而是结构的非均匀性。(4)网络具有时空复杂性,一般研究模型为静态,但实际上随着时间空间变迁,网络会动态演化,其节点数增加,同时节点间连接方式和权重也会不断变化,网络拓扑结构和动力学性质也会改变。
复杂网络具有如下特性:(1)小世界效应,对于网络G,若其平均节点维度不变,网络的平均距离以不大于网络规模对数的速度增长,小世界效应对于网络结构研究有重要意义,例如考虑信息在网络上的扩散路径,小世界效应表明信息在网络中仅仅需要少数几个的步骤就可以非常快的扩散到整个网络,在流行病传播网络中仅需要较少中间人即可大范围传播,在互联网上去除少数关键性节点处的主机或路由即可造成大范围网络瘫痪。(2)传递性或群聚属性,对于网络中的节点A,B,C,如果节点A与B之间存在一条边,B与C之间也有一条边,则节点A有较大的概率与节点C之间也存在一条边,此即传递性(生物网中又称为"群聚性")。一种显而易见的现象就是,在人们的个人朋友圈内,朋友之间本身也存在朋友关系,送种关系的逐个传递形成一个群落,在社会网和生物网中尤为常见。(3)无标度性,Newmand等发现网络中各不同节点度数在整个网络总度数的占比呈幂律分布。(4)社区特性,2002年,Girvan和Newman发现复杂网络分布中存在一种新的统计特征“社区结构”后很快就吸引了研究复杂网络相关领域专家学者们的关注,并随之迅速成为一个新的研究热点。复杂网络普遍存在一种“同一社区内节点连接紧密,不同化区间节点连接稀疏”的特征。图1是一个简单的社区结构网络实例,图中有3个黑色阴影背景的网络簇,网络簇之间仅有较少边连接,此图代表了一个具有3个结构明显的社区的网络。把软件中的函数抽象为网络图中的一个结点,把函数之间的调用关系抽象为一条有向边,那么就构成了软件函数调用图。函数调用图也属于复杂网络的一种,具备小世界和无标度等特征。
现实情况网络划分成社区之前社区数目及每个社区的规模都是未知的,如何有效的评价网络的一系列社区结构划分质量,模块化函数Q为此提供参考。自2004年由Newman和Girvan提出该理论后已被相关领域学者广泛接受并在实际应用中获得很大成功,以函数Q作为目标函数的进行优化的方法已成为一种共识。
2004年Newman在提出一种计算网络社区结构划分好坏的模块性函数Q之后提出了W该函数Q作为目标化化函数,通过迭代的进行节点或社区聚合的社区挖掘算法FN,以模块函数Q来看越明显的网络社区结构其Q值越大,FN算法迭代搜索规则是每次选择两个原始社区合并,合并的两个原始社区必须获得最大的Q增长。
2008年Blondel等在分析模块性函数Q计算方法的基础上提出了一种简化社区合并评估的计算方法,同时利用局部最优化形成初始社区,进而进行层次聚合的快速模块化方法FUA。算法分为两阶段,第一阶段:将每个节点当做一个独立社区,并计算将其加入邻居节点所属化区时模块性Q值变化。多次考虑每个节点移动直至局部Q最大。第二阶段是将第一阶段形成的局部最大Q值社区当做超级节点考虑,超级节点间的链接权值为两个社区之间的链接权值之和,再将第一阶段的算法应用到超级节点组成的新社区中。迭代上述两个步骤直至网络社区结构划分没有变化(此时也即达到了最大Q值)为止。图2展示了该算法流程。
2011年刘大有等在分析出Q函数的一种局部梯度特征,将Q函数定义式转换为网络中所有节点i的f函数之和,并利用遗传算法捜索模块性函数Q的最优解的优化算法LGA。
标签传播算法LPA假设以标签代表网络中节点的社区旧属,同时初始时每个节点都处于独立的社区中,算法基于一种直觉性的策略;每个节点都会与其大多数邻居属于相同社区,也即与大多数邻居有相同标签。为保证收敛和避免循环,每次迭代更新顺序都是随机的,每次迭代时间消耗为线性0(m),m为网络中边数目。当同一标签社区有最多邻居时算法停止迭代。
Leung等指出LPA算法可以在很少的迭代步数内(一般为5)使得网络中绝大多数节点(文中为95%)标签达到稳定状态,该论文中应用了标签传播算法作为大规模在线社交网络分析工具,得到可接受的精度和时耗,有10亿条边的网络大概能在180分钟内聚合。由此可见,标签传播算法应用于超大规模网络时具有可接受的时间消耗,具有不错的应用前景。
综上,现有的社区发现算法几乎完全依赖于模块度,缺少其他综合的判断,并且一些算法仍然没有克服计算复杂度大的难题。为此,本发明提出的基于边不稳定度的社区发现系统及方法,可以在为社区发现提供额外的启发信息的同时,也降低社区发现算法的时间复杂度。
发明内容
本发明的技术解决问题:克服现有技术的不足,提供一种基于边不稳定度的社区发现系统及方法,以期提高社区发现的效率和准确度。
本发明技术解决方案之一:
一种基于边不稳定度的社区发现系统,包括:边不稳定度计算模块、基于边不稳定度的Fast Unfolding社区发现模块、基于边不稳定度的GN社区发现模块和结果整合模块;其中:
边不稳定度计算模块:接收函数调用图的结构数据,计算函数调用图的节点稳定度和边不稳定度,并将计算结果保存入文件中,供后续社区发现模块使用;所述边不稳定度由节点的稳定度决定;节点的稳定度定义为节点的入度与节点度的比值,有向边的不稳定度定义为源点的稳定度与终点的稳定度之差;节点的稳定度表现为,稳定度高的节点具有入度较出度相对更大的特点,函数调用图中这样的节点将更不易把改变扩散到其他节点处,因此称节点稳定性较大,由稳定性大的节点指向稳定性小的节点的边就具有较大的不稳定度,因为它容易把改变扩散出去;
基于边不稳定度的Fast Unfolding社区发现模块:根据网络边不稳定度计算模块的计算结果,采用改进的Fast Unfolding的算法,即在Fast Unfolding的算法中加入边不稳定度决定性,使得社区的划分根据参数大小而受边不稳定度的影响,得到社区划分结果E1并保存入文件中,为后续操作提供数据;
基于边不稳定度的GN社区发现模块:根据边不稳定度的计算结果,采用改进的基于边不稳定度的GN算法,即在GN算法的算法中计算边介数改为计算边不稳定度,在社区发现的过程中使用边不稳定度寻找合适的划分,得到社区划分结果E2并保存入文件中,为后续操作提供数据;
结果整合模块:将社区划分结果E1和E2,合并成一个待处理结果E,扫描该结果,综合考量各个节点的社区信息和节点信息,对于两次划分结果不一致的节点,进行社区的微调,最后得到函数调用图基于边不稳定度的社区发现结果。
所述边不稳定度计算模块中,节点的稳定度计算公式如下:
边的不稳定度计算公式如下:
Iij=Si-Sj
其中Si和Sj分别是节点ni和nj的节点稳定度,当Iij越大时,对应的边会将改变更快的扩展出去。
所述基于边不稳定度的Fast Unfolding社区发现模块具体步骤如下:
(1)计算网络中每条边的不稳定度,从边不稳定度计算模块的结果中提取边不稳定度结果,加入到函数调用图中相应边的属性中;
(2)初始化网络节点,每个节点均为一个社区,所以初始状态下网络中社区数目与节点数相同;对于每个节点,随机将其归入其任一邻居节点中,计算模块度增量△Q和边不稳定度增量△I,对于某归一化参数α,取使得α×△Q+(1-α)×△I获得最大值的划分方案,作为本次划分的最后结果,所有节点均获得新的社区划分或者维持原有划分不变,根据节点的划分结果,得到新的社区信息,即所有属于同一划分的节点都属于同一社区;
(3)将步骤(2)得到的所有社区抽象为新的节点,重复步骤(2)的操作,直到没有新的划分可以得到正的模块度增量α×△Q+(1-α)×△I时,此时函数调用图中所有节点的划分便结束,且所有节点均有确定的社区信息,将社区信息相同的节点并入同一社区,便得到社区划分结果E1,最后保存到文件中。
所述基于边不稳定度的GN社区发现模块具体步骤如下:
(1)计算网络中每条边的不稳定度,从边不稳定度计算模块的结果中提取边不稳定度结果,加入到函数调用图中相应边的属性中;
(2)对网络中的节点按照边不稳定度降序排列;
(3)对于排列好的边,每次移除一定数量的边,直到函数调用图中的弱联通子图数目增加,并计算函数调用图模块度增量,记录当前的状态;
(4)重复步骤(3),直至网络中所有边都被移除,回溯寻找每一次执行步骤(3)后,网络的模块度以及相应的弱联通子图信息,选出模块度最大的一次划分,则此次划分得到所有弱联通子图便是网络的最佳社区划分结果,即每一个弱联通子图都是一个社区,至此得到网络的社区划分结果E2,保存到文件中。
所述结果整合模块中,进行社区的微调,最后得到函数调用图基于边不稳定度的社区发现结果如下:在划分结果E1中,节点ni和nj属于不同社区,而划分结果E2中此二节点属于同一社区,则根据它们各自带有的额外信息进行判断,以决定采用E1还是E2的方案。
所述步骤(2)的归一化公式中,α的取值决定了边不稳定度增量和模块度增量的占比,当α为1时,仅考虑模块度增量,当α为0时,仅考虑边不稳定度的增量。
所述步骤(3)中,每次移除边不稳定度最高的边,迅速将网络分散为各个独立的集团,不仅为社区发现提供了新的思路,也可以作为函数调用图攻击的一种新策略。
本发明技术解决方案之二:
一种基于边不稳定度的社区发现方法,步骤如下:
(1)网络边不稳定度计算步骤:接收函数调用图的结构数据,计算函数调用图的节点稳定度和边不稳定度,并将计算结果保存入文件中,供后续社区发现步骤使用;所述边不稳定度由节点的稳定度决定;节点的稳定度定义为节点的入度与节点度的比值,有向边的不稳定度定义为源点的稳定度与终点的稳定度之差;节点的稳定度表现为,稳定度高的节点具有入度较出度相对更大的特点,网络中这样的节点将更不易把改变扩散到其他节点处,因此称节点稳定性较大,由稳定性大的节点指向稳定性小的节点的边就具有较大的不稳定度,因为它容易把改变扩散出去;
(2)基于边不稳定度的Fast Unfolding社区发现步骤:根据步骤(1)边不稳定度计算步骤的计算结果,采用改进的Fast Unfolding的算法,即在Fast Unfolding的算法中加入边不稳定度决定性,使得社区的划分根据参数大小而受边不稳定度的影响,得到社区划分结果E1并保存入文件中,为后续操作提供数据;
(3)基于边不稳定度的GN社区发现步骤:根据步骤(1)边不稳定度的计算结果,采用改进的基于边不稳定度的GN算法,即在GN算法的算法中计算边介数改为计算边不稳定度,在社区发现的过程中使用边不稳定度寻找合适的划分,得到社区划分结果E2并保存入文件中,为后续操作提供数据;
(4)结果整合步骤:将步骤(2)的社区划分结果E1和步骤(3)的社区划分结果E2,合并成一个待处理结果E,扫描该结果,综合考量各个节点的社区信息和节点信息,对于两次划分结果不一致的节点,进行社区的微调,最后得到函数调用图基于边不稳定度的社区发现结果。
本发明的优点与积极效果在于:
(1)传统的Fast Unfolding算法仅仅考虑模块度的增量,忽略的网络的连通性质,而本发明采用改时的算法,即Fast Unfolding算法中加入边不稳定度作为标量,因此本发明提高了发现效率;
(2)传统的GN算法是基于边介数的,因介数的计算其本身复杂度较高,因此GN算法不适合处理大规模的网络,而本发明改进的基于边不稳定度的GN算法,因其计算复杂度低,大大提高了效率,适合计算大规模的网络,为大型函数调用图的社区发现提供了可能性;且每次移除边不稳定度最高的边,可以迅速将网络分散为各个独立的集团,不仅为社区发现提供了新的思路,也可以作为函数调用图攻击的一种新策略。
附图说明
图1是一个简单的社区结构网络实例;
图2是FUA算法的算法流程图;
图3为本发明的系统框图;
图4为边不稳定度计算模块的实现流程图;
图5为基于边不稳定度的Fast Unfolding社区划分模块流程图;
图6为基于边不稳定度的GN社区划分模块流程图。
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。
如图1所示,大部分的函数调用图都包含了社区信息,图中的函数调用图中有三个明显的社区,社区内的节点连接紧密,社区间的节点连接稀疏。
如图2所示,FUA算法第一阶段将每个节点当做一个独立社区,并计算将其加入邻居节点所属化区时模块性Q值变化。多次考虑每个节点移动直至局部Q最大。第二阶段是将第一阶段形成的局部最大Q值社区当作超级节点考虑,超级节点间的链接权值为两个社区之间的链接权值之和,再将第一阶段的算法应用到超级节点组成的新社区中。迭代上述两个步骤直至网络社区结构划分没有变化(此时也即达到了最大Q值)为止。
如图3所示,本发明包括函数调用图边不稳定度计算模块、基于边不稳定度的FastUnfolding社区发现模块、基于边不稳定度的GN社区发现模块和结果整合模块。
如图4所示,本发明的函数调用图边不稳定度计算模块具体实现如下:
(1)根据输入的函数调用图数据,构建函数调用图模型;
(2)遍历函数调用图中的所有节点,计算每个节点的稳定度,计算公式如下:
(3)遍历函数调用图中的所有边,计算每条边的边不稳定度,计算公式如下:
Iij=Si-Sj
其中Si和Sj分别是ni和nj的稳定度。
(4)将计算得到的边不稳定度信息,加入到函数调用图相应的边的属性上,并保存以供其他模块使用。
如图5所示,本发明中基于边不稳定度的Fast Unfolding社区发现模块具体实现如下:
(1)从边不稳定度计算模块的计算结果中提取等待处理的函数调用图;
(2)初始化网络节点,每个节点均为一个社区,所以初始状态下网络中社区数目与节点数相同;对于每个节点,随机将其归入其任一邻居节点中,计算模块度增量△Q和边不稳定度增量△I,对于某归一化参数α,取综合增量α×△Q+(1-α)×△I取得最大值的划分,作为本次划分的最后结果,本步骤结束后,所有节点均获得新的社区划分或者维持原有划分不变,根据节点的划分结果,可以得到新的社区信息,即所有属于同一划分的节点都属于同一社区;
(3)将步骤(2)得到的所有社区抽象为新的节点,重复第二步的操作,直到没有新的划分可以得到正的综合增量α×△Q+(1-α)×△I,算法结束,此时网络中所有节点的划分便结束,且所有节点均有确定的社区信息,将社区信息相同的节点并入同一社区,便得到社区划分结果E1,最后保存到文件中。
如图6所示,本发明中基于边不稳定度的GN社区发现模块具体实现如下:
(1)从边不稳定度计算模块的计算结果中提取等待处理的函数调用图;
(2)对网络中的所有边按照边不稳定度降序排列;
(3)对于边排列好的函数调用图,每次移除一定数量的边,直到网络中的弱联通子图数目增加,并计算网络模块度增量,记录当前的状态;
(4)重复步骤(3),直到网络中所有的边都被移除,回溯寻找每一次执行步骤(3)后,网络的模块度以及相应的弱联通子图信息,选出模块度最大的一次划分,则此次划分得到所有弱联通子图便是网络的最佳社区划分结果,即每一个弱联通子图都是一个社区。至此得到网络的社区划分结果E2,保存到文件中。
本发明中社区发现结果整合模块的具体实现如下:
(1)从文件中读取基于边不稳定度的Fast Unfolding社区发现模块和基于边不稳定度的GN社区发现模块的结果E1和E2。
(2)对于E1中的每个社区,考察社区里的所有节点,对比它们在E2中的社区信息,对于那些在E2中属于不同社区的节点,考察它们的额外信息(如果有的话),然后根据额外信息判断它们应不应该划分到一个社区中,即采用E1的划分结果还是采用E2的划分结果。
(3)综合考察E1和E2并微调节点社区信息后,将最终结果E保存入文件中。
提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。
Claims (4)
1.一种基于边不稳定度的社区发现系统,其特征在于包括:边不稳定度计算模块、基于边不稳定度的Fast Unfolding社区发现模块、基于边不稳定度的GN社区发现模块和结果整合模块;其中:
边不稳定度计算模块:接收函数调用图的结构数据,计算函数调用图的节点稳定度和边不稳定度,并将计算结果保存入文件中,供后续社区发现模块使用;所述边不稳定度由节点的稳定度决定;节点的稳定度定义为节点的入度与节点度的比值,有向边的不稳定度定义为源点的稳定度与终点的稳定度之差;节点的稳定度表现为,稳定度高的节点具有入度较出度相对更大的特点,函数调用图中这样的节点将更不易把改变扩散到其他节点处,因此称节点稳定性较大,由稳定性大的节点指向稳定性小的节点的边就具有较大的不稳定度,因为它容易把改变扩散出去;
基于边不稳定度的Fast Unfolding社区发现模块:根据边不稳定度计算模块的计算结果,采用改进的Fast Unfolding的算法,即在Fast Unfolding的算法中加入边不稳定度决定性,使得社区的划分根据参数大小而受边不稳定度的影响,得到社区划分结果E1并保存入文件中,为后续操作提供数据;
基于边不稳定度的GN社区发现模块:根据边不稳定度的计算结果,采用改进的基于边不稳定度的GN算法,即在GN算法的算法中计算边介数改为计算边不稳定度,在社区发现的过程中使用边不稳定度寻找合适的划分,得到社区划分结果E2并保存入文件中,为后续操作提供数据;
结果整合模块:将社区划分结果E1和E2,合并成一个待处理结果E,扫描该结果,综合考量各个节点的社区信息和节点信息,对于两次划分结果不一致的节点,进行社区的微调,最后得到函数调用图基于边不稳定度的社区发现结果;
所述边不稳定度计算模块中,
节点的稳定度计算公式如下:
边的不稳定度计算公式如下:
Iij=Si-Sj
其中Si和Sj分别是节点ni和nj的节点稳定度,当Iij越大时,对应的边会将改变更快的扩展出去;
所述基于边不稳定度的Fast Unfolding社区发现模块具体步骤如下:
(1)计算网络中每条边的不稳定度,从边不稳定度计算模块的结果中提取边不稳定度结果,加入到函数调用图中相应边的属性中;
(2)初始化网络节点,每个节点均为一个社区,所以初始状态下函数调用图中社区数目与节点数相同;对于每个节点,随机将其归入其任一邻居节点中,计算模块度增量ΔQ和边不稳定度增量ΔI,对于某归一化参数α,取使得α×ΔQ+(1-α)×ΔI获得最大值的划分方案,作为本次划分的最后结果,所有节点均获得新的社区划分或者维持原有划分不变,根据节点的划分结果,得到新的社区信息,即所有属于同一划分的节点都属于同一社区;
(3)将步骤(2)得到的所有社区抽象为新的节点,重复步骤(2)的操作,直到没有新的划分可以得到正的综合增量α×ΔQ+(1-α)×ΔI时,此时网络中所有节点的划分便结束,且所有节点均有确定的社区信息,将社区信息相同的节点并入同一社区,便得到社区划分结果E1,最后保存到文件中;
所述基于边不稳定度的GN社区发现模块具体步骤如下:
(1)计算函数调用图中每条边的不稳定度,从边不稳定度计算模块的结果中提取边不稳定度结果,加入到网络中相应边的属性中;
(2)对网络中的节点按照边不稳定度降序排列;
(3)对于排列好的边,每次移除一定数量的边,直到函数调用图中的弱联通子图数目增加,并计算网络模块度增量,记录当前的状态;
(4)重复步骤(3),直至网络中所有边都被移除,回溯寻找每一次执行步骤(3)后,网络的模块度以及相应的弱联通子图信息,选出模块度最大的一次划分,则此次划分得到所有弱联通子图便是网络的最佳社区划分结果,即每一个弱联通子图都是一个社区,至此得到函数调用图的社区划分结果E2,保存到文件中;
所述结果整合模块中,进行社区的微调,最后得到函数调用图基于边不稳定度的社区发现结果如下:在划分结果E1中,节点ni和nj属于不同社区,而划分结果E2中此二节点属于同一社区,则根据它们各自带有的额外信息进行判断,以决定采用E1还是E2的方案。
2.根据权利要求1所述的一种基于边不稳定度的社区发现系统,其特征在于:所述步骤(2)的归一化公式中,α的取值决定了边不稳定度增量和模块度增量的占比,当α为1时,仅考虑模块度增量,当α为0时,仅考虑边不稳定度的增量。
3.根据权利要求1所述的一种基于边不稳定度的社区发现系统,其特征在于:所述步骤(3)中,每次移除边不稳定度最高的边。
4.一种采用权利要求1-3任意之一所述的基于边不稳定度的社区发现系统的社区发现方法,其特征在于步骤如下:
(1)边不稳定度计算步骤:接收函数调用图的结构数据,计算函数调用图的节点稳定度和边不稳定度,并将计算结果保存入文件中,供后续社区发现步骤使用;所述边不稳定度由节点的稳定度决定;节点的稳定度定义为节点的入度与节点度的比值,有向边的不稳定度定义为源点的稳定度与终点的稳定度之差;节点的稳定度表现为,稳定度高的节点具有入度较出度相对更大的特点,网络中这样的节点将更不易把改变扩散到其他节点处,因此称节点稳定性较大,由稳定性大的节点指向稳定性小的节点的边就具有较大的不稳定度,因为它容易把改变扩散出去;
(2)基于边不稳定度的Fast Unfolding社区发现步骤:根据步骤(1)函数调用图边不稳定度计算步骤的计算结果,采用改进的Fast Unfolding的算法,即在Fast Unfolding的算法中加入边不稳定度决定性,使得社区的划分根据参数大小而受边不稳定度的影响,得到社区划分结果E1并保存入文件中,为后续操作提供数据;
(3)基于边不稳定度的GN社区发现步骤:根据步骤(1)边不稳定度的计算结果,采用改进的基于边不稳定度的GN算法,即在GN算法的算法中计算边介数改为计算边不稳定度,在社区发现的过程中使用边不稳定度寻找合适的划分,得到社区划分结果E2并保存入文件中,为后续操作提供数据;
(4)结果整合步骤:将步骤(2)的社区划分结果E1和步骤(3)的社区划分结果E2,合并成一个待处理结果E,扫描该结果,综合考量各个节点的社区信息和节点信息,对于两次划分结果不一致的节点,进行社区的微调,最后得到函数调用图基于边不稳定度的社区发现结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611150384.0A CN106599187B (zh) | 2016-12-14 | 2016-12-14 | 一种基于边不稳定度的社区发现系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611150384.0A CN106599187B (zh) | 2016-12-14 | 2016-12-14 | 一种基于边不稳定度的社区发现系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106599187A CN106599187A (zh) | 2017-04-26 |
CN106599187B true CN106599187B (zh) | 2020-06-16 |
Family
ID=58801355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611150384.0A Expired - Fee Related CN106599187B (zh) | 2016-12-14 | 2016-12-14 | 一种基于边不稳定度的社区发现系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106599187B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108470251B (zh) * | 2018-03-28 | 2021-09-21 | 华南理工大学 | 基于平均互信息的社区划分质量评价方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105868791A (zh) * | 2016-04-15 | 2016-08-17 | 上海交通大学 | 基于模糊聚类的多分辨率社区发现方法 |
CN106020950A (zh) * | 2016-05-12 | 2016-10-12 | 中国科学院软件研究所 | 基于复杂网络分析的函数调用图关键节点识别和标识方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9591028B2 (en) * | 2013-09-30 | 2017-03-07 | Mcafee, Inc. | Visualization and analysis of complex security information |
-
2016
- 2016-12-14 CN CN201611150384.0A patent/CN106599187B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105868791A (zh) * | 2016-04-15 | 2016-08-17 | 上海交通大学 | 基于模糊聚类的多分辨率社区发现方法 |
CN106020950A (zh) * | 2016-05-12 | 2016-10-12 | 中国科学院软件研究所 | 基于复杂网络分析的函数调用图关键节点识别和标识方法 |
Non-Patent Citations (3)
Title |
---|
Propagation and stability in software: A complex network perspective;Lei Wang,Ping Wang;《International Journal of Modern Physics C》;20140918;第26卷(第5期);全文 * |
基于复杂网络的全球金融危机下上海股票网络相关性及网络拓扑结构的实证分析;李舒恬;《中国优秀硕士学位论文全文数据库 经济与管理科学辑》;20161115(第11期);全文 * |
基于复杂网络的操作系统内核演化与稳定性研究;王雷,王政,杨晨,张莉;《中国科学》;20111231;第41卷(第9期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN106599187A (zh) | 2017-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Harenberg et al. | Community detection in large‐scale networks: a survey and empirical evaluation | |
Guo et al. | Community discovery by propagating local and global information based on the MapReduce model | |
Gui et al. | A community discovery algorithm based on boundary nodes and label propagation | |
Kundu et al. | Fuzzy-rough community in social networks | |
Bortner et al. | Progressive clustering of networks using structure-connected order of traversal | |
Lee et al. | Erasable itemset mining over incremental databases with weight conditions | |
CN109615550A (zh) | 一种基于相似性的局部社团检测方法 | |
Wu et al. | A distributed algorithm to enumerate all maximal cliques in mapreduce | |
Chen et al. | Community-based network alignment for large attributed network | |
CN109919172A (zh) | 一种多源异构数据的聚类方法及装置 | |
Sattar et al. | Community detection using semi-supervised learning with graph convolutional network on GPUs | |
Wu et al. | HY-DBSCAN: A hybrid parallel DBSCAN clustering algorithm scalable on distributed-memory computers | |
Dabaghi-Zarandi et al. | Community detection in complex network based on an improved random algorithm using local and global network information | |
Hu et al. | Recurrent neural architecture search based on randomness-enhanced tabu algorithm | |
CN106599187B (zh) | 一种基于边不稳定度的社区发现系统及方法 | |
Pan et al. | Overlapping community detection via leader-based local expansion in social networks | |
CN105162648B (zh) | 基于骨干网络扩展的社团检测方法 | |
Zheng et al. | Large graph sampling algorithm for frequent subgraph mining | |
Amin et al. | Advanced community identification model for social networks | |
Proulx et al. | Modeling social network relationships via t-cherry junction trees | |
Ferdowsi et al. | Generating high-quality synthetic graphs for community detection in social networks | |
CN112579831A (zh) | 基于SimRank全局矩阵平滑收敛的网络社区发现方法、装置及存储介质 | |
Chuan et al. | Design and implementation of information dissemination simulation algorithm in large-scale complex network based on spark | |
Khan et al. | vGraph: graph virtualization towards big data | |
Tang et al. | An efficient method based on label propagation for overlapping community detection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for 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 |
Granted publication date: 20200616 |
|
CF01 | Termination of patent right due to non-payment of annual fee |