文章目录

  • 1. 简介
  • 2. 怎么把图喂到神经网络里面呢
  • 3. 为什么需要GNN
  • 4. 训练GNN遇到的问题
  • 5. 后面的内容安排
  • 6. GNN要做的事,常用数据集和基准
  • 7. 第一种实现GNN的方法(Spatial-based GNN)
    • 7.1 NN4G
    • 7.2 DCNN
    • 7.3 DGC
    • 7.4 MoNET
    • 番外:聚集的几种方法
    • 7.5 GAT
    • 7.5 GIN
  • 8. 图信号处理(Graph Signal Processing)
  • 9. 第二种实现GNN的方法(Spectral-based GNN)

1. 简介

Graph Neural Network(GNN)
图:rb-tree(红黑树)是一种特殊的图,由节点(node)和边(edge)组成

这也可以是图,边因为连接结点的不同而不同

这也可以是图

下面的路线图也是图

举以上几个例子是想说明,图是由节点和边组成的,节点有节点的性质,边有边的性质

2. 怎么把图喂到神经网络里面呢

这是GNN主要处理的问题

3. 为什么需要GNN

GNN可处理的问题1:分类
判断一个分子会不会产生突变

GNN可处理的问题2:生成
合成新药,y可以控制其合成的可行性、难易程度

上面两个是看着像的,还有不太像的
GNN可处理的问题3:分类
找凶手

每个角色都有性质,即人物信息,把这些当特征输入训练一个人的分类器

而这些人物之间又是有关系的

4. 训练GNN遇到的问题

①如何利用结构和关系来训练模型
②当这个图特别大,例如有两万个节点时,该怎么办
③当没有办法给所有数据都打标签的时候,该怎么办

来看下面的例子
如图是一个图,没有标签的节点多于有标签的节点,现在要想利用这些有标签的节点节点之间的关系训练出一个好的网络
弹幕说:图区别于一般向量/矩阵的重要属性就是有邻接的概念,所以要重点考虑neighbor

可以认为一个节点和邻居节点相似程度比较大
但是问题是怎么利用邻居节点去训练模型呢?(这是一个半监督学习)

现在提出的想法是将节点嵌入到特征空间里使用卷积的方式
运用这种方式有两个解法(后面会展开讲)
①Spatial-based(基于空间)
利用CNN里面本就有的、卷积会根据邻居节点来更新特征图(feature map)
②Spectral-based(基于光谱)
用上了信号处理的理论,先把信号转到filter domain里面,再把转到filter domain里面的信号和filter response做相乘,相乘后???
(万能弹幕:时域信号变频域,频域相乘,输出变回时域)

5. 后面的内容安排

A.分别介绍两种方法(Spatial-based和Spectral-based)常用的模型

B.再介绍一些偏理论的模型

其中最常用的模型还是:第一种里面的GAT,第二种里面的GCN
C.后面要用GNN解决的问题(Tasks)

representation learning即想要学到一个比较好的特征,不管是不是图(?)
D.图神经网络在自然语言处理方面的应用
Natural Language Processing
(万能弹幕:不要被这些模型名字吓到,每种模型其实就是在最基本的GNN上面做一些小修小补)

6. GNN要做的事,常用数据集和基准

基准是用来衡量模型性能的

7. 第一种实现GNN的方法(Spatial-based GNN)

怎么根据卷积的原理

把左边的更新成右边的
对于h3这个结点来说,我们要利用它的邻居节点h0,h2,h4来更新下一时刻的它,这个过程叫做聚集(aggregate)

但是要做的不仅仅是预测出单个节点的隐藏层状态,还要预测出整个图的结构,这个过程叫做读出(readout)

全过程如下

7.1 NN4G

Neural Networks for Graph
NN4G是如何做聚集的(提示:此图根据层应该从下往上看)——所有邻居相加,乘上一个共同权重

NN4G是如何做读出的(提示:此图根据层也应该从下往上看)——每层相加,再把层结果处理

7.2 DCNN

Diffusion-Convolution Neural Network(传播卷积神经网络)
聚集:
第二层(从下往上数)的输入是第一层
第三层的输入还是第一层
对于h3,第二层是将第一层中距其距离为1的结点相加
对于h3,第三层是将第一层中距其距离为2的结点相加

读出:
1.将每一层叠在一起

2. ??

7.3 DGC

Diffusion Graph Convolution(传播图卷积)
与上一个相比就是直接全部加起来(??)

7.4 MoNET

Mixture Model Networks(混合模型网络)
该模型的重要思想是认为不同邻居拥有不同权重
下图中的u代表的是距离

番外:聚集的几种方法

1.将邻居全部加起来
2.对邻居做max-pooling
3.对邻居做LSTM

7.5 GAT

Graph Attention Networks
在MoNET的基础上,权重是让网络自己学的

如下图所示算出h0,h2,h4对h3的重要性,用e(energy)表示

再用得到的e作为权重对下一层的h3做聚集

7.5 GIN

Graph Isomorphism Network
给出结论:要用sum 不要用mean pooling和max pooling

8. 图信号处理(Graph Signal Processing)

信号与系统预备知识

9. 第二种实现GNN的方法(Spectral-based GNN)

将输入的图和卷积核都做傅里叶变换(Fourier Transform),将结果相乘(multiplication)就能得到下一层

hung-yi lee_p18_图神经网络(cont.)相关推荐

  1. 一小时讲懂图神经网络在分子上的应用

    介绍:图神经网络在分子上的应用是当前的研究热点.这个课件主要目标是用一小时给领域初学者讲清楚基础知识和背景,当前的研究热点,以及重要的工作.更重要的是,该课件内附很多领域内数据.公开赛.算法的链接,以 ...

  2. 送你200+篇论文,学习图或图神经网络必读!(附下载)

    来源:机器之心 本文约2300字,建议阅读5分钟. 这篇文章将介绍你需要的图建模论文,当然它们都有配套实现的. 图是一种非常神奇的表示方式,生活中绝大多数的现象或情境都能用图来表示,例如人际关系网.道 ...

  3. pytorch 三维点分类_用于RGBD语义分割的三维图神经网络(2017ICCV,已开源)

    3D Graph Neural Networks for RGBD Semantic Segmentation(2017ICCV, citation:78) 开源地址:https://github.c ...

  4. GNN(图神经网络)在反欺诈领域的落地

    今天的博客主要参考了<Heterogeneous Graph Neural Networks for Malicious Account Detection>和<GeniePath: ...

  5. 图神经网络的图网络学习(上)

    图神经网络的图网络学习(上) 原文:Learning the Network of Graphs for Graph Neural Networks 摘要 图神经网络 (GNN) 在许多使用图结构数据 ...

  6. 神经网络和图神经网络,神经网络的图怎么画

    神经网络(深度学习)的几个基础概念 从广义上说深度学习的网络结构也是多层神经网络的一种.传统意义上的多层神经网络是只有输入层.隐藏层.输出层.其中隐藏层的层数根据需要而定,没有明确的理论推导来说明到底 ...

  7. 图机器学习(GML)图神经网络(GNN)原理和代码实现(前置学习系列二)

    图机器学习(GML)&图神经网络(GNN)原理和代码实现(PGL)[前置学习系列二] 上一个项目对图相关基础知识进行了详细讲述,下面进图GML networkx :NetworkX 是一个 P ...

  8. 《深入浅出图神经网络》读书笔记 1-2

    <深入浅出图神经网络>读书笔记 1-2 第1章 图的概述 第2章 神经网络基础 2.1 机器学习基本概念 2.2 神经网络 2.4 训练神经网络 第1章 图的概述 图神经网络(Graph ...

  9. 【图神经网络】SGC:简化图卷积网络

    SGC:简化图卷积网络 <Simplifying Graph Convolutional Networks> 论文地址:https://arxiv.org/abs/1902.07153 一 ...

最新文章

  1. android 创建资源别名,android – 将具有相同名称的布局资源别名化为不同的屏幕限定符...
  2. java连接mysql8
  3. pip配置永久国内源
  4. 搜索推荐中的召回匹配模型综述(一):传统方法
  5. 后端学习 - JavaWeb
  6. Echarts报错:Component series.lines not exists. Load it first.
  7. 带有Spring的REST的ETag
  8. js判断对象是否为空对象_js对象
  9. 0.8.11版本ffmpeg一天移植将近完成。
  10. bzoj 1227 [SDOI2009]虔诚的墓主人
  11. mysql的脚本默认存_MySQL修改默认存储引擎的实现方法
  12. 盘点实际项目应用中的最佳机器学习模型
  13. Apache Flink 零基础入门(二):开发环境搭建和应用的配置、部署及运行
  14. [转载·运维案例一]nginx日志切割及7天前的历史日志删除脚本
  15. 材料成型计算机控制,材料成型及控制工程学什么 毕业后能干什么
  16. SCLK时钟信号可以高电平有效也可以低电平有效
  17. OAuth 2.0 授权认证详解
  18. SpringBoot整合Mybatis_plus学习笔记
  19. 【SVN】SVN搭建以及客户端使用|错误记录
  20. Java搭建实战springboot基于若依项目工时统计成本核算管理源码

热门文章

  1. iOS 数组中的模型去重
  2. linux中的一些命令的想法
  3. Chromium之各国语言切换
  4. DHCP配置与DHCP中继代理2
  5. 不需要显示地图 就获得用户当前经纬度 超简单的方法
  6. 类执行方法的过程与运行时
  7. 引入大数据监测地方政府信用
  8. 聊天机器人革命即将到来 开发者入局需谨慎
  9. 寫博客過程中遇到的問題
  10. MySQL_update同一张表