はてブのタグ付けを因果ネットワークで表示してみた(個人版)
はじめに
個人の興味の移ろいを、タグ付けの因果*1で視覚化できるのでは?と思い、試してみました。
今回も自分自身の「はてブ」で試しました。
視覚化までの流れ
こちら(イベントの時系列分析による因果関係知識の獲得)を参考にアレンジして実装してみました。
流れを簡単にまとめると、次の通りです。
- タグ付け系列を生成*2
- タグ付け系列を、Kleinbergのバースト系列(列挙型)で連続化
- 連続化したタグ付け系列の全ペアについて、タグ間に因果関係が存在するかGranger因果検定でテスト
- テスト通過したタグ付け系列ペアについて、ネットワークで因果関係を描画
もっとたくさん表示した場合*3:
結果について
なんだかそれっぽい因果もあるように見えますが、うーん…微妙。
微妙な理由を挙げてみると、次の通りです。
改善案として、以下を考えています。
しかし、いずれの改善策も厳し目な印象です。
おわりに
いろいろと思考錯誤した割に、単純な共起ネットワーク*9よりも結果が微妙だった*10ので、
なんとも煮え切らない気持ちになりました。
同じ方針*11だと興味推移を捉えるのは難しそうなので、次は別の方針で行きたいと思います。
以前試したDynamic Topic Model(以下リンク)のほうが今回よりは良かったので、次は再度トピックモデル関係の手法で試してみようかな*12と思います。
github.com
今回作ったスクリプトはGitHubにアップしました。
github.com
関連記事
*1:タグ付けの因果とは、例えば、Xタグを付けると、Yタグを付ける傾向があり、また、Yタグを付けると、Zタグを付ける傾向があるとします。このとき、X→Y→Zというタグ付けの因果が生じているとします。具体例で言うと、DeepLearning→RNN→LSTMなど。
*2:タグそれぞれについて、そのタグを付けたWebページの通し番号を取得。この通し番号を時刻とみなします。
*4:「まとめ」や「twitter」といったタグを媒介すれば、あらゆるタグに到達できてしまう。興味の移ろいを見たい、というそもそもの意図からずれてしまう。
*5:特定のタグを100回、1000回と多く使うことはなく、数回程度であるため、多くのタグ付け系列は「バーストなにそれ?」状態になってしまう
*6:本当に次数が高いタグも除去するとマズいのですが…
*7:これだとトピックモデルを使ったほうが良いですよね…
*8:改善手法である偏Granger因果検定も試してみました。しかし、結果はこちらも微妙でした。
*9:関連記事をご参照ください。
*10:因果関係は取れませんが
*11:バースト系列+因果検定
*12:こちらの手法(Continuous-time Infinite Dynamic Topic Models)が気になっています。トピック数自動決定/連続時間のDTMらしいです。なんか強そう