MINDSim: User Simulator for News Recommenders
新しくユーザーを生成してニュース推薦のシミュレーションをする試みらしいです
Research track: User Modeling, Personalization and Accessibility
著者
Xufang Luo, Zheng Liu, Shitao Xiao, Xing Xie, Dongsheng Li
マイクロソフトリサーチアジアの方々と北京郵電大学
どんな研究?
敵対的生成ネットワーク(GAN)によって、実際のユーザーの行動に近い偽のユーザーを作成できる
新たに作成したユーザーによりオフラインのシミュレーション実験を行える
ユーザーの時系列による興味変化を考慮した推薦モデルの提案
なぜ読んだか
GANを大学時代の研究でちょっと使ってたので親近感があった
ニュース推薦で仮想のユーザーを作成してシミュレーションする発想がおもしろそうだと思った
論文の概要
MINDsim
https://gyazo.com/11e3fb83c066c518f31191676eab2c02
何がすごいの?
GANにより「新規ユーザー」を生成できる初めてのユーザーシミュレーター
固定されたユーザーデータセットを超えるシミュレーション
強化学習型ニュース推薦アルゴリズムの訓練が容易になるかも
エンコーダ・デコーダアーキテクチャを用いた多様な新着ニュースに対するユーザー興味変化の表現
「新規ユーザー生成」によるデータオーグメンテーションにより、あらゆるモデルの推薦性能が向上
先行研究との比較
「新規ユーザー生成」できるユーザーシミュレーターは初
複数の指標において推薦性能が向上
nDCG, MRR, Precision
技術、手法のポイント
強化学習(RL)型ニュース推薦
ユーザーがある時間区分$ tにどの記事をクリックしたか(impression $ I_t)をもとに候補記事の中からソートして掲載する記事を決定する
https://gyazo.com/1af8e8d7811e1ceb336a691220502e4a
Stage1 GANによる新規ユーザ生成
エンコーダ・デコーダアーキテクチャによるユーザー隠れベクトル出力
エンコーダ
実在のユーザーがクリックしたニュース記事の埋め込みの集合をもとにユーザーの興味を表現する隠れベクトル$ hを出力できる
この隠れベクトル$ hを真のユーザーベクトル$ v_u^{real}とする
デコーダ
隠れベクトル$ hから元のニュース記事集合を再構成する
GANによる新規ユーザベクトル生成
Generatorは偽のユーザー隠れベクトル$ v_u^{fake}を作成し、Discriminatorは$ v_u^{real}と$ v_u^{fake}の真偽を判定する
GはDが誤答するように下式の最小化を目指し、 Dは正答率最大化のために下式の最大化を目指す
https://gyazo.com/f3ae65e475f2b53ce525b97f360841b8
互いに切磋琢磨することでGがより本物らしい$ v_u^{fake}を生成できるようになる
Generatorによる新規ユーザの生成
Stage 2: 最新の興味を反映した記事推薦
エンコーダ・デコーダアーキテクチャによるユーザー行動予測
エンコーダ
ユーザーベクトル$ v_u(と過去にクリックした記事)から最新の興味を反映した隠れベクトル$ hを得る
デコーダ
隠れベクトル$ hと候補記事埋め込み集合$ E^cから各記事への興味を示す隠れベクトル集合$ G'を得る
$ G'と$ E^cとの内積をとり記事のスコアリングを行う
https://gyazo.com/292f14c78115d5ffda3f12e7bbe585b5
次の時間区分で直前のクリック行動をエンコーダでの出力に反映
実験と結果
RQ
RQ1 MINDsimがユーザーの行動を適切にモデル化できるか
RQ2 MINDsimが実際のユーザーに近いユーザーを生成出来ているか
RQ3 MINDsimが生成したユーザーデータセットは実際のユーザーデータセットを超えられるか
データセット
https://gyazo.com/79b567bec6d89c515a0ad89edfec06fe
MIcrosoft News Dataset(MIND)を使用
ユーザーのimpressionとニュースデータの集合
impressionはクリックされた記事とされていない記事のラベルを含んでいる
各ユーザーは3期間のうち最もimpressionの多い期間に割り振られており、それ以外の期間のデータは破棄される
1impressionあたりのニュース数は46.6であり、1impressionあたりの平均クリック数は1.7である
ユーザー行動予測モデルとしての性能
MINDsimからGANによるユーザー生成部分を抜き、単なるニュース記事推薦アルゴリズムとした場合
ユーザー行動(クリック有無)の予測性能を比較
https://gyazo.com/9cafb1497352381e528c4092329ef94c
各指標においてMINDsimが他モデルを上回っている
あるユーザ$ v_u^{real}の行動がシミュレート出来ている
生成したユーザーが実際のユーザーの行動を模倣できているか
エンコーダ・デコーダアーキテクチャがユーザーベクトル生成に寄与しているかどうか
$ v_u^{real}と$ v_u^{fake}をそれぞれ2次元に次元削減して分布を可視化
クリックした記事埋め込みも同様に2次元に次元削減して分布を可視化、ユーザー行動の乖離を可視化する
https://gyazo.com/e46e16ec65068cc0504e8ba53fc6c2ca
定性的だが、ユーザーベクトル分布は似たような感じになってる? fig.4(a)
クリック記事の差分に関しても、いずれのニュース記事数においてもエンコーダ・デコーダによってより性能が良くなっていることがわかる
Sinkhone Divergence: 最適輸送距離の正定値近似
最適輸送距離が小さいほど、2種のベクトル分布は似ているということになる
生成されたユーザーを含んだデータセットでモデルを学習する
既存モデルの学習に、シミュレーターで生成したユーザーを含めたデータセットを使用する
original: real 2000, generated 0
augmented: real 2000, generated 1000
https://gyazo.com/a97f86d8f9be24a8932c83532366db9b
生成ユーザーで拡張したデータセットによって推薦精度が向上した
実際のユーザーとよく似ているが異なるユーザーを生成してシミュレートすることで、固定されたデータセットを超えて強化できることがわかる
まとめ・感想など
ニュース推薦特有の項目更新頻度の速さや、興味の移り変わりの速さに対する一つの解答かなと思った
ユーザーを新たに生成してシミュレーションを行うという発想が面白い
gunosyで行うとどうなるんだろう
訓練用データセット拡張による推薦精度向上
テスト用データセットに使用しても良いのだろうか?
オフラインシミュレーションの質が上がる?
CTRなど記事品質に関わる情報が使われていないのが気になる
あくまでユーザーの興味とその変化のシミュレーションを重視しているのか
新規ユーザの生成?