Dev ssl graphcl
Overview
Add module autogl.module.train.ssl, which will contains many trainers to do self-supervised task. Now, it only have one trainer using GraphCL and do the semi-supervised downstream tasks. And a unit test is added to ensure the correctness of the codes and we have run some datasets to evaluate the codes. Only support pyg now, and only ensure the correctness of the trainer itself, whether the joint use with solver is correct or not remains to be proved.
Add Files
- init.py
- base.py: Base class of self supervised trainer, which will do some initialized work such as init the encoder and the decoder.
- graphcl_semisupervised_trainer.py: An autogl trainer using GraphCL with semi-supervised downstream tasks. Some code was reconstruction from DIG
- utils.py: Tool classes or tool functions that may be used in ssl module.
Evaluation
We have run two datasets NCI1 and Proteins to prove the correctness of the method preliminarily but we don't do too much hyper parameters adjustments. The results are shown below and it almost reach the origin paper:
| Dataset | Origin Paper | Autogl Encoder | Autogl ResGCN |
|---|---|---|---|
| NCI1%1 | 74.63 | 65.78 | 72.54 |
| NCI1%10 | 62.55 | 56.13 | 60.10 |
| Protein%10 | 74.17 | 74.45 | 64.57 |
Autogl Encoder means the encoder and the decoder uses the model implemented in autogl. And Autogl ResGCN means that the GCN with residuals and simple linear layer not yet implemented by autogl are used as encoder and decoder.