44
Rtwitterのクラスタを あぶりだしてみた favorite機能による重み付きグラフ構造を用いた twitterの社会ネットワーク分析 Tsukuba.R#4 @y_benjo

twitter's social network analysis

Embed Size (px)

DESCRIPTION

twitterの関係性をfav情報を用いた無向重み付きグラフで分析してみた

Citation preview

Page 1: twitter's social network analysis

Rでtwitterのクラスタをあぶりだしてみた

favorite機能による重み付きグラフ構造を用いたtwitterの社会ネットワーク分析

Tsukuba.R#4

@y_benjo

Page 2: twitter's social network analysis

自己紹介

• twitter id : y_benjo

• hatena id : repose

– http://d.hatena.ne.jp/repose

• 春から院生

• 専門とか特にない

Page 3: twitter's social network analysis

• LTということで

• 数式もプログラムも少なめでいきます

Page 4: twitter's social network analysis

Twitter

Page 5: twitter's social network analysis
Page 6: twitter's social network analysis

twitterではよく「クラスタ」とか言われます

Page 7: twitter's social network analysis

ITクラスタ

Page 8: twitter's social network analysis

変態クラスタ

Page 9: twitter's social network analysis

アニメアイコンクラスタ

Page 10: twitter's social network analysis

女装クラスタ

Page 11: twitter's social network analysis
Page 12: twitter's social network analysis

これをどうにか分析できないか

Page 13: twitter's social network analysis
Page 14: twitter's social network analysis
Page 15: twitter's social network analysis

というわけでやってみる

Page 16: twitter's social network analysis

仮説:クラスタ内で互いにふぁぼりあう

Page 17: twitter's social network analysis
Page 18: twitter's social network analysis
Page 19: twitter's social network analysis

構想(1)

• Twitterの人間関係をグラフとして扱う

• その際、「どのユーザが誰の発言をfavっているか」を使って重み付有向グラフにしてみる

– fav:ある発言を「お気に入り」にいれる機能。

•「面白い発言」への反応

–有向グラフ:AからBにはつながっているが、BからAにはつながっていないような、非対称なグラフ

Page 20: twitter's social network analysis

構想(2)

• クラスタリングはハードクラスタリングを

–ユーザがひとつのクラスタにのみ分割される

–「俺はつくばクラスタで変態クラスタだな」などというクラスタリングは無し

–フゔジゖクラスタリングだとクラスタの重複が可能だが、触ったことが無いので

Page 21: twitter's social network analysis

まずはデータ収集

Page 22: twitter's social network analysis

はじめてのクロール

Page 23: twitter's social network analysis

whitelistを貰ってAPI叩きまくる

Page 24: twitter's social network analysis

最初はグラフをプロットして目視で分割

Page 25: twitter's social network analysis

そこでRのigraphパッケージ

• install.packages(“igraph”)

• 隣接行列からグラフを簡単に作れる優れもの

• plotも簡単

• Cytoscapeと組み合わせるともっと簡単

• これで勝つる!!!!

Page 26: twitter's social network analysis
Page 27: twitter's social network analysis
Page 28: twitter's social network analysis

もうちょっと真っ当にやる

Page 29: twitter's social network analysis

既存研究ありすぎワロタ

Page 30: twitter's social network analysis

社会ネットワーク分析

• A Clauset, MEJ Newman, C Moore:

– Finding community structure in very largenetworks (2004)

• J. Duch and A. Arenas:

–Community detection in complex networks using extremal optimization (2005)

• ここらへんを試してみる

Page 31: twitter's social network analysis

大雑把な考え方

• なる指標を考えて、この値が最大になるようにグラフをクラスタに分割していく

Page 32: twitter's social network analysis

Rで実装する

• ソースは汚すぎるので…

• 慣例に従って有効グラフを無向グラフに変換

–具体的には、AがBをfavった回数とBがAをfavった回数を平均してA-B間の重みに

Page 33: twitter's social network analysis

少し考える• ゕルゴリズムのはO(N^2ln^2)

• ユーザごとの重みの総和を図にしてみても、5000id全て計算するのは無駄っぽそう…

–とりあえず329人分

Page 34: twitter's social network analysis

計算:48時間ぐらい

Page 35: twitter's social network analysis

結果:329userが75クラスタに

傾向:細かく分割されすぎ

サイズにばらつきありすぎ

Page 36: twitter's social network analysis
Page 37: twitter's social network analysis

大きなクラスタをいくつか紹介

329userの全クラスタ内訳はblogにアップします

Page 38: twitter's social network analysis

変態クラスタ(最大、90user)

GUMIMI

zeppel

Hajimepg

GUMIMI, HOJ, Hajimepg, Palpha,

SAN_Morishi, Sebastianus, TEtra11, Toyolina,

Wing_of_Blood, aki426, aorenjar, bombtter,

camelletgo, ch1haya, chap_py, chcbigz, chief_szk,

choconono, cress_cc, emakko, enpitsu, evil07,

f_jiro, fortunathefate, fune, garandou, gokujo,

ha_ma, ha_ru_ka, halciondaze, hazime1373,

hetaremozu, hironao, itati0, k_katsura,kaiware007

kazusap, kek_kuten, konaken, koukai, kuroreva,

kuzu_doh, kyabesuke, lakililac, llcheesell, lolipuni,

m_soba, masumizaru, meba, migelfutosi,

mio_sakamoto, miru, myu65, mywalrus, nekocafe,

ni_no_, nisenisetila, nurutema, ocha39, onicks2,

ooabikoo, p_n_y, poyow, purelightway, ragusk,

rarihoma, rokudenashi, ruehaduki, sakakiyu,

sayn0, shitu, shy_azusa, sio_halfmoon, suiginex,

suiginth, syochin, syounenX, tato256, tc_501, ukix,

wakatter, xmmm, y883, ycums, ykzts, yteppei,

yumeka_, zeppel, zero_zaki_,

Page 39: twitter's social network analysis

ITっぽいクラスタ(60user)

bulkneets

kotoriko

yuiseki

Ett, KIMAGURE, VoQn, a_dach, bambico,

bulkneets, chrcc, deadpop, eigokun,enraku

error403, fkgw, fuba, fuba_recorder,

hajime, harsch, hazy_moon, hironica,

hoge_systemz, irm_fyuk, isbsh, jazzanova,

jinon, kagawa, kanamoken, kkshow,

kotoriko, kudan_, kusigahama, kyoujin,

lalha, m0h1can, marco11, mayutan,

morygonzalez, nancii, natant12, nipotan,

oquno, penguinana, pha, placebogirl,

sachi_volta, saeko, saetomin, send_, slyl,

snoa, todesking, toriko, totoon, ugnews,

umelabo, wazurai, wyinoue, y_benjo,

yodaka, youpy, yuiseki,

Page 40: twitter's social network analysis

ハチロククラスタ(11user)

Misho

kaeru_san

T_hash

Misho, T_Hash,

hayamiz, kaeru_san,

limitusus, mickey24,

natsutan, sak65536,

syou6162, tencube,

Page 41: twitter's social network analysis

評論?クラスタ(8user)

hanemimi

kanose

wideangle

esehara, hanemimi,

kanose, kisoem,

matakimika, okadaic,

tsuda, wideangle,

Page 42: twitter's social network analysis

補足

• その他のクラスタは1~4人で構成されるものが多い

–クラスタの構成userを見てみると、ある程度妥当性がありそうな面子が

• クラスター分析全般に言えることですが、これが絶対的な分割ではない

– fav情報のみで行っているという事を忘れずに

Page 43: twitter's social network analysis

結論

• 結構それっぽい感じで抽出できたと思う

–今回は小規模だったが、極端な話5000userで計算しても同様のクラスタが得られるので、そう考えると面白いんじゃないかと

• 欠点:計算時間かかりすぎ

–行列計算が楽なだけでRでやる必要があまりない

–定期的にクロールさせてクラスタの状況を更新していく、とかさせてみたい……

Page 44: twitter's social network analysis

ありがとうございました

使用環境:R, Ruby, Meadow (ruby-mode ,ESS)

参考文献

:Finding community structure in very large networks (2004)

:Community detection in complex networks using extremal optimization (2005)