Tensorflow based implemention of Graph Convolutional Matrix Completion for recommender systems, based on our paper:
Rianne van den Berg, Thomas N. Kipf, Max Welling, Graph Convolutional Matrix Completion (2017)
python setup.py install
- Python 2.7
- TensorFlow (1.4)
- pandas
To reproduce the experiments mentioned in the paper you can run the following commands:
Douban
python train.py -d douban --accum stack -do 0.7 -nleft -nb 2 -e 200 --features --feat_hidden 64 --testing
Flixster
python train.py -d flixster --accum stack -do 0.7 -nleft -nb 2 -e 200 --features --feat_hidden 64 --testing
Yahoo Music
python train.py -d yahoo_music --accum stack -do 0.7 -nleft -nb 2 -e 200 --features --feat_hidden 64 --testing
Movielens 100K on official split with features
python train.py -d ml_100k --accum stack -do 0.7 -nleft -nb 2 -e 1000 --features --feat_hidden 10 --testing
Movielens 100K on official split without features
python train.py -d ml_100k --accum stack -do 0.7 -nleft -nb 2 -e 1000 --testing
Movielens 1M
python train.py -d ml_1m --data_seed 1234 --accum sum -do 0.7 -nsym -nb 2 -e 3500 --testing
Movielens 10M
python train_mini_batch.py -d ml_10m --data_seed 1234 --accum stack -do 0.3 -nsym -nb 4 -e 20 --testing
Note: 10M dataset training does not fit on GPU memory (12 Gb), therefore this script uses a naive version of mini-batching. Script can take up to 24h to finish.
Please cite our paper if you use this code in your own work:
@article{vdberg2017graph,
title={Graph Convolutional Matrix Completion},
author={van den Berg, Rianne and Kipf, Thomas N and Welling, Max},
journal={arXiv preprint arXiv:1706.02263},
year={2017}
}