基于核心节点的社区发现算法
复杂网络中的节点分类与社区发现研究

复杂网络中的节点分类与社区发现研究一、引言网络结构的分析已经成为了最广泛研究的领域之一,特别是对于复杂网络的研究而言,“节点”和“社区”是研究的最基本问题之一。
本文将主要介绍复杂网络中节点分类和社区发现研究的相关概念、方法和应用。
二、复杂网络网络中包含大量的节点和边,我们将其中的节点表示为V={v1,v2,…,vn},边为E,当一条边连接了两个节点时,它们就存在一种关系,例如友情、物理接触、信息交流等等。
这些关系构成了网络的拓扑结构,而通常在现实生活中,网络的结构都是非常复杂的。
其中最显著的特点是具有高度的连通性、较高的聚类系数和多项式度分布性。
三、节点分类3.1 概念节点分类是通过解析网络中节点数量、类型、结构、属性等信息,将这些节点划分到不同的组中,从而为数据降维、特征提取、网络分析和可视化等应用提供了有力支持。
对于节点分类而言,最常用的方法就是贪心算法和模块性最优化算法。
(1) Node2Vec算法Node2Vec算法是一种基于深度学习的节点分类算法,其主要思想是利用节点的前后设置,学习节点嵌入的表征。
首先通过随机游走模型生成节点序列,然后通过负采样生成负样本,利用Skip-Gram模型训练生成词向量感知器,最终得到每个节点的表征向量。
(2)社区邻居划分算法社区邻居划分算法是一种基于社区最佳化搜索的节点分类方法,其主要思想是先划分所有节点成为不同的社区,然后通过计算每对社区块间的modularity值继续进行两两合并,直至达到最终的目标。
该方法具有精度高、可扩展、可适应性等特点,在多种应用中得到广泛的应用。
四、社区发现4.1 概念社区发现是一种根据网络的拓扑结构探测其内部隐含的社区组织结构的方法,它的基本思想是,将网络中的节点划分为几个有紧密联系的节点集合,以识别出每个集合中的“社区”;而不同的社区之间往往不会有过多联系。
社区发现方法主要分为聚类法、划分法和混合法三大类。
(1)基于谱的Clustering算法基于谱的Clustering算法是一种利用谱理论的社区发现算法,其核心思路是,通过网络的特征矩阵,求得其Laplacian特征向量,并对其进行聚类分析。
基于节点重要性与相似性的重叠社区发现算法

基于节点重要性与相似性的重叠社区发现算法
付饶;孟凡荣;邢艳
【期刊名称】《计算机工程》
【年(卷),期】2018(044)009
【摘要】在复杂网络中进行重叠社区发现时,现有模糊C均值算法(FCM)采用随机策略导致社区划分结果不一致.为此,提出一种新的重叠社区发现算法.引入节点重要性来量化复杂网络中节点的重要程度,根据节点重要性排序和节点间最短路径选取若干核心节点作为FCM初始的聚类中心节点,从而提高FCM的不稳定性.利用基于s-跳最短路径的节点相似度量方法得到信息更丰富的相似矩阵,以提高算法的准确率.采用谱聚类对相似矩阵处理得到节点的隶属度矩阵,并依据阈值分配各节点的社区归属.实验结果表明,该算法能够得到唯一的社区划分结果,且在Karate、Dolphins数据集上的NMI指标比GCE、INFOMAP和GOPRA等算法高8%以上.
【总页数】7页(P192-198)
【作者】付饶;孟凡荣;邢艳
【作者单位】中国矿业大学计算机科学与技术学院,江苏徐州221116;中国矿业大学计算机科学与技术学院,江苏徐州221116;中国矿业大学计算机科学与技术学院,江苏徐州221116
【正文语种】中文
【中图分类】TP301.6
【相关文献】
1.一种基于局部相似性的社区发现算法 [J], 吴钟刚;吕钊
2.基于Node2Vec的重叠社区发现算法 [J], 陈卓;姜鹏;袁玺明
3.基于节点重要性和局部扩展的重叠社区发现算法 [J], 郭峰;尤凯丽;李昕泽
4.基于SLPA优化的重叠社区发现算法 [J], 陈界全;王占全;李真;汤敏伟
5.基于节点重要性与相似性的标签传播算法 [J], 林天森;孙飞翔
因版权原因,仅展示原文概要,查看原文内容请购买。
基于复杂网络的社区发现算法

基于复杂网络的社区发现算法杨晓光;朱保平【摘要】To solve the problem of low accuracy of existing community detection methods , a community detection algorithm based on central nodes is proposed here .Central nodes of communities are found through the degree of each node and the similarity of nodes .Each community is optimized using local modules .The community division of the entire network is obtained by classifying isolated nodes and overlapping community nodes to their community as far as possible based on node attraction .The algorithm proposed here is compared with three local community detection algorithms and four global community detection algorithms respectively .Experimental results show that the algorithm can improve the accuracy of the community detection and is feasible .%针对现有社区发现算法准确度较低的问题,该文提出了1种基于中心节点的社区发现算法。
大规模复杂网络中的社区发现算法研究

大规模复杂网络中的社区发现算法研究随着互联网的快速发展,大规模复杂网络成为了人们生活和工作中不可或缺的一部分。
这些网络包含了海量的节点和边,形成了一个庞大而错综复杂的网络结构。
在这种网络中,节点之间的连接关系对于了解网络的组织结构以及节点之间的相互作用起着至关重要的作用。
而社区发现算法则可以帮助我们理解和分析这些复杂网络中节点之间的聚类方式和关系。
社区发现算法是一种将网络节点划分为不同社区的方法。
社区指的是在网络中相互关联紧密、内部密度较大的节点子集。
社区发现算法的目标是找到这些社区并将其划分出来,以便更好地理解网络结构和节点之间的交互。
在大规模复杂网络中,社区发现算法面临着挑战,因为网络规模庞大且结构复杂,难以直观地判断节点之间的聚类方式。
在研究大规模复杂网络中的社区发现算法时,一些常见的算法方法包括谱聚类、模块度优化、标签传播和深度学习等。
谱聚类是一种基于矩阵特征向量分解的方法,通过计算网络的特征向量进行聚类划分。
模块度优化算法通过最大化网络中节点聚类的内部连边数和减少与其他社区的连边数来实现社区发现。
标签传播算法则基于节点之间的局部信息传播划分社区。
深度学习是近年来应用广泛的方法,通过使用神经网络模型来学习网络节点之间的特征和相互关系。
然而,在大规模复杂网络中应用这些算法时也遇到了一些挑战。
首先,网络规模庞大,算法的效率需要得到提高。
其次,网络结构复杂,社区表达方式多样,导致算法的准确性和鲁棒性存在一定的问题。
此外,由于网络中包含大量的噪声和异常节点,算法需要具备一定的鲁棒性和可靠性以应对这些干扰因素。
因此,针对这些挑战,研究者们提出了一系列的改进算法和优化策略。
为了提高算法的效率,研究者们提出了一些加速算法的方法。
例如,可以通过节点采样的方式减少计算量,或者使用分布式计算框架来实现算法的并行计算,以提高算法的速度和效率。
此外,由于网络中存在一些重要的节点和核心社区,可以对这些节点和社区进行优化,减少计算的复杂度。
复杂网络中的社区发现算法研究

复杂网络中的社区发现算法研究随着互联网技术的飞速发展,越来越多的数据得以存储,处理和分析。
网络作为一个系统,一直受到研究者们的关注。
随着大量个体之间的相互作用,网络中会出现许多社区结构。
而社区发现算法则是揭示网络中社区结构的方法。
本文将会从复杂网络、社区结构、社区发现算法三方面来进行阐述。
一、复杂网络复杂网络是一种由很多个体组成的网络结构。
它的结点和边是复杂的,包含数学、物理、生物、社会等多方面的知识。
复杂网络的特点包括稀疏、小世界、无标度和社区等。
其中,社区是指网络中一些紧密相连的结点集合,与其他部分相对疏离。
社区结构存在于许多实际网络中,如社交网络、互联网中的网络图等。
二、社区结构社区结构指网络中具有可辨识别性的区域,由处于这个区域内的结点相互连接而成。
它是网络中的一种全局结构,可以重要程度来划分网络的组成部分。
社区结构一般包括两个方面的特性:内部紧密性较高、与外部联系较少。
社区结构的研究有助于我们深入了解网络中的相互关系,揭示网络的基本性质和规律,以及在计算机应用中有着广泛的应用。
三、社区发现算法社区发现算法是一种在复杂网络中发现社区结构的技术。
目前有许多种社区发现算法,如基于模块度的算法、基于标签传播的算法、基于谱聚类的算法等。
1.基于模块度的算法基于模块度的算法是一种用于量化社区的算法,并在此基础上提出了很多社区发现算法。
其中比较经典的是Girvan-Newman算法,它是一种基于分离节点的策略。
该算法的基本思想是:首先将网络结构图中的所有边按照权值从大到小排序,然后逐个删除边,每次删除一条边,同时计算网络把该边删除后被拆分成的连通块的模块度。
如果待删除的边恰好连接两个不同的社区,即删除该边后网络的总模块度将增加,因此可以找到最优的分割边,将两个社区分离开来。
不断重复进行该操作,直到网络中所有节点都被划分到不同的社区。
2.基于标签传播的算法标签传播算法是一种快速而有效的社区发现算法。
算法的核心思想是:每个节点先将其邻居中的最常见标签赋给自己。
复杂网络中的社区发现算法及其应用

复杂网络中的社区发现算法及其应用复杂网络是由大量节点以及节点之间的连接关系构成的网络,在现实中广泛存在于许多领域,如社交网络、生物网络和互联网等。
社区发现是复杂网络研究的重要内容,目的是将网络中相互紧密连接的节点划分为具有相似特征或功能的社区。
社区发现算法是研究者们为了解复杂网络中的结构、功能和演化过程而提出的重要方法。
本文将介绍几种常见的社区发现算法及其应用。
一、模块度优化算法模块度是衡量网络社区结构好坏的重要指标,模块度优化算法就是通过最大化网络的模块度来寻找合适的社区划分。
常见的模块度优化算法有GN算法、Louvain算法和贪心算法等。
这些算法通过迭代地划分社区和优化社区内的连接关系来寻求最优解。
模块度优化算法在社交网络、组织结构分析、蛋白质相互作用网络等领域有广泛应用。
例如,在社交网络中,通过社区发现算法可以识别出不同的社区群体,有助于理解社交网络中的用户行为和信息传播规律,在推荐系统中起到重要作用。
二、基于节点相似性的算法基于节点相似性的社区发现算法认为在网络中相似的节点更可能属于同一个社区。
这类算法包括谱聚类、K均值算法和PSCAN算法等。
这些算法通过计算节点间的相似度来划分社区。
这类算法在生物网络、交通网络、图像分割等领域应用广泛。
例如,在生物网络中,通过基因的相似性来划分蛋白质相互作用网络的社区,可以帮助研究者理解蛋白质之间的功能和调控关系,从而推测未知蛋白质的功能。
三、基于概率生成模型的算法基于概率生成模型的社区发现算法通过建立模型来描述网络的生成过程,并利用模型参数推断网络的社区结构。
常见的算法有LDA、SBM等。
这些算法将网络看作是由不同社区生成的,根据模型参数的估计结果来划分社区。
这类算法在社交网络、金融网络等领域有广泛应用。
例如,在金融网络中,通过基于概率生成模型的社区发现算法可以划分出潜在的金融市场或子市场,有助于金融市场监管和风险预警。
总结起来,社区发现算法在复杂网络研究中扮演重要角色,有助于理解网络的结构和功能特征,为许多现实问题的解决提供了有力支持。
聚类算法在社区发现中的应用

聚类算法在社区发现中的应用聚类算法,即将相似的对象聚集在一起的算法,是数据挖掘和机器学习领域应用最广泛的算法之一。
而社区发现,是社交网络分析领域的重要问题之一。
社区发现旨在找出一个社交网络中具有高度互动性且连接紧密的社区,可以帮助我们理解社交网络的结构、预测信息传播、评估网络安全等。
本文将探讨聚类算法在社区发现中的应用及其优劣势。
一、传统的社区发现方法传统的社区发现方法首先将每个节点看做一个对象,然后通过构建节点之间的边来表示它们之间的关系。
然后利用图论中的模块度等指标来评估社区的结构,从而寻找社区。
常见的方法有基于模块度的Louvain算法、基于谱聚类的算法、基于图划分的算法等。
但是,这些方法都存在一些问题,比如无法处理大规模网络、噪音数据以及网络的动态变化等问题。
二、聚类算法在社区发现中的应用聚类算法因其高效、灵活以及对大规模数据的处理能力而备受关注,因此也被用于社区发现中。
聚类算法的基本思想是将节点划分到不同的簇中,让同一个簇内的节点之间相似度高,不同簇之间的节点相似度低。
这种方法可以有效地处理大规模网络、噪音数据以及网络的动态变化等问题。
1. 基于谱聚类的社区发现谱聚类算法是一种基于图论和矩阵论的聚类算法。
它将网络表示为一个邻接矩阵,然后将邻接矩阵归一化后,计算出其特征向量和特征值。
然后将特征向量按照特征值大小进行排序,取前k 个特征向量,对它们进行聚类。
谱聚类算法能够得到比传统方法更加准确的社区结构,并且对于大规模网络有较好的可扩展性。
但是,谱聚类算法的计算量较大,需要特殊的优化方法。
2. 基于DBSCAN的社区发现DBSCAN聚类算法是一种密度聚类算法,它能够处理噪音数据和非凸形状的簇。
DBSCAN算法将每个节点看做一个中心点,然后将半径为ϵ的区域看做一个邻域,如果一个节点的邻域内节点数大于等于一个设定的阈值M,则该节点被视为核心点。
如果一个节点在其他节点的核心点邻域内,那么它就属于同一簇。
社交网络中的用户社区发现算法详述

社交网络中的用户社区发现算法详述社交网络已经成为人们生活中不可或缺的一部分,它们连接了全球各地的用户,使得信息交流、知识共享和人际关系建立变得更加便捷。
然而,随着社交网络的快速发展,用户数量的增加和社交网络结构的复杂化,如何发现用户之间的社区结构变得越来越重要。
社交网络中的用户社区发现算法就是解决这一问题的方法之一。
它的目标是将网络中的用户划分为若干个社区,使得同一个社区中的用户有着相似的特征和互相之间存在密切的关系,而不同社区之间的用户关系则相对较弱。
下面将详细介绍几种常见的用户社区发现算法。
1. Girvan-Newman算法Girvan-Newman算法是一种基于图的社区发现算法,它通过计算网络中边的介数(betweenness)来划分社区。
介数表示了对于网络中的任意两个节点之间最短路径上经过的边的数量。
该算法的思想是不断删除介数最高的边,直到网络中的社区被划分出来。
2. Louvain算法Louvain算法是一种基于模块度(modularity)的社区发现算法。
模块度是一种衡量网络内部连接紧密程度的指标,它对比了网络实际的边连接情况和预期的随机连接情况。
Louvain算法通过迭代地将节点合并到具有最大模块度增益的社区中,直到无法再增加模块度为止。
3. Label Propagation算法Label Propagation算法是一种迭代的社区发现算法,它通过在网络中传播节点的标签来实现社区划分。
每个节点最初被赋予一个唯一的标签,然后在每一轮迭代中,节点会根据周围节点的标签来更新自己的标签。
当标签收敛时,算法停止并将具有相同标签的节点划分为同一个社区。
4. Infomap算法Infomap算法是一种基于信息论的社区发现算法,它通过最小化网络的描述长度来划分社区。
该算法将网络看作是信息传递的通道,社区划分的目标是找到一种最优的信息传递方式,使得网络的整体描述长度最小。
Infomap算法通过迭代地优化信息流动的方式来实现社区划分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
文献引用格式:冯译萱ꎬ张月霞.基于核心节点的社区发现算法[J].电视技术ꎬ2019ꎬ43(1):11-16.FENGYXꎬZHANGYX.Communitydiscoveryalgorithmbasedoncorenodes.ComputerEngineeringandApplications[J].Videoengineeringꎬ2019ꎬ43(1):11-16.中图分类号:TP391㊀㊀㊀㊀文献标志码:A㊀㊀㊀㊀DOI:10.16280/j.videoe.2019.01.003基金项目:国家自然科学基金(No.51334003ꎬNo.61473039)基于核心节点的社区发现算法冯译萱ꎬ张月霞(北京信息科技大学㊀信息与通信工程学院ꎬ北京㊀100101)摘要:针对基于全局的社区发现方法计算复杂度较高ꎬ基于局部的社区发现方法难以保证划分准确度的问题ꎬ本文提出了一种基于核心节点的社区发现算法ꎮ通过局部聚类系数和度计算网络中节点的优先级ꎬ以便更准确的选取核心节点ꎬ利用多层节点相似度判断其他节点与核心节点是否可以划分进同一小团体ꎬ可以提高节点划分准确性ꎬ最后ꎬ将紧密程度较大的小团体进行合并ꎬ得到划分结果ꎮ本文在真实的网络上进行验证ꎬ与GN算法和FN算法相比ꎬ本算法具有更好的划分准确性ꎮ关键词:社区发现ꎻ节点相似性ꎻ复杂网络ꎻ核心节点Communitydiscoveryalgorithmbasedoncorenodes.ComputerEngineeringandApplicationsFENGYixuanꎬZHANGYuexia(SchoolofInformationandCommunicationEngineeringꎬBeijingInformationScience&TechnologyUniversityꎬBeijing100101ꎬChina)Abstract:Inordertosolvetheproblemthatthecommunitydiscoverymethodbasedontheglobalcommunitydiscoveryismorecomplexandthelocalcommunitydiscoverymethodisdifficulttoensuretheaccuracyofthecommunitydiscoveryꎬacommunitydis ̄coveryalgorithmbasedonthecorenodeisproposedinthispaper.Thispapercalculatesthepriorityofnodesinthenetworkbylo ̄calclusteringcoefficientanddegreeꎬsoastoselectthecorenodesmoreaccuratelyanddeterminewhetherothernodesandcorenodescanbedividedintothesamesmallgroupbythesimilarityofmulti-layernodesꎬandtheaccuracyofthenodepartitioncanbeimproved.FinallyꎬthesmallgroupswithlargertightnessaremergedꎬTheresultofdivisionisobtained.Thisalgorithmisveri ̄fiedinrealnetwork.ComparedwithGNalgorithmandFNalgorithmꎬthisalgorithmhasbetterpartitionaccuracy.Keywords:CommunitydiscoveryꎻNodesimilarityꎻComplexnetworkꎻCorenode1㊀前言现实中ꎬ大量的复杂系统可以描述成网络形式ꎬ如社交网络㊁病毒传播网络㊁互联网络㊁科学家合作网络等等ꎬ这些复杂网络通常具有小世界特性和无标度特性ꎮ研究发现ꎬ绝大多数的复杂网络的拓扑结构都具有总体分散㊁局部聚类的特征ꎬ这种特征称为社区结构[1]ꎮ社区内部节点连接紧密ꎬ社团间连接较为稀疏ꎬ同一社区内的节点属性相近ꎮ社区发现算法可以通过分析网络中节点的关系ꎬ对于挖掘网络中的拓扑结构ꎬ从而预测网络行为具有重要意义[2]ꎮ目前存在很多种社区发现方法ꎬ主要包括三类:基于全局的社区发现方法㊁基于局部的社区发现方法和基于结构相似度的社区发现方法[3]ꎮ(1)基于全局的社区发现方法是从网络整体出发ꎬ通过某个性质划分出网络中的社区ꎬ包括图划分[4]㊁模块度优化[5-6]㊁层次聚类[7]以及基于图模型[8]的方法等ꎮ但实际网络规模庞大㊁数据动态增长ꎬ此时使用全局方法ꎬ计算复杂度高㊁并行处理效率低ꎬ而且从全局结构进行划分难以体现出局部社区的结构重叠特征ꎮ(2)基于局部的社区发现方法一般选取网络中的一个或几个初始节点进行社区结构的条件划分ꎬ并找出网络中满足条件的极大子网络ꎬ这些子网络被称为社区[9]ꎮ该类社区发现方法的准确度往往较低ꎬ因为初始节点的选取对划分结果影响较大ꎬ当选取的初始节点为社区的边缘节点时ꎬ社区划分结果与真实网络中的社区结构差别较大ꎮ基于局部的社区发现方法计算复杂度较低ꎬ但是因初始节点影响较大ꎬ社区划分结果的误差也较大ꎮ(3)基于结构相似度的社区发现方法基本思想为:根据网络拓扑结构计算任意两个节点之间的节点相似度ꎬ然后将相似度较高的节点归为同一社区ꎮ仇丽青等人[10]提出共同邻居相似度的定义ꎬ如果计算出的两个节点的共同邻居相似度比预先设定的阈值要高ꎬ那么可以认为这两个节点相似ꎬ并把两节点归于同一社区中ꎮ许为等人[11]用相似度及交流行为作为衡量网络中用户的关系的指标ꎬ把相似性模块度作为目标函数ꎬ并在其中加入相似性惩罚因子来进行社区划分ꎮ本文针对社区发现方法存在的不足之处ꎬ提出了一种基于核心节点的社区发现算法ꎮ本算法通过考察局部聚类系数和度两种属性ꎬ选取网络中的核心节点ꎬ可以解决传统的基于局部的社区发现方法中初始节点的选取问题ꎬ利用相似度方法对核心节点和其他节点进行合并ꎬ计算小团体间紧密程度判断是否进行合并ꎬ与传统的基于全局的社区划分方法相比ꎬ本算法计算复杂度较低ꎮ经过在真实网络数据集上进行实验ꎬ本算法具有较好的社区划分表现ꎮ2㊀算法相关准备2.1㊀网络描述假定G=(VꎬE)为一个无权无向的网络ꎬ包含n个节点ꎬm条边ꎮ网络中节点的集合为V={v1ꎬv2ꎬ ꎬvn}ꎬ边的集合为E={e1ꎬe2ꎬ ꎬem}ꎮV表示网络中节点的数量ꎬE表示网络中边的数量ꎮ2.2㊀节点优先级在一个网络G=(VꎬE)中ꎬ假设i为网络G中一个节点ꎬ则节点i的优先级为:Pi=mi+kk+1(1)其中ꎬk表示节点i的度ꎬmi表示节点i的邻居节点之间存在的边的数量ꎮ式(1)综合了节点的度和节点的邻居间连接的局部聚类系数ꎬ在公式中同时考虑了度和聚类系数两种属性ꎬ有利于准确度量节点邻居间联系的紧密程度ꎮ节点与其邻居的紧密程度越高ꎬ节点优先级越大ꎮ选择网络中节点优先级较大的节点作为构建网络小团体的核心节点ꎮ2.3㊀单层节点相似性指标根据社交网络中的三元闭包原则ꎬ如果两个人的共同朋友较多ꎬ这两个人在未来成为朋友的可能性更大ꎮ该原则推广到一般网络则可以认为:两个节点的共同邻居数越多ꎬ这两个节点就越相似ꎬ从而更可能建立连接ꎮ节点相似度即为节点i和节点j之间的相似性ꎬ相似度越大的节点ꎬ越有可能被划分在同一社区中ꎮ假设Γ(i)和Γ(j)分别为节点i和节点j的邻居节点的集合ꎬ那么基于共同邻居的(CommonNeighborꎬCN)指标可以定义为:CNij=Γ(i)ɘΓ(j)(2)一般来说ꎬ当共同邻居数量相同ꎬ而节点本身的邻居节点数量又较多时ꎬ相似度会较小ꎬ所以本文用式(3)来定义单层节点间的相似度ꎮφ1=Γ(i)ɘΓ(j)Γ(i)ˑΓ(j)(3)在实际社交网络中ꎬ一个节点可能同时和其他两个节点具有相同的相似度ꎬ如图1所示ꎬ节点A和节点F的相似度为0.866ꎬ而节点A与节点G的相似度也为0.866ꎬ在这种情况下ꎬ无法判断节点A应该与哪个节点优先连接ꎮ因此ꎬ本文提出了多层节点相似性指标来解决此类问题ꎮ图1㊀多个节点及其共同邻居2.4㊀多层节点相似性指标本文提出了多层节点相似性指标ꎬ通过计算邻居节点之间的紧密程度进行来解决在节点相似度相同时的节点优先连接问题ꎮ(1)当节点i和节点j通过两个节点连接时ꎬ如图2所示ꎬ节点1与节点2通过节点1的邻居节点3与其邻居节点6相连ꎬ路径为 1-3-6-2 ꎮ在这图2㊀两个节点的多层邻居节点种情况下ꎬ将节点i的邻居节点的邻居节点表示为Γ2(i)ꎬ此时节点i和节点j的相似度为φ21=Γ2(i)ɘΓ(j)Γ2(i)ˑΓ(j)(4)(2)当节点i和节点j通过三个节点连接时ꎬ如图2所示ꎬ节点1与节点2通过节点1的连狙节点3与其邻居节点7和节点2的邻居节点5相连ꎬ路径为 1-3-7-5-2 ꎮ在这种情况下ꎬ分别将与节点i和节点j的邻居节点相连的节点表示为Γ2(i)和Γ2(j)ꎬ此时节点i和节点j的相似度为φ22=Γ2(i)ɘΓ2(j)Γ2(i)ˑΓ2(j)(5)将以上两种情况成为多层节点相似度ꎬ合并为式(6):φ2=φ21+φ22(6)通过以上公式可以重新定义节点i和节点j的相似度ꎬ如式(7)所示:φij=φ1+ωijφ2(7)其中ꎬ多层节点相似度的权重值ωij为节点i和节点j的聚类系数的平均值:ωij=12[2niki(ki-1)+2njkj(kj-1)](8)在式(8)中ꎬki和kj分别代表节点i和节点j的邻居节点的个数ꎬni和nj分别代表节点i和节点j的邻居节点之间连边的个数ꎮ2.5㊀小团体紧密程度当节点通过两两计算相似度合并成小团体后ꎬ需要把这些小团体合并成社区ꎮ合并小团体时ꎬ要对不同小团体之间的紧密程度进行评估ꎬ先合并紧密程度较大的小团体ꎬ直到最后划分出的社区合乎实际情况ꎮ小团体的紧密程度含义为:小团体之间实际存在的边的数量与小团体之间可能形成的边的数量的比值:Cab=e(VaꎬVb)VaˑVb(9)其中ꎬe(VaꎬVb)代表小团体Va和小团体Vb之间实际存在的连边ꎬVa和Vb分别代表小团体Va和小团体Vb的节点数量ꎬ两者的乘积代表两个小团体之间可能形成连边的数量ꎮ如果两个小团体的紧密程度计算相同ꎬ可以通过式(10)计算其相似性ꎬ相似性大于阈值T的小团体会进行合并ꎬ小于阈值T的不会合并ꎮSab=VaɘVbmin(VaꎬVb)(10)3㊀算法描述本文首先计算所有节点的优先级ꎬ按优先级大小对节点进行排序ꎬ选取部分优先级较大的节点作为核心节点ꎻ计算任意节点与核心节点之间的相似度ꎬ大于设定阈值的合并为同一社区ꎻ计算小团体间的紧密程度ꎬ将紧密程度较大的小团体合并ꎬ重复该过程直到社区划分结果合乎实际情况ꎻ最后通过模块性函数评价社区划分结果ꎮ算法具体流程如下ꎮ算法流程:假定G=(VꎬE)为一个无权无向的网络ꎬ包含n个节点ꎬm条边ꎮ其中ꎬ网络中节点的集合为V={v1ꎬv2ꎬ ꎬvn}ꎮ(1)根据公式(1)计算网络中所有节点的优先级ꎬ并根据节点优先级大小对节点进行排序ꎬ排序后构成集合Vp={Vp1ꎬVp2ꎬ ꎬVpn}ꎻ(2)挑选集合Vp中的优先级较大的节点ꎬ构成高优先级节点集合Vmaxp={Vmaxp1ꎬVmaxp2ꎬ ꎬVmaxpn}ꎬ本文中选取集合Vp的前10%的节点构成集合Vmaxpꎮ(3)利用公式(3)计算Vmaxp中节点两两之间的相似度ꎬ挑选相似度较大的两个节点中ꎬ节点优先级较高的节点ꎬ构成集合Vcore={Vcore1ꎬVcore2ꎬ ꎬVcorem}ꎬ作为核心节点集合ꎮ(4)利用公式(3)和公式(7)计算网络中除核心节点集合外其他节点与Vcore内节点的节点相似度ꎬ判断相似度值是否大于阈值Tꎬ如果比阈值大ꎬ将该节点对合并成小团体ꎮ将每一个节点记为小团体Ciꎬ当节点i和节点j合并成同一小团体时ꎬ把节点j划分到小团体Ci中ꎬ即Ci={iꎬj}ꎬ此时清空集合Cjꎮ(5)重复步骤(4)ꎬ直到没有节点对的相似度值大于阈值Tꎮ(6)利用公式(9)和公式(10)计算各个小团体之间的紧密程度ꎬ紧密程度值大于阈值的小团体合并成同一社区ꎬ合并步骤如步骤(4)ꎮ(7)当所有小团体间的紧密程度值都小于阈值时ꎬ社区划分完毕ꎮ(8)对几种不同类型的网络数据集进行社区划分实验ꎬ并与经典算法进行划分结果对比ꎮ4㊀仿真与分析4.1㊀评价指标为验证本文提出算法的准确性ꎬ利用三种真实网络进行测试ꎬ所用数据集有Zachary空手道俱乐部网络[12]㊁海豚社会关系网络[13]以及美国大学生足球比赛网络[14]ꎮ本文运用模块性Q函数对实验结果进行了评价ꎮGirvan和Newman定义了模块性Q函数[15]ꎬ定量的描述网络中的社团ꎬ并衡量社团划分准确性ꎮ模块性是指社团内部节点之间的连边占所有边的比例ꎬ与随机网络中社团内部节点之间连边占所有边的比例的期望值相减得到的值ꎮQ函数把网络划分为c个社团ꎬ设定对称矩阵E=(eij)cˑcꎬ矩阵中的元素eij代表连接社团i和社团j的节点的边与所有边的比值ꎮ模块性Q函数为:Q=ðci=1(eii-bi2)=t- E2 (11)其中ꎬbi=ðcj=1eijꎬ表示每行(或每列)的元素之和ꎮt=ðci=1eiiꎬ表示对角线上元素求和ꎮ E2表示矩阵E2中所有元素求和ꎮ4.2㊀Zachary空手道俱乐部网络的社区划分实验结果㊀㊀Zachary空手道俱乐部网络是一个把俱乐部的成员间的关系作为连边的社会关系网络ꎬ网络中的34个节点代表俱乐部的成员ꎬ78条边代表成员间的亲密关系ꎮ经过俱乐部的一次变迁后ꎬ俱乐部内部分为两个派系ꎮ该网络平均聚类系数为0.571ꎬ平均局路径长度为2.408ꎬ平均度为9.176ꎬ符合小世界网络的参数范围ꎮ图3㊀Zachary空手道俱乐部划分结果图3为本算法对Zachary空手道俱乐部网络的社区划分结果ꎮ节点34和节点1的节点优先级分别为0.9444和0.9412ꎬ被选取为核心节点ꎬ以节点1为中心的社区记为社区1ꎬ以节点34为中心的记为社区2ꎮ节点3与两个社区间的度都为6ꎬ但与社区2中所连节点的相似度更大ꎬ所以被划分到社区2中ꎮ图3中ꎬ不同颜色表示不同的社区ꎬ且在真实网络中ꎬ节点1和节点34分别代表俱乐部的主管和校长ꎬ因为两人的矛盾ꎬ俱乐部分为两派ꎬ与实际情况一致ꎮ4.3㊀海豚社会关系网络社区划分实验结果海豚社会关系网络是Lusseau等人在新西兰DoubtfulSound海峡对62只海豚的交流情况进行了研究和记录ꎬ如果两个海豚经常一起活动ꎬ那么两者之间存在连边ꎮ该网络中的62个节点代表海豚以及159条边代表海豚间的亲密关系ꎮ该网络的平均聚类系数为0.3ꎬ平均路径长度为3.338ꎬ平均度为10.258ꎬ符合小世界网络的参数范围ꎮ图4㊀海豚社会关系划分结果本算法对海豚社会关系网络的社区划分结果如图4所示ꎮ节点14㊁15㊁38㊁46㊁58的优先级较大ꎬ被划分为核心节点ꎮ对网络中其他节点和核心节点两两计算节点相似度ꎬ根据相似度大小形成小团体ꎬ对小团体计算紧密程度ꎬ进行最终划分ꎬ最后形成以节点14为中心的社区1ꎬ以及以节点15为中心的社区2ꎮ通过图4可以看出ꎬ本算法对该网络的划分结果与真实结果一致ꎮ4.4㊀美国大学生足球比赛网络社区划分实验结果㊀㊀美国大学生足球比赛网络由Newman和Girvan通过对美国大学生足球联赛2000赛季的比赛情况整理得出ꎮ该网络中的115个节点分别代表参加足球联赛的115支球队ꎬ网络中有613条边ꎬ每条边代表着两支球队曾经比赛过ꎮ这场联赛分为12个赛区ꎮ该网络的平均聚类系数为0.403ꎬ平均路径长度为2.507ꎬ平均度为21.322ꎬ符合小世界网络的参数范围ꎮ图5㊀美国大学生足球比赛划分结果㊀㊀本算法对美国大学生足球比赛网络的社区划分结果如图5所示ꎮ算法将数据集划分为12个社区ꎬ与真实网络中的社区数量一致ꎬ但其中有12个节点划分错误ꎮ具体划分结果如表1所示ꎬ其中ꎬ社区12的优先级最高节点划分错误ꎬ导致该社区的划分准确率最低ꎮ和前两个数据集有所不同ꎬ该数据集包含噪声节点ꎬ即ꎬ节点37㊁43㊁60㊁83㊁88ꎮ这些节点对应的球队属于特例球队ꎬ它们的参赛不符合赛制规则ꎬ对社区划分结果带来了一定影响ꎮ表1㊀美国大学生足球比赛网络各社区节点统计表4.5㊀实验结果比较为验证算法的可行性和有效性ꎬ实验将本文所提算法与其他两种经典算法对三种数据集的划分结果进行了对比ꎬ如表2所示ꎬQ值越大ꎬ代表该算法对社团的划分结果越好ꎮ在Zachary空手道俱乐部数据集和海豚社会关系数据集中ꎬ本文算法的Q值最高ꎬ社团划分结果最好ꎬ在美国大学生足球联赛数据集中ꎬGN算法Q值最高ꎮ表2㊀三种算法的模块性Q函数比较GN算法在美国大学生足球联赛数据集上虽然模块性函数最高ꎬ但只把该数据集分成了两个社区ꎬ而对于Zachary空手道俱乐部数据集ꎬ该算法划分社区数量正确ꎬ但有一个节点划分错误ꎮ本文所提算法在Zachary空手道俱乐部数据集和海豚社会关系数据集中ꎬ社区数量划分正确ꎬ且没有错误节点ꎬ在美国大学生足球联赛数据集中ꎬ社区数量划分正确ꎬ但有节点划分错误ꎮ实验结果表明ꎬ本文所提算法与GN算法和FN算法相比ꎬ可以良好的检测出网络中的社团结构ꎬ并具有良好的准确性ꎮ5㊀结束语本文针对当前基于节点相似性的网络社区划分方法存在的不足ꎬ提出了一种多层节点相似度的社区发现方法ꎬ用来对核心节点和其他节点进行相似度计算ꎬ并提出了小团体紧密程度对小团体进行合并ꎮ分别在三种真实网络上进行了实验ꎬ并与其他两种经典算法进行了对比ꎬ结果表明本文提出的算法具有质量高㊁算法简便等优点ꎬ是一种有效的算法ꎮ参考文献:[1]梁晋.大规模复杂网络的社区发现算法研究[D].太原:山西大学ꎬ2016.[2]滕彬.社会网络的社团发现算法研究[D].南京:南京邮电大学ꎬ2017.[3]赵中英ꎬ李超.大数据环境下复杂社会网络的社区发现方法研究综述[J].软件导刊ꎬ2016ꎬ15(12):164-167.[4]ZHANGWꎬGUANNꎬHUANGXꎬetal.Overlappingcommunitydetectionvialinkpartitionofasymmetricweightedgraph[C].InternationalConferenceonSecurityꎬPatternAnalysisꎬandCybernetics.IEEEꎬ2014:417-422.[5]CLAUSETAꎬNEWMANMEꎬMOOREC.Findingcom ̄munitystructureinverylargenetworks[J].PhysRevEStatNonlinSoftMatterPhysꎬ2004ꎬ70(2):066111.[6]WUYꎬCHAOPꎬYINGWꎬetal.AConicalAreaEvolu ̄tionaryAlgorithmBasedonModularityQforCommunityDetectionfromSignedNetworks[C].IEEEInternationalConferenceonComputationalScienceandEngineering.IEEEꎬ2017:57-62.[7]CHANGCSꎬLEEDSꎬLIOULHꎬetal.AProbabilisticFrameworkforStructuralAnalysisandCommunityDetec ̄tioninDirectedNetworks[J].IEEE/ACMTransactionsonNetworkingꎬ2018(99):1-16.[8]黄立威ꎬ李彩萍ꎬ张海粟ꎬ等.一种基于因子图模型的半监督社区发现方法[J].自动化学报ꎬ2016ꎬ42(10):1520-1531.[9]张泽华ꎬ段力畑ꎬ段富ꎬ等.基于局部结构特征的重叠社区挖掘研究进展[J].南京大学学报(自然科学)ꎬ2017ꎬ53(3):537-548.[10]仇丽青ꎬ陈卓艳.基于共同邻居相似度的社区发现算法[J].信息系统工程ꎬ2014(5):140-141.[11]许为ꎬ林柏钢ꎬ林思娟ꎬ等.一种基于用户交互行为和相似度的社交网络社区发现方法研究[J].信息网络安全ꎬ2015(7):77-83.[12]ZACHARYWW.AnInformationFlowModelforConflictandFissioninSmallGroups[J].JournalofAnthropologi ̄calResearchꎬ1977ꎬ33(4):452-473.[13]LUSSEAUDꎬSCHNEIDERKꎬBOISSEAUOJꎬetal.ThebottlenosedolphincommunityofDoubtfulSoundfea ̄turesalargeproportionoflong-lastingassociations[J].BehavioralEcology&Sociobiologyꎬ2003ꎬ54(4):396-405.[14]GIRVANMꎬNEWMANMEJ.CommunityStructureinSocialandBiologicalNetworks[J].Proc.NatlAcadSciUSAꎬ2002ꎬ99(12):7821-7826.[15]NEWMANMEJꎬGIRVANM.Findingandevaluatingcommunitystructureinnetworks[J].PhysicalReviewEStatisticalNonlinear&SoftMatterPhysicsꎬ2004ꎬ69(2):026113.作者简介:冯译萱(1994 )ꎬ硕士研究生ꎬ研究领域为复杂网络㊁舆情传播ꎻ张月霞(1978 )ꎬ博士ꎬ副教授ꎬ研究领域为移动通信ꎬ卫星通信和移动互联网ꎮ责任编辑:辛美玉收稿日期:2018-09-28。