Files
2026-07-13 13:35:51 +08:00

49 lines
2.0 KiB
Markdown

# DGL Implementation of the NGCF Model
This DGL example implements the GNN model proposed in the paper [Neural Graph Collaborative Filtering](https://arxiv.org/abs/1905.08108).
The author's codes of implementation is in [here](https://github.com/xiangwang1223/neural_graph_collaborative_filtering). A pytorch re-implementation can be found [here](https://github.com/huangtinglin/NGCF-PyTorch).
Example implementor
----------------------
This example was implemented by [Kounianhua Du](https://github.com/KounianhuaDu) during her Software Dev Engineer Intern work at the AWS Shanghai AI Lab.
The graph dataset used in this example
---------------------------------------
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](https://github.com/xiangwang1223/neural_graph_collaborative_filtering/tree/master/Data).
Statistics:
- Users: 29858
- Items: 40981
- Interactions: 1027370
- Density: 0.00084
How to run example files
--------------------------------
First to get the data, in the Data folder, run
```bash
sh load_gowalla.sh
```
Then, in the NGCF folder, run
```bash
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.
Performance
-------------------------
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 |