SlideShare a Scribd company logo
1 of 15
2部グラフとソーシャルネットワーク
BIPARTITE	
  GRAPH	
  AND	
  SOCIAL	
  NETWORKS




                                           Tokyo.R
                                  10th of March, 2012
                                        @millionsmile
2部グラフとは
          WHAT	
  IS	
  A	
  BIPARTITE	
  GRAPH?
•   2部グラフ(bipartite	
  graph)とは、グラフGの点集合を2つの集合、V1,	
  V2に分割し、
    Gの全ての辺はV1のノードとV2のノードを結ぶようにしてできあがるグラフ
    V 1 ∪ V 2 = G, V 1 ∩ V 2 = ∅

                                   G




                      V1                 V2
2	
  TYPES	
  OF	
  NETWORK	
  DATA	
  FORMAT
•   ネットワークデータの持ち⽅方として、最もベーシックなフォーマットは、「隣接⾏行行列」
    と「エッジリスト」がある。


•   ⼩小規模なデータであれば隣接⾏行行列でもよいが、⼤大きくなりすぎるネットワークデータで
    はエッジリストを使う⽅方がよい。しかし、⼤大規模データになると、KVSにしたりといっ
    た⼯工夫や分散処理を取り⼊入れないとネットワークの計算できないので注意が必要。
                                                                         
                                                        0   1   1   1   1
                                                      1    0   0   1   0
                                                                         
                                         隣接⾏行行列   A = 1
                                                      
                                                      1
                                                            0   0   0   0
                                                            1   0   0   1
      v1             v2                                 1   0   0   1   0

                                                       From, To
                                                       v1, v2
           v3   v4                                     v1, v3
                                                       v1, v4
                                                       v1, v5
                      v5   左のグラフをデータ変換                 v2, v1
                                         エッジリスト        v2, v4
                                                       v3, v1
                                                       v4, v1
                                                       v4, v2
                                                       v4, v5
                                                       v5, v1
                                                       v5, v4
テロリストネットワークがわかる2部グラフ
•   2部グラフを使うことで、例えば、誰がどこにいたかという情報を収集することで、誰
    と誰が知り合いである可能性があるということをソーシャルグラフ的に表すことができ
    る。


•   911のテロリストに関し、我々は誰と誰が知り合いかは知ることができない。しかし、
    どのテロリストがどこにいたかという情報を収集することでどのテロリストとどのテロ
    リストが関係するかというのがみえてくる。


                                                                テロリストF

                                   テロリストAは2つの
                                   集会に出ているの
                                   で、媒介中心性があ
    テロリストC                テロリストA   るとみなすとか。     テロリストA                  テロリストE




                     テロリストB                                      テロリストD


             ニューヨークでの集会                                  サンフランシスコでの集会
テロリストネットワークがわかる2部グラフ

•   ノードはそれぞれテロリストをあらわ
    し、⾊色はハイジャックした⾶飛⾏行行機のフ
    ライト別となっている。


•   どのテロリストとどのテロリストがつ
    ながっているかは、誰かどこに誰とい
    たかという情報からエッジを作成。


•   こうみると、案外、疎なネットワーク
    である。しかし、これは情報が不⾜足し
    ていることに起因する。
テロリストネットワークがわかる2部グラフ

•   ロスでのミーティング情報を付与する
    と、より⼈人間のネットワークっぽくな
    りました。


•   このように、ソーシャルグラフがなく
    ても、誰がどこにいたかという情報か
    ら、ソーシャルグラフもどきがつくれ
    てしまうのである。


•   こういうのは何かに役⽴立立ちそう。
テロリストネットワークがわかる2部グラフ

•   さらに、次数中⼼心性や媒介中⼼心性、近
    接中⼼心性を求めることで、テロリスト
    ネットワークの中⼼心⼈人物を計算するこ
    とができる。これは凄い。


•   完全な情報ではないにせよ、収集でき
    る情報からこのような活⽤用もできると
    いうのは⾯面⽩白い。


•   興味ある⼈人は、この論⽂文参照。
    http://firstmonday.org/htbin/cgiwrap/bin/ojs/
    index.php/fm/article/view/941/863
Rを使って2部グラフのネットワーク分析を
        やってみる
DVDレンタル購買履歴を
                   ネットワークにする
•   3つの映画(攻殻機動隊、NUMB3RS、ゴッドファーザー、チャーリーズ・エンジェ
    ル)と、映画鑑賞した⼈人(Alice,	
  Bob,	
  Carol,	
  David,	
  Elvis)がいたとする。で、それ
    ぞれ以下のような映画鑑賞をしたとする。
    ※これは複雑ネットワークを使ったサイジニアのデクワスという製品の発想

                     Alice                       Ghost	
  In	
  the	
  Shell


                     Bob
                                                  NUMB3RS

                     Carol

                                                 God	
  Father
                    David



                     Elvis                       Charlieʼ’s	
  Angel
DVDレンタルの購買履歴を
               ネットワークにする
•   隣接⾏行行列をつかってデータをみてみる。


•   映画と映画鑑賞した⼈人の隣接⾏行行列を⾏行行列積にすると、それぞれどの映画が多くみられた
    か、誰が多く映画がみたかがわかる。映画はNUMB3RSとCharlieʼ’s	
  Angelが3で最もみ
    られた映画であり、Davidが最も映画鑑賞した⼈人であることがわかる。
DVDレンタルの購買履歴を
            ネットワークにする
•   2部グラフをネットワーク図に変換してみる。バイオ系な描画?
DVDレンタルの購買履歴を
                ネットワークにする
•   エッジリストで計算してみる。igraphというパッケージを使えば計算がめさめさ速い。


•   媒介中⼼心性は、Charlieʼ’s	
  Angel(15.5)とDavid(17.0)と⾼高く、近接中⼼心性も、
    Charlieʼ’s	
  Angel(0.533)とDavid(0.571)と⾼高い。三⾓角形はどれもないので、クラス
    ター係数は0かNaNである。
DVDレンタルの購買履歴を
            ネットワークにする
•   コミュニティー抽出の発想をとりいれる。


•   映画ネットワーク(左図)と映画鑑賞者ネットワーク(右図)に分類する。
DVDレンタルの購買履歴を
                ネットワークにする
•   映画コミュニティと映画鑑賞者コミュニティのそれぞれのネットワーク指標を計算する


•   コミュニティにしたことで、クラスター係数が算出された。三⾓角形があるということは
    その三者の関係性は強いとみなすことができるので、その発想からレコメンドができた
    りもする。例えば、AliceはGhost	
  In	
  the	
  Shellを観ていて、同じ映画をDavidも観てい
    るので、AliceにDavidのみた映画をレコメンドするなど(これは単純化した例)。
なぜ3⼈人いると噂が広まるのか
•   世の中の様々な三角形について紹介。職場の人間関係、仕事の能率化、クチコミ、無縁
    社会、院内感染の防止、金融危機、環境問題、スポーツ選手のランキングなど。今回LT
    で話したサイジニアについても紹介している。




•   『なぜ3人いると           が広まるのか』増田直紀、日経プレミアムシリーズ
    http://www.amazon.co.jp/dp/4532261554/

    ※わたしもちょろっと名前がでているよ!

More Related Content

What's hot

Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
kiki utagawa
 
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量
takaya imai
 
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~
Yuya Unno
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
Shuyo Nakatani
 

What's hot (20)

異次元のグラフデータベースNeo4j
異次元のグラフデータベースNeo4j異次元のグラフデータベースNeo4j
異次元のグラフデータベースNeo4j
 
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
 
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
 
BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装
 
Visual Studio CodeでRを使う
Visual Studio CodeでRを使うVisual Studio CodeでRを使う
Visual Studio CodeでRを使う
 
Lucas kanade法について
Lucas kanade法についてLucas kanade法について
Lucas kanade法について
 
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量
 
tf,tf2完全理解
tf,tf2完全理解tf,tf2完全理解
tf,tf2完全理解
 
ナレッジグラフ入門
ナレッジグラフ入門ナレッジグラフ入門
ナレッジグラフ入門
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
[DL輪読会]Deep Neural Networks as Gaussian Processes
[DL輪読会]Deep Neural Networks as Gaussian Processes[DL輪読会]Deep Neural Networks as Gaussian Processes
[DL輪読会]Deep Neural Networks as Gaussian Processes
 
MLOpsはバズワード
MLOpsはバズワードMLOpsはバズワード
MLOpsはバズワード
 
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
 
ビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年version
 
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~
 
基礎線形代数講座
基礎線形代数講座基礎線形代数講座
基礎線形代数講座
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
カルマンフィルタ入門
カルマンフィルタ入門カルマンフィルタ入門
カルマンフィルタ入門
 
Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
 

More from Hiroko Onari

Data scientist casual talk in 白金台
Data scientist casual talk in 白金台Data scientist casual talk in 白金台
Data scientist casual talk in 白金台
Hiroko Onari
 
Rでソーシャルネットワーク分析
Rでソーシャルネットワーク分析Rでソーシャルネットワーク分析
Rでソーシャルネットワーク分析
Hiroko Onari
 
傾向スコアでみる ソーシャルネットワーク分析
傾向スコアでみる ソーシャルネットワーク分析傾向スコアでみる ソーシャルネットワーク分析
傾向スコアでみる ソーシャルネットワーク分析
Hiroko Onari
 
複雑ネットワーク勉強会 第2章ネットワークの特徴量(後半) 20120215
複雑ネットワーク勉強会 第2章ネットワークの特徴量(後半) 20120215複雑ネットワーク勉強会 第2章ネットワークの特徴量(後半) 20120215
複雑ネットワーク勉強会 第2章ネットワークの特徴量(後半) 20120215
Hiroko Onari
 
複雑ネットワーク勉強会 二部グラフの基礎と応用 20120208
複雑ネットワーク勉強会  二部グラフの基礎と応用 20120208複雑ネットワーク勉強会  二部グラフの基礎と応用 20120208
複雑ネットワーク勉強会 二部グラフの基礎と応用 20120208
Hiroko Onari
 
統計学と複雑ネットワークのちょっと深いい話 - おしゃれStatistics @銀座
統計学と複雑ネットワークのちょっと深いい話 - おしゃれStatistics @銀座統計学と複雑ネットワークのちょっと深いい話 - おしゃれStatistics @銀座
統計学と複雑ネットワークのちょっと深いい話 - おしゃれStatistics @銀座
Hiroko Onari
 

More from Hiroko Onari (14)

teaming and weak internal information
teaming and weak internal informationteaming and weak internal information
teaming and weak internal information
 
Thank you communication network in organization 感謝ネットワークからみる組織のコミュニケーションの形
Thank you communication network in organization 感謝ネットワークからみる組織のコミュニケーションの形Thank you communication network in organization 感謝ネットワークからみる組織のコミュニケーションの形
Thank you communication network in organization 感謝ネットワークからみる組織のコミュニケーションの形
 
Data scientist casual talk in 白金台
Data scientist casual talk in 白金台Data scientist casual talk in 白金台
Data scientist casual talk in 白金台
 
はじめてのパターン認識勉強会 20130716
はじめてのパターン認識勉強会 20130716はじめてのパターン認識勉強会 20130716
はじめてのパターン認識勉強会 20130716
 
Rでソーシャルネットワーク分析
Rでソーシャルネットワーク分析Rでソーシャルネットワーク分析
Rでソーシャルネットワーク分析
 
集合知プログラミング第2章推薦を行う
集合知プログラミング第2章推薦を行う集合知プログラミング第2章推薦を行う
集合知プログラミング第2章推薦を行う
 
Social network analysis for startups ch6
Social network analysis for startups ch6Social network analysis for startups ch6
Social network analysis for startups ch6
 
Suicide ideation of individuals in online social networks tokyo webmining
Suicide ideation of individuals in online social networks tokyo webminingSuicide ideation of individuals in online social networks tokyo webmining
Suicide ideation of individuals in online social networks tokyo webmining
 
傾向スコアでみる ソーシャルネットワーク分析
傾向スコアでみる ソーシャルネットワーク分析傾向スコアでみる ソーシャルネットワーク分析
傾向スコアでみる ソーシャルネットワーク分析
 
複雑ネットワーク勉強会 第2章ネットワークの特徴量(後半) 20120215
複雑ネットワーク勉強会 第2章ネットワークの特徴量(後半) 20120215複雑ネットワーク勉強会 第2章ネットワークの特徴量(後半) 20120215
複雑ネットワーク勉強会 第2章ネットワークの特徴量(後半) 20120215
 
複雑ネットワーク勉強会 二部グラフの基礎と応用 20120208
複雑ネットワーク勉強会  二部グラフの基礎と応用 20120208複雑ネットワーク勉強会  二部グラフの基礎と応用 20120208
複雑ネットワーク勉強会 二部グラフの基礎と応用 20120208
 
複雑ネットワーク勉強会 第2章前半(R, gephi, cytoscapeの事例付) 20120122
複雑ネットワーク勉強会 第2章前半(R, gephi, cytoscapeの事例付) 20120122複雑ネットワーク勉強会 第2章前半(R, gephi, cytoscapeの事例付) 20120122
複雑ネットワーク勉強会 第2章前半(R, gephi, cytoscapeの事例付) 20120122
 
統計学と複雑ネットワークのちょっと深いい話 - おしゃれStatistics @銀座
統計学と複雑ネットワークのちょっと深いい話 - おしゃれStatistics @銀座統計学と複雑ネットワークのちょっと深いい話 - おしゃれStatistics @銀座
統計学と複雑ネットワークのちょっと深いい話 - おしゃれStatistics @銀座
 
Tokyo webmining 複雑ネットワークとデータマイニング
Tokyo webmining 複雑ネットワークとデータマイニングTokyo webmining 複雑ネットワークとデータマイニング
Tokyo webmining 複雑ネットワークとデータマイニング
 

2部グラフとソーシャルネットワーク

  • 1. 2部グラフとソーシャルネットワーク BIPARTITE  GRAPH  AND  SOCIAL  NETWORKS Tokyo.R 10th of March, 2012 @millionsmile
  • 2. 2部グラフとは WHAT  IS  A  BIPARTITE  GRAPH? • 2部グラフ(bipartite  graph)とは、グラフGの点集合を2つの集合、V1,  V2に分割し、 Gの全ての辺はV1のノードとV2のノードを結ぶようにしてできあがるグラフ V 1 ∪ V 2 = G, V 1 ∩ V 2 = ∅ G V1 V2
  • 3. 2  TYPES  OF  NETWORK  DATA  FORMAT • ネットワークデータの持ち⽅方として、最もベーシックなフォーマットは、「隣接⾏行行列」 と「エッジリスト」がある。 • ⼩小規模なデータであれば隣接⾏行行列でもよいが、⼤大きくなりすぎるネットワークデータで はエッジリストを使う⽅方がよい。しかし、⼤大規模データになると、KVSにしたりといっ た⼯工夫や分散処理を取り⼊入れないとネットワークの計算できないので注意が必要。   0 1 1 1 1 1 0 0 1 0   隣接⾏行行列 A = 1  1 0 0 0 0 1 0 0 1 v1 v2 1 0 0 1 0 From, To v1, v2 v3 v4 v1, v3 v1, v4 v1, v5 v5 左のグラフをデータ変換 v2, v1 エッジリスト v2, v4 v3, v1 v4, v1 v4, v2 v4, v5 v5, v1 v5, v4
  • 4. テロリストネットワークがわかる2部グラフ • 2部グラフを使うことで、例えば、誰がどこにいたかという情報を収集することで、誰 と誰が知り合いである可能性があるということをソーシャルグラフ的に表すことができ る。 • 911のテロリストに関し、我々は誰と誰が知り合いかは知ることができない。しかし、 どのテロリストがどこにいたかという情報を収集することでどのテロリストとどのテロ リストが関係するかというのがみえてくる。 テロリストF テロリストAは2つの 集会に出ているの で、媒介中心性があ テロリストC テロリストA るとみなすとか。 テロリストA テロリストE テロリストB テロリストD ニューヨークでの集会 サンフランシスコでの集会
  • 5. テロリストネットワークがわかる2部グラフ • ノードはそれぞれテロリストをあらわ し、⾊色はハイジャックした⾶飛⾏行行機のフ ライト別となっている。 • どのテロリストとどのテロリストがつ ながっているかは、誰かどこに誰とい たかという情報からエッジを作成。 • こうみると、案外、疎なネットワーク である。しかし、これは情報が不⾜足し ていることに起因する。
  • 6. テロリストネットワークがわかる2部グラフ • ロスでのミーティング情報を付与する と、より⼈人間のネットワークっぽくな りました。 • このように、ソーシャルグラフがなく ても、誰がどこにいたかという情報か ら、ソーシャルグラフもどきがつくれ てしまうのである。 • こういうのは何かに役⽴立立ちそう。
  • 7. テロリストネットワークがわかる2部グラフ • さらに、次数中⼼心性や媒介中⼼心性、近 接中⼼心性を求めることで、テロリスト ネットワークの中⼼心⼈人物を計算するこ とができる。これは凄い。 • 完全な情報ではないにせよ、収集でき る情報からこのような活⽤用もできると いうのは⾯面⽩白い。 • 興味ある⼈人は、この論⽂文参照。 http://firstmonday.org/htbin/cgiwrap/bin/ojs/ index.php/fm/article/view/941/863
  • 9. DVDレンタル購買履歴を ネットワークにする • 3つの映画(攻殻機動隊、NUMB3RS、ゴッドファーザー、チャーリーズ・エンジェ ル)と、映画鑑賞した⼈人(Alice,  Bob,  Carol,  David,  Elvis)がいたとする。で、それ ぞれ以下のような映画鑑賞をしたとする。 ※これは複雑ネットワークを使ったサイジニアのデクワスという製品の発想 Alice Ghost  In  the  Shell Bob NUMB3RS Carol God  Father David Elvis Charlieʼ’s  Angel
  • 10. DVDレンタルの購買履歴を ネットワークにする • 隣接⾏行行列をつかってデータをみてみる。 • 映画と映画鑑賞した⼈人の隣接⾏行行列を⾏行行列積にすると、それぞれどの映画が多くみられた か、誰が多く映画がみたかがわかる。映画はNUMB3RSとCharlieʼ’s  Angelが3で最もみ られた映画であり、Davidが最も映画鑑賞した⼈人であることがわかる。
  • 11. DVDレンタルの購買履歴を ネットワークにする • 2部グラフをネットワーク図に変換してみる。バイオ系な描画?
  • 12. DVDレンタルの購買履歴を ネットワークにする • エッジリストで計算してみる。igraphというパッケージを使えば計算がめさめさ速い。 • 媒介中⼼心性は、Charlieʼ’s  Angel(15.5)とDavid(17.0)と⾼高く、近接中⼼心性も、 Charlieʼ’s  Angel(0.533)とDavid(0.571)と⾼高い。三⾓角形はどれもないので、クラス ター係数は0かNaNである。
  • 13. DVDレンタルの購買履歴を ネットワークにする • コミュニティー抽出の発想をとりいれる。 • 映画ネットワーク(左図)と映画鑑賞者ネットワーク(右図)に分類する。
  • 14. DVDレンタルの購買履歴を ネットワークにする • 映画コミュニティと映画鑑賞者コミュニティのそれぞれのネットワーク指標を計算する • コミュニティにしたことで、クラスター係数が算出された。三⾓角形があるということは その三者の関係性は強いとみなすことができるので、その発想からレコメンドができた りもする。例えば、AliceはGhost  In  the  Shellを観ていて、同じ映画をDavidも観てい るので、AliceにDavidのみた映画をレコメンドするなど(これは単純化した例)。
  • 15. なぜ3⼈人いると噂が広まるのか • 世の中の様々な三角形について紹介。職場の人間関係、仕事の能率化、クチコミ、無縁 社会、院内感染の防止、金融危機、環境問題、スポーツ選手のランキングなど。今回LT で話したサイジニアについても紹介している。 • 『なぜ3人いると が広まるのか』増田直紀、日経プレミアムシリーズ http://www.amazon.co.jp/dp/4532261554/ ※わたしもちょろっと名前がでているよ!