传播过程中信号缺失的层次聚类社区发现算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

传播过程中信号缺失的层次聚类社区发现算法
康茜;李德玉;王素格;冀庆斌
【摘要】社区发现是社会网络分析的一个基本任务,而社区结构探测是社区发现
的一个关键问题。

将社区结构中的结点看作信号源,针对信号传递过程中存在信号缺失情况,提出了一种层次聚类社区发现算法。

该算法通过度中心性来度量节点接收信号的概率,用于量化节点接受信号过程中的缺失值。

经过信号传递,使网络的拓扑结构转化为向量间的几何关系,在此基础上,使用层次聚类算法用于发现社区。

为了验证SMHC算法的有效性,通过在三个数据集上与SHC算法、CNM算法、GN算法、Similar算法进行比较,实验结果表明,SMHC算法在一定程度上提高了社区发现的正确率。

%Community identification is a basic task of social network analysis, meanwhile the community structure detec-tion is a key problem of community identification. Each node in the community structure is regarded as the signal source. A hierarchical clustering community algorithm is proposed in order to settle the problem of signal missing in the process of signal transmission. The algorithm measures the probability of receiving signals of nodes by degree centrality to quantify
the signal missing values. After the signal transmission, the topology of the network is transformed into geometric relation-ships among the vectors. On the basis, the hierarchical clustering algorithm is used to find the community structure. In order to validate the proposed method, this paper compares it with SHC algorithm, CNM algorithm, GN algorithm and Similar algorithm. Under three real networks, the Zachary Club, American Football
and Netscience, the experimental results indi-cate that SMHC algorithm can effectively improve precision.
【期刊名称】《计算机工程与应用》
【年(卷),期】2015(000)009
【总页数】7页(P201-206,216)
【关键词】社区发现;信号传播;信号缺失;度中心性;层次聚类
【作者】康茜;李德玉;王素格;冀庆斌
【作者单位】山西大学计算机与信息技术学院,太原 030006;山西大学计算机与信息技术学院,太原 030006; 山西大学计算智能与中文信息处理教育部重点实验室,太原 030006;山西大学计算机与信息技术学院,太原 030006; 山西大学计算智能与中文信息处理教育部重点实验室,太原 030006;山西大学计算机与信息技术学院,太原 030006
【正文语种】中文
【中图分类】TP393
1 引言
真实世界中的许多系统都可以用网络来表示,例如,WWW的链接关系、Facebook中的好友关系、食物链网络、社会关系网络等[1]。

一般来说,一个网络是由一个顶点集和一个边集构成。

对于社会关系网络,现实生活中的每个个体是一个顶点,与社会网络中的其他个体共同构成顶点集,个体之间的关系构成网络边集合。

个体可以根据兴趣爱好组成不同的圈子、小组、群体等。

例如,微信中的朋
友圈、微博中相互关注的好友等[2]。

在网络系统的研究中,人们把个体视为节点,关系视为边,所组成的群体称之为社区(Community)。

社区发现是社会网络分析的一个基本任务,它有助于其他社会计算任务的实现,并且可应用于许多实际问题的求解。

目前,社区发现已被广泛应用于社会网络、蛋白质作用关系网络、Web网络、新陈代谢网络等领域。

它可以利用用户的相似兴趣,实现社会网络中的客户划分,将产品推荐给相关客户,从而提高交易的成功率[3-4];通过对互联网位置相近的用户进行聚类,可对不同的人群提供个性化服务;同样,对于大型网络的聚类,可以改善数据的存储结构,使其易于查询[5]。

目前,社区检测算法大致分为基于优化思想的算法、基于谱思想的算法、层次聚类的算法等[6]。

最经典的算法有K-L算法、极值优化算法;谱平分法和基于标准矩
阵的谱方法;层次聚类算法最经典的是基于边介数节点分裂思想的GN算法[7]、
基于凝聚思想的Newman贪婪算法(CNM算法)[8]和相似性度量的凝聚算法(Similar算法)[9]。

本文设计了基于凝聚思想的算法,初始时将网络中的每个节点看成是一个单独的社区,设置一定的条件,将满足条件的节点合并,以此循环,直到所有的节点都在一个社区为止。

Hu[10]提出了一种通过信号在网络上的传播来检测社区结构的方法(Signal算法)。

首先对网络中的节点进行信号传递处理,将一个具有n个节点的网络利用n 维向量空间表示,然后采用K-means聚类方法,对n维向量进行聚类,得到网络的分区。

文献[11]中提出用信号传递和层次聚类的思想来检测社区(SHC算法)。

本文借鉴Hu[10]提出的信号传递过程,同时考虑到信号传递过程中所产生的信号
缺失情况,采用基于度中心性的信号传递和层次聚类方法对网络进行划分,最后,通过网络数据集对此方法进行验证。

2 基于节点相似性的聚类算法
层次聚类方法主要根据节点之间的相似性度量对节点进行合并或者分割,如何构造
节点之间的相似性度量,是社区发现需要解决的关键问题之一。

2.1 节点的向量化和相似性度量
在文献[10]中提出一种信号传递方法:将一个具有m个节点的网络视为一个系统,系统中的顶点集V={V1,V2,…,Vm}(i=1,2,…,m)中的个体均具有发送、接受和记录信号的功能,将信号传递给自身和其邻接节点,信号传递过程用公式表示如下:
其中,A为邻接矩阵,T为迭代的次数。

网络中的节点经过信号传递后,其空间的拓扑信息转化为向量空间信息,这样,可以通过空间距离计算相似度。

相似性度量采用夹角余弦公式,见公式(2)所示,其中 i=1,2,…,m;j=1,2,…,m 。

由公式(2)可知,两个节点之间的夹角余弦r(Vi,Vj)的值越大,即两个节点的向量积越大,说明节点越相似,它倾向于在一个社区中。

2.2 信号缺失度量
节点信号在传递过程中由于外界干扰可能引起信号缺失,即当节点i将信号传递给j时,节点 j将按照一定的概率值接收来自节点i发送的信号。

一个节点的重要性
与其邻接节点的数量有关系,一个节点的度越大,该节点越显得重要,节点i的度中心性C(vi)可以用公式(3)来定义:
将节点 j接收节点i发送信号的概率定义如下:
其中,di表示节点i的度,m表示顶点集V中的节点的总数量。

设信号缺失矩阵 P={P1,P2,…,Pm}(i=1,2,…,m),根据公式(4),定义
缺失矩阵中的每个元素为:Pi=p(j,i)Ai,其中 Pi={Pi1,Pi2,…,Pim}。

网络的邻接矩阵为:
若节点i、j存在连边,则 aij=1,当i=j时,aij=0。

经过信号传递后的矩阵定义为:
在公式(5)中,经过T次传递后,得到顶点集V′={V1', V2',…, Vm'} ,其
中 Vi'={vi1', vi2',…, vim'}(i=1,2,…,m),为了得到它的相对影响量,将
其标准化为Ui={ui1,ui2,…,uim}(i=1,2,…,m),其中,Ui表示节点i对网络的影响程度,从而将网络的拓扑结构转化为m维向量的几何关系。

存在信号缺失的信号传递过程如图1。

图1 存在信号缺失的信号传递过程
定义si为节点所拥有的信号量,在图1的(1)中赋予节点4一个初始信号值。

在(2)中,节点4将信号传递给它的邻接节点后,使得节点1、2、3、5、6均拥
有一个信号值。

在(3)中,以节点1为例,当T=2时,节点1的信号量
s1=s1+p(2,1)s2+p(3,1)s3+p(4,1)s4,在不考虑信号缺失的情况下,节点1
的信号值s1'=s1+s2+s3+s4。

由于节点接收信号存在不同的概率,则
Δs(Δs=s1'-s)表示节点在两种情况下拥有的信号量的差值,即节点未接收到的信号,也就是信号传递过程中的信号缺失量。

3 基于模块度的层次聚类社区发现
对于层次聚类的方法,如何恰当地选择分裂点是一个关键问题。

目前关于社团发现算法中社区划分好坏的标准采用模块度[12]来度量。

3.1 模块度
模块度是一种对于网络划分质量的度量。

在本文算法中,采用如下模块度计算公式
[1]。

在公式(6)中,didj/2m表示节点i和节点 j之间边的期望值,di、dj分别表示
节点i和节点 j的度。

由(Aij-didj/2m)可知,节点i和节点 j之间的实际连边程度
和其所期望的连边数量之间存在差别,模块度可以定量地表示社区结构的强弱[7]。

3.2 基于模块度的层次聚类社区发现
将信号传递和层次聚类相结合,设计社区发现SMHC算法如下:
输入:网络G(V,E)
输出:G(V,E)的层次聚类树图
算法过程:
步骤1m=|V|,将G(V,E)表示成邻接矩阵,利用公式(5)得到 T 次传递后的顶
点集V={V1,V2,…,Vm}(Vi={vi1,vi2,…,vim}i=1,2,…,m) ,转化为
标准形式 Ui={ui1,ui2,…,uim}(i=1,2,…,m)。

步骤2构造层次聚类树过程
步骤2.1若G中的顶点数m≤0,执行步骤3;
步骤2.2利用公式(2),计算G中任意两个顶点i,j的相似度 r(Vi,Vj);
步骤2.3选择相似度最大的r(Vs,Vt),合并两个顶点s和t;
步骤2.4m=m-1;
步骤2.5计算合并后的网络G的模块度值Q;
步骤2.6将合并的结果保存到层次聚类树中。

步骤3在步骤2中,根据合并过程中所有模块度值Q,可得到其对应的曲线图。

由顶点的合并顺序得到层次聚类图,其中,每层对应一个模块度。

在所有的模块度值中选取最大值,在其对应处对树图进行切割,得到网络的划分。

步骤4算法结束
利用SMHC算法,以Karate Club数据集为例,所得到的模块度曲线图和层次聚类图如图2所示。

图2 层次聚类树图和模块度曲线
说明:在图2中,左侧,纵轴的高度代表了当前聚类中两个子节点之间的距离,
横轴表示节点相互合并的顺序。

右侧表示模块度的曲线图。

由图2可知,模块度的值在某一时间点达到最大,则此时间点所对应的网络结构
即为划分的最佳社区结构。

在模块度最大值的位置对层次树进行切割,可得到社区划分的结果。

4 数据集与经典算法
4.1 人工数据集
由文献[7],人工数据集规则为:每一个网络都由128个节点构成,分为4个社区,每一个社区包括32个节点。

每个节点随机生成16个连接,其中有Zout个连接
社区间的节点,剩下16-Zout个连接社团内部的节点。

本文参考文献[13],令Zout∈{1,2,…,8},当Zout=1时,社区内连接最紧密,社区结构最明显;当Zout=8时,每个点在社区内外的连接数相同,社区结构不
明显。

Zout越大,社团结构越模糊,实验以最终划分结果与真实划分的准确率作
为评价指标。

由于节点之间的连接是随机生成的,选择10次划分的平均值作为实验的最终数据。

4.2 网络数据集
(1)标准数据集
下列两个数据集有明确的划分结果。

称之为标准数据集。

①Karate Club网络是社会网络分析中的经典数据集。

Club数据集包含34个节点和78条边[14]。

②American Football网络是参加美国2000年足球赛的高校代表队之间所形成的
网络,若两个节点之间有连边则表示其对应的两支球队之间至少曾经有过一场比赛[13]。

(2)Netscinece网络是Newman等人从康奈尔大学“高能量”物理学科的电子文献中构造的科研和作者网络,此网络中包括了1 589位作者[7]。

4.3 经典算法
GN算法[7]:采用逐次移除介数中心性最大边的方法。

CNM算法[8]:采用快速
贪婪的规则合并划分方法。

Similar算法[9]:采用一种新的局部相似性度量方法,应用相似性指标的一个减函数和Ward聚类方法。

Signal算法[10]:采用信号传
递和K-means聚类的算法。

SHC算法[11]:采用信号传递和层次聚类算法(不考虑信号缺失的情况)。

5 实验结果及分析
为了测试本文所提出算法的有效性及所划分社区的正确率进行实验1~实验6。

参考文献[10],SMHC算法中公式(5)中T=3。

5.1 实验1:基于人工数据集
为了验证SMHC算法在人工数据集的有效性,将其与Signal方法、SHC算法进
行比较,实验结果如图3所示。

图3 三种算法准确率的对比
根据图3可得:
(1)当Zout≤4时,三种算法能够完全正确地得到网络的划分,准确率为100%。

(2)当4<Zout≤6时,三种算法的表现趋势逐渐下降,但其所划分的社区的准
确率是相似的。

(3)当Zout≥6 时,随着 Zout增加,Signal算法的曲线下降较快,说明此时的社区结构较快地变得模糊。

SHC算法和SMHC算法的曲线下降趋势相似,与Signal算法相比较平缓。

在同一个Zout值处,SMHC算法的准确率高于SHC算
法和Signal算法。

主要原因是SHC算法和Signal算法只考虑了节点之间的邻接
连接,而忽略了节点在整个网络中的关系。

另外,SMHC算法是在SHC算法的基础上,利用了网络的局部信息之外,还考虑了网络的全局性信息,由此提出了信号缺失值,使其比其他两种方法表现出更优的性能,说明新的测度值可以提高社区划分的准确率,并使社区结构更明显。

5.2 实验2:基于基准数据集
(1)将本文的SMHC算法应用于Karate Club数据集,得到的划分结果如图4
所示。

在图4中,两个不同的社区分别用三角形和正方形来表示,圆点分别为两个社区
的中心点。

得到的两个社区大小分别为16和18,与实际中的社团结构相同。

其中,节点1和节点34分别表示俱乐部经理和教练员,他们是两个社区的中心,本文SMHC算法产生的结果和实际情况完全相符。

(2)将本文SMHC算法应用于American Football数据集,得到的分组情况如
表1所示,划分结果由图5所示。

图4 Karate Club数据集的划分结果图
表1 American Football数据集中的节点划分社团1234567891 0 11社团内的节点1,5,10,17,24,42,94,105 2,26,34,38,46,90,104,106,110 3,7,14,16,33,40,48,61,65,101,107 4,6,11,41,53,73,75,82,85,99,103,108,98 8,9,22,23,52,69,78,79,109,112 12,25,51,70,91,29 13,15,19,27,32,35,39,44,55,62,72,86,100,37,43 18,21,28,57,63,66,71,77,88,96,97,114,60,64 20,30,31,36,56,80,95,102,81,83 47,50,54,59,68,74,84,89,115 45,49,58,67,76,87,92,93,113,111
由表1和图5可知:
在足球队网络实际的划分结构中,节点{37,43,81,83,91}被划分到同一个社区中。

这5个节点,在表1中被分别划分到3个不同的社区中,在图5的划分图中,它们的连边数是稀疏的。

由原始数据分析可知,这5个节点所表示的队伍之
间并没有相互比赛,而本文的算法将其划分到与其比赛次数最多的分组中,出现了与实际分组不同的情况。

图5 American Football数据集的划分结果
(3)将SMHC算法在American Football数据集中与五种算法,对各个分组情
况的准确率进行比较,如表2所示。

由表2可知:
①SMHC算法和SHC算法的正确率在12个社区中有4个社区的正确率高于Signal算法,有10个社区的正确率高于另外三种算法,说明信号传递的思想比其他算法具有高效性。

②SMHC算法中编号为1,2,3,5,6,7,9的社区与SHC算法划分结果相同。

③根据SMHC算法所得到的社区的划分个数为11个,被划分到正确社区的个数
达到了106个。

在SHC算法中,Football数据集被划分为12个社区,被划分到正确社区的个数为104个。

结合表1,在考虑信号传播过程中信号缺失的情况下,SMHC算法将节点59,111分别划分到编号10和11的社区中,与实际的划分
结果相同。

5.3 实验3:基于Netscience网络
(1)数据预处理
Netscinece网络共有379个节点,914条边。

为了更好地发现社区,在实验前对数据进行预处理。

在科学合作者网络中,共引用的论文可以看作信号传递过程中所传递的信号。

由于Netscience网络是不连通的,取其最大连通分支进行实验。

如图6所示。

表2 SMHC算法与经典算法在American Football数据集的各社区划分的准确率比较社团编号1234567891 0 11 12 SMHC算法1.000 0 1.000 0 1.000 0 0.923 2 1.000 0 0.666 7 0.866 7 0.857 1 0.800 0 0.900 0 0.000 0 1.000 0 SHC算法1.000 0 1.000 0 1.000 0 1.000 0 1.000 0 0.666 7 0.866 7 0.800 0 0.800 0
0.800 0 0.000 0 0.900 0 Signal算法1.000 0 1.000 0 1.000 0 1.000 0 1.000 0 0.444 4 0.538 5 1.000 0 0.800 0 0.727 3 0.181 8 0.900 0 GN算法0.000 0
0.900 0 1.000 0 0.923 1 0.555 6 0.444 4 0.866 7 0.750 0 1.000 0 0.727 3
0.000 0 0.900 0 CNM算法0.514 3 1.000 0 0.983 3 1.000 0 0.937 4 0.044 4
0.885 2 0.795 6 0.835 6 0.727 3 0.000 0 0.840 0 Similar算法0.375 6 1.000 0
1.000 0 0.914 3 0.712 5 0.123 5 0.832 0 0.810 0 0.560 0 0.509 1 0.181 8
0.707 1
图6 Netscience网络中最大连通分支
图6共有276个节点,划分成21个社团。

再随机选取其中包含47个节点的社团,利用SMHC算法,得到此网络的6个社团,划分图如图7所示。

图7 Netscience网络中最大连通分支的划分图
(2)信号缺失与不缺失时的模块度值
模块度作为衡量社区划分质量的一种度量,本文对Netscience网络在信号传播过程中考虑信号缺失与不缺失时的模块度值(图7的划分)进行了比较,结果见表3所示。

表3 Netscience数据集的模块化度量Q数据集Netscience SMHC算法0.483 6 SHC算法0.475 2
由表3可知,应用SMHC算法所发现的社区,模块度的量值增加了1.77%,从而说明了考虑到信号缺失可以使获得的社区质量有所提高。

5.4 实验4:模块度与社区的个数
为了说明算法的有效性,本实验将SMHC算法、SHC算法、CNM算法、GN算法以及Similar算法在三个数据集对模块度与社区的个数进行了比较,结果如表4所示。

说明:表4中的Nodes对应网络的节点数,Edges对应网络的连接数。

对每种算法,比较其模块度的值、所划分的社区数目,如0.38/3表示在Karate Club网络中,用CNM算法得出模块度的值为0.38,划分的社区数目为3。

由表4可以看出:
(1)在三种网络中,GN算法所得到的模块度的值都是极高的,但其算法具有较高的复杂度,消耗的时间较多。

(2)在Karate Club网络中,基于Similar算法和CNM算法得到的模块度值与SMHC算法所得的值非常接近,前两种算法划分的社区数较多,从该网络的实际特征来说,分为两个社区是合理的。

(3)在American Football网络中,基于Similar算法的模块度值高于SMHC 算法,且划分的社区个数与实际划分相符,但由表2可知,其划分的节点的正确率为75.7%,低于本文的算法。

CNM算法的模块度稍高于SMHC,但其划分的社区个数仅为正确划分的个数的一半,社区结构不够明显。

(4)在Netscience网络中,SMHC算法所得的模块度值和社区个数是合理的。

6 结束语
本文利用信号传播的理论,将网络中每一个节点都看作可以接收、发送的信号,并且记录传递过程中的信号量,经过T次传递之后,节点的信号量分布认为是节点对整个网络的影响程度。

在网络中,节点总是先影响其所在的社区,然后再影响整个网络,由此认为对网络影响程度相似的节点应属于同一个社区。

在信号传递的过程中,不仅仅要考虑节点的邻接关系,还要考虑节点在整个网络中的位置及影响,从局部信息出发再结合整体的网络拓扑结构,从而提出了使用度中心性来刻画网络
中的节点接收信号的概率。

在信号传递的基础上添加信号缺失值,经过实验对比,提高了准确率。

本文的算法适用于小型社会网络,同样适用于加权网络。

对于大型网络的划分,存在社区划分不均匀和计算复杂度较高的问题,实验中Netscience网络划分出的每个社区中所包含的节点数有一定的差距,可能会造成社区的不稳定,这方面需要下一步深入研究。

文献[15]基于边的分析同样可以得到网络的社区结构,本文从节点的相似性度量角度出发,提出了新的测度,如何将节点与边进行融合也是未来值得关注的方向。

表4 五种算法在模块度与社区划分个数在三种数据集上的比较Network Karate Football Netscience Nodes 34 115 379 Edges 78 613 914 SMHC算法
0.389/2 0.546/11 0.820/34 SHC算法0.38/5 0.45/12 0.81/38 CNM算法
0.38/3 0.55/6 0.84/19 GN算法0.40/5 0.60/10 0.84/18 Similar算法0.39/4 0.60/12 0.82/17
【相关文献】
[1]程学旗,沈华伟.社会信号网络中的社区分析[J].中国计算机学会通讯,2011,12(7):12-20.
[2]Strogatz S H.Exploring complex networks[J].Nature,2001,410(6825):268-276.
[3]程学旗,沈华伟.复杂网络的社区结构[J].复杂系统与复杂性科学,2011,8(1):57-70.
[4]Kernighan B W,Lin S.An efficient heuristic procedure for partitioning graphs[J].Bell System Technical Journal,1970,49(2):291-307.
[5]袁超,柴毅.复杂网络的局部社团结构挖掘算法[J].自动化学报,2014,40(5):921-934.
[6]林友芳,王天宇,唐锐.一种有效的社会网络社区发现模型和算法[J].计算机研究与发展,2012,49(2):337-345.
[7]Newman M E J,Girvan M.Finding and evaluating community structure in
networks[J].Physical Review E,2004,69(2):26-113.
[8]Girvan M,Newman M E munity structure in social and biological
networks[J].Proceedings of the National Academy of Sciences,2002,99(12):7821-7826.
[9]刘旭,易东云.基于局部相似性的复杂网络社区发现方法[J].自动化学报,2011,37(12):1520-1529.
[10]Hu Y,Li M,Zhang P,et munity detection by signaling on complex networks[J].Physical Review E,2008,78(1):16-115.
[11]郑凤妮.复杂网络中基于节点相似性聚类的网络社团发现方法研究[J].计算机与现代化,2013(5).
[12]Gregory S.A fast algorithm to find overlapping communities in networks[M].Machine Learning and Knowledge Discovery in Databases.Berlin Heidelberg:Springer,2008:408-423.
[13]Ahn Y Y,Bagrow J P,Lehmann S.Link communities reveal multiscale complexity in networks[J].Nature,2011,466(7307).
[14]Zachary W W.An information flow model for conflict and fission in small
groups[J].Journal of Anthropological Research,1977,33:452-473.
[15]周林,晏立,沈项军.基于边密度的复杂网络社区结构划分方法[J].计算机应用与软件,2013,30(12):8-11.。

相关文档
最新文档