/DGL-Tutorial

This Repository includes DGL tutorials and various information related to graph neural networks.

Primary LanguageJupyter Notebook

DGL 튜토리얼

Deep Graph Library(DGL)을 공부 목적으로 정리하고 있습니다. DGL-tutorial을 통해 그래프를 처음 접하시는 분들도 쉽게 작성할 수 있도록 도움을 주고자 Pytorch기반으로 작성하였습니다. DGL 공식 문서, KDD20, WWW20 그리고 WSDM21을 참고하였습니다. 공식 문서 내에 활용가능한 모델은 공식 문서 및 제안한 논문을 기반으로 작성했습니다.

Outline

  1. Install DGL
  2. Basic Tasks
  3. CS224W
  4. Conference Paper
  5. Conference Slide
  6. Models

Install DGL

Docker setting

1.clone this repository

git clone https://github.com/ceo21ckim/DGL.git
cd DGL

2.build Dockerfile

docker build --tag [filename]:1.0 .

Dockerfile을 build해서 사용하고 싶은 경우 원하는 filename을 지정하면 됩니다. 현재 위치에 Dockerfile을 같이 두고, 위 명령어를 입력하는 경우 build할 수 있습니다. Dockerfilepytorch/pytorch:1.10.0-cuda11.3-cudnn8-runtime를 내려받아 사용하였습니다. pytorch version과 cuda version이 다른 경우에는 본인의 환경과 맞게 설정하시면 됩니다. 아래의 환경 세팅은 image name을 dgl_tutorial:1.0으로 설정했습니다.

3.execute

# Docker version 2.0 or later.
docker run -itd --runtime=nvidia --name dgl_tuto -p 8888:8888 -v C:\Users\Name\:/workspace dgl_tutorial:1.0 /bin/bash
# Docker-ce 19.03 or later
docker run -itd --gpus all --name dgl_tuto -p 8888:8888 -v C:\Users\Name\:/workspace dgl_tutorial:1.0 /bin/bash

도커의 버전이 19.03이거나 이후 버전인 경우에는 NVIDIA를 따로 설치하지 않고 --gpus all만 사용하더라도 GPU 사용이 가능합니다. pytorch의 경우 작업 환경을 /workspace로 설정하기 때문에 동일하게 /workspace로 지정해주었습니다. port 연결을 통해 localhost에서도 접속이 가능합니다. https://localhost:8888

4.use jupyter notebook

docker exec -it dgl_tuto bash

jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root

port는 처음 실행할 때 연결한 port를 지정하시면 됩니다.

Basic Tasks

Models

Name Title Paper Link Code Link
DGCN Diffusion-convolutional neural networks (NeurIPS'16) paper
ChebNet Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering (NeurIPS'16) paper -
GCN Semi-supervised Classification with Graph Convolutional Networks (ICLR'17) paper -
VGAE Variational Graph Auto-Encoders paper -
R-GCN Modeling Relational Data with Graph Convolutional Networks (ESWC'17) paper -
MPNN Neural Message Passing for Quantum Chemistry (PMLR'17) paper -
GraphSAGE Inductive Representation Learning on Large Graphs (NeurIPS'17) paper -
GAT Graph Attention Networks (ICLR'18) paper -
GCMC Graph Convolutional Matrix Completion (KDD'18) paper -
SEAL Link Prediction Based on Graph Neural Networks (NeurIPS'18) paper -
JK-Net Representation Learning on Graphs with Jumping Knowledge Networks paper -
LGCN Large-Scale Learnable Graph Convolutional Networks (KDD'18) paper -
GraphRec Graph Neural Network for social Networks (WWW'19) paper -
SGC Simplifying Graph Convolutional Networks (PMLR'19) paper -
HAN Heterogenous Graph Attention Networks (WWW'19) paper -
APPNP Predict then Propagate: Graph Neural Networks meet Personalized PageRank (ICLR'19) paper -
DGC Diffusion Improves Graph Learning (NeurIPS'19) paper -
GNNExplainer GNNExplainer: Generating Explanations for Graph Neural Networks (NeurIPS'19) paper -
DeepGCNs Can GCNs Go as Deep as CNNs? (ICCV'19) paper -
KGCN Knowledge Graph Convolutional Networks for Recommender (WWW'19) paper -
NDLS Node Dependent Local Smoothing for Scalable Graph Learning (NeurIPS'21) paper -
GemNet Universal Directional Graph Neural Networks for Molecules (NeurIPS'21) paper -
AIR Model Degradation Hinders Deep Graph Neural Networks (KDD'22) paper -
TokenGT Pure Transformers are Powerful Graph Learners (NeurIPS'22) paper -
PatchGT PatchGT: Transformer over Non-trainable Clusters for Learning Graph Representations (LoG'22) paper code
Graphair Learning Fair Graph Representations via Automated Data Augmentations (ICLR'23) paper -

Recommender Systems

Name Paper Link
Representing and Recommending Shopping Baskets with Complementarity, Compatibility and Loyalty (CIKM'18) paper
NGCF: Neural Graph Collaborative Filtering (SIGIR'19) paper
Graph Convolutional Network for Recommendation with Low-pass Collaborative Filters (ICML'20) paper
LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation (SIGIR'20) paper
MixGCF: An Improved Training Method for Graph Neural Network-based Recommender Systems (KDD'21) paper
UltraGCN: Ultra Simplification of Graph Convolutional Networks for Recommendation (CIKM'21) paper
Self-supervised Learning for Large-scale Item Recommendations (CIKM'21) paper
BUIR: Bootstrapping User and Item Representations for One-Class Collaborative Filtering (SIGIR’21) paper
SGL: Self-supervised Graph Learning for Recommendation (SIGIR'21) paper
Are Graph Augmentations Necessary?: Simple Graph Contrastive Learning for Recommendation (SIGIR'22) paper

Others

Name Paper Link
A New Models for Learning in Graph Domains (IJCNN'05) paper
Disinformation on the Web: Impact, Characteristics, and Detection of Wikipedia Hoaxes (WWW'16) paper
Deeper insights into graph convolutional networks for semi-supervised learning (AAAI'18) paper
Directional Message Passing for Molecular Graphs (ICLR'20) paper
Model Degradation Hinders Deep Graph Neural Networks (KDD'22) paper

Survey

Name Paper Link
Graph Embedding Techniques, Applications, and Performance: A Survey (2017) paper
A Survey on Influence Maximization in a Social Network (2018) paper
Random Graph Modeling: A Survey of the Concepts (2019) paper
A Comprehensive Survey on Graph Neural Networks (2019) paper
Graph Neural Networks in Recommender Systems: A Survey (ACM, 2022) paper

Embedding

Name Paper Link
DeepWalk: online learning of social representations (KDD'14) paper
LINE: Large-scale Information Network Embedding (WWW'15) paper
Convolutional Networks on Graphs for Learning Molecular Fingerprints (NeurIPS'15) paper
Gated Graph Sequence Neural Networks (ICLR'16) paper
Node2Vec: Scalable Feature Learning for Networks (KDD'16) paper
metapath2vec: Scalable Representation Learning for Heterogeneous Networks (KDD'17) paper
struc2vec: Learning Node Representations from Structural Identity (KDD'17) paper
HARP: Hierarchical Representation Learning for Networks (AAAI'18) paper
Watch Your Step: Learning Node Embedding via Graph Attention (NeurIPS'18) paper
Anonymous Walk Embeddings (ICML'18) paper