NetGAN without GAN: From Random Walks to Low-Rank Approximations - - PowerPoint PPT Presentation

netgan without gan from random walks to low rank
SMART_READER_LITE
LIVE PREVIEW

NetGAN without GAN: From Random Walks to Low-Rank Approximations - - PowerPoint PPT Presentation

NetGAN without GAN: From Random Walks to Low-Rank Approximations Luca Rendsburg, Holger Heidrich, Ulrike von Luxburg ICML 2020 1 3 Input 1 8 1 4 1 1 5 6 9 1 2 1 7 1 9 } 3 1 } NetGAN: Generating Graphs via Random Walks 1 8


slide-1
SLIDE 1

NetGAN without GAN: From Random Walks to Low-Rank Approximations

Luca Rendsburg, Holger Heidrich, Ulrike von Luxburg ICML 2020

slide-2
SLIDE 2

1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 5 1 5 6 1 8 1 9 }

}

,...,

1 4 6 1 7 1 9 1 2 1 3 1 4 1 5 }

}

,...,

GAN

Input Output

Random walks Synthetic random walks Edge probability matrix

NetGAN

NetGAN: Generating Graphs via Random Walks

1 / 14

slide-3
SLIDE 3

1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 5 1 5 6 1 8 1 9 }

}

,...,

1 4 6 1 7 1 9 1 2 1 3 1 4 1 5 }

}

,...,

GAN

Input Output

Random walks Synthetic random walks Edge probability matrix 1 / 14

slide-4
SLIDE 4

1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 5 1 5 6 1 8 1 9 }

}

,...,

1 4 6 1 7 1 9 1 2 1 3 1 4 1 5 }

}

,...,

GAN

Input Output

Random walks Synthetic random walks Edge probability matrix 1 / 14

slide-5
SLIDE 5

1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 5 1 5 6 1 8 1 9 }

}

,...,

1 4 6 1 7 1 9 1 2 1 3 1 4 1 5 }

}

,...,

GAN

Input Output

Random walks Synthetic random walks Edge probability matrix Learn random walk distribution 1 / 14

slide-6
SLIDE 6

1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 5 1 5 6 1 8 1 9 }

}

,...,

1 4 6 1 7 1 9 1 2 1 3 1 4 1 5 }

}

,...,

GAN

Input Output

Random walks Synthetic random walks Edge probability matrix Learn random walk distribution 1 / 14

slide-7
SLIDE 7

1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 1 2 1 3 1 5 1 5 6 1 8 1 9 }

}

,...,

1 4 6 1 7 1 9 1 2 1 3 1 4 1 5 }

}

,...,

GAN

Input Output

Random walks Synthetic random walks Edge probability matrix Learn random walk distribution 1 / 14

slide-8
SLIDE 8

Our contribution

Conceptual analysis 2 / 14

slide-9
SLIDE 9

Our contribution

Conceptual analysis § Inductive bias of NetGAN 2 / 14

slide-10
SLIDE 10

Our contribution

Conceptual analysis § Inductive bias of NetGAN § Bypass sampling random walks 2 / 14

slide-11
SLIDE 11

Our contribution

Conceptual analysis § Inductive bias of NetGAN § Bypass sampling random walks Simplified version (no GAN, no sampling): “Cross-Entropy Low-rank Logits (CELL)” 2 / 14

slide-12
SLIDE 12

Our contribution

Conceptual analysis § Inductive bias of NetGAN § Bypass sampling random walks Simplified version (no GAN, no sampling): “Cross-Entropy Low-rank Logits (CELL)” § Higher transparency 2 / 14

slide-13
SLIDE 13

Our contribution

Conceptual analysis § Inductive bias of NetGAN § Bypass sampling random walks Simplified version (no GAN, no sampling): “Cross-Entropy Low-rank Logits (CELL)” § Higher transparency § Comparable generalization performance 2 / 14

slide-14
SLIDE 14

Our contribution

Conceptual analysis § Inductive bias of NetGAN § Bypass sampling random walks Simplified version (no GAN, no sampling): “Cross-Entropy Low-rank Logits (CELL)” § Higher transparency § Comparable generalization performance § Huge speedup 2 / 14

slide-15
SLIDE 15

NetGAN: learning step

§ Goal: learn random walk distribution

Generator architecture

C0 h0 C1 h1

  • 1
  • T

vT v2 v1 v1 ⋯ ⋯ ⋯

W down

p1 pN p1 pN Wup Wup

NetGAN architecture Graph Discrimi- nator Dreal Dfake Generator Random walk z ⇠ N (0,I d) z G(z) sample sample (a) Generator architecture (b) NetGAN architecture

Figure from Bojchevski et al. [2018]

3 / 14

slide-16
SLIDE 16

NetGAN: learning step

§ Goal: learn random walk distribution § Training set: unbiased random walks tpvpiq

0 , . . . , vpiq T qui of length T over input

graph

Generator architecture

C0 h0 C1 h1

  • 1
  • T

vT v2 v1 v1 ⋯ ⋯ ⋯

W down

p1 pN p1 pN Wup Wup

NetGAN architecture Graph Discrimi- nator Dreal Dfake Generator Random walk z ⇠ N (0,I d) z G(z) sample sample (a) Generator architecture (b) NetGAN architecture

Figure from Bojchevski et al. [2018]

3 / 14

slide-17
SLIDE 17

NetGAN: learning step

§ Goal: learn random walk distribution § Training set: unbiased random walks tpvpiq

0 , . . . , vpiq T qui of length T over input

graph § Generator: generate sequences tpwpiq

0 , . . . , wpiq T qui of “synthetic” random walks

Generator architecture

C0 h0 C1 h1

  • 1
  • T

vT v2 v1 v1 ⋯ ⋯ ⋯

W down

p1 pN p1 pN Wup Wup

NetGAN architecture Graph Discrimi- nator Dreal Dfake Generator Random walk z ⇠ N (0,I d) z G(z) sample sample (a) Generator architecture (b) NetGAN architecture

Figure from Bojchevski et al. [2018]

3 / 14

slide-18
SLIDE 18

NetGAN: learning step

§ Goal: learn random walk distribution § Training set: unbiased random walks tpvpiq

0 , . . . , vpiq T qui of length T over input

graph § Generator: generate sequences tpwpiq

0 , . . . , wpiq T qui of “synthetic” random walks

§ Discriminator: distinguish synthetic from real random walks

Generator architecture

C0 h0 C1 h1

  • 1
  • T

vT v2 v1 v1 ⋯ ⋯ ⋯

W down

p1 pN p1 pN Wup Wup

NetGAN architecture Graph Discrimi- nator Dreal Dfake Generator Random walk z ⇠ N (0,I d) z G(z) sample sample (a) Generator architecture (b) NetGAN architecture

Figure from Bojchevski et al. [2018]

3 / 14

slide-19
SLIDE 19

NetGAN: learning step

§ Goal: learn random walk distribution § Training set: unbiased random walks tpvpiq

0 , . . . , vpiq T qui of length T over input

graph § Generator: generate sequences tpwpiq

0 , . . . , wpiq T qui of “synthetic” random walks

§ Discriminator: distinguish synthetic from real random walks § Architecture: LSTMs with Wasserstein loss

Generator architecture

C0 h0 C1 h1

  • 1
  • T

vT v2 v1 v1 ⋯ ⋯ ⋯

W down

p1 pN p1 pN Wup Wup

NetGAN architecture Graph Discrimi- nator Dreal Dfake Generator Random walk z ⇠ N (0,I d) z G(z) sample sample (a) Generator architecture (b) NetGAN architecture

Figure from Bojchevski et al. [2018]

3 / 14

slide-20
SLIDE 20

NetGAN: reconstruction step

1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 4 6 1 7 1 9 1 2 1 3 1 4 1 5 }

}

,...,

Generator

Generate many synthetic random walks Count transitions in score matrix S Transform S into edge probability matrix Sample edges without replacement 4 / 14

slide-21
SLIDE 21

NetGAN: reconstruction step

1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 4 6 1 7 1 9 1 2 1 3 1 4 1 5 }

}

,...,

Generator

Generate many synthetic random walks Count transitions in score matrix S Transform S into edge probability matrix Sample edges without replacement 4 / 14

slide-22
SLIDE 22

NetGAN: reconstruction step

1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 4 6 1 7 1 9 1 2 1 3 1 4 1 5 }

}

,...,

Generator

Generate many synthetic random walks Count transitions in score matrix S Transform S into edge probability matrix Sample edges without replacement 4 / 14

slide-23
SLIDE 23

NetGAN: reconstruction step

1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9 1 4 6 1 7 1 9 1 2 1 3 1 4 1 5 }

}

,...,

Generator

Generate many synthetic random walks Count transitions in score matrix S Transform S into edge probability matrix Sample edges without replacement 4 / 14

slide-24
SLIDE 24

NetGAN: reconstruction step

1 4 6 1 7 1 9 1 2 1 3 1 4 1 5 }

}

,...,

Generator

Generate many synthetic random walks Count transitions in score matrix S Transform S into edge probability matrix Sample edges without replacement

1 1 2 1 3 1 4 1 5 6 1 8 1 7 1 9

4 / 14

slide-25
SLIDE 25

Overview of simplifications

Input graph NetGAN: Sample random walks from graph Train GAN with LSTM Sample random walks from generator Count transitions in score matrix Convert score matrix into edge- independent model Sample

  • utput graph

5 / 14

slide-26
SLIDE 26

Overview of simplifications

Input graph NetGAN: CELL: Sample random walks from graph Train GAN with LSTM Sample random walks from generator Count transitions in score matrix Solve

  • ptimization

problem with rank constraint Solve eigenvector problem for score matrix Convert score matrix into edge- independent model Sample

  • utput graph

5 / 14

slide-27
SLIDE 27

Overview of simplifications

Input graph NetGAN: CELL: Sample random walks from graph Train GAN with LSTM Sample random walks from generator Count transitions in score matrix Solve

  • ptimization

problem with rank constraint Solve eigenvector problem for score matrix Convert score matrix into edge- independent model Sample

  • utput graph
  • 1. Replace GAN with rank-constrained optimization problem

5 / 14

slide-28
SLIDE 28

Overview of simplifications

Input graph NetGAN: CELL: Sample random walks from graph Train GAN with LSTM Sample random walks from generator Count transitions in score matrix Solve

  • ptimization

problem with rank constraint Solve eigenvector problem for score matrix Convert score matrix into edge- independent model Sample

  • utput graph
  • 1. Replace GAN with rank-constrained optimization problem
  • 2. Bypass random walk sampling

5 / 14

slide-29
SLIDE 29

Replacing the GAN (1)

Input graph NetGAN: CELL: Sample random walks from graph Train GAN with LSTM Sample random walks from generator Count transitions in score matrix Solve

  • ptimization

problem with rank constraint Solve eigenvector problem for score matrix Convert score matrix into edge- independent model Sample

  • utput graph
  • 1. Replace GAN with rank-constrained optimization problem
  • 2. Bypass random walk sampling

6 / 14

slide-30
SLIDE 30

Replacing the GAN (2)

What causes the generalization of NetGAN?

7 / 14

slide-31
SLIDE 31

Replacing the GAN (2)

What causes the generalization of NetGAN?

The random walks? 7 / 14

slide-32
SLIDE 32

Replacing the GAN (2)

What causes the generalization of NetGAN?

The random walks? ✗ Random walk distribution determines graph 7 / 14

slide-33
SLIDE 33

Replacing the GAN (2)

What causes the generalization of NetGAN?

The random walks? ✗ Random walk distribution determines graph The GAN? 7 / 14

slide-34
SLIDE 34

Replacing the GAN (2)

What causes the generalization of NetGAN?

The random walks? ✗ Random walk distribution determines graph The GAN? ✗ Perfectly learning random walk distribution simply memorizes graph 7 / 14

slide-35
SLIDE 35

Replacing the GAN (2)

What causes the generalization of NetGAN?

The random walks? ✗ Random walk distribution determines graph The GAN? ✗ Perfectly learning random walk distribution simply memorizes graph The LSTM? 7 / 14

slide-36
SLIDE 36

Replacing the GAN (2)

What causes the generalization of NetGAN?

The random walks? ✗ Random walk distribution determines graph The GAN? ✗ Perfectly learning random walk distribution simply memorizes graph The LSTM? ✗ No long-term dependencies in random walks 7 / 14

slide-37
SLIDE 37

Replacing the GAN (2)

What causes the generalization of NetGAN?

The random walks? ✗ Random walk distribution determines graph The GAN? ✗ Perfectly learning random walk distribution simply memorizes graph The LSTM? ✗ No long-term dependencies in random walks

NetGAN Val-Criterion EO-Criterion

0k 20k 40k 60k 80k 100k

Training iteration

0.00 0.25 0.50 0.75 1.00

Edge overlap

Figure from Bojchevski et al. [2018]

7 / 14

slide-38
SLIDE 38

Replacing the GAN (2)

What causes the generalization of NetGAN?

The random walks? ✗ Random walk distribution determines graph The GAN? ✗ Perfectly learning random walk distribution simply memorizes graph The LSTM? ✗ No long-term dependencies in random walks

NetGAN Val-Criterion EO-Criterion

0k 20k 40k 60k 80k 100k

Training iteration

0.00 0.25 0.50 0.75 1.00

Edge overlap

Figure from Bojchevski et al. [2018]

Computational trick! 7 / 14

slide-39
SLIDE 39

Replacing the GAN (2)

What causes the generalization of NetGAN?

The random walks? ✗ Random walk distribution determines graph The GAN? ✗ Perfectly learning random walk distribution simply memorizes graph The LSTM? ✗ No long-term dependencies in random walks

NetGAN Val-Criterion EO-Criterion

0k 20k 40k 60k 80k 100k

Training iteration

0.00 0.25 0.50 0.75 1.00

Edge overlap

Figure from Bojchevski et al. [2018]

Computational trick! ✓ Low-dimensional bottleneck 7 / 14

slide-40
SLIDE 40

Replacing the GAN (3)

§ Number of nodes N, set of random walks R, low rank H, row-wise softmax σrows 8 / 14

slide-41
SLIDE 41

Replacing the GAN (3)

§ Number of nodes N, set of random walks R, low rank H, row-wise softmax σrows § Generator learns random walk distribution by learning random walk transition matrix from parametric family P “ tσrowspWq P RNˆN : W P RNˆN, rankpWq ď Hu . 8 / 14

slide-42
SLIDE 42

Replacing the GAN (3)

§ Number of nodes N, set of random walks R, low rank H, row-wise softmax σrows § Generator learns random walk distribution by learning random walk transition matrix from parametric family P “ tσrowspWq P RNˆN : W P RNˆN, rankpWq ď Hu . § Do this directly with maximum likelihood estimation min

WPRNˆN ´

ÿ

pi,jqPR

log σrowspWqi,j ,

  • s. t.

rankpWq ď H . 8 / 14

slide-43
SLIDE 43

Bypassing sampling (1)

Input graph NetGAN: CELL: Sample random walks from graph Train GAN with LSTM Sample random walks from generator Count transitions in score matrix Solve

  • ptimization

problem with rank constraint Solve eigenvector problem for score matrix Convert score matrix into edge- independent model Sample

  • utput graph
  • 1. Replace GAN with rank-constrained optimization problem
  • 2. Bypass random walk sampling

9 / 14

slide-44
SLIDE 44

Bypassing sampling (2)

§ NetGAN samples many random walks from input graph & from generator 10 / 14

slide-45
SLIDE 45

Bypassing sampling (2)

§ NetGAN samples many random walks from input graph & from generator § Example: On CORA-ML (2,810/ 7,981), sees every edge „ 14, 000 times on average 10 / 14

slide-46
SLIDE 46

Bypassing sampling (2)

§ NetGAN samples many random walks from input graph & from generator § Example: On CORA-ML (2,810/ 7,981), sees every edge „ 14, 000 times on average § Count random walk transitions in score matrix S P RNˆN 10 / 14

slide-47
SLIDE 47

Bypassing sampling (2)

§ NetGAN samples many random walks from input graph & from generator § Example: On CORA-ML (2,810/ 7,981), sees every edge „ 14, 000 times on average § Count random walk transitions in score matrix S P RNˆN § Length of random walk T, amount of random walks n. Normalized score matrix converges S nT

  • a. s.

Ý Ý Ý Ý Ý Ñ

n,TÑ8 diagpπqP ,

where P is corresponding random walk transition matrix and π its stationary distribution. 10 / 14

slide-48
SLIDE 48

Bypassing sampling (2)

§ NetGAN samples many random walks from input graph & from generator § Example: On CORA-ML (2,810/ 7,981), sees every edge „ 14, 000 times on average § Count random walk transitions in score matrix S P RNˆN § Length of random walk T, amount of random walks n. Normalized score matrix converges S nT

  • a. s.

Ý Ý Ý Ý Ý Ñ

n,TÑ8 diagpπqP ,

where P is corresponding random walk transition matrix and π its stationary distribution. Replace normalized score matrix with its limit 10 / 14

slide-49
SLIDE 49

Bypassing sampling (3)

  • 1. Learning step (with adjacency matrix A)

min

WPRNˆN ´

ÿ

pi,jqPR

log σrowspWqi,j ,

  • s. t.

rankpWq ď H Ñ min

WPRNˆN ´

ÿ

k,l

Ak,l log σrowspWqk,l ,

  • s. t.

rankpWq ď H

11 / 14

slide-50
SLIDE 50

Bypassing sampling (3)

  • 1. Learning step (with adjacency matrix A)

min

WPRNˆN ´

ÿ

pi,jqPR

log σrowspWqi,j ,

  • s. t.

rankpWq ď H Ñ min

WPRNˆN ´

ÿ

k,l

Ak,l log σrowspWqk,l ,

  • s. t.

rankpWq ď H

  • 2. Reconstruction step (with synthetic transition matrix P ˚)

Compute S by counting transitions of synthetic random walks Ñ S :“ diagpπ˚qP ˚

11 / 14

slide-51
SLIDE 51

Bypassing sampling (3)

  • 1. Learning step (with adjacency matrix A)

min

WPRNˆN ´

ÿ

pi,jqPR

log σrowspWqi,j ,

  • s. t.

rankpWq ď H Ñ min

WPRNˆN ´

ÿ

k,l

Ak,l log σrowspWqk,l ,

  • s. t.

rankpWq ď H

  • 2. Reconstruction step (with synthetic transition matrix P ˚)

Compute S by counting transitions of synthetic random walks Ñ S :“ diagpπ˚qP ˚

Bypass sampling in both steps

11 / 14

slide-52
SLIDE 52

Experiments (1) Does CELL generate the same type of graphs as NetGAN?

12 / 14

slide-53
SLIDE 53

Experiments (1) Does CELL generate the same type of graphs as NetGAN? Yes!

12 / 14

slide-54
SLIDE 54

Experiments (1) Does CELL generate the same type of graphs as NetGAN? Yes!

Graph: CORA-ML citation network (2,810/ 7,981)

3 16 30 43 56 69 Edge overlap (in %) 100 200 300

  • Max. degree

3 16 30 43 56 69 Edge overlap (in %) 0.10 0.05 0.00 Assortativity 3 16 30 43 56 69 Edge overlap (in %) 1.70 1.75 1.80 1.85 Power law exp. 3 16 30 43 56 69 Edge overlap (in %) 0.94 0.96 0.98

  • Rel. edge
  • distr. entr.

3 16 30 43 56 69 Edge overlap (in %) 0.00 0.02 0.04 0.06 0.08 Clustering coeff. 3 16 30 43 56 69 Edge overlap (in %) 0.3 0.4 Gini coeff. Target (input graph) CELL NetGAN

12 / 14

slide-55
SLIDE 55

Experiments (2) CELL is significantly faster

13 / 14

slide-56
SLIDE 56

Experiments (2) CELL is significantly faster

Table: Training time (in seconds) for NetGAN and CELL on a variety of networks. NetGAN requires a GPU, while CELL runs on a CPU. Data set (Nodes/ Edges) NetGAN CELL CORA-ML (2,810/ 7,981) 7,478 21 Citeseer (2,110/ 3,668) 4,654 10 PolBlogs (1,222/ 16,779) 55,276 15 RT-GOP (4,687/ 5,529) 14,800 23 Web-EDU (3,031/ 6,474) 11,000 16

13 / 14

slide-57
SLIDE 57

Conclusion

NetGAN 14 / 14

slide-58
SLIDE 58

Conclusion

NetGAN § Successful graph generative model 14 / 14

slide-59
SLIDE 59

Conclusion

NetGAN § Successful graph generative model § Complicated and not transparent 14 / 14

slide-60
SLIDE 60

Conclusion

NetGAN § Successful graph generative model § Complicated and not transparent Our contribution: conceptual analysis 14 / 14

slide-61
SLIDE 61

Conclusion

NetGAN § Successful graph generative model § Complicated and not transparent Our contribution: conceptual analysis § Uncover inductive bias: low-rank assumption 14 / 14

slide-62
SLIDE 62

Conclusion

NetGAN § Successful graph generative model § Complicated and not transparent Our contribution: conceptual analysis § Uncover inductive bias: low-rank assumption § Starting point to better understand inductive bias 14 / 14

slide-63
SLIDE 63

Conclusion

NetGAN § Successful graph generative model § Complicated and not transparent Our contribution: conceptual analysis § Uncover inductive bias: low-rank assumption § Starting point to better understand inductive bias § Bypass sampling by using a limit argument 14 / 14

slide-64
SLIDE 64

Conclusion

NetGAN § Successful graph generative model § Complicated and not transparent Our contribution: conceptual analysis § Uncover inductive bias: low-rank assumption § Starting point to better understand inductive bias § Bypass sampling by using a limit argument § Propose simplified algorithm with comparable generalization performance 14 / 14

slide-65
SLIDE 65

Conclusion

NetGAN § Successful graph generative model § Complicated and not transparent Our contribution: conceptual analysis § Uncover inductive bias: low-rank assumption § Starting point to better understand inductive bias § Bypass sampling by using a limit argument § Propose simplified algorithm with comparable generalization performance Future work 14 / 14

slide-66
SLIDE 66

Conclusion

NetGAN § Successful graph generative model § Complicated and not transparent Our contribution: conceptual analysis § Uncover inductive bias: low-rank assumption § Starting point to better understand inductive bias § Bypass sampling by using a limit argument § Propose simplified algorithm with comparable generalization performance Future work § Explain contribution of low-rank assumption 14 / 14

slide-67
SLIDE 67

Conclusion

NetGAN § Successful graph generative model § Complicated and not transparent Our contribution: conceptual analysis § Uncover inductive bias: low-rank assumption § Starting point to better understand inductive bias § Bypass sampling by using a limit argument § Propose simplified algorithm with comparable generalization performance Future work § Explain contribution of low-rank assumption 14 / 14