Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
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
Slide 2
Slide 2 text
自己紹介 ● 関 喜史 ○ Gunosy 共同創業者 ○ データ分析部研究開発チーム (仮) ○ 東大松尾研, 工学博士(2017年3月卒) ● 研究テーマ: ニュース推薦システムのサービス応用について ● 関心領域 ○ 推薦システム, ユーザ行動分析 ● 趣味 ○ アイドル、日本酒、将棋
Slide 3
Slide 3 text
概要 ● Netflixのリアルタイムな推薦システムの仕組み ● オンライン機械学習 ● 利用におけるcontextは様々 ○ 一人で使う、二人で使う、家族と使う ○ 複数人でアカウントを共有している ○ 感情とか ● ユーザのスクロールの情報を元に、どの列を見せるかを逐次決める ●
Slide 4
Slide 4 text
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}
Slide 5
Slide 5 text
この事後確率を最大化するパラメータを作りたい
Slide 6
Slide 6 text
この事後確率を最大化するパラメータを作りたい セッションと行に分解する
Slide 7
Slide 7 text
この事後確率を最大化するパラメータを作りたい セッションと行に分解する
Slide 8
Slide 8 text
この事後確率を最大化するパラメータを作りたい セッションと行に分解する 興味関心変数を導入
Slide 9
Slide 9 text
この事後確率を最大化するパラメータを作りたい セッションと行に分解する
Slide 10
Slide 10 text
Play prediction ● 劣モジュラ関数で推定する ● <>は何らかの関数: コサイン類似度でも、FMでもよい ○ f_tiはビデオiの特徴ベクトル ● qの各次元はf_tiのその次元の総和を凸関数にかけたもの ● パラメータはshared, user-specific, row-specific, {row-user}-specificの4種を分け てる
Slide 11
Slide 11 text
User Intentの導入 ● User intentの導入をする ○ 先程の定義と同様 ● I_s,rが0のときは, C=1の確率は0になるという仮定を置く
Slide 12
Slide 12 text
この事後確率を最大化するパラメータを作りたい セッションと行に分解する
Slide 13
Slide 13 text
User Intentの推定 ● セッションとrowに対する興味関心 ● vとwはplay prediction同様にshared, user-specific, session-specificで校正され る ● v_ρはvの潜在変数
Slide 14
Slide 14 text
この事後確率を最大化するパラメータを作りたい セッションと行に分解する
Slide 15
Slide 15 text
Scroll prediction ● I_s,r=1のとき、δ_ρにのみ依存するロジスティック関数になる ● I_s,r=0のときはS_s,r=1の確率は0になる
Slide 16
Slide 16 text
Online Page Adaptation ● 目的はコンテンツ行の並びと、行内のビデオの並びを最適化すること ● 足した時の閲覧率が最も高くなる行/ビデオをえらんでいく
Slide 17
Slide 17 text
Impression Fatigue and Repeated Plays ● 式(2)に加える ● x_tはユーザが再生した回数 ● 何度も再生する動画もある ○ Binaryなindicatorを追加する ○ Repeated play
Slide 18
Slide 18 text
Inference ● EMアルゴリズムで推定 ● E-step: I_s,rの事後確率を計算する ● M-step: S, Cの事後確率が最大になるパラメータを計算する
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
Online-Update ● Session中に学習して、パラメータを更新していきたい ○ つまり上部をみたユーザの行動から、下部の行を生成する ● EMアルゴリズムのM-stepでセッションのパラメータだけを更新する
Slide 21
Slide 21 text
Experiment ● Playstation 3のセッション ○ 同一の国 ● 2015/4 ~ 2015/5 ● 294k sessions ● Testデータは2015/6, 59k sessions ● 40 rows, max 75 videos
Slide 22
Slide 22 text
Evaluation ● 10行のデータが与えられたときに残りの行を生成する ● 再生されてたビデオが含まれる行が生成できたら、positive ○ Mean Reciprocal Rank(MRR) ■ 平均逆順位 ■ 初めて正解がでた順位の逆数を足し合わせて平均化する ○ Precision at 5(P@5) ● ベースラインはユーザと行のFactorization Machine(libFM) ● オフラインモデルからのgain値で比較する
Slide 23
Slide 23 text
● FMより強い ● 観測が増えるに連れて、改善している
Slide 24
Slide 24 text
● 過去のSessionが無いユーザにおいて強い -> Cold startで成果を上げている
Slide 25
Slide 25 text
Fatigue Effect and repeated plays
Slide 26
Slide 26 text
まとめ ● セッション内での動きから推薦結果を徐々に改善していく ○ Cold-startでも強い ○ ただ、これ本当にアプリで実装できんの???無理じゃね??? ● スクロールや再生をモデリングする方法として参考になった ● ただ特徴量の設計がわかんないので、うーん ● オンラインで実験してほしかった感 ● Factorization Machineとの比較って、相手弱すぎない? ●
Slide 27
Slide 27 text
References ● Slide: https://www.cs.utexas.edu/~cywu/RecSys2016_slides.pdf ● Youtube: https://www.youtube.com/watch?v=rYinLmOWRtM ●