Weisfeiler-Lehman 算法

  • Weisfeiler-Lehman(WL)算法
    • The Weisfeiler-Lehman Test of Isomorphism
    • The General Weisfeiler-Lehman Kernels
      • 1.The Weisfeiler-Lehman Kernel Framework
      • 2.The Weisfeiler-Lehman Subtree Kernel
        • 多图上计算The Weisfeiler-Lehman Subtree Kernel
        • THE RAMON-GARTNER SUBTREE KERNEL
      • 3.The Weisfeiler-Lehman Edge Kernel
      • 4.The Weisfeiler-Lehman Shortest Path Kernel

Weisfeiler-Lehman(WL)算法

The Weisfeiler-Lehman Test of Isomorphism

  • 图核使用来自Weisfeiler−LehmanWeisfeiler-LehmanWeisfeiler−Lehman同构检验的概念,更具体地讲是其一维变体,也称为“朴素顶点修饰”
  • 该算法的关键思想是通过对相邻节点的节点标签排序后的集合来扩展节点标签,并将这些扩展后的标签压缩为新的短标签
  • alphabetalphabetalphabet ΣΣΣ必须足够大才能使fff具内射性。 对于两个图,∣Σ∣=2n|Σ| = 2n∣Σ∣=2n个满足条件。

  • (a)(a)(a)网络中每个节点有一个labellabellabel,如图中的彩色的1,2,3,4,51,2,3,4,51,2,3,4,5
  • (b)(b)(b)标签扩展:做一阶广度优先搜索,即只遍历自己的邻居。比如在图(a)(a)(a)网络GGG中原(5)(5)(5)号节点,变成(5,234)(5,234)(5,234),这是因为原(5)(5)(5)节点的一阶邻居有2,3和42,3和42,3和4
  • (c)(c)(c)标签压缩:仅仅只是把扩展标签映射成一个新标签,如 5,234=>135,234 => 135,234=>13
  • (d)(d)(d)压缩标签替换扩展标签
  • (e)(e)(e)数标签:比如在GGG网络中,含有111号标签222个,那么第一个数字就是222。这些标签的个数作为整个网络的新特征

算法:
假设要测试同构的两张图为GGG和G’G’G’,那么在结点vvv的第iii次迭代里,算法都分别做了四步处理:标签复合集定义、复合集排序、标签压缩和重标签

  • WLtestWL\ testWL test的复杂度是O(hm)O(hm)O(hm),其中h为iterationiterationiteration次数,mmm是一次iterationiterationiteration里multisetmultisetmultiset的个数

一维的Weisfeiler−LehmanWeisfeiler-LehmanWeisfeiler−Lehman如下所示:


稳定后,统计两张图的labellabellabel的分布,如果分布相同,则一般认为两张图时同构的。

注意:我们可以发现,WLtestWL\ testWL test方法的步骤和GNNsGNNsGNNs具有异曲同工之妙,都是通过不断聚合邻居信息,得到节点的新表示,这也是为什么KipfKipfKipf在201720172017年GCNGCNGCN的论文中单独讨论和GCNGCNGCN和WLtestWL testWLtest关系的原因。而正是这种统一性,才使得本文能以 WLtestWL\ testWL test 为基础来分析GNNsGNNsGNNs框架。

The General Weisfeiler-Lehman Kernels

1.The Weisfeiler-Lehman Kernel Framework

  • Weisfeiler−LehmanalgorithmWeisfeiler-Lehman\ algorithmWeisfeiler−Lehman algorithm 对图GGG和G′G'G′的结点进行重标签时,只有当两个结点vvv和v′v'v′有相同的标签复合集,它们生成的新标签才一样。
  • 因此,我们可以认为对所有图进行标签压缩和重标签时,标签映射函数fff都是一样的,定义为r((V,E,li))=(V,E,l(i+1))r((V, E, l_i)) = (V, E, l_{(i+1)})r((V,E,li​))=(V,E,l(i+1)​),其中,VVV是图GGG的结点集,EEE是图GGG的边集,lil_ili​和l(i+1)l_{(i+1)}l(i+1)​分别是Weisfeiler−LehmanalgorithmWeisfeiler-Lehman\ algorithmWeisfeiler−Lehman algorithm 在第iii次和第i+1i+1i+1次迭代时生成的标签集。

    G0G_0G0​是原始图,G1=r(G0)G_1 = r(G_0)G1​=r(G0​)是第一次重新贴标产生的图,依此类推.


    性质
  • 1.半正定矩阵的行列式是非负的。
  • 2.两个半正定矩阵的和是半正定的
  • 3.Gi=r∗G(i−1)=(r2)∗G(i−2)=....=(ri)∗G0=(ri)∗GG_i = r * G_{(i-1)} = (r^2) * G_{(i-2)} = .... = (r^i) * G_0 = (r^i) * GGi​=r∗G(i−1)​=(r2)∗G(i−2)​=....=(ri)∗G0​=(ri)∗G
    证明


    **请注意,**可以将非负实权重αiα_iαi​放在k(Gi,Gi′),i=0,1,...,hk(G_i,G_i'),i = {0,1,...,h}k(Gi​,Gi′​),i=0,1,...,h上,以获得更一般的Weisfeiler−LehmanWeisfeiler-LehmanWeisfeiler−Lehman核定义:

2.The Weisfeiler-Lehman Subtree Kernel


ci(G,σij)c_i(G,σ_{ij})ci​(G,σij​)是图形GGG中字母σijσ_{ij}σij​的出现次数。

也就是说,Weisfeiler-Lehman子树内核在两个图中计数共同的原始标签和压缩标签

  • 假设基本内核kkk是一个函数,用于计算两个图中的匹配节点标签对:

多图上计算The Weisfeiler-Lehman Subtree Kernel

算法:

  • 在NNN个图和hhh次迭代的情况下,ΣΣΣ大小为Nn(h+1)Nn(h + 1)Nn(h+1)。


    举例:


THE RAMON-GARTNER SUBTREE KERNEL

具有子树高度hhh的Ramon−GartnerRamon-GartnerRamon−Gartner子树内核通过迭代比较它们的邻域来比较图G=(V,E,l)G =(V,E,l)G=(V,E,l)和G0=(V0,E0,l)G_0 =(V_0,E_0,l)G0​=(V0​,E0​,l)中的所有节点对:



M(v,v′)M(v,v')M(v,v′)是vvv和v′v'v′邻域的子集的精确匹配集合。M(v,v′)M(v,v')M(v,v′)的每个元素RRR是来自v∈Vv∈Vv∈V和v0∈V0v_0∈V_0v0​∈V0​的邻域的一组节点对,因此每对中的节点具有相同的标记,并且不包含多于一对的节点。 因此,从直观上讲,kRGk_{RG}kRG​迭代地考虑来自GGG的节点vvv和来自G0G_0G0​的v0v_0v0​的邻居之间两个相同标记节点的所有匹配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

TheWeisfeiler−LehmanedgekernelThe\ Weisfeiler-Lehman\ edge\ kernelThe Weisfeiler−Lehman edge kernel 是theWeisfeiler−Lehmankernelframeworkthe\ Weisfeiler-Lehman\ kernel\ frameworkthe Weisfeiler−Lehman kernel framework的另一个实例。 对于具有未加权边的图,我们考虑对两个图中具有相同标记的端点(事件节点)的匹配边对进行计数的基本内核。 换句话说,基本内核定义为

其中φE(G)φ_E(G)φE​(G)是对(a,b)(a,b)(a,b),a,b∈Σa,b∈Σa,b∈Σ的出现次数的向量,它们表示GGG中边的端点的有序标签. (a,b)(a,b)(a,b)和(a0,b0)(a_0,b_0)(a0​,b0​)分别表示边eee和e0e_0e0​的端点的有序标签,以及DirackernelDirac\ kernelDirac kernel的δ,kEδ,k_Eδ,kE​可以等效地表示为∑e∈E∑e0∈E′δ(a,a0)δ(b,b0)∑_{e∈E} ∑_{e_0∈E'}δ(a,a_0) δ(b,b_0)∑e∈E​∑e0​∈E′​δ(a,a0​)δ(b,b0​)。如果边缘通过分配权重的函数www加权,则基本核kEk_EkE​可以定义为∑e∈E∑e0∈E′δ(a,a0)δ(b,b0)kw(w(e),w((e0))∑_{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​)) ,其中kwk_wkw​是比较边缘权重的内核。

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

Weisfeiler-Lehman(WL)算法相关推荐

  1. GNN:Weisfeiler-Lehman(WL)算法、WL-Test【GNN 的性能上界】

    <How powerful are graph neural networks?> 对邻居节点标签信息进行聚合,以获得一个带标签的字符串(整理默认采用升序排序的方法进行排序) 参考资料: ...

  2. Weisfeiler-Lehman(WL)算法测试图同构

    参考文献 [1]Weisfeiler-Lehman算法测试图同构 [2]图神经网络的表达能力与Weisfeiler-Lehman测试 [3]什么是Weisfeiler-Lehman(WL)算法和WL ...

  3. WL算法(来自graph-bert)

    node_list: node_color_dict node_neighbor_dict self.max_iter : 最大迭代次数

  4. 综述论文阅读”A comprehensive survey on graph neural networks“(TNNLS2020)

    论文标题 A comprehensive survey on graph neural networks 论文作者.链接 作者:Wu, Zonghan and Pan, Shirui and Chen ...

  5. Michael Brostein 最新几何深度学习综述:超越 WL 和原始消息传递的 GNN

    来源:AI科技评论 本文约8500字,建议阅读15+分钟 本文叫你如何突破基于 WL 测试和消息传递机制的 GNN 的性能瓶颈. 图可以方便地抽象关系和交互的复杂系统.社交网络.高能物理.化学等研究领 ...

  6. Weisfeiler-Lehman(WL)算法和WL Test的学习笔记

    1. 什么是Weisfeiler-Lehman(WL)算法 一维的Weisfeiler-Lehman: 对于任意的节点vi∈Gv_i∈Gvi​∈G: 获取节点{vi{v_i}vi​}所有的邻居节点jj ...

  7. Michael Bronstein 最新几何深度学习综述:超越 WL 和原始消息传递的 GNN

    如何突破基于 WL 测试和消息传递机制的 GNN 的性能瓶颈?且看几何深度学习旗手.牛津大学教授 Michael Brostein 如是说. 编辑丨陈彩娴 来源 | AI科技评论 图可以方便地抽象关系 ...

  8. 图神经网络的表达能力,究竟有多强大?

    来源:AI科技评论 作者 | Mr Bear 编辑 | 丛 末 近年来,随着图神经网络在各个领域的火热应用,越来越多的学者试图从图论的角度对图神经网络的表达能力进行理论分析,并基于这些理论分析开发出了 ...

  9. SortPool (DGCNN) - An End-to-End Deep Learning Architecture for Graph Classification AAAI 2018

    文章目录 1 背景介绍 图核方法 DGCNN和WL和PK的关系 2 Deep Graph Convolutional Neural Network (DGCNN) 深度图卷积神经网络 图卷积层 与We ...

最新文章

  1. inode 索引节点和软硬链接
  2. 数据结构-冒泡排序最优代码(C语言)
  3. python 之信号Signal
  4. mysql表恢复报错binlog_mysqlbinlog 恢复报错ERROR at line 24826643: Unknown command '\'汗血宝马...
  5. JavaScript汉字Unicode编码相互转换
  6. 剑指offer——5.替换空格
  7. win7连接linux系统怎么样,win7系统连接linux的操作方法
  8. 使用C#开发纽曼USB来电小秘书客户端小结
  9. kafka 的pom文件_Flink的sink实战之二:kafka
  10. 玩转大数据系列之一:数据采集与同步
  11. iOS 颜色选择器 仿ps 调色板
  12. .pdf文件通过java拷贝,java复制pdf而且往pdf文件中添加内容
  13. wps里面函数怎么使用_wps表格函数及函数简单使用
  14. poi 读取word内容转html在线预览
  15. Java多线程编程-停止线程 暂停线程
  16. vue 自定义指令v-directive
  17. 拉格朗日乘子法:写得很通俗的文章
  18. gsoc 任务_gsoc20第3集从谱线中识别元素
  19. 深度学习常见的专业术语
  20. 软件工程—Chapter2 计划

热门文章

  1. sonique的插件Dee2
  2. switch语句的执行顺序
  3. ARP是什么?+ARP欺骗 MAC为ff:ff:ff:ff:ff:ff是什么意思
  4. SOPC技术习题及答案
  5. 协卡助手无法卸载的解决办法
  6. 成都的IT研发产业和芯片产业等情况:2006年初的数据。(转)
  7. XSS(Reflected)
  8. 各品牌手机音视频格式支持一览表
  9. Deblurring by Realistic Blurring 图像去模糊论文解读
  10. iOS图标(AppIcon)与启动图(LaunchImage)