diff --git a/README.md b/README.md index 24f86ad..7bfee0f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -**Edit a file, create a new file, and clone from Bitbucket in under 2 minutes** + -### Running the code - -### More details +# SOFA +This repository is the implementation of [SOFA](https://staff.fnwi.uva.nl/m.derijke/wp-content/papercite-data/pdf/huang-2020-keeping.pdf), the Simulator for OFfline leArning and evaluation. +> Keeping Dataset Biases out of the Simulation: A Debiased Simulator for Reinforcement Learning based Recommender Systems. Jin Huang, Harrie Oosterhuis, Maarten de Rijke, Herke van Hoof. Recsys 2020. + + + + + +## Running the code +``` +$ cd examples +$ python run_dqn.py +``` + +## More details +We also provide the details of DQN-based Policy used in experiments and the related hyperparamters (See Appendix). + +## Cite +If you use our code, please cite our paper: +``` +@inproceedings{huang2020keeping, + title={Keeping Dataset Biases out of the Simulation: A Debiased Simulator for Reinforcement Learning based Recommender Systems}, + author={Huang, Jin and Oosterhuis, Harrie and de Rijke, Maarten and van Hoof, Herke}, + booktitle={Fourteenth ACM Conference on Recommender Systems}, + pages={190--199}, + year={2020} +} +``` diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..2afb22e --- /dev/null +++ b/requirements.txt @@ -0,0 +1,96 @@ +# This file may be used to create an environment using: +# $ conda create --name --file +# platform: linux-64 +_libgcc_mutex=0.1=main +_tflow_select=2.1.0=gpu +absl-py=0.8.1=py36_0 +astor=0.8.0=py36_0 +attrs=19.3.0=py_0 +blas=1.0=mkl +c-ares=1.15.0=h7b6447c_1001 +ca-certificates=2019.11.27=0 +certifi=2019.11.28=py36_0 +cffi=1.13.2=py36h2e261b9_0 +cudatoolkit=9.2=0 +cudnn=7.6.4=cuda9.2_0 +cupti=9.2.148=0 +cycler=0.10.0=py36_0 +dbus=1.13.12=h746ee38_0 +expat=2.2.6=he6710b0_0 +fontconfig=2.13.0=h9420a91_0 +freetype=2.9.1=h8a8886c_1 +gast=0.3.2=py_0 +glib=2.63.1=h5a9c865_0 +grpcio=1.16.1=py36hf8bcb03_1 +gst-plugins-base=1.14.0=hbbd80ab_1 +gstreamer=1.14.0=hb453b48_1 +h5py=2.9.0=py36h7918eee_0 +hdf5=1.10.4=hb1b8bf9_0 +icu=58.2=h9c2bf20_1 +importlib_metadata=1.3.0=py36_0 +intel-openmp=2019.4=243 +joblib=0.14.1=py_0 +jpeg=9b=h024ee3a_2 +keras-applications=1.0.8=py_0 +keras-preprocessing=1.1.0=py_1 +kiwisolver=1.1.0=py36he6710b0_0 +libedit=3.1.20181209=hc058e9b_0 +libffi=3.2.1=hd88cf55_4 +libgcc-ng=9.1.0=hdf63c60_0 +libgfortran-ng=7.3.0=hdf63c60_0 +libpng=1.6.37=hbc83047_0 +libprotobuf=3.10.1=hd408876_0 +libstdcxx-ng=9.1.0=hdf63c60_0 +libuuid=1.0.3=h1bed415_2 +libxcb=1.13=h1bed415_1 +libxml2=2.9.9=hea5a465_1 +markdown=3.1.1=py36_0 +matplotlib=3.1.1=py36h5429711_0 +mkl=2019.4=243 +mkl-service=2.3.0=py36he904b0f_0 +mkl_fft=1.0.15=py36ha843d7b_0 +mkl_random=1.1.0=py36hd6b4f25_0 +more-itertools=8.0.2=py_0 +ncurses=6.1=he6710b0_1 +ninja=1.9.0=py36hfd86e86_0 +numpy=1.16.0=py36h7e9f1db_1 +numpy-base=1.16.0=py36hde5b4d6_1 +openssl=1.1.1d=h7b6447c_3 +packaging=20.0=py_0 +pandas=0.25.3=py36he6710b0_0 +pcre=8.43=he6710b0_0 +pip=19.3.1=py36_0 +pluggy=0.13.1=py36_0 +protobuf=3.10.1=py36he6710b0_0 +py=1.8.1=py_0 +pycparser=2.19=py36_0 +pyparsing=2.4.6=py_0 +pyqt=5.9.2=py36h05f1152_2 +pytest=5.3.2=py36_0 +python=3.6.9=h265db76_0 +python-dateutil=2.8.1=py_0 +pytorch=1.3.1=py3.6_cuda9.2.148_cudnn7.6.3_0 +pytz=2019.3=py_0 +qt=5.9.7=h5867ecd_1 +readline=7.0=h7b6447c_5 +recnn=0.1=pypi_0 +scikit-learn=0.22=py36hd81dba3_0 +scipy=1.3.1=py36h7c811a0_0 +setuptools=41.6.0=py36_0 +sip=4.19.8=py36hf484d3e_0 +six=1.13.0=py36_0 +sqlite=3.30.1=h7b6447c_0 +tensorboard=1.12.2=py36he6710b0_0 +tensorflow=1.12.0=gpu_py36he74679b_0 +tensorflow-base=1.12.0=gpu_py36had579c0_0 +tensorflow-gpu=1.12.0=h0d30ee6_0 +termcolor=1.1.0=py36_1 +tk=8.6.8=hbc83047_0 +tornado=6.0.3=py36h7b6447c_0 +tqdm=4.40.2=py_0 +wcwidth=0.1.7=py36_0 +werkzeug=0.16.0=py_0 +wheel=0.33.6=py36_0 +xz=5.2.4=h14c3975_4 +zipp=0.6.0=py_0 +zlib=1.2.11=h7b6447c_3