Metadata-Version: 2.1
Name: recsim-ng
Version: 0.1.0
Summary: RecSim NG: Toward Principled Uncertainty Modeling for Recommender Ecosystems
Home-page: https://github.com/google-research/recsim_ng
Author: The RecSim Team
Author-email: no-reply@google.com
License: Apache 2.0
Project-URL: Documentation, https://github.com/google-research/recsim_ng
Project-URL: Bug Reports, https://github.com/google-research/recsim_ng/issues
Project-URL: Source, https://github.com/google-research/recsim_ng
Keywords: recsim reinforcement-learning recommender-system simulation probabilistic-programming
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: absl-py
Requires-Dist: edward2
Requires-Dist: gin-config
Requires-Dist: gym
Requires-Dist: matplotlib
Requires-Dist: numpy
Requires-Dist: tensorflow-probability
Requires-Dist: tensorflow (>=2.3.0)

# RecSim NG: Toward Principled Uncertainty Modeling for Recommender Ecosystems

RecSim NG, a probabilistic platform for multi-agent recommender systems
simulation. RecSimNG is a scalable, modular, differentiable simulator
implemented in Edward2 and TensorFlow. It offers: a powerful, general
probabilistic programming language for agent-behavior specification; an
XLA-based vectorized execution model for running simulations on accelerated
hardware; and tools for probabilistic inference and latent-variable model
learning, backed by automatic differentiation and tracing. We describe RecSim NG
and illustrate how it can be used to create transparent, configurable,
end-to-end models of a recommender ecosystem. Specifically, we present a
collection of use cases that demonstrate how the functionality described above
can help both researchers and practitioners easily develop and train novel
algorithms for recommender systems. Please refer to
[Mladenov et al](https://dl.acm.org/doi/10.1145/3383313.3411527) for the
high-level design of RecSim NG. Please cite the paper if you use the code from
this repository in your work.

### Bibtex

```
@inproceedings{mladenov2020recsimng,
    title = {Demonstrating Principled Uncertainty Modeling for Recommender Ecosystems with RecSim {NG}},
    author = {Martin Mladenov, Chih-wei Hsu, Vihan Jain, Eugene Ie, Christopher Colby, Nicolas Mayoraz, Hubert Pham, Dustin Tran, Ivan Vendrov, Craig Boutilier}
    year = {2020},
    booktitle = {RecSys 2020: Fourteenth {ACM} Conference on Recommender Systems, Virtual Event, Brazil, September 22-26, 2020},
    pages = {591--593},
}
```

<a id='Disclaimer'></a>

## Disclaimer

This is not an officially supported Google product.

## Installation and Sample Usage

It is recommended to install RecSim NG using
(https://pypi.org/project/recsim_ng/). We want to install the latest version
from Edward2's repository:

```shell
pip install recsim_ng
pip install -e "git+https://github.com/google/edward2.git#egg=edward2"
```

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

```
git clone https://github.com/google-research/recsim_ng
cd recsim_ng/recsim_ng/applications/ecosystem_simulation
python ecosystem_simulation_demo.py
```

## Tutorials

To get started, please check out our Colab tutorials. In
[**RecSim NG: Basics**](https://nbviewer.jupyter.org/github/google-research/recsim_ng/blob/master/recsim_ng/colab/RecSim_NG_Basics.ipynb),
we introduce the RecSim NG model and corresponding modeling APIs and runtime
library. We then demonstrate how we define a simulation using **entities**,
**behaviors**, and **stories**. Finally, we illustrate differentiable
simulation including model learning and inference.

In [**RecSim NG: Dealing With Uncertainty**](https://nbviewer.jupyter.org/github/google-research/recsim_ng/blob/master/recsim_ng/colab/RecSim_NG_Dealing_With_Uncertainty.ipynb),
we explicitly address the stochastics of the Markov process captured by a DBN.
We demonstrate how to use Edward2 in RecSim NG and show how to use the
corresponding RecSim NG APIs for inference and learning tasks. Finally, we
showcase how the uncertainty APIs of RecSim NG can be used within a
recommender-system model-learning application.

## Documentation


Please refer to the [demo paper](https://dl.acm.org/doi/10.1145/3383313.3411527)
for the high-level design.


