Giter Site home page Giter Site logo

victorzxy / graphac Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hannesstark/3dinfomax

1.0 0.0 0.0 159.44 MB

GraphAC (Graph Adversarial Collaboration) – a novel, principled, task-agnostic, and stable framework for evaluating GNNs through contrastive self-supervision, without the need of handcrafted augmentations

License: MIT License

Python 100.00%
deep-learning dgl graph-neural-networks machine-learning pytorch pytorch-geometric self-supervised-learning

graphac's Introduction

Task-Agnostic Graph Neural Network Evaluation via Adversarial Collaboration

Paper | Dissertation

Abstract

It has been increasingly demanding to develop reliable Graph Neural Network (GNN) evaluation methods to quantify the progress of the rapidly expanding GNN research. Existing GNN benchmarking methods focus on comparing the GNNs with respect to their performances on some node/graph classification/regression tasks in certain datasets. There lacks a principled, task-agnostic method to directly compare two GNNs. Moreover, most of the existing graph self-supervised learning (SSL) works incorporate handcrafted augmentations to the graph, which has several severe difficulties due to the unique characteristics of graph-structured data. To address the aforementioned issues, we propose GraphAC (Graph Adversarial Collaboration) – a conceptually novel, principled, task-agnostic, and stable framework for evaluating GNNs through contrastive self-supervision. GraphAC succeeds in distinguishing GNNs of different expressiveness across various aspects, and has been proven to be a principled and reliable GNN evaluation method, eliminating the need for handcrafted augmentations for stable SSL.

How to run

Step 1: Setup Environment

Please set up the environment using Conda. Clone the current repository:

git clone https://github.com/VictorZXY/GraphAC

Create a new environment with all required packages using environment.yml (this can take a while). While in the project directory run:

conda env create -f environment.yml

Activate the environment:

conda activate GraphAC

Step 2: Train the GraphAC Framework

A number of configuration files have been preset in configs/model_ranking. For example:

python train.py --config=configs/model_ranking/hidden_dim/pna_hidden_dim_256vs128.yml

During pre-training a directory is created in the runs directory that contains the logs and the trained models. You can start TensorBoard and navigate to localhost:6006 in your browser to monitor the training process:

tensorboard --logdir=runs --port=6006

Cite this project

@article{Zhao2023GraphAC,
    title={Task-Agnostic Graph Neural Network Evaluation via Adversarial Collaboration},
    author={Xiangyu Zhao and 
        Hannes St{\"a}rk and 
        Dominique Beaini and 
        Pietro Li{\`o} and 
        Yiren Zhao},
    journal={arXiv preprint arXiv:2301.11517},
    year={2023}
}

graphac's People

Contributors

hannesstark avatar victorzxy avatar

Stargazers

Jeff Carpenter avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.