狠狠撸

狠狠撸Share a Scribd company logo
Community Detection
-? Girvan Newman Algorithm
-? Newman Algorithm
Community Detectionって?
あるネットワークの中で、	
 ?
密にリンクされたノードの集まりを見つける。	
 ?

コミュニティ間は疎

コミュニティ内は密
何の役に立つ?
似た特徴を持つノード同士が密にリンクされる傾向	
 ?
(Assorta)ve	
 ?Mixing)を持つネットワークにおいて	
 ?

Social Networks

WWW

Route

各ノードの特徴情報を用いずに、	
 ?
ネットワーク構造から似たノードのグループを発見できる。	
 ?
2つの階層クラスタリングアルゴリズム
Girvan-Newman Algorithm
Newman,	
 ?M.E.J.,	
 ?Girvan,	
 ?M.,	
 ?2004.	
 ?Finding	
 ?and	
 ?evalua)ng	
 ?community	
 ?structure	
 ?in	
 ?networks.	
 ?	
 ?
Physical	
 ?Review	
 ?E,	
 ?69(2),	
 ?026113.	
 ?	
 ?

Newman Algorithm
Newman,	
 ?M.E.J.,	
 ?2004.	
 ?Fast	
 ?algorithm	
 ?for	
 ?detec)ng	
 ?community	
 ?structure	
 ?in	
 ?networks.	
 ?
Physical	
 ?Review	
 ?E,	
 ?69(6),	
 ?066133.	
 ?	
 ?
2つの階層クラスタリングアルゴリズム
Girvan-Newman Algorithm

Newman Algorithm
2つの階層クラスタリングアルゴリズム
Girvan-Newman Algorithm

Newman Algorithm
Girvan-Newman Algorithm
Girvan-Newman Algorithm
グラフの中で、最も「コミュニティ間をつないでいる」可能性の高いエッジを見つけ、	
 ?
そのエッジを除去する。	
 ?
コミュニティ間をつなぐエッジ、どう見つける?
Shortest-?‐path	
 ?betweenness	
 ?
同一コミュニティ内の二点間の最短経路はほとんど重複しないはず。	
 ?

別々のコミュニティに属する二点間の最短経路の	
 ?
多くが同じエッジを通過するはず。	
 ?
デンドログラム
出力はコミュニティ分割の入れ子構造を表すデンドログラム。	
 ?

ネットワーク	
 ?

デンドログラム	
 ?
デンドログラム

どのコミュニティ構造が最適かを計る指標が必要。	
 ?
Modularity Q
N

Q = ∑ (eii ? a )
2
i

i=1

N

(-?‐1/2<=Q<=1)	
 ?

: コミュニティ数	
 ?

eii : 総エッジ数に対する	
 ?

  両端がコミュニティ i	
 ?に含まれるエッジの割合	
 ?

ai : 総エッジ数に対する	
 ?

  少なくとも片端がコミュニティ i	
 ?に含まれるエッジの割合	
 ?
Modularity Qの意味
N

Q = ∑ (eii ? a )
2
i

i=1
-?‐? 「コミュニティ内のエッジ数が多い」だけでは不十分。	
 ?
-?‐? それだと全ノードが同じコミュニティに属している場合が最大。	
 ?
-?‐? ランダムグラフにおけるコミュニティ内エッジ数の期待値と比較。	
 ?
Modularity Qの意味
同じコミュニティに属するノードv,	
 ?ノードwの組み合わせについて	
 ?

1
=
∑(Avw ? Pvw )δ (Cv, Cw )
2m vw
vw間にエッジが張られていれば1,	
 ?	
 ?
無ければ0	
 ?

同じ度数のランダムグラフで	
 ?
vw間にエッジが張られる確率	
 ?
Modularity Qが最大になる構造を採用する。

(Newman	
 ?and	
 ?Girvan,	
 ?2004)	
 ?

Community	
 ?数	
 ?
Girvan-Newman Algorithmの欠点
計算量が非常に大きい。	
 ?
-?‐? 消去するエッジを見つけるための	
 ?
	
 ?betweennessの計算がO(mn)	
 ?
	
 ?
-?‐? 全エッジを消去するためm回繰り返すので	
 ?
	
 ?合計O((m^2)n)	
 ?
Newman Algorithm
Newman Algorithm
Betweennessの計算はコストが高い。	
 ?
モジュラリティ値を上げる事が目的なら、一々betweennessの計算をせずに	
 ?
最初からモジュラリティについての最大化問題と捉えたらどうか。	
 ?
コミュニティ併合時のモジュラリティ上昇量に着目	
 ?

ΔQ	
 ?

モジュラリティQ=0	
 ?

モジュラリティQ=0+ΔQ	
 ?
コミュニティ合併時のモジュラリティ上昇量に着目

合併時のモジュラリティ上昇が大きい	
 ?

合併してもモジュラリティ上昇は少ない	
 ?

ΔQij = Qnew ? (Qi + Q j ) = eij + e ji ? 2ai a j = 2(eij + ai a j )
Newman Algorithm
Newman Algorithmの計算量
	
 ?
-?‐? コミュニティの併合とΔQの再計算にO(m+n)	
 ?
-?‐? 全ノードが一つのコミュニティになるまで繰り返す	
 ?
	
 ?ので、全体としてO((m+n)n)	
 ?
-?‐	
 ? 後にデータ構造を工夫したCNMアルゴリズムに
	
 ?よってO(n	
 ?log^2n)まで小さくなった。	
 ?
	
 ?
Girvan Newman VS Newman

精度はほとんど同じか、Girvan-?‐Newmanの方が少し良い程度。	
 ?
Girvan Newman VS Newman   (Pythonで実装)
まとめ
Girvan-?‐Newman	
 ?Algorithm	
 ?
-?‐? トップダウンでコミュニティを分割していく	
 ?
-?‐? Shortest-?‐path	
 ?betweennessに基づいてエッジを消去	
 ?
-?‐? O((m^2)n)	
 ?
Newman	
 ?Algorithm	
 ?
-?‐? ボトムアップでコミュニティを併合していく	
 ?
-?‐? モジュラリティの最大化が目的	
 ?
-?‐? コミュニティ併合時のモジュラリティ上昇に着目	
 ?
-?‐? O((m+n)n)	
 ?
References
-?‐	
 ?Girvan-?‐Newman	
 ?Algorithm	
 ?
Newman,	
 ?M.E.J.,	
 ?Girvan,	
 ?M.,	
 ?2004.	
 ?Finding	
 ?and	
 ?evalua)ng	
 ?community	
 ?structure	
 ?in	
 ?networks.	
 ?	
 ?
Physical	
 ?Review	
 ?E,	
 ?69(2),	
 ?026113.	
 ?	
 ?
(hZp://arxiv.org/abs/cond-?‐mat/0308217)	
 ?

-?‐	
 ?Newman	
 ?Algorithm	
 ?
Newman,	
 ?M.E.J.,	
 ?2004.	
 ?Fast	
 ?algorithm	
 ?for	
 ?detec)ng	
 ?community	
 ?structure	
 ?in	
 ?networks.	
 ?	
 ?
Physical	
 ?Review	
 ?E,	
 ?69(6),	
 ?066133.	
 ?
(hZp://arxiv.org/abs/cond-?‐mat/0309508)	
 ?	
 ?

-?‐	
 ?CNM	
 ?Algorithm	
 ?
Clauset,	
 ?A.,	
 ?Newman,	
 ?M.E.J.,	
 ?Moore,	
 ?C.,	
 ?2004.	
 ?Finding	
 ?community	
 ?structure	
 ?in	
 ?very	
 ?large	
 ?networks.	
 ?	
 ?
Physical	
 ?Review	
 ?E,	
 ?70(6),	
 ?066111.	
 ?	
 ?
(hZp://arxiv.org/abs/condmat/0408187)	
 ?

-?‐	
 ?各種コミュニティ発見アルゴリズムの比較	
 ?
Lancichine`,	
 ?A.,	
 ?Fortunato,	
 ?S.,	
 ?2009.	
 ?Community	
 ?detec)on	
 ?algorithms:	
 ?a	
 ?compara)ve	
 ?analysis.	
 ?	
 ?
Physical	
 ?Review	
 ?E,	
 ?80(5),	
 ?056117.	
 ?
(hZp://arxiv.org/abs/0908.1062)	
 ?	
 ?

More Related Content

Community detection