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_m
とn_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を使って広告関係のことやっている会社が出すのは、「最大リーチ数」だけ、というのが現状なのだから。
夢見すぎのそんな数値より、きちんと減衰していくこのモデルの方がはるかに現実を見ている。