CS224W-Machine Learning with Graph-Deep Generative Models for Graphs

Graph Generation

Machine Learning for Graph Generation

Graph Generative Models

Generative Models Basics

Setup:

Deep Generative Models

Auto-regressive models:

GraphRNN: Generating Realistic Graphs

GraphRNN Idea

Generating graphs via sequentially adding nodes and edges

Model Graphs as Sequences

Graph GG with node ordering π\pi can be uniquely mapped into a senquece of node and edge additions SπS^{\pi}

The sequence SπS^{\pi} has two levels (SS is a sequence of sequences):

Summary: A graph + a node ordering = A sequence of sequences

Node ordering is randomly selected (we will come back to this)

We have transformed graph generation problem into a sequence generation problem

Need to model two processes:

Approach: Use Recurrent Neural Networks (RNNs) to model these process!

Background: Recurrent NNs

GraphRNN: Two levels of RNN

RNN for Sequence Generation

Towards Edge-Level RNN

Consider the Edge-level RNN for now.

Suppose we already have trained the edge-level RNN

Edge-level RNN at Training Time

Training the model:

Putting Things Together

Our Plan:

  1. Add a new node: We run Node RNN for a step, and use it output to initialize Edge RNN.
  1. Add new edges for the new node: We run Edge RNN to predict if the new node will connect to each of the previous node.
  1. Add another new node: We use the last hidden state of Edge RNN to run Node RNN for another step
  1. Stop graph generation: If Edge RNN outputs EOS at step 1, we know no edges are connected to the new node. We stop the graph generation.

Put Things Together: Training

Put Things Together: Test

Scaling Up and Evaluating Graph Generation

Issue: Tractability

Solution: Tractability via BFS

Evaluating Generated Graphs

Application of Deep Graph Generative Models to Molecule Generation

Application: Drug Discovery

Question: Can we learn a model that can generate valid and realistic molecules with optimized property scores?

Goal-Directed Graph Generation

Generating graphs that:

Solution: GCPN

Graph Convolutional Policy Network (GCPN)

combines graph representation + RL

Key component of GCPN:

GCPN vs. GraphRNN

Overview of GCPN

How to set the Reward?

Reward=Final reward+Step reward\textbf{Reward} = \textbf{Final reward} + \textbf{Step reward}

How to train?

Training GCPN

Qualitative Results

Visualization of GCPN graphs: