Data loaders and model training/evaluation pipelines written using Python 3.8 used in the MindReader paper published at CIKM 2020, https://doi.org/10.1145/3340531.3412759. You can read more about our dataset at https://mindreader.tech/dataset, and remember to cite our work:
@inproceedings{brams2020mindreader,
title={MindReader: Recommendation over Knowledge Graph Entities with Explicit User Ratings},
author={Brams, Anders H and Jakobsen, Anders L and Jendal, Theis E and Lissandrini, Matteo and Dolog, Peter and Hose, Katja},
booktitle={Proceedings of the 29th ACM International Conference on Information \& Knowledge Management},
pages={2975--2982},
year={2020}
}
Run the ./data_loading/download_raw_data.py
script to download the most recent MindReader data.
Run the ./data_generation_entry.py
script to generate data. Consult generate()
to adjust whether or not to include top-popular items in the test set.
Run the ./run.sh
script for running all models in all experiments.
Results are written to ./results/
.
First, build the Docker image:
docker build -t mi911/runner .
When running the container, you have the following options:
--include [MODEL NAME LIST]
for running only specific models (defaults to all models)- Model names:
item-knn
,user-knn
,mf
,svd
,bpr
,transe
,transe-kg
,transh
,transh-kg
,ppr-collab
,ppr-kg
,ppr-joint
,random
,top-pop
, andcbf-item-knn
.
- Model names:
--exclude [MODEL NAME LIST]
for running all models except specific ones (defaults to none)--experiments [EXPERIMENT NAME LIST]
for the experiments to run- Experiment names (prefixed
wtp-
andntp-
for with and without top-popular items in the test set, respectively):all_movies
,all_entities
,substituting-3-4
,substituting-2-4
, andsubstituting-1-4
.
- Experiment names (prefixed
--debug
for printing debug-level logs to the terminal.
For example, if we want to run the experiment containing all movie ratings with top-popular items in the test set running only the SVD and BPR models, the following command will work:
docker run -d -v ${PWD}/.data:/app/data -v ${PWD}/results:/app/results mi911/runner --include bpr svd --experiments wtp-all_movies