Definition

Graph convolutional network (GCN) is a CNN operating on Graph-structured data which takes two inputs: node features and its Adjacency Matrix . GCN learns hidden layer vectors that encode both node features and local graph structures on a fixed graph.

GCN Layer

The GCN layer Is a function of node feature and adjacency matrix. where:

  • is the node feature matrix at layer , is the node features.
  • is the Adjacency Matrix of the graph
  • is the learnable weight matrix for layer It works similar to the filter in CNN with channel size. It is shared across all nodes and independent on the graph size.
  • is a non-linear Activation Function

Normalized GCN Layer

To increase numerical stability by enforcing self-loop, the Adjacency Matrix is transformed by adding an identity matrix and normalizing with the Degree Matrix . where

GCN Layer With Self-Transform Term

In some scenario, the self transformation term is added to the GCN layer to help preserve node-specific information where is the learnable self-transformation matrix for layer

GCN Layer With Skip Connection

The skip connection can ease over-smoothing problem.

Neighborhood-Based approach

where is the neighbors of the node .

The aggregation function could be a mean, sum, or max operation:

Facts

The output of a GCN is permutation invariant: invariant to the ordering of nodes in the input graph. The output of each layer in a GCN is permutation equivalent: equivalent to the permutation of nodes in the input graph.