2019/07/18 Delivering User- and Content- specific Rewards for Contextual Bandits 著者
Paolo Dragone (University Trento)
Rishabh Mehrotra (Spotify)
Mounia Lalmas (Spotify)
どんな論文?
既存のバンディットは、 0/1の報酬を設定している。
本研究では、バンディットの報酬を、ユーザーとコンテンツのクラスタごとに設定。
Spotify上での実験で、stream rate ( クリック率みたいなもの。プレイリストを再生するかどうか) が25%ほど改善した。
なぜこの論文を選んだか?
腕の報酬を変えるのが面白そうだった。
研究の動機
Spotifyのレコメンドだと、推薦された音楽リストが30秒されたら、報酬1を得るという設定だった。
問題意識
「プレイリストを長く再生している 」 => 「よりユーザーが満足している」
一律で報酬を設定するのは不適切。
30秒という閾値は、恣意的。
ジャンルによって閾値は違うはず ( 睡眠ジャンルの平均ストリーム時間は40分, 全体平均は20分。ジャンルを無視して平均では決めたくない)
ユーザーとジャンルごとに個別に報酬を設定するのが理想だが、スパースすぎる。
のでクラスタ毎に分けて、報酬を決定することにした。
3つの提案報酬関数
mean-based rewards
$ \hat{r}_{\hat{μ}}(s) = \begin{cases}λ_{1}& if\quad s\in [0,\hat{μ})\\λ_{2} & if\quad s \geq\hat{μ}\end{cases}
ただし、
$ 0\leqλ_{1}\leqλ_{2}\leq1
additive rewards
$ \hat{r}_{\hat{μ},\hat{σ}}(s) = \begin{cases}λ_{1}& if\quad s\in [0,\hat{μ}-\hat{σ})\\λ_{2} & if\quad s\in [\hat{μ}-\hat{σ},\hat{μ})\\λ_{3} & if\quad s\in [\hat{μ},\hat{μ}+\hat{σ})\\λ_{4} & if\quad s \geq\hat{μ}+\hat{σ}\end{cases}
cumulative rewards
$ \hat{r}_{\hat{γ}}(s)=max \left\{F(s;\hat{γ}), λ\right\}
ただし、下記を想定
指数分布 $ f(s;γ)=γ e^{-γs}
累積指数分布$ F(s;γ)=1 - e^{-γs}
クラスタごとの報酬関数
上記を拡張。
共クラスタリングでクラスタ毎に報酬を決定
ex.
普通のmean-based rewards
$ \hat{r}_{\hat{μ}}(s) = \begin{cases}λ_{1}& if\quad s\in [0,\hat{μ})\\λ_{2} & if\quad s \geq\hat{μ}\end{cases}
クラスタごとのmean-based rewards
$ \hat{r}_{\hat{μ}_{\hat{u},\hat{y}}}(s_{i}) = \begin{cases}λ_{1}& if\quad s_{i}\in [0,\hat{μ}_{\hat{u},\hat{y}})\\λ_{2} & if\quad s_{i} \geq\hat{μ}\end{cases}
共クラスタリングの補足
異なるオブジェクト同士を( 行・列)同時にクラスタリング する
行と列の関係性を考慮したクラスタリングができるらしい。
イメージ図
https://gyazo.com/3632e20ab423a619ccbeb27679bfd758
いろいろ手法があるみたい。
今回の手法は、カルバックライブラー情報量の最小化で共クラスタリングを行う。
似たような手法としてMLPシリーズ「関係モデル」に、
確率生成モデル 確率ブロックモデル
確率生成モデル(ノンパラベイズ ) 無限関係モデル
実験
ベースライン :30秒以上なら報酬1
Random Threshold ( ベースライン2) :[0,10]で毎回ランダムに閾値を設定。それ以上なら報酬1
提案報酬関数
実験1
提案手法(クラスタリングなし) とベースラインの比較。
mean based rewardsが強い
https://gyazo.com/feae65c649aa1c84f27ec0a5157d8cdd
クラスタリング関係なし、報酬関数同士で比較
( stream rateで比較)
https://gyazo.com/3aa5719177178e8ee6ef9e180524755a
実験2
先ほどのmean basedを使って、
共クラスタリングが妥当であるかどうかの実験
User Clustering :コンテンツのクラスタを1にした共クラスタリング
Contents Clustering :ユーザーのクラスタを1にした共クラスタリング
Co- Clustering:共クラスタリング
https://gyazo.com/266d20738585c58ecb4cd561f985c609
実験3
共クラスタリングを用いたmean-based rewards + 共クラスタリングの有効性を示している
評価は、Offline Policy Evaluationを使用
https://gyazo.com/c1e8554862bb739cc00cccef5c4cfe7c
結論
バンディットの腕の報酬を、共クラスタリングを使って、クラスタ毎に設定すると、パフォーマンスがよくなる。
ほんとは、連続値、、じゃない? そんなのが多いよ。