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
--debugfor 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