课程主页:CS224W | Home
课程视频链接:斯坦福CS224W《图机器学习》课程(2021) by Jure Leskovec

文章目录

1  前言

2  对GNN进行图增强

2.1  图特征增强

情形1:输入图上没有节点特征

情形2:GNN难以学习的特定结构

2.2  图结构增强

2.2.1  对稀疏图:添加虚拟节点 / 边

2.2.2  对稠密图:邻居节点抽样

3  总结

4  参考文献


1  前言

之前两篇内容介绍了GNN的单个层的构建方式(信息转换和信息聚合)以及如何将每一层GNN连接起来:

接下来两篇文章将介绍上图中的第四步和第五步,图增强部分和训练目标函数部分。


2  对GNN进行图增强

如上图,图增强的基本思路是:使原始输入图和应用在GNN中的计算图不完全相同(即对原始输入进行一定处理后,再得到GNN中应用的计算图)。之后要讨论的图增强分为两种:图特征增强和图结构增强。

为什么要进行图增强呢?

我们在之前的学习过程中都假设原始图数据和应用于GNN的计算图一致,但很多情况下原始图数据可能不适于GNN:

特征层面:输入图可能缺少特征(也可能是特征很难编码)

结构层面:

  • 图过于稀疏,导致信息传递的效率低(因为边太少)
  • 图过于稠密,导致信息传递的代价高(每次消息转换都需要对好几个节点做运算)
  • 图太大,无法将计算图装在GPU内存中

所以我们需要对输入图进行增强。图增强的方法大致分为两类:

图特征增强:因为输入图缺少特征

图结构增强:

  • 图过于稀疏,我们可以增加虚拟节点/边
  • 图过于稠密→在传递信息时对邻居进行采样
  • 图太大→在计算嵌入时对子图进行采样(在后续课程中会专门介绍如何将GNN方法泛化到大型数据上Scale up)

2.1  图特征增强

情形1:输入图上没有节点特征

有时,我们的输入图上是没有节点特征的(通常只有邻接矩阵),这时就需要图特征增强。

标准方法:

a. 给每个节点赋常数特征:

b. one-hot:给每个节点赋唯一ID,将ID转换为独热编码向量的形式(即ID对应索引的元素为1,其他元素都为0)

两种方法比较:

Constant node feature One-hot node feature
表示能力 中等:所有节点都一样,但是GNN仍然可以学到图结构信息 高:每个节点ID唯一,所以可以储存节点特有的信息
泛化能力 高:对新节点再赋这个常数就行 低:无法泛化到新节点上,因为对新节点再赋ID的话,GNN无法嵌入这个新ID,所以训练前必须知道整个节点集和边集
计算开销 低:只有一维特征 高:维特征,无法应用到大型图上
适用情况 所有图 小图(没有新节点)

情形2:GNN难以学习的特定结构

举例:节点所处环上的节点数(Cycle count feature)

问题:因为图上所有节点的度数相同(都是2),所以无论环上有多少个节点,GNN都会得到相同的计算图(二叉树),进而得到相同的节点嵌入,所以无法将节点区分开。

解决方法:加上cycle count这一特征向量(one-hot编码,节点数对应索引的元素为1,其他元素为0)。这样做之后,[0,0,0,1,0,0]将表示一个三角形、[0,0,0,0,1,0]将表示一个正方形。

其他给节点增强特征的方法有:Node degree(计算节点度数作为特征),Clustering coefficient(节点聚类系数:衡量节点邻居的连接程度),Centrality(节点中心度:考虑节点的重要性),PageRank等。

2.2  图结构增强

2.2.1  对稀疏图:添加虚拟节点 / 边

1.添加虚拟边

常用做法:在2-hop邻居之间加虚拟边

适用情况:如作者-论文组成的二部图中,增加2-hop的虚拟边可以在一篇论文的共同作者之间增加联系,他们可以直接交换信息,这意味着GNN层数会变少,训练也会更快。

2. 添加虚拟节点

做法:增加一个虚拟节点,这个虚拟节点与图(或者一个从图中选出的子图)上的所有节点相连

适用情况:在一个非常稀疏的图上,其中两个节点之间相距很远 ,比如10-hop,两节点的信息交换需要经过10层神经网络,花销巨大。

当创建虚拟节点之后,它能直接连接两个相距较远的节点,便于他们交换信息,使得神经网络的深度变浅。

2.2.2  对稠密图:邻居节点抽样

在信息传递的过程中,不再使用一个节点的全部邻居,而改为随机抽样一部分邻居。举例:

在上图中,我们随机选取节点B和D传递信息给A ,而额忽略节点C的信息。(类似于Dropout)

在下一层计算节点的嵌入时,可以抽样不同的邻居,以增加模型鲁棒性:

优点:计算图变小,大大降低计算成本
缺点:可能会损失重要信息


3  总结

本篇文章主要介绍了GNN模型中图特征增强和图结构增强的一些方法,通过图增强能使我们在训练神经网络时取得更好的效果。

4  参考文献

http://web.stanford.edu/class/cs224w/slides/08-GNN-application

cs224w(图机器学习)2021冬季课程学习笔记10 Applications of Graph Neural Networks_诸神缄默不语的博客

【从零开始】CS224W-图机器学习-2021冬季学习笔记8.1 Applications of Graph Neural Networks相关推荐

  1. 【从零开始】CS224W-图机器学习-2021冬季学习笔记13.1:Community Structure in Networks

    课程主页:CS224W | Home 课程视频链接:[双语字幕]斯坦福CS224W<图机器学习>课程(2021) by Jure Leskovec 文章目录 1  前言 2  预备知识和案 ...

  2. cs224w(图机器学习)2021冬季课程学习笔记10 Applications of Graph Neural Networks

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. Graph Augmentation for GNNs 1.1 图特征增强Feature A ...

  3. 笔记 How Powerful are Spectral Graph Neural Networks

    前言 title是模仿之前的另一篇出名文章"how powerful -" 文中构筑了linear GNN 到 1-WL在一定条件下的等价关系. 出于个人兴趣原因我不是很关心模型部 ...

  4. Graph Embedding学习笔记(3):Graph Convolution Networks

    笔记 从Graph的视角看CNN,上图左右两个部分是等价的.左子图每个网格的通道,对应右子图每个节点的一个属性,左子图卷积核的参数相当于右子图边的权重.所谓3x3卷积就是右子图9个节点属性的加权平均( ...

  5. 图神经网络可解释性Slide:GNNExplainer: Generating Explanations for Graph Neural Networks

  6. cs224w(图机器学习)2021冬季课程学习笔记11 Theory of Graph Neural Networks

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. How Expressive are Graph Neural Networks? 2. D ...

  7. 课程 | 2021年斯坦福大学Jure Leskovec主讲CS224W 图机器学习

    图科学实验室Graph Science Lab 来源:斯坦福大学 SNAP 近年来,图神经网络(GNN)成为网络表示学习和分析的热点研究问题,其特点是将以神经网络为代表深度学习技术用于网络结构的建模与 ...

  8. COMBINING LABEL PROPAGATION AND SIMPLE MODELS OUT-PERFORMS GRAPH NEURAL NETWORKS(CorrectSmooth)阅读笔记

    文章目录 链接 一.摘要 二.引言 三."修正和平滑"模型 四.转导式节点分类实验 四.总结 总结 红色部分为个人的一些解读,不足之处请多多指点! 链接 论文题目:结合标签传播和简 ...

  9. Paper:《Graph Neural Networks: A Review of Methods and Applications—图神经网络:方法与应用综述》翻译与解读

    Paper:<Graph Neural Networks: A Review of Methods and Applications-图神经网络:方法与应用综述>翻译与解读 目录 < ...

最新文章

  1. HTML5新特性---Form表单前台通过正则表达式自动验证邮箱
  2. 【Python】 linux中python命令的命令行参数
  3. gpt efi win7 linux,在EFI+GPT硬盘上利用grub2实现Linux/Win7/win8等多重启动
  4. java excel 晒新年操作_java操作Excel的poi 创建一个sheet页
  5. Show ip arp 和 Show mac-address-table
  6. 一年了,写点关于人生的东西吧
  7. 测试的第二重境界:站在Bug之上
  8. 英伟达显卡不同架构_架构定输赢!盘点历代英伟达显卡能够成功亥市的根源
  9. 用Raspberry Pi作AirPlay服务端
  10. 鼎捷软件ERP,MES等系统构筑制造企业信息化系统
  11. 序列的傅里叶变换MATLAB实现
  12. 修改华为 Echolife HG8010h 的超级用户密码
  13. 灰色预测模型python实例_12-6:数学模型(灰色模型)与Python编程预测
  14. 韩昊20190912-1 每周例行报告
  15. 找不到.jack_您不了解Jack关于Firefox的知识!
  16. 【企业安全运营】企业级私有云公有云 防护安全建设
  17. 数字内容安全实验一:使用Matlab编程实现 RSA 加密算法
  18. SQL语言_3 模糊查询和聚合函数
  19. 改变全局变量值得两种方法
  20. 数据结构与算法(C语言版)---魔王语言

热门文章

  1. 区块链游戏2.0时代,如何打造开放型游戏生态社区?
  2. 用matplotlib和pandas绘制股票MACD指标图,并验证化交易策略
  3. 所有C语言函数的源代码
  4. mysql查询未讲课教师_SQL数据库查询语言练习
  5. MySQL安装配置教程-win10
  6. Phoenix 简介及使用方式
  7. Neural Collaborative Filtering【论文笔记】
  8. 【历史上的今天】8 月 28 日:微软联合创始人控诉苹果、谷歌等众企业侵权;人工智能医学领域先驱出生
  9. rsync同步的艺术
  10. 哪个Linux ATA 硬盘,linux – scsi和/ dev / disk / by-id下相同硬盘的ata条目