This is a project developed as part of my thesis dissertation for the M.Sc programme in Web Science and Big Data Analytics at University College London.
It implements a Deep Reinforcement Learning algorithm that learns to give good recommendations to users under a simulated environment built using the OpenAI gym framework. For more information, refer to the main document.
- Santiago Gonzalez Toral | M.Sc Web Science and Big Data Analytics (WSBDA) candidate
- Dr. Jun Wang | Reader at University College London. Programme Director of M.Sc WSBDA
The following packages are needed to execute the project models
Python 2.7VirtualenvOpenAI gym(included in this project)TensorflowJupyter notebookGraphlab Create API 2.1(with Academic License)
To setup the environment, the following commands need to be executed:
$ git clone https://github.com/santteegt/ucl-drl-msc.git
$ cd ucl-drl-msc
$ git submodule update --init --recursive
$ mkdir .venv
$ virtualenv --system-site-packages --python=python2.7 .venv/
$ source .venv/bin/activate
(venv)$ cd gym
(venv)$ pip install -e .
# installation for Mac OS X. For other platforms, refer to https://www.tensorflow.org/versions/r0.9/get_started/os_setup.html#virtualenv-installation
(venv)$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/tensorflow-0.9.0-py2-none-any.whl
(venv)$ pip install --upgrade $TF_BINARY_URL
(venv)$ pip install pymongo pandas gensim fastFM matplotlib scikit-learn scipy
(venv)$ pip install --upgrade --no-cache-dir https://get.graphlab.com/GraphLab-Create/2.1/hernan.toral.15@ucl.ac.uk/55E9-2088-3AF8-120F-D171-1AAB-95A3-B077/GraphLab-Create-License.tar.gz
Movielens datasets files were pre-processed for running the models. They can be downloaded from the following URL: ( Dataset files ) | ( Alternative 2 )
Then,
- Extract and copy the contents of FMmodel.zip to the
datafolder - To use the Movielens-100k dataset, extract the contents of the data-movielens100k.zip file into the
datafolder - To use the Movielens-1M dataset, extract the contents of the data-movielens1m.zip file into the
datafolder
To make the running process more easier, executable files for each experiment are provided under the bin folder (make sure to activate the virtualenv before running the exec file):
- DRL-kNN-CB:
run-v2.shruns the model for the Movielens 100k dataset.run-v0.shruns the model for the Movielens 1M dataset - DRL-kNN-CF:
run-v1.shruns the model for the Movielens 100k dataset. - DRL-FM:
run-v3.shruns the model for the Movielens 100k dataset. - Random agent:
run-v1-random.shrun-v2-random.shruns the DDPG algorithm using a random agent
Human readable rendering of recommendations made while running the model can be seen using the following command:
(venv)$ cd ucl-drl-msc
(venv)$ tail -F run.logReward logs obtained by an agent while running the model can be read using the following command:
(venv)$ cd ucl-drl-msc
(venv)$ tail -F ddpg-results/experiment1/output.logAdditionally, to visualize the model parameters during training, you can run the Tensorflow dashboard using the following command:
(venv)$ cd ucl-drl-msc
(venv)$ python src/dashboard.py --exdir ddpg-results/Finally, to stop the training process, it is necessary to run the following command:
(venv)$ cd ucl-drl-msc/bin
(venv)$ sh stop.shThe Project code is mostly developed under the Apache2 license, except for the module developed using Graphlab Create which is based on an Academic License provided by Turi