基于局部最小边的复杂网络社团挖掘方法与流程

文档序号:13323621阅读:440来源:国知局
基于局部最小边的复杂网络社团挖掘方法与流程
本发明涉及计算机网络技术领域,具体是一种基于局部最小边的复杂网络社团挖掘方法。

背景技术:
复杂网络是现实世界中复杂系统的一种抽象表现形式,由节点和连接节点之间的连边组成,节点代表复杂系统中的个体,节点之间的连边表示节点之间的相互关系。目前,复杂网络已经广泛应用于互联网、社交网络、生物网络等复杂系统的结构建模。复杂网络的一个重要拓扑性质是社团结构。社团结构是表征复杂网络中若干节点的一个集合,在该集合内的节点连接紧密,而不同社团结构(即不同集合)之间的连边较为稀疏。复杂网络的社团结构可以反映该复杂网络所表示的复杂系统的结构特点、功能特征以及网络拓扑结构的演化规律。例如:社交网络中的社团结构表示了拥有共同兴趣爱好的人组成的团体,互联网中的社团结构则揭示了网络站点之间的拓扑架构等信息。因此,通过挖掘复杂网络中的社团结构对于分析网络的特性和功能具有十分重要的现实意义,已经引起了物理、数学和计算机科学等领域研究人员的广泛关注。经过对现有技术的文献检索发现,专利《基于信息理论的复杂网络社团检测方法》(中国专利申请号:201310120905.8,公开号:CN103164533A)首先对网络中的每个节点编号,根据网络的结构和权重信息计算获取当前网络结构的概率矩阵;然后分别计算合并两个社团之后网络信息的损失量,选择损失量最小的两个社团进行合并;最后利用模块度系数评判社团结构是否合理。该方法要从每个节点对开始,通过试探性地计算社团合并后的信息损失量,逐步合并中间社团结构,复杂度较高,尤其对于复杂系统这类具有海量节点的情况,难以在实际中应用。再经文献检索发现,专利《基于顶点差异性的社团发现方法》(中国专利申请号:201010165418.X,公开号:CN101840543A),则将网络社团的发现过程分为网络构建和社团发现两个阶段。网络构建阶段主要是通过扫描网络数据、去除无效数据、对有效数据进行编号以及构建各数据分量的邻接矩阵等步骤,计算获得网络节点之间的邻接矩阵;社团发现阶段则是通过计算节点对之间的差异性,发现并合并复杂网络中的社团结构,从而划分出网络结构的合理社团。该方法对实际网络节点的数据语义定义不明确,没有给出针对不同实际网络获取节点的各维数据语义的方法,因此只适用于网络数据语义清晰明确的复杂网络,而对于普通的复杂网络数据无法准确划分其社团结构。最后经文献检索发现,专利《一种复杂网络中的社团探测方法》(中国专利申请号:201210154812.2,公开号:CN102722530A),采用网络社团结构聚类的方法,通过将每个节点看作一个孤立的社团,根据模块度增量最大的贪婪策略合并子社团,得到网络社团结构的划分结果。该方法针对双向(bipartite)网络和单向(unipartite)网络分别设计了社团查找方法,虽然能较为精确地划分复杂网络中的社团结构,但每次合并社团均需要测试多个可能的子社团组合,时间复杂度较高。

技术实现要素:
本发明的目的在于针对上述现有技术的不足,提出一个基于局部最小边的复杂网络社团挖掘方法。其主要思想是将复杂网络中的节点映射为随机变量,并将网络邻接矩阵作为各随机变量的采样矩阵;计算有边相连(即直接相连)的一对节点之间的相关系数,并作为该边的权值,进而利用权值查找一组局部最小边;在迭代计算、查找过程中,移除能够使社团结构更加清晰的局部最小边,直到准确检测出合理的社团结构。本发明是通过如下技术方案实现的:一种基于局部最小边的复杂网络社区挖掘方法,其特点在于:该方法包括以下步骤:S1、获取复杂网络的邻接矩阵A,记A=(aij)N×N;所述的复杂网络图G=(V,E)为具有N个节点vi(i=1,2,...,N),M条连边ek(k=1,2,...,M)的网络拓扑图,其中,V=(v1,v2,...,vN)表示网络节点的集合,E=(e1,e2,...eM)表示网络连边的集合,边ek按照其所连接的两个节点vi、vj,记为eij;所述的邻接矩阵A是指对于该具有N个节点vi的复杂网络图G,构造一个N×N的矩阵,当节点vi和节点vj之间有边相连时,aij=1;当节点i和j之间无直接连边时,aij=0,其中,aij为邻接矩阵A中的各元素,表示节点间的连边关系,i=1,2,...,N,j=1,2,...,N;当i=j时,aij=0;S2、计算相似度矩阵R,记R=(rij)N×N;当节点vi和节点vj之间有边eij相连时,计算该边两个节点之间的相似度rij,并作为边eij的权值,公式如下:式中,aij为网络邻接矩阵A中的元素,i,j=1、2、3、......,N,当节点vi和vj之间无直接连边时,rij=0;S3、对复杂网络图G进行社团划分C,记C={c1,c2,...,cp},其中,ci(i=1,2,...,p)分别为复杂网络图G中若干节点组成的集合,计算当前社团划分C下的模块度QC,公式如下:式中,表示网络节点vi的度,即指该节点vi与网络中其他节点的连边数目,其中,i=1,2,...,N;M表示网络连边的数目;cm和cn分别表示节点vi和vj所属的社团的编号,其中m∈[1,p],n∈[1,p]);δ(cm,cn)函数由式(3)所示:S4、初始化网络局部最小边队列Q,在当前网络状况下查找一组局部最小边,并放入网络局部最小边队列Q中;所述的局部最小边是指该边的权值是与该边相邻接的所有连边的权值中最小的,即对于节点vi和节点vj之间的连边eij,所述的网络局部最小边队列Q为一个符合先进先出规则的数据结构,其中的各元素均为一条局部最小边;S5、逐一检测网络局部最小边队列Q中的每条局部最小边eij,判断其是否满足局部最小边筛选准则:如果该边满足局部最小边筛选准则,则在网络局部最小边队列Q中删除该边,并同时从网络中删除该边;然后,利用Dijkstra方法计算该删除边的两端点之间的最短距离,如果最短距离为正实数,则表示没有出现新的连通子图,否则,则表示有新的连通子图出现;如果该边不满足局部最小边筛选准则,则保留该边,当所有边均不满足局部最小边筛选准则时,则删除在网络局部最小边队列Q中所有边,并同时在网络中也删除这些边;然后,利用Dijkstra方法计算所有删除边的两端点之间的最短距离,如果最短距离为正实数,则表示没有出现新的连通子图,否则,则表示有新的连通子图出现;S6、检测网络中是否出现新的连通子图:如果出现了新的连通子图,则计算当前社团划分下的模块度Q′c,并与步骤S3得到社团划分下的模块度Qc进行比较,判断社团划分是否合理:若Q′c<Qc,则表示当前社团划分结果不理想,输出模块度为Qc时的社团挖掘结果,迭代结束;若Q′c≥Qc,则表示当前社团划分结果合理,返回步骤S2,重新计算各边权值并进行下一次社团挖掘迭代过程;如果没有出现新的连通子图,则返回步骤S2,重新计算各边权值并进行下一次社团挖掘迭代过程。所述的步骤S4查找一组局部最小边,具体步骤如下:令集合Eij={exy|(x=i,y∈Γ(i)-{i})∪(x=j,y∈Γ(j)-{j})},其中,Γ(i)表示与节点vi有边相连的节点的集合,Γ(j)表示与节点vj有边相连的节点的集合,∪是求并集运算符,i,j=1、2、3、......,N;构造集合Wij,该集合Wij中的元素为集合Eij中各边的权值;取wuv=min(Wij),则集合Eij中权值等于wuv的边eij,即为局部最小边。所述的步骤S5中局部最小边筛选准则包括以下两条件:第一条件:该边两个节点的度数均小于(N+1)/2,即di<(N+1)/2并且dj<(N+1)/2,其中,di与dj分别表示节点vi和vj的度;第二条件:网络邻接矩阵A的第i行组成的行向量ai.与第j行元素组成的行向量aj.的内积为零,公式如下:所述的步骤S5中利用Dijkstra方法计算该边的两端点之间的最短距离,具体是:①对于网络图G=(V,E),S表示已求出最短路径的顶点集合,令最短路径初始节点为o,即初始时,S={o},令集合U包含网络图G中除o之外的其他顶点,顶点o到U中各点的距离为点o和该节点之间的连边的权值;②选取集合U中距离节点o距离最小的节点k,并将节点k加入顶点集合S中,则点o和k之间的距离即为两点间的最短路径长度;③将节点k作为中间节点,对于任意节点u∈U,按照如下规则修改U中各顶点的距离:若dou>dok+dku,则修改节点o与节点u之间的距离值为dou=dok+dku,其中,dou、dok和dku分别表示节点o和节点u、节点o和节点k以及节点k和节点u之间的最短距离;④若集合则终止算法,否则返回步骤②。与现有技术相比,本发明的有益效果是通过将复杂网络邻接矩阵的各行作为一个随机变量的样本值,计算相邻节点之间的相关系数作为边的权值。在分析网络节点拓扑结构的基础上,查找一组局部最小边并将有利于社团结构分裂的边从网络中去掉。在每次迭代中,当有新的连通子图被分裂出来时,则判断分裂出的子图是否能使衡量社团结构优劣的指标值——模块度Qc增大,当模块度Qc的指标值达到最大时,表示该网络的社团结构最为合理。该方法由于只考虑复杂网络的局部拓扑结构信息,因此,具有精度高、速度快、通用性强等优点。附图说明图1为本发明基于局部最小边的复杂网络社团挖掘方法的流程图。图2为本发明对Zachary空手道俱乐部网络社团划分的结果图。具体实施方式以下结合附图对本发明的实施例作详细说明。本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和过程,但本发明的保护范围不限于下述的实施例。本实施例对社会网络经典数据集——Zachary空手道俱乐部网络进行社团结构挖掘。包括以下步骤:1、计算网络中直接相连的所有节点对间的相关系数,并将这些相关系数作为各连接边的权值,计算当前网络社团划分下模块度的数值。1.1、将复杂网络的邻接矩阵A作为输入数据。Zachary空手道俱乐部网络G中包含34个节点和78条边,故该网络的邻接矩阵A=(aij)34×34,当节点vi(i=1,2,...,34)和vj(j=1,2,...,34)之间有边相连时,aij=1;当节点vi和vj之间无直接连边时,aij=0。1.2、对于网络G中的每一条边eij,利用皮尔逊随机变量相似度计算方法,计算该边两个节点之间的相似度rij,并作为边eij的权值。由此,可以得到该网络的相似度矩阵R。所述的皮尔逊随机变量相似度计算方法如下:其中,N=34,aij为网络邻接矩阵A中的元素,i,j=1,2,3,......,34。其中,相似度矩阵R为一个34×34的矩阵,具体的,R=(rij)34×34,当节点vi和vj(i=1,2,...,34,j=1,2,...,34)之间有边相连时,rij由公式(4)计算;当节点vi和vj之间无直接连边时,rij=0。1.3、对于复杂网络G,设C={c1,c2,...,cp}为网络图G的一个划分。其中,ci(i=1,2,...,p)分别为G中若干节点组成的集合。则在划分C下,模块度的计算如式(5)所示:其中:N=34,表示网络节点vi的度(i=1,2,...,34),M=78表示网络连边的数目,cm和cn(m∈[1,p],n∈[1,p])分别表示节点vi和vj所属的社团的编号。节点vi的度数是指该节点与网络中其他节点连边的数目。所述的δ(cm,cn)函数由式(6)所示:2、通过各边的权值查找一组局部最小边,并放入网络局部最小边队列Q中。2.1、针对网络中的每一条边,利用步骤1中获得的相似度矩阵R判断其是否为局部最小边。如果是局部最小边,则放入网络局部最小边队列Q中。所述的局部最小边,是指该边的权值是与该边相邻接的所有连边的权值中最小的,即对于节点vi和vj之间的连边eij,令集合Eij={exy|(x=i,y∈Γ(i)-{i})∪(x=j,y∈Γ(j)-{j})},其中,Γ(i)表示与节点vi有边直接相连节点的集合,∪是求并集的运算符,i,j=1,2,3,......,34。利用集合Eij构造集合Wij,使得Wij中的元素为Eij中各边的权值。取wuv=min(Wij),则集合Eij中权值等于wuv的边,即为局部最小边。所述网络局部最小边队列Q为一个符合先进先出规则的数据结构,其中的各元素为一条局部最小边。3、检测网络局部最小边队列Q中各边两端点的局部拓扑结构,确定并去掉符合局部最小边筛选准则的边。3.1、对于网络局部最小边队列Q中的每条局部最小边eij,判断其是否满足如下局部最小边筛选准则:(1)该边两个节点的度数均小于(N+1)/2,即di<(N+1)/2并且dj<(N+1)/2。其中,N=34,di与dj分别表示节点vi和vj的度数。(2)设ai.和aj.分别表示网络邻接矩阵A的第i行和第j行元素组成的行向量,ai.和aj.之间的内积为零。所述的向量ai.和aj.的内积为如果该边同时不满足以上两个条件,则保留该边;反之,则在网络局部最小边队列Q中删除该边,并同时从网络中删除该边。当网络中删除该边后,利用Dijkstra方法计算该边两端点之间的最短距离,如果距离小于正无穷,则表示没有出现新的连通子图,继续检测并删除其他局部最小边,否则,则表示有新的连通子图出现,转步骤4.所述的Dijkstra方法,是一种计算网络图中某节点到网络其他节点最短路径长度的方法。具体的,对于网络图G=(V,E),S表示已求出最短路径的顶点集合,令最短路径初始节点为o。则Dijkstra算法的具体步骤如下:(1)初始时,S只包含初始节点o,即S={o}。令集合U包含网络图G中除o之外的其他顶点。顶点o到U中各点的距离为点o和该节点之间的连边的权值。如点o与该节点之间无之间连边,则该距离设为无穷大。(2)选取U中距离节点o距离最小的节点k,并将k加入S中。则点o和k之间的距离即为两点间的最短路径长度。(3)将节点k作为新考虑的中间节点,对于任意节点u∈U,按照如下规则修改U中各顶点的距离:若dou>dok+dku,则修改节点o与节点u之间的距离值为dou=dok+dku。其中,dou、dok和dku分别表示节点o和u、节点o和k以及节点k和u之间的最短距离。(4)若集合则终止算法;否则重复步骤(2)至(4)3.2、当步骤3.1中没有任何局部最小边符合局部最小边筛选准则时,则删除在网络局部最小边队列Q中依然存在的边,并同时在网络中也删除这些边。4、经过步骤3后,利用Dijkstra方法检测网络中是否出现新的连通子图,即是否分裂出新的社团结构:4.1如果出现了新的连通子图,则利用公式(6)计算当前社团划分下的模块度值Q′c,并与之前的模块度值Qc比较:4.1.1若Q′c<Qc,则表示当前社团划分结果并不理想,输出模块度值为Qc时的社团挖掘结果,迭代结束;4.1.2若Q′c≥Qc,则表示当前社团划分结果合理,返回步骤1,重新计算各边权值并进行下一次社团挖掘迭代过程。4.2如果没有出现新的连通子图,则返回步骤1,重新计算各边权值并进行下一次社团挖掘迭代过程。本实施例将34个节点的Zachary空手道俱乐部网络划分为了3个社团,如附图2所示。其中,两个大的社团(社团中的节点分别用△和●表示)代表了俱乐部中两位产生冲突的俱乐部负责人所形成的团体,小社团(该社团中的节点用□表示)则是介于这两派之间的小群体。实施结果与数据集的背景知识保持一致,从而证明了本发明的有效性。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1