Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

コミュニティ分類アルゴリズムの高速化とソーシャルグラフへの応用

5,111 views

Published on

clique percolation methodの有向グラフにおける高速化と,http://smartlist.bz へ応用した解説.

Published in: Technology
  • Be the first to comment

コミュニティ分類アルゴリズムの高速化とソーシャルグラフへの応用

  1. 1. コミュニティ分類アルゴリズムの高速化と ソーシャルグラフへの応用 @mosa_siru 113年2月15日金曜日
  2. 2. 本研究の要旨 • グラフ理論におけるコミュニティ抽出アルゴリ ズムclique percolation methodを高速化 ‣ 無向グラフにおける高速化手法を、有向グ ラフに応用 • Twitterのコミュニティ分類を行うウェブサイー ビスを作成 http://smartlist.bz • ソーシャルグラフをコミュニティ抽出し、その コミュニティ構造を明らかにする 213年2月15日金曜日
  3. 3. コミュニティとは • 部分グラフのうち、内部に枝が相対的に多く見出され るようなもの • 様々な厳密な定義と分類アルゴリズムが存在 ‣ コミュニティのオーバーラップ(頂点が複数のコミュニティに属 すること)を許すか否かで二分される 313年2月15日金曜日
  4. 4. コミュニティ分類手法 オーバーラップを許さない手法 オーバーラップを許す手法 • グラフ分割 • clique percolation method • 階層的クラスタリング • 線グラフ化 • Girvan-Newman Algorithm • Girvan-Newman Algorithm の拡張 • モジュラリティ最適化 • Modularityの拡張 • Surprise最適化 有名なclique percolation method (CPM) Palla et al. 2005[1] に焦点を当てる. 413年2月15日金曜日
  5. 5. CPMのコミュニティ定義 • 以下無向グラフとする.自然数 k を取り、頂点数 k の クリーク(k-クリーク)を用いて「k-クリークコミュ ニティ」を定義 • k-クリークコミュニティ:隣接するk-クリークを経由 して互いに行き来できるクリーク集合 • 隣接: k - 1 個の頂点を共有すること k = 4 での例. 三角形を共有すれば隣接する. 5 4-クリークコミュニティの例13年2月15日金曜日
  6. 6. CPMの特徴 • オーバーラップを許容 • あるコミュニティの生成過程が他のコミュニティに影 響されることはない • ローカル(辺や頂点が変更されても,コミュニティへ の影響は局所的である) • 確率的な手法や近似を行っていないため,決定性があ り,結果に再現性がある. • k の値を変更することで,抽出条件の厳しさを調整す ることができる. ‣ 前スライドの例は, k = 3 で全ての頂点が1つのコミュニティに. 613年2月15日金曜日
  7. 7. CPMの実装 • CFinder: Palla et al. 2005 [1] ‣ 原型となる実装.ソフトウェア化されている. • Sequential CPM (SCP): Kumpula et al. 2007 [2] ‣ 疎なグラフで,k = 3, 4 程度で高速. • CPM on steroids (COS): Gregori et al. 2012 [3] ‣ 並列計算を可能にし,プロセッサーの数に比例して高速化. • fast CPM (f-CPM):Reid et al. 2012 [4] ‣ CFinderを高速化し,巨大で密なグラフも計算可能にする. 713年2月15日金曜日
  8. 8. CFinderのアルゴリズム(1) • k-クリークコミュニティ定義において,以下の2つは 同値 1. 「k - 1個の共有頂点を持つk-クリーク同士を経由して互いに行き来 できるクリーク集合」 2. 「k - 1個以上の共有頂点を持つ頂点数 k 以上の極大クリーク同士 を経由して互いに行き来できるクリーク集合」 ‣ n-クリーク (n≧k) は,それ自体が k-クリークコミュニティをな し,クリーク同士の共有頂点もクリークをなすため. 4-クリークが3-クリークコミュニティをなす例.13年2月15日金曜日
  9. 9. CFinderのアルゴリズム(2) 1. グラフ上の極大クリークを (1) 元のグラフ (4) k-クリークコミュニティ 全て抽出 2. 極大クリーク間の 共有頂点数を全て調べ, 行列で表示 極大クリーク間の 共有頂点を見る 連結成分を抽出 (クリークグラフ) (2) クリークグラフ (3) クリークグラフへの操作 3. k 以上の対角成分,k - 1 4 2 2 1 k=4 1 0 0 0 対角成分は k 以上, 以上の非対角成分を残す 2 3 1 2 0 0 0 0 それ以外の成分は (k-1) 以上を残す. 2 1 4 3 0 0 1 1 1 2 3 5 0 0 1 1 4.この操作によりできた 2 グラフの連結成分が 4 3 1 2 k- クリークコミュニティ. 2 1 5 4 3 913年2月15日金曜日
  10. 10. CPMの計算困難性(1) • 極大クリーク数の二乗回,共有頂点数を調べる必要あり ‣ グラフが密な場合,大量に極大クリークが存在することがある.(例: ソーシャルグラフ) ‣ カリフォルニア工科大学生のfacebookネットワークでは, 頂点数769 に対し極大クリーク数は31745.k = 5 での隣接する極大ク リーク対は170万以上にのぼる. (Reid et. al. 2011) ‣ このような例では,極大クリーク対はほとんど同じ頂点を共有する. ‣ 極大クリーク数が多くなる理由として,大きな極大クリークから一部の 枝を取り除くと,大量の極大クリークが生成されることが挙げられる. (例) 6-クリークから辺を2本取り除くと, 4つの極大クリークが生成される.13年2月15日金曜日
  11. 11. CPMの計算困難性(2) • 頂点や枝によって k- クリークコミュニティは表現できな い.膨大な数の k- クリーク集合か極大クリーク集合で表 す必要がある. ‣ k-クリークコミュニティは, k- クリークに属していないような (k - 1)-ク リークを含みうるため(図). ‣ あるクリークが k- クリークコミュニティのどれかのクリークに隣接する か否か調べるためには,コミュニティ内の全ての極大クリークか k- クリ ークに対し共有頂点数を調べねばならない. (例)k = 4. 緑と橙の頂点はk-クリークコミュニティ をなすが,青の頂点はこのコミュニティに含まれ ない.13年2月15日金曜日
  12. 12. fast CPM (f-CPM) • クリークグラフを作らない.極大クリーク間の不要な隣接 判定を行わないことにより高速化. ‣ 極大クリークAとBが隣接し,BとCが隣接することがわかったら,A, B, Cは1つのコミュニティに属しているので,AとCが隣接するか否か調べ る必要はない. ‣ 1つも共有頂点を持たない極大クリーク同士の共有頂点数は調べる必要 はない. • 密なネットワークに対してもCPMが適用できるようにな る. 1213年2月15日金曜日
  13. 13. directed CPM (CPMd) • 有向グラフに対するCPM.Palla et al. 2007 [5] ‣ 以下のように有向クリークを定義した上でのCPM. ‣ 枝の向きを無視してCPMすることはできるが,きちんと向きを考慮にい れる. • 有向クリークの定義:「ある部分グラフにおいて,任意の 頂点間に枝が存在し,DAGである(=閉路を持たな い).」 ‣ ただし双方向枝( )がある場合は,それを無視した上で閉路判定する. ‣ Palla et al. 2007 [5]の定義とは異なるが,同値な定義を採用. 1313年2月15日金曜日
  14. 14. 有向クリークの例 (a) 双方向枝なし (b) 双方向枝なし 0 1 0 2 2 3 2 2 (c) 双方向枝あり (d) 双方向枝あり 0 1,2 1 1,2 2,3 2,3 1,2 2 有向クリークである 有向クリークでない 1413年2月15日金曜日
  15. 15. 提案手法「fast CPMd 」(f-CPMd) • CPMdの既存手法では,有向クリークを抽出した後, CFinderと同様のアルゴリズムを用いていた. • ここにf-CPMと同様の改良を施すことで高速化する. 提案手法のアルゴリズム 1. 無向グラフにし,全ての極大クリークを列挙 ‣ Bron-Kerbosch Algorithm [6] の高速化 (Koch et al. 2001 [7]) 2. 極大クリークに対し,有向グラフにおいて対応する部分グラフから双方向 枝を取り除き,DAG判定 3. 得られた有向極大クリーク集合を用いてf-CPMを行う 1513年2月15日金曜日
  16. 16. Twitter SmartList • 提案手法「f-CPMd」により有向なソーシャルグラフのコ ミュニティ抽出が可能になった. • Twitterのリスト機能作成を補助するサービス「Twitter SmartList」(http://smartlist.bz)を作成. ‣ リスト機能:特に見たいユーザーをグループ分けする機能 ‣ 600人以上のユーザーに利用され,非常に良い評判を得ている. • Twitter APIからフォローネットワークを 取得した. ログインユーザーがフォローしている ユーザーに頂点を限定. 1613年2月15日金曜日
  17. 17. 1713年2月15日金曜日
  18. 18. 提案手法の速度評価実験(1) • CPMdとf-CPMdの速度を比較. • データセット SmartListで取得した,あるユーザーを基点にしたフォロ ーネットワーク(下図)において,p|V|個 (0<p≦1)の頂点を ランダムに選んでデータセットを複数作成 頂点数 |V| 380 枝数 |E| 5600 有向極大クリーク数 4063 有向極大クリークの平均頂点数 6.216 有向最大クリークの頂点数 14 1813年2月15日金曜日
  19. 19. 提案手法の速度評価実験(1)結果 • CPMdもf-CPMdも,頂点数に対し計算時間は指数的 • p = 0.9 では,提案手法が350倍以上速い. • p = 1.0 では,既存手法は11時間以上かけても計算が終わ らなかった一方で,提案手法は6.7秒で終了した.13年2月15日金曜日
  20. 20. 提案手法の速度評価実験(2) • f-CPMdの計算量の内訳(以下)を評価. 1. 無向グラフに変換して極大クリークを抽出 2. 有向グラフにおいてDAG判定 3. 得られた有向極大クリークに対しf-CPM • データセット SmartListで取得した,あるユーザーを基点にしたフォロ ーネットワークを複数用意. データ1 データ2 データ3 データ4 データ5 頂点数 802 1175 1026 773 524 枝数 20566 38353 15870 28287 14821 有向極大クリーク数 14880 59215 12294 125905 15722 有向極大クリークの平均頂点数 9.068 5.782 5.064 14.16 14.75 有向最大クリークの最大頂点数 27 17 13 24 2613年2月15日金曜日
  21. 21. 提案手法の速度評価実験(2)結果 • 有向極大クリーク数とその頂点数が多いグラフでは, (3)f-CPMの計算時間が支配的13年2月15日金曜日
  22. 22. フォローネットワークのコミュニティ構造(1) 同様のデータセットにおけるコミュニティ構造を分析する. (a) コミュニティ数 データ1 データ2 データ3 データ4 データ5 k=6 13 133 36 17 10 k=8 14 25 21 16 11 適切な k を選ばないとコミュニティ数が多くなり,有意な分類が得られない. (b)コミュニティ間のクラスター係数 データ1 データ2 データ3 データ4 データ5 k=6 0.860 0.507 0.646 0.852 0.280 k=8 0.751 0.625 0.739 0.567 1 比較的高く,各コミュニティは局所的に密に隣接する. (コミュニティの隣接は,ほとんどのコミュニティが基点ユーザーを含むため, 「共有頂点数が2個以上であること」と定義した)13年2月15日金曜日
  23. 23. フォローネットワークのコミュニティ構造(2) (c) コミュニティ内の頂点数の累積分布 k=6 k=8 べき則に近い状況になっている.(CPMの先行研究と一致.Palla et al. 2005 [1])13年2月15日金曜日
  24. 24. フォローネットワークのコミュニティ構造(3) (d) コミュニティの隣接するコミュニティ数(コミュニティ の次数)の累積分布 k=6 k=8 べき則から指数分布に変化することが観察可能.(CPMの先行研究 [1] と一致)13年2月15日金曜日
  25. 25. フォローネットワークのコミュニティ構造(4) (d) 隣接するコミュニティ対の共有頂点数の累積分布 k=6 k=8 .指数分布に近い.(CPMの先行研究 [1] ではべき則とされる.)13年2月15日金曜日
  26. 26. フォローネットワークのコミュニティ構造(5) (e) 隣接するコミュニティ対の共有頂点数が,片方のコミュ ニティの頂点数に占める割合の累積分布 k=6 k=8 多くのコミュニティ対が,比較的多くの割合の頂点を共有して隣接する.13年2月15日金曜日
  27. 27. フォローネットワークのコミュニティ構造(5) (f) 頂点数の属するコミュニティ数の累積分布 k=6 k=8 指数分布に近い.(CPMの先行研究 [1] ではべき則とされる.)13年2月15日金曜日
  28. 28. フォローネットワークのコミュニティ構造(6) (g) 頂点数の属するコミュニティ数と,入出次数比(その頂 点に接続する枝の数のうち,出る方向の枝数の割合)の相関 係数 データ1 データ2 データ3 データ4 データ5 k=6 -0.158 -0.618 -0.666 -0.569 0.446 k=8 -0.305 -0.331 -0.535 0.078 -0.066 正負のどちらもあり,一般的な傾向は存在しない.13年2月15日金曜日
  29. 29. 結論 • 提案手法「f-CPMd」によりCPMdを高速化し,密な有向 グラフにおけるCPMdが可能になった ‣ 既存のアルゴリズムで11時間以上かけても終わらなかったデータセット が,6.7秒で計算できた ‣ f-CPM(極大クリーク間の隣接判定)の計算時間が支配的 • Twitter SmartList(http://smartlist.bz)を作成し,良好な 評判を得た • Twitterのフォローネットワークにおけるコミュニティ構 造を明らかにした 2913年2月15日金曜日
  30. 30. 課題 • f-CPMには,クリークを葉とする二分木とブルームフィル タを用いた,さらなる高速化手法[4]が存在.これを利用 することでf-CPMdを高速化できる. • 支配項ではないが,極大クリーク抽出部分も高速化できる 余地がある.(牧野・宇野 2004 [8] ) • 異なるデータセットにおけるコミュニティ構造も (a) 1 3 5 7 考察の余地がある. 2 4 6 (b) k=4 (2) 極大クリーク c 偽 1 2 3 4 5 6 7 3 4 5 6 (3) (8) (4) 偽 1 2 3 4 偽 3 4 5 6 7 (5) (6) 30 1 2 3 2 3 4 3 4 5 6 4 5 6 7 偽 偽 真 偽 (1) (7)13年2月15日金曜日
  31. 31. 参考文献 [1] G. Palla, I. Derényi, I. Farkas, and T. Vicsek. Uncovering the overlapping community structure of complex networks in nature and society. Nature, 435:814-818, 2005. [2] J. M. Kumpula, M. Kivelä, K. Kaski, and J. Saramäki. Sequential algorithm for fast clique percolation. Physical Review E, 78:026109, 2008. [3] E. Gregori, L. Lenzini, and S. Mainardi. Parallel k-clique community detection on large-scale networks. Parallel and Distributed Systems, IEEE Transactions on, PP:1, 2012. [4] F. Reid, A. McDaid, and N. Hurley. Percolation computation in complex networks. arXiv:1205.0038, 2012. [5] G. Palla, I. J. Farkas, P. Pollner, I. Derényi, and T. Vicsek. Directed network modules. New Journal of Physics, 9:186, 2007. [6] C. Bron and J. Kerbosch. Algorithm 457: finding all cliques of an undirected graph. Communications of the ACM, 16:575-577, 1973. [7] I. Koch. Enumerating all connected maximal common subgraphs in two graphs. Theoretical Computer Science, 250:1-30, 2001. [8]K. Makino and T. Uno. New algorithms for enumerating all maximal cliques. Lecture Notes in Compute Science, 3111:260-272, 2004.13年2月15日金曜日

×