Kohaku Lab

ガジェットとカードが好きな人のブログです。

Twitterのお気に入りに着目した人間関係の可視化

背景

Twitter上のアクティビティを用いてユーザ同士の関係を分析しようとする試みが多く存在している。その多くは、ユーザ同士のフォロー関係に基づくもの*1*2*3であり、それ以外のアクティビティに着目したものは少ない。本記事では、その中でもTwitterの「お気に入り」機能に着目しユーザ同士の関係を分析することを試みる。

「お気に入り」機能とは

「お気に入り」機能は、ツイートを「お気に入り」と呼ばれる一覧に記録する機能である *4。本来は、ツイートを後から読み返すことを目的とした機能であるが、その手軽さからユーザによって様々な目的に使用されている。その目的の一例を以下に示す。

  • Todoなどをツイートし「お気に入り」に登録することでメモ代わりに使用する
  • 「お気に入り」に登録すると、そのツイートを作成したユーザに通知が行われることを利用して、「お気に入り」に登録することで「そのツイートを読んだ」ことを示す
  • 「お気に入り」に登録すると、相手の主張に同意していることを示す
  • 相手のツイート内容に関係なく「お気に入り」に登録することで、相手に対する好意を示す

仮説

まず、前節で述べた「お気に入り」機能の使用目的のうち、2つ目に着目する。この目的での「お気に入り」機能の使用は、「ツイートを読んだ」という事実を相手に知らせる動機がある程度には、相手とのやり取りが成立していると解釈できる。同様に、「お気に入り」機能の使用目的のうち、3つ目と4つ目にも着目する。これらの目的での「お気に入り」機能の使用は、ツイートそのものを「気に入っている」と言うよりは、そのツイートを作成したユーザを「気に入って」おり、親近感を感じていると解釈できる。

これらの解釈より、あるユーザが別のユーザと親密な関係を築いているとき、そのユーザのツイートに対して他のユーザのツイートに比べて頻繁に「お気に入り」機能を利用するのではないか、と予想できる。本記事では、あるユーザAがユーザBに対して頻繁に「お気に入り」機能を利用していると認められるような関係を「お気に入り関係」と呼ぶこととする。

実験手順

お気に入り関係は、アカウントをノードとする有向グラフとして表現できる。そのような有向グラフGを求める簡単なプログラムを実装した。このプログラムは、以下に示すアルゴリズムに沿って動作する。

  1. グラフGは初期値として一つだけノードを持っている
  2. 以下の操作をN回行う
    1. 直近の操作でGに追加されたノードuに対して以下の操作を行う
      1. uの直近200個の「お気に入り」を取得し、そのうちn回以上お気に入りに追加されているアカウントを求める
      2. 上で求めたアカウントをGにノードとして追加し、uと新たに追加されたノードを有向辺で繋ぐ

初期値として与えられるノードは、筆者のアカウントとした。

グラフ処理には、PythonのグラフライブラリであるNetworkXを用いた。またグラフの描画には、グラフ描画ライブラリのGraphvizとそのPythonラッパであるPyGraphvizを用いた。

結果

以下に示す結果では、パラメータnとして5を用いている。5という数値には明確な根拠があるわけではなく、今後検討の余地があるものである。

まず、パラメータNに1を用いた結果を以下に示す。なお、この図ではprotectedなアカウントについてプライバシー保護のため黒塗りにしている。 f:id:alstamber016:20151226221359p:plain 例えばこのグラフでは、alstamberというノードとAruKun0101というノードが有向辺で繋がっている。これは、「alstamberというアカウントがAruKun0101というアカウントとお気に入り関係にある」ことを表している。

続いて、パラメータNに6を用いた結果を示す。グラフが非常に煩雑になるため、枝数が1のノードについては描画しないこととした。また、この図では筆者のアカウント以外のアカウントについてアカウント名を伏せてある。なお、このNに与えた6という数値にも、nと同じく明確な根拠があるわけではない。 f:id:alstamber016:20151226223008p:plain

考察

パタメータNに6を用いた結果を利用し、Twitterアカウントのクラスタリングを試みた。生成されたグラフをおおまかに観察すると、いくつかの密な部分グラフがあることに気づく。この密な部分グラフを構成するノード同士は、緊密なお気に入り関係で結びついていると推定される。これを受けて、目視で*5緊密なお気に入り関係で結びついていると判断したアカウントの集団について、それぞれのプロフィールを抽出し、共通する特徴がないかを分析した。その結果、例えばグラフの中央やや左に見える集団は「電通大に14年度に入学している」、グラフの下やや左に見える集団は「電通大に15年度に入学している」、グラフ右側の横に細長く固まっている集団は「東京高専の関係者である」といった特徴を見いだせた。これらの特徴について、図示したものを以下に示す*6f:id:alstamber016:20151226183400p:plain このことから、お気に入り関係の緊密性と現実の人間関係の緊密性との間に関連性を推定できる。

まとめ

本記事では、Twitterの「お気に入り」機能に着目し、「お気に入り関係」という関係を定義した上で、それを有向グラフとして図示することを試みた。その結果、お気に入り関係の緊密性と現実の人間関係の緊密性との間に関連性を示唆する結果を得た。

*1:http://db-event.jpn.org/deim2011/proceedings/pdf/f5-1.pdf

*2:Kwak, H., Lee, C., Park, H., and Moon, S., “What is Twitter, a Social Network or a News Media?”, Proc. of the 19th International Conference on World Wide Web, pp. 591-600, 2010

*3:Cha, M., Haddadi, H., Benevenuto, F., and Gummadi, Krishna P., “Measuring User Influence in Twitter: The Million Follower Fallacy”, Proc. of the 4th International AAAI Conference on Weblogs and Social Media, pp. 10-17, 2010

*4:Twitterの仕様変更に伴い、「お気に入り」機能は「いいね」機能に変更されているが、ここでは「お気に入り」という従来の呼称を使用する

*5:本来はアルゴリズムを用いて探すべきである

*6:グラフの形状が先の図と異なるのは、アカウント名をノードに表示する設定としたところ、アカウント名の表示を避けるようにエッジの引き直しが行われたためである。グラフ自体の意味は変化していない