Graph neural networks are architectures that process graphs (i.e., sets of nodes connected by edges).

Graphs are hard to process for three reasons:

  1. Their topology is variable; it’s hard to design networks that are both sufficiently expressive and can cope with this variation.
  2. Graphs may be enormous; a graph representing connections in a social network might have a billion nodes.
  3. There may only be a single monolithic graph available, so the usual protocol of training with many data examples and testing with new data is not always appropriate.