课程4——社区发现算法
在课程3里面,介绍了网络里节点的角色,同时也说明了角色和社区的区别。本次课就主要是介绍网络里的社区的作用、性质以及社区发现的算法。
社区的作用
Jure用社会学里的一个例子讲述了网络里不同的路径可能的作用,进而引出了社区的概念。这个例子是Granoetter的关于强关系和弱关系的研究。强调了弱关系对于获取网络里更多信息的价值,而亲近的关系,比如朋友或直接的家人,对于获取信息而言,则是有些多余的联系。
同时,这个强关系理论也解释了为什么容易形成本地化的大聚类系数。关于聚类系数可以参考课程2的内容。
- 对于诸如 A → B A \rarr B A→B和 A → C A\rarr C A→C这样的社交关系, B B B和 C C C也很容易形成很强的社交关系。因为 A A A和他们单独社交的成本更高,会驱使他们相互之间构成社交关系,同时朋友的朋友也更容易获得大家的信任。
Granovetter的研究是理论性质的,随着大规模网络数据的出现,已经有了研究来支持这个理论。同时也出现了一些metric来衡量关系(边)的强弱。
边重叠(Edge Overlap)
O i j = ∣ ( N ( i ) ⋂ N ( j ) ) ∖ { i , j } ∣ ∣ ( N ( i ) ⋃ N ( j ) ) ∖ { i , j } ∣ O_{ij} = \dfrac{|(N(i)\bigcap N(j)) \setminus \{i,j\}|}{|(N(i)\bigcup N(j)) \setminus \{i,j\}|} Oij=∣(N(i)⋃N(j))∖{
i,j}∣∣(N(i)⋂N(j))∖{
i,j}∣,其中 N ( i ) N(i) N(i)是节点 i i i的所有邻居节点的集合。
O i j O_{ij} Oij表明了两个节点的邻居的重合程度,取值范围是 [ 0 , 1 ] [0,1] [0,1]。用边重叠指标可以定量地给边定义强弱。如果 O i j = 0 O_{ij}=0 Oij=0,则节点 i i i和 j j j之间的边可以叫做局部桥,是一种很弱的连接,而 O i j = 1 O_{ij}=1 Oij=1,则这个边是强连接。它两端点的所有邻居都是重叠的。
边重叠是对网络结构的一种度量,它可以帮助解释Granovetter的理论。那么这种度量是否具有实际的意义?Jure在课程里使用了欧洲人通话网络的例子验证了,在实际的网络里,具有高边重叠的边,确实是有着强连接关系的。这里的强连接关系是采用的两个人之间的电话通话单位时间内的次数来衡量的。
这些理论和实际的研究都表明了真实世界的网络结构里存在着密集联系的社区(紧密强连接的一些节点),而基本的概念特点如下图所示。
在图中,社区内部的连接基本会是强连接,而社区间的连接则是弱边。
社区发现算法
现在的问题就变成了:如何自动的从网络里找出社区。
图数据的MNIST
就如同CV社区有自己的“Hello World”的数据集——MNIST一样,图数据也有自己的Hello World数据集——Zachary空手道俱乐部。这是一个真实的数据,可以很好的展示社区发现、节点分类等算法的入门。其基本数据如下图所示,感兴趣的自己去找一下就好了。
这个数据展示了,无需借助其他的特征数据,仅仅凭借网络的结构信息就可以完成机器学习的任务。所以在图研究界非常有名,算是图研究的MNIST。
基本概念
社区(Community):
一群紧密相连的节点
Modularity(这个概念Wiki上没找到中文翻译,这里就直接用原文了):
衡量网络被分割成社区的好坏的指标
Modularity用字母 Q Q Q表示。
Q ∝ ∑ s ∈ S [ ( # e d g e s w i t h i n g r o u p s ) − ( e x p a c t e d # e d g e s w i t h i n g r o u p s ] Q \propto \sum_{s \isin S} [(\# \space edges \space within \space group \space s) - (expacted \space \# \space edges \space within \space group \space s] Q∝∑s∈S[(# edges within group s)−(expacted # edges within group s]
其中 s s s是可以从网络中分割出的相互不重复的社区集合 S S S中的一个。 Q Q Q表明了一个实际网络结构的社区内部的连接数和一个可能的节点之间的期望连接数的差距。此处又又出现了之前几次课里都出现的那个概念,即需要一个对比网络,一般是随机网络来比较手上的网络的结构特殊性。这里使用的比对图模型和第三讲里面用于计算Motif的Configuration Model很类似,构建方式如下:
给定一个图 G G G,有个 n n n节点和 m m m条边,构建一个比对图 G ′ G' G′:
- 它有和 G G G相同的度分布,但是一致性地随机连接。
- G ′ G' G′是一个多图,即两点之间可以有多条边。
按照上面这个定义,随机图 G ′ G' G′中节点 i i i和 j j j(它们分别有 k i k_i ki和 k j k_j kj度)之间的期望连接数量是 k i k j 2 m \dfrac{k_ik_j}{2m} 2mk