本文参考论文Community detection in networks:A user guide,写下本人理解笔记。

复杂网络

复杂网络定义

在我们的现实生活中,许多复杂系统都可以建模成一种复杂网络进行分析,比如常见的电力网络、航空网络、交通网络、计算机网络以及社交网络等等。复杂网络不仅是一种数据的表现形式,它同样也是一种科学研究的手段。复杂网络方面的研究目前受到了广泛的关注和研究,尤其是随着各种在线社交平台的蓬勃发展,各领域对于在线社交网络的研究也越来越火。

下图是一个计算机网络图:

复杂网络的特性

钱学森对于复杂网络给出了一种严格的定义:具有自组织、自相似、吸引子、小世界、无标度中部分或全部性质的网络称之为复杂网络。言外之意,复杂网络就是指一种呈现高度复杂性的网络,其特点主要具体体现在如下几个方面:

小世界特性

小世界特性(Small world theory)又被称之为是六度空间理论或者是六度分割理论(Six degrees of separation)。小世界特性指出:社交网络中的任何一个成员和任何一个陌生人之间所间隔的人不会超过六个,如下图所示:

在考虑网络特征时,通常使用一下两个特征来衡量网络:

  • 特征路径长度(characteristic path length)

    在网络中,任选两个节点,连通这两个节点的最少边数,定义为这两个节点的路径长度,网络中所有节点对的路径长度的平均值,定义为网络的特征路径长度。这是网络的全局特征。

  • 聚类系数 (clustering coefficient)

    假设某个节点有kk 条边,则这kk 条边连接的节点(kk个)之间最多可能存在的边的条数为k(k1)/2k(k−1)/2,用实际存在的边数除以最多可能存在的边数得到的分数值,定义为这个节点的聚合系数。所有节点的聚合系数的均值定义为网络的聚合系数。聚合系数是网络的局部特征,反映了相邻两个人之间朋友圈子的重合度,即该节点的朋友之间也是朋友的程度。

对于规则网络,任意两个点(个体)之间的特征路径长度长(通过多少个体联系在一起),但聚合系数高(你是朋友的朋友的朋友的几率高)。对于随机网络,任意两个点之间的特征路径长度短,但聚合系数低。而小世界网络,点之间特征路径长度小,接近随机网络,而聚合系数依旧相当高,接近规则网络。

复杂网络的小世界特性跟网络中的信息传播有着密切的联系。实际的社会、生态、等网络都是小世界网络,在这样的系统里,信息传递速度快,并且少量改变几个连接,就可以剧烈地改变网络的性能,如对已存在的网络进行调整,如蜂窝电话网,改动很少几条线路,就可以显著提高性能。

无标度特性

现实世界的网络大部分都不是随机网络,少数的节点往往拥有大量的连接,而大部分节点却很少,节点的度数分布符合幂率分布,而这就被称为是网络的无标度特性(Scale-free)。将度分布符合幂律分布的复杂网络称为无标度网络。

无标度特性反映了复杂网络具有严重的异质性,其各节点之间的连接状况(度数)具有严重的不均匀分布性:网络中少数称之为 Hub 点的节点拥有极其多的连接,而大多数节点只有很少量的连接。少数 Hub 点对无标度网络的运行起着主导的作用。从广义上说,无标度网络的无标度性是描述大量复杂系统整体上严重不均匀分布的一种内在性质。

其实复杂网络的无标度特性与网络的鲁棒性分析具有密切的关系。无标度网络中幂律分布特性的存在极大地提高了高度数节点存在的可能性,因此,无标度网络同时显现出针对随机故障的鲁棒性和针对蓄意攻击的脆弱性。这种鲁棒且脆弱性对网络容错和抗攻击能力有很大影响。研究表明,无标度网络具有很强的容错性,但是对基于节点度值的选择性攻击而言,其抗攻击能力相当差,高度数节点的存在极大地削弱了网络的鲁棒性,一个恶意攻击者只需选择攻击网络很少的一部分高度数节点,就能使网络迅速瘫痪。

社区结构特性

人以类聚,物以群分。复杂网络中的节点往往也呈现出集群特性。例如,社会网络中总是存在熟人圈或朋友圈,其中每个成员都认识其他成员。集群程度的意义是网络集团化的程度;这是一种网络的内聚倾向。连通集团概念反映的是一个大网络中各集聚的小网络分布和相互联系的状况。例如,它可以反映这个朋友圈与另一个朋友圈的相互关系。

下图是一个合作网络:

社团检测

社团检测定义

社区检测(community detection)又被称为是社区发现、图聚类,它是用来揭示网络聚集行为的一种技术。社区检测实际就是一种网络聚类的方法,这里的“社区”在文献中并没有一种严格的定义,我们可以将其理解为一类具有相同特性的节点的集合。一般认为社团内部的点之间的连接相对稠密,而不同社团的点之间的连接相对稀疏。近年来,社区检测得到了快速的发展,这主要是由于复杂网络领域中的大牛 Newman 提出了一种模块度(modularity)的概念,从而使得网络社区划分的优劣可以有一个明确的评价指标来衡量。一个网络不通情况下的社区划分对应不同的模块度,模块度越大,对应的社区划分也就越合理;如果模块度越小,则对应的网络社区划分也就越模糊。

社团检测中的常用变量

在下图中C(VC,EC)C(V_C,E_C)(虚线框内包含的图)是G(V,E)G(V,E)的子图,G 和 C 的顶点数和边数分别为n,mn,mnC,mcn_C,m_c。 图GG的邻接矩阵为AA, 当顶点iji、j之间有边相连时Aij=1A_{ij}=1,否则Aij=0A_{ij}=0

顶点ii 的内部度(internal degree)和外部度(external degree)分别是顶点ii 和子图CC 内部顶点连接的边数和除子图CC顶点的连接边数,可以通过下式表示:

  • 度:ki=jAijk_i=\sum_{j}A_{ij}
  • 内部度:kiint=jCAijk_i^{int}=\sum_{j\in C}A_{ij}
  • 外部度:kiext=jCAijk_i^{ext}=\sum_{j\notin C}A_{ij}

嵌入度(embeddedness)是顶点ii 内部度和度的比值,值越大说明顶点与社团的嵌入度越高:

ξi=kiint/ki\xi_i=k_i^{int}/k_i

混合参数(mixing parameter)是顶点ii 外部度和度的比值:

μi=kiext/ki=1ξi\mu_i=k_i^{ext}/k_i=1-\xi_i

度量子图CC的变量可以分为三类:

基于内部连接的度量指标

  • 内部度kCintk_C^{int} : 子图 C 中所有的顶点内部度之和

    kCint=i,jCAijk_C^{int}=\sum_{i,j\in C}A_{ij}

  • 平均内部度kCavgintk_C^{avg-int}:子图 C 中顶点平均度

    kCavgint=kCint/nCk_C^{avg-int}=k_C^{int}/n_C

  • 内部边密度δCint\delta_C^{int}

    δCint=δCintnC(nC1)\delta_C^{int}=\frac{\delta_C^{int}}{n_C(n_C-1)}

    其中nC(nC1)n_C(n_C-1)表示有nCn_C个顶点的简单图具有的最大的边数。

基于外部连接的度量指标

  • 内部度kCextk_C^{ext} : 子图 C 中所有的顶点外部度之和

    kCext=iCjCAijk_C^{ext}=\sum_{i\in C,j\notin C}A_{ij}

  • 平均外部度kCavgextk_C^{avg-ext}:子图 C 中顶点平均度

    kCavgext=kCext/nCk_C^{avg-ext}=k_C^{ext}/n_C

  • 外部边密度或者是边割率δCext\delta_C^{ext}

    δCext=δCextnC(nnC)\delta_C^{ext}=\frac{\delta_C^{ext}}{n_C(n-n_C)}

混合度量指标

  • 度总和kCk_C: 子图 C 中所有顶点度的总和:kC=kCint+kGextk_C=k_C^{int}+k_G^{ext}

    kC=iC,jAijk_C=\sum_{i\in C,j}A_{ij}

  • 平均度kCavgk_C^{avg}: 子图 C 中顶点的平均度为:

kCavg=kC/nCk_C^{avg}=k_C/n_C

  • 容错率 (Conductance)CCC_C:子图中外部度和总的度的比率:

CC=kCextkCC_C=\frac{k_C^{ext}}{k_C}

传统社团定义

强社团、弱社团根据社团中顶点或者边的比值定义。

现代社团定义

强社团、弱社团根据社团中顶点之间存在边的概率确定。

验证聚类算法

人工数据集

LFR 基准模型

划分相似度度量

验证复杂网络可以检测出社团

通过元数据来表示网络结构

真实网络结构

社团检测方法

如何确定社团数量

非回溯矩阵 B(Non-backtracking Matrix)

流矩阵 F(Flow Matrix)

一致性聚类

通过迭代收敛确定聚类算法结果。

谱方法

重叠社团检测

根据边聚类或者是顶点聚类

统计推断方法

随机块模型

基于优化的方法

模块度优化

动态算法

随机漫步

动态社团检测


联系作者