作者 | 追光者

研究 | 机器学习与时间序列

出品 | AI蜗牛车

一、Address

发表于ICLR2017的一篇论文,GNN开山之作

地址:https://arxiv.org/pdf/1609.02907.pdf

二、Introduction

本文提出了一种可扩展的图结构数据半监督学习方法,通过谱图卷积的局部一阶近似确定卷积网络结构选择。并且在引文网络和知识图数据集的大量实验中,证明了其方法有很大的优势。

考虑对图(如引文网络)中的节点(如文档)进行分类的问题,其中标签仅对一小部分节点可用。这个问题可以被定义为基于图的半监督学习,基于图的正则化形式将标签信息与图结构数据平滑的结合,通过在损失函数中使用图拉普拉斯正则化项:

其中, 表示有标签数据的损失函数, 表示图结构信息的损失函数, 是调节两者重要性的加权因子, 是类似神经网络的可微分函数, 是节点节点特征向量 的矩阵, 表示无向图 的非正则化图拉普拉斯算子, 的binary或加权邻接矩阵, 表示度矩阵。

在本文中,作者使用神经网络模型 对图结构进行编码,并训练所有带标签的节点 ,从而避免图结构信息损失函数中的正则化。

三、Model

3.1 快速卷积近似

我们考虑具有以下分层传播规则的多层图形卷积网络(GCN):

其中, 是带自环的无向图的邻接矩阵。 是单位矩阵。  。 是一个layer-specific的可训练权重矩阵。 是激活函数。 是第 层的激活矩阵,

接下来,我们介绍这种传播规则的形式如何可以通过图上的局部谱滤波的一阶近似推导得到。

3.2 谱图卷积

这里主要是前人工作,可以看本号图神经网络系列——GCN-1(谱图卷积)

卷积公式如下:

3.3 逐层线性模型

假设我们将逐层卷积运算限制为K=1(本文3.2节公式),即关于L的线性函数(图拉普拉斯谱上的线性函数)。这样,我们仍然可以通过叠加多个这样的层来恢复卷积的能力(k>1),但不限于由切比雪夫多项式给出的参数。我们期望这样一个模型能够缓解具有非常宽的节点度分布(差异大)的图的局部邻域结构的过拟合问题,例如社会网络,引文网络,知识图谱和许多其他现实世界的图形数据集。此外,对于固定的计算预算,这种逐层线性模型允许我们建立更深层次的模型,这种做法可以提高许多领域的建模能力。

在GCN的线性公式中,我们进一步近似 λ ,我们可以预期神经网络参数将在训练期间适应这种尺度变化。在这些近似条件下:

上式有两个自由参数 和 ,被图上所有节点共享。

在实际中,进一步限制参数的数量可以缓解过拟合问题并最小化每层的计算量(如矩阵乘法),于是可有以下式子:

只有一个参数 ,注意 d的特征值范围在[0,2]。如果在深度神经网络模型中反复使用该算子会导致数值不稳定性和梯度爆炸/消失等问题。所以还有引入下面的归一化技巧:

其中 , 。

我们可以将这一定义推广到具有C个输入通道的信号 (即每个节点的C维特征),F个滤波器或特征映射如下:

其中 是一个滤波器的参数矩阵, 是卷积后的信号矩阵。这个滤波操作复杂度是 ,因为 可以高效地实现为稠密矩阵和稀疏矩阵的乘积。得到上式后,对比一下本文开头的公式即可对应上。

对于以上公式的理解,首先是通过度矩阵对邻接矩阵 进行归一化,也就是使得行之和为1,然后是加入自环(每个结点从自身出发,又指向自己,就是把邻接矩阵对角线上的数,全部由0变为1.),最后输入节点左乘邻接矩阵代表了节点加上了其邻居节点的特征。

3.4 半监督节点分类

使用了一个两层的GCN进行节点分类任务作为例子:

首先计算 ,两层GCN的forward公式如下:

其中 为输入层到隐藏层的变换, 为隐藏层到输出层的变换

对于半监督分类问题,使用所有有标签节点上的交叉熵作为损失函数:

3.5 局限及未来工作

模型还存在的局限:(1)存储空间的需求内存需求随着数据集大小线性增长。小批量的随机梯度下降可以环节这个问题,需要考虑GCN的层数,及节点的K阶邻域必须存储在内存中。(2)不能处理有向图特征本文GCN模型只适用于无向图。但是作者在NELL数据集上实验了将有向图表示为一个无向二部图,并在原始图中添加表示边的节点,可以同时处理有向边和边特征(3)前提假设同样存在局限作者假设子环和边连的邻接结点的重要性同等,同时,作者认为对于某些数据集中引入一个权衡参数可能较有利。

作者隐式地假设局部性(依赖于具有K层的GCN的K阶邻域),自连接与相邻节点的边同等重要,然而,对于某些数据集,在Ã的定义中引入权重参数λ可能比较好:

四、Experiments

作者使用了以下数据集进行实验

其中前三个是在文献引用网络上的实验,NELL是在知识图谱上的实验

结果如下:

可以看到,基于GCN的半监督学习效果相对其他模型有较大的提高

五、Conclusion

本文采用一阶近似卷积的方式提出GCN模型,具有以下特性

  • 局部性(以某节点为中心加上k阶邻居的信息)

  • 一阶性,但是可以通过多层GCN叠加来获得K阶特性

  • 参数共享,(后面会单独出一篇文章总结GCN的参数共享)

三代GCN论文阅读到这里了(前二分别为GCN-1谱图卷积,chebynet)

更多精彩内容(请点击图片进行阅读)

公众号:AI蜗牛车

保持谦逊、保持自律、保持进步

个人微信

备注:昵称+学校/公司+方向

如果没有备注不拉群!

拉你进AI蜗牛车交流群

【图神经网络】GCN-3(semi-GCN)相关推荐

  1. 图神经网络(二)GCN的性质(3)GCN是一个低通滤波器

    图神经网络(二)GCN的性质(3)GCN是一个低通滤波器  在图的半监督学习任务中,通常会在相应的损失函数里面增加一个正则项,该正则项需要保证相邻节点之间的类别信息趋于一致,一般情况下,我们选用拉普拉 ...

  2. 图神经网络(二)GCN的性质(2)GCN能够对图数据进行端对端学习

    图神经网络(二)GCN的性质(2)GCN能够对图数据进行端对端学习  近几年,随着深度学习的发展,端对端学习变得越来越重要,人们普遍认为,深度学习的成功离不开端对端学习的作用机制.端对端学习实现了一种 ...

  3. 图神经网络(三)GCN的变体与框架(4)GNN的通用框架

    图神经网络(三)GCN的变体与框架(4)GNN的通用框架 3.4 GNN的通用框架 3.4.1 MPNN 3.4.2 NLNN 1.内积 2.全连接 3.高斯函数 3.4.3 GN 参考文献 3.4 ...

  4. 图神经网络12-分子指纹GCN:Neural FPs

    1 Neural FPs论文简介 论文:Convolutional Networks on Graphs for Learning Molecular Fingerprints 图卷积网络用于学习分子 ...

  5. 图神经网络GNN GCN AlphaFold2 虚拟药物筛选和新药设计

    文章目录 图神经网络 1. Geometric Deep Learning Representation learning 表征学习 机器学习的数据类型:序列.网格.图 引出GNN 2. Graph ...

  6. PaperNotes(15)-图神经网络、PyG极简版入门笔记

    图神经网络概况 1.GNN,GCN,GE的区别 2.图卷积的通式--矩阵该如何作用 2.1实现1 2.2实现2 2.3实现3 3.PyTorch geometric 3.1 PyG内置数据集 3.1. ...

  7. 基于图神经网络的节点表征学习

    我们使用图神经网络来生成节点表征,并通过基于监督学习的对图神经网络的训练,使得图神经网络学会产生高质量的节点表征.高质量的节点表征能够用于衡量节点的相似性,同时高质量的节点表征也是准确分类节点的前提. ...

  8. 图神经网络让预估到达准确率提升50%,谷歌地图实现新突破

    本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载. 机器之心报道 编辑:魔王.杜伟.小舟 公交车.出租车等交通工具的到达时间是影响公众出行的一大因素.所以,预估到达时 ...

  9. 一文带你入门目前大热的图神经网络

    点击我爱计算机视觉标星,更快获取CVML新技术 深度学习一直都是被几大经典模型给统治着,如CNN.RNN等等,它们无论再计算机视觉CV还是自然语言处理NLP领域都取得了优异的效果. 针对CV领域,图像 ...

  10. Distill文章-A gentle introduction to graph Neural Networks(图神经网络是怎么构造的)

    目录 1 简介 2 图的介绍 3 数据如何表示成图 4  三大类问题 5 将机器学习(神经网络)用在图上,会遇到什么挑战 6 最简单的GNN 7 信息传递(把图结构的信息考虑进去) 8  GNN的pl ...

最新文章

  1. MySQL使用二进制日志恢复数据库
  2. jzoj4669-[NOIP2016提高A组模拟7.19]弄提纲【LCA,KMP,字符串】
  3. 解决IE6中 PNG图片透明的终极方案-八种方案!
  4. ecshop始终显示全部分类
  5. UnityShader16:点光源和聚光灯
  6. python与人工智能基础课程介绍_人工智能基础课程:Python基础
  7. SQL本地事务、asp.net事务、DTC
  8. qss之QRadioButton
  9. 真正靠谱免费的数据恢复软件哪个好用?
  10. 二月二龙抬头【集锦】
  11. 《UNIX环境高级编程》笔记 第十章-信号
  12. 轩辕剑--资料集(三)
  13. 防火墙——L2TP基础知识
  14. 英文破折号(em dash)、连接号(en dash)与连字符(hyphen)的区别及各自用法是什么?...
  15. Python爬虫 selenium自动化 利用搜狗搜索爬取微信公众号文章信息
  16. Go实战--golang中获取公网ip、查看内网ip、检测ip类型、校验ip区间、ip地址string和int转换、根据ip判断地区国家运营商等
  17. 后台管理 vue+element 开源框架
  18. Ubuntu18 的超详细常用软件安装
  19. GetLastError的返回值意思
  20. webApp滚动选择器-实践与应用

热门文章

  1. 软件工程原理及方法学习随笔——第一次阅读作业
  2. 管道日了狗-while read line大坑
  3. 国际博物馆日,百度超级链多款上新数字藏品
  4. Stata:正则表达式教程
  5. 成功解决:Failed to load resource: net::ERR_FILE_NOT_FOUND
  6. DTCloud 下载数据至word模板
  7. Jetpack Compose入门
  8. boot asio 非阻塞同步编程---非阻塞的accept和receive
  9. Unity立方体六个面不同贴图
  10. 基于IE内核的多标签浏览器开发过程