README.md 2.12 KB
Newer Older
Lingfan Yu's avatar
Lingfan Yu committed
1
2
# Relational-GCN

Mufei Li's avatar
Mufei Li committed
3
* Paper: [Modeling Relational Data with Graph Convolutional Networks](https://arxiv.org/abs/1703.06103)
Gan Quan's avatar
Gan Quan committed
4
5
6
* Author's code for entity classification: [https://github.com/tkipf/relational-gcn](https://github.com/tkipf/relational-gcn)
* Author's code for link prediction: [https://github.com/MichSchli/RelationPrediction](https://github.com/MichSchli/RelationPrediction)

7
### Dependencies
Mufei Li's avatar
Mufei Li committed
8
* PyTorch 1.10
9
10
* rdflib
* pandas
Mufei Li's avatar
Mufei Li committed
11
12
* tqdm
* TorchMetrics
Lingfan Yu's avatar
Lingfan Yu committed
13

14
```
Mufei Li's avatar
Mufei Li committed
15
pip install rdflib pandas
16
```
Lingfan Yu's avatar
Lingfan Yu committed
17
18
19
20

Example code was tested with rdflib 4.2.2 and pandas 0.23.4

### Entity Classification
Quan (Andy) Gan's avatar
Quan (Andy) Gan committed
21
AIFB: accuracy 96.29% (3 runs, DGL), 95.83% (paper)
Lingfan Yu's avatar
Lingfan Yu committed
22
```
Mufei Li's avatar
Mufei Li committed
23
python entity.py -d aifb --l2norm 0 --gpu 0
Lingfan Yu's avatar
Lingfan Yu committed
24
25
```

Mufei Li's avatar
Mufei Li committed
26
MUTAG: accuracy 72.55% (3 runs, DGL), 73.23% (paper)
Lingfan Yu's avatar
Lingfan Yu committed
27
```
Mufei Li's avatar
Mufei Li committed
28
python entity.py -d mutag --n-bases 30 --gpu 0
Lingfan Yu's avatar
Lingfan Yu committed
29
30
```

Mufei Li's avatar
Mufei Li committed
31
BGS: accuracy 89.70% (3 runs, DGL), 83.10% (paper)
Lingfan Yu's avatar
Lingfan Yu committed
32
```
Mufei Li's avatar
Mufei Li committed
33
python entity.py -d bgs --n-bases 40 --gpu 0
Lingfan Yu's avatar
Lingfan Yu committed
34
35
```

Mufei Li's avatar
Mufei Li committed
36
AM: accuracy 89.56% (3 runs, DGL), 89.29% (paper)
37
```
Mufei Li's avatar
Mufei Li committed
38
python entity.py -d am --n-bases 40 --n-hidden 10
39
40
```

41
42
### Entity Classification with minibatch

Mufei Li's avatar
Mufei Li committed
43
AIFB: accuracy avg(5 runs) 91.10%, best 97.22% (DGL)
44
```
Mufei Li's avatar
Mufei Li committed
45
python entity_sample.py -d aifb --l2norm 0 --gpu 0 --fanout='20,20' --batch-size 128
46
47
```

Mufei Li's avatar
Mufei Li committed
48
MUTAG: accuracy avg(10 runs) 66.47%, best 72.06% (DGL)
49
```
Mufei Li's avatar
Mufei Li committed
50
python entity_sample.py -d mutag --n-bases 30 --gpu 0 --batch-size 64 --fanout "-1, -1" --use-self-loop --n-epochs 20 --sparse-lr 0.01 --dropout 0.5
51
52
```

Mufei Li's avatar
Mufei Li committed
53
BGS: accuracy avg(5 runs) 84.83%, best 89.66% (DGL)
54
```
Mufei Li's avatar
Mufei Li committed
55
python entity_sample.py -d bgs --n-bases 40 --gpu 0 --fanout "-1, -1"  --n-epochs=16 --batch-size=16 --sparse-lr 0.05 --dropout 0.3
56
57
```

Mufei Li's avatar
Mufei Li committed
58
AM: accuracy avg(5 runs) 88.58%, best 89.90% (DGL)
59
```
Mufei Li's avatar
Mufei Li committed
60
python entity_sample.py -d am --n-bases 40 --gpu 0 --fanout '35,35' --batch-size 64 --n-hidden 16 --use-self-loop --n-epochs=20 --sparse-lr 0.02 --dropout 0.7
61
62
```

Mufei Li's avatar
Mufei Li committed
63
64
To use multiple GPUs, replace `entity_sample.py` with `entity_sample_multi_gpu.py` and specify
multiple GPU IDs separated by comma, e.g., `--gpu 0,1`.
65

Lingfan Yu's avatar
Lingfan Yu committed
66
### Link Prediction
Mufei Li's avatar
Mufei Li committed
67
FB15k-237: MRR 0.163 (DGL), 0.158 (paper)
Lingfan Yu's avatar
Lingfan Yu committed
68
```
Mufei Li's avatar
Mufei Li committed
69
python link.py --gpu 0 --eval-protocol raw
70
```
Mufei Li's avatar
Mufei Li committed
71
FB15k-237: Filtered-MRR 0.247
72
```
Mufei Li's avatar
Mufei Li committed
73
python link.py --gpu 0 --eval-protocol filtered
Lingfan Yu's avatar
Lingfan Yu committed
74
```