图系列(一)图神经网络
文章目录
- Spatial-based convolution
- NN4G (Neural Networks for Graph)
- DCNN (Diffusion-Convolution Neural Network )
- MoNET (Mixture Model Networks)
- GraphSAGE
- GAT (Graph Attention Networks)
- GIN (Graph Isomorphism Network)
- Spectral-based convolution
- 学习资源
Graph Neural Networks
顾名思义由 Graph
和 Neural Network
组成。Graph由节点和边组成,节点有节点的性质,边有边的性质。
09
年Franco Scarselli
提出The Graph Neural Network Model,能够将其用于化学分子会不会突变。
- GraphVAE用于药物研发。
如何把graph
输入到NN
中?这就是GNN
需要处理的最大的问题。GNN
想要做的事情就是抽取与周围节点之间的关系。通常有两种做法:
但是常用的算法是GAT
和GCN
。
Spatial-based convolution
用neighbor feature
更新下一代的hidden state
,我们乘这个操作叫做Aggregate
。: 把所有 nodes
的 feature
集合起来代表整个 graph
的操作称之为Readout
。那具体怎么做呢?
NN4G (Neural Networks for Graph)
- Neural Network for Graphs: A Contextual Constructive Approach
假设我们的输入如下图所示:
节点v0,⋯,v4v_{0},\cdots,v_{4}v0,⋯,v4分别有x0,⋯,x4x_{0},\cdots,x_{4}x0,⋯,x4个特征,特征代表的是节点的一些特殊属性,比如在化学分子里面,就表示不同的原子所具有的属性。
对于节点v3v_{3}v3,先经过一个编码得到第0
层隐藏层的输出h30=Wˉ0⋅x3h_{3}^{0}=\bar{W}_{0} \cdot x_{3}h30=Wˉ0⋅x3,之后在第一层隐藏层,需要考虑与节点v3v_{3}v3相邻的三个节点,得到第1
层隐藏层的输出h31=W^1,0(h00+h20+h40)+Wˉ1x3h_{3}^{1}=\hat{W}_{1,0}(h_{0}^{0}+h_{2}^{0}+h_{4}^{0})+\bar{W}_{1}x_{3}h31=W^1,0(h00+h20+h40)+Wˉ1x3,上述就是Aggregate
所做的事情。
那Readout
怎么考虑整张图的node feature
呢?NN4G
里面是将每一层的输出平均出来再加权。
DCNN (Diffusion-Convolution Neural Network )
- Diffusion-Convolutional Neural Networks
同样对于下面这个输入:
第0
层隐藏层的输出h30=W30MEAN(d(3,⋅)=1)h_{3}^{0}=W_{3}^{0}\text{MEAN}(d(3,\cdot)=1)h30=W30MEAN(d(3,⋅)=1),其中d(3,⋅)=1d(3,\cdot)=1d(3,⋅)=1表示距离v3v_{3}v3这个节点距离为1
的节点,将其平均再乘上一个权重。
第1
层隐藏层的输出h30=W31MEAN(d(3,⋅)=2)h_{3}^{0}=W_{3}^{1}\text{MEAN}(d(3,\cdot)=2)h30=W31MEAN(d(3,⋅)=2)。可以看出它同样是基于输入图所做一些计算,并不是在第0
层的输出上接着算的。
之后将每个隐藏层计算得到的结果排成一个矩阵,每个节点乘上一个权重就能得到Node features
输出:
如果是将每个隐藏层计算得到的结果排成一个矩阵再加起来直接得到输出,而不是乘上权重矩阵的话,就是DGC (Diffusion Graph Convolution)这篇文章的工作。
MoNET (Mixture Model Networks)
Geometric deep learning on graphs and manifolds using mixture model CNNs在处理neighbor node
的时候不是将其平均起来,而是考虑邻居节点的加权。
GraphSAGE
- Inductive Representation Learning on Large Graphs
GAT (Graph Attention Networks)
- Graph Attention Networks
GIN (Graph Isomorphism Network)
这篇文章主要是在理论上分析了什么样的做法会work
,在处理邻居节点时,不希望去取max
或者mean
。
Spectral-based convolution
卷积操作在频域里面就是相乘,因此对输入图和Filter
做傅里叶变换,然后相乘再做反变换可以得到相同的结果:
这里老板给任务了,先做去了,后面还有一部分,也比较深入了,未完,以后有看到更好的资料再来把这里补上吧:
- https://www.youtube.com/watch?v=M9ht8vsVEw8
学习资源
- Deep Graph Library
图系列(一)图神经网络相关推荐
- 【TensorFlow】TensorFlow从浅入深系列之二 -- 教你通过思维导图深度理解深层神经网络
本文是<TensorFlow从浅入深>系列之第2篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维导 ...
- PGL图学习之图神经网络ERNIESage、UniMP进阶模型[系列八]
PGL图学习之图神经网络ERNIESage.UniMP进阶模型[系列八] 原项目链接:fork一下即可:https://aistudio.baidu.com/aistudio/projectdetai ...
- 图机器学习(GML)图神经网络(GNN)原理和代码实现(前置学习系列二)
图机器学习(GML)&图神经网络(GNN)原理和代码实现(PGL)[前置学习系列二] 上一个项目对图相关基础知识进行了详细讲述,下面进图GML networkx :NetworkX 是一个 P ...
- 图神经网络系列-Graph图基本介绍、度中心性、特征向量中心性、中介中心性、连接中心性
图神经网络系列-Graph图基本介绍.度中心性.特征向量中心性.中介中心性.连接中心性 目录 图的定义 图的类型 空图形 简单图 多重图 有向图 无向图 连通与断开图 正则图 完全图 循环图 二部图 ...
- A.图机器学习(GML)图神经网络(GNN)原理和代码实现(前置学习系列二)
图学习图神经网络算法专栏简介:主要实现图游走模型(DeepWalk.node2vec):图神经网络算法(GCN.GAT.GraphSage),部分进阶 GNN 模型(UniMP标签传播.ERNIESa ...
- Paddle Graph Learning (PGL)图学习之图游走类deepwalk、node2vec模型[系列四]
Paddle Graph Learning (PGL)图学习之图游走类模型[系列四] 更多详情参考:Paddle Graph Learning 图学习之图游走类模型[系列四] https://aist ...
- 手撕图机器学习,图神经网络
手撕图机器学习,图神经网络 写在前面 & 配套链接(访者必读) 图的基本表示 图的基本参数 图的类别 节点连接数(Node degree) 图的矩阵表示(邻接矩阵) 连接列表和邻接列表 其他图 ...
- [UML]UML系列——包图Package
系列文章 [UML]UML系列--用例图Use Case [UML]UML系列--用例图中的各种关系(include.extend) [UML]UML系列--类图Class ...
- [UML]UML系列——类图class的关联关系(聚合、组合)
关联的概念 关联用来表示两个或多个类的对象之间的结构关系,它在代码中表现为一个类以属性的形式包含对另一个类的一个或多个对象的应用. 程序演示:关联关系(code/assocation) 假设:一个公司 ...
- DL之DNN之BP:神经网络算法简介之BP算法/GD算法之不需要额外任何文字,只需要八张图讲清楚BP类神经网络的工作原理
DL之DNN之BP:神经网络算法简介之BP算法/GD算法之不需要额外任何文字,只需要八张图讲清楚BP类神经网络的工作原理 目录 BP类神经网络理解 1.信号正向传播FP 2.误差反向传播BP+GD B ...
最新文章
- 如何运营一个合法的经营性网站?办理经营性ICP证!
- jsonp获取服务器数据的方式
- 20210927 LQR
- php 根据坐标计算范围内,php计算经纬度是否在区域内
- React 18 Beta 来了
- Pytorch高阶API示范——线性回归模型
- php sem acquire,PHP | 关于php中sem_get failed for key no space left on device问题的解决方案...
- 【批处理】windows环境将文件隐藏到图片中
- nodejs的mysql模块_Nodejs的mysql模块学习(一)
- linux 主机名修改日志,Linux:修改主机名【Centos7】
- 电脑c盘满了怎么清理
- Dxdesigner SCH to Mentor PCB
- 基本图像分类与目标检测网络要点总结
- 海思开发记录(一):3559A开发环境搭建
- 机载激光雷达原理与应用科普(二)
- 【附源码】小白打造「传奇游戏」 (一)
- scam计算机术语是什么意思,外贸术语dropshipping 是什么意思?如何操作?
- Debian启动自定义桌面
- 在vue中使用element-ui二次封装面包屑导条
- 常见的打印机无法打印问题