Skip to main content

An Introduction to Convolutional Graph Neural Networks

This article provides a beginner-friendly introduction to Convolutional Graph Neural Networks (GCNs), which apply deep learning paradigms to graphical data.
Created on March 3|Last edited on March 3

Convolutional networks have dominated the vision world for quite a long time in deep learning. Admittedly attention is becoming the new de facto standard in vision however, there is another domain in which convolution has been making strides recently, graphical data !!
In this article we'll introduce the notion of Graph Convolutional Networks (GCNs), a type of Spatial Network like Message Passing Graph Networks.

What are Graph Convolutional Nets ?

Similar to how message passing networks work, convolutional graph nets also claim to capture node representations while learning some information from the node's neighborhood. However instead of performing aggregation over all nodes in the neighborhood, convolutional nets perform a first order approximation of spectral graph convolution.
For a brief overview of convolution watch this great video


Similar to Message Passing Graph Nets, our first hidden state is simply the vector of all node representations.
H(0)=X\huge H^{(0)} = X

There are many variants of Graph Convolutional Networks, however for the sake of simplicity we shall consider the simplest form as outlined in Simplifying Graph Convolutional Networks Wu et al. 2019. As outlined above Graph Convolutional Networks use approximations of spectral graph convolutions. A very simplistic view of convolutions is a weighted sum w.r.t to the filter. The simplest graph convolutional nets average a node representation with the feature vectors in its local neighborhood i.e.,
hv(t)=hvt1di+1+j=1naij(di+1)(dj+1)hjt1\huge h^{(t)}_v = \displaystyle \frac{h^{t-1}_{v}}{d_i + 1} + \sum_{j=1}^{n} \frac{a_{ij}}{\sqrt{(d_i + 1)(d_j + 1)}} h_{j}^{t-1}

Even with just averaging, simple graphical convolutions has impressive results on most graphical tasks. The most general way of expressing convolutional graph nets is as follows:
hv=ϕ(xu,vNucuvψ(xv))\huge h_v = \displaystyle \phi (x_u, \oplus_{v \in \mathcal{N}_u} c_{uv} \,\psi(x_v))

where cuv\large c_{uv} represents the convolutional operation between nodes u\large u and v\large v.
Let's have a look at some other variants of Graph Convolutional Networks:
NOTE: We further discuss Graph Convolutional Networks in the following articles:
💡


Summary

In this article, we learned about Graph Convolutional Networks and walked through a simple definition and various other extensions in current literature. To see the full suite of W&B features, please check out this short 5 minutes guide.
If you want more reports covering graph neural networks with code implementations, let us know in the comments below or on our forum ✨!
Check out these other reports on Fully Connected covering other Graph Neural Networks-based topics and ideas.

Recommend Reading