GNN-CS224W:13 Community Structure in Networks

这一章没完全看完

connection between edge strength and edge structure

edge strength

在social network中可以用两个人之间联系的频率来得到,联系的频率越高,则strength越大,否则越小

edge structure

表示这个edge是处于一个cluster内部,还是处于不同cluster之间

edge overlap

用edge overlap来表示edge structure

O i j = ∣ ( N ( i ) ∩ N ( j ) ) − { i , j } ∣ ∣ ( N ( i ) ∪ N ( j ) ) − { i , j } ∣ O_{ij}=\frac{| (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)表示node i 的 neighbor 集合,分母表示两个node所有的neighbor,分子表示两个node的共同neighbor,所以 O i j O_{ij} Oij表示node i 和 node j 的所有neighbor中共同neighbor的比例,

O i j O_{ij} Oij为0到1的值

O i j O_{ij} Oij越大,共同neighbor越多,这个edge更可能处在一个network的cluster里

O i j = 0 O_{ij}=0 Oij=0时,the edge is a local bridge

connection

  1. stronger edge strength 和 O i j O_{ij} Oij 大 共同发生
    同一个cluster内部的人之间的联系次数更多
  2. weaker edge strength 和 O i j O_{ij} Oij 小 共同发生
    不同cluster之间的人联系次数相对更少

examples

  1. 信息流动更多是通过weak edge来进行的
    因为一个cluster内部的信息同质化非常严重,所以cluster之间的交流会交换不同的信息,找工作的信息更多的是从熟人而不是亲密朋友之间得到的
  2. 如下图为一个mobile call graph,点表示一个手机号,边表示不同手机号之间的联系次数,联系频繁的(红色)边都处于cluster内部,联系少的(黄色)边处于cluster之间
    在这里插入图片描述

community detection

Community指的是network里的cluster,例如social network里联系紧密的小团体

Modularity Q Q Q

用来衡量已经被分开的groups of nodes 是否被切分的合理,可以作为community detection的优化目标。

Q ∝ ∑ s ∈ S [ ( #   e d g e s   w i t h i n   g r o u p   s ) − ( e x p e 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 \in S}[(\#\ edges\ within\ group\ s) - (expected\ \#\ edges\ within\ group\ s)] QsS[(# edges within group s)(expected # edges within group s)]

S S S为被切分的各个集合

( #   e d g e s   w i t h i n   g r o u p   s ) (\#\ edges\ within\ group\ s) (# edges within group s)表示实际的集合 s s s里的edge数量

( e x p e c t e d   #   e d g e s   w i t h i n   g r o u p   s ) (expected\ \#\ edges\ within\ group\ s) (expected # edges within group s)表示类似的random graph里的edge数量的期望

( #   e d g e s   w i t h i n   g r o u p   s ) − ( e x p e c t e d   #   e d g e s   w i t h i n   g r o u p   s ) (\#\ edges\ within\ group\ s) - (expected\ \#\ edges\ within\ group\ s) (# edges within group s)(expected # edges within group s) 表示实际的edge数量比期望的edge数量多多少,如果大于0,则比期望的多,则community内部联系比较紧密;如果小于0,则比期望的少,则community内部联系不太紧密

Modularity Q Q Q 整体上衡量的是各个小community内部是否联系很紧密

Configuration Model

就是之前的subgrpah mining里的生成random graph方法

生成random graph时是整个graph一起生成,计算Modularity时是按局部community来计算

给定了graph里要包括 m m m条边, m m m条边对应了 2 m 2m 2m个edge的endpoint,每个node的degree是给定的,degree代表了node作为endpoint的次数。

生成edge的方法为:每次从 2 m 2m 2m个endpoint中随机挑选两个,建立一条edge

edge可以从一个node出发并指向自己;两个node之间也可以有多条edge

the expected num of edge between node i and node j is

k i ⋅ k j 2 m = k i k j 2 m k_i \cdot \frac{k_j}{2m}=\frac{k_i k_j}{2m} ki2mkj=2mkikj

k i k_i ki k j k_j kj为node i and node j 的degree, m m m为总的node数量

node i的degree为 k i k_i ki,表示要随机挑选 k i k_i ki个 endpoint 和 node i i i 构成edge,

总endpoint数量为 2 m 2m 2m,node j 作为endpoint的次数为 k j k_j kj,则每次挑选到node j 的概率为 k j 2 m \frac{k_j}{2m} 2mkj

node i 要挑选 k i k_i ki次,则node i and node j 之间edge数量的期望为 k i k j 2 m \frac{k_i k_j}{2m} 2mkikj

Configuration Model里不存在真实的random的graph,而是用node之间边的期望来代表这个graph的平均情况

Modularity Q Q Q

Q ( G , S ) = 1 2 m ∑ s ∈ S ∑ i ∈ S ∑ j ∈ S ( A i j − k i k j 2 m ) Q(G, S)=\frac{1}{2m} \sum_{s \in S} \sum_{i \in S} \sum_{j \in S}(A_{ij} - \frac{k_i k_j}{2m}) Q(G,S)=2m1sSiSjS(Aij2mkikj)

G G G为给定graph, S S S为给定的node partition, A i j A_{ij} Aij为adjacency matrix 中的值

A i j A_{ij} Aij为实际的node i 和node j 之间的边的数量, k i k j 2 m \frac{k_i k_j}{2m} 2mkikj为期望边的数量

在给定的graph的各个node community中,node之间的edge数量相比期望越大,则 Q ( G , S ) Q(G, S) Q(G,S)越大,否则越小

衡量的是各个小的node community中的紧密程度

Q Q Q的取值范围为 [ − 1 , 1 ] [-1,1] [1,1],这是因为有 1 2 m \frac{1}{2m} 2m1做了normalize

Q Q Q greater than 0.3-0.7 means significant community structure

如果graph的edge有权重,Modularity也可以修改成对应的版本,修改方法为 A i j A_{ij} Aij改成边的权重, 2 m 2m 2m改成graph里所有edge的权重的和

Louvain Algorithm

一种复杂度为 O ( n log ⁡ n ) O(n \log n) O(nlogn)的community detection 算法,n为node num

特性
  1. Provides hierarchical communities
  2. Fast
  3. Rapid convergence
  4. High modularity output

Widely utilized to study large networks

phase 1

only allow local changes to node-communities memberships

先把每个node初始化为独立的community,依次遍历各个node,每个node执行以下操作:

  1. 比较node的每个neighbor,计算如果node添加到neighbor所在的community 的Modularity Delta

    问题: 依次遍历node时,每个node都必须添加到一个community里吗?

  2. 把node添加到Modularity Delta最大的那个neighbor所在的community
    这里的Modularity Delta必须是正的,即把node移动到另一个community后Modularity要增加

一遍又一遍的遍历所有node,直到移动任何一个node都不能再增加Modularity

遍历的对象始终是node,有可能node是一个独立的community然后合并到了另一个community,也有可能从一个community中移除然后添加到了另一个community

这是一种贪心算法

遍历node的顺序不同,最后形成的community也会不同

但是不同的顺序对整体的Modularity影响不大

Modularity Gain

node i 从community D移动到community C时的Modularity Gain:
Δ Q ( D → i → C ) = Δ Q ( D → i ) + Δ Q ( i → C ) \Delta Q(D \rightarrow i \rightarrow C)=\Delta Q(D \rightarrow i) + \Delta Q(i \rightarrow C) ΔQ(DiC)=ΔQ(Di)+ΔQ(iC)

前后两种partition的Modularity 中只有community D和C是不同的,所以只要计算这两个community的Modularity即可

Δ Q ( D → i ) \Delta Q(D \rightarrow i) ΔQ(Di)为原来包括 i i i的community和后来没有 i i i的community的Modularity的差

Δ Q ( i → C ) \Delta Q(i \rightarrow C) ΔQ(iC)为原来不包括 i i i的community和后来包括 i i i的community的Modularity的差

在这里插入图片描述
在这里插入图片描述

Q ( C ) = 1 2 m ∑ i , j ∈ C [ A i j − k i k j 2 m ] = ∑ i , j ∈ C A i j 2 m − ( ∑ i ∈ C k i ) ( ∑ j ∈ C k j ) ( 2 m ) 2 = ∑ i n 2 m − ( ∑ t o t 2 m ) 2 Q(C)=\frac{1}{2m}\sum\limits_{i,j \in C} [A_{ij} - \frac{k_i k_j}{2m}] \\=\frac{ \sum_{i,j \in C} A_{ij}}{2m} - \frac{ (\sum_{i \in C} k_i) (\sum_{j \in C} k_j)}{(2m)^2} \\=\frac{ \sum_{in} }{2m} - ( \frac{ \sum_{tot} }{2m} )^2 Q(C)=2m1i,jC[Aij2mkikj]=2mi,jCAij(2m)2(iCki)(jCkj)=2min(2mtot)2

∑ i n \sum_{in} in ∑ t o t \sum_{tot} tot

问题:算一个具体node时为什么要算community所有node的所有edge

问题
  1. phase 1 时只有node被考虑吗?如果已经没有node了会怎么样?如果neighbor已经属于community了,那当前node是要添加到那个community里吗?
  2. i添加到C里为什么要让C中每个node的边都加进来?
  3. 计算community C时的m是什么?是其中所有node的degree的和还是其中所有edge的数量?
  4. phase 1以后会把所有community抽象成一个node来处理吗?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值