图神经网络

课程和PPT主页

Prediction with GNNs

目前我们只学习了从输入图->节点嵌入,也就是学习图神经网络怎么获取节点嵌入,并没有学习针对特定下游任务的一些内容(从节点嵌入到实际预测)。

首先先学习Prediction headPrediction head也就是模型的最终输出。

Prediction head主要分为三大类,这个GNN三大下游任务是一一对应的。

下面介绍Prediction head三大分类:Node-level prediction、Edge-level prediction和Graph-level prediction。
Node-level prediction:

Edge-level prediction:



Graph-level prediction:


上面三种简单的Pooling操作会存在很多问题:其中一种最突出的是会损失很多信息。比如两个完全不相同的Graph,我们使用GNN学习到的每个节点嵌入也完全不相同,但是最后计算的整图嵌入可能相同。

解决办法是分层嵌入(embeddings hierarchically),而不是一次性获取嵌入。

基于分层嵌入的思想,Ying等人在Hierarchical Graph Representation Learning with Differentiable Pooling中提出了DiffPool

训练图神经网络


在GNN中,监督(Supervised )学习和无监督(Unsupervised )学习主要区别是label来自外部还是Graph结构本身。

在监督(Supervised )学习中,不同的任务所使用的label都是不同的。例如在节点分类任务-引文网络中,label对应的是每个paper的所属的类别。

而对于现实中任务建议是将其转化为节点|边|整图级任务,这可以使得我们可以直接复用和参考现有的工作。

很多时候我们没有外部标签,所以只能使用无监督学习(自监督学习),无监督学习使用的标签来自于图的内部,例如在结点分类任务中常使用的聚类系数。

接下来介绍图神经网络的损失函数,和普通的神经网络一样,图神经网络的Loss Function主要可以分为两类:一类是分类任务使用的Loss(如交叉熵);另一类是回归任务使用的Loss(如均方误差)。

分类和回归不同之处在于:分类的label是离散的,而回归的label是连续的。

分类任务常用的损失函数是交叉熵(cross entropy)。

回归任务常用的损失函数是均方误差(Mean Squared Error )。

分类和回归任务的评价指标也不同。在实践中常常使用sklearn中完成的实现。


Setting-up GNN Prediction Tasks

数据集划分

在GNN中,一般需要将图数据划分为 train / validation / test 数据集,个别情况无需验证集。

数据集划分方法主要分为两种:固定划分(Fixed split)和随机划分(Random split)。很多时候不能保证测试集泄露问题。

图数据集和一般数据集存在比较大的区别,下面以图像分类数据集和图节点分类数据集为例,主要区别是在图中,节点与节点存在联系。


那么我们应该怎么划分图数据集呢?主要分为两种Transductive setting和Inductive setting。Transductive setting下划分方式主要缺点在模型训练时,验证数据集和测试数据集会存在数据泄露问题(训练集节点可能会和验证数据集、测试数据集节点存在交互),从而导致训练好的模型不能扩展到新的Graph中。Inductive setting下划分方式主要缺点不是应用在小(规模小)图中。


两种场景下划分方式的区别:

下面举三个数据集划分的例子:

  1. 节点分类:
  2. 整图分类:
  3. 链接预测:








CS224W图机器学习笔记8-图神经网络三大应用相关推荐

  1. 【CS224图机器学习】task1 图机器学习导论

    前言:本期学习是由datawhale(公众号)组织,由子豪兄讲解的202302期CS224图机器学习的学习笔记.本次学习主要针对图机器学习导论做学习总结. 1.什么是图机器学习? 通过图这种数据结构, ...

  2. 机器学习笔记三—卷积神经网络与循环神经网络

    系列文章目录 机器学习笔记一-机器学习基本知识 机器学习笔记二-梯度下降和反向传播 机器学习笔记三-卷积神经网络与循环神经网络 机器学习笔记四-机器学习可解释性 机器学习笔记五-机器学习攻击与防御 机 ...

  3. 机器学习笔记之前馈神经网络(一)基本介绍

    机器学习笔记之前馈神经网络--基本介绍 引言 从机器学习到深度学习 频率学派思想 贝叶斯学派思想 深度学习的发展过程 引言 从本节开始,将介绍前馈神经网络. 从机器学习到深度学习 在机器学习笔记开始- ...

  4. CS224W图机器学习笔记自用:GNN Augmentation and Training

    Recap: today's outline: (4)Graph augmentation (5)Learning objective 1. GNN 的图增强(Graph Augmentation f ...

  5. 斯坦福CS224W图机器学习笔记自用:A General Perspective on Graph Neural Networks

    1. Recap Deep Graph Encoders(深度图编码器) Graph Neural Networks GNN核心思想:节点的邻域定义了一个计算图 Aggregate from Neig ...

  6. CS224W图机器学习笔记5-消息传递与节点分类

    消息传递与节点分类 课程和PPT主页 本文主要解决的问题:给定一个只有部分已知标签节点的图,如何给图中其他节点分配正确的标签? 本文主要讨论一个名为"message passing" ...

  7. NeurIPS 2019 图机器学习笔记大全!附笔记原文!

    图机器学习在AI会议上热度颇高,但它并不像您想象的那样神秘.Michal Galkin写了篇专门针对图机器学习的笔记.让我们来看看它在NeurIPS 2019有多活跃! 仅在NeurIPS 2019的 ...

  8. 图机器学习——5.9 图神经网络:图的增广

    由于在实际的训练中,原始的图结构往往不是训练的最优图结构.下面我们考虑如何对图进行增强(graph augmentation),这个类似于数据扩增,提升训练效率,模型的泛化能力及测试集的准确率. 这种 ...

  9. 图谱实战 | 斯坦福黄柯鑫:图机器学习在生物图上的应用

    转载公众号 | DataFunSummit 分享嘉宾:黄柯鑫 斯坦福大学 博士生 编辑整理:元玉蒲 西北大学 出品平台:DataFunTalk 导读:大家好,我叫黄柯鑫.我现在是斯坦福大学的计算机科学 ...

最新文章

  1. 【产品干货】APP留存率多少才合格——全面解析留存率
  2. 深度学习端上部署工具
  3. 第4课 列朋波骨《小学生C++趣味编程》
  4. 图解DotNet框架之一:编译与执行引擎(上)
  5. centos将某一目录权限给用户_CenTOS7使用ACL控制目录权限,只给某个用户访问特定目录...
  6. BZOJ 3238 【AHOI2013】 差异
  7. 可执行文件的 MD5 碰撞
  8. 同步计数器 CountDownLatch
  9. matlab信号探测,雷达信号检测matlab程序
  10. 阅读图像显著性检测论文三:Saliency Detection A Spectral Residual Approach
  11. Java项目内容中没有错,但是项目上面显示一个红叉的解决办法
  12. 易语言单窗口单ip软件源码_易语言助手下载-易语言助手 v3.2.0701 官方版
  13. Scala+HuffmanCoding实现无损压缩
  14. 基于javaweb+jsp的户籍管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap)
  15. matlab中ode23s使用方法,MATLAB中ode23函数,龙格库塔函数
  16. 国内免费ChatGPT
  17. wkhtmltox 中文显示一半_免费!联合国官员孩子上的中文课,这次我get到了~
  18. postman如何测试导入任务和导出任务
  19. Swing关于JButton去除点击后的内边框的问题纪要!
  20. 错误 C2679 二进制“=”: 没有找到接受“const _Ty”类型的右操作数的运算符(或没有可接受的转换)的一种情况发生的错误

热门文章

  1. 苹果计算机 win10,苹果怎么装win10苹果装win10详细教程【图文】
  2. 计算机在旅游方面的应用,浅谈旅游专业在《计算机应用基础》设计中的思考
  3. springMVC源码分析--HandlerMethod
  4. 2019最全大数据学习资源整理(值得收藏)
  5. android canvas 背景图片,Android更改canvas背景颜色而不会丢失任何图纸
  6. 海康威视2019校招
  7. MFC 显示透明png图片
  8. 深度学习CNN模型预测电影评论中的情感问题
  9. runtime无法执行grep_Runtime.getRuntime.exec()执行linux脚本导致程序卡死有关问题
  10. 简述DB ,DBMS与DBS