除了基于模块度之外的其它社团检测算法

本文探讨了网络社团结构分析中的模块度算法局限,如分辨率问题和误判强社团结构。介绍了派系过滤算法,如k-派系社团定义和寻找方法,以及连边社团检测算法,强调了边作为社团单位的重要性。还讨论了社团检测的评价标准,包括时间效率和性能。
摘要由CSDN通过智能技术生成

一、模块度的局限性

(1)判断网络是否具有较强的社团结构一种方法是把一个给定网络与该网络相应的随机化模型做对比。通常做法是通过随机重连方式生成许多具有相同度序列的随机化网络,并计算这些网络的模块度的均值和方差,分别记为< Q > N M _{NM} NM δ Q N M \delta_Q^{NM} δQNM,然后计算给定网络的最大模块度Q m a x _{max} max的统计重要性:
在这里插入图片描述
如果Z Q _Q Q>0,就可以认为网络具有社团结构,并且Z Q _Q Q越大就表明网络的社团结构越强。但是问题来了:一些大家公认不具有较强社团结构的网络也会具有较大的Z Q _Q Q值;大家公认具有明显社团结构的网络却具有很小的Z Q _Q Q值。
(2)模块度另一个更为重要的问题是分辨率限制:它无法识别出规模充分小的社团。

二、派系过滤算法

在上篇文章介绍的算法中,一个节点只能被划分到一个社团。然而大规模实际网络的社团结构往往具有重叠性特征,即网络中会存在一些”骑墙节点“,每一个骑强节点都会同时属于多个社团。所以人们提出了一种派系过滤算法来分析具有重叠性的社团结构,并编制了相应软件CFinder。

1、k-派系社团的定义

k-派系是网络中包含k各节点的全耦合子图,即这k个节点中任意两个节点都有边相连。如果两个k-派系有k-1个公共节点那么就称这两个k-派系是相邻的。如果一个k-派系可以通过若干个相邻的k-派系到达另一个k-派系,就称这俩个k-派系是彼此连通的。网络中由所有彼此连通的k-派系构成的集合就称为一个k-派系社团。下图为4-派系社团。
在这里插入图片描述

2、寻找网络中的派系

在派系过滤算法中,采用由大到小、迭代回归的算法来寻找网络中的派系。首先,从网络中各节点的度可以判断网络中可能存在的最大全耦合子图的大小。从网络中一个节点出发,找到所有包含该节点的大小为s的派系后,删除该节点以及与之相连的边(以避免多次找到同一个派系)。然后,另选一个节点,重复上述步骤,直到网络中没有节点为止。至此,找到了网络中大小为s的所有派系。接着,逐步减小s,每次s值减小1,再用上述方法便可寻找到网络中所有不同大小的派系。
这里的关键是如何从一个节点v出发寻找包含它的所有大小为s的派系。为此,首先定义两个集合A和B:集合A为包括节点v在内的两两相连的所有结点的集合。而集合B则为与集合A中各结点都相连的结点的集合。为了避免重复选到某个节点,对集合A和B中的节点都按节点序号顺序排列。
寻找包含节点v的所有大小为s的派系的迭代回归算法如下:
(1)初始集合A={v},B={v的邻居};
(2)从集合B中移动一个节点到集合A,同时删除集合B中不在与集合A中所有节点相邻的节点;
(3)如果在集合A的大小未达到s之前,集合B已为空集,或者集合A和B为已有的一个较大的派系中的子集,则停止计算,返回上一步。否则,当集合A的大小达到s,就得到一个新的派系,记录该派系,然后返回上一步,继续寻找包含节点v的新的派系。

3、利用派系寻找k-派系社团

找到网络中所有的派系以后,就可以得到这些派系的重叠矩阵。该矩阵是一个对称方针,每一行(列)对应于一个派系,对角线上的元素表示相应派系的大小(即派系所包含的节点数目)。在派系重叠矩阵中,将对角线上小于k而非对角线上小于k-1的元素置为0,其它元素置为1,就可以得到k-派系的社团结构邻接矩阵,各个连通部分分别代表各个k-派系的社团。

三、连边社团检测算法

此算法的新思路是一个社团是一组紧密相连的连边的集合,而不是通常定义的紧密相连的节点的集合。这样定义的好处是一条边只能属于一个社团。
连边社团检测算法的基本步骤就是把具有一定相似度的连边合并为一个社团。此时需要给出连边相似度的定量刻画。假设初始时我们把网络中的每一天边都看作一个社团,现在要把其中的两条边合并为一个社团,一个自然的要求就是这两条边应该是连在一起的,即有一个公共节点。具有一个公共节点k的一对连边e i k _{ik} ik和e j k _{jk} jk之间的相似度的合理定义就是考虑节点对i和j之间的相似度。
定义连边对e i k _{ik} ik和e j k _{jk} jk之间的相似度如下:
在这里插入图片描述
其中n + _+ +(i)为节点i及其所有邻居节点的集合。
在这里插入图片描述
上图连边的相似度为4/12=1/3。
利用连边的相似度定义,就可以用分级聚类方法来检测网络社团结构。具体步骤如下:
(1)计算网络中所有相连的连边对即至少拥有一个共同节点的连边对的相似度,并根据相似度的值按降序排列这些连边对。
(2)按排列次序依次将连边对所属社团进行合并,将合并过程以树图的形式记录下来。这里,如果一些连边对具有相同的相似度,那么就在同一步进行合并。
(3)社团的合并过程可进行到某一步为止,至多可进行到所有的连边都属于一个社团。
在上述操作过程中,两个社团融合时所对应的相似度值称为融合社团的强度,并对应于树图分支的高度。
为了得到最佳的社团结构,需要确定分割树图的最佳位置,或者等价的,确定社团合并过程进行到哪一步是最佳的。为此,基于社团内部的连边密度定义一个目标函数,称为划分密度D。假设一个包含M条连边的网络被划分为C个社团{P 1 _1 1,P 2 _2 2,,P c _c c},其中社团P c _c c包含m c _c c条连边和n c _c c个节点,它所对应的归一化密度定义为:
在这里插入图片描述
其中n c _c c-1是使得n c _c c个节点构成连通图所需的最少连边数,而n c _c c(n c _c c-1)/2则是n c _c c个节点之间最大可能的连边数。这里,如果n c _c c=2,那么定义D c _c c=0。整个网络的划分密度就定义为D c _c c的加权和:
在这里插入图片描述
由于上式求和中的每一项都局限在社团内部,从而使得划分密度避免了模块度具有的分辨率限制问题。通过计算连边树图每一层所对应的划分密度或者直接优化划分密度就可以得到最佳的社团划分。

四、社团检测算法的评价标准

1、基准图方法

对于把社团检测算法应用于实际网络分析,算法的好坏取决于两点:
(1)时间:算法能否早可接受的时间内给出社团划分结果。
(2)性能:算法能否高质量地揭示出实际网络的社团结构。

2、元数据方法

为了定量比较不同社团划分算法的效果,可以引入以下几个指标:
(1)社团质量:相似的节点应该共享尽可能多的元数据。
(2)重叠质量:对于网络中的每个节点i,我们从元数据中提取一个标量(称为重叠元数据),它对应于节点i所属的真实社团的数目。
(3)社团覆盖: 计算属于非平凡社团(即有3个或以上节点的社团)的节点所占的比例。
(4)重叠覆盖:计算每个节点所属的非平凡社团的数目的平均值。两个算法可能具有相同的社团覆盖度,但是一个算法有可能比另一个算法提取出更多的重叠节点。对于不具有检测重叠性的社团算法,重叠覆盖度与社团覆盖度是一样的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值