Tags: #AI

References:
Graph Convolutional Networks —Deep Learning on Graphs
Smarter.ai - Graph Convolutional Networks: Implementation in PyTorch
Notes for Stanford CS224W

Basic Concepts

G(N,E): The graph G with nodes N and edges E.

For Undirected graph, we define the node degree ki of node i as the number of edges adjacent to node i. The average degree is:

k¯=k=1|N|i=1|N|ki=2|E|N

For Directed graphs have directed links (e.g. following on Twitter). We define the in-degree kiin as the number of edges entering node i. Similarly, we define the out-degree kiout as the number of edges leaving node i. The average degree is then

k¯=k=|E|N

Introduction

We've worked on graph classification, node classification, link prediction, community detection, graph embedding, and graph generation. These involve predicting a graph's class, classifying nodes, predicting connections, clustering nodes, preserving information in a vector, and generating new graphs.

image.png|450

Traditional convolutional methods in graphs is meaningless.
⇒ Graph convolution

Definition & Methods

image.png|300
image.png|500
In the case of a GCN, the inputs are:

GCN Operation

From Zotero: Semi-Supervised Classification with Graph Convolutional Networks

x=xg=Ug^(Λ)UTx=g^(L)x

GCN Layer

xi(k)=jN(i){i}1deg(i)deg(j)(Wxj(k1))+b,

ChebConv

From Zotero: Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering
However, without further assumptions, such a filter does not have a compact support, and moreover learning all the components of g^(Λ) has O(N) complexity. To fix both issues, we will use instead a polynomial parametrization of g^ of degree K:

g^θ(L)=k=0K1θkLk

This reduce the learning complexity to O(K).
g^ is K-localized ⇒ e.g. the value at node j of g^ centered at node i is 0 if the the minimum number of edges connecting two nodes on the graph is greater than K.
K=13×3 convolutional filters.
image.png|600

PyG

pyg-team/pytorch_geometric: Graph Neural Network Library for PyTorch