社团结构 matlab,社团结构

在网络科学研究中,如果某个网络中的节点可以轻易地被划分为若干个内部紧密连接的节点集(集合间可能重合),那么就可以说这个网络具有社团结构 Community structure。除节点集重叠的特殊情况下外,网络自然地被分成一个个节点集,这些节点集内部连接紧密,而节点集与节点集之间连接稀疏(但也存在节点集重叠的情况)。 更广泛的定义基于以下原则:即如果节点对同属一个社团,则更有可能相互连接;如果不属于同一个社团,则更不可能相互连接。 一个相关但不同的问题是社团搜索,其目标是找到某个节点所属的社团。

属性

在研究计算机、信息网络、社会网络和生物网络等网络时,经常发现网络具有许多不同的特征,包括小世界性 Small-world property、重尾度分布 Heavy-tailed degree distributions和聚集性 Clustering等。 而网络也具有共同特征——都具有社团结构。

将节点集进行划分,就产生了一个个社团。也就是说,每个节点被放入一个社团中,且该社团唯一,这是一个有用的简化,多数社团检测算法都适用于这种类型的社团结构。然而在某些情况下,一个节点位于多个社团(即社团具有重叠性)的社团结构能够更好表示所研究的对象。这可能发生在社交网络中:每个节点代表一个人,而社团代表不同的朋友群体,如: 一个社团代表家庭,另一个社团代表同事,还有一个社团代表来自同一体育俱乐部的朋友等等。 下面所讨论的基于团结构的社团检测算法 Clique-based method的例子,就属于这种具有重叠性的社团结构。

有些网络可能不具有任何有意义的社团结构。例如许多基本的网络模型,例如随机图 Random graph和 Barabsi-Albert 模型 Barabási–Albert model就不具有社团结构。

重要性

90dc6e7df7dafc2f78d0eb8bc7bf4c19.png

一个演示社团结构的小型网络示意图,包含三组内部紧密连接的节点,各组之间连接较为稀疏

社团结构在实际网络中相当常见,社会网络包括基于相同位置、兴趣、职业等的社团团体(实际上是这个术语的起源)。

在网络中找到一个潜在的社团结构(如果它存在的话)是很重要的,原因如下:

第一,社团允许我们创建一个大范围的网络地图,因为单个社团就像网络中的元节点,这使得研究更加容易;

第二,由于社团通常与系统的功能单元相对应,因此单个社团也能阐明网络所代表的系统功能。如在代谢网络中,这些功能组对应于周期或路径;而在蛋白质相互作用网络 Protein-protein interaction network中,社团对应于生物细胞内具有类似功能的蛋白质;在引用网络中,社团对应于研究主题。 而识别网络中的子结构,有助于深入了解网络的功能以及拓扑效应之间是如何相互影响的。这种见解对于改进谱聚类 Spectral clustering等图的数据处理算法有一定的参考价值。

第三,若只关注普遍属性通常会忽略网络内部许多重要且有趣的特性,而社团的属性通常与网络的普遍属性不同。例如,在一个给定的社交网络中,爱交际的群体和沉默寡言的群体可能同时存在。

第四,社团的存在通常也会影响到传播过程,如在网络上发生的谣言传播或流行病传播。 因此,为了正确理解这些过程,最重要的就是检测社团,并研究它们如何在各种环境下影响传播过程。

最后,社团检测在网络科学中的一个重要应用是预测网络中的缺失链接和识别网络中的错误链接。 在检测过程中,由于多种原因,有些链接可能无法被观察到。同样,由于检测中的失误,一些链接可能会错误地输入数据。由于社团检测算法允许给定节点对之间存在连边,因此可以很好地处理这两种情况。

社团检测算法

在任意网络中检测社团可能是一项困难的计算任务。 网络中的社团数目(如果存在的话)通常是未知的,且社团规模和密度往往不同。尽管存在这些困难,一些检测社团的方法已经被发展和应用,并取得了不同程度的成功。

最小割法

将网络划分为若干部分的最古老的算法之一是最小割法(以及诸如比率割法和归一化割法等变体)。 此方法可用于并行计算的负载平衡,尽可能减少处理器节点之间的通信。

在最小割法中,网络被分割成预定数量且大小相似的部分,选择这些部分使得节点组之间的边数达到最小。这种算法在许多应用程序中运行良好,但并不适用于检测一般网络中的社团结构,因为不论社团是否隐含在结构中,它只能找到数目固定的社团,而社团的数目通常是未知的。

层次聚类

在网络中检测社团结构的另一种方法是层次聚类 Hierarchical clustering。 在这种算法中,定义了一种相似性度量 Similarity measure,去量化节点对之间的某些(通常是拓扑的)相似性。 常用的测量方法包括余弦距离 Cosine similarity、雅卡德指数 Jaccard index,以及汉明距离邻接矩阵 Hamming distance between rows of the adjacency matrix。 然后根据该算法将相似的节点分组到同一个社团中。

有几种常见的分组方案,其中最简单的两种是单链接聚类和完全链接聚类。前者在不同群组中的所有节点对的相似度小于给定的阈值的情况下,将两个群组视为独立的社团; 后者则是在每个群组中的所有节点对的相似度大于给定的阈值的前提之下进行分组。 一个有趣的方法是使用各种相似或不同的测度,通过凸和 convex sums来改进层次聚类的性能。

Girvan-Newman 社团检测算法

另一个常见的社团检测算法是 Girvan-Newman 算法 Girvan–Newman algorithm

Girvan-Newman算法返回的结果具有较好的质量,且由于它与许多标准软件包兼容,因此得到广泛应用。但其运行缓慢,在n个顶点和m条边的网络上耗费时长为O(m2n),导致其并不适用于超过几千个节点的网络。

代码实现

利用网络科学工具包NetworkX, 可以轻松调用GN算法实现社团检测。示例如

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值