Graph Neural Networks

Week 13 · November 17 & 19, 2026

architectures
Representing graphs, permutation equivariance, message passing, and graph-level tasks.
Author

Harun Pirim

Reading Prince, Understanding Deep Learning, Chapter 13

These notes are still being written. The reading above is authoritative until this banner disappears.

1 Learning Objectives

By the end of this week you should be able to:

  1. Represent a graph with an adjacency matrix and a node feature matrix.
  2. Explain permutation invariance and equivariance, and why they are required.
  3. Derive a graph convolution as neighborhood aggregation.
  4. Distinguish node-, edge-, and graph-level prediction tasks.
  5. Describe how pooling produces graph-level representations.
  6. Implement a GCN layer from the adjacency matrix.
Plotting setup (click to expand)
import numpy as np
import matplotlib.pyplot as plt
import torch

torch.manual_seed(774)
np.random.seed(774)

plt.rcParams.update({
    "figure.figsize": (7, 4),
    "figure.dpi": 130,
    "axes.spines.top": False,
    "axes.spines.right": False,
    "axes.grid": True,
    "grid.alpha": 0.25,
    "font.size": 10,
    "legend.frameon": False,
})

NDSU_GREEN = "#005643"
NDSU_GOLD  = "#FFC72C"
ACCENT     = "#C1121F"

2 Graphs and Their Representation

TODO

3 Permutation Invariance and Equivariance

TODO

4 Graph Convolutional Networks

TODO

5 Message Passing

TODO

6 Node, Edge, and Graph-Level Tasks

TODO

7 Pooling and Readout

TODO

8 Implementing a GCN Layer

TODO

9 Summary

TODO


10 Exercises

Problem numbers refer to Prince, Chapter 13.

1. TODO

2. TODO

3. Computational. TODO


11 Further Reading

  • Prince, Understanding Deep Learning, Chapter 13.
  • TODO
Back to top