STAFF BLOG

強化学習×推薦アルゴリズムを試せる環境「RecoGym」とは?


RecoGymとは?

RecoGymは推薦システムのトップカンファレンスである RecSys2018 で発表されたOpenAI Gym上で推薦アルゴリズムを試すことのできる学習(テスト)環境です.Open AI gymの説明に関してはここでは省略します.

強化学習環境上での推薦システム

強化学習×推薦システムに関して少しここで説明しておきます.まず,強化学習をざっくり書くと,エージェントと呼ばれる行動主体が環境とのインタラクションを通して獲得できる報酬を元に行動の仕方(方策)を学習する枠組みになります.強化学習の枠組みで記述できる推薦システムの概図は下図になります.

rl_setup_rec.png

上図で出てきた要素と強化学習の文脈で出てくる言葉を対応づけると下表のようになります.

推薦システムがユーザーに対して商品の推薦を行います.その結果,商品に対してとったユーザーの行動情報と推薦した商品をクリックしたかどうかのフィードバックを推薦システムが受け取ってアルゴリズムを更新することを繰り返す形になっています.

RecoGymの特徴

RecoGymでは以下のような流れで学習を行うことができます.

flow rec.png

オフライン学習(Offline Learning)のためにRecoGymがデータの生成を担ってくれます.具体的には固定方策で商品を推薦し,その推薦に対するフィードバックを記録しておきます.ここで記録された訓練データを用いてエージェントはオフライン学習を行うことができます.
次のオンライン学習(Online Learning)では行動決定,その決定に伴う状態と報酬の観測,方策の更新の繰り返しを行います.
オフライン学習は,推薦システムでよくあるコールドスタートに対する対処ですね.初期の学習にはコストがかなりかかるので訓練データの収集と学習部分を切り離しています.

導入

推奨されているのはAnaconda上でのPython 3.7+環境です.あと,OpenAI gymの環境のインストールが必要になります.まず,conda-envをインストールします.

# install conda env
conda install -c conda conda-env
conda install -c r r-essentials

次に,RecoGymのレポジトリをクローンしてきて,必要なライブラリをインストールします.OpenAI gymはAnacondaでのインストールに対応していないみたいなのでpipでインストールします.

git clone https://github.com/criteo-research/reco-gym.git
cd reco-gym
# create environment based on environment.yml
conda-env create environment.yml
pip install gym

これで導入は終了になります.

最後に

今回は,強化学習環境であるOpenAI gym上で推薦システムを試せる環境であるRecoGymの説明とその導入まで行いました.次回は,このRecoGymを使って実際にプログラムを動かしていきたいと思います.乞うご期待!

Datumixでは一緒に推薦システムの構築や強化学習の実装や調査を手伝ってくれる仲間を募集しています.
強化学習の社会実装に興味がある,推薦システムを作って見たいなど,あれば気軽に連絡をください

参考文献

1. RecoGym Repository
2. RecoGym Paper


関連記事