本文
约
2300字
,建议阅读
5分钟
。
这篇文章将介绍你需要的图建模论文,当然它们都有配套实现的。
图是一种非常神奇的表示方式,生活中绝大多数的现象或情境都能用图来表示,例如人际关系网、道路交通网、信息互联网等等。正如马哲介绍事物具有普遍联系性,而图正好能捕捉这种联系,所以用它来描述这个世界是再好不过的方法。
但图这种结构化数据有个麻烦的地方,我们先要有图才能进行后续的计算。但图的搭建并不简单,目前也没有比较好的自动化方法,所以第一步还是需要挺多功夫的。只要各节点及边都确定了,那么图就是一种非常强大且复杂的工具,模型也能推断出图中的各种隐藏知识。
不同时期的图建模
其实,我们可以将图建模分为图神经网络与传统的图模型。其中以前的图建模主要借助 Graph Embedding 为不同的节点学习低维向量表征,这借鉴了 NLP 中词嵌入的思想。而图神经网络借助深度学习进行更强大的图运算与图表征。
Graph Embedding 算法聚焦在如何对网络节点进行低维向量表示,相似的节点在表征空间中更加接近。相比之下,GNN 最大的优势在于它不只可以对一个节点进行语义表示。
例如 GNN 可以表示子图的语义信息,将网络中一小部分节点构成的语义表示出来,这是以前 Graph Embedding 不容易做到的。GNN 还可以在整个图网络上进行信息传播、聚合等建模,也就是说它可以把图网络当成一个整体进行建模。此外,GNN 对单个节点的表示也可以做得更好,因为它可以更好地建模周围节点丰富信息。
在传统图建模中,随机游走、最短路径等图方法会利用符号知识,但这些方法并没有办法很好地利用每个节点的语义信息。而深度学习技术更擅长处理非结构文本、图像等数据。简言之,我们可以将 GNN 看做将深度学习技术应用到符号表示的图数据上,或者说是从非结构化数据扩展到了结构化数据。GNN 能够充分融合符号表示和低维向量表示,发挥两者优势。
图建模论文与代码
在 GitHub 的一项开源工作中,开发者收集了图建模相关的论文与实现,并且从经典的 Graph Embedding、Graph Kernel 到图神经网络都有涉及。它们在图嵌入、图分类、图表征等领域都是非常重要的论文。
项目地址:
https://github.com/benedekrozemberczki/awesome-graph-classification
该项目主要收集的论文领域如下所示:
-
Factorization
-
Spectral and Statistical Fingerprints
-
Graph Neural Network
-
Graph Kernels
因式分解法
-
Learning Graph Representation via Frequent Subgraphs (SDM 2018)
-
Dang Nguyen, Wei Luo, Tu Dinh Nguyen, Svetha Venkatesh, Dinh Phung
-
Paper:
https://epubs.siam.org/doi/10.1137/1.9781611975321.35
-
Python:
https://github.com/nphdang/GE-FSG
-
Anonymous Walk Embeddings (ICML 2018)
-
Sergey Ivanov and Evgeny Burnaev
-
Paper:
https://arxiv.org/pdf/1805.11921.pdf
-
Python:
https://github.com/nd7141/AWE
-
Graph2vec (MLGWorkshop 2017)
-
Annamalai Narayanan, Mahinthan Chandramohan, Lihui Chen, Yang Liu, and Santhoshkumar Saminathan
-
Paper:
https://arxiv.org/abs/1707.05005
-
Python High Performance:
https://github.com/benedekrozemberczki/graph2vec
-
Python Reference:
https://github.com/MLDroid/graph2vec_tf
-
Subgraph2vec (MLGWorkshop 2016)
-
Annamalai Narayanan, Mahinthan Chandramohan, Lihui Chen, Yang Liu, and Santhoshkumar Saminathan
-
Paper:
https://arxiv.org/abs/1606.08928
-
Python High Performance:
https://github.com/MLDroid/subgraph2vec_gensim
-
Python Reference:
https://github.com/MLDroid/subgraph2vec_tf
-
Rdf2Vec: RDF Graph Embeddings for Data Mining (ISWC 2016)
-
Petar Ristoski and Heiko Paulheim
-
Paper:
https://link.springer.com/chapter/10.1007/978-3-319-46523-4_30
-
Python Reference:
https://github.com/airobert/RDF2VecAtWebScale
-
Deep Graph Kernels (KDD 2015)
-
Pinar Yanardag and S.V.N. Vishwanathan
-
Paper:
https://dl.acm.org/citation.cfm?id=2783417
-
Python Reference:
https://github.com/pankajk/Deep-Graph-Kernels
Spectral and Statistical Fingerprints
-
A Simple Yet Effective Baseline for Non-Attribute Graph Classification (ICLR RLPM 2019)
-
NetLSD (KDD 2018)
-
Anton Tsitsulin, Davide Mottin, Panagiotis Karras, Alex Bronstein, and Emmanuel Müller
-
Paper:
https://arxiv.org/abs/1805.10712
-
Python Reference:
https://github.com/xgfs/NetLSD
-
A Simple Baseline Algorithm for Graph Classification (Relational Representation Learning, NIPS 2018)
-
Nathan de Lara and Edouard Pineau
-
Paper:
https://arxiv.org/pdf/1810.09155.pdf
-
Python Reference:
https://github.com/edouardpineau/A-simple-baseline-algorithm-for-graph-classification
-
Multi-Graph Multi-Label Learning Based on Entropy (Entropy NIPS 2018)
-
Zixuan Zhu and Yuhai Zhao
-
Paper:
https://github.com/TonyZZX/MultiGraph_MultiLabel_Learning/blob/master/entropy-20-00245.pdf
-
Python Reference:
https://github.com/TonyZZX/MultiGraph_MultiLabel_Learning
-
Hunt For The Unique, Stable, Sparse And Fast Feature Learning On Graphs (NIPS 2017)
-
Saurabh Verma and Zhi-Li Zhang
-
Paper:
https://papers.nips.cc/paper/6614-hunt-for-the-unique-stable-sparse-and-fast-feature-learning-on-graphs.pdf
-
Python Reference:
https://github.com/vermaMachineLearning/FGSD
-
Joint Structure Feature Exploration and Regularization for Multi-Task Graph Classification (TKDE 2015)
-
Shirui Pan, Jia Wu, Xingquan Zhuy, Chengqi Zhang, and Philip S. Yuz
-
Paper:
https://ieeexplore.ieee.org/document/7302040
-
Java Reference:
https://github.com/shiruipan/MTG
-
NetSimile: A Scalable Approach to Size-Independent Network Similarity (arXiv 2012)
-
Michele Berlingerio, Danai Koutra, Tina Eliassi-Rad, and Christos Faloutsos
-
Paper:
https://arxiv.org/abs/1209.2684
-
Python:
https://github.com/kristyspatel/Netsimile
图神经网络
-
Self-Attention Graph Pooling (ICML 2019)
-
Junhyun Lee, Inyeop Lee, Jaewoo Kang
-
Paper:
https://arxiv.org/abs/1904.08082
-
Python Reference:
https://github.com/inyeoplee77/SAGPool
-
Variational Recurrent Neural Networks for Graph Classification (ICLR 2019)
-
Edouard Pineau, Nathan de Lara
-
Paper:
https://arxiv.org/abs/1902.02721
-
Python Reference:
https://github.com/edouardpineau/Variational-Recurrent-Neural-Networks-for-Graph-Classification
-
Crystal Graph Neural Networks for Data Mining in Materials Science (Arxiv 2019)
-
Explainability Techniques for Graph Convolutional Networks (ICML 2019)
-
Federico Baldassarre, Hossein Azizpour
-
Paper:
https://128.84.21.199/pdf/1905.13686.pdf
-
Python Reference:
https://github.com/gn-exp/gn-exp
-
Semi-Supervised Graph Classification: A Hierarchical Graph Perspective (WWW 2019)
-
Jia Li, Yu Rong, Hong Cheng, Helen Meng, Wenbing Huang, and Junzhou Huang
-
Paper:
https://arxiv.org/pdf/1904.05003.pdf
-
Python Reference:
https://github.com/benedekrozemberczki/SEAL-CI
-
Capsule Graph Neural Network (ICLR 2019)
-
Zhang Xinyi and Lihui Chen
-
Paper:
https://openreview.net/forum?id=Byl8BnRcYm
-
Python Reference:
https://github.com/benedekrozemberczki/CapsGNN
-
How Powerful are Graph Neural Networks? (ICLR 2019)
-
Keyulu Xu, Weihua Hu, Jure Leskovec, Stefanie Jegelka
-
Paper:
https://arxiv.org/abs/1810.00826
-
Python Reference:
https://github.com/weihua916/powerful-gnns
-
Weisfeiler and Leman Go Neural: Higher-order Graph Neural Networks (AAAI 2019)
-
Christopher Morris, Martin Ritzert, Matthias Fey, William L. Hamilton, Jan Eric Lenssen, Gaurav Rattan, and Martin Grohe
-
Paper:
https://arxiv.org/pdf/1810.02244v2.pdf
-
Python Reference:
https://github.com/k-gnn/k-gnn
-
Capsule Neural Networks for Graph Classification using Explicit Tensorial Graph Representations (Arxiv 2019)
-
Marcelo Daniel Gutierrez Mallea, Peter Meltzer, and Peter J Bentley
-
Paper:
https://arxiv.org/pdf/1902.08399v1.pdf
-
Python Reference:
https://github.com/BraintreeLtd/PatchyCapsules
-
Three-Dimensionally Embedded Graph Convolutional Network for Molecule Interpretation (Arxiv 2018)
-
Hyeoncheol Cho and Insung. S. Choi
-
Paper:
https://arxiv.org/abs/1811.09794
-
Python Reference:
https://github.com/blackmints/3DGCN
-
Learning Graph-Level Representations with Recurrent Neural Networks (Arxiv 2018)
-
Yu Jin and Joseph F. JaJa
-
Paper:
https://arxiv.org/pdf/1805.07683v4.pdf
-
Python Reference:
https://github.com/yuj-umd/graphRNN
-
Graph Capsule Convolutional Neural Networks (ICML 2018)
-
Saurabh Verma and Zhi-Li Zhang
-
Paper:
https://arxiv.org/abs/1805.08090
-
Python Reference:
https://github.com/vermaMachineLearning/Graph-Capsule-CNN-Networks
-
Graph Classification Using Structural Attention (KDD 2018)
-
John Boaz Lee, Ryan Rossi, and Xiangnan Kong
-
Paper:
http://ryanrossi.com/pubs/KDD18-graph-attention-model.pdf
-
Python Pytorch Reference:
https://github.com/benedekrozemberczki/GAM
-
Graph Convolutional Policy Network for Goal-Directed Molecular Graph Generation (NIPS 2018)
-
Jiaxuan You, Bowen Liu, Rex Ying, Vijay Pande, and Jure Leskovec
-
Paper:
https://arxiv.org/abs/1806.02473
-
Python Reference:
https://github.com/bowenliu16/rl_graph_generation
-
Hierarchical Graph Representation Learning with Differentiable Pooling (NIPS 2018)
-
Zhitao Ying, Jiaxuan You, Christopher Morris, Xiang Ren, Will Hamilton and Jure Leskovec
-
Paper:
http://papers.nips.cc/paper/7729-hierarchical-graph-representation-learning-with-differentiable-pooling.pdf
-
Python Reference:
https://github.com/rusty1s/pytorch_geometric
-
Contextual Graph Markov Model: A Deep and Generative Approach to Graph Processing (ICML 2018)
-
Davide Bacciu, Federico Errica, and Alessio Micheli
-
Paper:
https://arxiv.org/pdf/1805.10636.pdf
-
Python Reference:
https://github.com/diningphil/CGMM
-
MolGAN: An Implicit Generative Model for Small Molecular Graphs (ICML 2018)
-
Nicola De Cao and Thomas Kipf
-
Paper:
https://arxiv.org/pdf/1805.11973.pdf
-
Python Reference:
https://github.com/nicola-decao/MolGAN
-
Deeply Learning Molecular Structure-Property Relationships Using Graph Attention Neural Network (2018)
-
Seongok Ryu, Jaechang Lim, and Woo Youn Kim
-
Paper:
https://arxiv.org/abs/1805.10988
-
Python Reference:
https://github.com/SeongokRyu/Molecular-GAT
-
Compound-protein Interaction Prediction with End-to-end Learning of Neural Networks for Graphs and Sequences (Bioinformatics 2018)
-
Masashi Tsubaki, Kentaro Tomii, and Jun Sese
-
Paper:
https://academic.oup.com/bioinformatics/article/35/2/309/5050020
-
Python Reference:
https://github.com/masashitsubaki/CPI_prediction
-
Python Reference:
https://github.com/masashitsubaki/GNN_molecules
-
Python Alternative:
https://github.com/xnuohz/GCNDTI
-
Learning Graph Distances with Message Passing Neural Networks (ICPR 2018)
-
Pau Riba, Andreas Fischer, Josep Llados, and Alicia Fornes
-
Paper:
https://ieeexplore.ieee.org/abstract/document/8545310
-
Python Reference:
https://github.com/priba/siamese_ged
-
Edge Attention-based Multi-Relational Graph Convolutional Networks (2018)
-
Chao Shang, Qinqing Liu, Ko-Shin Chen, Jiangwen Sun, Jin Lu, Jinfeng Yi and Jinbo Bi
-
Paper:
https://arxiv.org/abs/1802.04944v1
-
Python Reference:
https://github.com/Luckick/EAGCN
-
Commonsense Knowledge Aware Conversation Generation with Graph Attention (IJCAI-ECAI 2018)
-
Hao Zhou, Tom Yang, Minlie Huang, Haizhou Zhao, Jingfang Xu and Xiaoyan Zhu
-
Paper:
http://coai.cs.tsinghua.edu.cn/hml/media/files/2018_commonsense_ZhouHao_3_TYVQ7Iq.pdf
-
Python Reference:
https://github.com/tuxchow/ccm
-
Residual Gated Graph ConvNets (ICLR 2018)
-
Xavier Bresson and Thomas Laurent
-
Paper:
https://arxiv.org/pdf/1711.07553v2.pdf
-
Python Pytorch Reference:
https://github.com/xbresson/spatial_graph_convnets
-
An End-to-End Deep Learning Architecture for Graph Classification (AAAI 2018)
-
Muhan Zhang, Zhicheng Cui, Marion Neumann and Yixin Chen
-
Paper:
https://www.cse.wustl.edu/~muhan/papers/AAAI_2018_DGCNN.pdf
-
Python Tensorflow Reference:
https://github.com/muhanzhang/DGCNN
-
Python Pytorch Reference:
https://github.com/muhanzhang/pytorch_DGCNN
-
MATLAB Reference:
https://github.com/muhanzhang/DGCNN
-
Python Alternative:
https://github.com/leftthomas/DGCNN
-
Python Alternative:
https://github.com/hitlic/DGCNN-tensorflow
-
SGR: Self-Supervised Spectral Graph Representation Learning (KDD DLDay 2018)
-
Anton Tsitsulin, Davide Mottin, Panagiotis Karra, Alex Bronstein and Emmanueal Müller
-
Paper:
https://arxiv.org/abs/1807.02839
-
Python Reference:
http://mott.in/publications/others/sgr/
-
Deep Learning with Topological Signatures (NIPS 2017)
-
Christoph Hofer, Roland Kwitt, Marc Niethammer, and Andreas Uhl
-
paper:
https://arxiv.org/abs/1707.04041
-
Python Reference:
https://github.com/c-hofer/nips2017
-
Dynamic Edge-Conditioned Filters in Convolutional Neural Networks on Graphs (CVPR 2017)
-
Martin Simonovsky and Nikos Komodakis
-
paper:
https://arxiv.org/pdf/1704.02901v3.pdf
-
Python Reference:
https://github.com/mys007/ecc
-
Deriving Neural Architectures from Sequence and Graph Kernels (ICML 2017)
-
Tao Lei, Wengong Jin, Regina Barzilay, and Tommi Jaakkola
-
Paper:
https://arxiv.org/abs/1705.09037
-
Python Reference:
https://github.com/taolei87/icml17_knn
-
Protein Interface Prediction using Graph Convolutional Networks (NIPS 2017)
-
Alex Fout, Jonathon Byrd, Basir Shariat and Asa Ben-Hur
-
Paper:
https://papers.nips.cc/paper/7231-protein-interface-prediction-using-graph-convolutional-networks
-
Python Reference:
https://github.com/fouticus/pipgcn
-
Graph Classification with 2D Convolutional Neural Networks (2017)
-
Antoine J.-P. Tixier, Giannis Nikolentzos, Polykarpos Meladianos and Michalis Vazirgiannis
-
Paper:
https://arxiv.org/abs/1708.02218
-
Python Reference:
https://github.com/Tixierae/graph_2D_CNN
-
CayleyNets: Graph Convolutional Neural Networks with Complex Rational Spectral Filters (IEEE TSP 2017)
-
Ron Levie, Federico Monti, Xavier Bresson, Michael M. Bronstein
-
Paper:
https://arxiv.org/pdf/1705.07664v2.pdf
-
Python Reference:
https://github.com/fmonti/CayleyNet
-
Semi-supervised Learning of Hierarchical Representations of Molecules Using Neural Message Passing (2017)
-
Hai Nguyen, Shin-ichi Maeda, Kenta Oono
-
Paper:
https://arxiv.org/pdf/1711.10168.pdf
-
Python Reference:
https://github.com/pfnet-research/hierarchical-molecular-learning
-
Kernel Graph Convolutional Neural Networks (2017)
-
Giannis Nikolentzos, Polykarpos Meladianos, Antoine Jean-Pierre Tixier, Konstantinos Skianis, Michalis Vazirgiannis
-
Paper:
https://arxiv.org/pdf/1710.10689.pdf
-
Python Reference:
https://github.com/giannisnik/cnn-graph-classification
-
Deep Topology Classification: A New Approach For Massive Graph Classification (IEEE Big Data 2016)
-
Stephen Bonner, John Brennan, Georgios Theodoropoulos, Ibad Kureshi, Andrew Stephen McGough
-
Paper:
https://ieeexplore.ieee.org/document/7840988/
-
Python Reference:
https://github.com/sbonner0/DeepTopologyClassification
-
Learning Convolutional Neural Networks for Graphs (ICML 2016)
-
Mathias Niepert, Mohamed Ahmed, Konstantin Kutzkov
-
Paper:
https://arxiv.org/abs/1605.05273
-
Python Reference:
https://github.com/tvayer/PSCN
-
Gated Graph Sequence Neural Networks (ICLR 2016)
-
Yujia Li, Daniel Tarlow, Marc Brockschmidt, Richard Zemel
-
Paper:
https://arxiv.org/abs/1511.05493
-
Python TensorFlow:
https://github.com/bdqnghi/ggnn.tensorflow
-
Python PyTorch:
https://github.com/JamesChuanggg/ggnn.pytorch
-
Python Reference:
https://github.com/YunjaeChoi/ggnnmols
-
Convolutional Networks on Graphs for Learning Molecular Fingerprints (NIPS 2015)
-
David Duvenaud, Dougal Maclaurin, Jorge Aguilera-Iparraguirre, Rafael Gómez-Bombarelli, Timothy Hirzel, Alán Aspuru-Guzik, and Ryan P. Adams
-
Paper:
https://papers.nips.cc/paper/5954-convolutional-networks-on-graphs-for-learning-molecular-fingerprints.pdf
-
Python Reference:
https://github.com/fllinares/neural_fingerprints_tf
-
Python Reference:
https://github.com/jacklin18/neural-fingerprint-in-GNN
-
Python Reference:
https://github.com/HIPS/neural-fingerprint
-
Python Reference:
https://github.com/debbiemarkslab/neural-fingerprint-theano
Graph Kernels