参考文章:一文读懂图卷积GCN - 知乎

Graph Neural Network(GNN)

图神经网络(Graph Neural Network, GNN)是指神经网络在图上应用的模型的统称。根据采用的技术不同和分类方法的不同,又可以分为不同种类,例如从传播的方式来看,图神经网络可以分为图卷积神经网络GCN),图注意力网络GAT,缩写为了跟GAN区分),Graph LSTM等等,本质上还是把文本图像的那一套网络结构技巧借鉴过来做了新的尝试。着重理解最经典和最有意义的基础模型GCN,这也是理解其他模型的基础。

Graph Convolutional Network(GCN)

图卷积神经网络GCN属于图神经网络GNN的一类,是采用卷积操作的图神经网络。图上的卷积网络从卷积方式上可以分为两种:1.谱(spectral)卷积,2.空间域卷积。GCN属于谱卷积,即将卷积网络的滤波器与图信号同时搬移到傅里叶域以后进行处理。

GCN,实际上跟CNN的作用一样,就是一个特征提取器,只不过它的对象是图数据。GCN精妙地设计了一种从图数据中提取特征的方法,从而让我们可以使用这些特征去对图数据进行节点分类、图分类、边预测,还可以顺便得到图的嵌入表示,用途广泛。

卷积VS图卷积

卷积:用随机的共享的卷积核得到像素点的加权和从而提取到某种特定的特征,然后用反向传播来优化卷积核参数就可以自动的提取特征,是CNN特征提取的基石。但是,存在很多CNN、RNN无法解决或者效果不好的问题——图结构的数据。

图卷积:现实中更多重要的数据集都是用图的形式存储的,这些图网络的形式并不像图像,是排列整齐的矩阵形式,而是非结构化的信息,那有没有类似图像领域的卷积一样,有一个通用的范式来进行图特征的抽取呢?这就是图卷积在图卷积网络中的意义。对于大多数图模型,有一种类似通式的存在,这些模型统称GCNs。因此可以说,图卷积是处理非结构化数据的大利器。

理解图卷积

图中的每个结点无时无刻不因为邻居和更远的点的影响而在改变着自己的状态直到最终的平衡,关系越亲近的邻居影响越大。

图相关矩阵:度矩阵(D)、邻接矩阵(A)、拉普拉斯矩阵(L) 【此处L为 D - A 】

图卷积通式:

图卷积通式实现

几种具体的实现,但是每一种实现的参数大家都统称拉普拉斯矩阵。

实现一

思路:基于节点特征与其所有邻居节点有关的思想。邻接矩阵A与特征H相乘,等价于,某节点的邻居节点的特征相加。这样多层隐含层叠加,能利用多层邻居的信息。

存在问题:

  • 没有考虑节点自身对自己的影响;
  • 邻接矩阵A没有被规范化,这在提取图特征时可能存在问题,比如邻居节点多的节点倾向于有更大的影响力。

实现二(针对问题一改进)

拉普拉斯矩阵 L= D - A ,引入了度矩阵,从而解决了没有考虑自身节点信息自传递的问题

实现三(主流)

  • 引入自身度矩阵,解决自传递问题;
  • 对邻接矩阵的归一化操作,通过对邻接矩阵两边乘以节点的度开方然后取逆得到。

具体到每一个节点对 i,j ,矩阵中的元素由下面的式子给出(对于无向无权图)

【提示:对于单个节点运算来说,做归一化就是除以它节点的度,这样每一条邻接边信息传递的值就被规范化了,不会因为某一个节点有10条边而另一个只有1条边导致前者的影响力比后者大,因为做完归一化前者的权重只有0.1了,从单个节点上升到二维矩阵的运算,就是对矩阵求逆了,乘以矩阵的逆的本质,就是做矩阵除法完成归一化。左右分别乘以节点i,j度的开方,就是考虑一条边的两边的点的度。】

从思考角度不同,可以这样理解:对于单个节点就是除法,对于矩阵就是乘以度矩阵的逆。

GCN具体形式

模型输入:特征矩阵X、邻接矩阵A (变形过的)

模型深入:上一层的输出、邻接矩阵A (变形过的)

特征矩阵:图数据中有N个节点(node),每个节点都有自己的特征,我们设这些节点的特征组成一个N×D维的矩阵X

邻接矩阵:图数据中有N个节点之间的关系形成一个的N×N维矩阵A。

上图中的GCN输入一个图,通过若干层GCN每个node的特征从X变成了Z,但是,无论中间有多少层,node之间的连接关系,即A,都是共享的。(公式中,每层变换都有不变的A)

示例:训练一个node classification模型

1.假设构造两层的GCN,激活函数分别采用ReLU和Softmax,则整体的正向传播的公式为:

2.针对所有带标签的节点计算cross entropy损失函数

即使只有很少的node有标签也能训练,作者称他们的方法为半监督分类。

基于numpy设计的GCN网络参考代码

参考文章: 图卷积神经网络(GCN)_lamusique的博客-CSDN博客_图卷积神经网络

GCN图卷积神经网络总结笔记相关推荐

  1. gcn 图卷积神经网络_复制一文读懂图卷积GCN

    首发于郁蓁的机器学习笔记 写文章 一文读懂图卷积GCN 苘郁蓁 ​ 阿里巴巴 算法工程师 ​关注她 唯物链丶.小小将等 480 人赞同了该文章本文的内容包括图卷积的基础知识以及相关辅助理解的知识点,希 ...

  2. 举个例子,如何用GCN图卷积神经网络实现摔倒监测?

    作者 | 李秋键 责编 | 寇雪芹 头图 | 下载于视觉中国 引言 近几年来深度学习的发展越来越火热,其中最为典型的就是半监督学习的新研究进展GCN.由Kipf和Welling提出的GCN被证明是一种 ...

  3. GCN—图卷积神经网络理解

    文章目录 一.CNN卷积 二.GCN 图卷积神经网络 2.1 GCN优点 2.3 提取拓扑图空间特征的两种方式 三.拉普拉斯矩阵 3.1 拉普拉斯矩阵的谱分解(特征分解) 3.2 傅里叶变换.卷积类比 ...

  4. gcn 图卷积神经网络_GCN图卷积网络入门详解

    字幕组双语原文:[GCN]图卷积网络(GCN)入门详解 英语原文:Graph Convolutional Networks (GCN) 翻译:听风1996.大表哥 在这篇文章中,我们将仔细研究一个名为 ...

  5. GCN图卷积神经网络综述

    文章目录 一.GNN简史 二.GCN的常用方法及分类 2.1 基于频域的方法 2.2 基于空间域的方法 2.3 图池化模块 三. GCN常用的基准数据集 四.GCN的主要应用 4.1 计算机视觉 4. ...

  6. gcn 图卷积神经网络_谱域图卷积模型---SCNN,ChebNet,GCN

    对于图神经网络(GNN)而言,其实现卷积主要有两种两种方法,分别是谱域图卷积方法和空域图卷积方法.这次主要介绍使用谱方法实现卷积的三个模型,即SCNN,ChebNet,GCN. 近几年图神经网络的越来 ...

  7. GCN图卷积神经网络-中文文本分类 pytorch

    代码基于Text-GCN作者论文和基于Bible的实践,保留原作者信息,具体代码请移步原作者仓库 https://github.com/plkmo/Bible_Text_GCN https://git ...

  8. 拉普拉斯算子属于卷积方法吗_论文笔记 - 图卷积神经网络综述

    文献题目:图卷积神经网络综述 文献来源:计算机学报,2019 文献原文:https://kns.cnki.net/kcms/detail/11.1826.tp.20191104.1632.006.ht ...

  9. 图神经网络(一)DGL框架搭建GCN图卷积神经网络模型

    一.DGL DGL是基于pytorch开发的一个专门用于图神经网络模型搭建的框架,到现在为止,DGL已经高度封装了如GCN.GraphSage.GAT等常见的图神经网络模型,可以直接调用,比较方便,当 ...

最新文章

  1. 物联网协议Coap协议介绍
  2. Cent OS dhcp配置
  3. 基于角色的访问控制'的权限管理的数据库的设计实现
  4. 如何使用Magit管理Git项目
  5. mysql常用基础操作语法(九)~~外连接查询【命令行模式】
  6. 文本生成系列之transformer结构扩展(二)
  7. mono webservice问题请教
  8. 训练集,测试集和验证集
  9. 使用搜索引擎时如何去除广告推荐
  10. C语言malloc与calloc区别
  11. CTF_RSA_N不互素
  12. 均值,期望,方差,标准差,协方差
  13. 新媒体运营教程:活动运营策划推广思路
  14. oracle中minus什么意思,Oracle Minus关键字
  15. 「文献解读」利用基因沉默和过表达技术研究棉花的基因功能
  16. 服务器网页连不上网络怎么回事啊,网络连接正常网页打不开怎么办? dns服务器问题解决[多图]...
  17. 【centos7中使用docker安装KLEE】
  18. JPEG 标准推荐的亮度、色度DC、AC Huffman 编码表
  19. IPv6基本配置(华为设备)
  20. bzoj-3522 Hotel

热门文章

  1. python支付程序源码_Python提取支付宝和微信支付二维码的示例代码
  2. dm_svc.conf文件介绍
  3. HBBuilderProjest逆向分析与安全性扯淡
  4. java第一部分学习笔记
  5. IntelliJ IDEA 文件未被识别成maven工程
  6. 中国RV减速器行业竞争格局与发展趋势预测报告2022-2028年
  7. 蛋白质结构预测方案总结
  8. 接入支付宝电脑网站支付实现JAVA版
  9. xstream 对象 -》xml
  10. ubuntu查看电脑配置命令