保持社区结构的复杂网络采样方法

文档序号:6513454阅读:313来源:国知局
保持社区结构的复杂网络采样方法
【专利摘要】本发明提出了一种保持社区结构的复杂网络采样方法,适用于由于现有硬件条件的限制下对大规模数据分析的数据采样。本方法提供了社区度数和社区中心两个概念,首先获取网络中所有节点的社区度数,然后选出社区中心,依照社区度数从小到大的顺序选取社区中心,基于森林火灾采样方式进行采样,采样大小按照社区中心的社区度数占剩下社区中心的社区度数的比例来分配,将所有的社区中心都进行采样后,输出所有的采样节点。本发明方法经实验证明,采样结果和原网络的数据比较接近,较好地保持了社区结构,很大程度减小数据规模,从而为在现有硬件的限制条件下对大数据处理提供方便。
【专利说明】保持社区结构的复杂网络采样方法
【技术领域】
[0001]本发明提出保持社区结构的复杂网络采样方法,属于计算机应用及复杂网络领 域。
【背景技术】
[0002]近年来人们发现,现实世界中的众多系统都以复杂网络(complex network)的形 式存在,如社交网络、因特网、移动电话网、蛋白质交互网、神经元网等。复杂网络具有节点 和边数目巨大、网络结构复杂、节点和边具有多样性、进化演变和动力学复杂性等特点。例 如,目前万维网具有超过万亿的统一资源定位符(URL),Facebook有10亿用户节点和千亿 用户关系连边,大脑神经元网络有数百亿节点,中国三大运营商的手机通讯网络无一不拥 有数亿用户。如何处理超大规模的网络数据,已经成为研究者亟待解决的关键科学问题。
[0003]社区结构已成为复杂网络最普遍和最重要的拓扑结构属性之一。网络社区结构具 有社区内部节点相互连接紧密、社区之间节点连接稀疏的特点。研究复杂网络社区结构具 有重要的理论意义。同时,社区结构研究已被应用于恐怖组织识别、社会网络分析与管理、 未知蛋白质功能预测、主控基因识别以及Web社区挖掘和搜索引擎等众多领域,具有广阔 的应用前景。
[0004]尽管有研究者坚信随着计算能力和数据采集能力的提升,处理整体数据将成为趋 势,但采样仍然是目前处理海量数据问题的一种常用方法。目前针对大规模复杂网络的数 据处理困难,若采样数据小就很难保证原社区结构的关系,若采样数据大,则数据处理的规 模大,难处理。

【发明内容】

[0005]本发明针对大规模复杂网络数据处理困难的问题,提出了一种保持社区结构的复 杂网络采样方法,在能较好保证原网社区结构的前提下,很大程度减小数据规模,通过对原 网数据进行预处理,以方便后续社区结构研究。
[0006]设某一个复杂网络,用无向无权图G表示,G= (V, E), V为网络中节点的集合,E为 网络中边的集合,设图中节点总数为n,边总数为m,节点V的度数用kv表示。
[0007]本发明的保持社区结构的复杂网络采样方法,包括如下步骤:
[0008]步骤1:确定复杂网络中各节点的社区度数;节点的社区度数定义为节点自身度 数与邻居节点度数的总和;
[0009]步骤2:遍历图G中的节点,找到社区中心;当某个节点的社区度数都不小于它的 所有邻居的社区度数时,标记该节点为社区中心;
[0010]步骤3:将所有社区中心按照节点的社区度数大小排序;
[0011]步骤4:选取当前未被采样且社区度数最小的社区中心作为采样的起始节点;
[0012]步骤5:标记起始节点为采样节点,并设置起始节点的采样大小;
[0013]设起始节点为u,则节点u的采样大小Samsize为:Samsize = cur ^ size * Nu/Y,nNv;其中,cur_size表示目前需要采样的节点数目,Nu表示节
点u的社区度数,Us表示当前未被采样的社区中心集合,Nv表示节点V的社区度数;
[0014]步骤6:从起始节点开始进行采样,得到采样节点;
[0015]步骤7:判断是否所有的社区中心均被采样过,若是,则输出所有采样节点,否则, 继续转步骤4执行。
[0016]所述的步骤6进行采样的方法为:
[0017]步骤6.1:将起始节点u作为当前采样节点V ;
[0018]步骤6.2:为节点V生成一个随机整数X,选取节点V的X个未被采样的邻居节点,并标记所选节点为采样节点;设置节点V的邻居节点Wi的选取概率为
Pn =Pf*nia{Kjkw!^)i
[0019]步骤6.3:判断由起始节点u采样得到的采样节点的个数是否达到节点u的采样大小,若是,结束节点u的采样,否则,继续进行步骤6.4 ;
[0020]步骤6.4:判断节点V的各邻居节点是否有未被采样的邻居节点,若有,执行步骤 6.5 ;若否,结束节点u的采样;
[0021]步骤6.5:将每个具有未被采样的邻居节点的节点作为采样节点V,然后转步骤 6.2执行。
[0022]本发明的保持社区结构的复杂网络采样方法,可以在能较好保证原网社区结构的前提下,很大程度减小数据规模,从而为在现有硬件的限制条件下对大数据处理提供方便。
【专利附图】

【附图说明】`
[0023]图1为本发明的保持社区结构的复杂网络采样方法的整体流程示意图;
[0024]图2为本发明实施例中as-22july06数据集下各个采样算法的采样效果示意图;
[0025]图3为本发明实施例中astoo-ph数据集下各个采样算法的采样效果示意图;
[0026]图4为本发明实施例中cond-mat数据集下各个采样算法的采样效果示意图;
[0027]图5为本发明实施例中hep-th数据集下各个采样算法的采样效果示意图;
[0028]图6为本发明实施例中cond_mat2005数据集下各个采样算法的采样效果示意图。
【具体实施方式】
[0029]下面将结合附图和实施例说明本发明的技术方案。
[0030]本发明提供的保持社区结构的复杂网络采样方法,是基于森林火灾采样方法改进,下面先说明森林火灾采样方法的原理。
[0031]森林火灾米样方法(参考文件:J.Leskovec, C.Faloutsos.Sampling from Large Graphs.1n Proc of ACM SIGKDD, 2006:631-636)具体是:对于某个网络,首先随机选择节点V,然后产生一个随机数x,X符合几何分布;节点V选择X条邻边,这些边的另一个节点都是没访问过的,也就是获得X条边对应X个未被访问的节点;然后对这X个节点依次按照产生随机数的方法寻找未被访问的节点,如此循环,一直烧到足够多的节点。为了避免出现重复,所以在森林火灾采样方法进行过程中,节点是不能被访问两次的。如果火熄灭了(the fire dies),重新随机选择一个节点。参数被称为向前燃烧概率,森林火灾采样方法倾向于采样度数大的节点。
[0032]本发明选择基于森林火灾采样方法进行改进,主要基于以下两点:1、通过比较现 有几种采样算法的效果,发现森林火灾采样方法在其中表现最好;2、森林火灾采样方法能 较好地保持图的连通性。但是森林火灾随机的起始节点,以及在算法过程没有偏向于保持 社区结构的特性,因此,本发明需要针对这两方面进行改进。
[0033]首先,本发明定义了社区度数和社区中心两个概念,然后在此基础上提出一种保 持社区结构的复杂网络采样方法,既减小网络数据规模,又保持原网络的社区结构。
[0034]本发明中,社区度数定义为节点自身度数与邻居节点度数总和,社区中心定义为 社区度数极大值的网络节点。
[0035]本发明方法是社区中心按比例分配大小的采样方法,基本实现原理如下:
[0036](I)将社区中心的社区度数最小的节点作为起始节点,按照森林火灾方式采样,采 样的大小是用当前采样起始节点的社区度数占社区中心总的社区度数的比例来分配,当采 样大小足够之后,跳转到下一个节点。
[0037](2)从剩下的未被采样的社区中心中选择社区度数最大的节点作为新的采样起始 节点,按照(I)中方式继续采样,直到整体采样大小达到规定的采样大小,或者所有的社区 中心都被采样。
[0038]如图1所示,为本发明的保持社区结构的复杂网络采样方法的流程图,下面结合 图1对各步骤进行说明。
[0039]首先,对于待采样的某个复杂网络,用无向无权图G来表示,G= (V,E),其中,V为网 络中节点的集合,E为网络中边的集合,设图G中节点总数为n,边总数为m。用(u,v)表示 复杂网络中的一条边,其中U,V G V,节点V和节点u互为邻居节点,设节点u的邻居节点集 合为U = { V I (u, V ) G E}。用kv表示节点V的度数。
[0040]步骤1:确定复杂网络中各节点的社区度数。
[0041]对于节点u,其社区度数Nu为:NU = ku+2 v GUkv ;其中,ku表示节点u的度数。
[0042]步骤2:遍历图G中的节点,找到社区中心。某个节点的社区度数不小于该节点的 所有邻居节点的社区度数,则这个节点为社区中心。
[0043]如果节点U的社区度数大于等于它的所有邻居节点的社区度数,则节点U被标记 为社区中心。标记为社区中心的节点有一个以上。
[0044]步骤3:将所有社区中心按照节点的社区度数大小排序。例如,按照社区度数从小 到大排列社区中心。初始标记所有社区中心为未采样。
[0045]步骤4:选择每一次采样的起始节点。起始节点选择条件为:没有被采样的社区中 心中社区度数最小的节点。本发明方法中从最小度数的节点开始,有利于纠正偏向度数大 的节点的这个偏向性。
[0046]步骤5:标记起始节点为采样节点,并设置起始节点采样大小。
[0047]设当前采样的起始节点为u,则节点u采样大小Samsize为:
[0048]Satmize - cur—size * N a: N'
[0049]其中,Us是当前剩下的未被采样的社区中心集合,cur_size表示目前需要采样的 节点数目,由用户根据情况设定。[0050]步骤6:以起始节点开始进行采样。
[0051]具体采样过程基于森林火灾采样方法,包括步骤6.1~6.5。
[0052]步骤6.1:从起始节点u开始作为当前采样节点V。
[0053]步骤6.2:为节点V生成一个随机整数X,选择节点V的X条边,所选择的边的另一个节点都是没访问过,即未采样的,用W1, W2, W3,——,wx来表示X条边对应的X个未被访问的节点。
[0054]节点V的邻居节点Wi被访问的概率凡;=Pf *mm(kr/kn,,1)?其中,pf表示向前燃烧
概率,值由用户确定,kv表示节点V的度数,~表示节点Wi的度数。
[0055]标记所选取的节点V的X个邻居节点为采样节点。
[0056]步骤6.3:判断由起始节点u采样得到的采样节点的个数是否达到节点u的采样大小Samsize,若是,结束节点u的采样,否则,继续进行步骤6.4。
[0057]步骤6.4:判断节点V的各邻居节点W1, W2, W3,——,Wx是否有未被采样的邻居节点,若有,执行步骤6.5 ;若都没有,则结束节点u的采样。
[0058]步骤6.5:将每个具有未被采样的邻居节点的节点作为采样节点V,然后转步骤 6.2执行。
[0059]对所选取的X节点分别继续寻找随机个数的未被访问的节点。循环寻找过程,一直获得足够多的节点或者找不到。为了避免出现重复,所以在寻找节点过程中,节点不能被访问两次。如果采到步骤5规定的采样大小或者是没有继续烧下去的节点了,则重新选择一个起始节点。
[0060]由于森林火灾采样方法偏向于采样度数大的节点,所以定义每个节点被访问的概
率为A,, = Pf *min(kr/kni,,其中v是目前采样的节点,节点Wi是当前选择是否燃烧的节
点,如果节点Wi的节点度数大,上述处理之后会使得Wi被采样的概率减小,一定程度上避免森林火灾采样方法偏向于采样度数大的节点的缺点。
[0061]步骤7:判断是否所有的社区中心均被采样过,若是,则输出所有的采样节点,否则,继续转步骤4执行。
[0062]本发明选取六种经典采样算法与本发明的采样方法(简称FFS-Tran)进行比较,分别是广度优先采样(简称BFS),随机游走采样(简称RW),MH随机游走(简称MHRW), 雪球米样(简称SN),边界米样(简称FS),森林火灾米样(简称FFS)。实验选取五个数据集:高能量领域论文合作网络(hep-th),天体物理合作网络(astro-ph),互联网自治系统 (as-22july06),两个凝聚态论文合作网络(cond-mat)。比较结果的效果采用标准的NCP 的几个指标:Conductance (记为 Cond), Expansion (记为 Exp), Internal density (记为 ID), Cut Ratio (记为CR),这四种指标均是值越小,反映的社区内部越紧密,与外部的联系越稀疏;Normalized Cut (记为 NC), Maximum-ODF (Out Degree Fraction,记为 M0DF), Average-ODF (记为A0DF),以及Flake-ODF (记为F0DF),这四种指标的值越小,说明采样效果越好!Modularity (记为 Mod),Modularity ration (记为 MR),以及 Volume (记为 Volum), 这三种指标的值越大说明采样效果越好。
[0063]对六种算法,设置采样大小为0.1,0.15,0.2,0.25,0.3,0.4,0.5,0.7,0.8,每个
采样大小数据运行十次,然后对结果取平均值;对于森林火灾算法,向前燃烧概率取0.6,0.7,0.8,0.9,1.0,然后在每个采样大小和每个向前燃烧概率规定下,数据运行十次,对结 果取平均值。将运行得到的数据转换为折线图,直观地表现出规律,从行结果来看,除了第 一个数据集as-22july06,本发明方法(FFS-Tran)效果与其他采样算法差别不大,其余的 数据集的运行效果,本发明方法要优于其他采样算法,尤其在cond-mat2005数据集中,采 样效果明显优于其它六种经典采样算法。下面对单个数据情况分析:
[0064]从图2中可以看出,在数据集as_22july06数据中,本发明方法(FFS-Tran)采样 效果要差于随机游走采样(RW),MH随机游走(MHRW),雪球采样(SN),边界采样(FS),并且这 几种采样算法的采样效果差别不大,但是FFS和BFS的采样效果则明显比本发明方法和其 余四种经典采样算法差。
[0065]从图3中可以看出,对于数据集astro-ph而言,本发明方法在大部分指标上优于 其他的采样算法,在ID指标和CR指标上效果差于六种经典采样算法。综合所有指标来看, 对于数据集astro-ph而言,本发明方法效果明显优于六种经典采样算法,从图中可以看 出,FFS-Tran这条线比别的线都低很多。
[0066]从图4中可以看出,对于数据集cond-mat而言,大部分指标,本发明方法的效果也 明显优于其他经典采样算法的效果,但是在ID和CR指标上效果差些。FFS和BFS效果最差。
[0067]从图5中看出,hep-th数据集下,本发明方法在大部分指标下的效果最好,并且在 Cond和Exp指标下明显优于其他采样算法,但在CR表现差。而FFS和BFS采样效果在大部 分指标上都很差。
[0068]从图6中可以看出,本发明方法的效果相比于其他采样算法效果要好很多,除了 CR指标上,其余指标的D-statistic值都是在0.2左右,说明和原图的数据比较接近,较好 地保持了社区结构。
[0069]经实验,对于astro-ph, cond-mat, hep-th, cond_mat2005 数据集,本发明方法的 采样效果优于六种采样算法的效果,说明本发明方法在保持社区结构方面比六种采样算法 效果好。并且在cond-mat2005数据集中,本发明方法很好地保持了原图的社区结构。
[0070]以上实验证明:本发明方法的采样结果和原图的数据比较接近,较好地保持了社 区结构,通过与六种经典采样算法对比验证了本发明方法的可行性和有效性。
【权利要求】
1.一种保持社区结构的复杂网络采样方法,将复杂网络用无向无权图G表示, G= (V,E),V为网络中节点的集合,E为网络中边的集合,设节点总数为n,边总数为m,节点v 的度数用kv表示;其特征在于,所述复杂网络采样方法包括如下步骤:步骤1:确定复杂网络中各节点的社区度数;节点的社区度数定义为节点自身度数与 邻居节点度数的总和;步骤2:遍历图G中的节点,找到社区中心;当某个节点的社区度数都不小于它的所有 邻居的社区度数时,标记该节点为社区中心;步骤3:将所有社区中心按照节点的社区度数大小排序;步骤4:选取当前未被采样且社区度数最小的社区中心作为采样的起始节点;步骤5:标记起始节点为采样节点,并设置起始节点的采样大小;设起始节点为U,则节点U的采样大小Samsize为:Samsize = cur_ size * Nu/[吨Nv ;其中,cur_size表示目前需要采样的节点数目,Nu表示节点u的社区度数,Us表示当前未被 采样的社区中心集合,Nv表示节点V的社区度数;步骤6:从起始节点开始进行采样,得到采样节点;步骤7:判断是否所有的社区中心均被采样过,若是,则输出所有采样节点,否则,继续 转步骤4执行。
2.根据权利要求1所述的一种保持社区结构的复杂网络采样方法,其特征在于,所述 的步骤6进行采样的方法是:步骤6.1:将起始节点u作为当前采样节点V ;步骤6.2:为节点V生成一个随机整数X,选取节点V的X个未被采样的邻居节点,并标记所选节点为采样节点;设置节点V的邻居节点Wi的选取概率为Ats =Pf *mm(kvfkWi ,1) I步骤6.3:判断由起始节点u采样得到的采样节点的个数是否达到节点u的采样大小, 若是,结束节点u的采样,否则,继续进行步骤6.4 ;步骤6.4:判断节点V的各邻居节点是否有未被采样的邻居节点,若有,执行步骤6.5 ; 若否,结束节点u的采样;步骤6.5:将每个具有未被采样的邻居节点的节点作为采样节点V,然后转步骤6.2执行。
【文档编号】G06F19/00GK103530503SQ201310447528
【公开日】2014年1月22日 申请日期:2013年9月27日 优先权日:2013年9月27日
【发明者】童超, 彭赋, 牛建伟, 谢忠玉, 罗小简 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1