twitterの情報拡散(retweet数予測モデル)に関する研究

twitterでの情報拡散系を知りたくて、関連する研究を漁っていたら、"A stochastic model of the tweet diffusion on the Twitter network"というのを見つけた。(いきなりこの論文を見つけたわけでなく、著者本人よる簡単な日本語要旨があったので、そっからアクセスしただけ)

読んでみたので、メモを残しておく。

ちなみに論文はここからアクセスできる。

研究の概要

twitterでのretweetで情報が広がっていくさまを統計的にモデル化してみたよ。

・モデル化してみたら、ランダム乗算過程に従うことがわかったよ。

・拡散の流れをツリー構造にして近似してみたよ。

あたりがポイントになると思う。

そもそもランダム乗算過程って何や?

初耳である。ちなみに、英語だとRandam multiplicative processというらしい。

色々と調べて見たのだが、結局、わかったことは。乗算と加算のふたつのノイズを足して、次の時間の値を表す。という確率過程らしい。

確率密度関数べき則に従うらしい。

くらいしかわからなかった。

詳しい人が居たら、教えてほしいくらいだ。

モデルで大切な変数まとめ

N_g : g回目の生成過程において、retweetを受け取る人数

n_g : g回目の生成過程において、reweetをする人数

β_g: g回目の生成過程におけるretweet rate

k_f: retweetする人の各々が持っているfollowerの数(fはreweetする人を表す) 

Retweetが広がるながれとモデル

まず、最初に情報発信者がつぶやく。これが0回目の生成過程である。

それを、N_0の人数が受け取る。

それから、N_0のうち特定の人数がβ_0に従って(n_1)、reweetを行う。これが1回めの生成過程である。

この流れが、以下の2条件のどちらかになるまで繰り返される。 * だれかがretweetをやめるまで * 最後の生成の結果で、すでにみんながメッセージの受け取りずみだったら

この流れをTree structureで近似する。

すると、N_gは式2で、n_gは式3で表現できる。

と、なると、あとはその累積をとれば、合計人数がわかる。

m回目の生成後のretweetを受け取る人数と、retweetをした人数は、N_mn_mで表現できる。(式4と式5)

あと、問題になるのは、式2と式3で用いるretweet rateのβである。

ここで、βはtwitterの観測データで定められる。

Retweet Rate

フィッティングをβ_1β_2のみで、後は、平均をとって推測する感じである。

β_1β_2は式7で求められる。

で、筆者達の観測データから求めた結果がtable1に書いてある。

ここ、ちょっと個人的に意味がわからなくてハマったポイントなので、詳しく書いとく。

4章で述べられているのは、「m回目の生成過程の後のトータルretweetの平均回数の算出法」とその数値を算出するための、「retweet rateの算出法である」

まず、式11でトータルretweet回数(平均)を算出する方法が述べられている。

で、この式には、<β> : reweet rateの平均が必要になる。

じゃあ、<β>をどうやって求めるか?というと、各生成過程でのβの平均を使う。

そこで、式10でm回目の生成過程におけるretweet rateを求める式で述べられている。

式10で各回のreweet rateを求めて、その平均値を取ればよい。

感想など

筆者達も述べているが、retweetの広がりをtree structureだけで近似してしまうのは、ちょっと乱暴なような気がする。

それに、このモデルは、reweetを受け取る人が重複している場合が考慮できていないので、その点は考えないといけないだろう。

とは言え、ビジネスの世界ではシンプルな式が求められることが多いので、このモデルで十分すぎるほどに活躍できるだろう。

だって、twitterを使って広告関係のことやっている会社が出すのは、「最大リーチ数」だけ、というのが現状なのだから。

夢見すぎのそんな数値より、きちんと減衰していくこのモデルの方がはるかに現実を見ている。