forked from mmistakes/minimal-mistakes
-
Notifications
You must be signed in to change notification settings - Fork 0
/
feed.xml
2355 lines (1516 loc) · 174 KB
/
feed.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.0">Jekyll</generator><link href="https://harryjo97.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://harryjo97.github.io/" rel="alternate" type="text/html" /><updated>2021-03-11T13:27:35+09:00</updated><id>https://harryjo97.github.io/feed.xml</id><title type="html">Graph ML review</title><subtitle>about Graph ML</subtitle><author><name>Jaehyeong Jo</name><email>[email protected]</email></author><entry><title type="html">Wasserstein Embedding For Graph Learning</title><link href="https://harryjo97.github.io/paper%20review/Wasserstein-Embedding-For-Graph-Learning/" rel="alternate" type="text/html" title="Wasserstein Embedding For Graph Learning" /><published>2021-03-10T15:00:00+09:00</published><updated>2021-03-10T15:00:00+09:00</updated><id>https://harryjo97.github.io/paper%20review/Wasserstein-Embedding-For-Graph-Learning</id><content type="html" xml:base="https://harryjo97.github.io/paper%20review/Wasserstein-Embedding-For-Graph-Learning/"><p>[paper review] : WEGL, ICLR 2021</p>
<h2 id="introduction">Introduction</h2>
<p> </p>
<p>기존에 graph-structured data 를 분석하는 방식에는 크게 두 가지가 있습니다. 첫 번째는 GNN 을 사용하는 방법입니다. GNN 은 feature aggregation, graph pooling, classification 세 가지를 거쳐 그래프의 representation 을 학습하며, 다양한 domain 에서 좋은 성능을 보여주고 있습니다.</p>
<p>두 번째 방법은 graph kernel 을 이용하는 방법입니다. kernel 을 통해 두 그래프 사이의 similarity 를 표현하여, SVM 과 같은 classifier 를 통해 그래프를 학습합니다. 대표적인 예로 random walk kernel, Weisfeiler-Lehman kernel 등이 있으며, 최근에는 Wasserstein distance 를 활용한 WWL kernel [4] 에 대한 연구가 진행되었습니다.</p>
<p>GNN 과 graph kernel 을 이용하여 그래프를 학습하는 경우, 모두 그래프의 크기가 커질수록 사용하기 힘들어지는 단점이 있습니다. GNN 은 그래프의 크기가 클수록 학습시 필요한 계산량이 많아져 학습이 어려워지며, graph kernel 의 경우 그래프 쌍마다 similarity 를 계산해야하기 때문에 마찬가지로 크기가 큰 그래프 dataset 에 사용하기 어렵습니다.</p>
<p>논문에서는 그래프에 LOT framework [2] 를 적용해 이런 문제를 해결하려고 합니다. GNN 과 graph kernel 의 장점을 모두 사용하기 위해, node embedding 과 LOT framework 를 결합한 Wasserstein Embedding for Graph Learning (WEGL) 를 제시합니다.</p>
<p> </p>
<h2 id="background">Background</h2>
<h3 id="wasserstein-distance">Wasserstein Distance</h3>
<p>\(\mathbb{R}^d\) 에서 정의된 두 probability measure \(\mu\) 와 \(\nu\) 사이의 2-Wasserstein distance 는 다음과 같이 정의합니다 [7].</p>
\[\mathcal{W}_2(\mu,\nu) = \left( \inf_{\pi\in\Pi(\mu,\nu)} \int\Vert x-y\Vert^2_2\,d\pi(x,y) \right)^{1/2}
\tag{1}\]
<p>여기서 \(\Pi(\mu,\nu)\) 는 transport plan \(\pi\) 들의 집합으로, 각각의 transport plan \(\pi\) 는 모든 Borel subset \(A\) 와 \(B\) 에 대해 \(\pi(A\times\mathbb{R}^d)=\mu(A)\) 와 \(\pi(\mathbb{R}^d\times B)=\nu(B)\) 를 만족합니다.</p>
<p>특히 \(\mu\) 가 Lebesgue measure 에 대해 absolutely continuous 하다면, Brenier theorem [7, 3] 에 의해 \((1)\) 의 정의는 다음과 동일합니다.</p>
\[\mathcal{W}_2(\mu,\nu) = \left( \inf_{f\in MP(\mu,\nu)} \int \Vert z-f(z)\Vert^2_2\,d\mu(z) \right)^{1/2}
\tag{2}\]
<p>여기서 \(MP(\mu,\nu)=\left\{ f:\mathbb{R}^d\rightarrow\mathbb{R}^d \mid \nu(B)=\mu(f^{-1}(B)) \;\; \text{for any Borel set B} \right\}\) 로 정의하며, \(f\in MP(\mu,\nu)\) 를 transport map 이라고 부릅니다. 특히 Brenier theorem [7, 3] 에 의해 optimal transport plan \(\pi^{\ast}\) 는 유일하게 존재하며, \((2)\) 를 만족하는 optimal transport map \(f^{\ast}\) 또한 유일하게 존재합니다. 이를 만족하는 optimal transport map \(f^{\ast}\) 를 Monge map 이라고 부르며, \(T^{\nu}_{\mu}\) 라고 쓰겠습니다.</p>
<p> </p>
<h3 id="lot-framework">LOT Framework</h3>
<p>Linear Optimal Transportation (LOT) framework [2] 는 기존의 optimal transport metric 을 더 빠르게 계산하기 위해 제시된 방법입니다. 기존의 방법은 \(M\) 개의 그래프들에 대해 그래프의 각 쌍마다 2-Wasserstein distance 를 구하려면 총 \(M(M-1)/2\) 번의 거리 계산이 필요하기 때문에, large-scale dataset 에 적용하기 힘듭니다. 이를 해결하기 위해 LOT 는 non-linear 한 distribution space 를 linear 한 function space 로 embedding 시켜, distribution 사이의 복잡한 거리 계산 대신 embedding 사이의 weighted \(L^2\)-norm 을 계산합니다.</p>
<p> </p>
<p>이를 구체적으로 설명하면 다음과 같습니다. \(\mathbb{R}^n\) 에서 정의되며 bounded second momoent 를 가진 probability measure 들의 집합을 \(\mathcal{P}_2(\mathbb{R}^n)\) 이라고 하겠습니다. 또한 \(\sigma\in\mathcal{P}_2(\mathbb{R}^n)\) 에 대해 다음의 norm 으로 정의된 function space \(L^2(\mathbb{R}^n,\sigma)\) 를 생각하겠습니다.</p>
\[\Vert f\Vert^2_{\sigma} = \int \Vert f(z)\Vert^2_2\,d\sigma(z)\]
<p>Lebesgue measure 에 대해 absolutely continuous 한 measure \(\sigma\in\mathcal{P}_2(\mathbb{R}^n)\) 에 대해, probability measure space 에서 function space 로의 LOT embedding \(F_{\sigma} : \mathcal{P}_2(\mathbb{R}^n) \rightarrow L^2(\mathbb{R}^n,\sigma)\) 를 다음과 같이 정의합니다 [7, 3].
\(F_{\sigma}(\nu) = T^{\nu}_{\sigma}
\tag{3}\)</p>
<p> </p>
<p>Monge map 의 정의에 의해, LOT embedding \(F_{\sigma}\) 는 reference measure \(\sigma\) 로부터의 거리를 보존합니다.</p>
\[\begin{align}
\Vert F_{\sigma}(\sigma) - F_{\sigma}(\nu)\Vert_{\sigma}
&amp;= \Vert Id-T^{\nu}_{\sigma}\Vert_{\sigma} \\
&amp;= \int \Vert z - T^{\nu}_{\sigma}(z)\Vert^2_2\,d\sigma(z) \\
&amp;= \mathcal{W}_2(\sigma,\nu)
\tag{4}
\end{align}\]
<p> </p>
<p>특히 measure 들 사이의 2-Wasserstein distance 는 LOT embedding 사이의 거리로 근사할 수 있습니다 [7].</p>
\[\mathcal{W}_2(\mu,\nu) \approx \Vert F_{\sigma}(\mu) - F_{\sigma}(\nu)\Vert_{\sigma}
\tag{5}\]
<p> </p>
<p>LOT 는 크게 두 가지 장점이 있습니다. 먼저 measure 들의 거리 계산이 쉬워진다는 것입니다. 두 probability measure 의 2-Wasserstein distance 를 LOT embedding 들의 weighted \(L^2\)-norm \((5)\) 로 근사할 수 있기 때문에, 기존의 방법으로는 \(M\) 개의 그래프에 대해 \(M(M-1)/2\) 개의 LP 를 풀어야했지만, LOT 를 통해 \(M\) 개의 LP 만을 풀면 충분합니다. 또한 LOT embedding 은 linear 하기 때문에, Euclidean structure (e.g. image) 에 적용할 수 있는 PCA 혹은 LDA 와 같은 방법을 사용할 수 있습니다.</p>
<p> </p>
<h2 id="linear-wasserstein-embedding">Linear Wasserstein Embedding</h2>
<p> </p>
<p>기존의 연구들 [4, 5, 8, 9] 과 마찬가지로 논문에서는 그래프 (혹은 그래프의 embedding) 를 하나의 probability distribution 으로 고려합니다. 주어진 그래프들의 embedding \(\left\{ Z_i = \left[ z^i_1,\cdots,z^i_{N_i} \right]^T\in\mathbb{R}^{N_i\times d} \right\}^{M}_{i=1}\) 와 reference embedding \(Z_0 = \left[ z^0_1,\cdots,z^0_{N} \right]^T\in\mathbb{R}^{N\times d}\) 에 대해, 각 embedding 을 다음과 같이 probability measure 로 나타냅니다.</p>
\[\mu_i=\frac{1}{N_i}\sum^{N_j}_{n=1}\delta_{z^i_n}\;,\;\;\mu_0=\frac{1}{N}\sum^N_{l=1}\delta_{z^0_l}
\tag{6}\]
<p>이 때 \(\mu_0\) 와 \(\mu_i\) 사이의 optimal transportation plan \(\pi^{\ast}_i\) 은 다음의 LP 를 풀어 얻을 수 있습니다.</p>
\[\pi^{\ast}_{i}
= \underset{\pi\in\Pi_i}{\arg\!\min} \sum^{N}_{j=1}\sum^{N_i}_{k=1} \pi_{jk}\Vert z^0_j - z^i_k\Vert^2_2
\tag{7}\]
\[\begin{align}
\Pi_i
= \{ \pi\in\mathbb{R}^{N\times N_i} \;\mid\;
&amp;N_i\sum^N_{j=1}\pi_{jk} = N\sum^{N_i}_{k=1}\pi_{jk}=1, \\
&amp;\forall k\in\{1,\cdots,N_i\},\;\forall j\in\{1,\cdots,N\} \}
\end{align}\]
<p> </p>
<p>LOT embedding \((3)\) 을 계산하기 위해서는 \(\mu_0\) 로부터 \(\mu_i\) 로의 Monge map 을 찾아야합니다. 다음과 같이 barycentric projection [2, 7] 을 사용해, \((7)\) 의 optimal transportation plan 으로부터 \(\mu_0\) 에서 \(\mu_i\) 로의 Monge map \(F_i:z^0_j \mapsto \bar{z^0_j}\) 를 근사할 수 있습니다.</p>
\[\bar{z^0_j} = N\sum^{N_i}_{k=1}\pi^{\ast}_{jk}z^i_{k}
\tag{8}\]
<p>\((8)\) 을 정리하면 다음과 같이 쓸 수 있습니다.
\(F_i = N\left( \pi^{\ast}_iZ_i \right)\in\mathbb{R}^{N\times d}
\tag{9}\)</p>
<p> </p>
<p>\((3)\) 과 \((9)\) 로부터 \(Z_i\) 의 LOT embedding \(F_{\mu_o}(Z_i)\) 를 다음과 같이 계산할 수 있습니다.</p>
\[F_{\mu_o}(Z_i) = F_i = N\left( \pi^{\ast}_iZ_i \right)\in\mathbb{R}^{N\times d}\]
<p> </p>
<p>이 때 \(\mu_0\) 와 \(\mu_0\) 사이의 optimal transport plan 은 \(\frac{1}{N}I_{N\times N}\) 이고 \(F_{\mu_o}(Z_0) = Z_0\) 를 만족하므로, reference \(Z_0\) 의 embedding 을 원점으로 설정하기 위해, 각 LOT embedding \(F_{\mu_0}(Z_i)\) 에서 \(Z_0\) 를 빼주는 변환을 생각합니다. 또한 \((5)\) 의 weighted \(L^2\)-norm 계산을 일반적인 \(L^2\)-norm 으로 바꿔주기 위해, LOT embedding 대신 다음의 linear Wasserstein embedding \(\phi(Z_i)\) 를 정의합니다.
\(\phi(Z_i) = (F_i-Z_0)/\sqrt{N}\in\mathbb{R}^{N\times d}
\tag{10}\)</p>
<p> </p>
<h2 id="wegl--a-linear-wasserstein-embedding-for-graphs">WEGL : A Linear Wasserstein Embedding for Graphs</h2>
<p> </p>
<p>논문에서는 graph classification task 를 위한 Wasserstein Embedding for Graph Learning (WEGL) 를 제시합니다. 먼저 주어진 \(M\) 개의 독립적인 그래프 \(\{G_i=(\mathcal{V}_i,\mathcal{E}_i)\}^{M}_{i=1}\) 들은 diffusion layer 들을 거쳐 node embedding \(\{Z_i\}^{M}_{i=1}\) 로 바뀝니다. 이 후 \(\{Z_i\}^{M}_{i=1}\) 로부터 reference node embedding \(Z_0\) 를 계산하고, \(Z_0\) 에 대한 linear Wasserstein embedding \(\{\phi(Z_i)\}^{M}_{i=1}\) 을 구합니다. 마지막으로, 최종적인 embedding \(\{\phi(Z_i)\}^{M}_{i=1}\) 들을 사용하여 classifier 를 통해 그래프들을 분류됩니다.</p>
<p>WEGL 모델의 input 은 graph dataset, diffusion layer 의 수, final node embedding 의 local pooling 함수, 그리고 classifier 의 종류이며, output 은 그래프의 classification 결과입니다. 다음은 WEGL 의 과정을 표현한 그림입니다.</p>
<p align="center">
<img src="/assets/post/Wasserstein-Embedding-For-Graph-Learning/WEGL.PNG" style="max-width: 100%; height:auto" />
</p>
<p> </p>
<h3 id="node-embedding">Node embedding</h3>
<p>WEGL 의 첫 번째 단계는 그래프들의 node embedding 을 구하는 것입니다. 그래프의 node embedding 에는 다양한 방법이 존재하며 크게 parametric 한 방법과 non-parametric 한 방법으로 나눌 수 있습니다. 만약 parametric embedding 을 사용한다면, 학습 과정에서 node embedding 이 달라질 때마다 linear Wasserstein embedding 을 계산해야합니다. 따라서 WEGL 에서는 복잡한 계산을 줄이기 위해 non-parametric diffusion layer 를 사용합니다.</p>
<p> </p>
<p>주어진 그래프 \(G=(\mathcal{V},\mathcal{E})\) 의 node feature \(\{x_v\}_{v\in\mathcal{V}}\) 들과 scalar edge feature \(\{w_{uv}\}_{(u,v)\in\mathcal{E}}\) 에 대해, diffusion layer 는 다음과 같이 정의됩니다.</p>
\[x^{(l)}_v = \sum_{u\in N(v)\cup\{v\}}\frac{w_{uv}}{\sqrt{\text{deg}(u)\text{deg}(v)}}\,x^{(l-1)}_u
\tag{11}\]
<p>Self-loop \((v,v)\) 를 포함해 scalar edge feature 가 주어지지 않은 edge \((u,v)\) 들에 대해서는 모두 1 로 설정해줍니다. 특히 \((11)\) 에서 \(\sqrt{\text{deg}(u)\text{deg}(v)}\) 를 통해 noramlize 해주는 방법은 GCN 의 propagation rule 에서도 볼 수 있습니다.</p>
<p> </p>
<p>만약 edge feature 가 scalar 가 아닌 multiple features \(w_{uv}\in\mathbb{R}^{F}\) 로 주어진다면, \((11)\) 의 diffusion layer 를 다음과 같이 바꿔줍니다. 여기서 \(\text{deg}_f(u) = \sum_{v\in\mathcal{V}}w_{uv,f}\) 로 정의합니다.</p>
\[x^{(l)}_v = \sum_{u\in N(v)\cup\{v\}}\left( \sum^F_{f=1}\frac{w_{uv,f}}{\sqrt{\text{deg}_f(u)\text{deg}_f(v)}}\right)\,x^{(l-1)}_u
\tag{12}\]
<p> </p>
<p>마지막으로 node feature \(\{x^{(l)}_v\}^{L}_{l=0}\) 들에 대한 local pooling \(g\) 로 최종 node embedding 을 구합니다.</p>
\[z_v = g\left( \left\{x^{(l)}_v\right\}^{L}_{l=0} \right) \in\mathbb{R}^d
\tag{13}\]
<p>\((13)\) 의 local pooling \(g\) 로는 concatenation 또는 averaging 을 사용합니다.</p>
<p>주어진 \(M\) 개의 그래프 \(\left\{G_i=(\mathcal{V}_i,\mathcal{E}_i)\right\}^M_{i=1}\) 들에 대해, node embedding \(\left\{Z_i\right\}^M_{i=1}\) 는 위의 과정을 따라 다음과 같이 표현할 수 있습니다.</p>
\[Z_i = h\left(G_i\right) = \begin{bmatrix}
z_1,\;\cdots\;,\;z_{\vert \mathcal{V}_i\vert}
\end{bmatrix}^T \in \mathbb{R}^{\vert\mathcal{V}_i\vert\times d}\]
<p> </p>
<h3 id="reference-distribution">Reference Distribution</h3>
<p>LOT embedding 을 위한 reference embedding 을 정하는 방법에는 여러 가지가 있으며, 논문에서는 그래프들의 node embedding \(\cup^M_{i=1} Z_i\) 에 대해 \(N=\left\lfloor\frac{1}{M}\sum^M_{i=1}N_i \right\rfloor\) 개의 centroid 들을 가지도록 \(k\)-means clustering 을 통해 reference node embedding \(Z_0\) 을 계산합니다.</p>
<p>또한 node embedding \(\{Z_i\}^{M}_{i=1}\) 들에 대한 Wasserstein barycenter, 혹은 normal distribution 으로부터 뽑은 \(N\) 개의 sample 들로도 reference embedding 을 구성할 수 있습니다. 이론적으로 linear Wasserstein embedding 의 결과는 reference 에 따라 달라지지만, 실험적으로 WEGL 의 성능은 reference 에 따라 큰 차이를 보이지 않습니다.</p>
<p> </p>
<h3 id="linear-wasserstein-embedding-1">Linear Wasserstein Embedding</h3>
<p>\((9)\) 와 \((10)\) 를 통해 reference embedding \(Z_0\) 에 대한 linear Wasserstein embedding \(\phi(Z_i)\in\mathbb{R}^{N\times d}\) 를 계산합니다. 이 때 \((9)\) 를 계산하기 위해 총 \(M\) 개의 LP 를 풀어야합니다. 기존의 Wasserstein distance 를 사용한 방법들은 그래프의 쌍마다 LP 를 풀어야하기 때문에 총 \(M(M-1)/2\) 개의 LP 를 풀어야하므로, linear Wasserstein Embedding 을 사용하면 필요한 계산량이 훨씬 줄어듭니다.</p>
<p> </p>
<h3 id="classifier">Classifier</h3>
<p>WEGL 의 최종 단계는 linear Wasserstein embedding \(\{\phi(Z_i)\}^{M}_{i=1}\) 을 사용해 classifier 로 그래프들을 분류하는 것입니다. WEGL 의 장점 중 하나는 task 에 맞는 classifier 를 선택할 수 있다는 점입니다. 논문에서는 classifier 로 AuotML, random forest, RBF kernel 을 이용한 SVM 을 사용했습니다.</p>
<p> </p>
<h2 id="experimental-evaluation">Experimental Evaluation</h2>
<p> </p>
<p>논문에서는 2 가지의 graph classification task 에 대해 WEGL 의 성능을 평가했습니다.</p>
<h3 id="molecular-property-prediction">Molecular Property Prediction</h3>
<p>첫 번째 task 는 molecular property prediction task 로 ogbg-molhiv dataset 을 사용했습니다. ogbg-molhiv dataset 은 Open Graph Benchmark 의 일부로 dataset 의 각각의 그래프는 분자를 나타냅니다. 그래프의 node 는 원자를, edge 는 원자들 사이의 결합을 표현하며, 이로부터 각각의 분자가 HIV 를 억제하는지에 대해 이진분류하는 것이 목표입니다.</p>
<p>실험의 baseline 모델로는 GCN, GIN, DeeperGCN, HIMP 를 사용했습니다. 또한 특별하게 ogbg-molhiv dataset 에 대해서는 virtual node 를 사용하는 방법이 좋은 성능을 보여주기 때문에, 각 모델들의 virtual node variant 들과도 성능을 비교했습니다. 각 모델의 성능을 ROC-AUC 로 측정한 결과는 다음과 같습니다.</p>
<p align="center">
<img src="/assets/post/Wasserstein-Embedding-For-Graph-Learning/ogbg-molhiv.PNG" style="max-width: 100%; height:auto" />
</p>
<p>WEGL 에 AutoML classifier 를 사용했을 때 state-of-the-art performance 를 보여주며, random forest classifier 를 사용했을 때도 준수한 성능을 보여줍니다. 특히 GNN 모델들과 같이 end-to-end 학습 없이도 large-scale graph dataset 에 적용될 수 있음을 알 수 있습니다.</p>
<p>또한 linear Wasserstein embedding 의 효과를 입증하기 위한 ablatin study 를 진행했습니다. WEGL 에서 Wasserstein embedding 대신 global average pooling (GAP) 를 사용한 경우 test ROC-AUC 가 확연히 줄어드는 것을 확인할 수 있습니다.</p>
<p> </p>
<h3 id="tud-benchmark">TUD Benchmark</h3>
<p>두 번째로는 social network, bioinformatics, 그리고 molecular graph dataset 에서 실험을 진행했습니다. 첫 번째 실험과 다르게 GNN baseline 뿐만 아니라, graph classification 에서 좋은 성능을 보여주는 graph kernel 들을 함께 비교했습니다. WEGL 의 classifier 로는 random forest, RBF kernel 을 이용한 SVM, 그리고 GBDT 를 사용했습니다. 각 dataset 들에 대한 graph classification accuracy 는 다음의 표에서 확인할 수 있습니다.</p>
<p align="center">
<img src="/assets/post/Wasserstein-Embedding-For-Graph-Learning/TUD.PNG" style="max-width: 100%; height:auto" />
</p>
<p>WEGL 은 거의 state-of-the-art performance 에 근접한 성능을 가지는 것을 볼 수 있으며, 특히 모든 dataset 에 대해 top-3 performance 를 보여줍니다. 이로부터 WEGL 이 다양한 domain 에서의 graph 들을 잘 학습함을 알 수 있습니다.</p>
<p> </p>
<h3 id="computation-time">Computation Time</h3>
<p>마지막으로 WEGL 의 computational efficiency 를 확인하기 위해 학습과 추론에서의 wall-clock time 을 GIN 과 WWL kernel [4] graph kernel 과 비교했습니다. 각 모델의 training time 과 inference time 을 dataset 의 그래프 수, 그래프의 평균적인 node 수, 그리고 그래프의 평균적인 edge 수를 달라히며 측정하였습니다. 결과는 다음의 그래프에서 확인할 수 있습니다.</p>
<p align="center">
<img src="/assets/post/Wasserstein-Embedding-For-Graph-Learning/time.PNG" style="max-width: 100%; height:auto" />
</p>
<p>WEGL 은 다른 모델들과 비교해 비슷하거나 훨씬 좋은 성능을 보여줍니다. 특히 그래프의 수가 많아질수록 GIN, WWL 과 비교해 학습 시간이 짧았습니다. GPU 를 사용한 GIN 과 비교해 추론 시간은 조금 길었지만, WEGL 이 CPU 를 사용한 점을 감안하면 그 차이는 크지 않습니다.</p>
<p> </p>
<h2 id="future-work">Future Work</h2>
<p> </p>
<p>WEGL 모델의 단점은 end-to-end 학습이 불가능하다는 것입니다. 특히 GNN 과 같이 node embedding 을 학습하지 않고 non-parametric diffusion layer 를 사용했기 때문에, graph representation 이 제대로 이루어졌는지가 의문입니다. 만약 WEGL 이 end-to-end 학습이 가능하다면, \((6)\) 과 같이 그래프를 probability measure 로 고려할 때, attention 을 적용해 node 마다 다른 weight 을 가지도록 학습하는 방법을 생각해 볼 수 있습니다.</p>
<p>또한 Wasserstein distance (optimal transport) 의 가장 큰 약점은 rescaling, translation, rotation 과 같은 transformation 들에 대해 invariant 하지 못하다는 것입니다. 따라서 Wasserstein distance 대신 Gromov-Wasserstein distance 를 사용한다면, permutation invariant 한 모델을 만들 수 있다고 기대합니다.</p>
<p>마지막으로 \((7)\) 로부터 optimal transport plan 을 계산할 때, entropy regularization 을 적용해 계산을 줄일 수 있습니다. 논문의 실험에서 사용한 dataset 의 크기가 크지 않아 entropy regularization 의 효과가 크지 않았지만, dataset 의 크기가 커질 경우 큰 도움이 될 것입니다.</p>
<p> </p>
<h2 id="reference">Reference</h2>
<p> </p>
<ol>
<li>
<p>Soheil Kolouri, Navid Naderializadeh, Gustavo K Rohde, and Heiko Hoffmann. <a href="https://arxiv.org/pdf/2006.09430.pdf">Wasserstein embedding for graph learning</a>. arXiv preprint arXiv:2006.09430, 2020.</p>
</li>
<li>
<p>Wei Wang, Dejan Slepcev, Saurav Basu, John A Ozolek, and Gustavo K Rohde. <a href="https://link.springer.com/article/10.1007/s11263-012-0566-z">A linear optimal transportation framework for quantifying and visualizing variations in sets of images</a>. International Journal of Computer Vision, 101(2):254–269, 2013.</p>
</li>
<li>
<p>Caroline Moosmüller and Alexander Cloninger. <a href="https://arxiv.org/pdf/2008.09165.pdf">Linear optimal transport embedding: Provable
fast wasserstein distance computation and classification for nonlinear problems</a>. arXiv preprint
arXiv:2008.09165, 2020.</p>
</li>
<li>
<p>Matteo Togninalli, Elisabetta Ghisu, Felipe Llinares-López, Bastian Rieck, and Karsten Borgwardt.
<a href="https://arxiv.org/pdf/1906.01277.pdf">Wasserstein Weisfeiler-Lehman graph kernels</a>. In Advances in Neural Information Processing
Systems, pp. 6436–6446, 2019.</p>
</li>
<li>
<p>G. Bécigneul, O.-E. Ganea, B. Chen, R. Barzilay, and T. Jaakkola. <a href="https://arxiv.org/pdf/2006.04804.pdf">Optimal Transport Graph Neural Networks</a>. arXiv preprint arXiv:2006.04804</p>
</li>
<li>
<p>WEGL Github code : <a href="https://github.com/navid-naderi/WEGL">https://github.com/navid-naderi/WEGL</a></p>
</li>
<li>
<p>Peyré, G., Cuturi, M., et al. <a href="https://arxiv.org/pdf/1803.00567.pdf">Computational optimal transport</a>. Foundations and Trends® in Machine Learning, 11(5-6):355–607, 2019.</p>
</li>
<li>
<p>T. Vayer, L. Chapel, R. Flamery, R. Tavenard, and N. Courty. <a href="https://arxiv.org/pdf/1805.09114.pdf">Optimal transport for structured data with application on graphs</a>. In International Conference on Machine Learning (ICML), 2019.</p>
</li>
<li>
<p>H. P. Maretic, M. E. Gheche, G. Chierchia, and P. Frossard. <a href="https://arxiv.org/pdf/1906.02085.pdf">GOT: An optimal transport framework for graph comparison</a>. In 33rd Conference on Neural Information Processing Systems (NeurIPS), 2019.</p>
</li>
</ol></content><author><name>Jaehyeong Jo</name><email>[email protected]</email></author><category term="["paper review"]" /><category term="Optimal Transportation" /><summary type="html">[paper review] : WEGL, ICLR 2021</summary></entry><entry><title type="html">Invariant and Equivariant Graph Networks</title><link href="https://harryjo97.github.io/paper%20review/Invariant-and-Equivariant-Graph-Networks/" rel="alternate" type="text/html" title="Invariant and Equivariant Graph Networks" /><published>2021-03-05T11:00:00+09:00</published><updated>2021-03-05T11:00:00+09:00</updated><id>https://harryjo97.github.io/paper%20review/Invariant-and-Equivariant-Graph-Networks</id><content type="html" xml:base="https://harryjo97.github.io/paper%20review/Invariant-and-Equivariant-Graph-Networks/"><p>[paper review] : Invariant and Equivariant Graph Networks, ICLR 2019</p>
<h2 id="motive">Motive</h2>
<h3 id="translation-invariance">Translation Invariance</h3>
<p>CNN 의 translation invariant 한 특성은 이미지를 학습하는 데 큰 장점이 됩니다. 이와 같이 translation invariant 한 모델을 만드는 방법으로 Multi-layer perceptron (MLP) 이 있습니다. MLP 를 통해 임의의 연속 함수를 근사할 수 있기 때문에, translation invariant 한 함수 \(f\) 를 모델링하는 MLP 를 만들 수 있습니다. MLP 의 기본적인 형태는 non-linear function \(\sigma\) 와 linear function \(L(x) = Ax+b\) 로 구성된 layer 들로 이루어고, 각 layer 는 \(\mathcal{L}(x) = \sigma(L(x))\) 의 형태를 가집니다.</p>
<p> </p>
<p align="center">
<img src="../assets/post/Invariant-and-Equivariant-Graph-Networks/mlp.PNG" style="max-width: 70%; height: auto" />
</p>
<p> </p>
<p>일반적인 MLP 의 경우 input size 가 커질수록, depth 가 깊어질수록 parameter 의 수가 감당할 수 없을 정도로 커집니다. Parameter 의 수를 줄이고 translation invariant 속성을 유지하기 위해서, \(L(x) = Ax+b\) 대신 transform invariant 한 linear operator 를 사용합니다.</p>
<p> </p>
<p align="center">
<img src="../assets/post/Invariant-and-Equivariant-Graph-Networks/mlp-invariant.PNG" style="max-width: 70%; height: auto" />
</p>
<p> </p>
<p>하지만 이미지의 한 픽셀은 다른 임의의 픽셀로 보내지는 translation 을 찾을 수 있기 때문에, transform invariant operator 는 각 픽셀들의 value 를 모두 더해주는 sum operator 와 일치합니다. 모든 픽셀 value 를 더해주는 것은 이미지의 세부 정보를 무시하기에, 의미 있는 operator 라 할 수 없습니다.</p>
<p>이 때 transform invariant operator 대신, CNN 의 convolution 과 같이 translation equivariant linear operator 를 사용할 수 있습니다. MLP \(m\), invariant linear layer \(h\), non-linear activation \(\sigma\) 와 equivariant linear layer \(L_i\) 들을 통해, 다음과 같이 invariant function \(f\) 를 만들 수 있습니다.</p>
\[f = m\circ h\circ L_k\circ\sigma\circ \cdots \circ\sigma\circ L_1
\tag{1}\]
<p> </p>
<p align="center">
<img src="../assets/post/Invariant-and-Equivariant-Graph-Networks/mlp-equivariant.PNG" style="max-width: 100%; height: auto" />
</p>
<p>\((1)\) 에서 적절한 layer 들의 선택으로 다양한 invariant model 을 얻을 수 있습니다.</p>
<h3 id="invariant-graph-networks">Invariant Graph Networks</h3>
<p>이미지에서 translation invariant function 을 통해 feature 를 학습하는 것과 같이, 그래프에서는 permutation invariant function 을 통해 node representation 을 학습할 수 있습니다. 위와 같이 \((1)\) 을 통해 permutation invariant 한 function 을 만들어 낼 수 있고, 이 모델을 Invariant Graph Network (IGN) 라 부릅니다.</p>
<p> </p>
<h2 id="graphs-as-tensors">Graphs as Tensors</h2>
<p>\(n\) 개의 node 를 가진 그래프를 생각해봅시다. 각 node \(i\) 마다 value \(x_i\in\mathbb{R}\) 를 가지고 각 edge \((i,j)\) 마다 value \(x_{ij}\in\mathbb{R}\) 를 가진다면, 이는 \(X\in\mathbb{R}^{n\times n}\) tensor 를 통해 다음과 같이 표현할 수 있습니다.</p>
\[X_{ij} = \begin{cases}
x_i &amp;\mbox{ if }\; i=j \\
x_{ij} &amp; \mbox{ if }\; i\neq j
\end{cases}\]
<p align="center">
<img src="/assets/post/Invariant-and-Equivariant-Graph-Networks/2-tensor.PNG" style="max-width: 50%; height: auto" />
</p>
<p>이 표현법을 hypergraph 에 대해서도 일반화할 수 있습니다. \(n\) 개의 node 를 가지는 hypergraph 에 대해, 각 hyper-edge 는 \((i_1,\cdots,i_k)\in [n]^k\) 의 형태로 나타낼 수 있습니다. 따라서 \((1)\) 과 마찬가지로, hypergraph 또한 \(X\in\mathbb{R}^{n^k}\) tensor 로 표현할 수 있습니다.</p>
<p align="center">
<img src="/assets/post/Invariant-and-Equivariant-Graph-Networks/k-tensor.PNG" style="max-width: 50%; height: auto" />
</p>
<p>만약 hyper-edge 들이 \(a\) 차원의 value 를 가진다면, \(X\in\mathbb{R}^{n^k\times a}\) tensor 로 표현할 수 있습니다.</p>
<p> </p>
<h2 id="permutation-invariance--equivariance">Permutation Invariance &amp; Equivariance</h2>
<p>이미지에서의 translation 은 symmetry 의 한 종류입니다. 그래프에 있어 symmetry 는 node 순서의 재배열 (re-ordering) 을 통해 해석할 수 있습니다.</p>
<p align="center">
<img src="../assets/post/Invariant-and-Equivariant-Graph-Networks/symmetry.PNG" style="max-width: 70%; height: auto" />
</p>
<h3 id="permutation-of-tensors">Permutation of Tensors</h3>
<p>그래프 node 가 재배열되면, 그에 따라 그래프 tensor 또한 변하게 됩니다.</p>
<p align="center">
<img src="../assets/post/Invariant-and-Equivariant-Graph-Networks/permutation.PNG" style="max-width: 70%; height: auto" />
</p>
<p>Permutation \(p\in S_n\) 와 \(k\)-tensor \(X\in\mathbb{R}^{n^k}\) 에 대해, \(X\) 에 대한 permutation \(p\) 는 각 hyper-edge \((i_1,\cdots,i_k)\in [n]^k\) 에 대해 다음과 같이 쓸수 있습니다.</p>
\[(p\cdot X)_{i_1,\cdots,i_k} = X_{p^{-1}(i_1),\cdots,p^{-1}(i_k)}
\tag{2}\]
<h3 id="permutation-invariance">Permutation Invariance</h3>
<p>함수 \(f\) 가 permutation invariant 하다는 것은, input element 들의 순서와 상관 없이 output 이 같다는 뜻입니다. \(f\) 의 input 이 tensor 일 경우, permutation invariant 는 다음과 같이 나타낼 수 있습니다.</p>
\[f(p\cdot A) = f(A)
\tag{3}\]
<h3 id="permutation-equivariance">Permutation Equivariance</h3>
<p>함수 \(f\) 가 permutation equivariant 하다는 것은, 임의의 permutation \(p\) 에 대해 \(p\) 와 \(f\) 가 commute 함을 의미합니다. \(f\) 의 input 이 tensor 일 경우, permutation equivariant 는 다음과 같이 나타낼 수 있습니다.</p>
\[f(p\cdot A) = p\cdot f(A)
\tag{4}\]
<p> </p>
<h2 id="notation">Notation</h2>
<p>논문에 나오는 notation 들을 정리하면 다음과 같습니다.</p>
<table>
<thead>
<tr>
<th style="text-align: center"><center> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; notation &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <center></center></center></th>
<th><center> explanation <center></center></center></th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center">\([\,\cdot\,]\)</td>
<td>\([n]=\{1,\cdots,n\}\)</td>
</tr>
<tr>
<td style="text-align: center">\(\text{vec}(\,\cdot\,)\)</td>
<td>\(X\) 의 column 들을 쌓아 만든 행렬; \(\mathbb{R}^{a\times b}\) matrix \(X\) 에 대해 \(\text{vec}(X)\in\mathbb{R}^{ab\times 1}\)</td>
</tr>
<tr>
<td style="text-align: center">\([\text{vec}(\,\cdot\,)]\)</td>
<td>\([\text{vec}(X)]=X\)</td>
</tr>
<tr>
<td style="text-align: center">\(\otimes\)</td>
<td>Kronecker product</td>
</tr>
<tr>
<td style="text-align: center">\(P^{\otimes k}\)</td>
<td>\(\overbrace{P\otimes \cdots \otimes P}^{k}\)</td>
</tr>
<tr>
<td style="text-align: center">\(b(l)\)</td>
<td>\(l\) 번째 bell number</td>
</tr>
</tbody>
</table>
<p> </p>
<h2 id="fixed-point-equations">Fixed-Point Equations</h2>
<p> </p>
<p>먼저 permutation invariant linear operator 에 대해 알아보겠습니다. 일반적인 linear operator \(L:\mathbb{R}^{n^k}\rightarrow\mathbb{R}\) 을 \(\mathbb{R}^{1\times n^k}\) matrix \(\mathbf{L}\) 로 나타낼 때, \(L\) 이 permutation invaraint 하다면 임의의 permutation \(p\in S_n\) 에 대해 다음을 만족해야합니다.<br />
\(\mathbf{L}\text{vec}(p\cdot A) = \mathbf{L}\text{vec}(A)
\tag{5}\)</p>
<p> </p>
<p>Permutation \(p\in S_n\) 를 나타내는 matrix \(P\) 에 대해 \(\text{vec}(p\cdot A) = P^{T\otimes k}\text{vec}(A)\) 이기 때문에, \((5)\) 는 다음과 같이 쓸 수 있습니다.</p>
\[P^{T\otimes k}\mathbf{L}\text{vec}(A) = \mathbf{L}\text{vec}(A)
\tag{6}\]
<p>\((6)\) 은 모든 \(A\in\mathbb{R}^{n^k}\) 에 대해 성립해야하기 때문에,</p>
\[P^{T\otimes k}\mathbf{L} = \mathbf{L}
\tag{7}\]
<p>\((7)\) 의 양변에 transpose 를 취하면, 다음의 fixed-point equation 을 얻을 수 있습니다.</p>
\[P^{\otimes k}\text{vec}(\mathbf{L}) = \text{vec}(\mathbf{L})
\tag{8}\]
<p> </p>
<p>이제 permutation equivariant linear operator 에 대해 알아보겠습니다. 일반적인 linear operator \(L:\mathbb{R}^{n^k}\rightarrow\mathbb{R}^{n^k}\) 을 \(\mathbb{R}^{n^k\times n^k}\) matrix \(\mathbf{L}\) 로 나타낼 때, \(L\) 이 permutaion equivariant 하다면 임의의 permutation \(p\in S_n\) 에 대해 다음을 만족해야합니다.</p>
\[[\mathbf{L}\text{vec}(p\cdot A)] = p\cdot[\mathbf{L}\text{vec}(A)]
\tag{9}\]
<p> </p>
<p>양변에 \(\text{vec}(\cdot)\) 을 취하고 \(\text{vec}(p\cdot A) = P^{T\otimes k}\text{vec}(A)\) 을 이용하면, \((9)\) 를 다음과 같이 쓸 수 있습니다.
\(\mathbf{L}P^{T\otimes k}\text{vec}(A) = P^{T\otimes k}\mathbf{L}\text{vec}(A)
\tag{10}\)</p>
<p> </p>
<p>\((10)\) 은 모든 \(A\in\mathbb{R}^{n^k}\) 에 대해 성립해야하며 \(P^{T\otimes k}\) 의 역행렬이 \(P^{\otimes k}\) 이므로,
\(P^{\otimes k}\mathbf{L}P^{T\otimes k} = \mathbf{L}
\tag{11}\)</p>
<p> </p>
<p>\((11)\) 의 양변에 \(\text{vec}(\cdot)\) 을 취하고 Kronecker product 의 성질인 \(\text{vec}(XAY) = Y^T\otimes X\text{vec}(A)\) 을 사용하면 다음의 fixed-point equation 을 얻을 수 있습니다.
\(P^{\otimes 2k}\text{vec}(\mathbf{L}) = \text{vec}(\mathbf{L})
\tag{12}\)</p>
<p> </p>
<h2 id="solving-the-fixed-point-equations">Solving the Fixed-Point Equations</h2>
<p> </p>
<p>모든 permutation invaraint / equivariant 한 linear operator 들을 찾아내는 것은, \((8)\) 과 \((12)\) 의 해를 구하는 것과 같습니다. 즉 다음과 같은 fixed-point equation 의 해 \(X\in\mathbb{R}^{n^l}\) 를 구해야합니다.</p>
\[P^{\otimes l}\text{vec}(X) = \text{vec}(X)
\tag{13}\]
<p> </p>
<p>이 때, \(P^{\otimes l}\text{vec}(X)=\text{vec}(p^{-1}\cdot X)\) 이므로, \((13)\) 은 다음과 같이 정리할 수 있습니다.</p>
\[q\cdot X = X \;\;\text{for all permutation} \;\; q\in S_{n}
\tag{14}\]
<p> </p>
<p>\((14)\) 에 대한 solution space 의 basis 를 특별한 equivalence relation 을 통해 표현하려고 합니다. \(a,\, b\in\mathbb{R}^l\) 에 대해 equivalence relation \(\sim\) 을 다음과 같이 정의하겠습니다.</p>
\[a\sim b \;\text{ iff }\; a_i=a_j \Leftrightarrow b_i=b_j \;\forall i,j\in [\,l\,]\]
<p>\(a\in\mathbb{R}^l\) 에 대해 \(a_i\) 값이 같은 index \(i\) 들로 \([\,l\,]\) 을 분할한 집합을 \(S_a\) 라고 한다면, \(a\sim b\) 임은 \(S_a=S_b\) 와 동치입니다. 따라서, equivalence classes 들은 \([\,l\,]\) 의 분할과 일대일 대응됩니다. 예를 들어, \(l=2\) 라면 equivalence class 는 \(\{a\in\mathbb{R}^2: a_1=a_2\}\) 와 \(\{a\in\mathbb{R}^2: a_1\neq a_2\}\) 두 개 뿐입니다. 이 때 \(\{a\in\mathbb{R}^2: a_1=a_2\}\) 는 \(\{ \{1,2\} \}\) 와, \(\{a\in\mathbb{R}^2: a_1=a_2\}\) 는 \(\{\{1\},\{2\}\}\) 와 대응됩니다. 일대일 대응에 의해, equivalence class 는 총 \(b(l)\) 개 존재합니다.</p>
<p> </p>
<p>결론적으로, \(X\) 가 \((14)\) 의 해인 것과 \(X\) 가 각각의 equivalence class 내에서 상수라는 것이 동치입니다. 증명은 다음과 같습니다. 먼저 \(X\) 가 각 equivalence class 내에서 상수라고 가정하겠습니다. 임의의 permutation \(q\in S_n\) 와 \(a\mathbb{R}^l\) 에 대해, \(a_i=a_j \Leftrightarrow q(a_i)=q(a_j)\) 이므로 \(a\sim q(a)\) 이고, 가정에 의해 \(X_a=X_{q(a)}\) 를 만족합니다. \((14)\) 에서 양변의 \(a\in\mathbb{R}^l\) 성분을 비교하면 \(X_a=X_{q(a)}\) 이므로, \(X\) 는 \((14)\) 의 해입니다.</p>
<p>반대로, \(X\) 가 \((14)\) 의 해라고 가정하겠습니다. 만약, \(a\sim b\) 라면 permutation \(q\) 가 존재해 \(b=q(a)\) 를 만족합니다. 이 때 \(X_a\neq X_b\) 라면, \(X\) 가 \((14)\) 의 해라는 것에 모순이므로, \(X\) 가 각 equivalence class 내에서 상수여야 합니다.</p>
<p>이제 각 equivalence class \(\gamma\in [n]^l/\sim\) 에 대해 tensor \(B^{\gamma}\in\mathbb{R}^l\) 을 다음과 같이 정의하겠습니다.</p>
\[B^{\gamma}_a = \begin{cases}
1 &amp;\mbox{ if }\; a\in\gamma \\
0 &amp;\mbox{ otherwise}
\end{cases}
\tag{15}\]
<p>\((14)\) 의 해 \(X\) 에 대해 \(X\) 가 각 equivalence class 내에서 상수여야 하므로, \(X\) 는 \(B^{\gamma}\) 들의 linear combination 으로 표현할 수 있습니다. 또한 \(B^{\gamma}\) 들의 support 는 disjoint 하므로, orthogonal 합니다. 따라서 \(B^{\gamma}\) 들은 \((14)\) 에 대한 solution space 의 orthogonal basis 를 이룹니다. 이 때, equivalence class 는 총 \(b(l)\) 개 존재하므로 solution space 는 \(b(l)\) 차원입니다.</p>
<p> </p>
<p>\(n=5\), \(k=2\) 일 때 permutation equivariant linear operator 공간의 orthogonal basis 는 다음과 같습니다.</p>
<p align="center">
<img src="../assets/post/Invariant-and-Equivariant-Graph-Networks/basis.PNG" style="max-width: 100%; height: auto" />
</p>
<p>특히 \(b(2k)=b(4)=15\) 이므로 총 15개의 basis element 가 존재한다는 것을 확인할 수 있습니다.</p>
<p> </p>
<h2 id="reference">Reference</h2>
<ol>
<li>
<p>Maron, H., Ben-Hamu, H., Shamir, N., and Lipman, Y. (2019). <a href="https://arxiv.org/pdf/1812.09902.pdf">Invariant and equivariant graph
networks</a>. In International Conference on Learning Representations.</p>
</li>
<li>
<p>Zaheer, M., Kottur, S., Ravanbakhsh, S., Poczos, B., Salakhutdinov, R. R., and Smola, A. J. (2017).
<a href="https://arxiv.org/abs/1703.06114">Deep sets</a>. In Advances in Neural Information Processing Systems, pages 3391–3401.</p>
</li>
<li>
<p>H. Maron, H. Ben-Hamu, H. Serviansky, and Y. Lipman. <a href="https://arxiv.org/pdf/1905.11136.pdf">Provably Powerful Graph Networks</a>. In Neural
Information Processing Systems (NeurIPS), pages 2153–2164, 2019.</p>
</li>
<li>
<p>Deep Learning of Irregular Data <a href="http://irregulardeep.org/An-introduction-to-Invariant-Graph-Networks-(1-2)/">An Introduction To Invariant Graph Networks (1:2)</a></p>
</li>
</ol></content><author><name>Jaehyeong Jo</name><email>[email protected]</email></author><category term="["paper review"]" /><category term="Analysis" /><summary type="html">[paper review] : Invariant and Equivariant Graph Networks, ICLR 2019</summary></entry><entry><title type="html">Continuous Graph Neural Networks</title><link href="https://harryjo97.github.io/paper%20review/Continuous-Graph-Neural-Networks/" rel="alternate" type="text/html" title="Continuous Graph Neural Networks" /><published>2021-02-25T20:00:00+09:00</published><updated>2021-02-25T20:00:00+09:00</updated><id>https://harryjo97.github.io/paper%20review/Continuous-Graph-Neural-Networks</id><content type="html" xml:base="https://harryjo97.github.io/paper%20review/Continuous-Graph-Neural-Networks/"><p>[paper review] CGNN, ICML 2020</p>
<h2 id="introduction">Introduction</h2>
<p> </p>
<p>GCN 의 propagation rule 은 neighbor node representation 들을 모아 각 node representation 을 update 합니다 [3]. 이 때 update 과정에서 각 node 와 주변의 node 들의 representation 이 점점 비슷해집니다. GCN layer 를 많이 쌓을수록 node 들의 representation 이 같은 값으로 수렴하는 over-smoothing 이 발생하기 쉽고, 이는 GCN 의 performance 를 저해하게 됩니다 [4]. 깊은 모델은 node feature 들의 복잡한 상호작용을 표현할 수 있기 때문에, over-smoothing 을 해결하는 것이 GNN 의 성능 향상에 있어 중요한 과제입니다.</p>
<p>논문에서는 node representation 의 시간에 따른 연속적인 변화를 표현할 수 있는 CGNN 모델을 제시합니다. CGNN 은 node representation 의 변화를 ODE 를 통해 표현하여 기존의 discrete GNN 을 연속적인 모델로 일반화시킵니다. ODE 에 restart distribution 을 추가하여 over-smoothing 문제를 해결하고, 그로 인해 node 들의 long-range dependency 를 학습할 수 있습니다. 특히 node classification 에 있어 기존의 GNN 모델들보다 성능이 뛰어나며, memory efficient 한 continuous-depth 모델입니다.</p>
<p> </p>
<h2 id="preliminaries">Preliminaries</h2>
<p> </p>
<p>Simple undirected graph \(G=(V,E)\) 의 adjacent matrix 를 \(Adj\) , degree matrix 를 \(D\) 라고 하겠습니다. 이 때 node 들의 degree 가 서로 다를 수 있기 때문에, normalized adjacent matrix \(D^{-1/2}Adj\,D^{-1/2}\) 를 주로 사용합니다. 하지만 normalized adjacent matrix 의 eigenvalue 는 \([-1,1]\) 구간에 존재하기 때문에, normalized adjacent matrix 로 정의된 convolution 을 사용할 경우 exploding / vanishing gradient 와 같은 instability 가 발생할 수 있습니다 [3].</p>
<p>따라서 [3] 에서는 renormalization trick 을 통해 normalized adjacent matrix 대신 \(\hat{A} = \tilde{D}^{-1/2}\tilde{A}\,\tilde{D}^{-1/2}\) 을 사용합니다. GCN 의 \(n\) 번째 layer 의 node representation \(H_n\) 과 weight matrix \(W\) 를 통해, propagation rule 을 다음과 같이 쓸 수 있습니다.</p>
\[H_{n+1} = \hat{A}\,H_nW\]
<p> </p>
<p>논문에서는 normalized adjacent matrix 의 eigenvalue 의 크기를 조절하기 위해, renormalization trick 대신 parameter \(\alpha\in (0,1)\) 을 사용여 다음과 같은 regularized adjacency matrix \(A\) 를 사용합니다.</p>
\[A = \frac{\alpha}{2}\left(I + D^{-1/2}Adj\,D^{-1/2} \right)
\tag{1}\]
<p>이 때 정의에 의해 \(A\) 는 diagonalizable 하므로 \(A=U\Lambda U^T\) 로 표현한다면, \(A-I = U(\Lambda-I)U^T\) 입니다. 이 때 \(A\) 의 eigenvalue 는 \([0,\alpha]\) 구간에 존재하므로 \(\Lambda-I\) 의 diagonal element 들은 모두 0 보다 작고, \(A-I\) 는 invertible 합니다.</p>
<p> </p>
<p>더 나아가 node 마다 regularization parameter \(\alpha\) 를 다르게 설정하기 위해, parmeter vector \(\tilde{\alpha}\in (0,1)^{\vert V\vert}\) 를 사용하여 새로운 regularized adjacency matrix \(\tilde{A}\) 를 정의할 수 있습니다.</p>
\[\tilde{A}
= \frac{1}{2}\,\text{diag}(\tilde{\alpha}) \left(I + D^{-1/2}Adj\,D^{-1/2} \right)
\tag{2}\]
<p>\(A\) 와 마찬가지로 \(\tilde{A}\) 의 eigenvalue 는 \([0,1)\) 구간에 존재하며, \(\tilde{A}-I\) 또한 invertible 합니다. 논문의 실제 implementation 에서는 \((2)\) 의 regularized adjacency matrix 를 사용했습니다 [6].</p>
<p> </p>
<h2 id="model">Model</h2>
<p> </p>
<p>CGNN 은 크게 encoder, ODE solver, decoder 세 가지 부분으로 이루어져 있습니다. 먼저 encoder (fully connected layer) \(\mathcal{E}\) 는 각 node feature 를 latent space 로 보내주는 역할로, node feature matrix \(X\in\mathbb{R}^{\vert V\vert\times\vert F\vert}\) 를 \(E = \mathcal{E}(X)\) 로 변환해줍니다. 그 후 미리 준비된 ODE 와 initial value \(H(0):=E\) 에 대한 initial value problem 을 풀어주는 ODE solver 를 거쳐, 종료 시간 \(t_1\) 에 대한 node representation \(H(t_1)\) 을 만들어줍니다. 마지막으로 \(H(t_1)\) 은 decoder (fully connected layer) \(\mathcal{D}\) 를 거쳐 node-label matrix 로 변환됩니다. ODE solver 로는 최근 각광받는 Neural ODE [2] 를 사용합니다.</p>
<p> </p>
<p>주어진 그래프에 대해 CGNN 의 architecture 는 그래프의 (normalized) adjacency matrix 와 종료 시간 \(t_1\), 그리고 node representation 의 변화를 표현하는 ODE 로 결정됩니다. CGNN 모델의 input 은 node feature matrix 이고, 이로부터 output 은 node-label matrix 가 됩니다. 다음의 그림을 통해 CGNN 의 구조를 이해할 수 있습니다. 그림에서 빨간색 화살표는 정보의 이동을 나타냅니다.</p>
<p> </p>
<p align="center">
<img src="/assets/post/Continuous-Graph-Neural-Networks/architecture.PNG" style="max-width: 100%; height: auto" />
</p>
<p> </p>
<p>CGNN 에서 가장 중요한 것은 바로 node 들의 관계를 모델링해주는 ODE 입니다. ODE 는 node representation 의 연속적인 변화를 정의하며, node 들의 long-term dependency 를 표현할 수 있어야 합니다. 논문에서는 다음의 두 가지 ODE 를 제시합니다.</p>
<p> </p>
<h3 id="case-1--independent-feature-channels">Case 1 : Independent Feature Channels</h3>
<p>올바른 node representation 을 찾기 위해서는 node 들의 연결성을 반영해야 하기 때문에, ODE 는 그래프의 구조를 고려해야합니다. 논문에서는 PageRank 와 같은 diffusion-based method 로부터 영감을 받아, 다음의 propogation rule 을 정의합니다. 여기서 \(A\) 는 \((1)\) 의 정의를 따릅니다.</p>
\[H_{n+1} = AH_n + H_0
\tag{3}\]
<p> </p>
<p>\((3)\) 의 node representation update 는 자신의 처음 representation \(H_0\) 를 기억하며, 주변 node representation 들의 정보를 모으는 과정으로 이해할 수 있습니다. 즉 원래의 node feature 를 잊어버리지 않으며 그래프의 구조를 학습할 수 있습니다. \((3)\) 를 통해 다음과 같이 \(H_n\) 을 직접 표현할 수 있습니다.</p>
\[H_n = \left(\sum^n_{i=0} A^i\right)H_0
\tag{4}\]
<p>\((4)\) 를 통해 representation \(H_n\) 은 \(n\) 번째 layer 까지 propagated 된 정보 \(\left\{A^iH_0\right\}^{n}_{i=0}\) 를 모두 포함한다는 것을 알 수 있습니다.</p>
<p> </p>
<p>이를 continuous 한 과정으로 일반화 시키기 위해, \((4)\) 를 Riemann sum 으로 바라봅니다. \(E=H_0\) 라 하고 partition \(\{ 0, 1, \cdots, n \}\) 과 \(\Delta t=1\) 에 대해, \((4)\) 를 Riemann sum 으로 표현하면 다음과 같습니다.</p>
\[\sum^{n+1}_{i=1} A^{(i-1)\Delta t}E\Delta t
\tag{5}\]
<p> </p>
<p>\((5)\) 에서 \(n\rightarrow\infty\) 이면, Riemann sum 으로부터 다음의 적분을 얻을 수 있습니다.</p>
\[H(t) = \int^{t+1}_{0} A^sE\,ds
\tag{6}\]
<p>\((6)\) 의 양변에 미분을 취하면,</p>
\[\frac{dH(t)}{dt} = A^{t+1}E
\tag{7}\]
<p> </p>
<p>이 때 \(t\) 가 정수가 아닌 경우 \(A^{t+1}\) 을 직접 계산할 수 없기 때문에, 한 번 더 미분을 취해줍니다.</p>
\[\frac{d^2H(t)}{dt^2} = \ln A\,A^{t+1}E = \ln A\frac{dH(t)}{dt}
\tag{8}\]
<p> </p>
<p>이후 \((8)\) 의 양변을 다시 적분해줌으로써 다음의 ODE 를 얻습니다.</p>
\[\frac{dH(t)}{dt} = \ln A\,H(t) + const
\tag{9}\]
<p>\((6)\) 으로부터 \(t=0\) 일 때, \(H(0)\) 의 값을 구할 수 있습니다.</p>
\[\ln A\,H(0) = \int^1_0 \ln A\,A^sE\,ds = \left( A-I\right)E
\tag{10}\]
<p> </p>
<p>\((7)\) 과 \((10)\) 으로부터 \((9)\) 의 적분상수 \(const\) 를 계산할 수 있습니다.</p>
\[\begin{align}
AE = \left.\frac{dH(t)}{dt}\right|_{t=0}
&amp;= \ln A\,H(0) + const \\
&amp;= (A-I)E + const
\end{align}\]
<p> </p>
<p>따라서 다음의 Proposition 1 을 얻을 수 있습니다.</p>
<blockquote>
<p><strong>Proposition 1.</strong></p>
<p>The discrete dynamic in \((3)\) is a discretisation of the following ODE :</p>
\[\frac{dH(t)}{dt} = \ln A\,H(t)+E
\tag{11}\]
<p>with the initial value \(H(0)=\left(\ln A\right)^{-1}\left( A-I\right)E\)</p>
</blockquote>
<p> </p>
<p>\((11)\) 의 \(\ln A\) 는 직접 계산할 수 없으므로, 1차 항까지의 Taylor expansion 을 통해 \(\ln A\approx A-I\) 로 근사해줍니다.</p>
\[\frac{dH(t)}{dt} = (A-I)H(t) + E
\tag{12}\]
<p> </p>
<p>\((12)\) 의 ODE 는 epidemic model 의 관점에서 이해할 수 있습니다. 또한 \((12)\) 의 양변에 integrating factor \(e^{-(A-I)t}\) 를 곱해주면, 다음의 ODE 로부터 Proposition 2 를 보일 수 있습니다.</p>
\[\frac{d}{dt}\,e^{-(A-I)t}\,H(t) = e^{-(A-I)t}E\]
<blockquote>
<p><strong>Proposition 2.</strong></p>
<p>The analytical solution of the ODE defined in \((12)\) is given by :</p>
\[H(t) = (A-I)^{-1}\left( e^{(A-I)t}-I \right)E + e^{(A-I)t}E
\tag{13}\]
</blockquote>
<p> </p>
<p>Preliminaries 에서 설명했듯이 \(A-I\) 의 eigenvalue 는 \([-1,\alpha-1]\subset [-1,0)\) 구간에 존재합니다. 즉 \(t\rightarrow\infty\) 이라면, \((13)\) 의 matrix exponential \(e^{(A-I)t}\) 는 0 으로 수렴합니다. 따라서, 충분히 큰 \(t\) 에 대해 \(H(t)\) 를 다음과 같이 근사할 수 있습니다.</p>
\[H(t)\approx (I-A)^{-1}E = \left( \sum^{\infty}_{i=0}A^i \right)E
\tag{14}\]
<p> </p>
<p>\((3)\) 과 형태를 비교하면, \((14)\) 의 \(H(t)\) 는 모든 layer 에서 전파된 정보 \(\left\{A^iE\right\}^{\infty}_{i=0}\) 들을 포함한다는 것을 볼 수 있습니다. 즉 discrete 한 layer 의 representation 정보를 모두 반영하기 때문에, node 들의 long-term dependency 를 잘 표현할 수 있습니다.</p>
<p> </p>
<p>\((1)\) 의 정의에 의해, \(\alpha\) 가 \(A\) 의 eigenvalue 의 크기를 정해줍니다. \(\alpha\) 가 작아질수록 \(A^i\) 이 \(\mathbf{0}\) 으로 더 빠르게 수렴하기 때문에, \(\alpha\) 를 통해 \((14)\) 의 representation \(H(t)\) 가 반영하는 neighborhood 의 크기를 조절할 수 있습니다. 이런 특성을 활용하기 위해 CGNN 은 모델의 학습 과정에서 parameter \(\alpha\) 를 같이 학습합니다.</p>
<p> </p>
<p>더 나아가 각 node 마다 \(\alpha\) 를 다르게 설정하기 위해, \((1)\) 에서 정의된 \(A\) 대신 \((2)\) 에서 정의한 \(\tilde{A}\) 를 사용합니다. \(\tilde{A}\) 를 사용해도 \((12)\) 와 \((14)\) 의 결과가 동일하게 성립하기 때문에, 실제 implementation 에서는 \((2)\) 를 사용하여 parameter vector \(\tilde{\alpha}\) 를 학습합니다.</p>
<p> </p>
<h3 id="case-2--modelling-the-interaction-of-feature-channels">Case 2 : Modelling the Interaction of Feature Channels</h3>
<p>\((3)\) 으로부터 파생된 ODE \((12)\) 는 각 feature channel 들이 독립적이며 서로 영향을 주지 않습니다. 하지만 feature channel 들 사이의 영향을 무시할 수 없기 때문에, 이를 모델링할 수 있는 ODE 를 만들어야 합니다. \((3)\) 에서 각 channel 들의 상호작용을 표현하기 위해, weigh matrix \(W\in\mathbb{R}^{d\times d}\) 를 사용하여 다음의 discrete 한 propagation rule 을 생각합니다.</p>
\[H_{n+1} = AH_nW + H_0
\tag{15}\]
<p> </p>
<p>Case 1 과 동일하게 \((15)\) 를 Riemann sum 으로 바라보아, Proposition 3 를 얻을 수 있습니다.</p>
<blockquote>
<p><strong>Proposition 3.</strong></p>
<p>Suppose that the eigenvalue decompositions of \(A\), \(W\) are \(A=P\Lambda P^{-1}\) and \(W=Q\Phi Q^{-1}\), respectively, then the discrete dynamic in \((15)\) is a discretisation of the following ODE :</p>
\[\frac{dH(t)}{dt} = \ln A\,H(t)+ H(t)\ln\,W +E
\tag{16}\]
<p>with the initial value \(H(0)=PFQ^{-1}\), where</p>
\[F_{ij} = \frac{\Lambda_{ii}\tilde{E}_{ij}\Phi_{jj} - \tilde{E}_{ij}}{\ln\,\Lambda_{ii}\Phi_{jj}}
\tag{17}\]
<p>where \(\tilde{E} = P^{-1}EQ\).</p>
</blockquote>
<p> </p>
<p>마찬가지로 \(\ln A\) 와 \(\ln W\) 를 직접 계산할 수 없기 때문에, \((16)\) 에서 \(\ln A\approx A-I\) 와 \(\ln W\approx W-I\) 로 근사하여, 다음의 ODE 를 얻을 수 있습니다. 이 때 초기값은 \(H_0\) 로 동일합니다.</p>
\[\frac{dH(t)}{dt} =(A-I)H(t)+ H(t)(W-I) +E
\tag{18}\]
<p>\((18)\) 의 ODE 는 Sylvester differential equation 으로 알려져있으며, Proposition 4 의 analytical solution 을 가지고 있습니다.</p>
<blockquote>
<p><strong>Proposition 4.</strong></p>
<p>Suppose the eigenvalue decompositions of \(A-I\) and \(W-I\) are \(A-I=P\Lambda'P^{-1}\) and \(W-I=Q\Phi'Q^{-1}\), respectively, then the analytical solution of the ODE in \((18)\) is given by :</p>
\[H(t) = e^{(A-I)t}Ee^{(W-I)t} + PF(t)Q^{-1}
\tag{19}\]
<p>where \(F(t)\in\mathbb{R}^{\vert V\vert\times d}\) with each element defined as follows :</p>
\[F_{ij}(t) = \frac{\tilde{E}_{ij}}{\Lambda'_{ii}+\Phi'_{jj}}e^{(\Lambda'_{ii}+\Phi'_{jj})t} - \frac{\tilde{E}_{ij}}{\Lambda'_{ii}+\Phi'_{jj}}\]
<p>where \(\tilde{E}=P^{-1}EQ\).</p>
</blockquote>
<p> </p>
<p>만약 Proposition 4 에서 \(W\) 의 eigenvalue 가 1 이하라고 가정한다면, \(A-I\) 의 eigenvalue 는 \((-1,0)\) 에 존재하며 \(W-I\) 의 eigenvalue 는 \((-1,0]\) 에 존재하기 때문에, 다음과 같이 matrix exponential 들이 \(\mathbf{0}\) 으로 수렴합니다.</p>
\[\lim_{t\rightarrow\infty} e^{(A-I)t}\rightarrow 0 \;,\;\;\;
\lim_{t\rightarrow\infty} e^{(\Lambda'_{ii}+\Phi'_{jj})t}\rightarrow 0\]
<p> </p>
<p>따라서, 충분히 큰 \(\;t\) 에 대해 \(H(t)\) 를 다음과 같이 근사할 수 있습니다.</p>
\[\left(P^{-1}H(t)Q\right)_{ij} \approx -\frac{\tilde{E}}{\Lambda'_{ii}+\Phi'_{jj}}
\tag{20}\]
<p>\((20)\) 에서 \(W=I\) 를 대입하면, \((14)\) 의 결과와 같다는 것을 확인할 수 있습니다. 즉 \((11)\) 의 ODE 는 \((16)\) 의 ODE 의 특수한 케이스입니다.</p>
<p> </p>
<p>실제 implementation 에서는 \(W\) 가 diagonalizable 하도록, 학습 가능한 orthogonal matrix \(U\) 와 학습 가능한 vector \(M\) 을 사용해 \(W\) 를 다음과 같이 표현합니다.</p>
\[W=U\,\text{diag}(M)U^T\]
<p>학습 과정에서 \(M\) 의 clipping 을 통해 \(W\) 의 eigenvalue 가 1 이하이도록 만들어주며, \(U\) 가 orthogonal matrix 가 되도록 hyperparameter \(\beta\) 를 사용해 트레이닝 스텝마다 다음과 같이 U 를 update 해줍니다.</p>
\[U \leftarrow (1+\beta)U-\beta(UU^T)U\]
<p>논문에서는 \(\beta=0.5\) 로 고정합니다. 또한 Case 1 과 마찬가지로 \(A\) 대신 \(\tilde{A}\) 를 사용하여 parameter vector \(\tilde{\alpha}\) 를 학습합니다. 마지막으로 학습의 안정화를 위해 \(H(t)\) 에 auxiliary dimension 을 추가하는 방법을 활용하지만, performance 에는 큰 차이가 없습니다.</p>
<p> </p>
<h2 id="discussion">Discussion</h2>
<p> </p>
<p>기존의 discrete 한 layer 를 사용하는 GCN 과 비교하여, CGNN 은 다음과 같은 이점이 있습니다.</p>
<h3 id="robustness-with-time-to-over-smoothing">Robustness with time to over-smoothing</h3>
<p>기존의 discrete 한 layer 를 사용하는 GCN 은 node classification, graph classification, link prediction 등 다양한 영역에서 좋은 성능을 보여주지만, layer 의 개수에 따라 성능에 큰 차이를 보입니다. GCN layer 수가 적다면 expressive 한 representation 을 학습할 수 없고, 반대로 layer 의 수가 많다면 over-smoothing 으로 인해 제대로된 representation 을 학습할 수 없습니다. 특히 [5] 에서 GCN layer 의 수가 많아질수록 기하급수적으로 node representation 에 정보 손실이 발생함을 보였습니다. 그에 비해 CGNN 은 성능이 \(t_1\) 에 크게 영향을 받지 않음을 실험적으로 알 수 있고, \((14)\) 에서 확인할 수 있듯이 \(t\rightarrow\infty\) 이어도 representation 에 정보 손실은 없습니다.</p>
<h3 id="global-dependencies">Global dependencies</h3>
<p>GCN layer 의 수가 적다면 node representation 에 가까운 주변 node 들의 정보만을 반영할 수 있습니다. 즉 expressive 한 모델을 만들기 위해서는, 더 깊은 모델을 통해 멀리 떨어진 node 들의 정보들을 반영할 수 있어야합니다. \((14)\) 에서 볼 수 있듯이 시간 \(t\) 가 충분히 크다면 representation \(H(t)\) 가 \(\left\{A^i E\right\}^{\infty}_{i=0}\) 들의 합으로 표현되기 때문에, CGNN 은 node 들의 long-term dependency 를 학습할 수 있습니다.</p>
<h3 id="diffusion-constant">Diffusion constant</h3>
<p>\((1)\) 에서 정의된 \(A\) 는 parameter \(\alpha\) 를 통해 \(A^{i}\) 이 0 으로 수렴하는 속도를 조절할 수 있습니다. 특히 \(A\) 대신 \(\tilde{A}\) 를 사용하면, 각 node 마다 diffusion constat \(\alpha\) 를 다르게 줄 수 있기 때문에 expressive 한 representation 학습에 큰 도움이 됩니다.</p>
<h3 id="entangling-channels-during-graph-propagation">Entangling channels during graph propagation</h3>
<p>Case 2 의 \((18)\) ODE 를 사용하면 서로 다른 feature channel 들의 상호작용을 표현할 수 있습니다. 특히 \((19)\) 를 통해, 상호작용을 나타내는 weight matrix \(W\) 의 eigenvalue 들이 node representation 에 어떤 영향을 끼치는지 설명할 수 있습니다.</p>
<h3 id="insight-into-the-role-of-the-restart-distribution">Insight into the role of the restart distribution</h3>
<p>\((12)\) 와 \((18)\) 의 ODE 에서 node representation \(H(t)\) 의 시간에 따른 미분값은 restart distribuion \(H(0)=E\) 에 의존합니다. \((12)\) 의 ODE 에서 \(E\) 가 더해지지 않은 다음의 ODE 를 보겠습니다.</p>
\[\frac{dH(t)}{dt} = (A-I)H(t)
\tag{21}\]
<p>\((21)\) 의 analytical solution 은 \(H(t)=e^{(A-I)t}\,H(0)\approx A^tH(0)\) 입니다. \(t\rightarrow\infty\) 에 따라 최종 representation 이 으로 \(\mathbf{0}\) 수렴하기 때문에 학습하고자 하는 representation 과 부합합니다. 또한 실험을 통해 \((21)\) 의 ODE 를 사용한 CGNN (CGNN discrete) 은 종료 시간 \(t_1\) 이 증가함에 따라 성능이 감소하는 것을 확인할 수 있습니다.</p>
<p> </p>
<h2 id="experiment">Experiment</h2>
<p> </p>
<p>Semi-supervised node classification task 에 대한 CGNN 모델의 performance 를 측정하기 위해, [3] 에서 사용한 dataset 을 그대로 사용했습니다. Dataset 은 네 가지의 citation network Cora, Citeseer, Pubmed, NELL 이며, 실험 방법 또한 [3] 의 방법을 따랐습니다.</p>
<p align="center">
<img src="/assets/post/Continuous-Graph-Neural-Networks/dataset.PNG" style="max-width: 70%; height: auto" />
</p>
<p>실험의 baseline 모델로는 discrete 한 GNN 모델인 GCN, GAT 와 continuous 한 GNN 모델 GODE 를 선택했습니다. GODE 는 node representation 의 연속적인 변화를 GNN 으로 매개화한 ODE 를 통해 표현하며, ODE 를 매개화하는 GNN 으로 GCN (GCN-GODE) 과 GAT (GAT-GODE) 를 골랐습니다. CGNN 의 variant 들로는 Case 1 의 CGNN, Case 2 의 weight matrix 를 사용한 CGNN with weight, 그리고 \((3)\) 의 discrete propagation rule 을 사용한 CGNN discrete 모델을 선택했습니다.</p>
<p> </p>
<blockquote>
<p>Performance comparison</p>
</blockquote>
<p>각 dataset 에 대해, basline 모델들과 CGNN 모델들의 정확도는 다음의 표에 정리되어있습니다.</p>
<p align="center">
<img src="/assets/post/Continuous-Graph-Neural-Networks/classification.PNG" style="max-width: 80%; height: auto" />
</p>
<p>또한 각 dataset 들에서 15 개의 random split 에 대한 모델들의 정확도는 다음의 표를 통해 확인할 수 있습니다.</p>
<p align="center">
<img src="/assets/post/Continuous-Graph-Neural-Networks/classification-random.PNG" style="max-width: 80%; height: auto" />
</p>
<p>GCN 과 GAT 와 비교해 CGNN (CGNN with weight) 의 정확도가 훨씬 놓은 것을 볼 수 있습니다. 이는 CGNN 이 node 들의 long-term dependency 를 학습할 수 있기 때문입니다. 또한 GODE 와 비교했을 때 Cora 와 Pubmed 에서 훨씬 높은 성능을 보입니다. CGNN 은 그래프에서 node 들의 long-term dependency 를 반영할 수 있도록 잘 설계된 ODE 를 사용하는 반면, GODE 는 기존의 GCN 혹은 GAT 와 같은 GNN 으로 매개화된 ODE 를 사용하기 때문에 node representation 의 변화에 대한 학습의 차이가 생깁니다.</p>
<p>CGNN variant 들을 비교해보면, CGNN discrete 보다 CGNN (CGNN with weight) 의 성능이 더 뛰어납니다. 즉 node representation 의 변화를 continuous 하게 모델링하는 것이 효과적임을 알 수 있습니다. CGNN 과 CGNN with weight 의 성능 차이는 미미한데, 아마도 사용한 dataset 이 복잡하지 않기 때문이라고 생각됩니다. 더 복잡한 knowledge graph 혹은 protein-protein interactions network 와 같은 dataset 에서는 performance 의 차이가 뚜렷하게 나타날 것이라고 봅니다.</p>
<p> </p>
<blockquote>
<p>Performance with respect to time steps</p>
</blockquote>
<p>CGNN 의 이점 중 하나는 바로 over-smoothing 이 일어나지 않는다는 것입니다. 이를 확인하기 위해 GCN 과 GAT 에서는 layer 의 수에 따른 정확도를, CGNN 에서는 종료 시간 \(t_1\) 에 따른 정확도를 비교했습니다. 결과는 다음의 그래프에 나타나 있습니다.</p>
<p align="center">
<img src="/assets/post/Continuous-Graph-Neural-Networks/layer.PNG" style="max-width: 100%; height: auto" />
</p>
<p>GCN 과 GAT 와 같은 모델은 layer 의 수가 2 혹은 3일 때 가장 높은 정확도를 보이며, layer 의 수가 많아질수록 정확도가 감소하는 것을 볼 수 있습니다. 그에 비해 CGNN 은 종료 시간이 증가함에 따라 정확도도 올라가며, 결국 수렴하는 경향을 관찰할 수 있습니다. 즉 CGNN 은 over-smoothing 이 일어나지 않고, node 들의 long-term dependency 를 학습할 수 있다는 것을 실험적으로 확인했습니다.</p>
<p>또한 restart distribution \(H(0)=E\) 를 사용하지 않은 모델 CGNN w/o H(0) 는 GCN, GAT 와 같이 layer 의 수가 커질수록 정확도가 떨어지는 것을 볼 수 있습니다. 이를 통해 restart distribution 이 over-smoothing 을 해결하는 중요한 역할을 한다는 것을 알 수 있습니다.</p>
<p> </p>
<blockquote>
<p>Memory Efficiency</p>
</blockquote>
<p>마지막으로 CGNN 모델의 종료 시간 \(t_1\) 에 따른 memory 사용량을 확인했습니다.</p>
<p align="center">
<img src="/assets/post/Continuous-Graph-Neural-Networks/memory.PNG" style="max-width: 100%; height: auto" />
</p>
<p>node representation 의 변화를 discrete 하게 표현하는 모델들 : GCN, GAT, CGNN discrete 은 layer 의 수에 따라 memory 사용량이 linear 하게 증가했습니다. 그에 비해 adjoint sensitivity method [2] 를 사용하는 CGNN 은 memory 사용량이 일정하게 적은 것을 볼 수 있습니다. 따라서 CNN 은 memory efficient 하기 때문에, large graph 에 대해서도 적용할 수 있습니다.</p>
<p> </p>
<h2 id="future-work">Future Work</h2>
<p> </p>
<p>CGNN 은 homophily, 즉 node 가 주변의 이웃한 node 들과 비슷한 feature 를 가진다고 가정합니다. 이를 확장해, homophily 뿐만 아니라 structural equivalence 를 반영할 수 있도록 \((3)\) 과 \((15)\) 의 discrete propagation rule 을 정의하는 방향으로의 연구가 기대됩니다. 특히, diffusion-based 에서 더 나아가 domain-specific ODE 를 사용한다면 분자 구조, 단백질의 결합, knowledge graph 과 같이 node 들 사이의 더 복잡한 관계를 가지는 상황에서도 우수한 성능을 보여줄 수 있다고 생각합니다.</p>
<p> </p>
<h2 id="reference">Reference</h2>
<ol>
<li>
<p>L.-P. A. Xhonneux, M. Qu, and J. Tang. <a href="https://arxiv.org/pdf/1912.00967.pdf">Continuous graph neural networks</a>. arXiv preprint arXiv:1912.00967, 2019.</p>
</li>
<li>
<p>Tian Qi Chen, Yulia Rubanova, Jesse Bettencourt, and David K Duvenaud. <a href="https://arxiv.org/pdf/1806.07366.pdf">Neural ordinary differential equations</a>. In S. Bengio, H. Wallach, H. Larochelle, K. Grauman, N. Cesa-Bianchi, and R. Garnett, editors, Advances in Neural Information Processing Systems 31, pages 6571–6583. Curran Associates, Inc., 2018.</p>
</li>
<li>
<p>Thomas N Kipf and Max Welling. <a href="">Semi-supervised classification with graph convolutional networks</a>. arXiv preprint arXiv:1609.02907, 2016.</p>
</li>
<li>
<p>Qimai Li, Zhichao Han, and Xiao-Ming Wu. <a href="https://arxiv.org/pdf/1801.07606.pdf">Deeper insights into graph convolutional networks for semisupervised learning</a>. In Thirty-Second AAAI Conference on Artificial Intelligence, 2018.</p>
</li>
<li>
<p>Kenta Oono and Taiji Suzuki. <a href="https://arxiv.org/pdf/1905.10947.pdf">Graph neural networks exponentially lose expressive power for node classification</a>. In International Conference on Learning Representations, 2020.</p>
</li>
<li>
<p>Continuous Graph Neural Networks Github : <a href="https://github.com/DeepGraphLearning/ContinuousGNN">https://github.com/DeepGraphLearning/ContinuousGNN</a></p>
</li>
</ol></content><author><name>Jaehyeong Jo</name><email>[email protected]</email></author><category term="["paper review"]" /><category term="continuous-depth model" /><summary type="html">[paper review] CGNN, ICML 2020</summary></entry><entry><title type="html">Composition-based Multi-Relational Graph Convolutional Networks</title><link href="https://harryjo97.github.io/paper%20review/Composition-based-Multi-Relational-Graph-Convolutional-Networks/" rel="alternate" type="text/html" title="Composition-based Multi-Relational Graph Convolutional Networks" /><published>2021-02-17T12:00:00+09:00</published><updated>2021-02-17T12:00:00+09:00</updated><id>https://harryjo97.github.io/paper%20review/Composition-based-Multi-Relational-Graph-Convolutional-Networks</id><content type="html" xml:base="https://harryjo97.github.io/paper%20review/Composition-based-Multi-Relational-Graph-Convolutional-Networks/"><p>[paper review] CompGCN, ICLR 2020</p>
<h2 id="introduction">Introduction</h2>
<p> </p>
<p>대부분의 Graph Convolutional Networks (GCNs) 는 simple, undirectred graph 에 대해서 연구가 이루어졌습니다. 더 일반적인 형태의 그래프는 edge 에 feature 와 direction 이 존재하는 multi-relational graph 이며, 예로 knowledge graph 가 있습니다. GCN 을 통해 multi-relational graph 를 분석하는 기존의 방법은 node representation 만을 학습할 수 있고, over-parametrization 의 문제가 있습니다. 특히 node 뿐만 아니라 node 사이 relation 에 대한 학습이 필요한 link prediction 의 경우 GCN 을 직접 사용하는데 어려움이 있습니다. 논문에서는 이런 문제점을 해결하기 위해 GCN 을 통해 node 의 representation 뿐만 아니라, relation 의 representation 을 같이 학습하는 CompGCN 모델을 제시합니다.</p>
<p> </p>
<h2 id="background">Background</h2>
<p> </p>
<h3 id="knowledge-graph">Knowledge Graph</h3>
<p>Knowledge graph 는 multi-relational graph 의 한 종류로 Freebase, WordNet 과 같은 knowledge base 를 그래프로 나타낸 것입니다. Entity 들을 node 로, entity 들 사이의 relation 을 edge 로 표현합니다. Node 들의 집합 \(\mathcal{V}\) 와 relation 들의 집합 \(\mathcal{R}\) 에 대해, edge 는 node \(u,v\in\mathcal{V}\)사이의 relation \(r\in\mathcal{R}\) 로 이루어진 triplet \((u,r,v)\) 로 정의됩니다. 이러한 edge 들의 집합으로 knowledge graph \(\mathcal{G} = \{(u,r,v)\} \subset \mathcal{V}\times\mathcal{R}\times\mathcal{V}\) 를 정의합니다.</p>
<p>Knowledge graph 는 수많은 triplet 들로 이루어져 있고, 많은 수의 triplet 들이 incomplete 합니다. 이를테면, 주어진 두 entity \(u\) 와 \(v\) 사이의 relation 이 알려지지 않은 triplet \((u,?,v)\), 혹은 node \(u\) 와 연결된 relation \(r\) 이 주어졌지만 tail entity 를 모르는 triplet \((u,r,?)\) 과 같은 케이스가 있습니다. 이런 imcomplete 한 triplet 을 완성하기 위해서는 link prediction 이 필요합니다. Link prediction 은 각 entity 와 relation 들에 대한 low-dimensional representation 을 찾고, 올바른 triplet 에 더 높은 score 를 부여하는 score function 을 통해 이루어집니다. 대표적인 모델로 TransE, DistMult, RotatE 등이 있습니다.</p>
<h3 id="gcn-on-multi-relational-graphs">GCN on Multi-Relational Graphs</h3>
<p>Simple undirected graph 에 대한 GCN 의 layer-wise propagation rule 은 다음과 같이 표현할 수 있습니다 [3].</p>
\[H^{(k+1)} = f\left( \hat{A}H^{(k)}W^{(k)} \right)
\tag{1}\]
<p>하지만 multi-relational graph 에도 \((1)\) 을 적용한다면, relation 에 대한 정보를 사용하지 않기 때문에 제대로된 representation 을 찾을 수 없습니다. 따라서 \((1)\) 의 \(W^{(k)}\) 대신 relation specific weight \(W^{(k)}_r\) 를 사용하여, 다음과 같이 새로운 propagation rule 을 정의할 수 있습니다.</p>
\[H^{(k+1)} = f\left( \hat{A}H^{(k)}W^{(k)}_r \right)
\tag{2}\]
<p>\((2)\) 를 사용할 경우 relation 의 수가 많아질수록 over-parametrization 이 쉽게 일어날 수 있다는 단점이 있습니다.</p>
<p> </p>
<h2 id="compgcn-details">CompGCN Details</h2>
<p> </p>
<p>Directed-GCN [5] 과 같이 relation 이 단방향이 아닌 양방향으로 정의될 수 있도록, edge 와 relation 들의 집합 \(\mathcal{E}\) 과 \(\mathcal{R}\) 을 확장합니다. 기존의 edge \((u,r,v)\in\mathcal{E}\) 에 대해, relation \(r\) 의 방향을 뒤집은 inverse \(r^{-1}\) 를 이용한 inverse edge \((v,r^{-1},u)\) 와 self-loop \(\top\) 을 이용한 self edge \((u,\top,u)\) 을 추가해 새로운 edge 들의 집합 \(\mathcal{E}'\) 을 다음과 같이 정의합니다.</p>
\[\mathcal{E}' = \mathcal{E}\,\cup\{(v,r^{-1},u):(u,r,v)\in\mathcal{E}\,\}\,\cup\{(u,\top,u):u\in V\}\]
<p>또한 기존의 relation \(r\in\mathcal{R}\) 에 대해 inverse relation \(r^{-1}\) 과 self-loop \(\top\) 을 추가한 새로운 relation 들의 집합 \(\mathcal{R}'\) 을 다음과 같이 정의합니다.</p>
\[\mathcal{R}' = \mathcal{R}\,\cup\{r^{-1}:r\in\mathcal{R}\}\,\cup\{\top\}\]