文献引用格式:冯译萱ꎬ张月霞.基于核心节点的社区发现算法[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。