## How to load ogb data
To load ogb dataset, you need to run the following command, which will output a network file, ogbl-collab-net.txt:
```
python3 load_dataset.py --name ogbl-collab
```
Or you can run the code directly with:
```
python3 deepwalk --ogbl_name xxx --load_from_ogbl
```
However, ogb.linkproppred might not be compatible with mixed training with multi-gpu. If you want to do mixed training, please use no more than 1 gpu by the command above.
## Evaluation
For evaluatation we follow the code mlp.py provided by ogb [here](https://github.com/snap-stanford/ogb/blob/master/examples/linkproppred/collab/mlp.py).
## Used config
ogbl-collab
```
python3 deepwalk.py --ogbl_name ogbl-collab --load_from_ogbl --save_in_pt --output_emb_file collab-embedding.pt --num_walks 50 --window_size 2 --walk_length 40 --lr 0.1 --negative 1 --neg_weight 1 --lap_norm 0.01 --mix --gpus 0 --num_threads 4 --print_interval 2000 --print_loss --batch_size 128 --use_context_weight
cd ./ogb/blob/master/examples/linkproppred/collab/
cp embedding_pt_file_path ./
python3 mlp.py --device 0 --runs 10 --use_node_embedding
```
ogbl-ddi
```
python3 deepwalk.py --ogbl_name ogbl-ddi --load_from_ogbl --save_in_pt --output_emb_file ddi-embedding.pt --num_walks 50 --window_size 2 --walk_length 80 --lr 0.1 --negative 1 --neg_weight 1 --lap_norm 0.05 --only_gpu --gpus 0 --num_threads 4 --print_interval 2000 --print_loss --batch_size 16 --use_context_weight
cd ./ogb/blob/master/examples/linkproppred/ddi/
cp embedding_pt_file_path ./
python3 mlp.py --device 0 --runs 10 --epochs 100
```
ogbl-ppa
```
python3 deepwalk.py --ogbl_name ogbl-ppa --load_from_ogbl --save_in_pt --output_emb_file ppa-embedding.pt --negative 1 --neg_weight 1 --batch_size 64 --print_interval 2000 --print_loss --window_size 1 --num_walks 30 --walk_length 80 --lr 0.1 --lap_norm 0.02 --mix --gpus 0 --num_threads 4
cp embedding_pt_file_path ./
python3 mlp.py --device 2 --runs 10
```
ogbl-citation
```
python3 deepwalk.py --ogbl_name ogbl-citation --load_from_ogbl --save_in_pt --output_emb_file embedding.pt --window_size 2 --num_walks 10 --negative 1 --neg_weight 1 --walk_length 80 --batch_size 128 --print_loss --print_interval 1000 --mix --gpus 0 --use_context_weight --num_threads 4 --lap_norm 0.05 --lr 0.1
cp embedding_pt_file_path ./
python3 mlp.py --device 2 --runs 10 --use_node_embedding
```
## Result
ogbl-collab
#params: 61258346(model) + 131841(mlp) = 61390187
Hits@10
Highest Train: 74.83 ± 4.79
Highest Valid: 40.03 ± 2.98
Final Train: 74.51 ± 4.92
Final Test: 31.13 ± 2.47
Hits@50
Highest Train: 98.83 ± 0.15
Highest Valid: 60.61 ± 0.32
Final Train: 98.74 ± 0.17
Final Test: 50.37 ± 0.34
Hits@100
Highest Train: 99.86 ± 0.04
Highest Valid: 66.64 ± 0.32
Final Train: 99.84 ± 0.06
Final Test: 56.88 ± 0.37
obgl-ddi
#params: 1444840(model) + 99073(mlp) = 1543913
Hits@10
Highest Train: 33.91 ± 2.01
Highest Valid: 30.96 ± 1.89
Final Train: 33.90 ± 2.00
Final Test: 15.16 ± 4.28
Hits@20
Highest Train: 44.64 ± 1.71
Highest Valid: 41.32 ± 1.69
Final Train: 44.62 ± 1.69
Final Test: 26.42 ± 6.10
Hits@30
Highest Train: 51.01 ± 1.72
Highest Valid: 47.64 ± 1.71
Final Train: 50.99 ± 1.72
Final Test: 33.56 ± 3.95
ogbl-ppa
#params: 150024820(model) + 113921(mlp) = 150138741
Hits@10
Highest Train: 4.78 ± 0.73
Highest Valid: 4.30 ± 0.68
Final Train: 4.77 ± 0.73
Final Test: 2.67 ± 0.42
Hits@50
Highest Train: 18.82 ± 1.07
Highest Valid: 17.26 ± 1.01
Final Train: 18.82 ± 1.07
Final Test: 17.34 ± 2.09
Hits@100
Highest Train: 31.29 ± 2.11
Highest Valid: 28.97 ± 1.92
Final Train: 31.28 ± 2.12
Final Test: 28.88 ± 1.53
ogbl-citation
#params: 757811178(model) + 131841(mlp) = 757943019
MRR
Highest Train: 0.8994 ± 0.0004
Highest Valid: 0.8271 ± 0.0003
Final Train: 0.8991 ± 0.0007
Final Test: 0.8284 ± 0.0005