Graph Neural Networks: Learning on Graphs

6 minute read

Published:

TL;DR: GNNs learn vector representations for nodes (and graphs) by iteratively aggregating information from neighbourhoods, producing \(h_v^{(k)}\) after \(k\) rounds. Because the relational structure is built into the model rather than learned from scratch, they are a natural fit for data that is inherently relational — molecules, social graphs, knowledge graphs, road networks, and more.

Series note: This Graph Neural Networks track is organised as short, self-contained 3-5 minute posts. The fundamentals are aligned with the presentation in William L. Hamilton’s Graph Representation Learning, which is the main background reference for the basic graph concepts used throughout the series.

Graphs Are Everywhere

A graph \(G = (V, E)\) consists of:

  • Nodes \(V\): entities — atoms, people, papers, intersections. We write \(N = \lvert V \rvert\).
  • Edges \(E\): relationships — bonds, friendships, citations, roads, collected in an adjacency matrix \(A\).
  • Features on nodes and/or edges: atom type, age, year, speed limit. Node features are stacked into \(X \in \mathbb{R}^{N \times d}\).

Real-world data that’s naturally a graph:

  • Molecules: atoms = nodes, bonds = edges. Predicting drug toxicity or binding affinity.
  • Social networks: users = nodes, follows/friends = edges. Recommendation, fraud detection.
  • Knowledge graphs: entities = nodes, relations = edges. Question answering, link prediction.
  • Citation networks: papers = nodes, citations = edges. Classifying papers by topic.
  • Road networks: intersections = nodes, roads = edges. Route planning, traffic prediction.

Why Not Just Use Standard Neural Networks?

A standard MLP takes a fixed-size vector as input. Graphs have:

  • Variable size — different graphs have different numbers of nodes and edges.
  • No canonical ordering — there’s no “first” node; permuting nodes shouldn’t change predictions.
  • Relational structure — the patterns live in the connections, not just the individual features.

GNNs are designed to respect all three of these properties.

A Simple Graph A C: atom B N: atom C O: atom D S: atom double single GNN Node Embeddings A [0.2, 0.8, ...] B [0.5, 0.3, ...] C [0.1, 0.9, ...] D [0.7, 0.4, ...] Downstream tasks: Node classification · Link prediction · Graph classification
Figure 1: A GNN takes a graph with node features (atom types) and produces one embedding per node — four nodes in, four embeddings out — each capturing local and global structure. These embeddings support downstream tasks.

The Core Idea: Aggregate from Neighbours

Intuition First: Imagine rumours spreading in a social network. After one round, each person knows what their direct friends heard. After two rounds, they know what their friends' friends heard. A GNN works exactly like this — each "layer" is one round of information spreading, and after \(k\) layers every node has gathered news from up to \(k\) hops away.

Every GNN follows the same fundamental principle, called message passing. Writing \(h_v^{(k)}\) for the representation of node \(v\) after \(k\) rounds and \(\mathcal{N}(v)\) for its neighbourhood:

\[ h_v^{(k)} = \mathrm{UPDATE}^{(k)}\!\left( h_v^{(k-1)},\; \mathrm{AGGREGATE}^{(k)}\!\left( \{\, h_u^{(k-1)} : u \in \mathcal{N}(v) \,\} \right) \right), \qquad h_v^{(0)} = x_v. \]

In words: each node’s new representation is a learned function of its own current representation together with a permutation-invariant summary of its neighbours’ representations. After \(k\) iterations, \(h_v^{(k)}\) captures information from all nodes up to \(k\) hops away — its \(k\)-hop neighbourhood.

This is elegant because:

  • Nearby nodes influence each other (just like in the real world).
  • The same aggregation function works on graphs of any size, since it is defined per node.
  • The function is learned from data, so it adapts to the task.

Concrete numerical example. Suppose node \(A\) has feature vector \([1, 0]\) and its two neighbours are \(B = [0,1]\) and \(C = [1,1]\). Under one GCN-style layer with mean aggregation over \(\{A\} \cup \mathcal{N}(A)\) and identity weights:

\[ h_A^{(1)} = \frac{[1,0] + [0,1] + [1,1]}{3} = \frac{[2,2]}{3} \approx [0.67,\, 0.67]. \]

After a second layer, \(h_A^{(2)}\) also absorbs the updated representations of \(B\) and \(C\) — which already summarise their neighbours — so \(A\) ends up seeing its 2-hop neighbourhood.

Animated Information Flow

Layer 0 (input) A B C layer 1 Layer 1 (1-hop) A' B' C' A knows B & C layer 2 Layer 2 (2-hop) A'' B'' C'' A knows 2-hop nbhd
Figure 2: Animated message flow. Pulsing orange dots represent messages travelling along edges each layer. After layer 1, A knows about B and C directly. After layer 2, A's embedding captures B's and C's own neighbourhoods — a 2-hop view.

Three Task Levels

GNNs can produce predictions at three granularities:

LevelWhat you predictOutput built fromExample
NodeLabel for each node\(h_v^{(K)}\)Is this user a bot?
EdgeLabel or score for each pair\(f(h_u^{(K)}, h_v^{(K)})\)Will A befriend B?
GraphLabel for the whole graph\(h_G = \mathrm{READOUT}(\{h_v^{(K)}\})\)Is this molecule toxic?

For node tasks, use the node embeddings directly. For edge tasks, score a pair of embeddings. For graph tasks, readout (pool) all node embeddings into a single graph vector first.

A second, orthogonal distinction is whether the graph you are evaluated on was visible during training. In the transductive setting there is one fixed graph and only test labels are withheld; in the inductive setting the model must embed nodes or graphs it has never seen, so it has to generalise the aggregation function rather than memorise per-node vectors.

The Landscape of GNN Architectures

ModelVenueKey idea
GCNICLR 2017Spectral convolution simplified to degree-normalised averaging
GraphSAGENeurIPS 2017Inductive learning via neighbourhood sampling
GATICLR 2018Learned attention weights over neighbours
GINICLR 2019Sum aggregation + MLP; as expressive as the 1-WL test
Sheaf NNNeurIPS 2022Diffusion over a sheaf’s section space, generalising GCN

✅ Key Takeaways

  • Graphs model relational data: atoms, users, papers, intersections — any entities with relationships.
  • GNNs learn by iterative neighbourhood aggregation: after \(k\) layers, \(h_v^{(k)}\) summarises the \(k\)-hop neighbourhood of \(v\).
  • The same model works on graphs of any size and any node ordering — node-level outputs are permutation equivariant, graph-level outputs permutation invariant.
  • Supports node-, edge-, and graph-level predictions from the same backbone; only the output head changes, with readout pooling for graph-level tasks.
  • Evaluation splits into transductive (one fixed graph, labels withheld) and inductive (unseen nodes or graphs at test time).

References