Journal Club @分析チーム 
尾崎 @TJO_datasci
A Hazard Based Approach to User Return Time Prediction 
Kapoor, Sun, Srivastrava, and Ye, 
Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining, 
pp. 1719-1728, 2014 
http://dl.acm.org/citation.cfm?id=2623348
※Spotlightsの資料スライド
Summary 
•一度利用したユーザーが戻ってくる時間を予測 したい(その時間に基づいて施策打てるし) 
•お題は「フリーのオンライン音楽サイトLast.fmの ユーザーが次に戻ってくる時間を推定する」 
•予測に使うのはCoxのハザードモデル 
•説明変数はぶっちゃけその辺のwebマーケ系 データのみ 
•他手法と色々比較したがCoxのハザードモデル が一番精度では優れていた
背景となるお話 
•無料webサービスはユーザーの定着・離脱の判 定が難しい 
–契約で縛られないのでいるんだかいないんだか分か りにくい 
–そもそも無料なのでユーザー側の切り替えコストが 発生せず自由に動きまくる 
•ユーザーの「離脱」のモデリングが難しい 
–二値分類はそもそも「離脱」の定義に依存してしまう 
–できればタイムスパンで見た方が良さそう
定義など
‘in’ state / ‘out’ state
手法 
•要するにCoxの比例ハザードモデル 
–Censored dataの扱いの話もRecurrent observationsの話も全部そこで扱われている 
–Statusとかの変数を入れる話も出てくる 
–※ならESLとか引用すればいいのに 
•一応式を挙げておく 
–ちなみに打ち切り状態とかも説明変数(共変量) に入れられるセミパラメトリックモデル
実装 
•Rの{survival}パッケージを使う 
–Surv関数でstatusも込みの生存時間分析オブジェクトを簡単に作れる 
–coxph関数でCoxの比例ハザードモデルの推定ができる 
•データまわり 
–時間はdaysが単位 
•大体のユーザーは1週間以内に戻ってくる 
–データは60日間のwindowで測定 
•それ以上はcensored扱い 
•データ詳細 
–Last.fmデータセット 
•約1000ユーザー 
•2008年10~12月のデータが学習&CV用、2009年1~3月のデータがテスト用 
–大規模データセット 
•73,465ユーザー 
•2012年5~7月に測定したデータで学習&CV
変数設定 
•目的変数 
–時間(days) or クラス(Last.fmデータセットでは7日以内orそ れ以上、大規模データセットでは30日以内orそれ以上) 
•説明変数(共変量) 
–Typical visitation patternsに関連するもの 
•Active weeks, Density of Visitation, Visit number, Previous gap, Time weighted average return time 
–User satisfaction / engagementに関連するもの 
•Duration, % Distinct Songs, % Distinct Artists, % Skips, Explicit feedback indicators (ratings, comments, complaints etc.) 
–その他外部要因に関連するもの 
•週末、休日、Last.fmのキャンペーン・プロモ etc.
評価 
•他手法でもやってみた 
–単純平均(これがベンチマーク)、線形回帰モデル、回帰 木、線形SVM、ニューラルネット 
•この辺はRではなくWekaで実施 
–SVRはデータが重過ぎて回らなかったので断念 
•評価軸は以下の通り 
–Weighted RMSE 
–Weighted Precision 
–Weighted Recall 
•LOA (Length of Absence)を変化させた時の各評価指標 
–これがハザードモデルの場合は影響が大きいので
結果:計算負荷 
•Return time予測モデル(のCV) 
–Coxのハザードモデル:8分 
–NN:16分 
–回帰木:4分 
–線形回帰:26秒 
–単純平均:20秒 
•Return timeのクラス分類(のCV) 
–Coxのハザードモデル:8分 
–NN:15分 
–SVM:24分 
–ランダムフォレスト:6分 
•全てXeon CPU X5650 / 2.67GHz, 24GHzで計算
結果:回帰の状況 
※Last.fmデータセットの場合
結果:return time予測
結果:ハザード関数&生存関数
結果:LOAを変化させた時のWRMSE
結果:クラス分類の評価
結果:クラス分類結果の各指標間の比較 / tdを変化させた場合の感受性
結果:recurrent observationsの ステージごとに重み付けを変えてみた
結論 
•Coxの比例ハザードモデルが一番良かった 
•他の様々な機械学習手法よりも良かった 
•LOAとかtdとかrecurrent observationsの扱いと か重要っぽい
感想 
•こんなんで(Industrial & Govtとはいえ)KDDに 採択されるんか。。。 
•でもreturn timeってソシャゲでも結構面倒な 話だったので意外と使えるネタな気がする 
•というか「時間長」の概念はもっと積極的に 使ってもいいのかもしれない

Jc 20141003 tjo