Weisfeiler-Lehman 算法
Weisfeiler-Lehman(WL)算法
The Weisfeiler-Lehman Test of Isomorphism
- 图核使用来自 W e i s f e i l e r − L e h m a n Weisfeiler-Lehman Weisfeiler−Lehman同构检验的概念,更具体地讲是其一维变体,也称为“朴素顶点修饰”
- 该算法的关键思想是通过对相邻节点的节点标签排序后的集合来扩展节点标签,并将这些扩展后的标签压缩为新的短标签
- a l p h a b e t alphabet alphabet Σ Σ Σ必须足够大才能使 f f f具内射性。 对于两个图, ∣ Σ ∣ = 2 n |Σ| = 2n ∣Σ∣=2n个满足条件。
- ( a ) (a) (a)网络中每个节点有一个 l a b e l label label,如图中的彩色的 1 , 2 , 3 , 4 , 5 1,2,3,4,5 1,2,3,4,5
- ( b ) (b) (b)标签扩展:做一阶广度优先搜索,即只遍历自己的邻居。比如在图 ( a ) (a) (a)网络 G G G中原 ( 5 ) (5) (5)号节点,变成 ( 5 , 234 ) (5,234) (5,234),这是因为原 ( 5 ) (5) (5)节点的一阶邻居有 2 , 3 和 4 2,3和4 2,3和4
- ( c ) (c) (c)标签压缩:仅仅只是把扩展标签映射成一个新标签,如 5 , 234 = > 13 5,234 => 13 5,234=>13
- ( d ) (d) (d)压缩标签替换扩展标签
- ( e ) (e) (e)数标签:比如在 G G G网络中,含有 1 1 1号标签 2 2 2个,那么第一个数字就是 2 2 2。这些标签的个数作为整个网络的新特征
算法:
假设要测试同构的两张图为
G
G
G和
G
’
G’
G’,那么在结点
v
v
v的第
i
i
i次迭代里,算法都分别做了四步处理:标签复合集定义、复合集排序、标签压缩和重标签
- W L t e s t WL\ test WL test的复杂度是 O ( h m ) O(hm) O(hm),其中h为 i t e r a t i o n iteration iteration次数, m m m是一次 i t e r a t i o n iteration iteration里 m u l t i s e t multiset multiset的个数
一维的
W
e
i
s
f
e
i
l
e
r
−
L
e
h
m
a
n
Weisfeiler-Lehman
Weisfeiler−Lehman如下所示:
稳定后,统计两张图的
l
a
b
e
l
label
label的分布,如果分布相同,则一般认为两张图时同构的。
注意:我们可以发现,
W
L
t
e
s
t
WL\ test
WL test方法的步骤和
G
N
N
s
GNNs
GNNs具有异曲同工之妙,都是通过不断聚合邻居信息,得到节点的新表示,这也是为什么
K
i
p
f
Kipf
Kipf在
2017
2017
2017年
G
C
N
GCN
GCN的论文中单独讨论和
G
C
N
GCN
GCN和
W
L
t
e
s
t
WL test
WLtest关系的原因。而正是这种统一性,才使得本文能以
W
L
t
e
s
t
WL\ test
WL test 为基础来分析
G
N
N
s
GNNs
GNNs框架。
The General Weisfeiler-Lehman Kernels
1.The Weisfeiler-Lehman Kernel Framework
- W e i s f e i l e r − L e h m a n a l g o r i t h m Weisfeiler-Lehman\ algorithm Weisfeiler−Lehman algorithm 对图 G G G和 G ′ G' G′的结点进行重标签时,只有当两个结点 v v v和 v ′ v' v′有相同的标签复合集,它们生成的新标签才一样。
- 因此,我们可以认为对所有图进行标签压缩和重标签时,标签映射函数
f
f
f都是一样的,定义为
r
(
(
V
,
E
,
l
i
)
)
=
(
V
,
E
,
l
(
i
+
1
)
)
r((V, E, l_i)) = (V, E, l_{(i+1)})
r((V,E,li))=(V,E,l(i+1)),其中,
V
V
V是图
G
G
G的结点集,
E
E
E是图
G
G
G的边集,
l
i
l_i
li和
l
(
i
+
1
)
l_{(i+1)}
l(i+1)分别是
W
e
i
s
f
e
i
l
e
r
−
L
e
h
m
a
n
a
l
g
o
r
i
t
h
m
Weisfeiler-Lehman\ algorithm
Weisfeiler−Lehman algorithm 在第
i
i
i次和第
i
+
1
i+1
i+1次迭代时生成的标签集。
G 0 G_0 G0是原始图, G 1 = r ( G 0 ) G_1 = r(G_0) G1=r(G0)是第一次重新贴标产生的图,依此类推.
性质 - 1.半正定矩阵的行列式是非负的。
- 2.两个半正定矩阵的和是半正定的。
- 3.
G
i
=
r
∗
G
(
i
−
1
)
=
(
r
2
)
∗
G
(
i
−
2
)
=
.
.
.
.
=
(
r
i
)
∗
G
0
=
(
r
i
)
∗
G
G_i = r * G_{(i-1)} = (r^2) * G_{(i-2)} = .... = (r^i) * G_0 = (r^i) * G
Gi=r∗G(i−1)=(r2)∗G(i−2)=....=(ri)∗G0=(ri)∗G
证明
**请注意,**可以将非负实权重 α i α_i αi放在 k ( G i , G i ′ ) , i = 0 , 1 , . . . , h k(G_i,G_i'),i = {0,1,...,h} k(Gi,Gi′),i=0,1,...,h上,以获得更一般的 W e i s f e i l e r − L e h m a n Weisfeiler-Lehman Weisfeiler−Lehman核定义:
2.The Weisfeiler-Lehman Subtree Kernel
c
i
(
G
,
σ
i
j
)
c_i(G,σ_{ij})
ci(G,σij)是图形
G
G
G中字母
σ
i
j
σ_{ij}
σij的出现次数。
也就是说,Weisfeiler-Lehman子树内核在两个图中计数共同的原始标签和压缩标签
- 假设基本内核 k k k是一个函数,用于计算两个图中的匹配节点标签对:
多图上计算The Weisfeiler-Lehman Subtree Kernel
算法:
- 在
N
N
N个图和
h
h
h次迭代的情况下,
Σ
Σ
Σ大小为
N
n
(
h
+
1
)
Nn(h + 1)
Nn(h+1)。
举例:
THE RAMON-GARTNER SUBTREE KERNEL
具有子树高度
h
h
h的
R
a
m
o
n
−
G
a
r
t
n
e
r
Ramon-Gartner
Ramon−Gartner子树内核通过迭代比较它们的邻域来比较图
G
=
(
V
,
E
,
l
)
G =(V,E,l)
G=(V,E,l)和
G
0
=
(
V
0
,
E
0
,
l
)
G_0 =(V_0,E_0,l)
G0=(V0,E0,l)中的所有节点对:
M
(
v
,
v
′
)
M(v,v')
M(v,v′)是
v
v
v和
v
′
v'
v′邻域的子集的精确匹配集合。
M
(
v
,
v
′
)
M(v,v')
M(v,v′)的每个元素
R
R
R是来自
v
∈
V
v∈V
v∈V和
v
0
∈
V
0
v_0∈V_0
v0∈V0的邻域的一组节点对,因此每对中的节点具有相同的标记,并且不包含多于一对的节点。 因此,从直观上讲,
k
R
G
k_{RG}
kRG迭代地考虑来自
G
G
G的节点
v
v
v和来自
G
0
G_0
G0的
v
0
v_0
v0的邻居之间两个相同标记节点的所有匹配
M
(
v
,
v
′
)
M(v,v')
M(v,v′)。 使参数
λ
v
λ_v
λv和
λ
v
′
λ_{v'}
λv′等于单个参数λ会导致每个模式加权
λ
λ
λ,并提高到模式中节点数的幂。
LINK TO THE WEISFEILER-LEHMAN SUBTREE KERNEL
3.The Weisfeiler-Lehman Edge Kernel
T
h
e
W
e
i
s
f
e
i
l
e
r
−
L
e
h
m
a
n
e
d
g
e
k
e
r
n
e
l
The\ Weisfeiler-Lehman\ edge\ kernel
The Weisfeiler−Lehman edge kernel 是
t
h
e
W
e
i
s
f
e
i
l
e
r
−
L
e
h
m
a
n
k
e
r
n
e
l
f
r
a
m
e
w
o
r
k
the\ Weisfeiler-Lehman\ kernel\ framework
the Weisfeiler−Lehman kernel framework的另一个实例。 对于具有未加权边的图,我们考虑对两个图中具有相同标记的端点(事件节点)的匹配边对进行计数的基本内核。 换句话说,基本内核定义为
其中
φ
E
(
G
)
φ_E(G)
φE(G)是对
(
a
,
b
)
(a,b)
(a,b),
a
,
b
∈
Σ
a,b∈Σ
a,b∈Σ的出现次数的向量,它们表示
G
G
G中边的端点的有序标签.
(
a
,
b
)
(a,b)
(a,b)和
(
a
0
,
b
0
)
(a_0,b_0)
(a0,b0)分别表示边
e
e
e和
e
0
e_0
e0的端点的有序标签,以及
D
i
r
a
c
k
e
r
n
e
l
Dirac\ kernel
Dirac kernel的
δ
,
k
E
δ,k_E
δ,kE可以等效地表示为
∑
e
∈
E
∑
e
0
∈
E
′
δ
(
a
,
a
0
)
δ
(
b
,
b
0
)
∑_{e∈E} ∑_{e_0∈E'}δ(a,a_0) δ(b,b_0)
∑e∈E∑e0∈E′δ(a,a0)δ(b,b0)。如果边缘通过分配权重的函数
w
w
w加权,则基本核
k
E
k_E
kE可以定义为
∑
e
∈
E
∑
e
0
∈
E
′
δ
(
a
,
a
0
)
δ
(
b
,
b
0
)
k
w
(
w
(
e
)
,
w
(
(
e
0
)
)
∑_{e∈E} ∑_{e_0∈E'}δ(a,a_0) δ(b,b_0)k_w(w(e),w((e_0))
∑e∈E∑e0∈E′δ(a,a0)δ(b,b0)kw(w(e),w((e0)) ,其中
k
w
k_w
kw是比较边缘权重的内核。
4.The Weisfeiler-Lehman Shortest Path Kernel
在这里,我们使用节点标记的最短路径内核作为基础内核。
Weisfeiler-Lehman Graph Kernels
https://github.com/BorgwardtLab/GraphKernels
https://static.aminer.cn/misc/pdf/20190419.pdf
https://github.com/ysig/GraKeL