[論文紹介] Using Navigation to Improve Recommendations in Real time / recsys-2016-netflix

D490d541e3d1ab04d5203e8b210b2233?s=47 ysekky
June 13, 2017

[論文紹介] Using Navigation to Improve Recommendations in Real time / recsys-2016-netflix

D490d541e3d1ab04d5203e8b210b2233?s=128

ysekky

June 13, 2017
Tweet

Transcript

  1. Using Navigation to Improve Recommendations in Real time Chao-Yuan Wu@UT

    Austin Christopher V. Alvino@Netflix Alexander J. Smola@CMU Justin Basilico@Netflix Recsys’16 Yoshifumi Seki@Gunosy Inc. GunosyDM研究会 2017.06.13
  2. 自己紹介 • 関 喜史 ◦ Gunosy 共同創業者 ◦ データ分析部研究開発チーム (仮)

    ◦ 東大松尾研, 工学博士(2017年3月卒) • 研究テーマ: ニュース推薦システムのサービス応用について • 関心領域 ◦ 推薦システム, ユーザ行動分析 • 趣味 ◦ アイドル、日本酒、将棋
  3. 概要 • Netflixのリアルタイムな推薦システムの仕組み • オンライン機械学習 • 利用におけるcontextは様々 ◦ 一人で使う、二人で使う、家族と使う ◦

    複数人でアカウントを共有している ◦ 感情とか • ユーザのスクロールの情報を元に、どの列を見せるかを逐次決める •
  4. Model • r: row • s: session • i: i-th

    video • S: scrolled or not {0, 1} • C: played or not {0, 1} • I: interested or not {0, 1}
  5. この事後確率を最大化するパラメータを作りたい

  6. この事後確率を最大化するパラメータを作りたい セッションと行に分解する

  7. この事後確率を最大化するパラメータを作りたい セッションと行に分解する

  8. この事後確率を最大化するパラメータを作りたい セッションと行に分解する 興味関心変数を導入

  9. この事後確率を最大化するパラメータを作りたい セッションと行に分解する

  10. Play prediction • 劣モジュラ関数で推定する • <>は何らかの関数: コサイン類似度でも、FMでもよい ◦ f_tiはビデオiの特徴ベクトル •

    qの各次元はf_tiのその次元の総和を凸関数にかけたもの • パラメータはshared, user-specific, row-specific, {row-user}-specificの4種を分け てる
  11. User Intentの導入 • User intentの導入をする ◦ 先程の定義と同様 • I_s,rが0のときは, C=1の確率は0になるという仮定を置く

  12. この事後確率を最大化するパラメータを作りたい セッションと行に分解する

  13. User Intentの推定 • セッションとrowに対する興味関心 • vとwはplay prediction同様にshared, user-specific, session-specificで校正され る

    • v_ρはvの潜在変数
  14. この事後確率を最大化するパラメータを作りたい セッションと行に分解する

  15. Scroll prediction • I_s,r=1のとき、δ_ρにのみ依存するロジスティック関数になる • I_s,r=0のときはS_s,r=1の確率は0になる

  16. Online Page Adaptation • 目的はコンテンツ行の並びと、行内のビデオの並びを最適化すること • 足した時の閲覧率が最も高くなる行/ビデオをえらんでいく

  17. Impression Fatigue and Repeated Plays • 式(2)に加える • x_tはユーザが再生した回数 •

    何度も再生する動画もある ◦ Binaryなindicatorを追加する ◦ Repeated play
  18. Inference • EMアルゴリズムで推定 • E-step: I_s,rの事後確率を計算する • M-step: S, Cの事後確率が最大になるパラメータを計算する

  19. None
  20. Online-Update • Session中に学習して、パラメータを更新していきたい ◦ つまり上部をみたユーザの行動から、下部の行を生成する • EMアルゴリズムのM-stepでセッションのパラメータだけを更新する

  21. Experiment • Playstation 3のセッション ◦ 同一の国 • 2015/4 ~ 2015/5

    • 294k sessions • Testデータは2015/6, 59k sessions • 40 rows, max 75 videos
  22. Evaluation • 10行のデータが与えられたときに残りの行を生成する • 再生されてたビデオが含まれる行が生成できたら、positive ◦ Mean Reciprocal Rank(MRR) ▪

    平均逆順位 ▪ 初めて正解がでた順位の逆数を足し合わせて平均化する ◦ Precision at 5(P@5) • ベースラインはユーザと行のFactorization Machine(libFM) • オフラインモデルからのgain値で比較する
  23. • FMより強い • 観測が増えるに連れて、改善している

  24. • 過去のSessionが無いユーザにおいて強い -> Cold startで成果を上げている

  25. Fatigue Effect and repeated plays

  26. まとめ • セッション内での動きから推薦結果を徐々に改善していく ◦ Cold-startでも強い ◦ ただ、これ本当にアプリで実装できんの???無理じゃね??? • スクロールや再生をモデリングする方法として参考になった •

    ただ特徴量の設計がわかんないので、うーん • オンラインで実験してほしかった感 • Factorization Machineとの比較って、相手弱すぎない? •
  27. References • Slide: https://www.cs.utexas.edu/~cywu/RecSys2016_slides.pdf • Youtube: https://www.youtube.com/watch?v=rYinLmOWRtM •