49 lines
2.0 KiB
Markdown
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 |
|
|
|