笔记:ML-LHY-10 补充: GNN(Graph Neural Network)

GNN(Graph Neural Network)

GNN是为了解决图(Graph)结构的数据,比如社交网络、分子结构、树
在这里插入图片描述
比如预测一个分子结构会不会发生突变
在这里插入图片描述
更形象的例子:
在这里插入图片描述
预测一个人是不是凶手,当然可以使用各种特征做分类。比如实验2 classification。但是还可以考虑的一个特征是人与人之间的联系
在这里插入图片描述
所以如何在预测一个人的类别时同时考虑和其他人关系,这就构成了图,GNN处理的就是这种结构,一种图结构

首先提出3个挑战:

  • 如何利用结构和关系来帮助模型?
  • 怎么处理大型图,比如有20k节点?
  • 如果图很大,有可能不能所有的节点都有label,怎么处理?

首先第3个问题,可以找最近节点近似

在这里插入图片描述
我们知道卷积可以作用在以矩阵形式分布的存储结构上,典型的例子就是图片,那么如何作用在图上?
在这里插入图片描述

有2种解决方法:

  • 将卷积(相关性)的概念推广到图>>基于空间的卷积(Spatial-based Convolution)
  • 回到信号处理中卷积的定义>>频谱卷积(类似图像处理中的频域滤波?)

Spatial-based Convolution

在这里插入图片描述
Aggregate: 用 neighbor feature update 下一層的 hidden state(当然包括自己的feature)
Readout: 把所有 nodes 的 feature 集合起來代表整個 graph

NN4G (Neural Networks for Graph)

输入:
在这里插入图片描述

以求顶点v3为例,转成hidden layer,首先有个w
在这里插入图片描述
然后做Aggregate:
在这里插入图片描述
注意:还要加原本的x

在这里插入图片描述
Readout
在这里插入图片描述
每层的节点加起来(求均值?),然后每层加起来

DCNN (Diffusion-Convolution Neural Network )

DCNN原理类似图像金字塔,叠加不同视野尺度,这里是叠加不同距离的邻居,个人理解

h 3 0 = w 3 0 M E A N ( d ( 3 , ⋅ ) = 1 ) h_{3}^{0} \quad=w_{3}^{0} M E A N(d(3, \cdot)=1) h30=w30MEAN(d(3,)=1)在这里插入图片描述
h 3 1 = w 3 1 M E A N ( d ( 3 , ⋅ ) = 2 ) h_{3}^{1}=w_{3}^{1} M E A N(d(3, \cdot)=2) h31=w31MEAN(d(3,)=2)
在这里插入图片描述
节点的特征表示:
在这里插入图片描述
类似的还有DGC (Diffusion Graph Convolution),是直接加起来就结束了
在这里插入图片描述

MoNET (Mixture Model Networks)

节点之间相加是可以加权重的,每个邻居的重要性是不一样。
比如: h 3 1 = w ( u ^ 3 , 0 ) × h 0 0 + w ( u ^ 3 , 2 ) × h 2 0 + w ( u ^ 3 , 2 ) × h 4 0 h_{3}^{1}=w\left(\hat{u}_{3,0}\right) \times h_{0}^{0}+w\left(\hat{u}_{3,2}\right) \times h_{2}^{0}+w\left(\hat{u}_{3,2}\right) \times h_{4}^{0} h31=w(u^3,0)×h00+w(u^3,2)×h20+w(u^3,2)×h40

GAT (Graph Attention Networks)

类似MoNET,但是这里权重也是学到的:
在这里插入图片描述

GIN (Graph Isomorphism Network)

结论:
h v ( k ) = MLP ⁡ ( k ) ( ( 1 + ϵ ( k ) ) ⋅ h v ( k − 1 ) + ∑ u ∈ N ( v ) ∣ h u ( k − 1 ) ) h_{v}^{(k)}={\operatorname{MLP}^{(k)}}\left(\left(1+\epsilon^{(k)}\right) \cdot h_{v}^{(k-1)}+\sum_{u \in \mathcal{N}(v)} \mid h_{u}^{(k-1)}\right) hv(k)=MLP(k)((1+ϵ(k))hv(k1)+uN(v)hu(k1))

∑ u ∈ N ( v ) \sum_{u \in \mathcal{N}(v)} uN(v)说明节点直接应该相加,而不是均值或者求最大。因为:
在这里插入图片描述

以上参考李宏毅老师视频和ppt,仅作为学习笔记交流使用

助教还补充了第二节课,内容涉及比较多数学理论,暂时记到这

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值