読者です 読者をやめる 読者になる 読者になる

ゆとりずむ

東京で働く意識低い系ITコンサル(見習)。金融、時事、節約、会計等々のネタを呟きます。

MENU

互助会の構造をGephiで可視化してみる

ネット・IT


こんにちは、らくからちゃです。

以前ぶらっとインターネットをぶらぶらしていたら、こんな記事を見つけました。

『パナマ文書』の問題については、いいなー偉い人は沢山お金持っててさー、と遠い世界の話にしか感じられませんでしたが、解析手法については中々興味深いお話でした。

今回の流出事件では、2.6TBもの大量のデジタルデータが流出されたと言われています。しかし、このデータの中から、資金の流れの関連性を分析していくのは、人力では不可能に近い作業です。そこで今回力を発揮したのが『グラフ解析』という手法です。

グラフ解析とは何か

 グラフというと、折れ線であったり縦棒であったり、そういった数値を可視化するツールとしての印象をお持ちかもしれませんが、数学の用語としては様々な要素と要素の関係性を分析するツールという意味で用いられます。

つーても分かりづらいかもしれませんが、『人物相関図』のようなものと言えば分かりやすいでしょうか。数学の世界では、大量の人物が登場する人物相関図のデータを解析する『グラフ理論』なんて専門分野があったりもします。

こういうのを研究するわけですね。

f:id:lacucaracha:20160426081940p:plain

(出典:俺の卒論)

こういった研究は、

  • インフルエンザの伝染予防
  • 災害発生時の交通機関への負荷分散
  • 電気自動車の普及に向けてのインフラ投資順序の分析

などなどにも利用されています。それぞれの構造や振る舞いをきちんと分析することが出来れば、最小限の公共投資で最大限の経済効果を得ることが出来ます。例えばこんな感じね!

f:id:lacucaracha:20160426082743p:plain

f:id:lacucaracha:20160426082755p:plain

(出典:俺の卒論発表資料)

こうしたグラフ分析やグラフ理論の知識は、今後ITエンジニアやコンサルタントにとって必須のものとなる可能性もあるんじゃないかなーと思うんですよね。

また、記事の中で紹介されているソフトウェアは、無償で公開されているものも多く、誰でも気軽にも学ぶことが出来ます。ただ、実際のパナマ文章を手に入れることは出来ませんよね。じゃあ、何を題材に分析をしてみたらいいのか?ほら、丁度我々にとっておあつらえむけのものがあるじゃないですか『はてなブックマーク』です。

誰でも簡単Gephiでグラフ分析

今回はGephiというソフトウェアを利用します。ソフトウェア自体は、公式ホームページにて無料で公開されております。そういえば、以前にもこれを使って記事を作成したことがあります。

某所で『互助会マップ』とか言われてたものですね(笑)。作成より、すこし時間が経ったことと切り口を変えてみたいこと、そしてGephiの紹介をしてみたいので、もういちど最新版として作成してみます。手順としてはこんな感じです。

1.データの準備

まずはこんな感じでCSVファイルを用意します。

f:id:lacucaracha:20160426085828p:plain

カラムは、

  • Source ・・・ ブックマーク元
  • Target ・・・ ブックマーク先
  • Weight ・・・ ブックマーク数
  • Label ・・・ ブックマーク元の名称

を指定します。(ちなみに画像は元と先が間違ってますね(*ノω・*)テヘ)今回の抽出対象のデータは、

  • ブログの総ブックマーク数が2,000以上が対象
  • 各ブログの直近20記事に対しつけられたブックマークを解析
  • それをもとにブックマークをつけた回数をカウントし、3以上を取得

とします。以前は、

  • ブログの読者数が100以上
  • 各ブログの直近100記事に対するブックマーク

でした。前回よりも、短期間を対象に深い関係のみを抽出した感じですね。参考までに、今回利用したデータはこちらに公開させて頂きます。

2.データのインポート

次に、ソフトウェアを立ち上げて、ファイルを取り込みます。列名から自動的に取り込み先は判断されますので、間違いなさそうであればNextと。

f:id:lacucaracha:20160426090239p:plain

3.解析ロジックの指定

それぞれのノード間の配置や距離計算のロジックを指定します。ここの指定の仕方によって、得られるグラフの『デザイン』が大きく変わります。

f:id:lacucaracha:20160426090459p:plain

各項目の意味は、実際にいじりながら確認してもらったほうが分かりやすいかと思います。今回は、上記画像の通り設定してみました。

4.対象の絞り込み

これだけですと、思った以上に対象データが多かったので、絞り込みをかけました。今回は、『ブロガー間の関係』にしぼりたいので、『相互ブクマを1回でも行ったユーザ』が対象。かつ被ブクマが5以上(本資料ではSorceとTagretを間違えて元データを作っちゃったので与ブクマ)としてみました。すっきりですね。

f:id:lacucaracha:20160426091002p:plain

5.カラーリングとサイズ設定

Gephiには、コミュニティ自動検出(Modularity計算)の機能もついているので、ひとまず実行しておきます。15コミュニティあるそうです。

f:id:lacucaracha:20160426091448p:plain

この検出されたグループを色分けに利用します。

f:id:lacucaracha:20160426091705p:plain

あとは、影響力の強さを可視化するために、被ブクマ総数でサイズを最大8倍まで差をつけるようにしてみます。

f:id:lacucaracha:20160426091746p:plain

あとは適当にお化粧直しをして完成です。

ね、簡単でしょ?

強いてあげれば、この中で一番むつかしいのは最初のデータ収集ですが、一般教養に毛の生えたレベルのプログラミングが出来れば簡単に収集できます。普段コードは書かないわたしでも全く問題ありませんでした。

その辺のまとめは、下記に書いておきましたので、よろしければ是非ー。

互助会マップ2016(春)

で、出来上がったのがこちらです。

f:id:lacucaracha:20160426092725p:plain

前回、『画像だけだとようわからん』と言われましたので、PDFもご用意致しました。

見方の確認も兼ねて内容の確認をしてみましょうか。まずは、全体の中での位置。中心部に近ければ近いほど、多数の人と満遍なく関係を持っていることを意味します。

f:id:lacucaracha:20160426093039p:plain

つっちーはやっぱり皆の太陽だ(笑)。比較的に蜜につながりあっているところが見て取れますね。

お次は、上のほう。

f:id:lacucaracha:20160426093546p:plain

比較的、長い間ブログをやられている方が多いように思われます。全体的に、ゆるーくつながっている感じでしょうか。すんげー興味深いなと思ったのが、今話題のあの2人が隣り合っているところでしょうか。

次は、左のほう。

f:id:lacucaracha:20160426093726p:plain

あ、わたしだ(笑)。総ブックマーク数の割りに円が小さいのは、あくまで円の大きさはここにいる人たちからのブックマーク数によって決まるからです。ヒトデも小さいなー。それより、隊長の隣ってポジションが嫌なんですけども・・・。

最後に、下のほう。

f:id:lacucaracha:20160426094117p:plain

なんだか、ここ最近頭角を現してきた(?)集団が固まっているような気がします。比較的趣味層が近いのでしょうか?なんかやたら密度も高い気がします。

あとは、右のほうに読書系界隈があったりするのですが、この辺はもう、わたしから遠すぎて全く良くわかりません。

ブックマークをどう使うべきか問題

さーて、こういったブロガー間でのブックマークについては、『ホットエントリーを操作する不正行為だ!』という風に言われることが、本当に良くあります。噂によると『お互いにブックマークをつけあう会』みたいなものがあるらしく、中にはブックマークをつけた人に対してだけ、ブックマーク返しをする、みたいな人も居るとか居ないとか。

そういう使いかたをするのは、如何なものかしらんと思うのですが、その一方で『ブックマークはかくの如く使うべし』みたいに強制されるのも好きじゃない。

こうやってはてなでブログを書いていると、『みんな何を目的に、どういった基準でブックマークって使っているのかなあ』ということは良く考えます。あらためて自分のことを振り返ってみると、

  1. twitter・読者登録・2ch・ホットエントリー等で気になった記事を見つける
  2. 何かシェアしたいものや、意見を言いたいものがあればコメントをつけてブクマ
  3. あとで『そういやこの日はこんなん見たなー』と時系列で振り返ったり、検索したりして使う

そんな風に使っています。シェアしたり意見を言いたいだけであれば、twitterだけでも十分ですが、はてなブックマークの良さって、その検索性能のような気がするんですよね。

今回の記事を書くときも、『そういやパナマ文章の記事でgephiの話があったなー』と思って、『パナマ』で検索したらこんな感じにすぐ返してくれる。

あと専門分野が近いひとのブックマークをずらーっと眺めてみたり、ニュースのキーワードで検索してみて、ブクマ数が多いものを覗いてみたり、割りとそんな感じの使い方をしているほうが多いのかもしれません。

脱ホットエントリー論

使い方はあくまでユーザーの自由ですが、はてなが、ホットエントリーの決定を単純なブックマーク数で評価している以上、意図的に『不正』と言われるような事象が生じやすい環境にあります。これは間違いない。

その結果、『いい加減、ホットエントリーからユーザーを除外する機能を実装しろや』とか『ホッテントリーからはてなブログを駆逐せよ!』なーんて話もよく耳にします。

(まあ、そういう人にニーズがあるかと思って、はてなブログの独自ドメイン一覧も作っておきましたので、ご入用でしたら是非 http://www.hatenanalyzer.net/list.txt)

でもはてなって、こんな素人でも簡単に大量のデータが取得できるよう、apiをすごいしっかり開放してくれてるんですよね。

はてな側の意見としては『うっせえわ。ほしい物があるんだったら、道具は置いといたんだから自分でつくれや、情弱!』って感じなんでしょうか。(村はてブや嫁のはてブみたいな例もありますしね)

とはいえ、はてなのユーザベースが圧倒的にIT屋であったのもいつまでも続くわけでは有りません。はてなは、営利企業ですので、成長のためには多種多様なユーザを取り込んでいく必要があります。

物凄く極端な例ですが、何かをきっかけとして、一挙に女子大生のはてなユーザーが増加したとしましょう。

ホットエントリーには、Qiitaやねとらぼに代わり、アットコスメやガルちゃん、LOWRYS FARMの新作の記事がずらっと並んだとしましょう。まあ、どこかの課長は喜ぶかもしれませんが、既存のはてなユーザーにとって『地獄』のような景色でしょうね。

じゃあ彼女たちは、切り捨て、追い払えば良いのでしょうか。ひとりひとり、対象を選定して除外できる仕組みを作る?特定のドメインは入らないようにする?多分、運営サイドがやっても個人で対応しても、追いつかないでしょう。それよりも、なんとか共存できるように取り組んでいくことのほうが、企業の戦略として理にかなっていると思います。

もともと、はてなブックマークには自分と関心分野の近いユーザーを管理登録する機能があります。しかし、十分に活用されているという話を聞きません。それは、自分にとっての関心の近いユーザーを管理する煩わしさに加え、結局単純にブックマーク数を集計してしまえば、ホットエントリーと変わらないといった点にあるのかもしれません。

しかしながら、わざわざユーザ登録を行わなくとも、過去に蓄積されたブックマークの傾向をグラフ解析すれば、近い傾向を持つユーザの選定や興味のある分野の類推を行う事ができます。

例えばわたしが、地元神戸に関する記事を中心にブックマークを行っていれば、その傾向を分析し、似たような記事をブックマークしているユーザーが、ここ最近ブックマークした記事を提案する。その結果、三宮メロンブックの情報が出てくると。そういったことも可能です。

ユーザ数が少ない間は、コミュニティとしての『賑わい』を生み出すためにも、『ホットエントリー』は有用なしくみでした。しかし、規模の拡大に伴い、ホットエントリーをアクセス流入の中心に据えてしまうのは、今後の成長の制約となります。

はてなでは、現在Scalaをベースに、ブックマークのコアロジックを一新する作業を行っていると聞いています。

是非この際、将来的にはてなブックマークのグラフデータを活用した仕組みを組み込む余地を加えておいて頂ければなあと思うんですよね。ついでに、より狭い層にリーチ出来れば広告単価も上がるはずです。

すぐに、ホットエントリーと代替することは難しいかもしれませんが、今後の更なるユーザーベースの拡大が必要なのであれば、それは避けて通れない道のように思われます。この機会に、是非ご検討頂ければ幸いです。

ではでは、今日はこの辺で。