文章目录
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
未完待续