复杂网络中基于节点活跃度的非对称社团扩展的重叠社区发现及预测方法与流程

文档序号:11217247阅读:534来源:国知局
复杂网络中基于节点活跃度的非对称社团扩展的重叠社区发现及预测方法与流程

本发明涉及复杂网络领域,具体涉及复杂网络中基于节点活跃度的非对称社团扩展的重叠社区发现及预测方法。



背景技术:

2005年,palla等人提出允许节点同时属于多个社区的定义,即允许社区重叠。他们将传统社区发现问题推广为重叠社区发现。为了得到重叠社区,palla等人基于社区内节点与社区内其他多数节点有连接而不必与所有节点连接的性质,提出了cpm算法(cpm,cliquepercolationmethod)。在cpm算法中,首先搜索一种称为k-clique的结构(至少包含k个节点的完全子图且不是任何其他完全子图的子集),然后寻找相邻的k-clique(共享k-1个节点),通过将相邻的k-clique合并得到重叠社区。cpm主要解决无向、无权的网络中的重叠社区发现问题,而其扩展方法cpmd和cpmw则分别解决有向的和带权网络中的重叠社区发现问题。然而,cpm的时间复杂度较高且识别准确率较低,对重叠节点的检测能力较差。另外,由于其时间复杂度高,在分析某些大型网络时,cpm运行无法停止。

为了改进重叠社区发现方法,有人提出用边代替节点作为考虑对象,对边进行层级聚类从而得到重叠社区的方法。例如,在ahn等人提出的linkcomm算法中,首先为节点k的边eik和边ejk定义相似性函数:

其中ni和nj表示节点i和j的邻居节点集合。然后将该相似度函数应用于传统的ahc算法,即不断地选择一对相似度最高、以边作为元素的集合进行合并,从而得到以边作为叶节点的树图。在该树图中,通过切除某些分支从而得到重叠社区。linkcomm算法的时间复杂为o(n·kmax),其中n代表节点数,kmax表示节点的最大度。然而,随机性强的网络存在大量介于社区之间的边,此时相似性函数不能很好匹配社区定义,降低了linkcomm算法的准确率。

从某局部区域开始,采用一定的优化策略进行扩展得到重叠社区是一种有效的方法。baumes等人提出一种分两步的策略,即首先使用rankremoval算法按照一定原则对节点排序,再逐步删除排序靠前的节点,直到网络成为多个较小的、不相交的簇核(clustercore)。然后以它们为起点,不断添加或删除节点来优化一个局部密度函数,直到函数取值不再增加,得到重叠社区(iterativescan算法)。该局部密度函数满足重叠社区的定义,即

其中是社区内度(等于社区内的边数乘以2),而是社区外度(等于社区内的节点与社区外节点的连接总数)。f(c)取值越大,表示社区内的节点连接密度越高于社区内外连接的密度。该方法在扩展的过程中允许删除节点,因而会将连通分量断开。但是该问题在修改后的算法cis中已被解决。此外,该函数还存在一个重要缺陷,即如果把网络看作整体,该局部密度函数取得理论上的最大值1。该值表示发现了最准确的社区,但实际上没有检测到任何社区。

lancichinetti等人也提出通过局部扩展和优化目标函数的方法来发现重叠社区,即lfm方法(lfm,lancichinettifortunatomethod)。与baumes的方法不同,lfm随机选择一个未分配至任何社区的节点作为种子,即初始节点集合,且推广原社区目标函数为:

其中指数0<α<1是社区分辨率参数,影响发现社区的大小。α取值越高,社区节点越少。在同一网络中使用不同α,可以构造嵌套重叠社区。lfm在网络随机性低、社区结构易检测时准确率较高,但是会受到随机性增加、重叠程度和重叠多样性等因素的影响。lfm采用随机节点作为种子有一定的盲目性。lee等人注意到了该问题,提出用最大社团(maximalclique)作为种子且采用贪心策略来优化lfm的目标函数,从而提出gce方法(gce,greedycliqueexpansion)。gce在随机程度高时,对重叠社区的检测准确率有了很大提高。

除上面讨论的方法外,另一个重要的研究方向是模糊社区发现。该问题假设每个节点可以属于多个社区但隶属社区的程度不同,为所属社区引入了隶属度(belongingcoefficient),量化节点对社区的“忠诚度”。此外基于博弈论、演讲者听众交互(speaker-listenerinteraction)等的重叠社区发现方法也被提出。总体看来,目前对重叠社区发现的研究集中在提高检测准确率和降低运行时间上,忽略了对重叠社区演化的研究。

现有研究主要基于扩展、密度、层级聚类和统计推断等方法实现重叠社区发现,使得重叠社区发现及分析方法客观存在检测准确率低、重叠节点分配错误率高、无法预测重叠社区未来演化等缺陷,缺乏在动态网络环境中实现重叠社区演化分析的方法体系,成为阻碍复杂网络中重叠社区的相关理论和应用发展的瓶颈。



技术实现要素:

本发明目的在于公开一种复杂网络中基于节点活跃度的非对称社团扩展的重叠社区发现及预测方法,对重叠社区发现及预测进行深入系统的研究,从而有效提高重叠社区检测准确率及预测成功率。

本发明的方法技术方案:

本发明大致的方法过程:基于目前关于重叠社区发现的研究并没有考虑节点个体的动态演化、不均匀活跃度分布和多尺度性(multi-scaling)等问题,给出节点活跃度的相关定义和解析,在此基础上,将节点活跃度用于重叠社区扩展的目标函数,进行社区扩展及使用最大社团作为扩展种子的相关解析,给出基于节点活跃度的非对称社团扩展算法,实现重叠社区发现。

有益效果

本发明方法,针对现实中的复杂网络系统存在高度的动态特性,现有研究主要基于扩展、密度、层级聚类和统计推断等方法实现重叠社区发现,使得重叠社区发现及分析方法客观存在检测准确率低、无法预测重叠社区未来演化等缺陷,缺乏在动态网络环境中实现重叠社区演化分析的方法体系,成为阻碍复杂网络中重叠社区的相关理论和应用发展的瓶颈。本发明研究方法,针对以上问题,从关于节点演化的优先连接机制和多尺度性出发,围绕重叠社区发现及预测这一主线开展研究,给出一种基于节点活跃度的非对称社团扩展的重叠社区发现及预测方法。该方法有效提高了重叠社区检测准确率及预测成功率。本发明从根本上保障了理解各类系统的组织及动态特征。例如,在引文网络中,重叠社区发现及预测有助于找出引文社区即研究领域,预测未来研究领域。本发明研究方法可应用于社会学、生物学、化学、互联网等领域,分析重叠社区演化从而发现有用的信息或知识,具有广阔的应用前景。

附图说明

图1检测到的重叠社区大小

图2检测的重叠社区与真实社区大小之差

图3在lfr图上检测的nmi准确率(om=3,on=10%)

图4在lfr图上检测的nmi准确率(om=5,on=10%)

图5在lfr图上检测的重叠节点准确率(om=3,on=10%)

图6为本发明方法流程图。

图7为算法1流程图。

图8为算法2流程图。

附表说明

表1lfr基准图的参数及含义

表2在fedora网络上的重叠社区发现结果

具体实施方式

以下给出若干实施方式对本发明技术方案做进一步说明。

实施方式一

以下对各步骤进行详述。

所述步骤1中,节点活跃度的定义与解析

为了度量节点的活跃程度,本发明对节点适应度模型进行扩展,得到了节点活跃度(nodevitality)。适应度模型用于对演化网络中不同节点的竞争能力进行度量,从而解释复杂网络的动态演化过程中的多尺度性,即除了高节点有更大的概率建立连接之外,“优质”节点也容易与其他节点创建新的连接,因而拥有较强竞争力。但是,原始的节点适应度是一个固定值,而节点的竞争力应该是变化的。本发明定义节点活跃度为一个与节点i相关联的实值vi∈[-1,1],vi是描述节点i在网络演化中快速创建或删除连接的内在能力并且是可变的。例如,在社交网络中,节点活跃度可能对应一个人快速结交新朋友的社交能力。当vi>0时,节点i的边有增加的趋势;当vi<0时,节点i的边有减少的趋势。|vi|越大表示节点i在未来改变所在重叠社区的可能性越大。

在演化过程中,节点活跃度会影响节点边数即影响节点度ki的改变。本发明假设网络的演化表示为快照序列其中,每个快照gt可以视为一个静态网络gt(vt,et)(1≤t≤n),vt和et分别表示快照gt的节点集合和边集合。因此,通过比较快照gt-1和gt和分析ki的变化,可以得到节点活跃度vi。在节点适应度模型中,所有节点的ki服从幂律度分布,则一个节点的ki随时间的演化由一个与适应度ηi的分布有关的动态指数β(ηi)决定,即:

其中,t表示网络的年龄,ti表示节点的年龄,m是网络中边数的改变量除以节点个数的改变量。βi(ηi)∈(0,1)是一个与适应度的分布ρ(ηi)及节点i的适应度ηi相关的指数。如前所述,ηi是一个固定值因而无法表示节点变化后的活跃度。本发明将公式中的β(ηi)改为α(vi(t)),其中α(·)表示一个节点活跃度的函数。

如果网络是不演化的,即g1=…=gn,则vi与ηi正相关。为了简单起见,可以假设α(·)是一个常函数,则vi(t)=α-1(β(ηi))=u·β(ηi)。u是一个常数,不会影响节点活跃度的比较,因而将它忽略。所以,在一个快照中vi(t)=β(ηi),并对(4)进行适当的变换,得到快照gt中节点i的活跃度为

其中,m≠0,sgn(·)是一个符号函数。在该公式中,节点i的变化速度ki(t)可以通过得到,即比较两个相邻快照中节点i的度。因此,节点活跃度vi(t)为:

在公式(6)中,如果节点i满足本发明规定其节点活跃度vi(t)=0。还需要指出的是,网络的年龄必须总是大于节点的年龄,即t>ti。

公式(6)通过比较快照gt-1和gt推导出gt中的活跃度,而无法得到gt-1中的活跃度。当只有一个静态网络时,无法得到各节点的活跃度;对于快照序列无法得到g1中的节点活跃度,此时假设所有节点活跃度为同一个值。对进行分析时,本发明利用快照索引τ∈{1,2,...,n}作为的年龄,每个节点第一次出现时所在的快照索引τi加1作为节点的年龄,即τi+1。

从公式(6)可以看出,当节点的边数改变量越大,活跃度越高。然而,公式(6)不能保证vi(t)∈[-1,1]。因此,对公式(6)得到的活跃度进行最小‐最大归一化(min-maxnormalization),如下

当得到节点活跃度之后,为了找出快照中的活跃节点并对其进行分析,本发明引入一个活跃度阈值v*∈[0,1]。活跃度满足|vi|>v*的节点是活跃节点,其余节点是普通节点。v*可以根据具体的网络设定。一种直接方法是将快照中所有节点活跃度的平均值作为v*

所述步骤2中,利用节点活跃度,组合适应度函数与演化相似度,建立重叠社区扩展的目标函数

适应度函数用于度量一组节点间紧密程度,判断这组节点是否能作为一个重叠社区,是扩展法的重叠社区发现方法中的优化目标函数。一个在lfm(lfm,lancichinettifortunatomethod)和gce(gce,greedycliqueexpansion)中能得到较好结果的适应度函数为:

其中,win和wout分别是重叠社区内部节点之间和内外节点之间的连接数,参数α用于控制所发现重叠社区的大小。该函数假设所有节点活跃度相同,忽略了它们演化趋势不同,使得结果与未来快照不一致,缺乏预测能力。因此,本发明引入演化相似度ρ表示当前重叠社区ct与其在未来快照中对应的重叠社区ct+1间的相似度。一个重叠社区除了应具有紧密的内部连接和稀疏的外部连接外,还应具有较高的演化相似度,从而既匹配当前快照又能预测未来状态。为了检测这样的重叠社区,将节点活跃度与适应度函数组合,推导新优化目标函数用于扩展。

首先,借助于随机块模型(sbm,stochasticblock-model),分析适应度函数是如何得到的。一个随机块模型中包含k个块,每个块对应一个社区,每个节点属于其中一个块。然后,定义一个k×k的概率矩阵ψ,其中元素ψi,j表示第i个块中的节点与第j个块中的节点的连接概率。通过让矩阵ψ的取值不同,随机块模型可以描述任意类型的网络。基于扩展的社区发现方法等价于用随机块模型拟合一个快照,即推断模型参数k、矩阵ψ和节点到块的分配关系。

因为一次扩展过程只考虑一个节点集合,本发明将当前考虑的节点集合作为一个块并且将所有其余节点视为另一个块简化了块数k=2。块被初始化为某个初始节点集合即种子,扩展完成后,作为一个重叠社区。此时,随机块的概率矩阵ψ为

其中,ξ11和ξ22分别表示块中的任意两节点间的连接概率,ξ12表示之间节点的连接概率。根据社区的定义,ξ11应该较大而ξ12应该较小,ξ22对于是否对应重叠社区没有影响,可以忽略。比值ξ11/ξ12的大小可以检验块成为一个重叠社区的程度。比值越大表示越有资格成为重叠社区。

现在,ξ11和ξ12是未知的且块是初始状态,必须通过扩展来估计ξ11和ξ12,从而发现所对应的重叠社区。参数ξ11可以用当前节点集合的内部节点之间的边概率的期望估计如下

其中,i和j分别代表中的一个节点,pij代表i和j之间的边概率,n是块中的节点个数,win是节点集合内边的总数。实际上,公式(10)假设节点集合内的一对节点产生边的概率相同。类似地,ξ12可以估计为

其中,i和j分别代表代表中的节点,m代表块中的节点个数,wout代表介于之间的边数。由于大多数网络是稀疏的,可以认为n≈m从而用n2代替n·m。现在,比值ξ11/ξ12能够度量是否能作为一个重叠社区,因而可以作为优化目标函数。为了使扩展可以用参数控制,一种更好的方法是将ξ11/ξ12带入函数f(x)=x/(1+x)α,即

即在lfm和gce方法中所采用的适应度函数。

为了得到考虑了节点活跃度的适应度函数,本发明给随机块模型中的节点定义演化相似度ρi,描述中的节点出现在中的概率。因此,节点i的演化相似度为

其中,表示节点i在已知当前属于的条件下未来出现于的概率。类似的,表示当前属于的节点在未来出现于的概率。ρi与节点活跃度vi及社区节点与中的其它节点的连接数kin相关,可以估计如下

通过公式(14)得到节点集合的演化相似度之后,本发明可以计算出之间的演化相似度如下

其中,n是中节点的个数。如前所述,传统的适应度函数没有考虑节点活跃度不同。为了将上面根据活跃度及演化相似度用于新的目标函数,将公式(8)与(15)组合,得到新的优化目标函数如下

其中,参数β∈[0,1]控制在传统的适应度函数和演化相似度之间的折中。公式(16)不仅考虑了当前快照gt中节点间的连接关系,还考虑了不同节点具有不同的演化趋势,使用新的目标函数检测得到的重叠社区能预测其未来状态。

所述步骤3中,分析了对重叠社区发现结果产生影响的种子和将其进行非对称性扩展

除了目标函数之外,用于扩展的初始节点集合即种子对基于扩展法的重叠社区发现的结果也会产生重要影响。lfm方法曾使用尚未处理过的随机选择的节点作为种子,而有研究者则使用未处理过的随机选择的边作为种子进行扩展。但是,在lfr图(lfr,lancichinettifortunatoradicchi)上的结果证明随机节点和随机边并非好的选择。最近,有人提出了使用最大社团作为种子,获得了较好的结果。本本发明也将采用最大社团用于扩展,因为其内部连接密度最高。

在扩展之前,本发明需要搜索当前快照gt中的所有最大社团从而对它们进行扩展。在一个网络中搜索所有的最大社团是图论中的一个经典问题并且已经过充分研究。一种解决枚举所有最大社团问题的高效算法是bron-kerbosch算法。该算法的第一个版本自从1973年提出以来,已经产生了几个变种。本发明选择带节点枢轴(vertexpivoting)及排序的bron-kerbosch算法来枚举最大社团。其参数k指定社团中节点个数的最小值。通常情况下,参数k应设为4。

在完成对所有最大社团的搜索后,第二步是将这些社团作为种子进行扩展。将一个种子记为s,则与其相邻的节点集合n表示为

其中,i是s中的一个节点,n(i)表示节点i的所有邻居节点。在每次扩展时,本发明都从n中选择一个节点放入s中,即把它从集合n移动到集合s中。在每次从n中选择节点时,本发明对公式(16)中的目标函数进行局部贪心优化,即从n中选择一个节点使得该节点放入s后函数f的取值最大。在每次选择之前,集合s的函数值为f(s)。本发明试探性地将n中的每个节点放入s,从而计算新的函数值与f(s)的差,即

fi=f(s∪{i})-f(s)(18)

集合n中的每个节点i都有一个fi值。本发明从n中选择函数取值为正且取值最大的节点,即选择节点j并将它真正放入s中,

上面选择节点的过程保证了每次都使得目标函数的取值增大。在将节点j放入s之后,本发明需要对s的邻居节点集合n进行更新,从而保持与s的状态一致。重复上面所述的过程,每次都选择一个节点放入集合s中从而优化目标函数。当无法再找到任何一个能优化公式(19)的节点时,扩展过程终止。此时,集合s所对应的目标函数值为局部最优值,s作为一个检测到的重叠社区。由于该优化目标函数更容易选择活跃节点,因此称为非对称性扩展,如算法1所示(图7所示)。

该非对称性扩展算法无法避免不同的社团扩展为相同或极为接近的节点集合,导致检测结果中存在多个几乎一样的社区。该问题不仅导致结果的nmi准确度下降,还会占用大量计算时间引起执行速度变慢。为了避免重复检测,计算扩展后的节点集合sc与未扩展节点集合su间的相对重叠率,即:

其中,集合su即前面所述的种子。如果σi取值越大,su再次扩展成为一个与sc接近的社区的可能性越大。因此,当σi大于某阈值σ时,本发明舍弃集合su。

所述步骤4中,给出基于节点活跃度的非对称社团扩展的重叠社区发现算法

至此本发明已经讨论了基于节点活跃度的重叠社区发现中的演化相似度、目标函数、种子和非对称性扩展等各部分。利用节点活跃度和非对称性社团扩展的重叠社区发现过程如算法2所示。在该算法中,静态网络和动态网络分别采用不同的输入格式。

当分析静态网络时,输入数据仅有一个快照g;当分析动态网络时,输入数据是一个快照序列{g1,g2,...gn},其中每一个快照都可以视为一个静态网络。在分析动态网络时,还需要一个索引指定在哪个快照中进行分析。在给定bron‐kerbosch算法的参数k,相对覆盖率阈值σ,目标函数控制参数α和β之后,进行重叠社区发现如算法2所示。首先,计算各节点的活跃度vi。接下来利用bron‐kerbosch算法]搜索快照中的所有最大社团作为扩展的种子。然后,本发明采用cch方法(cch,cliquecoverageheuristic)去掉相似的种子,避免重复发现相同社区。通过对目标函数(17)进行优化来扩展每个种子。当所有种子都扩展后,比较所发现的重叠社区并消除重复结果。

如算法2所示(图8所示),基于节点活跃度的重叠社区发现中的5个参数需要指定。当分析稠密的网络时,参数k可能需要适当增大以减少bron‐kerbosch算法返回的最大社团个数。k对检测准确率影响不大,只会影响种子个数,且算法中的cch方法可去掉不必要的种子。α通常设为1,控制重叠社区大小。要使节点个数更多,α应设为更小的值。β控制在适应度函数和演化相似度之间的平衡,β更大使得重叠社区更匹配未来状态。σ是判断重叠社区重复的阈值。应该根据网络重叠特征决定σ,对于社区重叠程度高的网络应将σ设为较小的值。

所述步骤5中,对目标函数进行试验验证

首先,本发明用于验证新推导的目标函数是否解决重叠社区发现中的过度扩展问题,即部分重叠社区的节点数远高于正常值。在该组实验中,用lfr图来生成网络。lfr共提供了10个参数,其取值及含义如表1所示。其中,n对检测结果没有太大影响;真实网络中节点的平均度约为15,因而τ1和τ2分别控制节点度分布和社区大小分布;on控制重叠节点个数;om控制节点最多同时属于几个社区;参数μ定义一个节点在重叠社区内的边与该节点所有边数的比值,μ取值越大则重叠社区越难检测。

首先,本发明按照表1中的参数配置生成合成网络。将μ设为较大值是为了增大过度扩展问题的出现几率。然后,本发明在该网络上分别执行gce(记为“g1”),使用原适应度函数的acenv(记为“a0”)和使用新目标函数的acenv(记为“a1”),并与真实社区(记为“g0”)比较。

为了检测g1,a0和a1是否解决社区过度扩展问题,将三者得到的社区大小与g0比较,结果如图1所示。为了绘图方便,g0和a1位于x轴的下方,g1和a0位于x轴的上方。对g0中的社区,按照雅可比指数相似度(jaccardindex)分别寻找g1,a0和a1中最接近的社区。并且规定g1,a0和a1中的社区只与g0中的匹配一次,舍弃相似度极低的社区。通过以上方式将g1,a0和a1中的社区与g0对齐并比较社区大小。

如图1所示,x轴中的一列代表g0中的一个社区或g1、a0和a1中与g0最接近的社区,y轴表示该社区的节点数。在a0中对应x=1的社区的节点数实际上是1000,为了节省空间,在图中未全部画出。由此可见,a0中对应x=1的社区的节点数达到了1000,即产生了过度扩展问题。过大的社区使得a0中的社区个数明显减少,许多本应检测到的社区由于与x=1存在太多公共节点被错误地舍弃。然而在a1中,社区数量及大小都更接近g0且没有产生过大的社区。

为了更清楚地比较g1,a0和a1与g0的差异,本发明分别将g1,a0和a1中社区的大小减去g0相应社区的大小,结果如图2所示。因此,g0对应图2中的直线y=0,位于x=0上方的点表示社区大于真实社区,位于x=0下方的点表示社区小于真实社区。从图2可以看出,a1最接近于g0,优于g1和a0。通过分析图2中的实验结果,本发明证明了使用新推导的目标函数避免了节点过度扩展,减少了社区被不当舍弃的情况发生。

所述步骤6中,利用合成网络对重叠社区发现及其准确率检测

在这里的实验中,本发明在lfr生成的网络上比较acenv与其他当前最佳方法的准确率,包括ganxisw、copra和gce等方法。首先,按照表1中所列的参数用lfr生成具有不同特征的网络。然后,分别在这些网络上执行ganxisw、copra、gce和acenv。当执行完成以后,本发明分别用nmi和f‐score对这些方法得到的结果进行检验。

在生成lfr图时,本发明通过控制lfr的参数μ和om取不同的值来检验不同方法所得到的结果。前人在实验中仅研究了μ或om而没有研究μ和om同时对结果产生的影响。在给定om之后,为了比较不同方法对社区的检测能力,本发明让参数μ以0.1为间隔从0.1变动到0.8并生成相应的网络并执行检测。另外,为了比较不同重叠程度下的社区检测能力,本发明将on设为10%的节点、μ分别设为0.3和0.5,让om从1变动到8从而生成lfr图并检测。当μ或om不断增加时,社区的检测难度也不断增加。

许多重叠社区发现方法都提供参数从而更好地完成检测,且使用不同的参数会产生不同的结果。在用copra进行检测时,本发明让其唯一参数v等于lfr参数om,因为它们含义相同;在用ganxisw进行检测时,本发明让其参数α从0.05取值到0.5,选择最好的结果参与比较;在用gce进行检测时,将其参数设为默认值,即k=4,α=1.0;在用acenv进行检测时,参数设置为k=4,α=1.0,σ=0.75,其中重叠节点再分配算法的参数ξ=0.3。本发明用nmi对所有结果进行度量。

在om=3,on=10%的条件下,这4种方法的nmi准确率如图3所示。可以看见,所有方法的nmi都随μ增大而下降。当μ<0.4时,所有方法的nmi都超过了0.6,此时corpa最差而acenv最好。当μ>0.4时,ganxisw和copra的nmi快速下降到0,而gce和acenv依然能够检测到社区。图4与图3类似但是提高了重叠多样性om,其结果与图3所示的近似。从图3和图4可以看出,acenv在不同的μ和om取值下,nmi最高。

在om=3,on=10%的条件下,这4种重叠社区发现方法的重叠节点检测准确率(f‐score)与μ的关系如图5所示。很显然,copra和gce的f‐score几乎为0,表明这两种方法无法正确处理重叠节点。ganxisw能正确处理重叠节点,但是acenv的f‐score准确率更高。

从以上结果可以看出,acenv的nmi准确率和f‐score准确率均超过了当前最好的方法。在本发明用不同的混合度参数μ、重叠程度om生成的lfr图上进行重叠社区发现时,gce和acenv的nmi准确率是最高的,而ganxisw和acenv的f‐score准确率是最高的。从总体上看,acenv的nmi和f‐score均优于其它参与比较的方法。通过以上实验比较,本发明证明了acenv的重叠社区检测准确率在所有参与比较的重叠社区发现方法中是最高的。

所述步骤7中,在真实网络环境下对重叠社区发现及其准确率检测

本发明在一个根据真实系统构造得到的网络中进行重叠社区发现,从而验证acenv的实际应用能力。首先,本发明根据fedora系统组件中的rpm包依赖关系构造出了这样的网络,将其简称“fedora网络”。然后,由于缺乏真实社区作为参照,本发明采用社区发现领域中另一个常用的模块度作为度量指标。另外,本发明还分析了所检测到的重叠社区对未来节点集合的预测能力。

在fedora网络中,一个节点代表一个软件模块,例如glibc、vim和gdb等。不同的模块之间存在着依赖关系,例如vim依赖glibc。如果两模块间存在依赖关系,则在两节点之间创建一条边,构造出一个网络。由于fedora系统不断发展,本发明选择第7到13版来构造快照,并为一个版本构造一个了网络快照。fedora网络的节点互相协作完成复杂任务,构成了社区。

在构造出快照后,本发明分别以β=0和β=0.1运行acenv,并与gce和ganxisw比较。以模块度作为度量函数的检测结果如表2所示。为了度量结果与未来社区的相似程度,即对社区演化的预测能力,计算从快照gt得到的社区在gt+1中的模块度,即映射模块度。acenv的两模块度均高于其它方法。

表2

另外,在使用不同的参数应用acenv对fedora网络进行重叠社区发现时,本发明还发现了许多有趣的特性。通过使β从0变到1、每次增加0.1分别执行acenv,所得到的社区发现结果非常接近。特别地,当β=1时,即完全用演化相似度代替适应度作为优化目标函数,acenv依然得到了模块度和映射模块度都较高的结果。该现象的一种可能的解释是,在fedora系统的研发过程中,一个子系统常作为一个整体进行处理,要么该子系统的所有组件全部被删除要么保持不变。因为一个子系统模块在设计完成后,通常不会发生较大变化。

实施及验证例二

具体方法包括如下步骤:

步骤1.节点活跃度的定义与解析;

步骤2.利用节点活跃度,结合适应度函数与演化相似度,建立重叠社区扩展的目标函数;

步骤3.分析了对重叠社区发现结果产生影响的种子和将其进行非对称性扩展;

步骤4.基于节点活跃度的非对称社团扩展的重叠社区发现算法。

步骤5.对目标函数进行试验验证

步骤6.利用合成网络对重叠社区进行发现及其准确率检测

步骤7.在真实网络环境下对重叠社区发现及其准确率检测

每个步骤详述如下。

一、定义和解析节点活跃度

为了度量节点的活跃程度,本发明对节点适应度模型进行扩展,得到了节点活跃度(nodevitality),简称活跃度。适应度模型用于对演化网络中不同节点的竞争能力进行度量,从而解释复杂网络的动态演化过程中的多尺度性,即除了高节点有更大的概率建立连接之外、“优质”节点也容易与其他节点创建新的连接,因而拥有较强竞争力。但是,原始的节点适应度是一个固定值,而节点的竞争力应该是变化的。本发明定义活跃度为一个与节点i相关联的实值vi∈[-1,1],vi是可变的且描述节点i在网络演化中快速创建或删除连接的内在能力。

二、建立重叠社区扩展的目标函数

一个重叠社区除了应具有紧密的内部连接和稀疏的外部连接外,还应具有较高的演化相似度,从而既匹配当前快照又能预测未来状态。为了检测这样的重叠社区,将节点活跃度与适应度函数组合,推导新优化目标函数用于扩展。

首先,借助于随机块模型(sbm,stochasticblock‐model),分析适应度函数是如何得到的。一个随机块模型中包含k个块,每个块对应一个社区,每个节点属于其中一个块。然后,定义一个k×k的概率矩阵ψ,其中元素ψi,j表示第i个块中的节点与第j个块中的节点的连接概率。通过让矩阵ψ的取值不同,随机块模型可以描述任意类型的网络。基于扩展的社区发现方法等价于用随机块模型拟合一个快照,即推断模型参数k、矩阵ψ和节点到块的分配关系。

三、分析对重叠社区发现结果产生影响的种子和将其进行非对称性扩展

本发明采用最大社团用于扩展,因为其内部连接密度最高。

在扩展之前,需要搜索当前快照gt中的所有最大社团从而对它们进行扩展。在一个网络中搜索所有的最大社团是图论中的一个经典问题并且已经过充分研究。一种解决枚举所有最大社团问题的高效算法是bron‐kerbosch算法。该算法的第一个版本自从1973年提出以来,已经产生了几个变种。本发明选择带节点枢轴(vertexpivoting)及排序的bron‐kerbosch算法来枚举最大社团。其参数k指定社团中节点个数的最小值。通常情况下,参数k应设为4。在完成对所有最大社团的搜索后,第二步是将这些社团作为种子进行扩展。

四、给出基于节点活跃度的非对称社团扩展的重叠社区发现算法

当acenv用于分析静态网络时,输入数据仅有一个快照g;当分析动态网络时,输入数据是一个快照序列{g1,g2,...gn},其中每一个快照都可以视为一个静态网络。在分析动态网络时,还需要一个索引指定在哪个快照中进行分析。在给定bron-kerbosch算法的参数k,相对覆盖率阈值σ,目标函数控制参数α和β之后,acenv进行重叠社区发现。首先,计算各节点的活跃度vi。接下来利用bron-kerbosch算法搜索快照中的所有最大社团作为扩展的种子。然后,采用cch方法(cch,cliquecoverageheuristic)去掉相似的种子,避免重复发现相同社区。通过对目标函数进行优化来扩展每个种子。当所有种子都扩展后,比较所发现的重叠社区并消除重复结果。

五、对目标函数进行试验验证

首先,按照表1中的参数配置生成合成网络。将μ设为较大值是为了增大过度扩展问题的出现几率。然后,本发明在该网络上分别执行gce(记为“g1”),使用原适应度函数的acenv(记为“a0”)和使用新目标函数的acenv(记为“a1”),并与真实社区(记为“g0”)比较。

表1

六、利用合成网络对重叠社区进行发现及其准确率检测

本发明在lfr生成的网络上比较acenv与其他当前最佳方法的准确率,包括ganxisw、copra和gce等方法。首先,按照表1中所列的参数用lfr生成具有不同特征的网络。然后,分别在这些网络上执行ganxisw、copra、gce和acenv。当执行完成以后,分别用nmi和f‐score对这些方法得到的结果进行检验。

在生成lfr图时,本发明通过控制lfr的参数μ和om取不同的值来检验不同方法所得到的结果。前人在实验中仅研究了μ或om而没有研究μ和om同时对结果产生的影响。在给定om之后,为了比较不同方法对社区的检测能力,本发明让参数μ以0.1为间隔从0.1变动到0.8并生成相应的网络并执行检测。另外,为了比较不同重叠程度下的社区检测能力,本发明将on设为10%的节点、μ分别设为0.3和0.5,让om从1变动到8从而生成lfr图并检测。当μ或om不断增加时,社区的检测难度也不断增加。

七、在真实网络环境下对重叠社区发现及其准确率检测

在一个根据真实系统构造得到的网络中进行重叠社区发现,从而验证acenv的实际应用能力。首先,根据fedora系统组件中的rpm包依赖关系构造出了这样的网络,将其简称“fedora网络”。然后,由于缺乏真实社区作为参照,采用社区发现领域中另一个常用的模块度作为度量指标。另外,还分析了所检测到的重叠社区对未来节点集合的预测能力。

在fedora网络中,一个节点代表一个软件模块,例如glibc、vim和gdb等。不同的模块之间存在着依赖关系,例如vim依赖glibc。如果两模块间存在依赖关系,则在两节点之间创建一条边,构造出一个网络。由于fedora系统不断发展,本发明选择第7到13版来构造快照,并为一个版本构造一个了网络快照。fedora网络的节点互相协作完成复杂任务,构成了社区。在构造出快照后,分别以β=0和β=0.1运行acenv,并与gce和ganxisw比较。为了度量结果与未来社区的相似程度,即对社区演化的预测能力,计算从快照gt得到的社区在gt+1中的模块度,即映射模块度。

本发明创新点

创新之一:提出了一种基于复杂网络环境下的节点活跃度的概念及其合理的表示方法,从而更客观地体现重叠社区发现的真实性和可靠性。针对目前关于复杂网络演化中重叠社区发现的研究并没有考虑节点个体的动态演化、不均匀活跃度分布和多尺度性(multi‐scaling)等问题,用节点活跃度更好地量化了节点的动态程度。

创新之二:对复杂网络中重叠社区的节点活跃度进行分析,给出了一种基于节点活跃度的非对称社团扩展的重叠社区发现及预测方法。首先,定义节点活跃度,讨论如何将节点活跃度用于重叠社区扩展的目标函数;然后,介绍社区扩展及使用最大社团作为扩展种子的相关问题;最后,给出基于节点活跃度的非对称社团扩展算法。本发明从根本上提升了复杂网络中的重叠社区的检测准确率,并且对未来重叠社区具有较好的预测能力。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1