同济子豪兄--传统图机器学习的特征工程-全图【斯坦福CS224W】

全图层面的特征工程:将整张图反映为D维的向量

BoW方法:将文章的词语抽出来,然后分别计数总结为一个D维向量这样计算机就可以识别。

但是如下图所示两个不同的图抽象出来的D维向量却是一样的,所以只靠BoW方法不可靠。

这里若考NodeDegree进行判断则可以区别出来,所以将Bag-of-*推广到其他情况。

回想之前的Graphlets,将全图的Graphlets抽取出来作为一个向量

第i个元素就是第i个graphlet在图中的个数。

将两个图的Graphlet进行数量积可以得到两张图的Kernel,这个Kernel就可以反映两张图的相似程度,若两张图不一样大的话则会对每一个向量做一个归一化。

但是为什么我们不经常用这个方法呢?因为消耗的算力太大。

更高效的算法

例子:初始化都为1。后面一次迭代若邻居有两个则写为1,11。若邻居有三个则写为1,111。其他以此类推。

在进一步迭代,也和上面一样将邻居的点“拿”过来形成下图样子。

在进一步迭代,将图中节点的个数计算出来如下图所示。

最后将两个图的Kernel点乘计算出来。

总结:

Graphlet Kernel: 是一种基于图的子图结构来衡量两个图相似度的方法。它的核心思想是将图分解为更小的子图结构,称为 graphlets,然后计算这些 graphlets 在两个图中出现的频率,以此来估计图之间的相似度。Graphlet Kernel 的计算复杂度较高,因为它需要枚举图中的所有可能的子图结构,这在大型图中尤其耗时。为了解决这个问题,研究者们提出了一种高效的方法,只考虑大小为3、4和5的连接图lets,因为这些较小的图lets可以有效地捕捉图的结构特征,并且计算成本较低。

Weisfeiler-Lehman Kernel(WL Kernel):是基于 Weisfeiler-Lehman 同构测试算法的图核方法。这个算法通过迭代地为图中的节点分配新标签来捕捉图的结构信息。在每次迭代中,节点的标签会被更新为其邻居节点的标签的某种组合。这个过程重复进行,直到无法进一步更新或达到预定的迭代次数。WL Kernel 通过比较两个图在不同迭代步骤中的标签分布来衡量它们的相似度。WL Kernel 的一个关键优势是它可以处理带有离散标签的大规模图,并且计算效率较高。

两种方法都试图通过捕捉图的结构特征来衡量图之间的相似度,但它们在实现和效率上有所不同。Graphlet Kernel 更注重于子图的结构,而 Weisfeiler-Lehman Kernel 则侧重于节点标签的迭代更新过程。在实际应用中,选择哪种方法取决于具体任务的需求和图的大小。对于大规模图数据,WL Kernel 通常更受欢迎,因为它的计算效率更高

把两张图的向量做数量积得到一个标量这种方法称为Kernel methods

这集讲的是Graphlet Kernel和Weisfeiler-Lehman Kernel方法,另外可以了解的方法如下Random-walk kernel、Shortest-path graph kernel等等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值