CN112579831B - 基于SimRank全局矩阵平滑收敛的网络社区发现方法、装置及存储介质 - Google Patents
基于SimRank全局矩阵平滑收敛的网络社区发现方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112579831B CN112579831B CN202011290628.1A CN202011290628A CN112579831B CN 112579831 B CN112579831 B CN 112579831B CN 202011290628 A CN202011290628 A CN 202011290628A CN 112579831 B CN112579831 B CN 112579831B
- Authority
- CN
- China
- Prior art keywords
- node
- network
- community
- initial
- core node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 239000011159 matrix material Substances 0.000 title claims abstract description 43
- 238000003860 storage Methods 0.000 title claims abstract description 11
- 238000004364 calculation method Methods 0.000 claims description 17
- 238000010586 diagram Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 10
- 238000010606 normalization Methods 0.000 claims description 4
- 238000013016 damping Methods 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 3
- 238000009826 distribution Methods 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000004422 calculation algorithm Methods 0.000 description 45
- 230000006870 function Effects 0.000 description 10
- 230000000694 effects Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000000638 solvent extraction Methods 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 4
- 238000012804 iterative process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000010230 functional analysis Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Tourism & Hospitality (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- Software Systems (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Computing Systems (AREA)
- General Business, Economics & Management (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于SimRank全局矩阵平滑收敛的网络社区发现方法、装置及存储介质,方法包括:获取网络节点信息;计算网络中各节点的中心度指标;根据计算得到的节点中心度指标选择初始核心节点;利用SimRank函数迭代计算节点之间的相似度,以确定真正的核心节点;对于每个非核心节点,选择距离最近的真正核心节点,并加入该真正核心节点的社区集合,得到对于各真正核心节点的初始社区;计算不同初始社区之间的紧密度指标;根据初始社区之间的紧密度指标对初始社区进行合并,得到社区划分集合。本发明利用SimRank技术和网络的幂律分布特性实现高效率的社区发现。
Description
技术领域
本发明涉及数据挖掘技术领域,特别是一种基于SimRank全局矩阵平滑收敛的网络社区发现方法、装置及存储介质。
背景技术
社区发现是通过分析网络拓扑结构和网络节点的属性来研究出的某种集群的结构特征从而组成的一种网络节点集合,如何在复杂网络中找到社区结构已经成为许多领域的热门话题,包括社会学、生物信息学和物理学,属于同一个社区中的紧密联系的节点具有更大的可能性有着相同或相似的属性。例如,在同一个社交网络中的群体更可能具有共同的兴趣爱好或者背景;在万维网中形成的社区结构可能具有共同的主题和相关的页面;在细胞和遗传相关的生物或神经网络中,社区结构的形成可能暗示细胞存在相似特征。这些网络集合可以帮助简化整个网络的功能分析。
目前已有的社区发现方法大致分为传统方法、分裂方法、基于模块的方法、谱方法和动态方法等。分裂算法的思想是检测连接不同社区的顶点的边并将其删除,使集群间彼此断开。谱方法是根据图的特征矩阵、特征向量、特征值来发现社区。动态方法则采用图上的运动过程,例如旋转-旋转交互,随机行走和同步。虽然已有许多不同的社区发现方法被提出,但还有一些尚未解决的问题:当进行大规模的网络分析时,大多数算法效率低下且时间复杂度高,比如,针对在真实的大规模社交网络中节点与节点之间交互的特征信息,要实现收敛,对相似性矩阵进行迭代计算会消耗大量的时间。
名词解释
SimRank,基于有向图拓扑结构的计算图节点相似度的模型。它的主要思想为:如果两个对象(节点)被相似的对象引用(即有向图中不同节点的入边邻节点相似或相同),那么这两个节点也相似。SimRank方法是一种基于图的拓扑结构信息来衡量任意两个对象间相似程度的方法。
发明内容
本发明的目的是提供一种基于SimRank全局矩阵平滑收敛的网络社区发现方法、装置及存储介质,利用SimRank技术和网络的幂律分布特性实现高效率的社区发现。本发明采用的技术方案如下。
一方面,本发明提供一种网络社区发现方法,包括:
获取网络节点信息;
计算网络中各节点的中心度指标;
根据计算得到的节点中心度指标选择初始核心节点;
利用SimRank函数迭代计算节点之间的相似度,以确定真正的核心节点;
对于每个非核心节点,选择距离最近的真正核心节点,并加入该真正核心节点的社区集合,得到对于各真正核心节点的初始社区;
计算不同初始社区之间的紧密度指标;
根据初始社区之间的紧密度指标对初始社区进行合并,得到社区划分集合。
可选的,所述网络为互联网社交网络,网络节点为互联网社交网络中的用户或既有用户群组或经聚类得到的用户群组。当然本发明方法也可用于生物或神经网络,用来发现细胞存在的相似特性等。
可选的,所述计算网络中各节点的中心度指标,按照以下公式计算:
式中,Important(vi)、di皆表示节点i的中心度指标值,n表示网络的节点数量,aij表示节点i和节点j之间是否存在连接边,aij=1表示存在,aij=0表示不存在。
可选的,所述根据计算得到的节点中心度指标选择初始核心节点为:将中心度指标大于预设中心度指标阈值的节点作为初始核心节点。初始核心节点集合可表示为:
CenterSet={vi|Important(vi)≥τ}
其中,τ是为预设中心度指标阈值。如果设置的阈值更高,初始核心节点集合相对小;如果将其设置为较低,则初始核心节点集合比较大,因此阈值的合理设置将有利于真正核心点的更快速选择,但是,阈值的表换对确定最终的核心节点影响不大。
可选的,所述SimRank函数的数学表达式为:
式中,s(a,b)表示节点a与节点b之间的相似度,c为取值0到1之间的阻尼系数,一般取值范围0.6~0.8[7,12,37],I(a)表示节点a的入边邻节点集合,|I(a)|表示I(a)中元素的数量;
对于待发现社区的网络,定义其网络图为无向网络图G,无向网络图G的邻接矩阵为A,矩阵A的列归一化矩阵为Q,则相似矩阵S表示为:
S=(c·QTSQ)+(1-c)·I
式中,QT为向后转移矩阵的转置,I表示单位矩阵;
方法中,所述利用SimRank函数迭代计算节点之间的相似度,以确定真正的核心节点,包括:
设置初始相似矩阵为S0=I;
利用下述公式进行迭代计算,直至迭代收敛时,得到稳定相似矩阵:
S=(c·QTSkQ)+(1-c)·I
根据稳定相似矩阵确定真正的核心节点。
Jeh与Widom在其文献中提出:每个节点与自己相似度为1,设置初始SimRank矩阵为S0=I;根据该公式迭代计算,直至收敛。相似矩阵趋于稳定之后,通过S>α,α为某个阈值,就可以挑选出真正的核心节点,即社交网络中具有影响力的节点。
可选的,所述计算不同初始社区之间的紧密度指标为:对于任意两个不同社区Ci和Cj,两者的紧密度指标按照下式计算:
式中,Edgesinternal(Ci∪Cj)和Edgesexternal(Ci∪Cj)表示新的合并后的社区的内部边和外部边,Edgesinternal(Ci)和Edgesexternal(Ci)表示Ci社区的内部边和外部边。
可选的,根据初始社区之间的紧密度指标对初始社区进行合并为:将紧密度指标大于预设紧密度指标阈值的两个不同社区进行合并;
其中,所述预设紧密度指标阈值取值范围为1~2。
第二方面,本发明提供一种网络社区发现装置,包括:
网络节点信息获取模块,被配置用于获取网络节点信息;
中心度指标计算模块,被配置用于计算网络中各节点的中心度指标;
初始核心节点选择模块,被配置用于根据计算得到的节点中心度指标选择初始核心节点;
真正核心节点确定模块,被配置用于利用SimRank函数迭代计算节点之间的相似度,以确定真正的核心节点;
初始社区划分模块,被配置用于对于每个非核心节点,选择距离最近的真正核心节点,并加入该真正核心节点的社区集合,得到对于各真正核心节点的初始社区;
社区紧密度指标计算模块,被配置用于计算不同初始社区之间的紧密度指标;
以及,社区合并模块,被配置用于根据初始社区之间的紧密度指标对初始社区进行合并,得到社区划分集合。
第三方面,本发明公开一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如第一方面所述的网络社区发现方法。
有益效果
本发明利用SimRank计算节点之间的相似性,通过迭代计算直至收敛,而不是通过预定义的固定值。由于是核心节点的度决定收敛而非所有节点,因而加快了收敛的速度。另外,尽管提出的算法只是考虑核心节点,但是所有的节点都会参与迭代的过程,并且计算过程中已经参与过迭代的节点是不会重新计算的,从而加速了收敛过程。
附图说明
图1所示为为本发明方法流程示意图;
图2所示为利用本发明算法与其它算法进行社区发现得到的不同的网络中社区划分的模块度;
图3所示为利用本发明算法与其它算法进行社区发现得到的不同的网络中各算法运行的时间示意图。
具体实施方式
以下结合附图和具体实施例进一步描述。
实施例1
本实施例介绍一种网络社区发现方法,包括:
获取网络节点信息;
计算网络中各节点的中心度指标;
根据计算得到的节点中心度指标选择初始核心节点;
利用SimRank函数迭代计算节点之间的相似度,以确定真正的核心节点;
对于每个非核心节点,选择距离最近的真正核心节点,并加入该真正核心节点的社区集合,得到对于各真正核心节点的初始社区;
计算不同初始社区之间的紧密度指标;
根据初始社区之间的紧密度指标对初始社区进行合并,得到社区划分集合。
以上所述网络为互联网社交网络,网络节点为互联网社交网络中的用户或既有用户群组或经聚类得到的用户群组。当然本发明方法也可用于生物或神经网络,用来发现细胞存在的相似特性等。
以下具体介绍一种网络社区发现方法所涉及的内容。
在真实的社交网络交往过程中,人们的初始行为通常具有以下特征:存在着随机性,但是,随着时间的流逝,社会关系会趋于稳定状态,逐渐形成相对稳定的社会圈子,通常称这种现象为社区。受此现象观察启发,本发明采用SimRank算法来作为衡量社交网络节点的模型,来模拟社交网络中关系的相似性。
由于社交网络具有大量节点,通常,时间复杂度计算会随网络规模呈指数增长。为了降低计算的复杂性,本发明从两个方面来进行展开:首先,将社交网络视为粗粒度单位而不是细粒度的单元或节点,这意味着是可以进行社区聚类的;第二,提出了基于SimRank的矩阵收敛的概念,这是计算节点与节点的相似度所需要的;并且本发明提出的方法是不需要设置初始的社区数量,因而对核心节点的初始选择不敏感。
一)关于SimRank
一般地,使用G=(V,E)来表示一个网络图,其中V={v1,...,vn}和E={e1,...,en}分别表示节点集合和边的集合,图G的邻接矩阵为A,其中aij=1表示节点i和节点j之间存在连接的边,aij=0表示不存在。在这里图G被认为是无向网络图,所以邻接矩阵A是对称矩阵。d(i)=∑j aij表示节点i的邻接点的个数。
SimRank是Jeh与Widom于2003年提出的通过图G=(V,E)的拓扑结构衡量图中任意两个节点相似度的模型[7]。SimRank计算满足以下两条规则:(1)如果两个不同对象被相似对象引用,则这两个对象相似(递归定义);(2)每个对象与其自身相似度最高(基本情况)。
SimRank定义的数学表达式如下:
其中,c为取值0到1之间的阻尼系数,一般取值范围0.6~0.8[7,12,37],I(a)表示节点a的入边邻节点集合中元素的数量。
由于图G的邻接矩阵为A,矩阵A的列归一化矩阵Q,则相似矩阵S根据式(1)可表示为:
S=(c·QTSQ)+(1-c)·I (2)
其中QT为向后转移矩阵的转置,I表示单位矩阵,即将计算结果对角元素均取值为1。
上面的公式(1)可以用来引入迭代方法来计算:如果a≠b,则有s0(a,a)=1和s0(a,b)=0,对于k=0,1,2,...,设(i)sk+1(a,a)=1;(ii)如果或/>sk+1(a,b)=0;(iii)否则:
结果序列收敛到s(a,b),得到公式(1)的精确解。
对于公式2可变形为:
S(k+1)=(c·QTSkQ)+(1-c)·I (4)
Jeh与Widom在其文献中首先提出:每个节点与自己相似度为1,设置初始SimRank矩阵为S0=I;根据式(4)迭代计算,直至收敛,并且在其文献中证明了此算法收敛性。
二)选择核心节点
通常,网络由一些社区组成,并且每个社区都有一个核心节点,在此基础上提出合理的假设,只要核心节点可以到达其他社区,就可以考虑一个社区的所有节点可以到达另一个社区的所有节点,这意味着整个网络都是连接的。这种情况类似于首都和每个省份的大城市之间都有联系,所以全国各地的所有城市都是相互联系。多数情况下社交网络中的节点遵循幂律分布,因此只有极少数的节点互连着其它节点,称为核心节点。选择初始核心节点的方法至关重要,必须避免选择错误的核心节点并不错失真实的核心节点。
利用传统的衡量社交网络中节点重要性的指标有以下几种方法:度中心性、紧密度中心性、中介中心性和特征向量中心性。在本文中,采用度中心性作为最基本的指标来识别网络中的社区。这样做有两个原因:(1)计算度中心性比较简单;(2)度中心性和迭代过程中使用的矩阵是一致的。
注意到度中心性不仅反映了每个节点和其他节点的相关性,并且也与和网络规模相关,即网络中的节点数。随着网络大小的增加,度中心性的最大值也可能在增加,为了消除度中心性对网络规模的影响,定义节点i的重要性如下:
如果一个节点i满足Important(vi)≥τ,通过该公式选择出来的节点集合称为初始核心节点,初始核心节点集合定义为:
CenterSet={vi|Important(vi)≥τ} (6)
其中τ是一个预设阈值。
根据SimRank的特点,随着迭代趋于无穷大,矩阵不断趋于最终的稳定值。在迭代过程中,一个节点到另一个节点的集合在不断增加或逐渐稳定在一个较大的值,这表明目标节点更具有影响力,因此是真实的核心节点。因此,使用经典的度中心性进行度量,结合SimRank,解决选择初始核心节点集,如果设置的阈值更高,初始核心节点集合相对小;如果将其设置为较低,则初始核心节点集合比较大。但是,此更改对确定最终的核心节点影响不大。
三)选择社区合并
确定迭代的步数之后,可以确保矩阵迭代的稳定性,并且可以确定核心节点距离每个最近的非核心节点,然后将非核心节点放入其最近的核心节点所在的社区中。
最初的社区围绕核心节点形成,算法1中的算法需要进一步的聚集才能形成层次结构,涉及两个步骤:(1)选择两个要合并的社区并计算它们的相似性;(2)确定聚类过程是否应停止。由于传统衡量社区划分质量的指标,例如:模块Q,会涉及更多的计算复杂度。从这个角度来看,利用社区紧密度指标,以确定两个社区之间的相似性,定义如下:
其中Edgesinternal(Ci∪Cj)和Edgesexternal(Ci∪Cj)表示新的合并后的社区的内部边和外部边,Edgesinternal(Ci)和Edgesexternal(Ci)表示Ci社区的内部边和外部边,当Closeness(Ci,Cj)大于某个阈值时,将两个社区进行合并,一般将该阈值设置为1~2之间,根据不同的网络可适当调整该阈值。
四)以下以多个实验例验证本发明算法的可行性。
实验例使用了三个数据集进行分析:American College Football网络,Facebook网络,以及Deezer欧洲社交网络,如表1所示,American College Football网络是具有115个节点和613条边的小组织的网络;Facebook网络包含来自Facebook的“圈子”(或“朋友列表”),它是由4039个节点和88234条边组成的中等规模的社交网络;Deezer用户的社交网络的节点是来自欧洲国家的Deezer用户,边缘是他们之间的相互关注者关系,它是由28281个节点和92752条边组成的大规模网络。通过实验,将本发明算法和GN[24]以及Newman快速算法进行比较。
表1测试数据集
本发明算法的运行基于Intel Pentium四核处理器,带有8GB DDR3内存,Windows10操作系统和Python3的numpy图分析工具和matplotlib数据分析工具。
1)初始核心节点的选择
如前所述,选择初始核心节点的方法是使用度中心性阈值的标准化公式,该值的范围从0.0到1.0,0.0表示与任何节点都没有联系(例如一个孤点),1.0表示与每一个节点都有直接联系。在社会网络中,标准化的行为人的度中心性测量行为人在诸多关系中的参与程度。得到高分的行为人是网络中最显眼的参与者。如果标准化度中心性值越接近1.0,那么行为人在关系网络中的参与度越高。在American College Football网络中使用该方法确定了初始核心节点设置为{1,0,3,2,5,6,7,15,53,67,82,88,104,43},根据不同的阈值设定,虽然选出的核心节点个数不一样,但是,经过多步骤迭代,真正的核心节点仍然是节点7,51,18和节点43。尽管未选择节点51和节点18作为初始核心迭代计算后,但是经过迭代之后,真正的核心节点仍然节点7,51,18和节点43。在表2中,记录了选择不同的阈值对应的核心节点的个数以及最终确定的核心节点。
对于中等规模的网络Facebook网络来说,重复同样的方式进行测试,表3记录了不同的阈值的选择对于核心节点的影响,尽管初始核心节点不一样,但得到的最终核心节点始终是{8,0,58,351,688,107,726,1022,1375,1394,348,1594,1609,1680,351,171,2068,2427,2618,2727,352,3226,3303,3334,3405,1821,1825,2087,2088,3486,3559,3573,3582,3626,3639,3645,3687,3697,3703,3712,3804,3926,3955,1827,1830,3985,3996,3998,4000,4001,4002,4015,4018,4024,4028,4031,1858,1902,1915,1973,1978,1831,1993,2001,1843,2031},从实验的结果来看,本文提出的SGSC算法对于最终的核心节点的确认是不会受到任何影响的。
表2阈值的选择对于核心节点的影响(American College Football网络)
表3阈值的选择对于核心节点的影响(Facebook网络)
2)精确度
此处还设计了一个实验来评估算法的社区发现的能力,使用0、1、2、3,...作为American College Football网络、Facebook网络以及欧洲Deezer社交网络节点的编号,根据本发明方法,可以将该网络划分成12个社区,{3,5,10,11,40,52,72,74,81,84,98,102,107},{0,4,9,16,23,41,90,93,104},{1,25,33,37,45,89,103,105,109},{12,14,18,26,31,34,36,38,42,43,54,61,71,85,99},{46,49,53,67,73,83,88,110,114},{6,13,15,47},{44,48,57,66,75,86,91,92,97,112},{17,20,27,56,58,59,62,63,65,70,76,87,95,96,113},{24,28,69},{7,8,21,22,50,51,68,77,78,108,111},{19,29,30,35,55,79,80,82,94,101},和{2,32,39,60,64,100,106},和真实的American College Football网络社区划分相比,本发明方法对于社区的划分个数完全一致,并且对于相应的节点属于相应的社区也是划分一致。
对于中等规模的Facebook网络和欧洲的Deezer社交网络,表4和表5显示了这三种算法的社区划分结果以及模块度。从表4中可以看出,GN算法在中等规模的网络中已经无法得出聚类的结果,虽然本文提出的算法在社区划分的个数上面没有比Newman快速算法更接近真实的社区,但是划分出的社区模块度比Newman快速算法更好。从表5可以看出,随着网络规模的扩大,本文提出的算法显示出优越性,划分的社区结果更接近于真实的社区,算法的模块度也比Newman快速算法更优越。
表4Facebook网络中社区划分结果以及模块度
表5Deezer社交网络中社区划分结果以及模块度
同时,比较了在三种不同规模的网络中,本发明算法同GN算法和Newman快速算法的模块度,图2记录了在三种不同的网络中社区划分的模块度值的比较,可以发现GN算法在Facebook网络中已经无法聚类出社区了,因而它的社区模块度是为0,对于大规模的Deezer社交网络的社区模块度也同样为0。因此可以看出无论是在小规模American CollegeFootball网络中还是在大规模的Deezer社交网络中,本文提出的算法划分出的社区模块度是优于GN算法和Newman快速算法划分出的社区模块度的。
虽然本文提出的算法最终对于社区划分的模块度的值不是非常理想,但是从图3中还是可以明显的看出,由于GN算法在中等规模的Facebook网络中和Deezer网络中已无法聚类出社区,所以GN算法运行的时间必然是超过10000s,虽然在小规模网络中,Newman快速算法的运行时间复杂度和本文提出的本发明算法几乎相差不大,但是随着网络规模的增大,本文提出的算法的优势逐渐体现,在大规模Deezer社交网络中,本发明算法明显由于Newman快速算法。
综上,本发明提出了一种基于SimRank的全局矩阵平滑收敛的社区发现算法,利用SimRank的方法计算节点与节点之间的相似性,基于矩阵的迭代收敛来聚类出所有的初始社区,最初的社区划分利用核心节点代表全局结构信息,仅仅是合并核心节点周围的节点,直接使用局部信息以迅速形成小型社区,而无需重新计算节点属于哪个社区,从而大大改善算法的效率。
实施例2
与实施例1基于相同的发明构思,本实施例介绍一种网络社区发现装置,包括:
网络节点信息获取模块,被配置用于获取网络节点信息;
中心度指标计算模块,被配置用于计算网络中各节点的中心度指标;
初始核心节点选择模块,被配置用于根据计算得到的节点中心度指标选择初始核心节点;
真正核心节点确定模块,被配置用于利用SimRank函数迭代计算节点之间的相似度,以确定真正的核心节点;
初始社区划分模块,被配置用于对于每个非核心节点,选择距离最近的真正核心节点,并加入该真正核心节点的社区集合,得到对于各真正核心节点的初始社区;
社区紧密度指标计算模块,被配置用于计算不同初始社区之间的紧密度指标;
以及,社区合并模块,被配置用于根据初始社区之间的紧密度指标对初始社区进行合并,得到社区划分集合。
以上各功能模块的具体功能实现参考实施例1中的相关具体内容。
实施例3
与实施例1和2基于相同的发明构思,本实施例介绍一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如实施例1所述的网络社区发现方法。具体也可实现为实施例2的一种网络社区发现装置。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (5)
1.一种网络社区发现方法,其特征是,包括:
获取网络节点信息,其中,所述网络为互联网社交网络,网络的节点为互联网社交网络中的用户或既有用户群组或经聚类得到的用户群组,节点之间的连接边表示节点对应的用户或用户群组之间的相互关注者关系;
计算网络中各节点的中心度指标,其中节点的中心度指标反应每个节点对应的用户或用户群组与其他用户或用户群组的相关性;
根据计算得到的节点中心度指标选择初始核心节点;
利用SimRank函数迭代计算节点之间的相似度,以确定真正的核心节点;
对于每个非核心节点,选择距离最近的真正核心节点,并加入该真正核心节点的社区集合,得到对于各真正核心节点的初始社区;
计算不同初始社区之间的紧密度指标;
根据初始社区之间的紧密度指标对初始社区进行合并,得到社区划分集合;
其中,所述计算网络中各节点的中心度指标,按照以下公式计算:
式中,Important(vi)、di皆表示节点i的中心度指标值,n表示网络的节点数量,aij表示节点i和节点j之间是否存在连接边,aij=1表示存在,aij=0表示不存在;
所述SimRank函数的数学表达式为:
式中,s(a,b)表示节点a与节点b之间的相似度,c为取值0到1之间的阻尼系数,I(a)表示节点a的入边邻节点集合,|I(a)|表示I(a)中元素的数量;
对于待发现社区的网络,定义其网络图为无向网络图G,无向网络图G的邻接矩阵为A,矩阵A的列归一化矩阵为Q,则相似矩阵S表示为:
S=(c·QTSQ)+(1-c)·I
式中,QT为向后转移矩阵的转置,I表示单位矩阵;
所述利用SimRank函数迭代计算节点之间的相似度,以确定真正的核心节点,包括:
设置初始相似矩阵为S0=I;
利用下述公式进行迭代计算,直至迭代收敛时,得到稳定相似矩阵:
S=(c·QTSkQ)+(1-c)·I
根据稳定相似矩阵确定真正的核心节点;
所述计算不同初始社区之间的紧密度指标为:对于任意两个不同社区Ci和Cj,两者的紧密度指标按照下式计算:
式中,Edgesinternal(Ci∪Cj)和Edgesexternal(Ci∪Cj)表示新的合并后的社区的内部边和外部边,Edgesinternal(Ci)和Edgesexternal(Ci)表示Ci社区的内部边和外部边。
2.根据权利要求1所述的方法,其特征是,所述根据计算得到的节点中心度指标选择初始核心节点为:将中心度指标大于预设中心度指标阈值的节点作为初始核心节点。
3.根据权利要求1所述的方法,其特征是,根据初始社区之间的紧密度指标对初始社区进行合并为:将紧密度指标大于预设紧密度指标阈值的两个不同社区进行合并;
其中,所述预设紧密度指标阈值取值范围为1~2。
4.一种基于权利要求1-3任一项所述方法的网络社区发现装置,其特征是,包括:
网络节点信息获取模块,被配置用于获取网络节点信息,其中,所述网络为互联网社交网络,网络节点为互联网社交网络中的用户或既有用户群组或经聚类得到的用户群组;
中心度指标计算模块,被配置用于计算网络中各节点的中心度指标;
初始核心节点选择模块,被配置用于根据计算得到的节点中心度指标选择初始核心节点;
真正核心节点确定模块,被配置用于利用SimRank函数迭代计算节点之间的相似度,以确定真正的核心节点;
初始社区划分模块,被配置用于对于每个非核心节点,选择距离最近的真正核心节点,并加入该真正核心节点的社区集合,得到对于各真正核心节点的初始社区;
社区紧密度指标计算模块,被配置用于计算不同初始社区之间的紧密度指标;
以及,社区合并模块,被配置用于根据初始社区之间的紧密度指标对初始社区进行合并,得到社区划分集合。
5.一种计算机可读存储介质,其上存储有计算机程序,其特征是,该计算机程序被处理器执行时,实现如权利要求1-3任一项所述的网络社区发现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011290628.1A CN112579831B (zh) | 2020-11-18 | 2020-11-18 | 基于SimRank全局矩阵平滑收敛的网络社区发现方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011290628.1A CN112579831B (zh) | 2020-11-18 | 2020-11-18 | 基于SimRank全局矩阵平滑收敛的网络社区发现方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112579831A CN112579831A (zh) | 2021-03-30 |
CN112579831B true CN112579831B (zh) | 2024-04-12 |
Family
ID=75122796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011290628.1A Active CN112579831B (zh) | 2020-11-18 | 2020-11-18 | 基于SimRank全局矩阵平滑收敛的网络社区发现方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112579831B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105512242A (zh) * | 2015-11-30 | 2016-04-20 | 浙江工业大学 | 一种基于社会网络结构的并行推荐方法 |
CN105574541A (zh) * | 2015-12-14 | 2016-05-11 | 天云融创数据科技(北京)有限公司 | 一种基于紧密度排序的网络社区发现方法 |
CN108009933A (zh) * | 2016-10-27 | 2018-05-08 | 中国科学技术大学先进技术研究院 | 图中心性计算方法及装置 |
KR20180137386A (ko) * | 2017-06-15 | 2018-12-27 | 한양대학교 산학협력단 | 커뮤니티 검출 방법 및 커뮤니티 검출 프레임워크 장치 |
CN110138723A (zh) * | 2019-03-25 | 2019-08-16 | 中国科学院信息工程研究所 | 一种邮件网络中恶意社区的确定方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080270038A1 (en) * | 2007-04-24 | 2008-10-30 | Hadi Partovi | System, apparatus and method for determining compatibility between members of a social network |
-
2020
- 2020-11-18 CN CN202011290628.1A patent/CN112579831B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105512242A (zh) * | 2015-11-30 | 2016-04-20 | 浙江工业大学 | 一种基于社会网络结构的并行推荐方法 |
CN105574541A (zh) * | 2015-12-14 | 2016-05-11 | 天云融创数据科技(北京)有限公司 | 一种基于紧密度排序的网络社区发现方法 |
CN108009933A (zh) * | 2016-10-27 | 2018-05-08 | 中国科学技术大学先进技术研究院 | 图中心性计算方法及装置 |
KR20180137386A (ko) * | 2017-06-15 | 2018-12-27 | 한양대학교 산학협력단 | 커뮤니티 검출 방법 및 커뮤니티 검출 프레임워크 장치 |
CN110138723A (zh) * | 2019-03-25 | 2019-08-16 | 中国科学院信息工程研究所 | 一种邮件网络中恶意社区的确定方法及系统 |
Non-Patent Citations (1)
Title |
---|
Micro-blog user community discovery using generalized SimRank edge weighting method;Jinshan Qi et al;《PLOS ONE》;20180507;第1-21页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112579831A (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10120956B2 (en) | Methods and systems for distributed computation of graph data | |
Zhao et al. | A comparative study on community detection methods in complex networks | |
Gui et al. | A community discovery algorithm based on boundary nodes and label propagation | |
Zhang et al. | A social community detection algorithm based on parallel grey label propagation | |
Mincer et al. | Application of social network analysis to the investigation of interpersonal connections | |
CN103838803A (zh) | 一种基于节点Jaccard相似度的社交网络社团发现方法 | |
CN104077723A (zh) | 一种社交网络推荐系统及方法 | |
CN107784327A (zh) | 一种基于gn的个性化社区发现方法 | |
Gutierrez et al. | Fuzzy Measures: A solution to deal with community detection problems for networks with additional information | |
Bi et al. | MM-GNN: Mix-moment graph neural network towards modeling neighborhood feature distribution | |
Du et al. | Community detection in complex networks | |
Meena et al. | A survey on community detection algorithm and its applications | |
CN112579831B (zh) | 基于SimRank全局矩阵平滑收敛的网络社区发现方法、装置及存储介质 | |
CN109255433B (zh) | 一种基于相似性的社区检测的方法 | |
CN103761298A (zh) | 一种基于分布式架构的实体匹配方法 | |
CN109993338B (zh) | 一种链路预测方法及装置 | |
Qiao et al. | Improving stochastic block models by incorporating power-law degree characteristic | |
Huang et al. | Pp-dblp: Modeling and generating attributed public-private networks with dblp | |
Bhat et al. | A density-based approach for mining overlapping communities from social network interactions | |
Wang et al. | Representation learning for spatial graphs | |
Tang et al. | An efficient method based on label propagation for overlapping community detection | |
CN109993313A (zh) | 样本标签处理方法及装置、社群划分方法及装置 | |
CN115037629B (zh) | 一种基于圈结构的网络多传播源选择方法 | |
Li et al. | I/O Efficient Early Bursting Cohesive Subgraph Discovery in Massive Temporal Networks | |
CN117556095B (zh) | 图数据分割方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |