Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Jc 20141003 tjo

5,115 views

Published on

分析チームで2014/10/03に読んだもの

Published in: Data & Analytics
  • Be the first to comment

Jc 20141003 tjo

  1. 1. Journal Club @分析チーム 尾崎 @TJO_datasci
  2. 2. 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
  3. 3. ※Spotlightsの資料スライド
  4. 4. Summary •一度利用したユーザーが戻ってくる時間を予測 したい(その時間に基づいて施策打てるし) •お題は「フリーのオンライン音楽サイトLast.fmの ユーザーが次に戻ってくる時間を推定する」 •予測に使うのはCoxのハザードモデル •説明変数はぶっちゃけその辺のwebマーケ系 データのみ •他手法と色々比較したがCoxのハザードモデル が一番精度では優れていた
  5. 5. 背景となるお話 •無料webサービスはユーザーの定着・離脱の判 定が難しい –契約で縛られないのでいるんだかいないんだか分か りにくい –そもそも無料なのでユーザー側の切り替えコストが 発生せず自由に動きまくる •ユーザーの「離脱」のモデリングが難しい –二値分類はそもそも「離脱」の定義に依存してしまう –できればタイムスパンで見た方が良さそう
  6. 6. 定義など
  7. 7. ‘in’ state / ‘out’ state
  8. 8. 手法 •要するにCoxの比例ハザードモデル –Censored dataの扱いの話もRecurrent observationsの話も全部そこで扱われている –Statusとかの変数を入れる話も出てくる –※ならESLとか引用すればいいのに •一応式を挙げておく –ちなみに打ち切り状態とかも説明変数(共変量) に入れられるセミパラメトリックモデル
  9. 9. 実装 •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
  10. 10. 変数設定 •目的変数 –時間(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.
  11. 11. 評価 •他手法でもやってみた –単純平均(これがベンチマーク)、線形回帰モデル、回帰 木、線形SVM、ニューラルネット •この辺はRではなくWekaで実施 –SVRはデータが重過ぎて回らなかったので断念 •評価軸は以下の通り –Weighted RMSE –Weighted Precision –Weighted Recall •LOA (Length of Absence)を変化させた時の各評価指標 –これがハザードモデルの場合は影響が大きいので
  12. 12. 結果:計算負荷 •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で計算
  13. 13. 結果:回帰の状況 ※Last.fmデータセットの場合
  14. 14. 結果:return time予測
  15. 15. 結果:ハザード関数&生存関数
  16. 16. 結果:LOAを変化させた時のWRMSE
  17. 17. 結果:クラス分類の評価
  18. 18. 結果:クラス分類結果の各指標間の比較 / tdを変化させた場合の感受性
  19. 19. 結果:recurrent observationsの ステージごとに重み付けを変えてみた
  20. 20. 結論 •Coxの比例ハザードモデルが一番良かった •他の様々な機械学習手法よりも良かった •LOAとかtdとかrecurrent observationsの扱いと か重要っぽい
  21. 21. 感想 •こんなんで(Industrial & Govtとはいえ)KDDに 採択されるんか。。。 •でもreturn timeってソシャゲでも結構面倒な 話だったので意外と使えるネタな気がする •というか「時間長」の概念はもっと積極的に 使ってもいいのかもしれない

×