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.

Newman アルゴリズムによるソーシャルグラフのクラスタリング

74,729 views

Published on

昨今よく耳にするキーワード「ソーシャルグラフ」。その可能性・活用方法について様々な企業に注目されています。今回はその「ソーシャルグラフ」を「どうすればクラスタリングできるのか?」という観点で、グラフに対するクラスタリングの基礎を説明いたします。また、具体的なクラスタリング手法として Newman アルゴリズムをご紹介いたします。

Published in: Technology
  • 何年も前のスライドにすみませんが,Modularityの定義が間違っています.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • >Daichi Hiroki さん
    ご指摘ありがとうございます。今更ではありますが修正いたしました。
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • ソーシャルグラフはBradじゃないのかしら?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • 「第9回 データマイニング+WEB 勉強会@東京 ( TokyoWebmining 9)-2nd Week-方法論・ソーシャル 祭り-」の ATND ( http://atnd.org/events/11998 ) より、概要文を転載します。

    昨今よく耳にするキーワード「ソーシャルグラフ」。その可能性・活用方法について様々な企業に注目されています。今回はその「ソーシャルグラフ」を「どうすればクラスタリングできるのか?」という観点で、グラフに対するクラスタリングの基礎をお話し頂きます。具体的なクラスタリング手法としては Newman アルゴリズムをご紹介頂きます。
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Newman アルゴリズムによるソーシャルグラフのクラスタリング

  1. 1. Newmanアルゴリズムによるソーシャルグラフのクラスタリング第9回 データマイニング+WEB勉強会@東京 2 nd week2011.1.23KOMIYA Atsushi (@komiya_atsushi)
  2. 2. AGENDA1. 自己紹介&本日の発表について2. グラフの基礎とソーシャルグラフ3. グラフのクラスタリング4. Girvan-Newman アルゴリズム5. Newman アルゴリズム
  3. 3. 1.自己紹介&本日の発表について
  4. 4. 自己紹介• 名前 / Twitter ID • 小宮 篤史 (@komiya_atsushi)• Web/RIA/モバイル系エンジニア• 研究開発 “支援” もやってます • レコメンデーション関連• 学部・院生時代の研究テーマは情報理論 (データ圧縮)でした
  5. 5. ソーシャルグラフ
  6. 6. 社会的なグラフ?
  7. 7. ※グラフ:総務省統計局 HP より引用 http://www.stat.go.jp/data/kokusei/2010/pdf/jinkou.pdf
  8. 8. ※グラフ:総務省統計局 HP より引用 http://www.stat.go.jp/data/kokusei/2010/pdf/jinkou.pdf
  9. 9. ※グラフ:総務省統計局 HP より引用 http://www.stat.go.jp/data/kokusei/2010/pdf/jinkou.pdf
  10. 10. 社会的な統計情報を 可視化したグラフの ことではありません※グラフ:総務省統計局 HP より引用 http://www.stat.go.jp/data/kokusei/2010/pdf/jinkou.pdf
  11. 11. グラフ理論の「グラフ」です
  12. 12. この発表の目的・ねらい• グラフのクラスタリング手法について、ざっくり 理解していただく• ソーシャルグラフのクラスタリングを何に/どの ように応用できるのか? 議論できるように• 詳細な応用事例については、@doryokujin さんがいつか、発表してくださるはず!!
  13. 13. 2.グラフの基礎とソーシャルグラフ
  14. 14. グラフについて (おさらい)
  15. 15. グラフ理論における「グラフ」• グラフ • ノード と エッジ の集合 b d a f c e
  16. 16. グラフ理論における「グラフ」• グラフ • ノード と エッジ の集合 b d• ノード a f • 点 c e
  17. 17. グラフ理論における「グラフ」• グラフ • ノード と エッジ の集合 b d• ノード a f • 点• エッジ c e • 二つ(もしくは一つ)の ノードを繋ぐ
  18. 18. 身近にある「グラフ」※路線図:東京メトロホームページより引用 http://www.tokyometro.jp/station/index.html
  19. 19. 身近にある「グラフ」 ノード:駅 エッジ:路線※路線図:東京メトロホームページより引用 http://www.tokyometro.jp/station/index.html
  20. 20. グラフの本質• 「もの」と「もの」の「つながり」を抽象的に 表現したもの • もの … ノード • つながり … エッジ• 例 (ノード/エッジ) • 路線図 … 駅/路線 • WWW … ページ/リンク • ネットワーク構成図 … NW機器/回線
  21. 21. いろいろなグラフ• 重みつきグラフ • エッジに重み・コストが与えられている 2.0 2.5 • 路線図:距離、NW構成図:転送速度 など 1.5• 有向グラフ • エッジに向きが設定されている • WWW:リンク など• 多重グラフ • 1組のノードの間に、2本以上のエッジが 張られている
  22. 22. いろいろなグラフ• 重みつきグラフ 断りがない限り • エッジに重み・コストが与えられている 2.0 2.5 『重みなし』『無向』 • 路線図:距離、NW構成図:転送速度 など 1.5• 有向グラフ 『単純(多重でない)』 • エッジに向きが設定されている• 多重グラフ グラフを取り扱う • WWW:リンク など ものとします • 1組のノードの間に、2本以上のエッジが 張られている
  23. 23. 「ソーシャルグラフ」• Facebook 現 CEO マーク・ザッカーバーグ ソーシャルグラフの提唱者はブラッド・フィッツパトリック氏 (Brad Fitzpatrick)でした。大変失礼いたしました。 氏が提唱• 人間同士のつながりをグラフに見立てたもの
  24. 24. 「ソーシャルグラフ」• Facebook 現 CEO マーク・ザッカーバーグ ソーシャルグラフの提唱者はブラッド・フィッツパトリック氏 (Brad Fitzpatrick)でした。大変失礼いたしました。 氏が提唱• 人間同士のつながりをグラフに見立てたもの • ノード … 人間
  25. 25. 「ソーシャルグラフ」• Facebook 現 CEO マーク・ザッカーバーグ ソーシャルグラフの提唱者はブラッド・フィッツパトリック氏 (Brad Fitzpatrick)でした。大変失礼いたしました。 氏が提唱• 人間同士のつながりをグラフに見立てたもの • ノード … 人間、がほとんど(例外あり)
  26. 26. 「ソーシャルグラフ」 • Facebook 現 CEO マーク・ザッカーバーグ ソーシャルグラフの提唱者はブラッド・フィッツパトリック氏 (Brad Fitzpatrick)でした。大変失礼いたしました。 氏が提唱 • 人間同士のつながりをグラフに見立てたもの • ノード … 人間、がほとんど(例外あり)※アイコン:Twitter @gachapinblog より引用 http://twitter.com/gachapinblog
  27. 27. 「ソーシャルグラフ」 • Facebook 現 CEO マーク・ザッカーバーグ ソーシャルグラフの提唱者はブラッド・フィッツパトリック氏 (Brad Fitzpatrick)でした。大変失礼いたしました。 氏が提唱 • 人間同士のつながりをグラフに見立てたもの • ノード … 人間、がほとんど(例外あり) • エッジ … 関係(友人、ファン・・・) • mixi … マイミク • Twitter … フォロー・フォロワー(有向)※アイコン:Twitter @gachapinblog より引用 http://twitter.com/gachapinblog
  28. 28. ソーシャルグラフの例※mentionmap : http://apps.asterisq.com/mentionmap/
  29. 29. ソーシャルグラフの例 mentionmap で、hamadakoichi さんを 中心とした mention/ハッシュタグベース のソーシャルグラフを可視化してみました
  30. 30. 3.グラフのクラスタリング
  31. 31. まずは一般的な クラスタリング について説明
  32. 32. まずは一般的な クラスタリング について説明
  33. 33. クラスタリング =濱田さん
  34. 34. 詳しくは 濱田さんの過去の発表資料を熟読すべし!
  35. 35. 以上!
  36. 36. ・・・ごめんなさい
  37. 37. クラスタリングとは?• 似ている・近いもの同士の集まりを見つけること • 「分類(classification)」とは異なる 100 80 60 40 20 0 0 20 40 60 80 100
  38. 38. クラスタリングとは?• 似ている・近いもの同士の集まりを見つけること • 「分類(classification)」とは異なる 100 80 60 40 20 0 0 20 40 60 80 100
  39. 39. 一般的なクラスタリング 特徴• 一つ以上の「特徴」で がく片 がく片 花びら 花びら 長 幅 長 幅 構成される「要素」を 5 3.3 1.4 0.2 クラスタリング対象と 6.4 2.8 5.6 2.2 する 6.5 2.8 4.6 1.5 6.7 3.1 5.6 2.4• 特徴をもとに互いの 要 6.3 2.8 5.1 1.5 要素の類似性を算出 素 4.6 3.4 1.4 0.3 し、類似する要素を 6.9 3.1 5.1 2.3 集めて、「クラスタ」と 6.2 2.2 4.5 1.5 する 5.9 3.2 4.8 1.8 フィッシャーのアヤメのデータ
  40. 40. グラフにおけるクラスタリング• 「ノード」をクラスタリング対象とする• ノード間に張られている「エッジ」の密度が高 いノードの集まりを「コミュニティ(クラスタ) 」 とする • コミュニティの内部は、ノード同士が互いに、密に (たくさん)エッジを張り合っている • コミュニティと他のコミュニティの間は、エッジの 密度が疎となる(少ない)
  41. 41. グラフのクラスタリング例
  42. 42. グラフのクラスタリング例コミュニティ内はエッジ密度が高い
  43. 43. グラフのクラスタリング例 コミュニティ間 はエッジ密度 が低い
  44. 44. 一般的なデータに対する クラスタリング各種手法の分類 帰属度 種類 ハードクラスタリング ソフトクラスタリング • Group Average Method • Single Linkage Method 階層的 • Complete Linkage Method 手法 • Ward Method 手 • Centroid Method 法 • Median Method • k-means • Fuzzy k-means 非階層的 • Canopy • Gaussian Discriminative 手法 • Mean-Shift Analysis • Spectral Clustering • Dirichlet Processing※表:”Mahout Canopy Clustering - #TokyoWebmining 9” p.48 より引用 http://www.slideshare.net/hamadakoichi/mahout-canopy-clustering-tokyowebmining-9
  45. 45. 一般的なデータに対する クラスタリング各種手法の分類 帰属度 種類 ハードクラスタリング ソフトクラスタリング • Group Average Method 1つの要素は • Single Linkage Method 1つの要素は 階層的 • Complete Linkage Method 手法 • 1つのクラスタに Ward Method 1つ以上のクラスタに 手 のみ属する • Centroid Method 属する 法 • Median Method • k-means • Fuzzy k-means 非階層的 • Canopy • Gaussian Discriminative 手法 • Mean-Shift Analysis • Spectral Clustering • Dirichlet Processing※表:”Mahout Canopy Clustering - #TokyoWebmining 9” p.48 より引用 http://www.slideshare.net/hamadakoichi/mahout-canopy-clustering-tokyowebmining-9
  46. 46. 一般的なデータに対する クラスタリング各種手法の分類 帰属度 種類 ハードクラスタリング ソフトクラスタリング • Group Average Method • Single Linkage Method 階層的 • Complete Linkage Method 手法 • Ward Method 手 • Centroid Method 法 • Median Method • k-means • Fuzzy k-means 非階層的 • Canopy • Gaussian Discriminative 今回紹介するグラフクラスタリング手法は 手法 • Mean-Shift Analysis • Spectral Clustering • Dirichlet Processing 階層的・ハードクラスタリング です※表:”Mahout Canopy Clustering - #TokyoWebmining 9” p.48 より引用 http://www.slideshare.net/hamadakoichi/mahout-canopy-clustering-tokyowebmining-9
  47. 47. グラフにおける階層的クラスタリング• 大きなコミュニティの中に、小さな複数のコ ミュニティが存在する入れ子構造をとる すべてのノードは、 グラフ全体からなる 1つの大きな コミュニティに属する
  48. 48. グラフにおける階層的クラスタリング• 大きなコミュニティの中に、小さな複数のコ ミュニティが存在する入れ子構造をとる エッジを密に 張り合うノードで 構成される中間的な コミュニティに属する
  49. 49. グラフにおける階層的クラスタリング• 大きなコミュニティの中に、小さな複数のコ ミュニティが存在する入れ子構造をとる 個々のノードのみ からなる最小の コミュニティに属する
  50. 50. グラフにおける階層的クラスタリング• 大きなコミュニティの中に、小さな複数のコ ミュニティが存在する入れ子構造をとる グラフ全体から なるコミュニティ 中間コミュニティ 個々のノードから なるコミュニティ
  51. 51. 階層的クラスタリングトップダウン/ボトムアップアプローチ• トップダウンアプローチ • グラフ全体を一つの大きなコミュニティとした状態か ら始める • エッジを一つずつ切り離して、徐々に小さなコミュニ ティに分割していく• ボトムアップアプローチ • 各ノードを個々の独立したコミュニティした状態から 始める • コミュニティ間のエッジの密度を参考に、コミュニティ を順次併合していく
  52. 52. トップダウンアプローチ グラフ全体から なるコミュニティ
  53. 53. トップダウンアプローチ グラフ全体から なるコミュニティ 中間のコミュニティ
  54. 54. トップダウンアプローチ グラフ全体から なるコミュニティ 中間のコミュニティ 個々のノードからなるコミュニティ
  55. 55. トップダウンアプローチ グラフ全体から なるコミュニティ 中間のコミュニティ 個々のノードからなるコミュニティ
  56. 56. ボトムアップアプローチ 個々のノードからなるコミュニティ
  57. 57. ボトムアップアプローチ 中間のコミュニティ 個々のノードからなるコミュニティ
  58. 58. ボトムアップアプローチ グラフ全体から なるコミュニティ 中間のコミュニティ 個々のノードからなるコミュニティ
  59. 59. ボトムアップアプローチ グラフ全体から なるコミュニティ 中間のコミュニティ 個々のノードからなるコミュニティ
  60. 60. 階層型クラスタリング デンドログラム(樹形図)※図:”Fast algorithm for detecting community structure in networks” より引用
  61. 61. 階層型クラスタリング デンドログラム(樹形図) 大きく二つのクラスタに 分けることができます※図:”Fast algorithm for detecting community structure in networks” より引用
  62. 62. 階層型クラスタリング デンドログラム(樹形図) 左側のクラスタは、 さらに二つのクラスタに 分けることができます※図:”Fast algorithm for detecting community structure in networks” より引用
  63. 63. 階層型クラスタリング デンドログラム(樹形図) 上で分割すると、 大きなクラスタが得られ※図:”Fast algorithm for detecting community structure in networks” より引用
  64. 64. 階層型クラスタリング デンドログラム(樹形図) 下で分割すると、小さな クラスタがたくさん得られます※図:”Fast algorithm for detecting community structure in networks” より引用
  65. 65. 階層型クラスタリング デンドログラム(樹形図) 利用者の目的に合わせて クラスタの粒度を決められます※図:”Fast algorithm for detecting community structure in networks” より引用
  66. 66. 階層型クラスタリング デンドログラム(樹形図) でも、最適なクラスタの粒度は・・・?※図:”Fast algorithm for detecting community structure in networks” より引用
  67. 67. クラスタリングの精度を測るには?• 「よいクラスタリング」とはどういう状態? • コミュニティ内のエッジ密度が高い • コミュニティ間のエッジ密度が低い
  68. 68. クラスタリングの精度を測るには?• 「よいクラスタリング」とはどういう状態? • コミュニティ内のエッジ密度が高い • コミュニティ間のエッジ密度が低い• 「悪いクラスタリング」の例
  69. 69. クラスタリングの精度を測るには?• 「よいクラスタリング」とはどういう状態? • コミュニティ内のエッジ密度が高い • コミュニティ間のエッジ密度が低い コミュニティ間の• 「悪いクラスタリング」の例 エッジ数が 多すぎる・・・
  70. 70. クラスタリングの精度を測るには?• 「よいクラスタリング」とはどういう状態? • コミュニティ内のエッジ密度が高い • コミュニティ間のエッジ密度が低い• 「よいクラスタリング」の例
  71. 71. Modularity “Q”グラフクラスタリングの精度を測る指標値• ������ = ������(������������������ − ( ������ ������������������ )������ ) = ������ (������������������ − ������������ ) ������• ������������������ • 「総エッジ本数」に対する、コミュニティ i 内部におけ る「ノード毎のエッジ本数の総和」の割合• ������������������ • 「総エッジ本数」に対する、コミュニティ i から j に 張られているエッジ本数の割合• ������������ • 「総エッジ本数」に対する、コミュニティ i から他の コミュニティに向けて張られているエッジ本数の割合
  72. 72. Modularity “Q”グラフクラスタリングの精度を測る指標値• Q の値 • 0≦Q≦1 • 1に近い値ほど、精度が良いことを表す • 実データでは、たいてい 0.3~0.7 の値になる• 個々のノードからなる最小コミュニティに分割 されたときに、Q = 0 となる
  73. 73. Modularity の変化 • 削除エッジ本数(x 軸)に対する Modularity (y 軸)の変化の様子 最適な クラスタリングが ここで行える※図:”Finding and evaluating community structure in networks” より引用
  74. 74. Modularity を計算してみる コミュニティ g コミュニティ h コミュニティ g コミュニティ h内部エッジ本数 14 本 16 本(※重複含む) (重複なし:7本) (重複なし:8本)コミュニティ間エッジ本数 3 本 3本
  75. 75. Modularity を計算してみる 総エッジ本数 =14 + 3 + 16 + 3 コミュニティ g =36 コミュニティ h コミュニティ g コミュニティ h内部エッジ本数 14 本 16 本(※重複含む) (重複なし:7本) (重複なし:8本)コミュニティ間エッジ本数 3 本 3本
  76. 76. Modularity を計算してみるコミュニティ g コミュニティ h 総エッジ本数:36 本 コミュニティ g コミュニティ h内部エッジ本数 14 本 16 本(※重複含む) (重複なし:7本) (重複なし:8本)コミュニティ間エッジ本数 3本 3本������������������ 14/36 16/36������������ ������ (3/36)^2 (3/36)^2
  77. 77. Modularity を計算してみる 総エッジ本数:36 本 コミュニティ g コミュニティ h内部エッジ本数 14 本 16 本(※重複含む) コミュニティ g (重複なし:7本) コミュニティ h (重複なし:8本)コミュニティ間エッジ本数 3 本 3本������������������ 14/36 16/36������������ ������ (3/36)^2 (3/36)^2 ������• ������ = ������ ������������������ − ������������ ������������ ������ ������ ������������ ������ ������ = − + − = ������. ������������������ ������������ ������������ ������������ ������������
  78. 78. 4. Girvan-Newmanアルゴリズム
  79. 79. Girvan-Newman アルゴリズム 概要• Girvan と Newman らによる提案• トップダウンアプローチでのクラスタリング• コミュニティ間を跨ぐ存在になる可能性の 高いエッジから順に切り離す • エッジに対し、“betweenness” のスコアを付与 • 論文では Shortest-path betweenness を利用• エッジを切り離す度、”betweenness” を再 計算する
  80. 80. Girvan-Newman アルゴリズム 概要• Girvan と Newman らによる提案• トップダウンアプローチでのクラスタリング• コミュニティ間を跨ぐ存在になる可能性の 高いエッジから順に切り離す • エッジに対し、“betweenness” のスコアを付与 • 論文では Shortest-path betweenness を利用• エッジを切り離す度、”betweenness” を再 トップダウンアプローチでは、 計算する このエッジを切り離す戦略が重要
  81. 81. クラスタリング手順1. グラフ全体からなるコミュニティから始める2. 現存するすべてのエッジに対し、betweenness スコアを(再)計算する3. もっとも高い betweenness スコアを持つエッジ を切り離す • 複数のエッジがもっとも高いスコアを持っている場合 は、その中からランダムに1つを選択する4. 残りのエッジがなければ処理を終了し、存在す るならば、2. 以降を繰り返し処理する
  82. 82. Girvan-Newman アルゴリズムの欠点• とにかく計算量が大きい • Shortest-path betweenness の計算で ������(������������) • クラスタリング処理全体で、 ������(������2 ������) • m:エッジ本数 • n:ノード数 • エッジが疎なグラフだと、 ������(������3 )• 2004 年当時の計算機で、数千ノードのグラ フをクラスタリングするのが限界
  83. 83. 計算量の問題を解決するには?• Shortest-path betweenness の計算によ るところが大きい • Modularity がよい値となるクラスタリングを行う ために必要• そもそも、 (Shortest-path) betweenness を計算する必要はあるのか?
  84. 84. 5. Newmanアルゴリズム
  85. 85. Newman アルゴリズム 概要• Girvan-Newman アルゴリズムと比較して、 計算量が小さい• ボトムアップアプローチでのクラスタリング• betweenness の計算はせずに、最適な Modularity を目指す
  86. 86. Modularity を高める• Girvan-Newman アルゴリズム • betweenness に基づいたクラスタリングを行った 結果、Modularity が良くなった• Modularity を高くすることが目的なら、最初 から Modularity に着目して最適化してあげ ればいいのでは? • Newman アルゴリズムの基本概念
  87. 87. Modularity に着目したクラスタリング• ボトムアップアプローチを前提として説明• あるクラスタリングの状態から次の併合対象 の2つのコミュニティを選ぶ際に、併合後の Modularity を試算してみる コミュニティb コミュニティa コミュニティc
  88. 88. Modularity に着目したクラスタリング• ボトムアップアプローチを前提として説明• あるクラスタリングの状態から次の併合対象 コミュニティ a と b を の2つのコミュニティを選ぶ際に、併合後の 結びつけると、 Modularity を試算してみる Modularityは 0.3 になる コミュニティb コミュニティa コミュニティc
  89. 89. Modularity に着目したクラスタリング• ボトムアップアプローチを前提として説明• あるクラスタリングの状態から次の併合対象 の2つのコミュニティを選ぶ際に、併合後の コミュニティ a と c を Modularity を試算してみる 結びつけると、 Modularity は 0.5 になる コミュニティb コミュニティa コミュニティc
  90. 90. Modularity に着目したクラスタリング• ボトムアップアプローチを前提として説明• あるクラスタリングの状態から次の併合対象 コミュニティ b と c を 結びつけると、 の2つのコミュニティを選ぶ際に、併合後の Modularity を試算してみる は 0.2 になる Modularity コミュニティb コミュニティa コミュニティc
  91. 91. Modularity に着目したクラスタリング• ボトムアップアプローチを前提として説明 コミュニティ a と c を• あるクラスタリングの状態から次の併合対象 結びつけると、 の2つのコミュニティを選ぶ際に、併合後の Modularity が一番高く Modularity を試算してみる なるので、この2つを 併合しよう コミュニティb コミュニティa コミュニティc
  92. 92. 最適な Modularity の計算• 本当に最適化しようとすると、膨大な計算量 となる • Shortest-path betweenness 以上の計算量 • n 個のノードを g 個のコミュニティに分類する組 み合わせ数は、第2スターリング数 S(n, g) にな る• 前述した、あるクラスタリングの状態から次の 併合対象のコミュニティを求めるのに Modularity を試算するだけでも大変 • 計算量が大きくなってしまっては本末転倒
  93. 93. Modularity “Q” ではなく、ΔQ• 二つのコミュニティを併合したときの増加量に 着目 • 他のコミュニティの状況が変わっても、特定の二 つの組み合わせのコミュニティを併合したときの Modularity の増加量に変わりはない • つまり、ΔQ の再計算は併合時を除き不要• ∆������ = ������������������ + ������������������ − ������������������ ������������ = ������(������������������ − ������������ ������������ )• このΔQ に着目して、greedy(貪欲)に処理 する
  94. 94. Newman アルゴリズムの処理手順1. 個々のノードからなるコミュニティから始める2. すべての2つのコミュニティの組み合わせに対し、そ れらのコミュニティを併合したときのΔQ を計算する3. ΔQ のもっとも高いコミュニティの組み合わせを併合 する4. 併合された2つのコミュニティにエッジを張っている他 のコミュニティとの間のΔQ を再計算する5. コミュニティの数が1つになったところで、処理を終了 する(2つ以上であれば、3. 以降の処理を繰り返す)
  95. 95. Newman アルゴリズムの処理手順 ������(������2 )1. 個々のノードからなるコミュニティから始める2. すべての2つのコミュニティの組み合わせに対し、そ れらのコミュニティを併合したときのΔQ を計算する3. ΔQ のもっとも高いコミュニティの組み合わせを併合 する4. 併合された2つのコミュニティにエッジを張っている他 のコミュニティとの間のΔQ を再計算する5. コミュニティの数が1つになったところで、処理を終了 する(2つ以上であれば、3. 以降の処理を繰り返す)
  96. 96. Newman アルゴリズムの処理手順 ������(������2 )1. 個々のノードからなるコミュニティから始める2. すべての2つのコミュニティの組み合わせに対し、そ れらのコミュニティを併合したときのΔQ を計算する3. ΔQ のもっとも高いコミュニティの組み合わせを併合 ������(������ + ������) する4. 併合された2つのコミュニティにエッジを張っている他 のコミュニティとの間のΔQ を再計算する5. コミュニティの数が1つになったところで、処理を終了 する(2つ以上であれば、3. 以降の処理を繰り返す)
  97. 97. Newman アルゴリズムの処理手順 ������(������2 )1. 個々のノードからなるコミュニティから始める2. すべての2つのコミュニティの組み合わせに対し、そ ������(������) れらのコミュニティを併合したときのΔQ を計算する3. ΔQ のもっとも高いコミュニティの組み合わせを併合 ������(������ + ������) する4. 併合された2つのコミュニティにエッジを張っている他 のコミュニティとの間のΔQ を再計算する5. コミュニティの数が1つになったところで、処理を終了 する(2つ以上であれば、3. 以降の処理を繰り返す)
  98. 98. Newman アルゴリズムの処理手順 ������(������2 )1. 個々のノードからなるコミュニティから始める2. すべての2つのコミュニティの組み合わせに対し、そ ������(������) れらのコミュニティを併合したときのΔQ を計算する3. ΔQ のもっとも高いコミュニティの組み合わせを併合 ������(������ + ������) する4. 併合された2つのコミュニティにエッジを張っている他 のコミュニティとの間のΔQ を再計算する 全体の計算量5. コミュニティの数が1つになったところで、処理を終了 する(2つ以上であれば、3. ������ ������) ������( ������ + 以降の処理を繰り返す)
  99. 99. Newman アルゴリズムのまとめ• 全体の計算量は ������ ������ + ������ ������ • エッジが疎なグラフだと、������(������2 ) • 後に公開された論文で、 ������(������ log 2 ������) まで高速化• 2004 年当時の計算機で、100万ノードほどのグ ラフのクラスタリングが可能• クラスタリング精度(Modularity)は Girvan- Newman アルゴリズムと同程度か、少し下回る くらい• エッジに重みが付与されたグラフに対しても適用 できる
  100. 100. まとめ
  101. 101. 今日話した内容• グラフは「もの」を表すノードと「つながり」を表 すエッジからなる • ソーシャルグラフは、人などが「ノード」、関係が 「つながり」になる• グラフのクラスタリングは • 「コミュニティ」を抽出すること • 階層的・ハードクラスタリングとなる• クラスタリング精度の良さは、Modularity で 測る
  102. 102. 今日話した内容• Girvan-Newman アルゴリズム • トップダウンアプローチ • Shortest-path betweenness に基づいてエッジ を切る• Newman アルゴリズム • ボトムアップアプローチ • Modularity を greedy に最適化 • ΔQ に着目して、計算量を削減
  103. 103. ご清聴ありがとうございました!
  104. 104. 参考文献• M.E.J. Newman and M. Girvan. Finding and evaluating community structure in networks • http://arxiv.org/abs/cond-mat/0308217 • Girvan-Newman アルゴリズム • Modularity• M.E.J. Newman. Fast algorithm for detecting community structure in networks • http://arxiv.org/abs/cond-mat/0309508 • Newman アルゴリズム
  105. 105. 参考文献• A. Clauset, M.E.J. Newman and C. Moore Finding community structure in very large networks • http://arxiv.org/abs/cond-mat/0408187 • Newman アルゴリズムの高速な実装

×