正文
- 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
- Message Passing Graph Kernels (2018)
- Giannis Nikolentzos, Michalis Vazirgiannis
- Paper:https://arxiv.org/pdf/1808.02510.pdf
- Python Reference:https://github.com/giannisnik/message_passing_graph_kernels
- Matching Node Embeddings for Graph Similarity (AAAI 2017)
- Giannis Nikolentzos, Polykarpos Meladianos, and Michalis Vazirgiannis
- Paper:https://aaai.org/ocs/index.php/AAAI/AAAI17/paper/view/14494
- Global Weisfeiler-Lehman Graph Kernels (2017)
- Christopher Morris, Kristian Kersting and Petra Mutzel
- Paper:https://arxiv.org/pdf/1703.02379.pdf
- C++ Reference:https://github.com/chrsmrrs/glocalwl
- On Valid Optimal Assignment Kernels and Applications to Graph Classification (2016)
- Nils Kriege, Pierre-Louis Giscard, Richard Wilson
- Paper:https://arxiv.org/pdf/1606.01141.pdf
- Java Reference:https://github.com/nlskrg/optimal_assignment_kernels
- Efficient Comparison of Massive Graphs Through The Use Of ‘Graph Fingerprints’ (MLGWorkshop 2016)
- Stephen Bonner, John Brennan, and A. Stephen McGough
- Paper:http://dro.dur.ac.uk/19773/1/19773.pdf?DDD10+lzdh59+d700tmt
- python Reference:https://github.com/sbonner0/GraphFingerprintComparison
- The Multiscale Laplacian Graph Kernel (NIPS 2016)
- Risi Kondor and Horace Pan
- Paper:https://arxiv.org/abs/1603.06186
- C++ Reference:https://github.com/horacepan/MLGkernel
- Faster Kernels for Graphs with Continuous Attributes (ICDM 2016)
- Christopher Morris, Nils M. Kriege, Kristian Kersting and Petra Mutzel
- Paper:https://arxiv.org/abs/1610.00064
- Python Reference:https://github.com/chrsmrrs/hashgraphkernel
- Propagation Kernels: Efficient Graph Kernels From Propagated Information (Machine Learning 2016)
- Neumann, Marion and Garnett, Roman and Bauckhage, Christian and Kersting, Kristian
- Paper:https://link.springer.com/article/10.1007/s10994-015-5517-9
- Matlab Reference:https://github.com/marionmari/propagation_kernels
- Halting Random Walk Kernels (NIPS 2015)
- Mahito Sugiyama and Karsten M. Borgward
- Paper:https://pdfs.semanticscholar.org/79ba/8bcfbf9496834fdc22a1f7c96d26d776cd6c.pdf
- C++ Reference:https://github.com/BorgwardtLab/graph-kernels
- Scalable Kernels for Graphs with Continuous Attributes (NIPS 2013)
- Aasa Feragen, Niklas Kasenburg, Jens Petersen, Marleen de Bruijne and Karsten Borgwardt
- Paper:https://papers.nips.cc/paper/5155-scalable-kernels-for-graphs-with-continuous-attributes.pdf
- Subgraph Matching Kernels for Attributed Graphs (ICML 2012)
- Nils Kriege and Petra Mutzel
- Paper:https://arxiv.org/abs/1206.6483
- Python Reference:https://github.com/mockingbird2/GraphKernelBenchmark
- Nested Subtree Hash Kernels for Large-Scale Graph Classification over Streams (ICDM 2012)
- Bin Li, Xingquan Zhu, Lianhua Chi, Chengqi Zhang
- Paper:https://ieeexplore.ieee.org/document/6413884/
- Python Reference:https://github.com/benedekrozemberczki/NestedSubtreeHash
- Weisfeiler-Lehman Graph Kernels (JMLR 2011)
- Nino Shervashidze, Pascal Schweitzer, Erik Jan van Leeuwen, Kurt Mehlhorn, and Karsten M. Borgwardt
- Paper:http://www.jmlr.org/papers/volume12/shervashidze11a/shervashidze11a.pdf
- Python Reference:https://github.com/jajupmochi/py-graph
- Python Reference:https://github.com/deeplego/wl-graph-kernels
- C++ Reference:https://github.com/BorgwardtLab/graph-kernels
- Fast Neighborhood Subgraph Pairwise Distance Kernel (ICML 2010)
- Fabrizio Costa and Kurt De Grave
- Paper:https://icml.cc/Conferences/2010/papers/347.pdf
- C++ Reference:https://github.com/benedekrozemberczki/awesome-graph-classification/blob/master/www.bioinf.uni-freiburg.de/~costa/EDeNcpp.tgz
- Python Reference:https://github.com/fabriziocosta/EDeN
- A Linear-time Graph Kernel (ICDM 2009)
- Shohei Hido and Hisashi Kashima
- Paper:https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=5360243
- Python Reference:https://github.com/hgascon/adagio
- Weisfeiler-Lehman Subtree Kernels (NIPS 2009)
- Nino Shervashidze, Pascal Schweitzer, Erik Jan van Leeuwen, Kurt Mehlhorn, and Karsten M. Borgwardt
- Paper:http://papers.nips.cc/paper/3813-fast-subtree-kernels-on-graphs.pdf
- Python Reference:https://github.com/jajupmochi/py-graph
- Python Reference:https://github.com/deeplego/wl-graph-kernels
- C++ Reference:https://github.com/BorgwardtLab/graph-kernels
- Fast Computation of Graph Kernels (NIPS 2006)
- S. V. N. Vishwanathan, Karsten M. Borgwardt, and Nicol N. Schraudolph
- Paper:http://www.dbs.ifi.lmu.de/Publikationen/Papers/VisBorSch06.pdf
- Python Reference:https://github.com/jajupmochi/py-graph
- C++ Reference:https://github.com/BorgwardtLab/graph-kernels
- Shortest-Path Kernels on Graphs (ICDM 2005)
- Karsten M. Borgwardt and Hans-Peter Kriegel
- Paper:https://www.ethz.ch/content/dam/ethz/special-interest/bsse/borgwardt-lab/documents/papers/BorKri05.pdf
- C++ Reference:https://github.com/KitwareMedical/ITKTubeTK
- Cyclic Pattern Kernels For Predictive Graph Mining (KDD 2004)
- Tamás Horváth, Thomas Gärtner, and Stefan Wrobel
- Paper:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.332.6158&rep=rep1&type=pdf
- Python Reference:https://github.com/jajupmochi/py-graph
- Extensions of Marginalized Graph Kernels (ICML 2004)
- Pierre Mahe, Nobuhisa Ueda, Tatsuya Akutsu, Jean-Luc Perret, and Jean-Philippe Vert
- Paper:http://members.cbio.mines-paristech.fr/~jvert/publi/04icml/icmlMod.pdf
- Python Reference:https://github.com/jajupmochi/py-graph
- Marginalized Kernels Between Labeled Graphs (ICML 2003)
- Hisashi Kashima, Koji Tsuda, and Akihiro Inokuchi
- Paper:https://pdfs.semanticscholar.org/2dfd/92c808487049ab4c9b45db77e9055b9da5a2.pdf
- Python Reference:https://github.com/jajupmochi/py-graph
不同时期的图建模
其实,我们可以将图建模分为图神经网络与传统的图模型。其中以前的图建模主要借助 Graph Embedding 为不同的节点学习低维向量表征,这借鉴了 NLP 中词嵌入的思想。而图神经网络借助深度学习进行更强大的图运算与图表征。
Graph Embedding 算法聚焦在如何对网络节点进行低维向量表示,相似的节点在表征空间中更加接近。相比之下,GNN 最大的优势在于它不只可以对一个节点进行语义表示。
例如 GNN 可以表示子图的语义信息,将网络中一小部分节点构成的语义表示出来,这是以前 Graph Embedding 不容易做到的。GNN 还可以在整个图网络上进行信息传播、聚合等建模,也就是说它可以把图网络当成一个整体进行建模。此外,GNN 对单个节点的表示也可以做得更好,因为它可以更好地建模周围节点丰富信息。
在传统图建模中,随机游走、最短路径等图方法会利用符号知识,但这些方法并没有办法很好地利用每个节点的语义信息。而深度学习技术更擅长处理非结构文本、图像等数据。简言之,我们可以将 GNN 看做将深度学习技术应用到符号表示的图数据上,或者说是从非结构化数据扩展到了结构化数据。GNN 能够充分融合符号表示和低维向量表示,发挥两者优势。
图建模论文与代码
在 的一项开源工作中,开发者收集了图建模相关的论文与实现,并且从经典的 Graph Embedding、Graph Kernel 到图神经网络都有涉及。它们在图嵌入、图分类、图表征等领域都是非常重要的论文。
项目地址:benedekrozemberczki/awesome-graph-classification
该项目主要收集的论文领域如下所示:
1. Factorization
2. Spectral and Statistical Fingerprints
3. Graph Neural Network
4. 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:nphdang/GE-FSG
· Anonymous Walk Embeddings (ICML 2018)
· Sergey Ivanov and Evgeny Burnaev
· Paper:https://arxiv.org/pdf/1805.11921.pdf
· Python: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:benedekrozemberczki/graph2vec
· Python Reference: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:MLDroid/subgraph2vec_gensim
· Python Reference: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: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:pankajk/Deep-Graph-Kernels
Spectral and Statistical Fingerprints
· A Simple Yet Effective Baseline for Non-Attribute Graph Classification (ICLR RLPM 2019)
· Chen Cai, Yusu Wang
· Paper:https://arxiv.org/abs/1811.03508
· Python Reference:Chen-Cai-OSU/LDP
· NetLSD (KDD 2018)
· Anton Tsitsulin, Davide Mottin, Panagiotis Karras, Alex Bronstein, and Emmanuel Müller
· Paper:https://arxiv.org/abs/1805.10712
· Python Reference: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:edouardpineau/A-simple-baseline-algorithm-for-graph-classification
· Multi-Graph Multi-Label Learning Based on Entropy (Entropy NIPS 2018)