This repository holds the Tensorflow based implementation of Multi-Graph Graph Attention Network (MG-GAT) proposed in the Interpretable Recommender System With Heterogeneous Information: A Geometric Deep Learning Perspective.
We recommend using a conda virtual environment:
conda create -n mggat_env python=3.7
conda activate mggat_env
Install TensorFlow (your installation may vary):
conda install tensorflow-gpu==2.4.1
Pip install packages:
pip install ray==0.8.7 ray[tune] hyperopt pandas scikit-learn
To train our model on the MovieLens100K dataset, run:
python models.py
Check models.py to change arguments for model, dataset, etc.
A. datasets.py - Preprocessing for each dataset.
B. layers.py - Definitions of neural network classes, including GAT and GCN.
C. metrics.py - Definitions of metrics used to evaluate recommender systems.
D. models.py - Definitions of recommender systems and code to tune/test them. We include our model as well as some of the benchmarks we used (SVD++, GRALS, and MGCNN). For other benchmarks, we refer you to their github implementations: IGMC, GraphRec, NGCF, F-EAE, GC-MC, NNMF.
E. results.py - Print table of metrics after running models.py.
We release the processed dataset in our paper from the Yelp data challenge.
data/datasets - Standardized datasets.
data/raw_data - Unprocessed datasets.
data/results - Saved metrics, hyperparameters, and models.
If you use this code as part of your research, please cite the following paper:
@article{leng2020interpretable,
title={Interpretable recommender system with heterogeneous information: A geometric deep learning perspective},
author={Leng, Yan and Ruiz, Rodrigo and Dong, Xiaowen and Pentland, Alex}
}