Learning to Augment for Casual User Recommendation
著者情報
Jianling Wang ( Texas A&M University College Station, TX, USA )
Googleでインターン後、Googleの研究員に
Ya Le, Bo Chang,Yuyan Wang, Ed H. Chi, Minmin Chen
Google inc.
選んだ理由
推薦モデルの検証にあたり、ヘビーユーザに学習データが偏っていることへの懸念がある。知見あるかも。
どんなもの?
オンラインプラットフォームにはコアユーザとカジュアルユーザが存在
推薦システムの学習に用いられるのは、コアユーザのデータに偏りがち
その結果、カジュアルユーザの特徴がうまくキャプチャできず、満足度の高い推薦につながらない
著者らは、コアユーザとカジュアルユーザのギャップを埋めるための強化学習型データ拡張手法L2Augを提案
一般的な推薦システムの学習にL2Augの合成データを用いることで、コアユーザとカジュアルユーザの両方で精度改善
先行研究と比べてどこがすごい?
Sequential Recommendation
self-attention layer (transformer)に感銘を受けたもの
SASRec (2018)
Bert4Rec (2019)
Graph Neural Networks が近年勢力を増している
2020, 2020, 2019
Long-tailed and Cold-User Recommendation
フォーカス学習
ユーザグループごとに最適化 (2017)
複数の推薦モデルを学習
2012, 2020
サイド情報の利用
etc.
Data Augmentation
Generative Adversarial Networks (GANs)
AutoAugment (2019)
強化学習を用いて最適なデータ増強方針を探索する
👉 sequential user interaction data に関する研究は乏しい
事前分析
カジュアルユーザとコアユーザの行動パターンの違いを探る
データ
Amazon review dataset
https://gyazo.com/7a8e4c1d1433de1baa95c5e9b6636f80
(a) : ユーザ(履歴)のアイテム間のコサイン類似度(商品説明のBOW)
カジュアルユーザの方がコアユーザより類似度の低いユーザが多い。 = アイテム同士の特徴が多様
一貫した行動をとるコアユーザに比べて、ノイズが多い(濃縮されていない)
(b) : 履歴数別 HitRate@20 (SASRecによる推薦)
カジュアルユーザの方がコアユーザより推薦がうまくいっていない(常時5%程度低い)
データ増強の最も簡単なアプローチ:ランダムドロップでカジュアル・コアのデータ比率を調整
(c) : 学習データ別 HitRate@20(対象:カジュアルユーザ)
全部のデータを利用(0.0)するより、少しコアユーザのデータをドロップ(0.2,0.3くらい)したほうが精度が高い
👉 合成データがカジュアルユーザ推薦の改善に役立つことを示唆
かといって、カジュアルユーザのみデータで学習すると精度悪化するので、より制御された オーグメンテーションポリシーを考える必要がある
手法のキモはどこ?
目的
コアユーザの学習データをカジュアルユーザ向けにいい感じに作り変える(かつ、コアユーザの推論を毀損しない)
L2Augの設計課題
(1) 順序データに対してどのようにデータ拡張を行い、順序内の項目に対する様々な操作(e.g. 削除/保持/置換)をサポートするか?
(2) 効果的なデータ補強の方針(policy π)をどのように学習するか?
https://gyazo.com/a4ce463a1fe081d17e3ec17e2ed293c1
👉コンポーネントは2つ
(1) Data Augumentor
(policy πに従い) コアユーザのアイテム履歴を操作し、合成シーケンス(Output Sequence)を生成 -> (2)に与える
(2) Recommender
合成シーケンスを用いて学習し、カジュアルユーザ検証データセットを評価する。評価値の増減を報酬として (1) に与える
詳細情報(抜粋)
合成操作は簡単化のため、keepとdropのみ
カジュアルユーザ検証データセットは、N人のカジュアルユーザ集合から、M人(M ≪ N)の小さな部分集合をランダム抽出して作成している (10%が最も良かった ref. Appendix A.3)
オフライン実験では NDCG と Hit Rate の両方に対する性能向上を報酬とした
policy π の正体は softmax
$ \pi_{\vartheta}\left(\cdot \mid \mathbf{h}_{k}\right)=\operatorname{Softmax}\left(\mathbf{W}_{A} \cdot \mathbf{h}_{k}\right)
コアユーザの性能が悪化しないようにリプレイ戦略(2018)をとる
Reccomender の学習データは、コアデータから生成した合成シーケンス + コア/カジュアル データのサンプリング
https://gyazo.com/0d4d6c0144fd7ac00e28d2ee7e7ff1bc
オフライン実験
RQ
(1) L2Augにより、カジュアルユーザの推薦精度が改善するか(コアユーザを毀損せずに)
(2) 様々な推薦システムで効果があるか
データセット
2種類
Amazon review dataset
Goodreads: 本のレビュー
ユーザ分類
アイテム履歴間のtime gap が 30日以内 -> コアユーザ とする
https://gyazo.com/1394c0a92e82205db900ae2f8c3e162f
手法
Recommender (何でもいい)
GRU4Rec : RNN系
SASRec : Self-Attention系
NextItNet : CNN系
Data Augument
👉 L2Aug
no previous works なので、それっぽいのを3つ用意
Random : 適当にコアユーザをdrop
Focused Learning : カジュアルユーザ検証セットに対する最適化
Adversarial Reweighting : minimax game (ゲーム理論) (大負けしないように学習するフンイキ)
実装詳細
(Implementation Details. と Appendix A.2 に記載されてます)
評価指標
Hit Rate (HT@K)
Normalized Discounted Cumulative Gain (NDCG@K) $ =\frac{1}{\log _{2}\left(1+r_{u}\right)}
結果
※ @10 の評価結果は元論文みてね
https://gyazo.com/167e7b7060399e5bda942b74d28d6eb8
カジュアルユーザに対する評価結果
オリジナルデータ < Random < Focused学習 < Adversarial < L2Aug
👉すべての推薦システムにおいて精度改善され、 カジュアルユーザ推薦課題に対するL2Aug の有効性が確認できた
Amazon CDs を例に取ると、(NDCG@5のAdversarialと比較して) 9.59%, 6.58%, 9.90% 改善している
※ その他の指標は Appendix A.4 参照
https://gyazo.com/a50a485d3beb5a1ddd83ba31573a75ed
コアユーザに対する評価結果
👉L2Augは常に精度改善しており、全体の精度を向上させることができる
その他
focused学習 はコアユーザへの推薦精度を低下させる
Adversarial は常に向上とはいえない
所感:Random が割と良い
https://gyazo.com/7a8e4c1d1433de1baa95c5e9b6636f80
なぜコアユーザの推薦精度も改善したんだろう?
図(a) Augmented Users の分布
カジュアルユーザのパターンに適応しながら、コアユーザから一貫性のあるパターンを抽出することに成功したことを示唆
https://gyazo.com/682f7e3a5e242cb6fe2a71be10f553d9
⬆L2Augの拡張性について
実験ではデータ合成操作はdropとkeepのみだったので、置換操作(Substitute)もできるようにした場合の精度はどうなるか
さらに精度改善ができる。ただ、収束するまでのEpochが必要
オンラインシミュレーション
既存研究(2019)に倣い、シミュレーション環境を構築
データセット
MovieLen 100K dataset
Recommender
DQN
LIRD : state-of-the-art for list-wise recommendation
結果
https://gyazo.com/d5ef565907145495a67926535a9158df
L2Aug による精度改善が確認でき、有効性をさらに裏付けることができた
今後
L2Aug を他のシナリオ(クロスドメイン、コールドスタートなど)に拡張することに興味がある
今回のaugmentation policy を強化学習に拡張することに興味がある
所感
(ライトユーザの精度は向上するとして、)ヘビーユーザにもメリット出せていて:sasuga:
肌感だったことが検証されていてスッキリしたし、実装の方向性も間違ってないように思えた
気になったこと
多様性のある推薦がポジティブな影響を与える系の論文は、ユーザ層ごとの行動パターンの違いが原因の一つと言えそうな。
ライトユーザのアクションが多様だから、そりゃ推薦側も多様にしたほうがいいよね
(飽き軽減, 探索による趣味特徴の発掘)
実装的に、推薦モデルの学習時に、学習データセットの生成も同時実行するのはなかなか複雑
学習時間で詰みそう
合成データの分布(図(a))的に、ライト/ヘビーの学習データ比率 1:1くらいまでもっていけそう