【斯坦福CS224W图机器学习】05 传统图机器学习方法--图级别:特征和图核

传统图机器学习方法–图级别:特征和图核

1概述

目标:我们想要能够描述整个图的结构的特征

在这里插入图片描述

背景知识:Kernel methods

核方法广泛用于传统的ML的图级预测。

想法:设计内核,而不是特征向量。

对内核的快速介绍:

  • G 、 G ′ G、G' GG之间的内核 K ( G , G ′ ) K(G,G') K(G,G)返回一个实数,衡量图之间的相似性。
  • 内核矩阵 K = ( K ( G , G ′ ) ) G , G ′ K=(K(G,G'))_{G,G'} K=(K(G,G))G,G必须是半正定矩阵
  • 存在一个特征表示 ϕ ( ⋅ ) \phi(\cdot) ϕ()可以满足 K ( G , G ′ ) = ϕ ( G ) T ϕ ( G ′ ) K(G,G')=\phi(G)^T\phi(G') K(G,G)=ϕ(G)Tϕ(G)
  • 一旦定义了内核,就可以使用现成的ML模型,如内核SVM,来进行预测。

图内核:测量两个图之间的相似度:

  • Graphlet Kernel
  • Weisfeiler-Lehman Kernel
  • 其他核也提出在文献中(超出本讲座的范围)随机行走核、最短路径图核等

2 Graphlet Kernel

目标:设计出一图特征向量 ϕ ( ⋅ ) \phi(\cdot) ϕ()

关键想法:图的单词包(袋)Bag-of-Words (BoW)

  • 回想一下:BoW只是将字数作为文档的特征(不考虑排序)。
  • 图的天真Naïve 扩展:将节点视为单词
  • 因为两个图都有4个红色节点,所以我们得到了两个不同图的相同特征向量…

在这里插入图片描述

如果用节点度的Bag呢?获得不同图形的不同特征!

在这里插入图片描述

Graphlet内核和Weisfeiler-Lehman (WL)内核都使用 Bag-of-* 表示,其中*比节点度更复杂!

Graphlet Feature

关键思想:计算一个图形中不同小图形的数量。

  • 注意:这里小图的定义与节点级Graphlet特性略有不同。
  • 这两个区别是:这里的小图中的节点不需要连接(允许孤立的节点)。这里的小图没有根。下一张幻灯片中的示例说明了这一点。

在这里插入图片描述

给定图形 G G G和一个小图形列表 g k = ( g 1 , g 2 , , , g n k ) g_k=(g_1,g_2,,,g_{n_k}) gk=(g1,g2,,,gnk),定义小图计数向量 f G ∈ R n k f_G\in R^{n_k} fGRnk
在这里插入图片描述

在这里插入图片描述

Graphlet Kernal

现在可以将俩个图之间的核定于为计数向量之间的点积,即 K ( G , G ′ ) = f G T ∗ f G ′ K(G,G')=f_G^T*f_{G'} K(G,G)=fGTfG

问题:如果G和G‘具有不同的大小,( f f f的行数不一致)这将极大地扭曲该值。

解决方案:归一化每个特征向量

在这里插入图片描述

Graphlet Kernal有一个重要的限制:计算小图集是非常耗时的!

  • 通过枚举节点数为n的图的k大小graphlets将花费 n k n^k nk
  • 这在最坏的情况下是不可避免的,因为子图同构测试(判断一个图是否是另一个图的子图)是NP难的。
  • 如果图的节点度以d为界,存在复杂度 O ( n d k − 1 ) O(nd^{k-1}) O(ndk1)算法来统计所有k大小的小图!

我们能设计一个更加高效的图核吗?

Weisfeiler-Lehman Kernal

目标:设计一个高效的图特征表示 ϕ ( G ) \phi(G) ϕ(G)

想法:使用邻域结构迭代地丰富节点词汇

在这里插入图片描述

算法实现 Color refinement颜色细化或图同构测试

Color refinement

在这里插入图片描述

下面举个例子

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

WL Kernel总结

  • WL核计算效率高。每一步的颜色细化的时间复杂度在#(edge)上是线性的,因为它涉及聚集相邻的颜色
  • 当计算一个内核值时,只需要跟踪两个图形中出现的颜色。因此,#(color)最多是节点的总数
  • 计算颜色需要线性时间关于 #(node)
  • 总的来说,时间复杂度在#(edge))上是线性的

图级别特征总结

在这里插入图片描述

03-05小节总结

在这里插入图片描述

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值