Content deleted Content added
NickDiCicco (talk | contribs) No edit summary |
NickDiCicco (talk | contribs) mNo edit summary |
||
Line 3:
A '''Graph neural network''' ('''GNN''') is a class of [[artificial neural network]]s for processing data that can be represented as [[Graph (abstract data type)|graphs]]<ref name="scarselli2008 /><ref name="sanchez2021" /><ref name="daigavane2021" />.
[[File:GNN building blocks.png|thumb|Basic building blocks of a Graph
In the more general subject of "Geometric [[Deep Learning]]", existing neural network architectures can be interpreted as GNNs operating on suitably defined graphs<ref name=bronstein2021 />. [[Convolutional neural network]]s, in the context of [[computer vision]], can be seen as a GNN applied to graphs structured as grids of [[pixel]]s. [[Transformer (machine learning model) | Transformers]], in the context of [[natural language processing]], can be seen as GNNs applied to [[complete graph]]s whose nodes are [[words]] in a [[Sentence (linguistics) | sentence]].
Line 15:
[[NP-hard]] [[combinatorial optimization]] problems<ref name="li2018" />.
Several [[open source]] [[Library (computing)|libraries]] implementing Graph
== Architecture ==
The architecture of a generic GNN implements the following fundamental [[Layer (deep learning)|layers]]<ref name=bronstein2021 />:
* <em>Permutation
* <em>Local
* <em>Global
It has been demonstrated that GNNs cannot be more expressive than the Weisfeiler–Lehman Graph Isomorphism Test<ref name="douglas2011" /><ref name="xu2019" />. In practice, this means that there exist different graph structures (e.g., [[molecules]] with the same [[atoms]] but different [[bonds]]) that cannot be distinguished by GNNs. More powerful GNNs operating on higher-dimension geometries such as [[Simplicial complex|simplicial complexes]] can be designed<ref name=bronstein2021-2 />. {{As of|2022}}, whether or not future architectures will overcome the message passing primitive is an open research question<ref name=velickovic2022 />.
Line 30:
[[File:GNN representational limits.png|thumb|[[Graph isomorphism|Non-isomorphic]] graphs that cannot be distinguished by a GNN due to the limitations of the Weisfeiler-Lehman Graph Isomorphism Test. Colors indicate node [[Feature (machine learning)|features]].]]
== Message
[[File:Message Passing Neural Network.png|thumb|Node representation update in a Message Passing Neural Network (MPNN) layer. Node <math>\mathbf{x}_0</math> receives messages sent by all of his immediate neighbours <math>\mathbf{x}_1</math> to <math>\mathbf{x}_4</math>. Messages are computing via the message function <math>\phi</math>, which accounts for the features of both senders and receiver.]]
Message
Let <math>G = (V,E)</math> be a [[Graph (discrete mathematics)|graph]], where <math>V</math> is the node set and <math>E</math> is the edge set. Let <math>N_u</math> [[Neighbourhood (graph theory)|neighbourhood]] of node <math>u \in V</math>. Additionally, let <math>\mathbf{x}_u</math> be the [[Feature (machine learning)|features]] of node <math>u \in V</math>, and <math>\mathbf{e}_{u, v}</math> be the features of edge <math>(u, v) \in E</math>. An MPNN [[Layer_(deep learning)|layer]] can be expressed as follows<ref name="bronstein2021" />:
Line 47:
Other "flavours" of MPNN have been developed in the literature<ref name=bronstein2021 />, such as Graph Convolutional Networks<ref name=kipf2016 /> and Graph Attention Networks<ref name=velickovic2018 />, whose definitions can be expressed in terms of the MPNN formalism.
=== Graph
The
A GCN layer defines a [[Order of approximation|first-order approximation]] of a localized spectral [[Filter (signal processing)|filter]] on graphs. GCNs can be understood as a generalization of [[Convolutional Neural Network]]s to graph-structured data.
Line 63:
=== Graph Attention Network ===
The
A multi-head GAT layer can be expressed as follows:
Line 85:
A GCN can be seen as a special case of a GAT where attention coefficients are not learnable, but fixed and equal to the edge weights <math>w_{uv}</math>.
== Local
Local pooling layers coarsen the graph via downsampling. In literature, several learnable local pooling strategies have been proposed<ref name=lui2022 />.
=== Top-k
The
:<math>\mathbf{y} = \frac{\mathbf{X}\mathbf{p}}{\Vert\mathbf{p}\Vert}</math>
Line 100:
Where <math>\mathbf{X}</math> is the matrix of node features, <math>\mathbf{A}</math> is the graph adjacency matrix, <math>\odot</math> denotes element-wise [[matrix multiplication]], and <math>\mathbf{p}</math> is a learnable [[Projection (mathematics)|projection]] vector. The projection vector <math>\mathbf{p}</math> computes a scalar projection value for each graph node. The nodes with the top-k highest projection scores are retained in the new adjacency matrix <math>\mathbf{A}'</math>. The <math>\text{sigmoid}(\cdot)</math> operation makes the projection vector <math>\mathbf{p}</math> trainable by [[backpropagation]], which otherwise would produce discrete outputs<ref name=gao2019 />.
=== Self-
The Self-
:<math>\mathbf{y} = \text{GNN}(\mathbf{X}, \mathbf{A})</math>
Line 113:
Where <math>\mathbf{X}</math> is the matrix of node features, <math>\mathbf{A}</math> is the graph adjacency matrix, <math>\odot</math> denotes element-wise [[matrix multiplication]], and <math>\text{GNN}</math> is a generic permutation equivariant GNN layer (e.g., GCN, GAT, MPNN).
The
== Applications ==
=== Protein
{{See Also|AlphaFold}}
Graph
=== Social Networks ===
Line 126:
[[Social networks]] are a major application ___domain for GNNs due to their natural representation as [[social graph]]s. GNNs are used to develop recommender systems based on both [[social relations]] and item relations<ref name=fan2019 /><ref name=ying2018/>.
=== Combinatorial
{{See Also|Combinatorial Optimization}}
GNNs are used as fundamental building blocks for several combinatorial optimization algorithm <ref name=cappart2021 />. Examples include computing superior or competitive [[Placement (electronic design automation)|chip placements]] with handcrafted human solutions<ref name=mirhoseini2021 />, and improving expert-designed bracing rules in [[Branch and Bound]]<ref name=gasse2019 />.
|