This DGL example implements the GNN model proposed in the paper Neural Graph Collaborative Filtering. The author's codes of implementation is in here. A pytorch re-implementation can be found here.
This example was implemented by Kounianhua Du during her Software Dev Engineer Intern work at the AWS Shanghai AI Lab.
Gowalla: This is the check-in dataset obtained from Gowalla, where users share their locations by checking-in. To ensure the quality of the dataset, we use the 10-core setting, i.e., retaining users and items with at least ten interactions. The dataset used can be found here.
Statistics:
- Users: 29858
- Items: 40981
- Interactions: 1027370
- Density: 0.00084
First to get the data, in the Data folder, run
sh load_gowalla.sh
Then, in the NGCF folder, run
python main.py --dataset gowalla --regs [1e-5] --embed_size 64 --layer_size [64,64,64] --lr 0.0001 --save_flag 1 --batch_size 1024 --epoch 400 --verbose 1 --mess_dropout [0.1,0.1,0.1] --gpu 0
NOTE: Following the paper's setting, the node dropout is disabled.
The following results are the results in 400 epoches.
NGCF results
Model | Paper (tensorflow) | ours (DGL) |
---|---|---|
recall@20 | 0.1569 | 0.1552 |
ndcg@20 | 0.1327 | 0.2707 |