当前位置: 首页 > news >正文

【斯坦福大学公开课CS224W——图机器学习】六、图神经网络1:GNN模型

【斯坦福大学公开课CS224W——图机器学习】六、图神经网络1:GNN模型

文章目录

  • 【斯坦福大学公开课CS224W——图机器学习】六、图神经网络1:GNN模型
    • 1. Deep Learning for Graphs
      • 1.1 Graph Convolutional Networks
      • 1.2 如何训练GNN
    • 在这里插入图片描述](https://img-blog.csdnimg.cn/20210608213029130.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1BvbGFyaXNSaXNpbmdXYXI=,size_16,color_FFFFFF,t_70)![在这里插入图片描述](https://img-blog.csdnimg.cn/20210608215043562.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1BvbGFyaXNSaXNpbmdXYXI=,size_16,color_FFFFFF,t_70)![在这里插入图片描述](https://img-blog.csdnimg.cn/20210608215056284.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1BvbGFyaXNSaXNpbmdXYXI=,size_16,color_FFFFFF,t_70)![在这里插入图片描述
    • 2. 模型设计
      • 2.1 inductive capability
    • 3. Graph Convolutional Networks and GraphSAGE

回忆一下节点嵌入任务。其目的在于将节点映射到d维向量,使得在图中相似的节点在向量域中也相似。
我们已经学习了 “Shallow” Encoding 的方法来进行映射过程,也就是使用一个大矩阵直接储存每个节点的表示向量,通过矩阵与向量乘法来实现嵌入过程。
这种方法的缺陷在于:

  1. 需要 O(∣V∣) 复杂度(矩阵的元素数,即表示向量维度d×节点数|V| )的参数,太多了。节点间参数不共享,每个节点的表示向量都是完全独特的
  2. transductive:无法获取在训练时没出现过的节点的表示向量
  3. 无法应用节点特征信息

本节课将介绍deep graph encoders,也就是用图神经网络GNN来进行节点嵌入。
映射函数,即之前1讲过的node embedding中的encoder:ENC(v) = 基于图结构的多层非线性转换
(对节点相似性的定义仍然可以使用之前Lecture 31中的DeepWalk、node2vec等方法)
在这里插入图片描述

通过网络可以解决的任务有:

  1. 节点分类:预测节点的标签
  2. 链接预测:预测两点是否相连
  3. 社区发现:识别密集链接的节点簇
  4. 网络相似性:度量图/子图间的相似性

1. Deep Learning for Graphs

我们可能很直接地想到,将邻接矩阵和特征合并在一起应用在深度神经网络上(如图,直接一个节点的邻接矩阵+特征合起来作为一个观测)。这种方法的问题在于:
需要 O(|V|)的参数
不适用于不同大小的图
对节点顺序敏感(我们需要一个即使改变了节点顺序,结果也不会变的模型)

在这里插入图片描述

Idea: 将网格上的卷积神经网络泛化到图上,并应用到节点特征数据在这里插入图片描述

1.1 Graph Convolutional Networks

通过节点邻居定义其计算图,传播并转换信息,计算出节点表示(可以说是用邻居信息来表示一个节点)在这里插入图片描述

核心思想:通过聚合邻居来生成节点嵌入

在这里插入图片描述

直觉:通过神经网络聚合邻居信息

在这里插入图片描述

直觉:通过节点邻居定义计算图(它的邻居是子节点,子节点的邻居又是子节点们的子节点……)

****在这里插入图片描述

深度模型就是有很多层。
节点在每一层都有不同的表示向量,每一层节点嵌入是邻居上一层节点嵌入再加上它自己(相当于添加了自环)的聚合。
第0层是节点特征,第k层是节点通过聚合k hop邻居所形成的表示向量。
在这里就没有收敛的概念了,直接选择跑有限步(k)层

邻居信息聚合neighborhood aggregation

neighborhood aggregation方法必须要order invariant或者说permutation invariant。

基础方法:从邻居获取信息求平均,再应用神经网络在这里插入图片描述

这种deep encoder的数学公式:在这里插入图片描述

矩阵形式
很多种聚合方式都可以表示为(稀疏)矩阵操作的形式,如这个基础方法可以表示成图中这种形式:在这里插入图片描述

1.2 如何训练GNN

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

2. 模型设计

  1. 定义邻居聚合函数
  2. 定义节点嵌入上的损失函数
  3. 在节点集合(如计算图的batch)上做训练
  4. 训练后的模型可以应用在训练过与没有训练过的节点上

2.1 inductive capability

因为聚合邻居的参数在所有节点之间共享,所以训练好的模型可以应用在没见过的节点/图上。比如动态图就有新增节点的情况。
模型参数数量是亚线性sublinear于 |V|的(仅取决于嵌入维度和特征维度)(矩阵尺寸就是下一层嵌入维度×上一层嵌入维度,第0层嵌入维度就是特征维度嘛)

3. Graph Convolutional Networks and GraphSAGE

在这里插入图片描述

在这里插入图片描述

GCN vs. GraphSAGE
核心思想:基于local neighborhoods产生节点嵌入,用神经网络聚合邻居信息
GCN:邻居信息求平均,叠网络层
GraphSAGE:泛化neighborhood aggregation所采用的函数

相关文章:

  • Google Earth Engine(GEE)——GEE错误结果没有变化?
  • 《Improved Techniques for Training GANs》-论文阅读笔记
  • 十一假期,分享几个好玩儿的GitHub项目
  • AcWing 第71场周赛
  • Redis实战 - 02 Redis 保存短信验证码实现用户注册
  • AcWing——第 71 场周赛
  • 利用Vulhub复现log4j漏洞CVE-2021-44228
  • 【学生网页设计作业源码】基于html+css保护海豚主题网页设计与制作(7页)
  • 频率响应说明
  • C++教程系列之-01-C++概述与NOIP案例
  • Network 之十四 email 通信架构、Postfix 部署详解
  • Tableau8——数据操作
  • python基础知识笔记
  • 基于FPGA的PID控制器设计
  • 程序设计与c语言笔记(一)
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 2017届校招提前批面试回顾
  • Github访问慢解决办法
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Sass 快速入门教程
  • Spring-boot 启动时碰到的错误
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 从零搭建Koa2 Server
  • 大主子表关联的性能优化方法
  • 复习Javascript专题(四):js中的深浅拷贝
  • 关于 Cirru Editor 存储格式
  • 技术:超级实用的电脑小技巧
  • 前端存储 - localStorage
  • 如何进阶一名有竞争力的程序员?
  • 网络应用优化——时延与带宽
  • 一起参Ember.js讨论、问答社区。
  • 移动端唤起键盘时取消position:fixed定位
  • 阿里云重庆大学大数据训练营落地分享
  • $.each()与$(selector).each()
  • $jQuery 重写Alert样式方法
  • $L^p$ 调和函数恒为零
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (0)Nginx 功能特性
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (python)数据结构---字典
  • (搬运以学习)flask 上下文的实现
  • (二)WCF的Binding模型
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .gitattributes 文件
  • .Mobi域名介绍
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .NET和.COM和.CN域名区别
  • .NET中winform传递参数至Url并获得返回值或文件
  • [ACL2022] Text Smoothing: 一种在文本分类任务上的数据增强方法
  • [AIGC codze] Kafka 的 rebalance 机制
  • [Android] Android ActivityManager