一种改进的基于Surprise优化的网络模块识别方法与流程

文档序号:18510067发布日期:2019-08-24 09:02阅读:318来源:国知局
一种改进的基于Surprise优化的网络模块识别方法与流程

本发明涉及网络模块技术领域,具体为一种改进的基于surprise优化的网络模块识别方法。



背景技术:

复杂网络为复杂系统的研究提供了一种有用的途径,如新陈代谢网络和蛋白质相互作用网络,这些网络具有许多共同的拓扑性质,例如,模块结构或模块结构广泛存在于各种复杂网络中,这意味着网络由密集连接的顶点集合组成,而这些顶点集合与网络的其余部分是稀疏连接的。模块结构对于了解网络的结构和功能以及网络的动力学具有重要的意义;例如,在具有明显模块结构的网络中,发现局部靶向免疫优于全局靶向免疫。社会网络中,在较强的选择条件下,丰富的模块可以促进合作组合。因此,复杂网络中的模块检测在各个领域都引起了广泛的关注。

人们提出了多种方法来检测复杂网络中的模块[11-20],如谱分析、随机游走、动力学、标签传播、模块化优化等。现有的方法确实可以帮助揭示网络中的内在结构,但它们也有自己的应用范围,因此有必要研究它们的行为,如模块检测中的分辨率问题。这有助于更好地理解模块检测方法本身,促进模块检测方法的发展。例如,基于模块化优化和贝叶斯推理的模块检测方法发现,在模块检测中存在着从可检测结构到不可检测结构的相变,这为模块检测的可实现性提供了一个约束。botta等人详细分析了模块密度,指出了其优缺点[34]。原始的模块度优化方法不能识别低于某一特征尺度的模块结构,特别是在大型网络中,被称为(第一种类型的)分辨率极限,许多其它质量函数也有类似的现象。人们已经使用了各种方法来改进基于模块度优化的方法。lai等人提出了一种改进基于模块度方法的随机游走网络预处理方法。然后利用模块间的相关性,改进了基于模块度的信念传播方法,提高了模块数量的估计。分辨率极限问题还意味着网络可能具有多尺度的模块结构,并暗示着开发可调分辨率的模块检测算法的必要性。

优化模块结构的统计指标是目前最流行的模块检测方法之一,如模块度、哈密顿量、分区密度等;在文献中,aldecoa等人提出了一种针对模块结构的重要统计度量,即surprise,它被定义为在随机网络中发现所观察到的模块内链路数目或更多的概率的负对数;根据累积的超几何分布,它可以写成

其中m是网络中最大可能的链路数;mint是给定分区中模块内链路的最大可能数;m是网络中现有链路的数目;而mint是分区中现有模块内链接的数目。该目标函数在许多网络中表现出良好的性能,但它最初是针对非加权网络提出的,涉及到复杂的非线性因素,给理论分析和数值计算带来了困难。最近,我们系统的研究了surprise在模块识别中的行为,并发现原始的surprise拥有比模块度和渐进surprise更高的分辨率,但是它仍然可能遭受分辨率极限问题,并且可能导致模块的过度分裂[47]。

我们知道,为了解决模块度的分辨率问题,许多方法已经被提出[11,37,38]。例如,利用边的权重化来修饰网络的模块结构,分辨率问题能够被改进。通过这个策略,许多已经存在的方法也能够被进一步改善。但是,因为这个策略要求对应方法能够接受权重信息,所以它不适用于surprise优化方法。



技术实现要素:

本发明的目的在于提供一种改进的基于surprise优化的网络模块识别方法,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:一种改进的基于surprise优化的网络模块识别方法,该方法包括以下步骤:

s1:分析surprise的分辨率:引入了一组具有r个模块的模块环路网络,将它们一个接一个地连接起来,在网络中,每个模块都有nc个节点,整个网络有n=r×nc个节点,pi为在模块内连接顶点的概率,po为在两个不同和相邻的模块中连接顶点的各自概率,研究surprise出现模块合并的临界点,即从原来的分区到由r/2组顶点组成的分区的转变点,其中每个组包含两个相邻的模块;

s2:拓扑结构预处理(pre_ts):计算所有节点之间的相似度;计算所有节点的度值;对每个节点,切断所有的原有链接,选择k个相似性最高的节点,并与之相连;

s3:模块结构预处理(pre_cs):因为越相似的的节点越可能属于相同模块,所以先计算节点相似性,此处采用共有邻居相似度cn,它表示两个顶点之间的共同邻居数,对于每个随机选择的节点i,选择其相似性最大的邻居节点t,将节点i分配到节点t所属的模块,每个节点重复一次,获得一个初始的模块划分;

s4:模块结构的后处理(post_cs):为改善模块划分的最终输出,增加了一个改进原算法所得到的划分的过程;该过程将随机地从一个模块中删除一个顶点,将该点移动到能产生最大的surprise增量的模块中;该过程被反复迭代,直到surprise没有改进为止;

s5:联合pre_ts、pre_cs和post_cs对surprise进行优化,优化的步骤如下:

a:拓扑结构预处理:利用pre_ts优化网络拓扑结构;

b:初始化分区:利用pre_cs产生初始的网络划分;

c:随机选择一个节点,并将其移动到目标函数最大增量的模块中;

d:重复步骤c,直到目标函数没有改进,或改进达到预定值;

e:将当前图转换为超图:当前划分中的每一模块转化为一个超级节点,模块间的链接转换为超级节点之间的权重,模块内的链接转换为超级节点的自连接;

f:从步骤c重复,直到目标函数没有改进,或改进达到预定值,或达到指定的循环次数;

g:精炼模块划分:利用post_cs进一步改善网络模块划分。

与现有技术相比,本发明的有益效果是:通过对基于surprise的模块识别方法的临界转变的相图分析,通过引入三种有效策略(pre_ts,pre_cs和post_cs),提出了一种改进的surprise优化方法;在不同的网络中,所有这些策略都能从不同的方面提高惊喜优化的性能:pre_ts可以改善网络中的模块结构,从而能够显著地提高surprise的分辨率;pre_cs可以为优化算法提供更合适的初始分区,避免陷入模块分配的陷阱,从而使全局最优分区能够更有效地达到,post_cs可以进一步改进模块的分配;此外,还证明了改进的方法能够有效地减少模块的过度分裂;将上述改进方案结合,有效改进了surprise优化方法识别网络模块的能力。

附图说明

图1为本发明surprise优化策略说明示意图;

图2为本发明surprise优化程序流程图;

图3为本发明在测试网络中参数po/pi的函数示意图;

图4为本发明在测试网络中平均度的函数示意图;

图5为本发明在测试网络中参数μ的函数示意图;

图6为本发明优化算法在真实体系中的对比示意图;

图7为本发明海豚网络中的模块结构示意图。

图8为本发明pre_ts、pre_cs和post_cs改进策略的几种组合方式示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1-图8,本发明提供一种技术方案:一种改进的基于surprise优化的网络模块识别方法,该方法包括以下步骤:

s1:分析surprise的分辨率:引入了一组具有r个模块的模块环路网络,将它们一个接一个地连接起来,在网络中,每个模块都有nc个节点,整个网络有n=r×nc个节点,pi为在模块内连接顶点的概率,po为在两个不同和相邻的模块中连接顶点的各自概率,研究surprise出现模块合并的临界点,即从原来的分区到由r/2组顶点组成的分区的转变点,其中每个组包含两个相邻的模块;

s2:拓扑结构预处理(pre_ts):计算所有节点之间的相似度;计算所有节点的度值;对每个节点,切断所有的原有链接,选择k个相似性最高的节点,并与之相连;

s3:模块结构预处理(pre_cs):因为越相似的的节点越可能属于相同模块,所以先计算节点相似性,此处采用共有邻居相似度cn,它表示两个顶点之间的共同邻居数,对于每个随机选择的节点i,选择其相似性最大的邻居节点t,将节点i分配到节点t所属的模块,每个节点重复一次,获得一个初始的模块划分;

s4:模块结构的后处理(post_cs):为改善模块划分的最终输出,增加了一个改进原算法所得到的划分的过程;该过程将随机地从一个模块中删除一个顶点,将该点移动到能产生最大的surprise增量的模块中;该过程被反复迭代,直到surprise没有改进为止;

s5:联合pre_ts、pre_cs和post_cs对surprise进行优化,优化的步骤如下:

a:拓扑结构预处理:利用pre_ts优化网络拓扑结构;

b:初始化分区:利用pre_cs产生初始的网络划分;

c:随机选择一个节点,并将其移动到目标函数最大增量的模块中;

d:重复步骤c,直到目标函数没有改进,或改进达到预定值;

e:将当前图转换为超图:当前划分中的每一模块转化为一个超级节点,模块间的链接转换为超级节点之间的权重,模块内的链接转换为超级节点的自连接;

f:从步骤c重复,直到目标函数没有改进,或改进达到预定值,或达到指定的循环次数;

g:精炼模块划分:利用post_cs进一步改善网络模块划分。

与现有技术相比,本发明的有益效果是:通过对基于surprise的模块识别方法的临界转变的相图分析,通过引入三种有效策略(pre_ts,pre_cs和post_cs),提出了一种改进的surprise优化方法;在不同的网络中,所有这些策略都能从不同的方面提高惊喜优化的性能:pre_ts可以改善网络中的模块结构,从而能够显著地提高surprise的分辨率;pre_cs可以为优化算法提供更合适的初始分区,避免陷入模块分配的陷阱,从而使全局最优分区能够更有效地达到,post_cs可以进一步改进模块的分配;此外,还证明了改进的方法能够有效地减少模块的过度分裂;将上述改进方案结合,有效改进了surprise优化方法识别网络模块的能力。

本发明首先通过研究模块融合中与网络参数密切相关的模块临界数目,分析了surprise的临界行为和分辨率;然后,针对surprise优化中因复杂非线性而难于优化、分辨率极限以及模块的过度分裂等问题,提出了一种改进的surprise优化方法。为了验证该方法在模块检测中的有效性,将该方法应用于各种网络。

2.methods(方法)

在这里,我们介绍了surprise的定义及其分辨率,并提出了一种预处理策略来改进网络中的模块结构,这有助于提高surprise的分辨率,然后提出了一种改进模块划分的后处理策略,提高了优化算法的效果;最后,介绍了改进的基于surprise的模块检测方法的一般步骤。

2.1surprise及其分辨率

分析surprise的分辨率:引入了一组具有r个模块的模块环路网络,将它们一个接一个地连接起来,在网络中,每个模块都有nc个节点,整个网络有n=r×nc个节点,pi为在模块内连接顶点的概率,po为在两个不同和相邻的模块中连接顶点的各自概率,研究surprise出现模块合并的临界点,即从原来的分区到由r/2组顶点组成的分区的转变点,其中每个组包含两个相邻的模块;

一般来说,与模块度等其他方法相比,surprise具有很高的分辨率,但在某些情况下,可能仍然会出现分辨率限制问题,即某些模块可能会被surprise合并。作为一个例子,我们引入了一组具有r个模块的模块环路网络,它们一个接一个地连接起来。在网络中,每个模块都有nc个节点,整个网络有n=r×nc个节点,pi为在模块内连接顶点的概率;po为在两个不同和相邻的模块中连接顶点的各自概率。为了研究surprise出现模块合并的临界点,我们考虑了从原来的分区到由r/2组顶点组成的分区的转换,其中每个组包含两个相邻的模块。图1(d)提供了一个相图,它显示了模块合并出现的区域。结果表明,随着po/pi的增加,surprise的分辨率逐渐降低。这是因为随着po/pi的增加,连接模块结构的数量增加,导致模块结构变得越来越不明显。此外,为了比较,我们还展示了网络中具有相似行为的其他度量(模块化)的临界点,surprise比模块度具有更高的分辨率;由于surprise的非线性特性,很难从解析上直接求出模块的临界数。在这里,我们尝试用surprise的渐近逼近来估计临界点。

图1.surprise优化策略说明:(a)网络例子;(b)分区过渡中的相图显示了模块合并中模块的临界数目rc是po/pi的函数;(c)通过重新连接网络中的连接来预处理拓扑结构;(d)通过对相似节点的配对进行预聚集,对模块结构进行预处理;(e)通过在模块之间移动节点对模块结构进行后处理改进。

2.2.增强surprise优化的几种策略

(1)基于局部随机游走的拓扑结构预处理(pre_ts)

如我们所知,模块度的分辨率极限是模块检测中众所周知的问题之一,许多质量函数都有类似的现象,许多基于模块化的方法已经提出了改进方法。例如,通过使用边缘重加权策略来修饰网络中的模块结构,可以有效地提高模块化的分辨率极限,并且通过这种策略,现有的许多方法也可以更好地识别出网络模块,而这种策略要求该方法能够利用信息的权重。

正如上面所讨论的,在某些情况下,surprise也有分辨率限制,但是边缘重加权策略不能直接应用于surprise,因为它不兼容加权网络。在这里,我们尝试用局部随机游走重建网络拓扑。该策略将计算顶点之间的相似性,然后删除一些相似度较低的现有边缘,同时添加一些相似程度较高的未知边。策略可以抛光网络中的模块,类似于边的再加权策略,但是预处理后的网络仍然没有加权,因此可以应用于surprise。

基于局部随机游走动力学的相似性,一般情况下,同一模块中的顶点所触发的动态过程具有相似的行为模式,而在不同模块中的顶点具有不同的行为模式。在t阶随机游走中,步子从一个顶点到另一个顶点的概率由矩阵pt决定。参数t是随机游走长度,决定于被浏览的局部结构的范围,在一般的网络中,通常使用小型的t值就可以获得良好的结果,转换矩阵p的元素pij为边(i,j)的权重与顶点i的加权度的比值,即pij=wij/wi。每个顶点的随机游动的行为模式可以用一个n维向量vi(i=1~n)来量化,每个向量对应矩阵的行。该矩阵考虑了所有步长从1到t的随机游走的情况,用来加强当前所考虑的目标顶点对附近顶点的控制。使用两个向量的余弦,基于局部随机游走的(lln)的相似度定义为:

其中(vi,vj)为向量之间的点积。如果两个行为向量高度一致性,则相似度否则趋近于0;通常,同一模块中的顶点对比不同模块的具有更高的相似度值,因此相似度的值可以作为一条边位于一个模块中的概率。

拓扑结构预处理的过程pre_ts:

1.计算所有节点之间的相似度,

2.计算所有节点的度值,

3.对每个节点,切断所有的原有链接,选择k个相似性最高的节点,并与之相连(保持其度值基本不变)。

(2)模块结构预处理(pre_cs)

思路:根据计算的节点直接的相似度,越相似的的节点越可能属于相同模块。

先计算节点相似性,为简单起见,此处采用共有邻居相似度,cn表示两个顶点之间的共同邻居数。近年来,该度量被广泛应用于复杂网络中的链接预测。实际上,有许多相同邻居的两个顶点可能具有更多的共同特征,因此它们更有可能属于同一分组,具有更强的交互性和更大的边缘权重。

模块结构预处理过程(pre_cs)

1.计算节点之间的共有邻居数目,

2.对于每个随机选择的节点i,选择其相似性最大的邻居节点t,

3.将节点i分配到节点t所属的模块,

4.从第二步开始重复,使得每个节点能够被执行一次,最终获得一个初始的模块划分。

(3)模块结构的后处理(post_cs)

louvain算法是一种用于获得一般品质函数的最优模块划分的经典优化算法,但是由于surprise的复杂性,该算法不能有效对其进行优化surprise。因此,我们增加了一个改进原算法所得到的划分的过程。

模块结构的后处理过程(post_cs):

1.获得网络的模块划分,

2.随机地从一个模块中删除一个顶点,将其移动到能产生最大的surprise增量的模块

3.从第2步开始迭代,直到surprise达到稳定为止或者达到指定的迭代次数。

2.3.surprise优化的一般程序

在这里,我们来介绍一下结合了pre_ts,pre_cs和post_cs的surprise优化的一般程序,流程见图2;

a:拓扑结构预处理:利用pre_ts优化网络拓扑结构;

b:初始化分区:利用pre_cs产生初始的网络划分;

c:随机选择一个节点,并将其移动到目标函数最大增量的模块中;

d:重复步骤c,直到目标函数没有改进,或改进达到预定值;

e:将当前图转换为超图:当前划分中的每一模块转化为一个超级节点,模块间的链接转换为超级节点之间的权重,模块内的链接转换为超级节点的自连接;

f:从步骤c重复,直到目标函数没有改进,或改进达到预定值,或达到指定的循环次数;

g:精炼模块划分:利用post_cs进一步改善网络模块划分。

这其中从第c步到第f步为原始louvain算法的流程。

为了后面讨论方便,设置上述策略的几种组合,并逐一说明:

(1)sp0=原始的louvain算法(没有pre_ts、pre_cs和post_cs过程);

(2)sp1=结合了pre_cs的算法;

(3)sp2=结合了pre_cs和post_cs的算法;

(4)sp3=结合了pre_ts和pre_cs的算法;

(5)sp4=结合了pre_ts、pre_cs和post_cs的算法,即本发明的最终方法。

图8:pre_ts、pre_cs和post_cs改进策略的几种组合方式。

图3:(a)以不同方法确定的模块数目与po/pi的函数关系,其中模块网络的r=40,nc=10和pi=0.8;(b)在po/pi=3/8的网络中,采用不同方法识别的模块数目随网络规模的变化而变化;虚线表示预定义的模块数量;mod方法提供了一个参考基线。

图4:在lfr网络中,不同策略识别的模块结构的标准化互信息(nmi)作为平均度km的函数;(a)n=500,cmax=50;(b)n=500,cmax=100;(c)n=1000,cmax=50;(d)n=1000,cmax=100。

图5:在1000个节点的lfr测试网络中,不同方法识别的模块结构的标准化互信息(nmi)作为混合参数μ的函数:(a)cmax=50和(b)cmax=100。

图6:在不同的现实世界网络中,采用不同的方法得到的模块结构的得分(nc、surprise和modularity),得分利用原始的surprise优化算法(sp0)的结果进行标准化处理;sp表示使用了所有策略(即sp4)的算法;(a)nc是通过不同方法检测到的模块数量;(b)纵向坐标是探测到的模块结构的surprise值;(c)纵向坐标是检测到的模块结构的模块化值。

图7:采用不同方法得到的海豚网络中的群落结构:(a)模块化优化方法;(b)原来的surprise优化算法;(c)改进的surprise优化算法;对于已识别的模块结构,同一模块内的节点以相同的颜色表示,对于真实的模块结构,同一模块中的节点用相同的符号来表示。

结论和讨论

在复杂网络中,人们提出了许多检测模块的方法,surprise是评估模块结构的重要统计指标,而surprise优化是识别复杂网络中模块的重要手段;surprise一般具有较高的分辨率,因此在许多网络中具有较强的抗分辨率能力和较好的性能,但在某些网络中仍有可能遇到分辨率极限,其复杂的非线性很容易导致优化的困难;本发明分析了在surprise在网络划分中的临界转变的相图,通过引入三种有效策略(pre_ts,pre_cs和post_cs),提出了一种改进的surprise优化方法(sp4)。在不同的网络中,所有这些策略都能从不同的方面提高surprise优化的性能:pre_ts可以磨光网络中的模块结构,从而能够显著地提高surprise的分辨率;pre_cs可以为优化算法提供更合适的初始分区,避免陷入模块分配的陷阱,从而使全局最优分区能够更有效地达到,post_cs可以进一步改进模块分配。此外,我们还证实了改进的算法能够有效地减少模块的过度分裂。最终,基于三种策略的有机结合的改进的surprise优化方法,能够有效提高surprise识别网络模块结构的能力。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

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