基于k节点更新与相似度矩阵的多目标社区检测方法与流程

文档序号:12826092阅读:569来源:国知局
基于k节点更新与相似度矩阵的多目标社区检测方法与流程

本发明属于复杂网络的社区挖掘技术领域,主要涉及到多目标社区检测,具体是一种基于k节点更新与相似度矩阵的多目标社区检测方法,可用于无符号与符号社交网络的社区检测。



背景技术:

复杂网络常用于描述现实网络中的各类复杂系统。近些年来,随着互联网的高速发展,对于社交网络的社区检测技术的研究已经成为复杂网络研究领域的一个重要分支。在复杂网络领域中,社区是指其内部连接相对于外部连接较为紧密的节点的集合,也称之为模块。对于社交网络中的社区检测,能够了解网络中的结构组织形式及功能模块,以便为用户提供更好的服务。社区检测也称为社区挖掘,其实质是通过网络数据检测出网络中具有这种组织结构的节点的集合,即社区。常用的社区检测技术是建立优化模型,并通过适当的优化技术对模型进行求解。

近年来,尤其是多目标进化方法的应用,不仅能在一定程度上克服优化模型所存在的分辨率极限问题,而且能够在一次运行中产生多个解,称之为pareto解集,并根据决策者的偏好选择更为合理的解。如moea/d-net技术采用一种基于分解的多目标进化方法用于社区检测,moga-net技术采用多目标非支配排序方法进行社区检测,snmoga是一种进化与局部精致技术并用于符号网络的社区检测。这些技术方法均是基于多目标进化模型的社区检测技术,并取得了良好的效果。

对于多目标社区检测技术,首先要建立多目标优化模型,然后使用某种编码方式对网络进行编码,得到初始化种群,并通过设计合理的遗传操作方法对个体进行操作,种群进化到一定的代数后即可终止进化过程,最后通过对末代种群中个体的解码得到合理的网络划分。然而现存的多目标社区检测技术存在以下缺点:(1)没有充分利用网络的先验信息,遗传操作方法的设计缺陷导致现有技术在搜索空间中进行了很多无用搜索,造成了大量的时间开销以及社区检测的精度不高;(2)大多数社区检测方法仅能够处理无符号社交网络(简称为无符号网络),而无法处理符号社交网络(简称为符号网络);(3)少数社区检测技术针对于符号网络而设计,但无法处理无符号网络或在无符号网络上的检测效果较差。

总之,处理的网络类型较为单一以及检测精度不高是现有社区检测技术的主要缺陷。



技术实现要素:

本发明的目的在于针对于上述现有技术的缺陷,提出了一种检测精度较高,能够处理多种网络类型的基于k节点更新及相似度矩阵的多目标社区检测方法。

本发明是一种基于k节点更新与相似度矩阵的多目标社区检测方法,其特征在于,包括有如下步骤:

步骤1:输入网络数据,读入一个用邻接矩阵a表示的无符号网络或符号网络,该网络数据隐含着一定数量的社区。

步骤2:随机初始化一定规模的种群和权重向量,得到每一个权重向量的邻居下标集合。

2.1初始化种群pop,种群规模为popsize,种群中每一个个体均代表对输入网络划分的一种编码方式,编码长度与输入网络中节点个数相同,个体的基因位即编码表示对应节点所属的社区标签;

2.2同时,初始化与种群规模相同的且均匀分布的权重向量计算任意两个权重向量之间的欧氏距离,对于每一个权重向量,找出与之距离最近的nt个权重向量并存储这些向量的下标值,这些下标值即每一个权重向量对应个体的邻居下标值。

步骤3:计算输入网络中任意两个节点之间的相似度值,得到相似度矩阵,将无符号网络中用于计算节点之间相似度的函数拓展到符号网络中,得到一个泛化的相似度函数;根据该泛化的相似度函数计算输入网络中任意两个邻接节点vi,vj((vi,vj)∈e)之间的相似度值s(vi,vj),得到输入网络节点的相似度矩阵s。

步骤4:使用k节点更新策略完成对网络的预划分,根据节点的相似度矩阵s,找出与节点相似度最大的k个邻接节点,并使用这k个节点的社区标签来更新待处理节点的社区标签,称之为k节点更新策略;根据更新策略,对节点的社区标签更新多次,完成对网络的预划分,即得到一定数量的局部子社区。

步骤5:计算种群中个体的目标函数值并初始化目标函数的参考点z*

步骤6:对种群中的个体进行进化操作,从而得到子代种群,设置种群的最大进化代数为maxgen,设置当前的进化代数为t。

6.1对于种群中的每一个个体,随机选中该个体ind的两个邻居;

6.2对这两个邻居个体进行交叉合并操作,得到子代个体;

6.3对该个体ind进行基于相似度矩阵的变异操作,得到子代个体;

6.4重复执行6.1-6.3,对种群所有个体进行进化操作,得到子代种群child。

步骤7:计算子代种群child的目标函数值,并使用这些目标函数值来更新目标函数的参考点z*

步骤8:使用子代种群child对种群pop中所有个体的邻居进行更新。

8.1根据契比雪夫方法,对于种群pop中的每一个个体,计算该个体的邻居个体的契比雪夫值和子代种群child中个体的契比雪夫值;

8.2比较上述契比雪夫值的大小,若子代种群child中个体的契比雪夫值小于邻居个体的契比雪夫值,则使用该子代个体来取代邻居个体;否则,不使用子代个体更新邻居个体。

使用契比雪夫方法处理完种群中的所有个体后,即完成对种群中个体的邻居更新过程。

步骤9:判断是否达到种群的进化代数maxgen,如果达到最大进化代数,则终止进化过程,对种群中的个体编码进行解码,得到输入网络的最终社区划分,并输出检测到的网络社区;否则,更新t←t+1,并转至步骤(6.1),继续对种群进行进化操作,完成种群的进化过程和对种群中个体的邻居更新过程,直至完成输入网络的社区检测。

本发明就是基于k节点更新策略与相似度矩阵的多目标社区检测方法并用于社交网络的社区挖掘。

本发明与现有技术相比存在以下优点:

1.本发明将无符号网络中的节点相似度测量扩展到符号网络中的节点相似度测量,并因此设计出可以处理无符号网络与符号网络的k节点更新策略。这种预处理策略的使用能够有效地避免噪声节点对社区标签更新过程的影响,并且迅速地将连接紧密的节点集精确地识别并聚集成局部子社区,从而提高本发明的检测精度以及减少进化过程中进行的无用搜索。

2.本发明针对预划分的网络精心设计了交叉合并方法以及基于相似度矩阵的变异方法。交叉合并方法能够将本发明初期所得到的局部子社区进行有效地合并,从而得到合理的社区个数,不用人为地确定社区的个数;基于相似度矩阵的变异方法使用轮盘赌的方式选择变异的方向,一方面,节点变异方向指向相似度高的节点所在社区可以提高变异的精度,另一方面,低相似度的邻接节点也能够以低概率决定变异节点所在的社区,从而提高了变异方向的多样性。这些技术的应用均有利于提高社区检测的精度。

3.本发明分别构建了无符号网络与符号网络中的多目标优化模型。不仅能够处理无符号网络的社区检测问题,还能够处理符号网络的社区检测问题,并且大幅地提高了在这两类网络上的社区检测精度,比以往的多目标社区检测方法具有明显的优势。

附图说明

图1是本发明的实现流程图;

图2是本发明与现有技术中的moga-net、moea/d-net在无符号lfr基准网络上的社区检测精度对比图。其中,图2(a)为三种方法在归一化互信息(nmi)指标上的检测结果,图2(b)是三种方法在权重的归一化互信息(wnmi)指标上的检测结果;

图3是本发明与现有技术中的snmoga在符号slfr基准网络上的社区检测精度对比图。图3中slfr的网络参数为γ=0.1,p-=0.1,其中,图3(a)是本发明与snmoga方法在nmi指标上的检测精度对比图,图3(b)是本发明与snmoga方法在社区个数(nc)指标上的检测精度对比图,图3(c)是本发明与snmoga方法在wnmi指标上的检测效果对比图。

具体实施方式

下面结合图1对本发明的具体实施步骤作详细描述。

实施例1

复杂网络是对现实世界中复杂系统的一种抽象化描述,如社交网络、生物蛋白系统以及电力系统都可以抽象化为复杂网络。社区,也称为模块,是复杂网络中非常普遍且极为重要的一种拓扑结构属性,它是指在网络中内部连接相对于外部连接更为紧密的节点的集合。对复杂网络中社区结构的检测,就是挖掘复杂网络中社区这类结构的方法或技术,这对于相关领域的工作者们了解现实系统中的结构组织形式以及组织功能具有十分重要的意义。对于现有的社区检测技术而言,常用的技术是对具体类型的网络建立优化模型,并通过设计优化方法对模型进行求解,最终得到网络的划分模式,即社区结构。如现有技术中moga-net是一种基于多目标非支配排序的社区检测技术,moea/d-net法是一种基于分解的多目标进化社区检测技术,这两种现有技术仅能用于处理无符号网络的社区检测问题;在符号网络领域中,snmoga采用一种基于多目标非支配排序的符号社区检测技术,该技术可用于处理符号网络的社区检测问题。然而,上述方法均存在着一定的局限性,如只能处理单一类型网络或者社区检测精度不理想。

本发明在该技术领域里经过研究探讨,对社交网络建立多目标优化模型,提出了一种基于k节点更新与相似度矩阵的多目标社区检测方法,并用于社交网络的社区检测。

本发明是基于k节点更新与相似度矩阵的多目标社区检测方法,参见图1,包括有如下步骤:

步骤1:输入网络数据,读入一个用邻接矩阵a表示的无符号网络或符号网络,该网络数据隐含着一定数量的社区。

例如对于社交网络,邻接矩阵a中的元素表示人与人之间的某种关系,当元素值为正值时表示着人与人之间的关系是友好的,当元素值为负值时往往表示着人与人之间的关系是敌对的,而元素值为0时往往被认为人们之间不存在某种关联。通过这样的一个邻接矩阵a的信息,可以表示输入网络的整体信息。

a是一个n×n的稀疏矩阵,其中n表示节点的个数,用g=(v,e)表示该输入网络,v表示网络的节点集合,e表示网络的边集合,且用n与m分别表示节点集合v与边集合e的势,即|v|=n,|e|=m;此外,e=pe∪ne,pe={(vi,vj),aij>0,vi(j)∈v}表示网络内正边的集合,而ne={(vi,vj),aij<0,vi(j)∈v}表示网络内负边的集合;对于无符号网络而言,

步骤2:随机初始化一定规模的种群和权重向量,得到每一个权重向量的邻居下标集合。

2.1初始化种群pop,种群规模为popsize,种群中每一个个体均代表对输入网络划分的一种编码方式,编码长度与输入网络中节点个数相同,个体的基因即编码表示对应节点所属的社区标签。使用基于标签的编码方式对种群中个体进行编码,对种群中个体进行初始化时,将个体上的基因编码初始化为基因所处个体位置的下标值,该下标值也表示对应节点所属的社区标签。

例如,对于一个包含10个节点的网络,初始化种群,种群中的每一个个体均被初始化为[1,2,3,4,5,6,7,8,9,10],对于第i个节点vi(i=1,2,…,10),其基因位genei=i,表明该节点vi的社区标签为i。

2.2同时,初始化与种群规模相同的且均匀分布的权重向量计算任意两个权重向量之间的欧氏距离,对于每一个权重向量,找出与之距离最近的nt个权重向量并存储这些向量的下标值,这些下标值即每一个权重向量对应个体的邻居下标值。nt是与每一个权重向量距离最近的权重向量的个数。nt是需要人为设置的参数,nt的设置要适中,过小的nt值将会导致社区检测效果差,而过大的nt值则会导致大量的时间开销。本例中设置nt为10。

步骤3:计算输入网络中任意两个节点之间的相似度值,得到相似度矩阵,将无符号网络中用于计算节点之间相似度的函数拓展到符号网络中,得到一个泛化的相似度函数;根据该泛化的相似度函数计算输入网络中任意两个邻接节点vi,vj((vi,vj)∈e)之间的相似度值s(vi,vj),得到输入网络节点的相似度矩阵s。

为了使本发明能够处理符号网络的社区检测问题,将无符号网络中计算节点间的相似度函数拓展到符号网络领域有效地解决了此类问题,使得本发明更具有通用性。

步骤4:使用k节点更新策略完成对网络的预划分,根据节点的相似度矩阵s,找出与节点相似度最大的k个邻接节点,并使用这k个节点的社区标签来更新待处理节点的社区标签,称之为k节点更新策略;根据更新策略,对节点的社区标签更新多次,完成对网络的预划分,得到一定数量的局部子社区。局部子社区是网络内社区结构性较强的节点集,它为后期网络真实社区的检测提供了一个精准的方向。

步骤5:计算种群中个体的目标函数值并初始化目标函数的参考点z*。参考点z*是种群进化的目标方向。

步骤6:对种群中的个体进行进化操作,从而得到子代种群,设置种群的最大进化代数为maxgen,设置当前的进化代数为t。设置最初的进化代数t为0,本例中,设置种群的最大进化代数maxgen为100。进化代数maxgen作为种群进化的终止条件,由于本发明的收敛速度快,设置进化代数maxgen为100能够完全保证本发明的收敛性。

6.1对于种群中的每一个个体,随机选中该个体ind的两个邻居;

6.2对这两个邻居个体进行交叉合并操作,得到子代个体;

6.3对该个体ind进行基于相似度矩阵的变异操作,得到子代个体;

6.4重复执行6.1-6.3,对种群所有个体进行进化操作,得到子代种群child。

步骤7:计算子代种群child的目标函数值,并使用这些目标函数值来更新目标函数的参考点z*

步骤8:使用子代种群child对种群pop中所有个体的邻居进行更新。

8.1根据契比雪夫方法,对于种群pop中的每一个个体,计算该个体的邻居个体的契比雪夫值和子代种群child中个体的契比雪夫值;

8.2比较上述契比雪夫值的大小,若子代种群child中个体的契比雪夫值小于邻居个体的契比雪夫值,则使用该子代个体来取代邻居个体;否则,不使用子代个体更新邻居个体。

使用契比雪夫方法处理完种群中的所有个体后,即完成了对种群中个体的邻居更新过程。

步骤9:判断是否达到种群的进化代数maxgen,如果达到最大进化代数,则终止进化过程,对种群中的个体编码进行解码,得到输入网络的最终社区划分,并输出检测到的网络社区;否则,即未达到种群的进化代数maxgen,更新t←t+1,并转至步骤(6.1),继续对种群进行进化操作,完成种群的进化过程和对种群中个体的邻居更新过程,直至完成输入网络的社区检测。

本发明将无符号网络中的节点相似度测量扩展到符号网络中的节点相似度测量,并因此设计出可以处理无符号网络与符号网络的k节点更新策略。这种预处理策略的使用能够有效地避免噪声节点对社区标签更新过程的影响,并且迅速地将连接紧密的节点集精确地识别,从而聚集成局部子社区。这种技术的使用提高了社区检测精度以及减少进化过程中进行的无用搜索。其次,重新构建了多目标优化模型,使得既能够处理无符号网络类型也能够处理符号网络类型。最后,在多目标优化模型中对于交叉操作和变异操作的设计更具有合理性,针对性的解决种群在进化过程容易陷入局部最优以及减少大量的无用搜索。以上都使得本发明的检测精度大为提高。

实施例2

基于k节点更新与相似度矩阵的多目标社区检测方法同实施例1,步骤3中所述的输入网络节点的相似度矩阵s具体计算公式如下:

其中,s(vi,vj)表示节点vi与节点vj之间的相似度值,代表相似度矩阵s中第i行第j列的元素;γ+(vi)表示与节点vi具有正关系的邻接节点的集合,γ-(vi)表示与节点vi具有负关系的邻接节点的集合;|γ+(vi)∩γ+(vj)|表示节点vi与节点vj之间所共同拥有的正邻居的个数,|γ-(vi)∩γ-(vj)|表示节点vi与节点vj之间所共同拥有的负邻居的个数;代表节点vi的度,即与节点vi相连接的边数之和。

本发明将无符号网络中用于计算网络节点的相似度函数拓展到符号网络中,得到一个泛化的节点相似度函数,使得节点相似度函数更为通用。这种方法的采用使本发明既能够处理无符号类型网络,也能够处理符号类型网络。

实施例3

基于k节点更新与相似度矩阵的多目标社区检测方法同实施例1-2,步骤4中所述的k节点更新策略包括有:

对相似度矩阵s中的每行元素进行降序排列,取前k个相似度大于0的邻接节点,记为vk_neighbor,并使用这些邻接节点的社区标签按如下规则对种群pop中每一个体的社区标签进行更新。运行rt次即可完成对网络的预处理过程,得到网络的子社区结构。

其中,γ(vi)表示节点vi的所有邻接节点集,花括号里公式的含义代表对社区类别进行计数,r是节点的社区标签值。这代表对k个最近邻节点的社区标签值进行统计计数,得到使得计数值最大的那类社区标签,记为r;最后,使用社区标签r来更新节点vi的社区标签。

本发明设计了k节点更新策略用于网络的预划分,这种策略的使用能够有效地避免噪声节点对待处理节点上社区标签更新过程的影响,并且迅速地将连接紧密的节点集精准地识别出来,得到局部子社区,这将极大地减少了进化过程中所进行的无用搜索。

实施例4

基于k节点更新与相似度矩阵的多目标社区检测方法同实施例1-3,步骤5中所述的目标函数值的计算与目标函数参考点的初始化步骤包括:

5.1如果输入网络是无符号网络,使用如下公式计算目标函数值:

其中,表示社区v1内节点度之和,表示社区v1与其他社区之间的连接度之和,|v1|表示集合v1中节点的个数;

5.2如果输入网络是符号网络,使用如下公式计算目标函数值:

其中,对于公式f1,表示社区c内节点的正度之和,表示社区c与其他社区连接为负边的个数,nc表示社区c内的节点总数;对于公式f2,m+与m-分别表示网络g内的正边个数与负边个数,分别表示节点i的负度与正度,δ(ci,cj)是克罗内克函数,当且仅当ci=cj时,函数值为1,否则,函数值为0;

5.3初始化目标函数参考点z*=[-inf,-inf]t,其中,inf表示无穷大值,t表示矩阵的转置符号;更新目标函数参考点z*的值,使得z*=(z1,z2)t,其中,z1=max(f1),z2=max(f2)。

本发明重新构建了符号网络中的多目标优化模型,即将符号模块度sq与边密度函数δc作为两个待优化的函数。本发明采用的多目标优化模型中目标函数之间具有较小的相关性,因此能够产生更加合理的网络划分结果。

实施例5

基于k节点更新与相似度矩阵的多目标社区检测方法同实施例1-4,步骤6中所述的具体交叉合并操作与变异操作过程如下:

6.1依次对i=1,2,…,popsize,从n(i)中随机选择两个不同的下标p,q,于是得到两个个体indp,indq∈pop;

6.2产生随机数rand_number,如果rand_number小于交叉概率pc,对indp,indq执行交叉合并算子,交叉合并算子的具体操作步骤为:分别随机的选取indp与indq上的一个基因位,并记为li,lj。然后,使用li来更新indp上社区标签值为lj的基因位,使用lj来更新indq上社区标签值为li的基因位,因此得到两个新的个体child1,child2;若随机数rand_number不小于交叉概率pc,则不对个体indp、indq进行交叉合并操作。

6.3如果rand_number小于变异概率pm,则对indi执行基于相似度矩阵s的变异操作,操作步骤:从个体indi中找到所有边界节点的集合vboundary_nodes,即节点与多个社区相连;随机从vboundary_nodes中选择一个节点vsp,并从相似度矩阵s中找出与节点vsp相对应的相似度向量sv,然后对sv去除零元素;接着,采用轮盘赌的方法选择sv中某一相似度值,记为sim,并找出其对应的节点vsim;最后,使用vsim的社区标签值来更新vsp的社区标签值,得到一个子代child3;若随机数rand_number不小于变异概率pm,则不对个体indi进行变异操作。

6.4重复执行6.1-6.3,通过上述步骤,对种群中所有个体进行进化操作,于是得到子代child=[child1,child2,child3]。

本发明重新设计了进化过程中的遗传操作方法,即交叉合并操作与基于相似度矩阵的变异操作。交叉合并操作能够将k节点更新策略中产生的局部子社区进行有效地合并,进而产生具有合理数目的社区;基于相似度矩阵的变异操作将待处理节点的社区标签以较大概率变异为与之相似度较高的节点的社区标签,并以较小的概率变异为与之相似度较低的节点的社区标签。这在一定程度上决定种群中个体变异的方向,同时也保留了种群的多样性。这既节省了时间成本也使得社区检测精度大为提高。

下面结合图对本发明的具体实施步骤作进一步的详细描述。

实施例6

基于k节点更新与相似度矩阵的多目标社区检测方法同实施例1-5,参见图1。

步骤1:读入一个无符号网络或符号网络的邻接矩阵a,a是一个n*n的稀疏矩阵,其中n表示节点的个数。用g=(v,e)表示该输入网络,v表示网络的节点集合,e表示网络的边集合,且有|v|=n,|e|=m。此外,e=pe∪ne,pe={(vi,vj),aij>0,vi(j)∈v}表示网络中所有正边的集合,而ne={(vi,vj),aij<0,vi(j)∈v}表示网络中所有负边的集合。对于无符号网络而言,ne=φ。

在实施例中,分别读入两类网络,一类为无符号lfr人工基准网络,其邻接矩阵a只包含两种元素{0,1};一类为符号slfr人工基准网络,其邻接矩阵a包含三种元素{-1,0,1},网络的节点数n=1000。

步骤2:初始化种群pop,种群规模为popsize。并初始化popsize个均匀分布的权重向量计算任意两个权重向量之间的欧式距离,并依次存储与每个权重向量距离最近的nt个权重向量的下标。即对于i=1,2,...,popsize,距离第i个权重向量最近的nt个权重向量的下标记为最近的nt个权重向量。

在本实施例中,设置种群规模popsize=100,权重向量最近的邻居个数nt=20。

步骤3:根据如下公式计算任意两个邻接节点vi,vj((vi,vj)∈e)之间的相似度值s(vi,vj),从而得到整个网络的相似度矩阵s。

其中,s(vi,vj)表示节点vi与节点vj之间的相似度值,代表相似度矩阵s中第i行第j列的元素;γ+(vi),γ-(vi)分别表示与节点vi具有正关系的邻接节点的集合和与节点vi具有负关系的邻接节点的集合;|γ+(vi)∩γ+(vj)|表示节点vi与节点vj之间所共同拥有的正邻居的个数,|γ-(vi)∩γ-(vj)|表示节点vi与节点vj之间所共同拥有的负邻居的个数;是节点vi的度,即与节点vi相连接的边数之和。

在本实施例中,非邻接节点vi,vj(即)之间的相似度设置为0。因此,得到的

步骤4:对相似度矩阵s中的每行元素进行降序排列,取前k个相似度大于0的邻居节点,记为vk_neighbor,并使用这些邻居节点的社区标签按如下规则对种群pop中每一个体的社区标签进行更新。运行rt次即可完成对网络的预处理过程。

其中,γ(vi)表示节点vi的所有邻接节点集,花括号里公式的含义代表对类别进行计数,r是一个社区标签值。这代表对这k个最近邻节点的社区标签值进行统计计数,得到使得计数值最大的那类社区标签,记为r。最后,使用社区标签r来更新节点vi的社区标签。

在本实施例中,对于无符号网络,k的值设置为1/2相似度大于0的邻居节点的个数;对于符号网络,k设置为所有相似度大于0的邻居节点的个数。迭代次数rt的推荐设置范围为[5,10],本实施例中取rt=5。

步骤5:计算种群中个体的目标函数值并初始化目标函数参考点z*=(z1,z2)t。如果输入网络g是无符号网络,使用如下公式计算目标函数值。

其中,表示社区v1内节点度之和,表示社区v1与其他社区之间的连接度之和,|v1|表示集合v1内节点的个数。如果输入网络g是符号网络,使用如下公式计算目标函数值。

其中,对于公式f1,表示社区c内节点的正度之和,表示社区c与其他社区连接为负边的个数,nc表示社区c内的节点总数;对于公式f2,m+与m-分别表示网络g内的正边个数与负边个数,分别表示节点i的负度与正度,δ(ci,cj)是克罗内克函数,当且仅当ci=cj时,函数值为1;否则,函数值为0。于是,更新z1=max(f1),z2=max(f2)。

在本实施例中,参考点z*初始化为无穷小数,即z*=(-inf,-inf)t

步骤6:对种群中的个体进行进化操作,从而得到子代群体,设置种群的最大进化代数为maxgen,设置当前的进化代数为t。设置最初的进化代数t为0,本例中,设置种群的最大进化代数maxgen为200。

(6.1)依次对i=1,2,…,popsize,i表示种群中个体的下标,从个体的邻居下标集合n(i)中随机选择两个不同的下标p,q,于是得到两个个体indp,indq∈pop;

(6.2)产生随机数rand_number,如果rand_number小于交叉概率pc,对indp,indq执行交叉合并算子。交叉合并算子的具体操作步骤为:分别随机的选取indp与indq上的一个基因位,并记为li,lj。然后,使用li来更新indp上社区标签值为lj的基因位,使用lj来更新indq上社区标签值为li的基因位,因此得到两个新的个体child1,child2;若随机数rand_number不小于交叉概率pc,则不对个体indp、indq进行交叉合并操作。

(6.3)如果rand_number小于变异概率pm,则对indi执行基于相似度矩阵s的变异操作,操作步骤:从个体indi中找到所有边界节点的集合vboundary_nodes,即节点与多个社区相连;随机从vboundary_nodes中选择一个节点vsp,并从相似度矩阵s中找出与节点vsp相对应的相似度向量sv,然后对sv去除零元素;接着,采用轮盘赌的方法选择sv中某一相似度值,记为sim,并找出其对应的节点vsim;最后,使用vsim的社区标签值来更新vsp的社区标签值,得到一个子代child3;若随机数rand_number不小于变异概率pm,则不对个体indi进行变异操作。

通过上述步骤6.1-6.3,得到子代种群child=[child1,child2,child3]。

在本实施例中,设置交叉概率pc=0.8,变异概率pm=0.2。与节点vsp相对应的相似度向量sv即为相似度矩阵s中第vsp行的行向量或第vsp列的列向量。

步骤7:计算子代种群child的目标函数值,并更新参考点z*

步骤8:对于子代种群child中的每个子代childj,并对每一个下标m∈n(i),按如下契比雪夫公式计算gte(indm|λ,z*)与gte(childj|λ,z*)的值。

subjecttoind∈pop

其中,l为目标函数的个数。比较种群中个体gte(indm|λ,z*)与子代种群中个体gte(childj|λ,z*)的大小,若gte(childj|λ,z*)<gte(indm|λ,z*),则令indm=childj,完成对indi邻居的更新。

在本实施例中,由于目标函数的个数为2,所以设置l=2。

步骤9:如果达到最大的进化代数maxgen,则终止检测过程;否则,t←t+1,并转至步骤(6.1)。

下面通过仿真对本发明的技术效果再作说明。

实施例7

基于k节点更新与相似度矩阵的多目标社区检测方法同实施例1-6,

具体实验环境与实验内容如下:

本发明在无符号网络中的对比方法为基于分解的多目标进化社区检测技术(moea/d-net)和基于非支配排序的多目标社区检测技术(moga-net);在符号网络中的对比技术为基于进化与局部精致技术的多目标社区检测方法(snmoga)。在实验中,本发明记为gmoea-net。

1.实验环境

本发明在matlabr2014b软件上仿真实现,实验所使用处理器为intel(r)core(tm)i5-2450mcpu@2.50ghz,内存为6.00gb,操作系统为windows7。

2.实验内容

本发明分别采用两类网络用来验证有效性。第一类网络为无符号lfr基准网络,该人工网络含有多个可调节参数,能够较真实的模拟现实系统的环境。这些参数分别设置为:节点个数n=1000,节点的平均度kaverage=20,节点的最大度kmax=50,度分布指数τ1=2,τ1=1,社区的规模[cmin,cmax]=[10,50]。另外,混合参数γ用于控制社区检测的难度,实验中控制γ从0.0变化到0.7,步长为0.05,共生成15幅基准网络。第二类网络为符号slfr基准网络,它是lfr网络在符号网络上的扩展,在原网络上增加了两个可调节参数,分别为控制社区内正边与负边的比例p+以及控制社区间负边与正边的比例p-。实验中,设置混合参数γ=0.1,p+从0.0以步长0.2变化到1.0,以及设置p-=0.1。实验结果好坏的评价指标采用归一化互信息nmi以及权重归一化互信息wnmi,wnmi指标将真实社区个数与检测社区个数的差异作为考虑因素,避免了nmi指标的选择性偏差问题。在符号网络中,本发明还将检测社区个数与真实社区个数作对比。所有方法在各类网络上独立运行10次,检测到的最大nmi值,最大nmi值对应的wnmi值以及检测到的社区个数(记为nc)绘制成图2、图3。

3.实验结果与分析

(1)第一组实验为无符号lfr基准网络上的测试结果,如图2(a)、2(b)所示。从图2(a)中看出,本发明gmoea-net具有很高的社区检测精度,在0.0≤γ≤0.5范围内,本发明gmoea-net均能够检测出正确的社区划分,即nmi=1.0。而对比技术moea/d-net只有在混合参数γ等于0.0的情况下才能检测出正确的社区结构,对比技术moga-net则在所有情况下均无法检测出正确的社区结构。即使在混合参数γ>0.5时,本发明的正确率仍能达到70%以上,即nmi值在0.7以上。从图2(b)中可得出相似的结论,即本发明gmoea-net的社区检测精度具有明显优势。对于所有的混合参数,gmoea-net能够达到60%以上的正确率,即wnmi值在0.6以上,尤其当混合参数0.0≤γ≤0.5时,本发明能够检测出完全正确的社区划分,即wnmi=1.0,如图2(b)所示。此外,在图2(b)中,方法moea/d-net与方法moga-net具有比较接近的折线走势,即这两种技术检测出的wnmi值相差不大,但是明显低于本发明gmoea-net。显然,本发明在无符号网络上具有更高的社区检测精度。

(2)第二组实验为符号slfr基准网络上的测试结果,如图3(a)、3(b)、3(c)所示。控制参数p-值可以得到不同结构的网络,由于篇幅原因,本例仅设置参数p-=0.1,并将得到的实验结果用以说明。从图3(a)中得出,本发明gmoea-net在所有测试网络上均检测出了真实的社区结构,即nmi=1.0;而snmoga方法检测到的nmi值在0.94-0.97范围内,也就是说,snmoga方法无法检测出测试网络内真实的社区结构。图3(b)是两种方法检测到的社区个数与真实社区个数的对比图,本发明检测出的社区个数和网中真实的社区个数完全相同,即图3(b)所示的真实社区个数所对应的三角形连接的折线图与本发明所对应的矩形连接的折线图完全重合。而方法snmoga检测出的社区个数要低于网络中真实的社区个数。图3(c)得出相似的结论,本发明在所有实验网络上都检测出了真实的社区结构,即wnmi=1.0;而对比方法snmoga所得到的wnmi值均在0.9以下,这些精度值明显低于本发明所得到的精度值。因此,本发明极大地提高了在符号网络领域中的社区检测精度。

综上所述,本发明公开的一种基于k节点更新与相似度矩阵的多目标社区检测方法,主要解决现有技术社区检测效果差及无法处理多类型网络的问题。其实现步骤是:(1)读入一个网络的邻接矩阵a;(2)初始化种群pop,并初始化popsize个均匀分布的权重向量,计算任意两个权重向量之间的欧式距离,然后存储与每个权重向量距离最近的nt个权重向量的下标,记为n;(3)根据相似度测量指标计算任意两个节点之间的相似度值,建立网络的相似度矩阵s;(4)对相似度矩阵s中的每行元素进行降序排列,取前k个相似度大于0的邻居节点,记为vk_neighbor,并使用这些邻居节点的社区标签对种群pop中所有个体基因位上的社区标签进行更新;(5)判断网络的类型并选择相应的多目标优化模型,计算种群pop中所有个体的目标函数值f=(f1,f2)t,初始化目标函数参考点z*为负无穷大,然后使用目标函数值f完成对参考点的更新;(6)针对种群中的每一个个体indi,从n(i)中随机的选中两个下标p、q,确定待操作的个体为indp、indq。然后根据交叉概率对个体indp,indq执行交叉合并操作,根据变异概率对indi执行基于相似度矩阵的变异操作,从而得到子代种群child;(7)计算子代种群child中个体的目标函数值,并使用这些目标函数值更新参考点z*;(8)针对子代种群child中的每一个个体childj,对当代个体indi的每一个邻居个体m∈n(i),分别计算childj与indm的契比雪夫值,并比较两者大小,完成对个体indi的邻居更新过程。继续对种群pop中的个体操作,直至完成对种群pop中所有个体的邻居更新;(9)如果达到社区检测的终止条件,则终止检测过程,输出网络的社区划分;否则,进行下一次迭代,即转至步骤(6),直至检测出输入网络的社区。本发明具有社区检测精度高的优点,能够同时处理无符号网络与符号网络的社区检测问题。

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