SlideShare une entreprise Scribd logo
1  sur  31
コミュニティ分類アルゴリズムの高速化と
                 ソーシャルグラフへの応用


                     @mosa_siru




                         1
13年2月15日金曜日
本研究の要旨

         • グラフ理論におけるコミュニティ抽出アルゴリ
              ズムclique percolation methodを高速化

              ‣ 無向グラフにおける高速化手法を、有向グ
                ラフに応用

         • Twitterのコミュニティ分類を行うウェブサイー
              ビスを作成 http://smartlist.bz

         • ソーシャルグラフをコミュニティ抽出し、その
              コミュニティ構造を明らかにする


                               2
13年2月15日金曜日
コミュニティとは


         •    部分グラフのうち、内部に枝が相対的に多く見出され
              るようなもの

         •    様々な厳密な定義と分類アルゴリズムが存在

              ‣   コミュニティのオーバーラップ(頂点が複数のコミュニティに属
                  すること)を許すか否かで二分される




                              3
13年2月15日金曜日
コミュニティ分類手法

                オーバーラップを許さない手法                     オーバーラップを許す手法


              • グラフ分割                         • clique percolation method
              • 階層的クラスタリング                    • 線グラフ化
              • Girvan-Newman Algorithm       • Girvan-Newman Algorithm の拡張
              • モジュラリティ最適化                    • Modularityの拡張
              • Surprise最適化

              有名なclique percolation method (CPM) Palla et al.
              2005[1] に焦点を当てる.


                                          4
13年2月15日金曜日
CPMのコミュニティ定義
         •    以下無向グラフとする.自然数 k を取り、頂点数 k の
              クリーク(k-クリーク)を用いて「k-クリークコミュ
              ニティ」を定義

         •    k-クリークコミュニティ:隣接するk-クリークを経由
              して互いに行き来できるクリーク集合

         •    隣接: k - 1 個の頂点を共有すること




                 k = 4 での例.
              三角形を共有すれば隣接する.
                               5   4-クリークコミュニティの例
13年2月15日金曜日
CPMの特徴
         •    オーバーラップを許容

         •    あるコミュニティの生成過程が他のコミュニティに影
              響されることはない

         •    ローカル(辺や頂点が変更されても,コミュニティへ
              の影響は局所的である)

         •    確率的な手法や近似を行っていないため,決定性があ
              り,結果に再現性がある.

         •    k の値を変更することで,抽出条件の厳しさを調整す
              ることができる.

              ‣   前スライドの例は, k = 3 で全ての頂点が1つのコミュニティに.

                                6
13年2月15日金曜日
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を高速化し,巨大で密なグラフも計算可能にする.



                                       7
13年2月15日金曜日
CFinderのアルゴリズム(1)

         •    k-クリークコミュニティ定義において,以下の2つは
              同値

              1. 「k - 1個の共有頂点を持つk-クリーク同士を経由して互いに行き来
                  できるクリーク集合」
              2. 「k - 1個以上の共有頂点を持つ頂点数 k 以上の極大クリーク同士
                  を経由して互いに行き来できるクリーク集合」


              ‣   n-クリーク (n≧k) は,それ自体が k-クリークコミュニティをな
                  し,クリーク同士の共有頂点もクリークをなすため.




                               4-クリークが3-クリークコミュニティをなす例.

13年2月15日金曜日
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

                        9
13年2月15日金曜日
CPMの計算困難性(1)

      •       極大クリーク数の二乗回,共有頂点数を調べる必要あり
              ‣   グラフが密な場合,大量に極大クリークが存在することがある.(例:
                  ソーシャルグラフ)
              ‣   カリフォルニア工科大学生のfacebookネットワークでは,
                  頂点数769 に対し極大クリーク数は31745.k = 5 での隣接する極大ク
                  リーク対は170万以上にのぼる. (Reid et. al. 2011)


              ‣   このような例では,極大クリーク対はほとんど同じ頂点を共有する.
              ‣   極大クリーク数が多くなる理由として,大きな極大クリークから一部の
                  枝を取り除くと,大量の極大クリークが生成されることが挙げられる.




                                 (例) 6-クリークから辺を2本取り除くと,
                                    4つの極大クリークが生成される.

13年2月15日金曜日
CPMの計算困難性(2)
      •       頂点や枝によって k- クリークコミュニティは表現できな
              い.膨大な数の k- クリーク集合か極大クリーク集合で表
              す必要がある.
              ‣   k-クリークコミュニティは, k- クリークに属していないような (k - 1)-ク
                  リークを含みうるため(図).

              ‣   あるクリークが k- クリークコミュニティのどれかのクリークに隣接する
                  か否か調べるためには,コミュニティ内の全ての極大クリークか k- クリ
                  ークに対し共有頂点数を調べねばならない.




                                 (例)k = 4. 緑と橙の頂点はk-クリークコミュニティ
                                 をなすが,青の頂点はこのコミュニティに含まれ
                                 ない.

13年2月15日金曜日
fast CPM (f-CPM)

      •       クリークグラフを作らない.極大クリーク間の不要な隣接
              判定を行わないことにより高速化.
              ‣   極大クリークAとBが隣接し,BとCが隣接することがわかったら,A, B,
                  Cは1つのコミュニティに属しているので,AとCが隣接するか否か調べ
                  る必要はない.
              ‣   1つも共有頂点を持たない極大クリーク同士の共有頂点数は調べる必要
                  はない.


      •       密なネットワークに対してもCPMが適用できるようにな
              る.




                                12
13年2月15日金曜日
directed CPM (CPMd)

      •       有向グラフに対するCPM.Palla et al. 2007 [5]
              ‣   以下のように有向クリークを定義した上でのCPM.
              ‣   枝の向きを無視してCPMすることはできるが,きちんと向きを考慮にい
                  れる.


      •       有向クリークの定義:「ある部分グラフにおいて,任意の
              頂点間に枝が存在し,DAGである(=閉路を持たな
              い).」
              ‣   ただし双方向枝( )がある場合は,それを無視した上で閉路判定する.
              ‣   Palla et al. 2007 [5]の定義とは異なるが,同値な定義を採用.




                                     13
13年2月15日金曜日
有向クリークの例
              (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


               有向クリークである              有向クリークでない

                                 14
13年2月15日金曜日
提案手法「fast CPMd 」(f-CPMd)

      •       CPMdの既存手法では,有向クリークを抽出した後,
              CFinderと同様のアルゴリズムを用いていた.

      •       ここにf-CPMと同様の改良を施すことで高速化する.


                             提案手法のアルゴリズム

          1. 無向グラフにし,全ての極大クリークを列挙
               ‣   Bron-Kerbosch Algorithm [6] の高速化 (Koch et al. 2001 [7])

          2. 極大クリークに対し,有向グラフにおいて対応する部分グラフから双方向
             枝を取り除き,DAG判定

          3. 得られた有向極大クリーク集合を用いてf-CPMを行う


                                          15
13年2月15日金曜日
Twitter SmartList

      •       提案手法「f-CPMd」により有向なソーシャルグラフのコ
              ミュニティ抽出が可能になった.

      •       Twitterのリスト機能作成を補助するサービス「Twitter
              SmartList」(http://smartlist.bz)を作成.
              ‣   リスト機能:特に見たいユーザーをグループ分けする機能
              ‣   600人以上のユーザーに利用され,非常に良い評判を得ている.


      •       Twitter APIからフォローネットワークを
              取得した.
              ログインユーザーがフォローしている
              ユーザーに頂点を限定.


                               16
13年2月15日金曜日
17
13年2月15日金曜日
提案手法の速度評価実験(1)

      •       CPMdとf-CPMdの速度を比較.

      •       データセット
              SmartListで取得した,あるユーザーを基点にしたフォロ
              ーネットワーク(下図)において,p|V|個 (0<p≦1)の頂点を
              ランダムに選んでデータセットを複数作成

                         頂点数 |V|        380


                          枝数 |E|        5600


                       有向極大クリーク数        4063


                     有向極大クリークの平均頂点数     6.216


                      有向最大クリークの頂点数       14


                                   18
13年2月15日金曜日
提案手法の速度評価実験(1)結果




      •       CPMdもf-CPMdも,頂点数に対し計算時間は指数的

      •       p = 0.9 では,提案手法が350倍以上速い.

      •       p = 1.0 では,既存手法は11時間以上かけても計算が終わ
              らなかった一方で,提案手法は6.7秒で終了した.
13年2月15日金曜日
提案手法の速度評価実験(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      26

13年2月15日金曜日
提案手法の速度評価実験(2)結果




      •       有向極大クリーク数とその頂点数が多いグラフでは,
              (3)f-CPMの計算時間が支配的



13年2月15日金曜日
フォローネットワークのコミュニティ構造(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日金曜日
フォローネットワークのコミュニティ構造(2)

        (c) コミュニティ内の頂点数の累積分布

                   k=6                 k=8




          べき則に近い状況になっている.(CPMの先行研究と一致.Palla et al. 2005 [1])
13年2月15日金曜日
フォローネットワークのコミュニティ構造(3)

        (d) コミュニティの隣接するコミュニティ数(コミュニティ
        の次数)の累積分布
                      k=6                k=8




              べき則から指数分布に変化することが観察可能.(CPMの先行研究 [1] と一致)

13年2月15日金曜日
フォローネットワークのコミュニティ構造(4)

        (d) 隣接するコミュニティ対の共有頂点数の累積分布
                    k=6              k=8




              .指数分布に近い.(CPMの先行研究 [1] ではべき則とされる.)

13年2月15日金曜日
フォローネットワークのコミュニティ構造(5)

        (e) 隣接するコミュニティ対の共有頂点数が,片方のコミュ
        ニティの頂点数に占める割合の累積分布
                    k=6            k=8




              多くのコミュニティ対が,比較的多くの割合の頂点を共有して隣接する.

13年2月15日金曜日
フォローネットワークのコミュニティ構造(5)

        (f) 頂点数の属するコミュニティ数の累積分布

                    k=6             k=8




               指数分布に近い.(CPMの先行研究 [1] ではべき則とされる.)

13年2月15日金曜日
フォローネットワークのコミュニティ構造(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日金曜日
結論

      •       提案手法「f-CPMd」によりCPMdを高速化し,密な有向
              グラフにおけるCPMdが可能になった
              ‣   既存のアルゴリズムで11時間以上かけても終わらなかったデータセット
                  が,6.7秒で計算できた
              ‣   f-CPM(極大クリーク間の隣接判定)の計算時間が支配的


      •       Twitter SmartList(http://smartlist.bz)を作成し,良好な
              評判を得た

      •       Twitterのフォローネットワークにおけるコミュニティ構
              造を明らかにした




                                  29
13年2月15日金曜日
課題

      •       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日金曜日
参考文献
      [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日金曜日

Contenu connexe

Tendances

3次元の凸包を求める
3次元の凸包を求める3次元の凸包を求める
3次元の凸包を求めるabc3141
 
PRML輪読#4
PRML輪読#4PRML輪読#4
PRML輪読#4matsuolab
 
One Class SVMを用いた異常値検知
One Class SVMを用いた異常値検知One Class SVMを用いた異常値検知
One Class SVMを用いた異常値検知Yuto Mori
 
DLLab 異常検知ナイト 資料 20180214
DLLab 異常検知ナイト 資料 20180214DLLab 異常検知ナイト 資料 20180214
DLLab 異常検知ナイト 資料 20180214Kosuke Nakago
 
Stan で欠測データの相関係数を推定してみた
Stan で欠測データの相関係数を推定してみたStan で欠測データの相関係数を推定してみた
Stan で欠測データの相関係数を推定してみたhoxo_m
 
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシンShinya Shimizu
 
C++による数値解析の並列化手法
C++による数値解析の並列化手法C++による数値解析の並列化手法
C++による数値解析の並列化手法dc1394
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門Miyoshi Yuya
 
「統計的学習理論」第1章
「統計的学習理論」第1章「統計的学習理論」第1章
「統計的学習理論」第1章Kota Matsui
 
5分でわかるベイズ確率
5分でわかるベイズ確率5分でわかるベイズ確率
5分でわかるベイズ確率hoxo_m
 
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習Preferred Networks
 
【DL輪読会】GIT RE-BASIN: MERGING MODELS MODULO PERMU- TATION SYMMETRIES
【DL輪読会】GIT RE-BASIN: MERGING MODELS MODULO PERMU- TATION SYMMETRIES【DL輪読会】GIT RE-BASIN: MERGING MODELS MODULO PERMU- TATION SYMMETRIES
【DL輪読会】GIT RE-BASIN: MERGING MODELS MODULO PERMU- TATION SYMMETRIESDeep Learning JP
 
SGD+α: 確率的勾配降下法の現在と未来
SGD+α: 確率的勾配降下法の現在と未来SGD+α: 確率的勾配降下法の現在と未来
SGD+α: 確率的勾配降下法の現在と未来Hidekazu Oiwa
 
数式を使わずイメージで理解するEMアルゴリズム
数式を使わずイメージで理解するEMアルゴリズム数式を使わずイメージで理解するEMアルゴリズム
数式を使わずイメージで理解するEMアルゴリズム裕樹 奥田
 
C:\D Drive\Prml\プレゼン\パターン認識と機械学習2 4章 D0703
C:\D Drive\Prml\プレゼン\パターン認識と機械学習2 4章 D0703C:\D Drive\Prml\プレゼン\パターン認識と機械学習2 4章 D0703
C:\D Drive\Prml\プレゼン\パターン認識と機械学習2 4章 D0703Yoshinori Kabeya
 
バンディット問題について
バンディット問題についてバンディット問題について
バンディット問題についてjkomiyama
 
【基調講演】『深層学習の原理の理解に向けた理論の試み』 今泉 允聡(東大)
【基調講演】『深層学習の原理の理解に向けた理論の試み』 今泉 允聡(東大)【基調講演】『深層学習の原理の理解に向けた理論の試み』 今泉 允聡(東大)
【基調講演】『深層学習の原理の理解に向けた理論の試み』 今泉 允聡(東大)MLSE
 
ベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learning
ベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learningベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learning
ベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learningssuserca2822
 

Tendances (20)

3次元の凸包を求める
3次元の凸包を求める3次元の凸包を求める
3次元の凸包を求める
 
PRML輪読#4
PRML輪読#4PRML輪読#4
PRML輪読#4
 
One Class SVMを用いた異常値検知
One Class SVMを用いた異常値検知One Class SVMを用いた異常値検知
One Class SVMを用いた異常値検知
 
DLLab 異常検知ナイト 資料 20180214
DLLab 異常検知ナイト 資料 20180214DLLab 異常検知ナイト 資料 20180214
DLLab 異常検知ナイト 資料 20180214
 
Stan で欠測データの相関係数を推定してみた
Stan で欠測データの相関係数を推定してみたStan で欠測データの相関係数を推定してみた
Stan で欠測データの相関係数を推定してみた
 
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン
 
C++による数値解析の並列化手法
C++による数値解析の並列化手法C++による数値解析の並列化手法
C++による数値解析の並列化手法
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
 
「統計的学習理論」第1章
「統計的学習理論」第1章「統計的学習理論」第1章
「統計的学習理論」第1章
 
5分でわかるベイズ確率
5分でわかるベイズ確率5分でわかるベイズ確率
5分でわかるベイズ確率
 
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
 
【DL輪読会】GIT RE-BASIN: MERGING MODELS MODULO PERMU- TATION SYMMETRIES
【DL輪読会】GIT RE-BASIN: MERGING MODELS MODULO PERMU- TATION SYMMETRIES【DL輪読会】GIT RE-BASIN: MERGING MODELS MODULO PERMU- TATION SYMMETRIES
【DL輪読会】GIT RE-BASIN: MERGING MODELS MODULO PERMU- TATION SYMMETRIES
 
SGD+α: 確率的勾配降下法の現在と未来
SGD+α: 確率的勾配降下法の現在と未来SGD+α: 確率的勾配降下法の現在と未来
SGD+α: 確率的勾配降下法の現在と未来
 
数式を使わずイメージで理解するEMアルゴリズム
数式を使わずイメージで理解するEMアルゴリズム数式を使わずイメージで理解するEMアルゴリズム
数式を使わずイメージで理解するEMアルゴリズム
 
C:\D Drive\Prml\プレゼン\パターン認識と機械学習2 4章 D0703
C:\D Drive\Prml\プレゼン\パターン認識と機械学習2 4章 D0703C:\D Drive\Prml\プレゼン\パターン認識と機械学習2 4章 D0703
C:\D Drive\Prml\プレゼン\パターン認識と機械学習2 4章 D0703
 
バンディット問題について
バンディット問題についてバンディット問題について
バンディット問題について
 
【基調講演】『深層学習の原理の理解に向けた理論の試み』 今泉 允聡(東大)
【基調講演】『深層学習の原理の理解に向けた理論の試み』 今泉 允聡(東大)【基調講演】『深層学習の原理の理解に向けた理論の試み』 今泉 允聡(東大)
【基調講演】『深層学習の原理の理解に向けた理論の試み』 今泉 允聡(東大)
 
PRML Chapter 14
PRML Chapter 14PRML Chapter 14
PRML Chapter 14
 
Prml 3 3.3
Prml 3 3.3Prml 3 3.3
Prml 3 3.3
 
ベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learning
ベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learningベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learning
ベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learning
 

En vedette

Go, memcached, microservices
Go, memcached, microservicesGo, memcached, microservices
Go, memcached, microservicesmosa siru
 
捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)mosa siru
 
Twitter SmartList (第5回若手webエンジニア交流会)
Twitter SmartList (第5回若手webエンジニア交流会)Twitter SmartList (第5回若手webエンジニア交流会)
Twitter SmartList (第5回若手webエンジニア交流会)mosa siru
 
lua_nginx_module JSON-RPC 2.0 Batch Request
lua_nginx_module JSON-RPC 2.0 Batch Requestlua_nginx_module JSON-RPC 2.0 Batch Request
lua_nginx_module JSON-RPC 2.0 Batch Requestmosa siru
 
Elasticsearch for Hackadoll
Elasticsearch for HackadollElasticsearch for Hackadoll
Elasticsearch for Hackadollmosa siru
 
ニュースパスのクローラーアーキテクチャとマイクロサービス
ニュースパスのクローラーアーキテクチャとマイクロサービスニュースパスのクローラーアーキテクチャとマイクロサービス
ニュースパスのクローラーアーキテクチャとマイクロサービスmosa siru
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
複雑ネットワーク 第4章 古典的なグラフ
複雑ネットワーク 第4章 古典的なグラフ複雑ネットワーク 第4章 古典的なグラフ
複雑ネットワーク 第4章 古典的なグラフShintaro Takemura
 
複雑ネットワーク勉強会 第2章前半(R, gephi, cytoscapeの事例付) 20120122
複雑ネットワーク勉強会 第2章前半(R, gephi, cytoscapeの事例付) 20120122複雑ネットワーク勉強会 第2章前半(R, gephi, cytoscapeの事例付) 20120122
複雑ネットワーク勉強会 第2章前半(R, gephi, cytoscapeの事例付) 20120122Hiroko Onari
 
複雑ネットワーク勉強会 第2章ネットワークの特徴量(後半) 20120215
複雑ネットワーク勉強会 第2章ネットワークの特徴量(後半) 20120215複雑ネットワーク勉強会 第2章ネットワークの特徴量(後半) 20120215
複雑ネットワーク勉強会 第2章ネットワークの特徴量(後半) 20120215Hiroko Onari
 
白い陽気なやつとPythonでたわむれる
白い陽気なやつとPythonでたわむれる白い陽気なやつとPythonでたわむれる
白い陽気なやつとPythonでたわむれるKen'ichi Matsui
 
トピックモデルの話
トピックモデルの話トピックモデルの話
トピックモデルの話kogecoo
 
【初心者向け】Go言語勉強会資料
 【初心者向け】Go言語勉強会資料 【初心者向け】Go言語勉強会資料
【初心者向け】Go言語勉強会資料Yuji Otani
 
実践で学ぶネットワーク分析
実践で学ぶネットワーク分析実践で学ぶネットワーク分析
実践で学ぶネットワーク分析Mitsunori Sato
 
マイクロサービスアーキテクチャ とは何か
マイクロサービスアーキテクチャとは何かマイクロサービスアーキテクチャとは何か
マイクロサービスアーキテクチャ とは何かYusuke Suzuki
 
最新業界事情から見るデータサイエンティストの「実像」
最新業界事情から見るデータサイエンティストの「実像」最新業界事情から見るデータサイエンティストの「実像」
最新業界事情から見るデータサイエンティストの「実像」Takashi J OZAKI
 
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみたRubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみたYusuke Kon
 
Pythonによる機械学習の最前線
Pythonによる機械学習の最前線Pythonによる機械学習の最前線
Pythonによる機械学習の最前線Kimikazu Kato
 

En vedette (20)

Go, memcached, microservices
Go, memcached, microservicesGo, memcached, microservices
Go, memcached, microservices
 
捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)
 
Twitter SmartList (第5回若手webエンジニア交流会)
Twitter SmartList (第5回若手webエンジニア交流会)Twitter SmartList (第5回若手webエンジニア交流会)
Twitter SmartList (第5回若手webエンジニア交流会)
 
lua_nginx_module JSON-RPC 2.0 Batch Request
lua_nginx_module JSON-RPC 2.0 Batch Requestlua_nginx_module JSON-RPC 2.0 Batch Request
lua_nginx_module JSON-RPC 2.0 Batch Request
 
Elasticsearch for Hackadoll
Elasticsearch for HackadollElasticsearch for Hackadoll
Elasticsearch for Hackadoll
 
ニュースパスのクローラーアーキテクチャとマイクロサービス
ニュースパスのクローラーアーキテクチャとマイクロサービスニュースパスのクローラーアーキテクチャとマイクロサービス
ニュースパスのクローラーアーキテクチャとマイクロサービス
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
複雑ネットワーク 第4章 古典的なグラフ
複雑ネットワーク 第4章 古典的なグラフ複雑ネットワーク 第4章 古典的なグラフ
複雑ネットワーク 第4章 古典的なグラフ
 
複雑ネットワーク勉強会 第2章前半(R, gephi, cytoscapeの事例付) 20120122
複雑ネットワーク勉強会 第2章前半(R, gephi, cytoscapeの事例付) 20120122複雑ネットワーク勉強会 第2章前半(R, gephi, cytoscapeの事例付) 20120122
複雑ネットワーク勉強会 第2章前半(R, gephi, cytoscapeの事例付) 20120122
 
複雑ネットワーク勉強会 第2章ネットワークの特徴量(後半) 20120215
複雑ネットワーク勉強会 第2章ネットワークの特徴量(後半) 20120215複雑ネットワーク勉強会 第2章ネットワークの特徴量(後半) 20120215
複雑ネットワーク勉強会 第2章ネットワークの特徴量(後半) 20120215
 
R seminar on igraph
R seminar on igraphR seminar on igraph
R seminar on igraph
 
白い陽気なやつとPythonでたわむれる
白い陽気なやつとPythonでたわむれる白い陽気なやつとPythonでたわむれる
白い陽気なやつとPythonでたわむれる
 
Golang入門
Golang入門Golang入門
Golang入門
 
トピックモデルの話
トピックモデルの話トピックモデルの話
トピックモデルの話
 
【初心者向け】Go言語勉強会資料
 【初心者向け】Go言語勉強会資料 【初心者向け】Go言語勉強会資料
【初心者向け】Go言語勉強会資料
 
実践で学ぶネットワーク分析
実践で学ぶネットワーク分析実践で学ぶネットワーク分析
実践で学ぶネットワーク分析
 
マイクロサービスアーキテクチャ とは何か
マイクロサービスアーキテクチャとは何かマイクロサービスアーキテクチャとは何か
マイクロサービスアーキテクチャ とは何か
 
最新業界事情から見るデータサイエンティストの「実像」
最新業界事情から見るデータサイエンティストの「実像」最新業界事情から見るデータサイエンティストの「実像」
最新業界事情から見るデータサイエンティストの「実像」
 
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみたRubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
 
Pythonによる機械学習の最前線
Pythonによる機械学習の最前線Pythonによる機械学習の最前線
Pythonによる機械学習の最前線
 

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

Prml Reading Group 10 8.3
Prml Reading Group 10 8.3Prml Reading Group 10 8.3
Prml Reading Group 10 8.3正志 坪坂
 
モンテカルロサンプリング
モンテカルロサンプリングモンテカルロサンプリング
モンテカルロサンプリングKosei ABE
 
大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズム大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズムTakuya Akiba
 
Graph Clustering on Missing Data
Graph Clustering on Missing DataGraph Clustering on Missing Data
Graph Clustering on Missing DataYuma Inoue
 
第13回関西CVPRML勉強会発表資料
第13回関西CVPRML勉強会発表資料第13回関西CVPRML勉強会発表資料
第13回関西CVPRML勉強会発表資料Yutaka Yamada
 
点群深層学習 Meta-study
点群深層学習 Meta-study点群深層学習 Meta-study
点群深層学習 Meta-studyNaoya Chiba
 
Matrix capsules with em routing
Matrix capsules with em routingMatrix capsules with em routing
Matrix capsules with em routingKazuki Fujikawa
 

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

KDD2014 勉強会
KDD2014 勉強会KDD2014 勉強会
KDD2014 勉強会
 
Prml Reading Group 10 8.3
Prml Reading Group 10 8.3Prml Reading Group 10 8.3
Prml Reading Group 10 8.3
 
モンテカルロサンプリング
モンテカルロサンプリングモンテカルロサンプリング
モンテカルロサンプリング
 
大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズム大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズム
 
Graph Clustering on Missing Data
Graph Clustering on Missing DataGraph Clustering on Missing Data
Graph Clustering on Missing Data
 
第13回関西CVPRML勉強会発表資料
第13回関西CVPRML勉強会発表資料第13回関西CVPRML勉強会発表資料
第13回関西CVPRML勉強会発表資料
 
Prml 10 1
Prml 10 1Prml 10 1
Prml 10 1
 
点群深層学習 Meta-study
点群深層学習 Meta-study点群深層学習 Meta-study
点群深層学習 Meta-study
 
凸包
凸包凸包
凸包
 
Matrix capsules with em routing
Matrix capsules with em routingMatrix capsules with em routing
Matrix capsules with em routing
 

Plus de mosa siru

LayerXのQAチームで目指したい動き方 (社内資料)
LayerXのQAチームで目指したい動き方 (社内資料)LayerXのQAチームで目指したい動き方 (社内資料)
LayerXのQAチームで目指したい動き方 (社内資料)mosa siru
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)mosa siru
 
KYC and identity on blockchain
KYC and identity on blockchainKYC and identity on blockchain
KYC and identity on blockchainmosa siru
 
マイニングプールの収益配分と攻撃手法
マイニングプールの収益配分と攻撃手法マイニングプールの収益配分と攻撃手法
マイニングプールの収益配分と攻撃手法mosa siru
 
Payment Channel Introduction
Payment Channel IntroductionPayment Channel Introduction
Payment Channel Introductionmosa siru
 
how to make twitter list automatically
how to make twitter list automaticallyhow to make twitter list automatically
how to make twitter list automaticallymosa siru
 

Plus de mosa siru (6)

LayerXのQAチームで目指したい動き方 (社内資料)
LayerXのQAチームで目指したい動き方 (社内資料)LayerXのQAチームで目指したい動き方 (社内資料)
LayerXのQAチームで目指したい動き方 (社内資料)
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
 
KYC and identity on blockchain
KYC and identity on blockchainKYC and identity on blockchain
KYC and identity on blockchain
 
マイニングプールの収益配分と攻撃手法
マイニングプールの収益配分と攻撃手法マイニングプールの収益配分と攻撃手法
マイニングプールの収益配分と攻撃手法
 
Payment Channel Introduction
Payment Channel IntroductionPayment Channel Introduction
Payment Channel Introduction
 
how to make twitter list automatically
how to make twitter list automaticallyhow to make twitter list automatically
how to make twitter list automatically
 

Dernier

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 

Dernier (9)

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 

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

  • 1. コミュニティ分類アルゴリズムの高速化と ソーシャルグラフへの応用 @mosa_siru 1 13年2月15日金曜日
  • 2. 本研究の要旨 • グラフ理論におけるコミュニティ抽出アルゴリ ズムclique percolation methodを高速化 ‣ 無向グラフにおける高速化手法を、有向グ ラフに応用 • Twitterのコミュニティ分類を行うウェブサイー ビスを作成 http://smartlist.bz • ソーシャルグラフをコミュニティ抽出し、その コミュニティ構造を明らかにする 2 13年2月15日金曜日
  • 3. コミュニティとは • 部分グラフのうち、内部に枝が相対的に多く見出され るようなもの • 様々な厳密な定義と分類アルゴリズムが存在 ‣ コミュニティのオーバーラップ(頂点が複数のコミュニティに属 すること)を許すか否かで二分される 3 13年2月15日金曜日
  • 4. コミュニティ分類手法 オーバーラップを許さない手法 オーバーラップを許す手法 • グラフ分割 • clique percolation method • 階層的クラスタリング • 線グラフ化 • Girvan-Newman Algorithm • Girvan-Newman Algorithm の拡張 • モジュラリティ最適化 • Modularityの拡張 • Surprise最適化 有名なclique percolation method (CPM) Palla et al. 2005[1] に焦点を当てる. 4 13年2月15日金曜日
  • 5. CPMのコミュニティ定義 • 以下無向グラフとする.自然数 k を取り、頂点数 k の クリーク(k-クリーク)を用いて「k-クリークコミュ ニティ」を定義 • k-クリークコミュニティ:隣接するk-クリークを経由 して互いに行き来できるクリーク集合 • 隣接: k - 1 個の頂点を共有すること k = 4 での例. 三角形を共有すれば隣接する. 5 4-クリークコミュニティの例 13年2月15日金曜日
  • 6. CPMの特徴 • オーバーラップを許容 • あるコミュニティの生成過程が他のコミュニティに影 響されることはない • ローカル(辺や頂点が変更されても,コミュニティへ の影響は局所的である) • 確率的な手法や近似を行っていないため,決定性があ り,結果に再現性がある. • k の値を変更することで,抽出条件の厳しさを調整す ることができる. ‣ 前スライドの例は, k = 3 で全ての頂点が1つのコミュニティに. 6 13年2月15日金曜日
  • 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を高速化し,巨大で密なグラフも計算可能にする. 7 13年2月15日金曜日
  • 8. CFinderのアルゴリズム(1) • k-クリークコミュニティ定義において,以下の2つは 同値 1. 「k - 1個の共有頂点を持つk-クリーク同士を経由して互いに行き来 できるクリーク集合」 2. 「k - 1個以上の共有頂点を持つ頂点数 k 以上の極大クリーク同士 を経由して互いに行き来できるクリーク集合」 ‣ n-クリーク (n≧k) は,それ自体が k-クリークコミュニティをな し,クリーク同士の共有頂点もクリークをなすため. 4-クリークが3-クリークコミュニティをなす例. 13年2月15日金曜日
  • 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 9 13年2月15日金曜日
  • 10. CPMの計算困難性(1) • 極大クリーク数の二乗回,共有頂点数を調べる必要あり ‣ グラフが密な場合,大量に極大クリークが存在することがある.(例: ソーシャルグラフ) ‣ カリフォルニア工科大学生のfacebookネットワークでは, 頂点数769 に対し極大クリーク数は31745.k = 5 での隣接する極大ク リーク対は170万以上にのぼる. (Reid et. al. 2011) ‣ このような例では,極大クリーク対はほとんど同じ頂点を共有する. ‣ 極大クリーク数が多くなる理由として,大きな極大クリークから一部の 枝を取り除くと,大量の極大クリークが生成されることが挙げられる. (例) 6-クリークから辺を2本取り除くと, 4つの極大クリークが生成される. 13年2月15日金曜日
  • 11. CPMの計算困難性(2) • 頂点や枝によって k- クリークコミュニティは表現できな い.膨大な数の k- クリーク集合か極大クリーク集合で表 す必要がある. ‣ k-クリークコミュニティは, k- クリークに属していないような (k - 1)-ク リークを含みうるため(図). ‣ あるクリークが k- クリークコミュニティのどれかのクリークに隣接する か否か調べるためには,コミュニティ内の全ての極大クリークか k- クリ ークに対し共有頂点数を調べねばならない. (例)k = 4. 緑と橙の頂点はk-クリークコミュニティ をなすが,青の頂点はこのコミュニティに含まれ ない. 13年2月15日金曜日
  • 12. fast CPM (f-CPM) • クリークグラフを作らない.極大クリーク間の不要な隣接 判定を行わないことにより高速化. ‣ 極大クリークAとBが隣接し,BとCが隣接することがわかったら,A, B, Cは1つのコミュニティに属しているので,AとCが隣接するか否か調べ る必要はない. ‣ 1つも共有頂点を持たない極大クリーク同士の共有頂点数は調べる必要 はない. • 密なネットワークに対してもCPMが適用できるようにな る. 12 13年2月15日金曜日
  • 13. directed CPM (CPMd) • 有向グラフに対するCPM.Palla et al. 2007 [5] ‣ 以下のように有向クリークを定義した上でのCPM. ‣ 枝の向きを無視してCPMすることはできるが,きちんと向きを考慮にい れる. • 有向クリークの定義:「ある部分グラフにおいて,任意の 頂点間に枝が存在し,DAGである(=閉路を持たな い).」 ‣ ただし双方向枝( )がある場合は,それを無視した上で閉路判定する. ‣ Palla et al. 2007 [5]の定義とは異なるが,同値な定義を採用. 13 13年2月15日金曜日
  • 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 有向クリークである 有向クリークでない 14 13年2月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を行う 15 13年2月15日金曜日
  • 16. Twitter SmartList • 提案手法「f-CPMd」により有向なソーシャルグラフのコ ミュニティ抽出が可能になった. • Twitterのリスト機能作成を補助するサービス「Twitter SmartList」(http://smartlist.bz)を作成. ‣ リスト機能:特に見たいユーザーをグループ分けする機能 ‣ 600人以上のユーザーに利用され,非常に良い評判を得ている. • Twitter APIからフォローネットワークを 取得した. ログインユーザーがフォローしている ユーザーに頂点を限定. 16 13年2月15日金曜日
  • 18. 提案手法の速度評価実験(1) • CPMdとf-CPMdの速度を比較. • データセット SmartListで取得した,あるユーザーを基点にしたフォロ ーネットワーク(下図)において,p|V|個 (0<p≦1)の頂点を ランダムに選んでデータセットを複数作成 頂点数 |V| 380 枝数 |E| 5600 有向極大クリーク数 4063 有向極大クリークの平均頂点数 6.216 有向最大クリークの頂点数 14 18 13年2月15日金曜日
  • 19. 提案手法の速度評価実験(1)結果 • CPMdもf-CPMdも,頂点数に対し計算時間は指数的 • p = 0.9 では,提案手法が350倍以上速い. • p = 1.0 では,既存手法は11時間以上かけても計算が終わ らなかった一方で,提案手法は6.7秒で終了した. 13年2月15日金曜日
  • 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 26 13年2月15日金曜日
  • 21. 提案手法の速度評価実験(2)結果 • 有向極大クリーク数とその頂点数が多いグラフでは, (3)f-CPMの計算時間が支配的 13年2月15日金曜日
  • 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. フォローネットワークのコミュニティ構造(2) (c) コミュニティ内の頂点数の累積分布 k=6 k=8 べき則に近い状況になっている.(CPMの先行研究と一致.Palla et al. 2005 [1]) 13年2月15日金曜日
  • 24. フォローネットワークのコミュニティ構造(3) (d) コミュニティの隣接するコミュニティ数(コミュニティ の次数)の累積分布 k=6 k=8 べき則から指数分布に変化することが観察可能.(CPMの先行研究 [1] と一致) 13年2月15日金曜日
  • 25. フォローネットワークのコミュニティ構造(4) (d) 隣接するコミュニティ対の共有頂点数の累積分布 k=6 k=8 .指数分布に近い.(CPMの先行研究 [1] ではべき則とされる.) 13年2月15日金曜日
  • 26. フォローネットワークのコミュニティ構造(5) (e) 隣接するコミュニティ対の共有頂点数が,片方のコミュ ニティの頂点数に占める割合の累積分布 k=6 k=8 多くのコミュニティ対が,比較的多くの割合の頂点を共有して隣接する. 13年2月15日金曜日
  • 27. フォローネットワークのコミュニティ構造(5) (f) 頂点数の属するコミュニティ数の累積分布 k=6 k=8 指数分布に近い.(CPMの先行研究 [1] ではべき則とされる.) 13年2月15日金曜日
  • 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. 結論 • 提案手法「f-CPMd」によりCPMdを高速化し,密な有向 グラフにおけるCPMdが可能になった ‣ 既存のアルゴリズムで11時間以上かけても終わらなかったデータセット が,6.7秒で計算できた ‣ f-CPM(極大クリーク間の隣接判定)の計算時間が支配的 • Twitter SmartList(http://smartlist.bz)を作成し,良好な 評判を得た • Twitterのフォローネットワークにおけるコミュニティ構 造を明らかにした 29 13年2月15日金曜日
  • 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. 参考文献 [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日金曜日