李宏毅机器学习|图神经网络Graph Nerual Networks(GNN)|学习笔记


前言

最近看的论文里面主要是就是图神经网络Graph Nerual Networks,然后就来学习下李宏毅机器学习中的图神经网络的内容,记个笔记。视频地址


1 Introduction

在这里插入图片描述
GNN简单来说就是Graph + Nerual Networks,关键问题就是将图的结构和图中每个节点和边的特征转化为一般的神经网络的输入(张量)。

可以做的事情主要包括:分类和生成
在这里插入图片描述
在这里插入图片描述

如何做?模仿卷积的过程

在这里插入图片描述

然后卷积有两种方式:基于空间的卷积(Spatial-based convolution)和基于频域的卷积(Spectral-based convolution)

2 Roadmap

本次介绍的内容大致如下:
在这里插入图片描述

Tasks, Dataset, and Benchmark这些我没做过实验,没看。

3 Spatial-based GNN

在这里插入图片描述
主要的思想就是模仿之前的卷积操作,之前的卷积操作的是某个点的所有邻居,因此在GNN当中也是通过这样的方式下更新下一层(在GNN中叫做aggregation)。当然图上所说的Aggregate也会包括这个节点本身的特征feature。
另外还有就是会需要整个图的表示,叫做readout。

NN4G (Neural Networks for Graph)

论文地址

在这里插入图片描述

input layer经过embedding之后到hidden layer 0。然后更新的话是将其相邻的节点相加然后乘以权重再加上之前input layer的原始输入。

关于为什么要相加的问题:如果不用相加的话,你就很难去处理节点间邻居数量不同这个巨大的区别 。另外,相加是最简单也是被证实最有效的利用邻点信息的方法。

readout

在这里插入图片描述
整个图的表示是通过求出每一层整个图中的顶点间的特征均值,然后各自乘以相应的权重再把每一层得到的结果相加。

DCNN (Diffusion-Convolution Neural Network )

论文地址

在这里插入图片描述
每一层的更新方式:如第一层,更新某个节点首先找到与它距离为1的节点(也就是邻居节点),然后用原始的输入相加取平均值再乘以权重。第二层,更新更新某个节点首先找到与它距离为2的节点(这样也包括了它自自己本身),然后用原始的输入相加取平均值再乘以权重。

这样就可以将每一层的节点特征组成一个矩阵,然后叠在一起。

当我们需要每个节点的feature时候,采用一下的方式来表示图中每个节点的特征:

在这里插入图片描述
如对节点1来说,也就是将每一层的节点1提出来,然后乘以权重得到最后节点1的表示。按照类似的操作可以得到其余节点的表示。

还有种处理方式:DGC (Diffusion Graph Convolution)
在这里插入图片描述
这里就直接将每一层对应的节点相加。

MoNET (Mixture Model Networks)

论文地址

之前只是简单的相加,并没有考虑到一个节点的邻居跟之间的区别(有的邻居可能更重要一点)。

在这里插入图片描述
其中的deg表示的是节点的度。无向图当中也就是说有几个和它相连接的节点。这里定义的距离公式可以有不同的。也就是给每个节点不同的权重weighted sum。
然后就是图中有个地方写错了,应该是 u 3 , 4 u_{3,4} u3,4而不是 u 3 , 2 u_{3,2} u3,2

GAT (Graph Attention Networks)

论文地址

不止是简单的weighted sum, 不是像之前那样定的weight ,而且要让他自己去学习这个weight。对邻居做Attention,就是不同的邻居给出不同的weight。

在这里插入图片描述
在这里插入图片描述
细节还没完全搞懂,但是目前用得最广的就是这个。

GIN (Graph Isomorphism Network)

论文地址

提供了一些关于图神经网络什么方式的aggregate能够work的理论证明和结论。

在这里插入图片描述
结论就是:用sum的方式,然后用多层感知器而不是一层。

下面的就是例子证明max和mean的缺点。对比的两个图,如果用max或者mean的话是看不出来两个图的区别的。

公式中epsilon可以为0,因此也就是所有相邻节点和其本身节点相加就可以的。


总结

目前只看了基于空间的卷积的图神经网络,基于频谱的需要一定的数学知识,还没看。

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值