SlideShare a Scribd company logo
1 of 105
Newman
アルゴリズムによる
ソーシャルグラフの
クラスタリング
第9回 データマイニング+WEB勉強会@東京 2 nd week
2011.1.23
KOMIYA Atsushi (@komiya_atsushi)
AGENDA
1. 自己紹介&本日の発表について
2. グラフの基礎とソーシャルグラフ
3. グラフのクラスタリング
4. Girvan-Newman アルゴリズム
5. Newman アルゴリズム
1.自己紹介&
本日の発表に
ついて
自己紹介
• 名前 / Twitter ID
  • 小宮 篤史 (@komiya_atsushi)
• Web/RIA/モバイル系エンジニア
• 研究開発 “支援” もやってます
  • レコメンデーション関連
• 学部・院生時代の研究テーマは情報理論
  (データ圧縮)でした
ソーシャルグラフ
社会的なグラフ?
※グラフ:総務省統計局 HP より引用 http://www.stat.go.jp/data/kokusei/2010/pdf/jinkou.pdf
※グラフ:総務省統計局 HP より引用 http://www.stat.go.jp/data/kokusei/2010/pdf/jinkou.pdf
※グラフ:総務省統計局 HP より引用 http://www.stat.go.jp/data/kokusei/2010/pdf/jinkou.pdf
社会的な統計情報を
                    可視化したグラフの
                    ことではありません


※グラフ:総務省統計局 HP より引用 http://www.stat.go.jp/data/kokusei/2010/pdf/jinkou.pdf
グラフ理論の
「グラフ」です
この発表の目的・ねらい
• グラフのクラスタリング手法について、ざっくり
  理解していただく
• ソーシャルグラフのクラスタリングを何に/どの
  ように応用できるのか? 議論できるように
• 詳細な応用事例については、@doryokujin
  さんがいつか、発表してくださるはず!!
2.
グラフの基礎と
ソーシャルグラフ
グラフについて
 (おさらい)
グラフ理論における「グラフ」
• グラフ
 • ノード と エッジ の集合
                       b   d
                   a           f
                       c   e
グラフ理論における「グラフ」
• グラフ
 • ノード と エッジ の集合
                       b   d
• ノード
                   a           f
 • 点
                       c   e
グラフ理論における「グラフ」
• グラフ
 • ノード と エッジ の集合
                       b   d
• ノード
                   a           f
 • 点
• エッジ                  c   e

 • 二つ(もしくは一つ)の
   ノードを繋ぐ
身近にある「グラフ」




※路線図:東京メトロホームページより引用 http://www.tokyometro.jp/station/index.html
身近にある「グラフ」


                                                   ノード:駅


                          エッジ:路線


※路線図:東京メトロホームページより引用 http://www.tokyometro.jp/station/index.html
グラフの本質
• 「もの」と「もの」の「つながり」を抽象的に
  表現したもの
 • もの … ノード
 • つながり … エッジ
• 例 (ノード/エッジ)
 • 路線図 … 駅/路線
 • WWW … ページ/リンク
 • ネットワーク構成図 … NW機器/回線
いろいろなグラフ
• 重みつきグラフ
 •   エッジに重み・コストが与えられている     2.0         2.5

 •   路線図:距離、NW構成図:転送速度 など         1.5

• 有向グラフ
 •   エッジに向きが設定されている
 •   WWW:リンク など
• 多重グラフ
 •   1組のノードの間に、2本以上のエッジが
     張られている
いろいろなグラフ
• 重みつきグラフ
          断りがない限り
    • エッジに重み・コストが与えられている 2.0         2.5

        『重みなし』『無向』
    • 路線図:距離、NW構成図:転送速度 など     1.5

•   有向グラフ
       『単純(多重でない)』
    • エッジに向きが設定されている

•   多重グラフ
         グラフを取り扱う
    • WWW:リンク など


           ものとします
    • 1組のノードの間に、2本以上のエッジが
      張られている
「ソーシャルグラフ」
• Facebook 現 CEO マーク・ザッカーバーグ
   ソーシャルグラフの提唱者はブラッド・フィッツパトリック氏
     (Brad Fitzpatrick)でした。大変失礼いたしました。
  氏が提唱
• 人間同士のつながりをグラフに見立てたもの
「ソーシャルグラフ」
• Facebook 現 CEO マーク・ザッカーバーグ
   ソーシャルグラフの提唱者はブラッド・フィッツパトリック氏
     (Brad Fitzpatrick)でした。大変失礼いたしました。
  氏が提唱
• 人間同士のつながりをグラフに見立てたもの
  • ノード … 人間
「ソーシャルグラフ」
• Facebook 現 CEO マーク・ザッカーバーグ
   ソーシャルグラフの提唱者はブラッド・フィッツパトリック氏
     (Brad Fitzpatrick)でした。大変失礼いたしました。
  氏が提唱
• 人間同士のつながりをグラフに見立てたもの
  • ノード … 人間、がほとんど(例外あり)
「ソーシャルグラフ」
 • Facebook 現 CEO マーク・ザッカーバーグ
    ソーシャルグラフの提唱者はブラッド・フィッツパトリック氏
      (Brad Fitzpatrick)でした。大変失礼いたしました。
   氏が提唱
 • 人間同士のつながりをグラフに見立てたもの
       • ノード … 人間、がほとんど(例外あり)




※アイコン:Twitter @gachapinblog より引用 http://twitter.com/gachapinblog
「ソーシャルグラフ」
 • Facebook 現 CEO マーク・ザッカーバーグ
    ソーシャルグラフの提唱者はブラッド・フィッツパトリック氏
      (Brad Fitzpatrick)でした。大変失礼いたしました。
   氏が提唱
 • 人間同士のつながりをグラフに見立てたもの
       • ノード … 人間、がほとんど(例外あり)
       • エッジ … 関係(友人、ファン・・・)
                 •      mixi … マイミク
                 •      Twitter … フォロー・フォロワー(有向)


※アイコン:Twitter @gachapinblog より引用 http://twitter.com/gachapinblog
ソーシャルグラフの例




※mentionmap : http://apps.asterisq.com/mentionmap/
ソーシャルグラフの例


      mentionmap で、hamadakoichi さんを
      中心とした mention/ハッシュタグベース
      のソーシャルグラフを可視化してみました
3.
グラフの
クラスタリング
まずは一般的な
 クラスタリング
 について説明
まずは一般的な
 クラスタリング
 について説明
クラスタリング
 =濱田さん
詳しくは
 濱田さんの
過去の発表資料
を熟読すべし!
以上!
・・・ごめんなさい
クラスタリングとは?
• 似ている・近いもの同士の集まりを見つけること
 •   「分類(classification)」とは異なる
           100

           80

           60

           40

           20

            0
                 0   20   40   60   80   100
クラスタリングとは?
• 似ている・近いもの同士の集まりを見つけること
 •   「分類(classification)」とは異なる
           100

           80

           60

           40

           20

            0
                 0   20   40   60   80   100
一般的なクラスタリング                 特徴

• 一つ以上の「特徴」で        がく片   がく片   花びら 花びら
                     長     幅     長   幅
  構成される「要素」を         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
                    フィッシャーのアヤメのデータ
グラフにおけるクラスタリング
• 「ノード」をクラスタリング対象とする
• ノード間に張られている「エッジ」の密度が高
  いノードの集まりを「コミュニティ(クラスタ) 」
  とする
 • コミュニティの内部は、ノード同士が互いに、密に
   (たくさん)エッジを張り合っている
 • コミュニティと他のコミュニティの間は、エッジの
   密度が疎となる(少ない)
グラフのクラスタリング例
グラフのクラスタリング例




コミュニティ内は
エッジ密度が高い
グラフのクラスタリング例



      コミュニティ間
      はエッジ密度
        が低い
一般的なデータに対する
  クラスタリング各種手法の分類
                                            帰属度
       種類
                         ハードクラスタリング                    ソフトクラスタリング
                  •   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
一般的なデータに対する
  クラスタリング各種手法の分類
                                            帰属度
       種類
                         ハードクラスタリング                    ソフトクラスタリング
                  • 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
一般的なデータに対する
  クラスタリング各種手法の分類
                                            帰属度
       種類
                         ハードクラスタリング                    ソフトクラスタリング
                  •   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
グラフにおける階層的クラスタリング
• 大きなコミュニティの中に、小さな複数のコ
  ミュニティが存在する入れ子構造をとる




               すべてのノードは、
               グラフ全体からなる
                 1つの大きな
               コミュニティに属する
グラフにおける階層的クラスタリング
• 大きなコミュニティの中に、小さな複数のコ
  ミュニティが存在する入れ子構造をとる




               エッジを密に
              張り合うノードで
             構成される中間的な
             コミュニティに属する
グラフにおける階層的クラスタリング
• 大きなコミュニティの中に、小さな複数のコ
  ミュニティが存在する入れ子構造をとる




             個々のノードのみ
             からなる最小の
            コミュニティに属する
グラフにおける階層的クラスタリング
• 大きなコミュニティの中に、小さな複数のコ
  ミュニティが存在する入れ子構造をとる

                グラフ全体から
                なるコミュニティ


                中間コミュニティ


                個々のノードから
                なるコミュニティ
階層的クラスタリング
トップダウン/ボトムアップアプローチ
• トップダウンアプローチ
 •   グラフ全体を一つの大きなコミュニティとした状態か
     ら始める
 •   エッジを一つずつ切り離して、徐々に小さなコミュニ
     ティに分割していく
• ボトムアップアプローチ
 •   各ノードを個々の独立したコミュニティした状態から
     始める
 •   コミュニティ間のエッジの密度を参考に、コミュニティ
     を順次併合していく
トップダウンアプローチ

              グラフ全体から
              なるコミュニティ
トップダウンアプローチ

              グラフ全体から
              なるコミュニティ




              中間のコミュニティ
トップダウンアプローチ

                グラフ全体から
                なるコミュニティ




                中間のコミュニティ



          個々のノードからなるコミュニティ
トップダウンアプローチ

                グラフ全体から
                なるコミュニティ




                中間のコミュニティ



          個々のノードからなるコミュニティ
ボトムアップアプローチ




          個々のノードからなるコミュニティ
ボトムアップアプローチ




                中間のコミュニティ



          個々のノードからなるコミュニティ
ボトムアップアプローチ

                グラフ全体から
                なるコミュニティ




                中間のコミュニティ



          個々のノードからなるコミュニティ
ボトムアップアプローチ

                グラフ全体から
                なるコミュニティ




                中間のコミュニティ



          個々のノードからなるコミュニティ
階層型クラスタリング
 デンドログラム(樹形図)




※図:”Fast algorithm for detecting community structure in networks” より引用
階層型クラスタリング
 デンドログラム(樹形図)




   大きく二つのクラスタに
   分けることができます



※図:”Fast algorithm for detecting community structure in networks” より引用
階層型クラスタリング
 デンドログラム(樹形図)




                                    左側のクラスタは、
                                   さらに二つのクラスタに
                                   分けることができます



※図:”Fast algorithm for detecting community structure in networks” より引用
階層型クラスタリング
 デンドログラム(樹形図)



  上で分割すると、
 大きなクラスタが得られ




※図:”Fast algorithm for detecting community structure in networks” より引用
階層型クラスタリング
 デンドログラム(樹形図)




                                              下で分割すると、小さな
                                             クラスタがたくさん得られます




※図:”Fast algorithm for detecting community structure in networks” より引用
階層型クラスタリング
 デンドログラム(樹形図)




                          利用者の目的に合わせて
                         クラスタの粒度を決められます

※図:”Fast algorithm for detecting community structure in networks” より引用
階層型クラスタリング
 デンドログラム(樹形図)




                  でも、最適なクラスタの粒度は・・・?


※図:”Fast algorithm for detecting community structure in networks” より引用
クラスタリングの精度を測るには?
• 「よいクラスタリング」とはどういう状態?
 • コミュニティ内のエッジ密度が高い
 • コミュニティ間のエッジ密度が低い
クラスタリングの精度を測るには?
• 「よいクラスタリング」とはどういう状態?
 • コミュニティ内のエッジ密度が高い
 • コミュニティ間のエッジ密度が低い
• 「悪いクラスタリング」の例
クラスタリングの精度を測るには?
• 「よいクラスタリング」とはどういう状態?
    • コミュニティ内のエッジ密度が高い
    • コミュニティ間のエッジ密度が低い
                コミュニティ間の
•   「悪いクラスタリング」の例 エッジ数が
                 多すぎる・・・
クラスタリングの精度を測るには?
• 「よいクラスタリング」とはどういう状態?
 • コミュニティ内のエッジ密度が高い
 • コミュニティ間のエッジ密度が低い
• 「よいクラスタリング」の例
Modularity “Q”
グラフクラスタリングの精度を測る指標値
• ������ =       ������(������������������ − (   ������ ������������������ )������ ) =   ������ (������������������ − ������������ )
                                                                ������
• ������������������
    •      「総エッジ本数」に対する、コミュニティ i 内部におけ
           る「ノード毎のエッジ本数の総和」の割合
• ������������������
    •      「総エッジ本数」に対する、コミュニティ i から j に
           張られているエッジ本数の割合
• ������������
    •      「総エッジ本数」に対する、コミュニティ i から他の
           コミュニティに向けて張られているエッジ本数の割合
Modularity “Q”
グラフクラスタリングの精度を測る指標値
• Q の値
 • 0≦Q≦1
 • 1に近い値ほど、精度が良いことを表す
 • 実データでは、たいてい 0.3~0.7 の値になる
• 個々のノードからなる最小コミュニティに分割
  されたときに、Q = 0 となる
Modularity の変化
 • 削除エッジ本数(x 軸)に対する Modularity
   (y 軸)の変化の様子
                                                   最適な
                                                 クラスタリングが
                                                  ここで行える




※図:”Finding and evaluating community structure in networks” より引用
Modularity を計算してみる




     コミュニティ g        コミュニティ h
                コミュニティ g    コミュニティ h
内部エッジ本数      14 本          16 本
(※重複含む)      (重複なし:7本)     (重複なし:8本)
コミュニティ間エッジ本数 3 本           3本
Modularity を計算してみる




              総エッジ本数
              =14 + 3 + 16 + 3
     コミュニティ g =36 コミュニティ h
               コミュニティ g    コミュニティ h
内部エッジ本数       14 本        16 本
(※重複含む)       (重複なし:7本)   (重複なし:8本)
コミュニティ間エッジ本数 3 本          3本
Modularity を計算してみる



コミュニティ g   コミュニティ h        総エッジ本数:36 本

                コミュニティ g     コミュニティ h
内部エッジ本数        14 本         16 本
(※重複含む)        (重複なし:7本)    (重複なし:8本)
コミュニティ間エッジ本数   3本           3本
������������������         14/36        16/36
������������
  ������           (3/36)^2     (3/36)^2
Modularity を計算してみる
                                                 総エッジ本数:36 本

                                 コミュニティ g                コミュニティ h
内部エッジ本数       14 本                                  16 本
(※重複含む)
 コミュニティ g     (重複なし:7本)
          コミュニティ h                                  (重複なし:8本)
コミュニティ間エッジ本数 3 本                                    3本
������������������        14/36                                 16/36
������������
  ������                            (3/36)^2            (3/36)^2
                           ������
• ������ =      ������ ������������������ − ������������
           ������������        ������ ������         ������������        ������ ������
       =        −                +          −             = ������. ������������������
           ������������       ������������           ������������       ������������
4. Girvan-
Newman
アルゴリズム
Girvan-Newman アルゴリズム 概要
• Girvan と Newman らによる提案
• トップダウンアプローチでのクラスタリング
• コミュニティ間を跨ぐ存在になる可能性の
  高いエッジから順に切り離す
 • エッジに対し、“betweenness” のスコアを付与
 • 論文では Shortest-path betweenness を利用
• エッジを切り離す度、”betweenness” を再
  計算する
Girvan-Newman アルゴリズム 概要
• Girvan と Newman らによる提案
• トップダウンアプローチでのクラスタリング
• コミュニティ間を跨ぐ存在になる可能性の
  高いエッジから順に切り離す
 • エッジに対し、“betweenness” のスコアを付与
 • 論文では Shortest-path betweenness を利用
• エッジを切り離す度、”betweenness” を再
      トップダウンアプローチでは、
  計算する
     このエッジを切り離す戦略が重要
クラスタリング手順
1. グラフ全体からなるコミュニティから始める
2. 現存するすべてのエッジに対し、betweenness
   スコアを(再)計算する
3. もっとも高い betweenness スコアを持つエッジ
   を切り離す
 •   複数のエッジがもっとも高いスコアを持っている場合
     は、その中からランダムに1つを選択する
4. 残りのエッジがなければ処理を終了し、存在す
   るならば、2. 以降を繰り返し処理する
Girvan-Newman アルゴリズムの欠点
• とにかく計算量が大きい
 • Shortest-path betweenness の計算で ������(������������)
 • クラスタリング処理全体で、 ������(������2 ������)
    •   m:エッジ本数
    •   n:ノード数
 • エッジが疎なグラフだと、 ������(������3 )
• 2004 年当時の計算機で、数千ノードのグラ
  フをクラスタリングするのが限界
計算量の問題を解決するには?
• Shortest-path betweenness の計算によ
  るところが大きい
  • Modularity がよい値となるクラスタリングを行う
    ために必要
• そもそも、 (Shortest-path) betweenness
  を計算する必要はあるのか?
5. Newman
アルゴリズム
Newman アルゴリズム 概要
• Girvan-Newman アルゴリズムと比較して、
  計算量が小さい
• ボトムアップアプローチでのクラスタリング
• betweenness の計算はせずに、最適な
  Modularity を目指す
Modularity を高める
• Girvan-Newman アルゴリズム
 • betweenness に基づいたクラスタリングを行った
   結果、Modularity が良くなった
• Modularity を高くすることが目的なら、最初
  から Modularity に着目して最適化してあげ
  ればいいのでは?
 • Newman アルゴリズムの基本概念
Modularity に着目したクラスタリング
• ボトムアップアプローチを前提として説明
• あるクラスタリングの状態から次の併合対象
  の2つのコミュニティを選ぶ際に、併合後の
  Modularity を試算してみる

               コミュニティb

    コミュニティa

               コミュニティc
Modularity に着目したクラスタリング
• ボトムアップアプローチを前提として説明
• あるクラスタリングの状態から次の併合対象
    コミュニティ a と b を
  の2つのコミュニティを選ぶ際に、併合後の
      結びつけると、
   Modularity を試算してみる
  Modularityは 0.3 になる

               コミュニティb

    コミュニティa

               コミュニティc
Modularity に着目したクラスタリング
• ボトムアップアプローチを前提として説明
• あるクラスタリングの状態から次の併合対象
  の2つのコミュニティを選ぶ際に、併合後の
                コミュニティ a と c を
  Modularity を試算してみる
                  結びつけると、
               Modularity は 0.5 になる
                       コミュニティb

     コミュニティa

                       コミュニティc
Modularity に着目したクラスタリング
• ボトムアップアプローチを前提として説明
• あるクラスタリングの状態から次の併合対象
                  コミュニティ b と c を
                    結びつけると、
  の2つのコミュニティを選ぶ際に、併合後の
  Modularity を試算してみる は 0.2 になる
                 Modularity

                    コミュニティb

     コミュニティa

                    コミュニティc
Modularity に着目したクラスタリング
• ボトムアップアプローチを前提として説明
                 コミュニティ a と c を
• あるクラスタリングの状態から次の併合対象
                   結びつけると、
  の2つのコミュニティを選ぶ際に、併合後の
                Modularity が一番高く
  Modularity を試算してみる
                 なるので、この2つを
                    併合しよう
                    コミュニティb

     コミュニティa

                    コミュニティc
最適な Modularity の計算
• 本当に最適化しようとすると、膨大な計算量
  となる
 • Shortest-path betweenness 以上の計算量
 • n 個のノードを g 個のコミュニティに分類する組
   み合わせ数は、第2スターリング数 S(n, g) にな
   る
• 前述した、あるクラスタリングの状態から次の
  併合対象のコミュニティを求めるのに
  Modularity を試算するだけでも大変
 • 計算量が大きくなってしまっては本末転倒
Modularity “Q” ではなく、ΔQ
• 二つのコミュニティを併合したときの増加量に
  着目
   • 他のコミュニティの状況が変わっても、特定の二
     つの組み合わせのコミュニティを併合したときの
     Modularity の増加量に変わりはない
   • つまり、ΔQ の再計算は併合時を除き不要
• ∆������ = ������������������ + ������������������ − ������������������ ������������ = ������(������������������ − ������������ ������������ )
• このΔQ に着目して、greedy(貪欲)に処理
  する
Newman アルゴリズムの処理手順
1. 個々のノードからなるコミュニティから始める
2. すべての2つのコミュニティの組み合わせに対し、そ
   れらのコミュニティを併合したときのΔQ を計算する
3. ΔQ のもっとも高いコミュニティの組み合わせを併合
   する
4. 併合された2つのコミュニティにエッジを張っている他
   のコミュニティとの間のΔQ を再計算する
5. コミュニティの数が1つになったところで、処理を終了
   する(2つ以上であれば、3. 以降の処理を繰り返す)
Newman アルゴリズムの処理手順
                      ������(������2 )
1. 個々のノードからなるコミュニティから始める
2. すべての2つのコミュニティの組み合わせに対し、そ
   れらのコミュニティを併合したときのΔQ を計算する
3. ΔQ のもっとも高いコミュニティの組み合わせを併合
   する
4. 併合された2つのコミュニティにエッジを張っている他
   のコミュニティとの間のΔQ を再計算する
5. コミュニティの数が1つになったところで、処理を終了
   する(2つ以上であれば、3. 以降の処理を繰り返す)
Newman アルゴリズムの処理手順
                      ������(������2 )
1. 個々のノードからなるコミュニティから始める
2. すべての2つのコミュニティの組み合わせに対し、そ
   れらのコミュニティを併合したときのΔQ を計算する
3. ΔQ のもっとも高いコミュニティの組み合わせを併合
               ������(������ + ������)
   する
4. 併合された2つのコミュニティにエッジを張っている他
   のコミュニティとの間のΔQ を再計算する
5. コミュニティの数が1つになったところで、処理を終了
   する(2つ以上であれば、3. 以降の処理を繰り返す)
Newman アルゴリズムの処理手順
                      ������(������2 )
1. 個々のノードからなるコミュニティから始める
2. すべての2つのコミュニティの組み合わせに対し、そ
      ������(������)
   れらのコミュニティを併合したときのΔQ を計算する
3. ΔQ のもっとも高いコミュニティの組み合わせを併合
               ������(������ + ������)
   する
4. 併合された2つのコミュニティにエッジを張っている他
   のコミュニティとの間のΔQ を再計算する
5. コミュニティの数が1つになったところで、処理を終了
   する(2つ以上であれば、3. 以降の処理を繰り返す)
Newman アルゴリズムの処理手順
                      ������(������2 )
1. 個々のノードからなるコミュニティから始める
2. すべての2つのコミュニティの組み合わせに対し、そ
      ������(������)
   れらのコミュニティを併合したときのΔQ を計算する
3. ΔQ のもっとも高いコミュニティの組み合わせを併合
               ������(������ + ������)
   する
4. 併合された2つのコミュニティにエッジを張っている他
   のコミュニティとの間のΔQ を再計算する
           全体の計算量
5. コミュニティの数が1つになったところで、処理を終了
   する(2つ以上であれば、3. ������ ������)
           ������( ������ + 以降の処理を繰り返す)
Newman アルゴリズムのまとめ
• 全体の計算量は ������ ������ + ������ ������
  •   エッジが疎なグラフだと、������(������2 )
  •   後に公開された論文で、 ������(������ log 2 ������) まで高速化
• 2004 年当時の計算機で、100万ノードほどのグ
  ラフのクラスタリングが可能
• クラスタリング精度(Modularity)は Girvan-
  Newman アルゴリズムと同程度か、少し下回る
  くらい
• エッジに重みが付与されたグラフに対しても適用
  できる
まとめ
今日話した内容
• グラフは「もの」を表すノードと「つながり」を表
  すエッジからなる
 • ソーシャルグラフは、人などが「ノード」、関係が
   「つながり」になる
• グラフのクラスタリングは
 • 「コミュニティ」を抽出すること
 • 階層的・ハードクラスタリングとなる
• クラスタリング精度の良さは、Modularity で
  測る
今日話した内容
• Girvan-Newman アルゴリズム
 • トップダウンアプローチ
 • Shortest-path betweenness に基づいてエッジ
   を切る
• Newman アルゴリズム
 • ボトムアップアプローチ
 • Modularity を greedy に最適化
 • ΔQ に着目して、計算量を削減
ご清聴
ありがとう
ございました!
参考文献
• 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 アルゴリズム
参考文献
• A. Clauset, M.E.J. Newman and C.
  Moore
  Finding community structure in very
  large networks
  • http://arxiv.org/abs/cond-mat/0408187
  • Newman アルゴリズムの高速な実装

More Related Content

What's hot

Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門Shuyo Nakatani
 
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
[DL輪読会]ドメイン転移と不変表現に関するサーベイ[DL輪読会]ドメイン転移と不変表現に関するサーベイ
[DL輪読会]ドメイン転移と不変表現に関するサーベイDeep Learning JP
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)RyuichiKanoh
 
スペクトラル・クラスタリング
スペクトラル・クラスタリングスペクトラル・クラスタリング
スペクトラル・クラスタリングAkira Miyazawa
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類Shintaro Fukushima
 
4 データ間の距離と類似度
4 データ間の距離と類似度4 データ間の距離と類似度
4 データ間の距離と類似度Seiichi Uchida
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門irrrrr
 
深層生成モデルと世界モデル
深層生成モデルと世界モデル深層生成モデルと世界モデル
深層生成モデルと世界モデルMasahiro Suzuki
 
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Modelscvpaper. challenge
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Yusuke Uchida
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門Takuji Tahara
 
強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習Eiji Uchibe
 
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3Preferred Networks
 
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic DatasetsDeep Learning JP
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向Motokawa Tetsuya
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement LearningPreferred Networks
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理Taiji Suzuki
 
【DL輪読会】Perceiver io a general architecture for structured inputs & outputs
【DL輪読会】Perceiver io  a general architecture for structured inputs & outputs 【DL輪読会】Perceiver io  a general architecture for structured inputs & outputs
【DL輪読会】Perceiver io a general architecture for structured inputs & outputs Deep Learning JP
 
ブースティング入門
ブースティング入門ブースティング入門
ブースティング入門Retrieva inc.
 
組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画まで組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画までShunji Umetani
 

What's hot (20)

Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
 
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
[DL輪読会]ドメイン転移と不変表現に関するサーベイ[DL輪読会]ドメイン転移と不変表現に関するサーベイ
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
スペクトラル・クラスタリング
スペクトラル・クラスタリングスペクトラル・クラスタリング
スペクトラル・クラスタリング
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類
 
4 データ間の距離と類似度
4 データ間の距離と類似度4 データ間の距離と類似度
4 データ間の距離と類似度
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門
 
深層生成モデルと世界モデル
深層生成モデルと世界モデル深層生成モデルと世界モデル
深層生成モデルと世界モデル
 
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
 
強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習
 
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
 
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理
 
【DL輪読会】Perceiver io a general architecture for structured inputs & outputs
【DL輪読会】Perceiver io  a general architecture for structured inputs & outputs 【DL輪読会】Perceiver io  a general architecture for structured inputs & outputs
【DL輪読会】Perceiver io a general architecture for structured inputs & outputs
 
ブースティング入門
ブースティング入門ブースティング入門
ブースティング入門
 
組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画まで組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画まで
 

Viewers also liked

30分でわかる『R』によるデータ分析|データアーティスト
30分でわかる『R』によるデータ分析|データアーティスト30分でわかる『R』によるデータ分析|データアーティスト
30分でわかる『R』によるデータ分析|データアーティストSatoru Yamamoto
 
Rによるデータサイエンス13「樹木モデル」
Rによるデータサイエンス13「樹木モデル」Rによるデータサイエンス13「樹木モデル」
Rによるデータサイエンス13「樹木モデル」Takeshi Mikami
 
今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門toilet_lunch
 
SVMについて
SVMについてSVMについて
SVMについてmknh1122
 
ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33horihorio
 
機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話Ryota Kamoshida
 
トピックモデルを用いた 潜在ファッション嗜好の推定
トピックモデルを用いた 潜在ファッション嗜好の推定トピックモデルを用いた 潜在ファッション嗜好の推定
トピックモデルを用いた 潜在ファッション嗜好の推定Takashi Kaneda
 
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-Naoki Yanai
 
パターン認識 第10章 決定木
パターン認識 第10章 決定木 パターン認識 第10章 決定木
パターン認識 第10章 決定木 Miyoshi Yuya
 
Simple perceptron by TJO
Simple perceptron by TJOSimple perceptron by TJO
Simple perceptron by TJOTakashi J OZAKI
 
バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践智之 村上
 
機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレスト機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレストTeppei Baba
 
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tatsuya Tojima
 
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京Koichi Hamada
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual TalksYuya Unno
 
統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト
統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト
統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティストSatoru Yamamoto
 
データ・ビジュアライゼーション&ストーリーテリングを学ぶ!ハンズオンセミナー
データ・ビジュアライゼーション&ストーリーテリングを学ぶ!ハンズオンセミナーデータ・ビジュアライゼーション&ストーリーテリングを学ぶ!ハンズオンセミナー
データ・ビジュアライゼーション&ストーリーテリングを学ぶ!ハンズオンセミナーData Visualization Japan
 
AI(人工知能)インフォグラフィックス【時間をかけずにすぐわかる】
AI(人工知能)インフォグラフィックス【時間をかけずにすぐわかる】AI(人工知能)インフォグラフィックス【時間をかけずにすぐわかる】
AI(人工知能)インフォグラフィックス【時間をかけずにすぐわかる】Satoru Yamamoto
 

Viewers also liked (20)

30分でわかる『R』によるデータ分析|データアーティスト
30分でわかる『R』によるデータ分析|データアーティスト30分でわかる『R』によるデータ分析|データアーティスト
30分でわかる『R』によるデータ分析|データアーティスト
 
Rによるデータサイエンス13「樹木モデル」
Rによるデータサイエンス13「樹木モデル」Rによるデータサイエンス13「樹木モデル」
Rによるデータサイエンス13「樹木モデル」
 
今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門
 
SVMについて
SVMについてSVMについて
SVMについて
 
ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33
 
機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話
 
トピックモデルを用いた 潜在ファッション嗜好の推定
トピックモデルを用いた 潜在ファッション嗜好の推定トピックモデルを用いた 潜在ファッション嗜好の推定
トピックモデルを用いた 潜在ファッション嗜好の推定
 
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
 
パターン認識 第10章 決定木
パターン認識 第10章 決定木 パターン認識 第10章 決定木
パターン認識 第10章 決定木
 
Simple perceptron by TJO
Simple perceptron by TJOSimple perceptron by TJO
Simple perceptron by TJO
 
バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践
 
決定木学習
決定木学習決定木学習
決定木学習
 
機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレスト機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレスト
 
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
 
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
 
一般向けのDeep Learning
一般向けのDeep Learning一般向けのDeep Learning
一般向けのDeep Learning
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks
 
統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト
統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト
統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト
 
データ・ビジュアライゼーション&ストーリーテリングを学ぶ!ハンズオンセミナー
データ・ビジュアライゼーション&ストーリーテリングを学ぶ!ハンズオンセミナーデータ・ビジュアライゼーション&ストーリーテリングを学ぶ!ハンズオンセミナー
データ・ビジュアライゼーション&ストーリーテリングを学ぶ!ハンズオンセミナー
 
AI(人工知能)インフォグラフィックス【時間をかけずにすぐわかる】
AI(人工知能)インフォグラフィックス【時間をかけずにすぐわかる】AI(人工知能)インフォグラフィックス【時間をかけずにすぐわかる】
AI(人工知能)インフォグラフィックス【時間をかけずにすぐわかる】
 

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

大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズム大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズムTakuya Akiba
 
Matrix capsules with em routing
Matrix capsules with em routingMatrix capsules with em routing
Matrix capsules with em routingKazuki Fujikawa
 
20191006 bayesian dl_1_pub
20191006 bayesian dl_1_pub20191006 bayesian dl_1_pub
20191006 bayesian dl_1_pubYoichi Tokita
 
Structural data analysis based on multilayer networks
Structural data analysis based on multilayer networksStructural data analysis based on multilayer networks
Structural data analysis based on multilayer networkstm1966
 
マーケティング技術
マーケティング技術マーケティング技術
マーケティング技術haji mizu
 
Deep Collective Classification in Heterogeneous Information Networks
Deep Collective Classification in Heterogeneous Information Networks Deep Collective Classification in Heterogeneous Information Networks
Deep Collective Classification in Heterogeneous Information Networks Kota Kakiuchi
 
Generative adversarial nets
Generative adversarial netsGenerative adversarial nets
Generative adversarial netsKeisuke Hosaka
 
第13回関西CVPRML勉強会発表資料
第13回関西CVPRML勉強会発表資料第13回関西CVPRML勉強会発表資料
第13回関西CVPRML勉強会発表資料Yutaka Yamada
 

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

大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズム大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズム
 
DeepCas
DeepCasDeepCas
DeepCas
 
Matrix capsules with em routing
Matrix capsules with em routingMatrix capsules with em routing
Matrix capsules with em routing
 
20191006 bayesian dl_1_pub
20191006 bayesian dl_1_pub20191006 bayesian dl_1_pub
20191006 bayesian dl_1_pub
 
Structural data analysis based on multilayer networks
Structural data analysis based on multilayer networksStructural data analysis based on multilayer networks
Structural data analysis based on multilayer networks
 
マーケティング技術
マーケティング技術マーケティング技術
マーケティング技術
 
Deep Collective Classification in Heterogeneous Information Networks
Deep Collective Classification in Heterogeneous Information Networks Deep Collective Classification in Heterogeneous Information Networks
Deep Collective Classification in Heterogeneous Information Networks
 
Generative adversarial nets
Generative adversarial netsGenerative adversarial nets
Generative adversarial nets
 
第13回関西CVPRML勉強会発表資料
第13回関西CVPRML勉強会発表資料第13回関西CVPRML勉強会発表資料
第13回関西CVPRML勉強会発表資料
 

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