Community detection in networks: A user guide
该文是一片关于社区检测的综述性文章,方便大家社区检测方向的入门。
社区或集群通常被看做是一组顶点,它们之间相互连接的概率比与其他组的成员连接的概率高。但是确定社区仍然是一个定义不清的问题。在基本要素(如社区本身的定义)上没有通用协议,在其他关键问题(如算法验证和性能比较)上也没有通用协议。这产生了一些混淆和误解,损害了该领域的进展。
本文包括六个部分,其中三、四部分为重点。第二节论述了社区的概念,描述了从经典的基于子图的概念到现代统计解释的演变过程。第三节,讨论验证的关键问题,强调人工基准的作用、分区相似性分数选择的重要性、集群可被检测的条件、元数据的有用性以及真实网络中社区的结构特性。第四节对一些流行的聚类方法进行了批判性的讨论。它还处理了重要的一般方法方面,如确定集群的数量,这是几个技术的必要输入,通过组合多个分区生成健壮的解决方案的可能性,发现动态社区的主要方法,以及对聚类意义的评估。在第五节中,指出在哪里可以找到有用的软件。第六节的结束语总结了工作。
I. INTRODUCTION
该部分首先解释了网络科学是什么,介绍了网络(图)的基本概念。在生活中有诸如Facebook这种巨型社交网络,在其他各种领域网络也是随处可见。
我们一般感兴趣的是网络的结构,也就是说社区、集群或者模块。可以很好地表示社交网络,协作网络,蛋白质网络之间的交互信息。
识别社区可以帮助我们了解网络是如何组织起来的。它允许我们把注意力集中在图中具有某种程度自治的区域上,帮助我们对顶点进行分类。
网络中的社区检测,又称图或网络聚类,是一个不明确的问题。人们应该寻找的对象并没有统一的定义。因此,对于如何评估不同算法的性能以及如何将它们相互比较,并没有明确的指导方针。一方面,这种模糊性给人们提供了很大的自由来提出不同的解决问题的方法,这些方法往往取决于具体的研究问题和研究中的特定系统。另一方面,它也给该领域带来了很多噪音,减缓了进展。
II. WHAT ARE COMMUNITIES?
A. Variables
首先介绍了网络中的变量,于我们在图论中所学类似,n,m分别代表图G的顶点数和边数,A代表的是邻接矩阵。子图设为c(下图虚线所包裹的),并且社区通常是联通的。
下图为示意子图。
顶点被虚线轮廓所包围。magenta点是连接到子图的外部顶点,而黑色的点是网络中剩余的顶点。蓝线表示连接子图到网络其余部分的边。其它一些记法与图论相似不在赘述。
B. Classic view
最初社区被看作是相互隔离的密集子图,但是现在发现社区也可能重叠,共享一些顶点。将一个网络细分成重叠的社区称为覆盖,这是一种软聚类,而不是硬聚类,硬聚类处理的是划分成不重叠的群体,称为分区。
clique(团),即完全图,团内的节点彼此连接。寻找cliques本身是个NP难的问题。尽管团拥有最大的内部密度,但是实际社区也并不全是完全图。于是,学者对于社区的定义放宽了要求,有n-clique,n-clans,b-clubs,设定节点连接的节点数的阈值。
关于社区的合适定义,我们不仅应该考虑内部的连接也应该考虑外部的连接,比如学者提出“社区内部的连边应该远大于外部连边”。但是这样的定义存在一个缺点,就是将网络看做一个社团和其他部分,但是其他部分实际可能是多个社团。于是,有学者提出定义,社区内的每个节点与该社区内其他节点的连接强度大于与其他社区的其他节点的连接强度。就该学者的定义,衍生出strong community和weak community的定义。
strong community: 社团内节点的内度比属于其他社团的时的内度都更大。
weak community: 社团的内度超过社团内节点属于其他社团时的内度。
C. Modern view
社区的传统定义以各种方式依赖于计算边(内部的,外部的)。但我们真正应该关注的是顶点与子图共享边的概率。社区的存在意味着顶点与群落中的其他成员之间的相互作用强于与其他群落中的顶点之间的相互作用。因此,在同一组的顶点之间存在优先连接模式。这就是为什么社区内的边缘密度比社区之间的密度高的原因。我们可以这样表示,同一个社团中的顶点与它们的部分形成边的概率比与其他顶点形成边的概率高。
strong community:社团内任意节点与社团内其他节点连接的概率比网络中其他节点更高。
weak community:社团内节点与社团内其他节点连接的平均概率比与其他社团节点连接的概率高。
这两个定义的不同之处在于,在强社区概念中,边概率的不等在每一对顶点上都成立,而在弱社区概念中,边概率的不等只在组上的平均上成立。因此,一个强的社区也是一个弱的社区,但一般来说,反之则不然。
其它的社区定义基于网络拓扑和动态之间的相互作用。扩散是最常用的动力学。随机游动是最简单的扩散过程。随机游走在社团内部需要花费更多的时间,随机游走的演变不仅取决于边的数量或密度,还取决于连续边缘形成的路径的结构和分布。这意味着一般而言,随机游动动力学依赖于更高阶的结构。这样做的好处在于可以保留社区更复杂的特征,而SBM会丢失这些特征。但是,随机游走计算会比较复杂。
III. VALIDATION
首先我们来解释一下拓扑的含义,所谓“拓扑”就是把实体抽象成与其大小、形状无关的“点”,而把连接实体的线路抽象成“线”,进而以图的形式来表示这些点与线之间关系的方法,其目的在于研究这些点、线之间的相连关系。表示点和线之间关系的图被称为拓扑结构图。拓扑结构与几何结构属于两个不同的数学概念。在几何结构中,
我们要考察的是点、线之间的位置关系,或者说几何结构强调的是点与线所构成的形状及大小。如梯形、正方形、平行四边形及圆都属于不同的几何结构,但从拓扑结构的角度去看,由于点、线间的连接关系相同,从而具有相同的拓扑结构即环型结构。也就是说,不同的几何结构可能具有相同的拓扑结构。
在本节中,我们将讨论聚类算法验证的关键问题。验证通常主要指检查算法在已知社团结构的benchmark网络中识别社团的准确性。基准测试可以根据一些由计算机生成的模型或实际的网络,这些网络的组结构应该是通过非拓扑特征(元数据)知道的。由于缺乏对社区的普遍定义,在原则上,对基准社区的寻找相当武断。然而,最著名的人工基准是基于上节中介绍的集群的现代定义。
A. Artificial benchmarks
当同一组的两个顶点连接的概率大于不同组的两个顶点连接的概率
Girvan and Newman benchmark: 所有节点具有相同的度,社团大小一致。
LFR benchmark:考虑幂律的度分布和社团大小分布,mu是固定的(社团内节点外部度/节点度)。是一种特殊的degree-corrected SBM模型。该算法也被拓展至有向有权重叠网络。
Granell benchmark:基于planted l-partition model,考虑时序网络,检测不断变化的动态社区。下一个时刻,已有的社区可能会生长,缩小,融合或者分裂等等。(基于p(in)和p(out)的关系)
注:随机图没有明显的社团结构,可以作为null benchmark,检测算法是否可以识别出没有社团结构的网络。
B. Partition similarity measures
评价社区检测算法的好坏,需要比较算法在benchmark上的表现,这些表现揭示了划分的社区与真实社区的匹配程度。
评价方法主要分为三类:pair counting,cluster matching,information theory 基于对计数的度量方法、基于聚类匹配的度量方法和基于信息论的度量方法。
pair counting:
对计数是指计算两个分区中分在同一(不同)社区中的节点对的数量。
Rand index
这是两个分区中正确分类的顶点对数(即在相同或不同的集群中)与总顶点对数的比值。
Jaccard index
即两个分区中同一簇中分类的顶点对数与至少一个分区中同一簇中分类的顶点对数之比。
这是指,在两个分区中都分类在同一社区中的顶点对的数量与至少一个分区中分类在同一社区的顶点对的数量。
J(x,y)比R(x,y)的范围要大一些,均在0-1之间,但是它们并不是在整个0-1的范围内,于是有学者提出调整版的指标,对原有的指标计算一个baseline,baseline是随机划分的社区结果,但是这同样存在问题,因为要事先指定社区的数目和大小。另一个比较好的改进是标准化这些指标,对于计算出的某个指标s(i),我们可以计算随机模型下的mu(i)和标准差,然后对s进行标准化。(mu表示节点与社区外节点连接的概率)
可以证明,Jaccard,Rand和Adjusted Rand指数的z分数是一致的,因此这些度量在统计上是等效的。
Cluster matching:
基于聚类匹配的度量方法旨在基于不同分区内社团重叠的大小在成对群集之间建立对应关系。Girvan and Newman提出了fraction of correctly detected vertices,一个节点所属社区内至少一半的节点与它实际所属社区重合,那么这个节点就是划分正确的,如果划分的社区由两个或以上的真实社团融合而成,那么这个社区内的节点都是划分错误的。由此,划分正确的节点数/所有节点数便是该指标,介于0-1之间。(该方法的定义实际是有些随意的)
information theory:
基于信息论的度量方法,在给定一个分区的情况下,可以通过计算一个人推断另一个分区所需的额外信息量来估算相似性。 如果分区相似,则从一个分区到另一个分区所需要的额外信息就很少。 这样的额外信息可以用作相异性的量度。
补充:香农熵的意义,熵最好理解为不确定性的量度而不是确定性的量度,因为越随机的信源的熵越大。来自信源的另一个特征是样本的概率分布。这里的想法是,比较不可能发生的事情,当它发生了,会提供更多的信息
在度量划分相似度这里,P(x)=P(X=x)表示节点属于x分区的概率。
Normalised mutual information (NMI):
但是这个测度对划分的社区数量敏感,划分的社区数量越多,该值越大,即使在分区效果一般的情况下。
Variation of information (VI):对NMI的改进指标,该指标的最大值是logn。
但是,当要比较的分区彼此非常不同时,该指标可能不适用,并且在特定情况下它表现出不直观的行为。
以上指标均是测度非重叠社区的情况,下面介绍一些测度存在重叠社区的指标。
Omega index:对adjusted Rand index 的拓展
a(jj)是指同时出现在社区j的点对数,这里的j可以大于1,因为存在重叠社区。
e部分表示对null模型计算的结果。
同时,也有对NMI的拓展,考虑Fuzzy covers的指标,还有衡量动态时序网络的指标,其固定同一时间窗口。但是一直没有非常明确的标准可以说明那个测度是好的,但是建议使用基于信息论的测度指标。
需要注意的是指标是比较敏感的,选择不同的指标会得出不同的结论。
C. Detectability
我们在验证算法划分社区结果好坏的时候,前提是假设了网络中存在社区并且社区可以被很好的识别的。但是我们可以确定社区一定可以被检测出来嘛?许多社区检测的算法都是基于稀疏网络的,稀疏网络也会有很多问题,比如对噪音非常敏感,噪音会干扰系统的结构,随机波动可能会使实际的社区无法被检测到。
以最简单的SBM模型为例,总的来说,只要p(in)>p(out)或者k(in)>k(out)/q-1 ,社区就是存在的。但是这也不能说明社区是可以被检测到的。为了解决这样的问题,将所有的算法都试验一次是不太可能的,但是我们知道是什么模型产生的网络,我们可以根据数据拟合SBM模型(使用极大似然),Decelle等研究表明,在无限图的限制中,无论何时,以这种方式获得的分区都会与所植入的分区相关联:
所以,给定k(out),而k(in)在以下范围时,网络中确实存在社区,但是对节点正确分类的概率不会大于随机划分的结果。
所以,并不是像我们一开始认为的那样,满足简单的p(in)>p(out)条件,社区就可以被检测出来,事实是尽管社区存在,但是不一定能被检测出来,在系稀疏的图形中,要求会更高一点,在密集图形中,要求会低一点。
对Girvan and Newman benchmark,长期以来尚不清楚实际可检测性极限位于何处。 Girvan–Newman benchmark不是无限的,总的大小为128,因此没有适当的可检测性转换,而是从通常可检测到群集的方案到通常无法检测到簇的方案平稳过渡。但是了解这个 了解模式的变化仍然很有用。传统的观点是k(in)>k(out),现代的观点是p(in)>p(out),而根据等式14也会得出理论的k(out)值,具体分别是8,12,9,表示如下:
不同的k(out)情况下,三种算法的表现。
图稀疏性是群集变得不可检测的必要条件,但这并不是充分条件。 我们考虑过的模型的对称性也起着重要作用。簇的大小相等,顶点的度数相等。这有助于“混淆”算法。 如果社区的大小不相等,并且顶点的度与社区的大小相关,那么顶点的度越大,其簇越大,则社区检测变得更加容易,因为这些度可以用作组成员身份的代理。
LFR benchmark的模型更为复杂,并且由于顶点度和群落大小分布的异质性较大,因此尚不存在可检测性极限。
D. Structure versus metadata
前面我们提到评估算法性能的时候需要在已知标签的网络上进行试验,一种是在生成的benchmark上试验,包括一些经典的网络,比如SBM、LFR、Girvan and Newman等模型生成的网络,另一种是实际网络,比如知名的空手道俱乐部数据、足球俱乐部数据等。我们希望算法划分的社区和标签社区能够最大程度的匹配上,但是这种想法的前提是原数据的社区同时也是体现网络拓扑结构的社区。
文章使用多种不同的算法在大小不同的网络上进行试验,以NMI作为度量标准,发现算法在小型网络上的结果是比较理想的,在大型网络上表现很差。
因此,通常不保证结构聚类和注释聚类对齐的假设。而标签社区和算法划分社区不一致其实是具有重要意义的。学者在某一个小型网络上通过调整参数使得划分性能非常好,但是这通常是没有道理的,因为它只有在存在一个先验未知的强对应时才有意义。同时,在一个数据集上强制的划分与标签社区对齐并不能保证与其他网络的标签社区匹配得好。另外,我们使用这些算法是希望通过拓扑结构提供改进的顶点分区,如果完全匹配得好,那为什么还需要算法呢?
正确的做法是将结构和标签注释一起使用,而不是坚持要求它们必须匹配。更好的方法不是先验地假设元数据与结构性社区相关。目标是量化元数据和社区之间的关系,并使用它来改善结果。
我们得出结论认为,元数据不应该用作社区检测方法的基础事实,即使元数据可以很好地预测网络结构,标签和社区划分之间的关系也趋于复杂,与我们通常认定的一对一的映射关系是有很大不同的。另外,数据集的注释也会存在大量的噪声,并且有些元数据的标签本质上与结构是没有关系的。
E. Community structure in real networks
虽然benchmark可以用来识别算法的表现,但是我们依然可质疑划分的结果是否是可信的。为了去标注真实网络的社区,我们需要先去发现它们。这些都是有算法来实现的,不同算法的识别不同的对象,但是我们可以认为网络社区的同质性可以被不同算法在不同数据集上体现,而关注不同特征的算法可以用来检测网络的其他特征。
社区的一个稳健特征是大小分布是存在异质性的,这可能可以揭示社区之间的等级性,算法或许识别不出等级但是可以找到混合的分区。
另一个值得关注的问题是社区的质量和大小之间的关系。我们关注单个社区的conductance指标,这个指标是指社区和外部连接的度与社区内部度的比值。最小化该指标可以帮助我们很好地区分社区同时可保证社区内部的紧密联系。同时,该指标对社区的大小并不敏感,于是我们可以使用它来比较不同大小的社区的质量。结果发现,在社区节点数量100左右,该值最低。NCP也可以作为选择产生社区结构模型的指标,即不同size的社区的conductance的分布。
推断实际网络群集属性的另一种方法是使用注释。 尽管我们已经表明带注释的聚类不一定与结构性聚类一致,但只要能够在不同的数据集和注释中一致地找到它们,仍可以导出一般特征。Yang和Leskovec的最新分析质疑了具有重叠社区的网络的普遍情况[,学者们通常认为簇在其边界处重叠,因此在非重叠部分的边缘密度应更大。然而研究发现重叠社区的接待连接概率更大,同时随着重叠部分的增大而增大。下图比较了传统视角和真实重叠社区的特征。
IV. METHODS
有很多算法可以检测图中的社区。根据不同的标准,它们可以被分类,比如实际操作方法(For- tunato, 2010),或潜在的社区概念(Coscia等人,2011)。然而,在大多数应用程序中,只有少数流行的算法被使用。在本节中,我们将对这些方法进行批判性分析。我们展示了预先知道集群数量的优势,以及如何从随机集群技术提供的分区中获得健壮的解决方案。我们讨论了在进化网络中检测社区的方法,以及如何评估检测到的聚类的重要性。
A. How many clusters?
一般来说,对于任何算法来说,唯一可用的初步信息是网络的结构,即,哪些对顶点是相互连接的,哪些是不连接的(可能包括权值)。任何关于社区结构的见解都应该作为程序的输出。当然,事先获得一些关于未知网络划分的信息是很有价值的,因为这样可以大大减少可能解决方案的巨大空间,并增加成功识别社区的机会,在所有可能的预检测输入中,聚类数量q起着重要作用。
B. Consensus clustering
许多聚类技术的特点是随机的,不能提供唯一的答案。一个常见的情况是,当期望的解决方案对应于一个代价函数的极值时,只能通过近似技术找到,结果取决于随机种子和初始条件的选择。不是基于优化的技术有时也具有相同的特征,当为了在计算过程中遇到的多个等效选项中做出选择而采用tie-break规则。
C. Spectral methods
谱图聚类是一种利用图的谱特性来检测聚类的方法(Fortunato, 2010;冯Luxburg, 2006)。几个图矩阵(例如,邻接矩阵,拉普拉斯矩阵等)的特征值谱通常由一组密集的特征值组成,再加上一些由显著的间隙从该特征值中分离出来的偏远特征值。这些异常值对应的特征向量包含了关于网络的大规模结构的信息,如社区结构29。谱聚类是利用特征向量的项作为坐标,在满足空间中生成图顶点的投影。特征向量的第i个元素是顶点i在k维欧几里德空间中的坐标,其中k是所使用的特征向量的个数。通过使用标准的分区聚类技术,如k-means聚类(Mac- Queen, 1967),可以将得到的点分组成簇。
D. Overlapping communities: Vertex or Edge clustering?
软聚类(社区可能重叠)是一个比硬聚类(没有社区重叠)更难的问题。顶点的多重隶属关系的可能性在问题中引入了额外的自由度,导致了可能解空间的巨大扩展。
有人建议,恢复重叠集群的有效途径是组织边缘,而不是顶点。
E. Methods based on statistical inference
统计推断为解决社区检测问题提供了一套强大的工具。标准的方法是在数据上拟合生成网络模型。随机块模型(SBM)是迄今为止最常用的群图属模型(见第II.C节和其中的参考文献)。我们已经看到,它可以描述其他类型的群体结构。
F. Methods based on optimisation
在文献中,优化技术受到了极大的关注。我们的目标是在所有可能的聚类空间中找到一个极值(通常是最大值),该极值表示聚类的质量。质量函数可以表达一个分区或单个集群的优劣。
G. Methods based on dynamics
社区也可以通过在网络上运行动态过程来识别,比如扩散(jeeub等人,2015;Pons和Latapy, 2005年;Rosvall和Bergstrom, 2008;范幅,2000;周,2003 a, b;Zhou和Lipowsky, 2004),自旋动力学(Raghavan等人,2007;Reichardt和Bornholdt, 2006;Ronhovde和Nussinov, 2010;Traag等人,2011),同步(Arenas等人,2006;Boccaletti et al., 2007)等。在这一节中,我们将重点讨论扩散和自旋动力学,它们提供了大多数方法。
H. Dynamic clustering
由于有时间戳的网络数据的可用性越来越高,目前有很多活动在开发方法来分析时间网络(Holme和Saram̈aki, 2012)。特别是,动态社区的检测问题已经得到了很多关注(Fortunato, 2010;Spiliopoulou, 2011)
I. Significance
i et al., 2007)等。在这一节中,我们将重点讨论扩散和自旋动力学,它们提供了大多数方法。
H. Dynamic clustering
由于有时间戳的网络数据的可用性越来越高,目前有很多活动在开发方法来分析时间网络(Holme和Saram̈aki, 2012)。特别是,动态社区的检测问题已经得到了很多关注(Fortunato, 2010;Spiliopoulou, 2011)