Graph neural network

A graph neural network (GNN) belongs to a class of artificial neural networks for processing data that can be represented as graphs.[1][2][3][4][5]

Basic building blocks of a graph neural network (GNN). Permutation equivariant layer. Local pooling layer. Global pooling (or readout) layer. Colors indicate features.

In the more general subject of "geometric deep learning", certain existing neural network architectures can be interpreted as GNNs operating on suitably defined graphs.[6] A convolutional neural network layer, in the context of computer vision, can be considered a GNN applied to graphs whose nodes are pixels and only adjacent pixels are connected by edges in the graph. A transformer layer, in natural language processing, can be considered a GNN applied to complete graphs whose nodes are words or tokens in a passage of natural language text.

The key design element of GNNs is the use of pairwise message passing, such that graph nodes iteratively update their representations by exchanging information with their neighbors. Several GNN architectures have been proposed,[2][3][7][8][9] which implement different flavors of message passing,[6][10] started by recursive[2] or convolutional constructive[3] approaches. As of 2022, it is an open question whether it is possible to define GNN architectures "going beyond" message passing, or instead every GNN can be built on message passing over suitably defined graphs.[11]

Relevant application domains for GNNs include natural language processing,[12] social networks,[13] citation networks,[14] molecular biology,[15] chemistry,[16][17] physics[18] and NP-hard combinatorial optimization problems.[19]

Open source libraries implementing GNNs include PyTorch Geometric[20] (PyTorch), TensorFlow GNN[21] (TensorFlow), Deep Graph Library[22] (framework agnostic), jraph[23] (Google JAX), and GraphNeuralNetworks.jl[24]/GeometricFlux.jl[25] (Julia, Flux).

  1. ^ Cite error: The named reference wucuipeizhao2022 was invoked but never defined (see the help page).
  2. ^ a b c Cite error: The named reference scarselli2009 was invoked but never defined (see the help page).
  3. ^ a b c Cite error: The named reference micheli2009 was invoked but never defined (see the help page).
  4. ^ Cite error: The named reference sanchez2021 was invoked but never defined (see the help page).
  5. ^ Cite error: The named reference daigavane2021 was invoked but never defined (see the help page).
  6. ^ a b Cite error: The named reference bronstein2021 was invoked but never defined (see the help page).
  7. ^ Cite error: The named reference kipf2016 was invoked but never defined (see the help page).
  8. ^ Cite error: The named reference hamilton2017 was invoked but never defined (see the help page).
  9. ^ Cite error: The named reference velickovic2018 was invoked but never defined (see the help page).
  10. ^ Cite error: The named reference hajij2022 was invoked but never defined (see the help page).
  11. ^ Cite error: The named reference velickovic2022 was invoked but never defined (see the help page).
  12. ^ Cite error: The named reference wuchen2023 was invoked but never defined (see the help page).
  13. ^ Cite error: The named reference ying2018 was invoked but never defined (see the help page).
  14. ^ Cite error: The named reference stanforddata was invoked but never defined (see the help page).
  15. ^ Zhang, Weihang; Cui, Yang; Liu, Bowen; Loza, Martin; Park, Sung-Joon; Nakai, Kenta (5 April 2024). "HyGAnno: Hybrid graph neural network-based cell type annotation for single-cell ATAC sequencing data". Briefings in Bioinformatics. 25 (3): bbae152. doi:10.1093/bib/bbae152. PMC 10998639. PMID 38581422.
  16. ^ Cite error: The named reference gilmer2017 was invoked but never defined (see the help page).
  17. ^ Coley, Connor W.; Jin, Wengong; Rogers, Luke; Jamison, Timothy F.; Jaakkola, Tommi S.; Green, William H.; Barzilay, Regina; Jensen, Klavs F. (2019-01-02). "A graph-convolutional neural network model for the prediction of chemical reactivity". Chemical Science. 10 (2): 370–377. doi:10.1039/C8SC04228D. ISSN 2041-6539. PMC 6335848. PMID 30746086.
  18. ^ Cite error: The named reference qasim2019 was invoked but never defined (see the help page).
  19. ^ Cite error: The named reference li2018 was invoked but never defined (see the help page).
  20. ^ Cite error: The named reference fey2019 was invoked but never defined (see the help page).
  21. ^ Cite error: The named reference tfgnn2022 was invoked but never defined (see the help page).
  22. ^ "Deep Graph Library (DGL)". Retrieved 2024-09-12.
  23. ^ Cite error: The named reference jraph2022 was invoked but never defined (see the help page).
  24. ^ Cite error: The named reference Lucibello2021GNN was invoked but never defined (see the help page).
  25. ^ FluxML/GeometricFlux.jl, FluxML, 2024-01-31, retrieved 2024-02-03