1.一种多特征融合的大规模网络社区检测算法,其特征在于,包括如下步骤:(S1)计算网络社区节点中的任意节点之间的相似值,获得节点之间的相似性;具体方法为,根据公式:其中, 表示在k步内节点vi和节点vj之间的定量相似性,β是每一步间接近邻的衰减因子,m表示节点vi和节点vj的中间节点数;进而得到反映节点vi和其他邻居节点在预定义的k步内的关系的紧密程度的相似矩阵:(S2)根据两个节点构成的边的一阶邻居节点的相似性获取边的局部特征表示;具体过程如下:定义网络社区节点图G=(V,E)是无向无权图,其中V={v1,...,vn}表示节点的集合,E={e(1,2),...,e(n,m)}表示边的集合;
首先得到每条边的两个节点vi、vj的一阶邻居 用节点的一阶邻居表示网络社区的局部结构;
其中,节点vi的p个一阶邻居节点可以表示为:节点vj的q个一阶邻居节点可以表示为:
由于边的局部特征是一个矩阵,其每个元素都是节点之间的相似性,因此通过查询公式(1)中对应的节点相似度矩阵得到边e(i,j)的局部特征矩阵其中 为预定义的运算符,通过查询对应的节点相似矩阵 和 可以计算两组元素的相似度,最后,整个图G的所有边的局部特征矩阵可以表示为:(S3)采用定制化的随机游走策略获取边的非局部特征表示;具体过程如下:定义游走策略中游走的步数为T,则节点vi的游走序列可被表示为:节点vj的游走序列可被表示为:
其中,一条边的两个节点在游走时不能通过自身的边;且在游走过程中去除设定数量的两点的共同一阶邻居;
计算两个游走序列RandomWalk(vi)和RandomWalk(vj)中的每个节点分别与节点vi和vj的相似性值可得:其中 为预定义的运算符,通过查询对应的节点相似矩阵 和 可以计算两组元素的相似值,从而得到整个图G的所有边的非局部特征矩阵:(S4)采用将一条边的局部和非局部特征融合为潜在特征空间中的一个综合融合特征,然后对融合后的视觉信息进行分类的方式来区分社区间的边和社区内的边;具体过程如下:首先把局部特征和非局部的特征表示为两个灰度图像;
通过预训练用VGG19网络作为提取器将局部特征和非局部特征嵌入到一个统一的特征空间中,产生局部特征和非局部特征在潜在特征空间中的表示;
将局部特征与非局部特征图按通道连接,并使用1×1卷积层对所得到的特征进行融合;
最后将融合的特征输入两个全连接层做边分类;
(S5)采用模块度优化对融合形成的初步社区进行合并来优化社区划分结果;具体过程如下:(S51):输入网络社区图G=(V,E);
(S52):融合形成初始社区FC={C1,C2,…,Cp};
(S53):输入标准社区数量M;
输出最终社区EC={Ec1,Ec2,...,EcM};
(S54):定义局部模块度最大的前M个社区为真实社区:RC={Rcom1,Rcom2,…,RcomM};
(S55):定义其他社区为虚拟社区VC={Vcom1,Vcom2,…,VcomP};
(S56):循环:i从1到p;
(S57):对每一个虚拟社区Vcomi获得他的最邻近社区:Ci={Ncom1,Ncom2,…,NcomQ},i∈[1,P],Q∈[1,M](B58):计算NCi的模块度作为Rj,j∈|NCi|forVcomi;
(S59):将Vcomi和它的NCi进行随机合并,然后计算所有合并了的社区的局部模块度作为MERj,j∈|NCi|;
(S510):计算ΔR=MERj‑Rj,选择Ncom,跟Vcomi进行合并;
(S511):更新真实社区RC;
(S512):循环结束;
(S513):输出合并结果EC=RC。