Loading [MathJax]/jax/output/CommonHTML/fonts/TeX/AMS-Regular.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >图神经网络的“前世今生”

图神经网络的“前世今生”

作者头像
智能生信
发布于 2021-02-04 07:16:35
发布于 2021-02-04 07:16:35
1.3K0
举报
文章被收录于专栏:智能生信智能生信

作者 | 俞壹龄 编辑 | 李仲深


  • GNN的前世今生 Humility
  • 简介
  • GNN的分类
    • 网络Embedding与GNN的异同
  • GCN
    • 从CNN到GCN -- 卷积算子的泛化
    • 谱域卷积算法
    • SCNN-- 谱图卷积理论的直接应用
    • ChebNet-- 利用切比雪夫多项式对谱图卷积理论的近似
    • GCN -- 在ChebNet基础上更进一步的简化
    • 空域卷积方法
    • ConvGNN
    • GraphSAGE
    • 其他
  • GAT
  • GAE
  • GGN
  • GSTN
    • 图网络基准数据集
    • 经典图网络实现
  • 参考文献
  • 代码实现

GNN的前世今生

简介

从图像分类, 视频处理语音识别, 自然语言处理. 深度学习通过端到端的训练彻底改变了很多机器学习任务. 但是这些任务的数据都是欧式空间上的规则数据. 而现实中很多数据之间都有着相当复杂的关系, 一般表现为非欧空间之上的图结构.

为处理图数据之上的任务, 图神经网络就应运而生了.

GNN的分类

  1. GCN -- 图卷积神经网络
    1. 谱域
    2. 空域
    3. 池化模型
  2. GAT -- 图注意力网络
  3. GAE -- 图自编码器
  4. GGN -- 图生成网络
  5. GSTM -- 图时空网络

图一: GNN的分类

网络Embedding与GNN的异同

网络embedding旨在在保留网络拓扑结构和节点信息的基础之上, 在低维向量空间之中对网络节点进行表示.

得到的嵌入向量可以用于后续的各类任务.

网络embedding的方法可以大体分为如下三类 :

  1. 矩阵分解
  2. 随机游走
  3. 深度学习

其中第三点深度学习的方法需要使用GNN的模型. 可以是GAE, 也可以是无监督的GCN.

GCN

图二: 常见的GNN模型分析

从CNN到GCN -- 卷积算子的泛化

CNN的成功在于他的卷积核能够提取整个数据集上共享的局部特征. 而CNN中卷积算子的定义依赖于图像这种规则数据的平移不变性和局部连结性.

想要在图网络中复制CNN的成功, 泛化和定义新的卷积算子便是一种良好的方案.

图三: 从2D卷积到图卷积

谱域卷积算法

图四: 图卷积发展历史

谱域卷积主要的理论依据是卷积定理 : 时域中的卷积同构与谱域中的乘法. 谱域卷积通过离散傅里叶变换把拓扑图映射到谱域, 然后据此来定义自己的图卷积算子.

主要的模型有SCNN、ChebNet和GCN(按发表时间升序排列). 这三个模型都是基于同一种算法, 可以说是一脉相承的了.

图二:谱域卷积公式图五: 图离散卷积算法

SCNN -- 谱图卷积理论的直接应用

  1. 图结构的刻画 :
L=DA

(拉普拉斯矩阵)与特征矩阵

拉普拉斯矩阵用于刻画图的结构信息.

易知L是一个非负定矩阵, 对其进行相似对角化处理可得

L=UΛUT

其中的

UT

对应了图中的离散傅里叶变换(具体推导可以参考傅里叶变换和拉普拉斯算子之间的关系).

图中除了用拉普拉斯矩阵刻画的结构信息之外, 还有每个节点上的信息. 这种节点信息我们一般会用特征向量来对人工选择的特征进行量化. 每个节点的特征组合起来就得到了我们的特征矩阵

H(0)

, 也就是最底层的语义. 特征矩阵和拉普拉斯矩阵一起完成了对图中信息的量化.

  1. 卷积定理: 时域中的卷积同构于频域中的乘法

由此我们可以定义

f

g

两个函数之间的卷积.

F(fg)=F(g)F(f)=>fg=F1{F(g)F(f)}
  • 离散形式:
fg=U{(UTg)(UTf)}

为了便于参数的设置和反向传播, 我们取

gθ=diag(UTg)

作为卷积核.

这样就给出了文中的卷积公式

  1. 前向传播的公式
H(l+1)=h(UFkUTH(l))

其中

Fk

是我们的第k层的卷积层. 他的行数是输入的通道数, 列数为输出的通道数.

ChebNet -- 利用切比雪夫多项式对谱图卷积理论的近似

既然前文中提到的SCNN中特征分解的开销难以接受, 我们可以对其进行近似处理从而简化运算.

ChebNet就是这样一个在SCNN的基础上做了近似处理的网络.

  1. 采用Chebyshev多项式对谱域卷积的卷积核进行插值. 这边是Chebyshev多项式:
Tn+1(x)=2xTn(x)Tn1(x)

这里用于多项式插值.

gθ=diag(UTg)^Λ=2λmaxIngθ(Λ)=Kk=0βkTk(^Λ)

这是利用Chebyshev多项式近似后的卷积核.

  1. 上述插值过程中还有一个小小的trick(你有没有注意到呢?)
^Λ=2λmaxIn

这是一个标准化处理, 将

Λ

中的特征值全部化到[-1, 1]这个区间内, 旨在避免网络迭代层数过深带来的梯度爆炸问题.

GCN -- 在ChebNet基础上更进一步的简化

GCN在前面ChebNet的基础上再一次进行了简化. 他只取了卷积核Chebyshev插值多项式的前两项, 而且预设了这两项前面的参数相等. 将每个卷积核可学习的参数量降低到了1.

GCN(xgθ)G=θ(~D1/2~W~D1/2)x

这就是GCN的卷积核. 其中

θ

就是它可学习的参数.

除了更精简的近似之外, GCN中还有两点trick:

~W

是在邻接矩阵

A

的基础上加上了自环, 将节点自身的特征也添加到了网络之中.

  1. 对拉普拉斯矩阵
L

的标准化和对称化.

~L=~D1/2L~D1/2

空域卷积方法

谱域卷积基于图谱理论, 具有相当良好的可解释性. 但是谱域上的模型一来只能对整幅图进行处理, 而且无法处理变化的图结构. 这时候空域卷积方法或许是更好的选择.

  • 卷积算子的定义: 采样 + 聚合. 用于特征提取

ConvGNN

欧式空间上的卷积可以理解为先对固定数量的邻域进行排序, 然后使用卷积核进行内积.

非欧空间之上图结构的卷积也可以参考这种模式.

在这里插入图片描述图六: 图卷积的泛化定义 采样 + 聚合

  1. 利用随机游走这一马尔科夫过程, 以
k

步之内节点被访问次数的期望进行排序.

  • 以标准化之后的图相似度矩阵
P=D1S

来作为状态转移矩阵.

  1. 取期望最大的
p

个节点作为

i

的邻域, 按期望由大到小排序.

  1. 使用参数数量为
p

的一维卷积和对邻域进行卷积操作.

图七: 空域卷积网络

GraphSAGE

*SAGE(Sample and AggreGatE)*不同于前面的GNN, GraphSAGE认为卷积是采样加上的信息的聚合.

  • 采样

均匀采样法: 在节点一阶相连的节点上均匀采样, 构建固定大小的邻域.

  • 聚合

GraphSAGE认为节点的邻域中没有顺序可言, 所以要求聚合函数不依赖于邻域节点的输入顺序.

  1. 均值聚合 : 取邻域内节点的均值.
  2. LSTM聚合 : -- 这个真的是顺序无关的吗???
  3. Pooling聚合 : 采用Max Pooling.
hkN(v)AGGREGATEk({hk1u,uN(v)})

聚合函数

聚合之后还需要结合自身信息然后进行卷积和激活.

hkvσ(WkCONCAT(hk1v,hkN(v)))

最后进行标准化以防止梯度爆炸和梯度消失.

其他

空域卷积网络还有着各种各样的变体. 诸如LGCN, MoNet之类的, 在此不多赘述.

GAT

都说Attention is all you need.

GAT模型将attention机制引入图卷积模型, 为更重要的节点分配更大的权重.

正常的图卷积神经网络卷积核的参数都是共享的, 这种就是所谓的分心模型. 他预设了输入节点对不同的输出节点的影响是相同的.

但是从我们人的认知模型出发, 输入节点对不同的输出节点影响肯定是不同的. 所以就提出了所谓的Attention机制. 通过每个输出节点上挂载的权值数组来衡量各个输入节点对该输出的重要程度.

图八: 注意力机制中权重的分配

  1. 计算节点之间的关联度
eij=α(Whi,Whj)

其中

eij

为注意力系数, 可以认为它正比于

i,j

两节点的关联度.

  1. 利用softmax归一化, 求得注意力系数.
αij=softmaxj(eij)=exp(eij)kNiexp(eik)
  1. 以上文求得的注意力系数作为权重来对邻域节点的信息进行聚合, 完成图卷积操作.
hi=f(jNiαijWhj)

其中的

W

是共享的权值, 而真正的差异化的卷积核为

.

GAE

图九: 自编码器

图自编码器, 一种自监督的学习框架. 通过编码器学习网络节点的低维表示, 然后通过解码器重构图数据.

GAE最早使用GCN来作为编码器.

其中X为节点特征,

为图的邻接矩阵.

解码器:

采用变分法进行训练, 最小化变分下界

近来又提出了一种对抗正则化自编码器(ARGA), 利用GAN的方案训练正则化图自编码器.

编码器用节点的特征编码其结构信息, 也就是GCN中的隐层表示, 然后解码器从编码器的输出中重构邻接矩阵. GANs在训练生成模型的时候在生成和判别模型之间进行一个最小-最大博弈. 生成器尽可能生成真实的“伪样本”, 而判别器则尽可能从真实样本中识别”伪样本“.

图十: 常见GAE总结

GGN

图生成网络, 从数据中获取图的经验分布, 然后根据经验分布来生成全新图结构的网络.

特定领域有很多图网络模型, 比如用于分子图生成的SMILES.

近来提出了一些统一的生成方法, 其中有一部分将图生成看做节点和边的交替生成的过程, 另一部分采用GAN的方案进行训练.

GSTN

图时空网络, 处理时空图的网络. 利用GCN提取空间特征, 然后将时间离散化使用CNN或者RNN来提取时间特征.

图十一: 图时空网络汇总

图网络基准数据集

图十二: 基准数据集汇总

经典图网络实现

图十三: 经典图网络实现汇总

参考文献

[[1901.00596] A Comprehensive Survey on Graph Neural Networks (arxiv.org)](https://arxiv.org/abs/1901.00596#:~:text=In this survey%2C we provide a comprehensive overview,networks%2C convolutional graph neural networks%2C graph autoencoders%2C )

[1710.10903v3] Graph Attention Networks (arxiv.org)

[1801.07455] Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition (arxiv.org)

[1312.6203] Spectral Networks and Locally Connected Networks on Graphs (arxiv.org)

[1706.02216] Inductive Representation Learning on Large Graphs (arxiv.org)

代码实现

见图十三

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 智能生信 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Twitter团队最新研究:快速高效的可扩展图神经网络SIGN
今天给大家介绍的是Twitter研究团队发表的一篇论文,该研究针对大规模图神经网络训练的问题,提出的一种新的结构更加简单的模型——SIGN,这种模型的提出使得计算复杂度大大降低,能够有效地处理大规模图结构,在多个开放的数据集上与主流的模型进行评估对比,SIGN更具有竞争优势。
DrugOne
2021/02/01
6020
Twitter团队最新研究:快速高效的可扩展图神经网络SIGN
图神经网络1-介绍
图神经网络中的图是指数据结构中的图的样子,图由顶点(Vertex)和边(Edge)构成G=(V,E),顶点连接的边的数量叫做顶点的度(Degree)。
孔西皮
2021/03/04
1.1K0
图神经网络1-介绍
图神经网络基础
图神经网络用于挖掘事物的“普遍联系”,理解原理、应用技术。本文汇总图神经网络相关介绍和基础模型。
aiplus
2021/11/04
2K0
漫谈图神经网络 (二)
在从图(Graph)到图卷积(Graph Convolution): 漫谈图神经网络 (一)中,我们简单介绍了基于循环图神经网络的两种重要模型,在本篇中,我们将着大量笔墨介绍图卷积神经网络中的卷积操作。接下来,我们将首先介绍一下图卷积神经网络的大概框架,借此说明它与基于循环的图神经网络的区别。接着,我们将从头开始为读者介绍卷积的基本概念,以及其在物理模型中的涵义。最后,我们将详细地介绍两种不同的卷积操作,分别为空域卷积和时域卷积,与其对应的经典模型。读者不需有任何信号处理方面的基础,傅里叶变换等概念都会在本文中详细介绍。
Houye
2020/04/07
1.3K0
图神经网络 GNN GAT & GCN(一)
知乎: https://www.zhihu.com/people/gong-jun-min-74
zenRRan
2020/04/21
3.7K0
图神经网络 GNN GAT & GCN(一)
【GCN】图卷积网络入门(一)
图是一种数据结构,可对一组对象(节点)及其关系(边)进行建模。近年来,由于图的强大表达能力,利用机器学习来分析图的研究受到越来越多的关注,即图可以用作包括社会科学(社会网络)在内的各个领域的大量系统的表示图是一种数据结构,可对一组对象(节点)及其关系(边)进行建模。
yuquanle
2020/07/24
2.1K0
【GCN】图卷积网络入门(一)
图数据表征学习,绝不止图神经网络一种方法
近年来,图神经网络掀起了将深度学习方法应用于图数据分析的浪潮。不过其作为一门古老的认识世界的方法论,人们对于图数据表征技术的研究从很早以前就开始了。
AI科技评论
2020/06/03
3.7K0
【GNN】一文轻松了解Graph Neural Networks
图结构数据在各个领域都很常见,例如{分子、社会、引用、道路}网络等,这些只是可以用图表示的大量数据中的一小部分。随着机器学习的进步,我们见证了在可用数据上应用智能算法的潜力。图神经网络是机器学习的一个分支,它以最有效的方式建立图数据的神经网络。
zenRRan
2020/03/03
1.6K0
【GNN】图神经网络综述
本篇文章是对论文“Wu Z , Pan S , Chen F , et al. A Comprehensive Survey on Graph Neural Networks[J]. 2019.“”的翻译与笔记
zenRRan
2020/02/18
1.8K0
论文阅读01——《图卷积神经网络综述》
由于博主已经本硕博连读,九月份即将开始研究生生涯,遂开启论文阅读这一系列博文,主要介绍一些文章的主要思想和创新点,可能会详细介绍一下模型,如果喜欢的话多多关注,另外其他系列也会不定时更新,记得来看~
Marigold
2022/06/17
1.7K0
论文阅读01——《图卷积神经网络综述》
【GCN】万字长文带你入门 GCN
断断续续写了一个多星期,期间找了很多同学讨论学习,感谢指导过点拨过我的同学们,为了精益求精本着不糊弄别人也不糊弄自己的原则在本文中探讨了很多细节。
阿泽 Crz
2020/07/21
5.3K0
【GCN】万字长文带你入门 GCN
从图嵌入算法到图神经网络
近几年来,伴随着计算机算力的急剧提升,神经网络从历史的尘埃中走出,横扫各大领域,完成一次次颠覆性的创新。依托高度弹性的参数结构,线性与非线性的矩阵变换,神经网络能适用于各式各样的数学场景,在各个类别的应用上我们都能看到神经网络的影子。其中著名的应用方向,包括自然语言处理、计算机视觉、机器学习、生物医疗、推荐系统、自动驾驶等等。图神经网络,广泛应用于社交关系、知识图谱、推荐系统、蛋白质分子建模,同样源自于对传统领域的创新,它的前身是图嵌入算法;而图嵌入算法又以图数据作为载体。这一关系,将贯穿本文始末,成为我们的展开线索。
张小磊
2020/04/21
2K0
从图嵌入算法到图神经网络
ICML 2019 | SGC:简单图卷积网络
题目:Simplifying Graph Convolutional Networks
Cyril-KI
2022/11/17
9150
ICML 2019 | SGC:简单图卷积网络
TNNLS | GNN综述:A Comprehensive Survey on Graph Neural Networks
题目:A Comprehensive Survey on Graph Neural Networks
Cyril-KI
2022/11/01
2K0
TNNLS | GNN综述:A Comprehensive Survey on Graph Neural Networks
Graph Neural Network(GNN)综述
图(graph)是一个非常常用的数据结构,现实世界中很多很多任务可以描述为图问题,比如社交网络,蛋白体结构,交通路网数据,以及很火的知识图谱等,甚至规则网格结构数据(如图像,视频等)也是图数据的一种特殊形式,因此图是一个很值得研究的领域。
SIGAI学习与实践平台
2019/05/16
2.4K0
Graph Neural Network(GNN)综述
ICLR 2017 | GCN:基于图卷积网络的半监督分类
题目:Semi-Supervised Classification with Graph Convolutional Networks
Cyril-KI
2022/11/09
7740
ICLR 2017 | GCN:基于图卷积网络的半监督分类
图神经网络模型总结
在讨论GNN之前,我们先来了解一下什么是图。在计算机科学中,图是由顶点和边两部分组成的一种数据结构。图G可以通过顶点集合V和它包含的边E来进行描述。
opprash
2020/01/20
2.3K0
【图神经网络】GCN-3(semi-GCN)
本文提出了一种可扩展的图结构数据半监督学习方法,通过谱图卷积的局部一阶近似确定卷积网络结构选择。并且在引文网络和知识图数据集的大量实验中,证明了其方法有很大的优势。
阿泽 Crz
2021/04/29
6650
【图神经网络】GCN-3(semi-GCN)
图神经网络综述:从Deepwalk到GraphSAGE,GCN,GAT
本文是笔者初学Graph neural network时写下的综述,从graph embedding开始讲起,回顾了GE和GNN的历史和经典论文,并利用热传播模型分析了GNN的数学渊源。
算法进阶
2023/11/05
2.3K0
图神经网络综述:从Deepwalk到GraphSAGE,GCN,GAT
GNN系列 GCN简述 推导理解 及 DGL 源码解析
深度学习一直都是被几大经典模型给统治着,如CNN、RNN等等,它们无论再CV还是NLP领域都取得了优异的效果,那这个GCN是怎么跑出来的?是因为我们发现了很多CNN、RNN无法解决或者效果不好的问题——图结构的数据。
大鹅
2022/07/17
3.9K0
相关推荐
Twitter团队最新研究:快速高效的可扩展图神经网络SIGN
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档