CS224W摘要13.Community Detection in Networks

Posted oldmao_2000

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CS224W摘要13.Community Detection in Networks相关的知识,希望对你有一定的参考价值。


CS224W: Machine Learning with Graphs
公式输入请参考: 在线Latex公式

Community Detection in Networks

先看结论:

网络中会存在聚集的Community,其内部关系是strong relation,各个Community之间存在weak relation。

Social network视角下的图

在社交网络中,可以把人看做节点,人与人的关系看做边,由于人的关系疏密不一致,可以分成两种,而在边上传递着各种信息流:

例如,Mark Granovetter在1960年代的博士研究中发现,社交网络中人获取信息的方式不是通过周围的好友,往往是通过一些熟人的方式来获取,例如:同事等。
这个现象出现的原因在于friendships的两个方面:

  1. Structural: Friendships span different parts of the network.
    § Structurally embedded (tightly-connected) edges are also socially strong
    § Long-range edges spanning different parts of the network are socially weak
  2. Interpersonal: Friendship between two people is either strong or weak
    当前comunity中的信息往往都是已知的(冗余redundant),从comunity之间的long-range边才能获取更多不同信息,从而帮助当前节点解决问题,例如找工作。

Triadic Closure

Triadic Closure是指在社交网络中,节点往往有三角形的relation关系。
If 𝑩 and 𝑪 have a friend 𝑨 in common, then:
𝑩 is more likely to meet 𝑪
§ (since they both spend time with 𝑨)
𝑩 and 𝑪 trust each other
§ (since they have a friend in common)
𝑨 has incentive to bring 𝑩 and 𝑪 together
§ (since it is hard for 𝑨 to maintain two disjoint relationships)
有研究表明,青少年女生low clustering coefficient,那么suicide倾向较高。
人类就是群居动物。

Edge overlap

下面来看如何量化两个节点间关系的强弱:
O i j = ∣ ( N ( i ) ∩ N ( j ) ) − { i , j } ∣ ∣ ( N ( i ) ∪ N ( j ) ) − { i , j } ∣ O_{ij}=\\cfrac{|(N(i)\\cap N(j))-\\{i,j\\}|}{|(N(i)\\cup N(j))-\\{i,j\\}|} Oij=(N(i)N(j)){i,j}(N(i)N(j)){i,j}
N ( i ) N(i) N(i)表示节点i的邻居集合。
上式中分子是除了ij节点本身外二者的共同邻居,分母是除了ij节点本身外二者所有邻居。

有了这个量化值后,可以看一些实例数据对60年代的理论分析的实证。

上图中,蓝色是真实的通话数据,红色是保持网络结构不变随机分配通话数量后的结果。
横坐标通话数量和纵坐标edge overlap之间具有正相关性。
将部分数据可视化后(密集community颜色越红):

将通信数量随机分配后:

从移边分解实验可以看到

红色是Low to high的overlap移边方式,图分解更快。
黑色是High to low的overlap移边方式,图分解较慢。

Network Communites

下面在看几个从图中找Network Community的例子,然后看如何在图中用数学的方式把Network Community给定义出来。
Network Community的别名还有:clusters, groups, modules

例子

Zachary’s Karate club network

在在线广告投放中,把广告商和查询关键字看做节点,将广告商投放的关键字作为边。可以识别出有针对性的投放区域。

NCAA Football Network,节点是球队,边是球队之间的比赛,原始图这样:

聚类后发现和某些conference(赛区)有关:

下面看如何找community。

Network Communites的模块化程度

Communities: sets of tightly connected nodes
定义: Modularity 𝑸
A measure of how well a network is partitioned into communities.
Given a partitioning of the network into groups disjoint s ∈ S s\\in S sS:
Q ∝ ∑ s ∈ S [ ( # edges within group  s ) − ( expeted # edges within group  s ) ] Q\\propto \\sum_{s\\in S}[(\\text{\\# edges within group }s)-(\\text{expeted \\# edges within group }s)] QsS[(# edges within group s)(expeted # edges within group s)]
这里的后面一项比较难理解,是一个期望,实际上是需要使用随机图(Null Model)来求。

Null Model

给定一个实际的图 G G G,该图包含 n n n个节点, m m m条边,根据图 G G G保持节点和边数量不变(Same degree distribution but uniformly random connections),重新分配边的连接得到图 G ′ G' G,而且图 G ′ G' G是multigraph,就是允许两个节点间有多条边。
接下来算期望。

如果把边看成双向的,那么共有 2 m 2m 2m条有向边(这样算是因为节点都象上图一样切开了,每个点的条幅数量加起来就是 2 m 2m 2m),对于出度为 k i k_i ki i i i节点,其重新连接到节点 j j j的概率是: k j 2 m \\cfrac{k_j}{2m} 2mkj,因此重连 i , j i,j i,j的边的数量期望是:
k i ⋅ k j 2 m = k i k j 2 m k_i\\cdot \\cfrac{k_j}{2m}=\\cfrac{k_ik_j}{2m} ki2mkj=2mkikj
那么计算 G ′ G' G的期望总边数为:
G e d g e s _ n u m ′ = 1 2 ∑ i ∈ N ∑ j ∈ N k i k j 2 m = 1 2 ⋅ 1 2 m ∑ i ∈ N k i ( ∑ j ∈ N k j ) = 1 4 m 2 m ⋅ 2 m = m G'_{edges\\_num}=\\cfrac{1}{2}\\sum_{i\\in N}\\sum_{j\\in N}\\cfrac{k_ik_j}{2m}=\\cfrac{1}{2}\\cdot\\cfrac{1}{2m}\\sum_{i\\in N}k_i\\left(\\sum_{j\\in N}k_j\\right)=\\cfrac{1}{4m}2m\\cdot2m=m Gedges_num=21iNjN2mkikj=212m1iNkijNkj=4m12m2m=m

这里因为条件中讲了,所有节点的边(度)加起来是 2 m 2m 2m,因此:
∑ i ∈ N k i = ∑ i ∈ N k j = 2 m \\sum_{i\\in N}k_i=\\sum_{i\\in N}k_j=2m iNki=iNkj=2m
这里也证明了Null Model中与原图的度是一致的。
注意:Null Model可以用在有权图中,有权图可以把权重与度做乘积即可。

Modularity

具体来算Modularity,根据上面的公式:
Q ∝ ∑ s ∈ S [ ( # edges within group  s ) − ( expeted # edges within group  s ) ] Q\\propto \\sum_{s\\in S}[(\\text{\\# edges within group }s)-(\\text{expeted \\# edges within group }s)] QsS[(# edges within group s)(expeted # edges within group s)]
加上具体的数学表达,Modularity公式变成:
Q ( G , S ) = 1 2 m ∑

以上是关于CS224W摘要13.Community Detection in Networks的主要内容,如果未能解决你的问题,请参考以下文章

CS224W摘要总纲(已完结)

CS224W摘要总纲(已完结)

CS224W摘要10.Knowledge Graph Embeddings

CS224W摘要03.Node Embedding

CS224W摘要05.Message passin and Node classification

CS224W摘要15.Deep Generative Models for Graphs