Graph Convolutional Networks
MF learns embeddings from ratings alone; graph methods walk the interaction graph. GCNs merge the two — they learn user and item embeddings *on* the graph, where each node's embedding aggregates its neighbours' (message passing). Stack hops and an embedding absorbs information from items several hops away. LightGCN, the simplest effective GCN, is just weighted-mean aggregation with BPR — and the fact that it works so well is both the beauty and the warning of the approach.
The big idea
Place embeddings on every node of the user–item graph. At each convolution hop, every node aggregates the embeddings of its neighbours and combines them with its own. After hops, each embedding incorporates information from its -hop neighbourhood. Predict and back-propagate through the whole convolution stack. LightGCN strips away non-linearities and weight matrices, leaving only weighted-mean aggregation — the graph equivalent of a deep but linear model, and yet it outperforms most non-linear GCN variants on collaborative filtering.
01 · Embeddings on a graph
Graph convolution as message passing
Every node starts with a random embedding. At each hop, it aggregates its neighbours’ embeddings.
A GCN places a trainable embedding and on every user and item node. The core assumption — nodes close in the graph should have similar embeddings — is operationalised by the graph convolution (a.k.a. message passing):
At hop , a node’s new embedding is an aggregation function of its previous embedding (self-connection, optional) and its neighbours’ embeddings. This is exactly the random walk of Ch. 10 — but instead of propagating probability, we propagate learned vector representations. The simplest is the mean: a user’s embedding becomes the average of the items they rated, which is Asymmetric SVD (Ch. 8) expressed as a convolution — except here the item embeddings are learned, and through the convolution user embeddings depend on item embeddings depend on user embeddings, recursively.
Message passing is recursive
At hop 1 a user’s embedding absorbs the items they directly rated; at hop 2, the users who rated those items; at hop 3, items two hops away. Each convolution extends the receptive field by one hop — just like P³ in Ch. 10, but with learned rather than fixed weights.
02 · The simplest GCN that works
LightGCN
Weighted-mean aggregation, no self-connections, no non-linearities, BPR loss. That’s it.
LightGCN (He et al., 2020) is the minimal GCN for collaborative filtering. It removes activation functions, weight matrices, and self-loops, keeping only the weighted mean with symmetric degree normalisation:
The factor is symmetric (same weight both directions) and dampens high-degree nodes. No self-connection means a node’s own previous embedding is excluded from its aggregation — which works better in practice for CF. In matrix form, with the normalised adjacency where :
The key insight: the parameters live only at hop 0 — is the only thing learned. The convolution is a fixed, deterministic diffusion of those base embeddings across the graph. Prediction uses the aggregated context at the final hop, not the raw latent factors.
MF (Ch. 8)
LightGCN
LightGCN propagation · embeddings diffuse at each hop
Random initial embeddings E⁰ are diffused through the normalised adjacency G̃ for h hops: E^(h) = G̃^h·E⁰. Watch nodes that share neighbours converge — and push h higher to see every embedding align toward the dominant (popularity) direction.
| Node | e₀ | e₁ | ‖e‖ |
|---|---|---|---|
| Alice | -0.083 | -0.167 | 0.187 |
| Bob | -0.059 | -0.173 | 0.183 |
| Carla | -0.085 | -0.184 | 0.202 |
| Dan | -0.025 | -0.154 | 0.156 |
| Eva | -0.058 | -0.170 | 0.180 |
| Finn | -0.053 | -0.188 | 0.195 |
| TopGun | 0.013 | 0.081 | 0.082 |
| MI | 0.004 | 0.093 | 0.093 |
| Inter | -0.003 | 0.105 | 0.105 |
| Martian | 0.007 | 0.064 | 0.064 |
| Notting | -0.016 | 0.097 | 0.099 |
| LoveAct | -0.007 | 0.105 | 0.105 |
| Aveng | 0.004 | 0.093 | 0.093 |
| LaLa | -0.016 | 0.097 | 0.099 |
03 · The training loop
Training a GCN for recommendation
Init random embeddings, convolve h times, draw a BPR sample, predict, back-propagate — repeat.
The LightGCN training loop has four steps per iteration:
- Initialise — random embeddings for all nodes.
- Convolve times: .
- Sample a BPR triple with and .
- Predict and , and apply the BPR gradient to .
The gradient flows through the entire convolution stack back to . The loss is computed on the post-convolution embeddings , but the only parameters are the initial embeddings — the convolution has no learnable parameters. So training only decides which initial vectors, once diffused times through the graph, give good predictions.
Is it deep?
The lecture openly questions it. LightGCN has many hops () but no non-linearities and no learned weights between them — it is essentially a linear diffusion plus a dot product, “a structure on which more complex methods can be built” rather than a deep model in the sense of Ch. 11.
04 · The price of convolution
Computational cost
GCN predictions are orders of magnitude more expensive than MF or item-CF.
The convolution is one sparse matrix multiplication per hop, costing where is the number of edges (observed ratings) and the embedding size — over hops. Compare the cost of predicting a single pair:
- Funk SVD / SVD++: — one dot product.
- Item-based KNN: precomputation, then per prediction.
- GCN (LightGCN): — the convolution dominates, and it must be re-run whenever changes.
The cost is in the convolution, not the dot product
Every time a batch of BPR samples is drawn, the full -hop convolution must re-run, because was updated by the previous gradient step. For large catalogues this forces small batches or impractical training times. The slides show GCN prediction as versus for MF.
05 · The singular-value amplifier
Popularity bias in GCN
Repeated convolution amplifies the dominant singular values of the adjacency — which encode popularity.
Using the SVD of the normalised adjacency , the -hop convolution becomes:
Each convolution raises the singular values to the power — a spectral amplifier. Large singular values (the “easy”, strongly popularity-based signals) are amplified; small singular values (fine-grained, niche taste) are attenuated toward zero. This is the same oversmoothing we saw with random walks in Ch. 10, now stated spectrally: more hops focus the model on the dominant eigenstructure — which is popularity, because popular items have high degree and thus large singular values. GCNs drift toward Top-Popular as grows.
The fix: filter functions
Instead of , apply a filter function that can attenuate low frequencies (popularity) and amplify high frequencies (niche). A high-pass filter suppresses the dominant singular values; a band-pass keeps the middle range. This turns the convolution from a pure random walk into a tuned spectral propagation.
06 · Graph filters meet item-CF
Graph-Filter Collaborative Filtering
Take the spectral insight from GCN, skip the iterative training, and build a fast item-based CF model.
GF-CF (Shen et al., 2021) asks: rather than training an iterative GCN with filter functions, can we compute the item–item similarity directly with spectral filtering? Yes:
- Normalise the URM: — the same normalisation as LightGCN.
- Truncated SVD: — keep the top- singular values/vectors, as in PureSVD (Ch. 8).
- Compute similarity: .
GF-CF applies the spectral-filtering idea analytically — no gradient descent, no per-batch convolution. The catch: is dense, so storage and slow prediction (like EASE-R in Ch. 11), and KNN is awkward because many neighbours are non-zero.
Advantages
Disadvantages
07 · Exam intel
What the exam tests
Write the graph-convolution update ; explain LightGCN’s weighted mean with ; describe the training loop (init → convolve → BPR → dot-product predict → gradient on ); compare GCN cost with MF’s ; explain why amplifies popularity; and describe GF-CF as an analytical spectral item-CF.
Worked question — where do the parameters live?
LightGCN uses weighted-mean aggregation with and no self-connections. (a) Write the update for . (b) Why is the normalisation symmetric? (c) After training, predicting — where do the learned parameters live, in the convolution or in ? (d) One disadvantage vs Funk SVD?
- (a) .
- (b) Symmetric normalisation weights user→item and item→user edges equally and dampens high-degree users and items alike; empirically it beats asymmetric alternatives.
- (c) Only in . The convolution has no learnable parameters — it is fixed by the graph. The gradient back-propagates through to update the initial embeddings.
- (d) Cost: per batch vs for Funk SVD — plus the popularity bias.
Traps: thinking each hop learns its own embeddings (only is learned; is derived); confusing message passing (vectors) with random walks (scalars); forgetting LightGCN deliberately drops the self-connection; and treating GF-CF as plain item-CF (it uses spectral filtering on the normalised URM).
08 · Exam · past papers
Past-paper questions
Past paper FT-Feb26 · GCN idea, LightGCN aggregation, training (~6 pts)
Q. Describe the main idea of GCNs and the role of nodes and edges in recommendation; the aggregation mechanism of LightGCN; how LightGCN is trained, including the objective.
Model answer. Idea, nodes & edges. A GCN learns node embeddings by repeatedly aggregating information from graph neighbours (message passing). On the bipartite graph the nodes are users and items and the edges are observed interactions, so a -layer GCN lets an embedding absorb its -hop neighbourhood. LightGCN aggregation. It drops the feature-transform matrices and non-linear activations of a standard GCN, keeping only symmetric-normalised neighbour averaging, (symmetrically for items), and combines layers as . Training. Only the layer-0 embeddings are parameters, learned by minimising the BPR loss , with score .
Past paper Practice Exam 2 · Message passing, averaging, prediction (5 pts)
Q. The concept of message passing in GCNs (2); how LightGCN performs message passing with simple average aggregation (1); how predictions are computed from LightGCN embeddings (2).
Model answer. Message passing. At each layer every node receives its neighbours’ current embeddings and aggregates them into its new embedding; after layers a node integrates its -hop neighbourhood. LightGCN aggregation. Pure symmetric-normalised averaging with no weight matrix or non-linearity, . Prediction. Combine the per-layer embeddings , , then score by dot product and rank.
09 · Self-check
Three questions before you move on
In LightGCN, which parameters are learned and what is fixed?
Why does repeated graph convolution amplify popularity bias?
Why is a GCN's prediction cost O(h|U||I|K) much higher than Funk SVD's O(K)?
10 · Recap
One-screen summary
Chapter 13 — load-bearing ideas
- Convolution = neighbourhood aggregation: . LightGCN uses the weighted mean — no self-connection, no non-linearity.
- Only is learned: with fixed; predict and train with BPR.
- Cost and bias: per batch vs for MF; the amplification pushes toward popularity and attenuates niche signals.
- GF-CF: truncated SVD on the normalised URM + spectral filtering gives an analytic item–item similarity — fast, but dense and hard to KNN-sparsify.