NIPS reading@Univ of Tokyo,
Jan. 23, 2014	

Scalable kernels for graphs with
continuous attributes
A.Feragen, N.KasenBurg, J.Petersen,
M.Bruijne, K.Borgwardt
読む人: 田部井 靖生 (JST)
発表概要
•  連続値ベクトルをノード属性として, 長さをエッジ
として持つグラフに対するカーネルを提案
–  カーネル 類似度

•  GraphHopper Kernel
–  2つのグラフ中に存在する同じ長さの最短路のノードの類
似度を足し算
–  前向き後ろ向き計算(message-passing)で効率的に計算
可能

•  結果: 高速, 分類性能は既存のカーネルと同じぐらい
Graph kernels
•  グラフの類似度計算に関する機械学習の一分野
•  グラフG,G のカーネルは特徴ベクトル  
  
, (G )の内積で定義
K(G, G ) =< (G), (G ) >
–  KはG,G の類似度

•  応用
–  分類 (SVM), 回帰, 検定 etc
Graph classification
Training data	
+1	

+1	

-1	

?	

?	

?	

Test data
Graph kernels
•  グラフカーネルは共通する部分グラフの数をカ
ウントする
–  (G) = パス,木,サイクルetcを成分とするベクトル
•  すべての部分グラフをカウントするカーネルは
NP困難 (Gartner et al., 2003)
•  これまでに多くのグラフカーネルが提案されて
いる (主に離散ラベル)
–  RW (ICML,2003, COLT,2003)
–  WLKernel (NIPS, 2009)
–  NH Kernel (ICDM,2009)
Weisfeiler-Lehman procedure

6	
  
実数値をエッジに, 連続値ベクトル
をノードに持つグラフ
•  グラフG=(V,E) with lengths : E
d
attributes A : V
1.2
2.3
0.1
0.1
1.2
1.3

1.2	

3.5	
1.2	

0.8	
1.5
1.2
1.3

0.5
2.2
1.3

• 
• 
• 
• 

+,

タンパク質
化合物
AIRWAYS
etc

node
既存のGraph Kernels
•  Shortest path kernel (ICDM,2005)
–  ノード属性の類似度をknで計算, パスの類似度をノー
ドペアーの最短距離dGをklで計算
KSP (G, G ) =
v,w V v ,w

V

kn (v, v ) · kl (dG (v, w), dG (v , w )) · kn (w, w )
ノードの 最短路距離の類似度
類似度

•  O(n4)時間 (n:ノード数)
–  大きいグラフに対しては有効でない

ノードの
類似度
Overview of proposed method
•  連続値ベクトルをノードに属性値として持つグラフに対
するカーネルを提案 (GraphHopper Kernel)
•  類似度は, 2つのグラフ中に存在するすべての同じ長さ
の最短路に沿ったノードの類似度の和
–  グラフを渡り歩きながら計算
•  計算を上手く分割することにより, あるノードを通過す
る個数を前向き後向き計算で計算可能

           
O(n2 (m + log n + 2 + d)) 時間
• 
- n: ノード数, m:エッジ数, δ:直径, d:ノード属性の次元
実際のグラフではO(n2)に振る舞う
GraphHopper Kernel
•  2つのグラフの同じ長さの最短路上の対応する各ノード
のカーネルの和
•  長さ1からδ(直径)まで計算

K(G, G ) =

kp ( ,
F,

kp ( ,

)=

0

)

F
| |
j=1

kn ( (j),

(j)) if | | = | |
otherwise

Kn(
	
 n(
K
Kn(

,
,
,

)+
) +	
)	

順番が重要
グラフ間からグラフ内計算
•  ノードカーネルの重み付き和として計算可能
–  wはグラフの構造をエンコード
•  wが計算できれば, n n で計算可
k(G, G ) =

w(v, v )kn (v, v )
v V,v

V

w(v, v ) =
i=1 j=1

#{ | (i) = v, | | = j}#{ | (i) = v , | | = j}
Gに長さjの最短路πでi番目にvが現れる回数

例: j=2の場合
v

•  グラフ内での計算問題に帰着

v
vを経由する最短路を分割
#{ | (i) = v, | | = j} : 距離jの最短路πでvがi番目に出現する回数
=
( v から距離jの最短路πでvがi番目に出現する回数)
˜
v V
˜

•  あるノードから他のすべてのノードへの最短路はDAGとなる

˜
G v

v

v

v
˜

Gv v
˜ ˜
v

•  DAG Gv 上で
˜
˜
  ( v からvの長さiの最短路の個数) (vから長さj-iの最短路の個数)
v V
˜

前向き計算

後ろ向き計算
DAG Gv 上のvを前向き計算
˜
•  v から各ノードへの距離j(=1,…,δ)の最短路の個数を計算
˜
•  各のノードvは距離j(=1,…,δ)の最短路の個数 c(v)
v
1.  初期化: c(˜) = 1, それ以外を c(v) = 0
v
˜
2.  v に対する子ノード(j=1のノード)に対して, 0 c(˜)= 01を伝
搬する
3.  v から距離j=2,…,δのノードvに対して0c(v)を子ノードに
˜
伝搬する 1	
1	

+01	
01	
+01	
01	
01	
+001	
 +001	
 +001	
+01	

0	

0	
0	

	
  0	

	
  0	

	
  002	

	
  001
DAG Gv 上の後ろ向き計算
˜
•  vを始点とした, 距離j(=1,…,δ)の最短路の個数
1.  初期化: c(v)=1
2.  入次数0のノードvに隣接するノードに0c(v)=01を伝搬
する
3.  vから距離j=2,…,δのノードv に隣接するノードに
0c(v )を伝搬する
133	

1	
1	

1	

1	
1	

1	

+011	
 +01	
 1	
+012	
11	
12	
+01	
 +01	
 +01	
1	

1
計算時間
O(n2 (m + log n + d +
• 

• 
• 
• 
• 

2

) 時間

n: ノード数
m: エッジ数
d: ノードattributeの次元
δ: グラフ直径

•  現実世界のグラフでO(n2)に振る舞う
実験
•  データ: ENZYMES, PROTEINS, AIRWAYS,
SYNTHETIC
•  評価尺度: 計算時間, 分類精度(10-fold cross
validation)
•  比較相手:
–  Propergation kernel (PROP)[ECML,12]
–  Shortest pass kernel (SP) [ICDM,05]
–  connected matching subgraph kernel (CSM)
[ICML,12],
–  Weisfeiler-Lehman kernel (WL)[NIPS,09]
データーセット
•  ノード属性の類似度
kn (v, v ) = exp(

|||A(v)

A(v )|2 )

•  ENZYMES [NAR,2004]
•  PROTEINS [JMB,2003]
•  AIRWAYS [IPMI,2011]
Number of nodes
Number of edges
Graph diameter
Node attribute dimension
Dataset size
Class size

ENZYMES
32.6
46.7
12.8
18
600
6 ⇥ 100

PROTEINS
39.1
72.8
11.6
1
1113
663/450

AIRWAYS
221
220
21.1
1
1966
980/986

SYNTHETIC
100
196
7
1
300
150/150

Table 1: Data statistics: Average node and edge counts and graph diameter, dataset and class sizes.
分類精度と計算時間
Kernel
GraphHopper
PROP-diff [16]
PROP-WL [16]
SP [17]
CSM [14]
WL [2]

ENZYMES
69.6 ± 1.3 (120 1000 )
37.2 ± 2.2 (1300 )
48.5 ± 1.3 (10 900 )
71.0 ± 1.3 (3 d)
69.4 ± 0.8
48.0 ± 0.9 (1800 )

PROTEINS
74.1 ± 0.5 (2.8 h)
73.3 ± 0.4 (2600 )
73.1 ± 0.8 (20 4000 )
75.5 ± 0.8 (7.7 d)
OUT OF MEMORY
75.6 ± 0.5 (20 5100 )

AIRWAYS
66.8 ± 0.5 (1 d 7 h)
63.5 ± 0.5 (40 1200 )
61.5 ± 0.6 (80 1700 )
OUT OF TIME
OUT OF MEMORY
62.0 ± 0.6 (70 4300 )

SYNTHETIC
86.6 ± 1.0 (120 1000 )
46.1 ± 1.9 (10 2100 )
44.5 ± 1.2 (10 5200 )
85.4 ± 2.1 (3.4 d)
OUT OF TIME
43.3 ± 2.3 (20 800 )

Table 2: Mean classification accuracies with standard deviation for all experiments, significantly
best accuracies in bold. OUT OF MEMORY means that 100 GB memory was not enough. OUT
OF TIME indicates that the kernel computation did not finish within 30 days. Runtimes are given in
parentheses; see Section 3.1 for further runtime studies. Above, x0 y 00 means x minutes, y seconds.

•  SPは精度が高いが遅い
•  WLは離散ラベルに応用
•  PROPは, 属性に対してLSHをかけて, 既存の
カーネルを使う(精度が悪い)
•  精度はSPと同程度でありながら高速
est accuracies in bold. OUT OF MEMORY means that
OF TIME indicates that the kernel computation did not fin
 ノード数に対する計算時間
arentheses; see Section 3.1 for further runtime studies. A

4
3.5
3
2.5
2
1.5
1
0.5
0

0

50

100

150

200

250

300

350

400

450

500
グラフ直径に対する計算時間
(AIRWAYS)

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
12

14

16

18

20

22

24

26
グラフ直径に対する計算時間
(PROTEINS)

0.035

0.03

0.025

0.02

0.015

0.01

0.005

0

0

5

10

15

20

25

runtime on n, and m on synthetic and real graph datasets.
まとめ
•  連続値の属性(ベクトル)をノード, 連続値をエッ
ジに持つグラフのためのGraphHopper Kernel
•  2つのグラフ中に存在するすべての同じ長さの
最短路上のノードの類似度の足しあわせ
–  前向き後向き計算計算

•  精度はshortest path kernelと同程度, 計算時間
は高速

NIPS2013読み会: Scalable kernels for graphs with continuous attributes

  • 1.
    NIPS reading@Univ ofTokyo, Jan. 23, 2014 Scalable kernels for graphs with continuous attributes A.Feragen, N.KasenBurg, J.Petersen, M.Bruijne, K.Borgwardt 読む人: 田部井 靖生 (JST)
  • 2.
    発表概要 •  連続値ベクトルをノード属性として, 長さをエッジ として持つグラフに対するカーネルを提案 – カーネル 類似度 •  GraphHopper Kernel –  2つのグラフ中に存在する同じ長さの最短路のノードの類 似度を足し算 –  前向き後ろ向き計算(message-passing)で効率的に計算 可能 •  結果: 高速, 分類性能は既存のカーネルと同じぐらい
  • 3.
    Graph kernels •  グラフの類似度計算に関する機械学習の一分野 • グラフG,G のカーネルは特徴ベクトル      , (G )の内積で定義 K(G, G ) =< (G), (G ) > –  KはG,G の類似度 •  応用 –  分類 (SVM), 回帰, 検定 etc
  • 4.
  • 5.
    Graph kernels •  グラフカーネルは共通する部分グラフの数をカ ウントする – (G) = パス,木,サイクルetcを成分とするベクトル •  すべての部分グラフをカウントするカーネルは NP困難 (Gartner et al., 2003) •  これまでに多くのグラフカーネルが提案されて いる (主に離散ラベル) –  RW (ICML,2003, COLT,2003) –  WLKernel (NIPS, 2009) –  NH Kernel (ICDM,2009)
  • 6.
  • 7.
    実数値をエッジに, 連続値ベクトル をノードに持つグラフ •  グラフG=(V,E)with lengths : E d attributes A : V 1.2 2.3 0.1 0.1 1.2 1.3 1.2 3.5 1.2 0.8 1.5 1.2 1.3 0.5 2.2 1.3 •  •  •  •  +, タンパク質 化合物 AIRWAYS etc node
  • 8.
    既存のGraph Kernels •  Shortestpath kernel (ICDM,2005) –  ノード属性の類似度をknで計算, パスの類似度をノー ドペアーの最短距離dGをklで計算 KSP (G, G ) = v,w V v ,w V kn (v, v ) · kl (dG (v, w), dG (v , w )) · kn (w, w ) ノードの 最短路距離の類似度 類似度 •  O(n4)時間 (n:ノード数) –  大きいグラフに対しては有効でない ノードの 類似度
  • 9.
    Overview of proposedmethod •  連続値ベクトルをノードに属性値として持つグラフに対 するカーネルを提案 (GraphHopper Kernel) •  類似度は, 2つのグラフ中に存在するすべての同じ長さ の最短路に沿ったノードの類似度の和 –  グラフを渡り歩きながら計算 •  計算を上手く分割することにより, あるノードを通過す る個数を前向き後向き計算で計算可能             O(n2 (m + log n + 2 + d)) 時間 •  - n: ノード数, m:エッジ数, δ:直径, d:ノード属性の次元 実際のグラフではO(n2)に振る舞う
  • 10.
    GraphHopper Kernel •  2つのグラフの同じ長さの最短路上の対応する各ノード のカーネルの和 • 長さ1からδ(直径)まで計算 K(G, G ) = kp ( , F, kp ( , )= 0 ) F | | j=1 kn ( (j), (j)) if | | = | | otherwise Kn( n( K Kn( , , , )+ ) + ) 順番が重要
  • 11.
    グラフ間からグラフ内計算 •  ノードカーネルの重み付き和として計算可能 –  wはグラフの構造をエンコード • wが計算できれば, n n で計算可 k(G, G ) = w(v, v )kn (v, v ) v V,v V w(v, v ) = i=1 j=1 #{ | (i) = v, | | = j}#{ | (i) = v , | | = j} Gに長さjの最短路πでi番目にvが現れる回数 例: j=2の場合 v •  グラフ内での計算問題に帰着 v
  • 12.
    vを経由する最短路を分割 #{ | (i)= v, | | = j} : 距離jの最短路πでvがi番目に出現する回数 = ( v から距離jの最短路πでvがi番目に出現する回数) ˜ v V ˜ •  あるノードから他のすべてのノードへの最短路はDAGとなる ˜ G v v v v ˜ Gv v ˜ ˜ v •  DAG Gv 上で ˜ ˜   ( v からvの長さiの最短路の個数) (vから長さj-iの最短路の個数) v V ˜ 前向き計算 後ろ向き計算
  • 13.
    DAG Gv 上のvを前向き計算 ˜ • v から各ノードへの距離j(=1,…,δ)の最短路の個数を計算 ˜ •  各のノードvは距離j(=1,…,δ)の最短路の個数 c(v) v 1.  初期化: c(˜) = 1, それ以外を c(v) = 0 v ˜ 2.  v に対する子ノード(j=1のノード)に対して, 0 c(˜)= 01を伝 搬する 3.  v から距離j=2,…,δのノードvに対して0c(v)を子ノードに ˜ 伝搬する 1 1 +01 01 +01 01 01 +001 +001 +001 +01 0 0 0  0  0  002  001
  • 14.
    DAG Gv 上の後ろ向き計算 ˜ • vを始点とした, 距離j(=1,…,δ)の最短路の個数 1.  初期化: c(v)=1 2.  入次数0のノードvに隣接するノードに0c(v)=01を伝搬 する 3.  vから距離j=2,…,δのノードv に隣接するノードに 0c(v )を伝搬する 133 1 1 1 1 1 1 +011 +01 1 +012 11 12 +01 +01 +01 1 1
  • 15.
    計算時間 O(n2 (m +log n + d + •  •  •  •  •  2 ) 時間 n: ノード数 m: エッジ数 d: ノードattributeの次元 δ: グラフ直径 •  現実世界のグラフでO(n2)に振る舞う
  • 16.
    実験 •  データ: ENZYMES,PROTEINS, AIRWAYS, SYNTHETIC •  評価尺度: 計算時間, 分類精度(10-fold cross validation) •  比較相手: –  Propergation kernel (PROP)[ECML,12] –  Shortest pass kernel (SP) [ICDM,05] –  connected matching subgraph kernel (CSM) [ICML,12], –  Weisfeiler-Lehman kernel (WL)[NIPS,09]
  • 17.
    データーセット •  ノード属性の類似度 kn (v,v ) = exp( |||A(v) A(v )|2 ) •  ENZYMES [NAR,2004] •  PROTEINS [JMB,2003] •  AIRWAYS [IPMI,2011] Number of nodes Number of edges Graph diameter Node attribute dimension Dataset size Class size ENZYMES 32.6 46.7 12.8 18 600 6 ⇥ 100 PROTEINS 39.1 72.8 11.6 1 1113 663/450 AIRWAYS 221 220 21.1 1 1966 980/986 SYNTHETIC 100 196 7 1 300 150/150 Table 1: Data statistics: Average node and edge counts and graph diameter, dataset and class sizes.
  • 18.
    分類精度と計算時間 Kernel GraphHopper PROP-diff [16] PROP-WL [16] SP[17] CSM [14] WL [2] ENZYMES 69.6 ± 1.3 (120 1000 ) 37.2 ± 2.2 (1300 ) 48.5 ± 1.3 (10 900 ) 71.0 ± 1.3 (3 d) 69.4 ± 0.8 48.0 ± 0.9 (1800 ) PROTEINS 74.1 ± 0.5 (2.8 h) 73.3 ± 0.4 (2600 ) 73.1 ± 0.8 (20 4000 ) 75.5 ± 0.8 (7.7 d) OUT OF MEMORY 75.6 ± 0.5 (20 5100 ) AIRWAYS 66.8 ± 0.5 (1 d 7 h) 63.5 ± 0.5 (40 1200 ) 61.5 ± 0.6 (80 1700 ) OUT OF TIME OUT OF MEMORY 62.0 ± 0.6 (70 4300 ) SYNTHETIC 86.6 ± 1.0 (120 1000 ) 46.1 ± 1.9 (10 2100 ) 44.5 ± 1.2 (10 5200 ) 85.4 ± 2.1 (3.4 d) OUT OF TIME 43.3 ± 2.3 (20 800 ) Table 2: Mean classification accuracies with standard deviation for all experiments, significantly best accuracies in bold. OUT OF MEMORY means that 100 GB memory was not enough. OUT OF TIME indicates that the kernel computation did not finish within 30 days. Runtimes are given in parentheses; see Section 3.1 for further runtime studies. Above, x0 y 00 means x minutes, y seconds. •  SPは精度が高いが遅い •  WLは離散ラベルに応用 •  PROPは, 属性に対してLSHをかけて, 既存の カーネルを使う(精度が悪い) •  精度はSPと同程度でありながら高速
  • 19.
    est accuracies inbold. OUT OF MEMORY means that OF TIME indicates that the kernel computation did not fin  ノード数に対する計算時間 arentheses; see Section 3.1 for further runtime studies. A 4 3.5 3 2.5 2 1.5 1 0.5 0 0 50 100 150 200 250 300 350 400 450 500
  • 20.
  • 21.
  • 22.
    まとめ •  連続値の属性(ベクトル)をノード, 連続値をエッ ジに持つグラフのためのGraphHopperKernel •  2つのグラフ中に存在するすべての同じ長さの 最短路上のノードの類似度の足しあわせ –  前向き後向き計算計算 •  精度はshortest path kernelと同程度, 計算時間 は高速