文章目录

  • 摘要
  • 1 引入图神经网络
  • 2 Spatial-based GNN
    • NN4G(Neural Networks for Graph)
    • DCNN(Diffusion-Convolution Neural Network)
    • DGC(Diffusion Graph Convolution)
    • MoNET(Mixture Model Networks)
    • GAT(Graph Attention Networks)
    • GIN(Graph Isomorphism Network)
  • 3 总结与展望

摘要

上一篇文章介绍了卷积神经网络,一个多维列向量作为卷积神经网络的输入,经过卷积、池化与全连接网络后会对图像等识别工作取得较好结果,而不能处理数据结构中“图”的概念。本文介绍的Spatial-based GNN,受到卷积层计算的启发,考虑图的节点与边等结构,设计出符合图结构的Model。文章介绍了五种Spatial-based GNN及其有效性的判别结论。

1 引入图神经网络

Graph如何输入进神经网络里面?如何输入图的结构、节点和边的feature?
如果Graph有20k个节点如何处理?
如果Training Set中数据量很大,不能将全部数据Labeled,如何训练model?
GNN如何捕捉邻居关系来训练model?

如何将图的节点嵌入到feature space中做卷积?
方法一:借鉴CNN,用邻居更新Feature Map,Spatial-based convolution方法。
Aggregate:用邻居的特征更新Feature Map、也就是更新下一层的hidden state,示意图如图1所示。

Readout:把所有节点的特征集合起来代表整个graph

方法二:使用Signal Processing理论,经过一系列步骤得到经过Filter的输出,Spectral-based convolution方法

2 Spatial-based GNN

NN4G(Neural Networks for Graph)

NN4G这个model是采用方法一Spatial-based convolution,Model的Input layer输入节点、边和特征,Hidden layer 0使用特征矩阵提取每一个节点特征,这两个步骤的示意图如图2所示。

接下来Aggregate,NN4G把算法设计成将邻居的特征相加、经过一次Transform、再加上原本的Input layer的特征。示意图如图3所示。

最后Readout,叠的各层分别对特征取平均、经过一次Transform、再相加变成一个Feature,代表整个Graph的特征。示意图如图4所示。

DCNN(Diffusion-Convolution Neural Network)

以相同的输入图为例,Hidden layer 0设计成将所有与被计算节点距离为1的节点求平均、再微分,每一个节点做相同的事情,示意图如图5所示。

再叠加的层更新Feature时,所用特征的数据来源于Hidden layer 0,将Hidden layer 1中所有与被计算节点距离为2的节点求平均、再微分,每一个节点做相同的事情,示意图如图6所示。

Output layer的节点特征计算:

图7假设叠了K层,将某个节点在K层矩阵中对应数值取出来,经过一次Transform,即得到节点特征。

DGC(Diffusion Graph Convolution)

在Input layer、Hidden layer与DCNN相同,在Output layer采取相加,而非Transform,如图8所示。

MoNET(Mixture Model Networks)

Aggregate时,被计算节点的邻居之间应该考虑权重。定义节点之间的距离,即每条边都计算 u x , y u_{x,y} ux,y​来表示节点x与节点y之间的距离,将距离Transform后作为权重。如图9所示。

GAT(Graph Attention Networks)

不仅要考虑权重,还让权重是机器自己学的。定义目标节点与其邻居的energy,如图10所示。

GAT目前使用很广泛。

GIN(Graph Isomorphism Network)

基于图相对复杂的结构,使用Max和Mean可能会导致失败,有效地更新特征的式子应该为 h v ( k ) = M L P ( k ) ( ( 1 + ϵ ( k ) ) ⋅ h v k − 1 + ∑ h u k − 1 ) h_v^{(k)}=MLP^{(k)}\big((1+\epsilon^{(k)})\cdot h_v^{k-1}+\sum h_u^{k-1}\big) hv(k)​=MLP(k)((1+ϵ(k))⋅hvk−1​+∑huk−1​),求和是较好的处理。

3 总结与展望

本文介绍的Spatial-based GNN,受到卷积层计算的启发,考虑图的节点与边等结构,设计出符合图结构的Model。文章介绍了五种Spatial-based GNN及其有效性的判别结论。接下来将介绍Graph Signal Processing and Spectral-based GNN以及衡量GNN效果的Benchmark。

李宏毅机器学习课程梳理【九】:GNNSpatial-based GNN相关推荐

  1. 李宏毅机器学习课程-Transfer Learning

    深度学习 -> 强化学习 ->迁移学习(杨强教授报告) 李宏毅机器学习课程-Transfer Learning 迁移学习-吴恩达 freeze 待处理的 理解深层神经网络中的迁移学习及Te ...

  2. 李宏毅机器学习课程12~~~半监督学习

    Semi-supervised Learning The distribution of the unlabeled data tell us something. Usually with some ...

  3. 李宏毅机器学习课程4~~~分类:概率生成模型

    分类问题用回归来解决? 当有右图所示的点时,这些点会大幅改变分类线的位置.这时候就会导致整体的回归结果变差.当把多分类当成回归问题,类别分别为1,2,3,4--,因为回归的问题是预测具体的值,这样定义 ...

  4. 李宏毅机器学习课程---2、Regression - Case Study

    李宏毅机器学习课程---2.Regression - Case Study 一.总结 一句话总结: 分类讨论可能是比较好的找最佳函数的方法:如果 有这样的因素存在的话 模型不够好,可能是因素没有找全 ...

  5. 台大李宏毅机器学习课程

    [机器学习入门] 台大李宏毅机器学习课程,转载来自:https://blog.csdn.net/soulmeetliang/article/details/77461607 TOPIC CONTENT ...

  6. 李宏毅机器学习课程10~~~卷积神经网络

    卷积的意义 数字图像是一个二维的离散信号,对数字图像做卷积操作其实就是利用卷积核(卷积模板)在图像上滑动,将图像点上的像素灰度值与对应的卷积核上的数值相乘,然后将所有相乘后的值相加作为卷积核中间像素对 ...

  7. 【李宏毅机器学习课程笔记】深度强化学习(五)—— Sparse Reward

    文章目录 Introduction Reward Shaping Curiosity Curriculum Learning Hierarchical Reinforcement Learning I ...

  8. 李宏毅机器学习课程--回归(Regression)

    近期在学习李宏毅老师的机器学习视频(https://www.bilibili.com/video/av10590361/?p=4),下面写一下自己的心得体会. 李老师用的是精灵宝可梦做的比喻,假设进化 ...

  9. 李宏毅机器学习课程9~~~深度学习技巧

    Recipe of Deep Learning Overfitting overfitting的判断是要训练误差与测试误差做比较.这个56-layer的网络在训练集上都没有训练好,说白了就是有点欠拟合 ...

最新文章

  1. 让植物“张嘴说话”!新加坡“植物机器人”可成为环境探测器促进农业生产...
  2. gradle入门,安卓gradle入门
  3. pygame的学习以及python的巩固(窗口尺寸的显示)
  4. tablespace innodb_index_stats is missing
  5. 2017.7.17数据类型
  6. 谈谈JS中的函数节流
  7. 【一周一算法】算法3:最常用的排序——快速排序
  8. ionic的Alert弹出框详解
  9. [UPF]低功耗(Low Power Design)and UPF介紹
  10. Spring Boot系列 —(一)手把手搭建 SpringBoot 项目
  11. 应该怎么学大数据?该从哪学起?
  12. 辉芒微IO单片机FT60F121-RB
  13. 【Servlet】2:认识一下Web服务器——Tomcat
  14. 电脑开机遇见a disk read error occurred场景:
  15. stm32LL库串口空闲中断+DMA接收
  16. collect2.exe: error: ld returned 1 exit status分析与解决
  17. 一文解锁BILIBILI、ACFUN等弹幕网站是如何审核视频
  18. 人工神经网络与神经网络,神经网络最新研究方向
  19. FusionCharts(Falsh图表)免费版下载和使用
  20. Java利用多线程编程实现一个正在旋转的地球

热门文章

  1. Python量化交易学习笔记(2)——A股数据下载
  2. javaee java_JavaEE:JavaEE技术组成
  3. 获取网站的Icon图标
  4. 为何人工智能 AI 首选Python 读完这篇文章你就知道了
  5. 如何快速构建物联网原型?
  6. 2020中考计算机统考答案,2020中考必读 | 中考电脑阅卷流程“潜规则”!读完孩子少丢20分!(转给中考生)...
  7. 利用VMware虚拟机,用汇编语言编写代码调用系统调用并输出
  8. Unicode介绍及Unicode编程
  9. Python 批量加水印只需一行命令
  10. Elasticsearch 设置密码,并配置 Kinaba 和 Filebeat