Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs...

34
TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca, Davide Eynard, Federico Monti and Michael Bronstein

Transcript of Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs...

Page 1: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

TGN: Temporal Graph Networks for Dynamic

GraphsEmanuele Rossi, Twitter

In collaboration with Ben Chamberlain, Fabrizio Frasca, Davide Eynard, Federico Monti and Michael Bronstein

Page 2: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

Background

Page 3: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

Graph Neural Networks are a Hot Topic in ML!

Page 4: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

Graphs are everywhere

Page 5: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

From Images to Graphs

●●

●●

Page 6: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

Graph Neural Networks

Page 7: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

Problem: Many Graphs are Dynamic

Page 8: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

From Static to Dynamic Graphs

●●

●●

●●

Page 9: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

CTDGs: Many Types of Events

Node Edge

Creation User joins platform User follows another user

Deletion User leaves platform User unfollows another user

Feature Change User updates their bio User changes retweet message

Page 10: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

Why is Learning on Dynamic Graphs Different?

-

-

-

-

Page 11: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

Problem Setup

Page 12: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

Tasks

-

-

-

Page 13: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

(Encoder) Model Specification-

--

-

-→

Page 14: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

Evaluation-

- →

-

for event, t in events:

(u, v) = event

# Predict probability of the next event

u_embedding = model.predict(u, t)

v_embedding = model.predict(v, t)

link_prob = sigmoid(np.dot(u, v))

### Also compute prob. of some negatively

### sampled events, and compute eval metric

# Observe that ground truth event

model.observe(event, t)

Page 15: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

Model

Page 17: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

TGN Modules

•••

Page 23: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

Learning TGN-

-

-

for event, t in events:

(u, v) = event

# Predict probability of the next event

u_embedding = model.predict(u, t)

v_embedding = model.predict(v, t)

link_prob = sigmoid(np.dot(u, v))

### Also compute prob. of some negatively

### sampled events, and compute CE Loss

# Observe that ground truth event

model.observe(event, t)

Page 24: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

Learning TGN-

--

--

-→

Page 25: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

Learning TGN-

--

Page 27: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

Scalability-

-

- →

Page 28: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

Experiments

Page 29: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

Experiments: Future Edge Prediction

Page 30: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

Experiments: Dynamic Node Classification

Page 31: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

Ablation Study(Future edge prediction)

- Faster and more accurate than other approaches

- Memory (TGN-att vs TGN-no-mem) leads to a vast improvement in performance

- Embedding module is also extremely important (TGN-attn vs TGN-id) and graph attention performs best

- Using the memory makes it enough to have 1 graph attention layer

Page 32: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

Future Work-

--

-

-

-

Page 33: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

Conclusion-

-

-

-

Page 34: Networks for Dynamic TGN: Temporal Graph Graphs · TGN: Temporal Graph Networks for Dynamic Graphs Emanuele Rossi, Twitter In collaboration with Ben Chamberlain, Fabrizio Frasca,

Questions?