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