本文主要是介绍图算法之Weisfeiler-Lehman核,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
背景
在图分类的核算法中,Weisfeiler-Lehman(威斯费勒-莱曼)核是比较经典的核算法,这里我对它做一些整理。
参考文献Weisfeiler-Lehman Graph Kernels
定义
威斯费勒-莱曼图
在文章Weisfeiler-Lehman算法测试图同构中,我们可以看到,威斯费勒-莱曼同构测试算法对图G和G`的结点进行重标签时,只有当两个结点v和v`有相同的标签复合集,它们生成的新标签才一样。因此,我们可以认为对所有图进行标签压缩和重标签时,标签映射函数f都是一样的,定义为r((V, E, li)) = (V, E, l(i+1)),其中,V是图G的结点集,E是图G的边集,li和l(i+1)分别是威斯费勒-莱曼算法在第i次和第i+1次迭代时生成的标签集。
我们把(V, E, li)定义为高度为i的威斯费勒-莱曼图Gi,同时{G0, G1, ...., Gh} = {(V, E, l0), (V, E, l1), ..., (V, E, lh)}为高度(长度)为h的威斯费勒-莱曼序列,其中G0=(V, E, l0)为原始的图G。
可以看到,在迭代过程中,被改变的只是标签集l,结点集和边集没有变。
威斯费勒-莱曼核
威斯费勒-莱曼核的定义如下
其中,k为任意的正半定核,{G0, G1, ...., Gh}和{G`0, G`1, ...., G`h}分别为图G和图G`的威斯费勒-莱曼序列,长度均为h。
由于k是正半定的,所以威斯费勒-莱曼核也是正半定的。证明过程如下:
令Φ为核k对应的特征映射函数,则
由于Gi = r * G(i-1) = (r^2) * G(i-2) = .... = (r^i) * G0 = (r^i) * G,所以
为了简洁,令Φ((r^i)(G)) = Ψ(G),那么有
所以k(Gi, G`i)是原图G和G`的函数,因此如果k是正半定的,那么威斯费勒-莱曼核作为k的累积和,肯定也是正半定的。
如果每个k(Gi, G`i)有一个非负实权重αi,那么可以得到更一般的威斯费勒-莱曼核,如下所示
由于k是关于G和G`的正半定函数,并且αi非负,而威斯费勒-莱曼核是ki的线性组合,所以威斯费勒-莱曼核依旧是正半定的。
这篇关于图算法之Weisfeiler-Lehman核的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!