Graph Neural Networks: Learning on Graphs

5 minute read

Published:

TL;DR: GNNs learn vector representations for nodes (and graphs) by iteratively aggregating information from neighbourhoods. They outperform flat neural networks on any data that is naturally 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.
  • Edges (E): relationships — bonds, friendships, citations, roads.
  • Features on nodes and/or edges: atom type, age, year, speed limit.

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 H: atom single double GNN Node Embeddings A [0.2, 0.8, ...] B [0.5, 0.3, ...] C [0.1, 0.9, ...] Downstream tasks: Node classification · Link prediction · Graph classification
Figure 1: A GNN takes a graph with node features (atom types) and produces rich node embeddings that capture 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:

Each node’s new representation = function(its current representation, representations of its neighbours)

After k iterations, node v’s embedding captures information from all nodes up to k hops away (its k-hop neighbourhood).

This is beautiful because:

  • Nearby nodes influence each other (just like in the real world).
  • The same aggregation function works on graphs of any size.
  • 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 B=[0,1] and C=[1,1]. After one GCN-style layer (mean aggregation + identity weights), A’s new representation is the mean of A, B, C: ([1,0]+[0,1]+[1,1])/3 = [0.67, 0.67]. After a second layer, A’s representation will also absorb B’s and C’s updated neighbours — capturing the 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 predictExample
NodeLabel for each nodeIs this user a bot?
EdgeLabel or score for each edgeWill A befriend B?
GraphLabel for the whole graphIs this molecule toxic?

For node tasks: use the node embeddings directly. For graph tasks: readout (pooling) the node embeddings into a single graph vector.

The Landscape of GNN Architectures

ModelYearKey idea
GCN2016Spectral convolution → normalised averaging
GAT2018Attention weights on edges
GraphSAGE2017Inductive learning via neighbourhood sampling
GIN2019Most expressive aggregator (sum + MLP)
Sheaf NN2022+Section-space diffusion, generalises GCN

✅ Key Takeaways

  • Graphs model relational data: atoms, users, papers, intersections — any entities with relationships.
  • GNNs learn by iterative neighbourhood aggregation: after k layers, each node knows about its k-hop neighbourhood.
  • The same model works on graphs of any size and any node ordering — it's permutation invariant/equivariant.
  • Supports node-, edge-, and graph-level predictions via readout pooling.

References