Skip to main content

RecSim: A Configurable Recommender Systems Simulation Platform

Project description

RecSim: A Configurable Recommender Systems Simulation Platform

RecSim is a configurable platform for authoring simulation environments for recommender systems (RSs) that naturally supports sequential interaction with users. RecSim allows the creation of new environments that reflect particular aspects of user behavior and item structure at a level of abstraction well-suited to pushing the limits of current reinforcement learning (RL) and RS techniques in sequential interactive recommendation problems. Environments can be easily configured that vary assumptions about: user preferences and item familiarity; user latent state and its dynamics; and choice models and other user response behavior. We outline how RecSim offers value to RL and RS researchers and practitioners, and how it can serve as a vehicle for academic-industrial collaboration. For a detailed description of the RecSim architecture please read Ie et al. Please cite the paper if you use the code from this repository in your work.

Bibtex

@article{ie2019recsim,
    title={RecSim: A Configurable Simulation Platform for Recommender Systems},
    author={Eugene Ie and Chih-wei Hsu and Martin Mladenov and Vihan Jain and Sanmit Narvekar and Jing Wang and Rui Wu and Craig Boutilier},
    year={2019},
    eprint={1909.04847},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}

Disclaimer

This is not an officially supported Google product.

What's new

  • 12/13/2019: Added (abstract) classes for both multi-user environments and agents. Added bandit algorithms for generalized linear models.

Installation and Sample Usage

It is recommended to install RecSim using (https://pypi.org/project/recsim/):

pip install recsim

However, the latest version of Dopamine is not in PyPI as of December, 2019. We want to install the latest version from Dopamine's repository like the following before we install RecSim. Note that Dopamine requires Tensorflow 1.15.0 which is the final 1.x release including GPU support for Ubuntu and Windows.

pip install git+https://github.com/google/dopamine.git

Here are some sample commands you could use for testing the installation:

git clone https://github.com/google-research/recsim
cd recsim/recsim
python main.py --logtostderr \
  --base_dir="/tmp/recsim/interest_exploration_full_slate_q" \
  --agent_name=full_slate_q \
  --environment_name=interest_exploration \
  --episode_log_file='episode_logs.tfrecord' \
  --gin_bindings=simulator.runner_lib.Runner.max_steps_per_episode=100 \
  --gin_bindings=simulator.runner_lib.TrainRunner.num_iterations=10 \
  --gin_bindings=simulator.runner_lib.TrainRunner.max_training_steps=100 \
  --gin_bindings=simulator.runner_lib.EvalRunner.max_eval_episodes=5

You could then start a tensorboard and view the output

tensorboard --logdir=/tmp/recsim/interest_exploration_full_slate_q/ --port=2222

You could also find the simulated logs in /tmp/recsim/episode_logs.tfrecord

Tutorials

To get started, please check out our Colab tutorials. In RecSim: Overview, we give a brief overview about RecSim. We then talk about each configurable component: environment and recommender agent.

Documentation

Please refer to the white paper for the high-level design.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

recsim-0.2.4.tar.gz (66.0 kB view details)

Uploaded Source

Built Distribution

recsim-0.2.4-py2-none-any.whl (109.7 kB view details)

Uploaded Python 2

File details

Details for the file recsim-0.2.4.tar.gz.

File metadata

  • Download URL: recsim-0.2.4.tar.gz
  • Upload date:
  • Size: 66.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/2.7.18rc1

File hashes

Hashes for recsim-0.2.4.tar.gz
Algorithm Hash digest
SHA256 ae4e8bca9f647ab3d9c66fefc92131a32e83df92a0fbd06ca0c5ddcb1aea8166
MD5 2b444f8e027cb86fae231e9034337492
BLAKE2b-256 bb5abbd19e986fd3448de90a2808010ddec29d048cff21cd940401c14c8666d6

See more details on using hashes here.

File details

Details for the file recsim-0.2.4-py2-none-any.whl.

File metadata

  • Download URL: recsim-0.2.4-py2-none-any.whl
  • Upload date:
  • Size: 109.7 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/2.7.18rc1

File hashes

Hashes for recsim-0.2.4-py2-none-any.whl
Algorithm Hash digest
SHA256 80fe2228a132fb86ceeac8bca3cd54b332c994cc13282e06c195f215a16ca8d7
MD5 c97b4fdebb7db54c7c8c415850b7e9a4
BLAKE2b-256 0a116176f4f0183f50de8be059625aeb18ce08374cd361d234fb393f95f6d971

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page