一种基于核心成员识别的社区发现方法与流程

文档序号:14911374发布日期:2018-07-10 23:30阅读:714来源:国知局

本发明涉及一种基于核心成员识别的社区发现方法。



背景技术:

社会网络是指由行动者和他们之间的联系所构成的集合,社会网络通常会呈现出小团体的特性,即社区。对于虚拟社交网络的分析结果可以作为现实社会网络的一种映射。因此,社区发现技术作为社会网络分析的关键技术,越来越受到学者们的关注。但是,目前的社区发现算法仍存在着社区发现质量不高或算法运行效率较低等亟待解决的问题。

现有的社区发现算法,多为通过分析每个用户的信息,从中提取特征词,以一个用户为基准计算其他用户的相似度的方式来实现。其主要思路是随机选取一个用户为基准计算相似度,忽略了核心成员在社区划分准确性中存在的作用。或者在一个社区网络中,根据所要发现社区的规模范围划定一个搜索区域,在所述的搜索区域内根据节点的邻居节点数目做剪枝操作。这类方法类似于基于边中介(Edge Btweeness)概念的分割方法——GN算法,但是GN算法时间复杂度较大不适于大规模的网络。



技术实现要素:

为了克服现有技术的上述缺点,本发明提供了一种基于核心成员识别的社区发现方法,利用中介中心性作为核心成员的衡量标准,并通过改进的CNM算法以核心成员为中心进行聚类,将看似无规律的数据成员根据其中的联系划分为具备某种相同特性的社区团体。本发明可以在大量繁杂的数据中更高效准确地识别出核心成员并划分社区结构,可以使数据处理更加有针对性,无论是从配置资源还是从信息处理方面,降低人力成本和资源成本,做到有的放矢。

本发明解决其技术问题所采用的技术方案是:一种基于核心成员识别的社区发现方法,包括如下内容:首先对网络中的节点进行基于节点中介中心值的核心成员识别,然后进行初始聚类,根据节点在网络中作用的大小形成初始的社会网络结构;再将初始聚类的节点看作一个节点,对节点间的相似度矩阵M降维,形成新的相似度矩阵M’,代替模块度增量矩阵作为CNM算法的输入。

与现有技术相比,本发明的积极效果是:

1、对核心成员的识别为初始聚类提供了条件,经过初始聚类后的社区,在计算节点间相似度时可以通过降维缩小矩阵规模,缩短算法损耗的时间。

2、核心成员识别算法采用了基于广度优先搜索的快速中介中心性计算方法,其空间复杂度和实践复杂度均低于传统算法。

3、基于核心成员识别的社区发现算法,可以快速定位社区网络中的重要成员,便于锁定目标,确定群体性质,增强资源利用的针对性。

4、该专利的思想是首先对网络中的节点进行核心成员识别并在此基础上进行初始聚类,根据节点在网络中作用的大小形成初始的社会网络结构,防止较小社区无法发现的情况,有利于社会网络结构合理的划分。

附图说明

本发明将通过例子并参照附图的方式说明,其中:

图1节点对的最短路径示意图;

图2为Zachary网络核心成员三维示意图;

图3为改进的CNM算法的基本流程示意图;

图4为NCNM算法流程图。

具体实施方式

本发明提出了一种基于核心成员识别的社区发现方法,分别提出了基于节点中介中心性来衡量核心成员的算法和改进的CNM算法。通过首先对核心成员进行识别,打破了传统的计算网络节点相似度的方式,将核心成员与聚类算法相结合,提出了一种更高效的社区发现方式。

在社会学领域中,将社会网络中的每一个成员看作是一个节点,对节点之间的关系属性进行研究,并提出了节点中心性的概念来衡量节点的重要性。判断一个成员是否为核心成员,首先要判断该成员的节点中心性。在社会网络分析学中,定义了节点度中心性、接近中心性和中介中心性等多种衡量节点中心性的指标。利用这些指标可以判断节点在网络中的重要性大小,从而识别出社会网络中的核心成员。

中介中心性是根据网络中的节点之间的最短路径所要经过某一节点的概率来定义的。例如在网络中的节点间信息传播过程中,必须要途经某一节点,则可以表明该节点在网络中信息传递时的重要性很高,处于较为中心的地位。以下简称为BC值,无向网络节点的BC值可以用如下公式计算:

CB(v)=∑σst(v)/σst

σst表示节点s到节点t的最短路径数,σst(v)表示最短路径中必须经过节点v的路径的数目。BC值刻画的侧重点是网络中的行动者对他人的控制能力。BC值介于0和1之间,当为0时表示该节点对其他节点没有控制作用,当为1时表示该节点可以完全控制其他节点,任意两点之间的联络都必须经过此节点。

在BC值的计算公式中,σst表示节点s到节点t的最短路径数,σst(v)表示最短路径中必须经过节点v的路径的数目。定义网络中节点对<s,t>对节点v的依赖值为:

如图1所示,根据Bellman准则有:如果节点v∈V位于节点对s,t∈V的最短路径上,那么d(s,t)=d(s,v)+d(v,t)。也就是说,节点s到节点v和节点v到节点t之间的距离也是最短路径。由此可以给出节点s到节点t的最短路径中经过节点v的最短路径的数目:

结合BC值的计算公式可得出,节点v的中介中心性是网络中所有节点对儿对节点v的依赖值之和。显然,计算网络的节点的中介中心性,需要主要的两大步骤:

1)计算网络中节点之间的最短路径数目。

2)计算网络中每一节点的节点对依赖值之和。

中心性是衡量网络中节点重要性的一项重要的指标,但计算代价却相当高。因此本专利提出一种基于广度优先搜索的节点中介中心性算法(FBC算法),算法的流程描述如下:

输入:网络图G的邻接矩阵。

输出:网络节点与其中介中心值(BC值)的对应列表。

1.初始化网络中所有节点的BC值为0,取一节点s作为源节点。

2.初始化存储源节点的堆S,广度优先搜索队列Q和存储后继节点集合的列表数组P[w]。

3.广度搜索算法计算节点对的最短路径数目σst。

4.如果Q不为空,取出Q中任意一节点v压入S,v的后继节点加入P[w]。

5.判断s到所有后继节点w的最短路径是否经过v,即d(s,w)=d(s,v)+d(v,w),如果是则计算经过v的最短路径数σst(v)。

6.从S中取出该节点v,取出v的前序节点集合w’。

7.按无向网络节点的BC值计算公式计算节点v的BC值。

8.重复上述过程,直到遍历完图中所有源节点。

通过以上计算,可以计算出网络中节点的BC值,BC值越大,说明节点在网络中处于核心地位,即核心成员。反之,则处于边缘地位,较为孤立。如果一个节点的BC值,大于所有邻居节点的BC值,则说明该节点处于核心地位。但是,在紧密度高的网络中,这样的方法可能会出现网络中某个区域核心节点过于集中而其他区域的核心节点过于稀疏的情况。这样不利于社区结构的划分。所以引入了距离阈值(Distance Threshold),以下简称为DT值。由于研究对象为无权网络,网络中每条边的权值均为1,所以DT值即为节点之间最短路径。规定只有在DT值内的拓扑网络中中介中心性最大的节点为网络中的局部核心节点。

综上所述,基于节点中介中心值的核心成员识别算法流程如下:

输入:图G的邻接矩阵A,距离阈值DT

输出:核心成员表CoreUser和非核心成员表NoCoreUser

1.基于广度优先搜索算法计算图G中节点之间的最短路径

2.利用快速的中介中心值计算方法(FBC算法)计算节点的BC值

3.记Max为图G中最大BC值,Min为最小BC值

4.BC值标准化计算BC(i)=(BC(i)-Min)/(Max-Min)

5.读取DT值

6.对于每一个节点i,如果BC(i)>BC(j),其中节点j距离节点i的距离小于DT,则i标记为core,移入CoreUser。否则,移入NoCoreUser。

以真实社交网络Zachary空手道俱乐部数据集为数据源进行社区核心成员识别,该网络为一个包含34个节点和78条边的有向无权网络,在真实情况下分为以核心成员为中心的两个社区。将节点的位置与BC值绘制成三维曲面图形象的表示核心成员,如图2所示。

CNM算法是一种基于贪心策略的凝聚式层次聚类算法。CNM算法定义了三种数据结构:模块度增量矩阵,最大堆和辅助向量。为了克服CNM算法的局限性,提出了基于相似度矩阵的CNM算法,并结合基于核心成员识别的初始聚类算法,称为NCNM算法。NCNM算法的基本思想是首先对网络中的节点进行核心成员识别并在此基础上进行初始聚类,根据节点在网络中作用的大小形成初始的社会网络结构,防止较小社区无法发现的情况,有利于社会网络结构合理的划分。

在NCNM算法中,基于核心成员识别的初始聚类后,把初始聚类的节点看作一个节点,对节点间的相似度矩阵M降维,形成新的相似度矩阵M’,作为社区发现算法的输入。其中的降维过程是这样的:首先将初始聚类到一个社区的节点标记为C,然后将此社区中的所有节点视为一个节点,记为k。删除原相似度矩阵中C中节点的行与列,添加新列,即M[i][k]。|C|表示社区C中节点的数目。相似度矩阵更新计算公式定义如下:

经过降维后的相似度矩阵代替原本的模块度增量矩阵作为CNM算法的输入,考虑了网络节点间的结构和相似性,改进的CNM算法的基本流程示意图如图3所示。

NCNM算法流程描述如下:

输入:初始社区划分后的结构C1,C2,C3…,相似度矩阵M

输出:社区划分结果节点集合CommunitySet,模块度和社区个数,最大模块度

1.初始化网络中的节点。将初始划分的社区C1,C2,C3…分别看作一个社区,将未被划分的孤立节点也视为一个社区,初始模块度为0。

2.对相似度矩阵M按照更新计算公式进行降维,计算M’矩阵。

3.初始化最大堆H,存储M’矩阵的最大值。

4.取H的堆顶元素Sij,合并对应的行和列,更新M’矩阵与最大堆H。

5.计算此时的模块度Q1。

6.计算与前一次合并的社区模块度Q0差值。如果Q1-Q0<0,则算法执行结束,输出社区划分结果。否则执行4-6步,并将此时Q1的值赋为Q0。

NCNM算法流程图如图4所示。

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