Graph convolutional networks (GCNs) are a type of graph neural network architecture. They extend the idea of traditional convolutional neural networks to graphs.
GCN layers can be described by:
where:
- is the layer output node feature matrix.
- is the non-linear activation function.
- is the graph adjacency matrix with the identity added to it: .
- is the node feature matrix.
- is a diagonal matrix.
We add the identity to the adjacency matrix to add self-loops (so that we sum the feature vectors of all neighbouring nodes and the node itself). We also symmetrically normalise with the diagonal matrices such that all rows sum to 1: .
GCN layers update the node embeddings based on the features of the immediate neighbours, but we can influence the embeddings from further away by stacking GCN layers. This is roughly analogous to increasing the receptive field in CNNs.
The benefit of GCNs is that they’re interpretable (wrt local graph structure) and computationally efficient. However, they’re largely limited to the local structure.