This notebook provides a memory efficient version in Python 3.7 of the algorithm outlined in the paper "Markov Random Fields for Collaborative Filtering" at the 33rd Conference on Neural Information Processing Systems (NeurIPS 2019), Vancouver, Canada.
For reproducibility, the experiments utilize publicly available code for pre-processing three popular data-sets and for evaluating the learned model. That code accompanies the paper "Variational Autoencoders for Collaborative Filtering" by Dawen Liang et al. at The Web Conference 2018. While the code for the Movielens-20M data-set was made publicly available, the code for pre-processing the other two data-sets can easily be obtained by modifying their code as described in their paper.
The experiments in the paper (where an AWS instance with 64 GB RAM and 16 vCPUs was used) may be re-run by following these three steps:
- Step 1: Pre-processing the data (utilizing the publicly available code)
- Step 2: Learning the MRF (this code implements the new algorithm)
- Step 3: Evaluation (utilizing the publicly available code)
This memory efficient version is modified by Yifei Shen @ Hong Kong University of Science and Technology