看了大佬的博客
A Gentle Introduction to Graph Neural Networks
图
图用来表示一些实体间的关系——》点
V Vertex 顶点/node
E Edge 边/关系
U Global 全局 (embedding) 比如一个图中是否含有环 就是一个全局信息
V E U可以用向量来表示
图分为有方向 与 无方向 两种实体间的关系不一定相互 比如用户博客的关注
将图片变成图就是将每个像素点按照在图片上的位置进行排列,前后左右以及对角线直接相连的的结点都是本节点的”邻居“。
将文本变成图就是将 各个单词进行串联
常见的分子结构也是用图表示
还有常见的图就是人物关系图
图的表示
图是一种比较具象化的数据结构,注重数据之间的关系
通常我们使用向量来表示图
先给点进行排序,然后在相应的位置上放入点中的数据,
如 1 3 2表示三个点 第一个点中数据为1 第二个中为3 第三个为2
那么相应的就有边的性质 假设有四条边 表示为 3 2 3 2
意思是四条边蕴含的数据分别为3 2 3 2
最后对应四条边的四个连接 如 [0,1] [1,2] [2,0] [2,3]
这样的一个图表示的就是一个简单的图,并且我们也表示出了图所蕴含的信息
使用图
简单的GNN
既然知道了如何表示图,那么我们来看如何使用图进行训练任务,最简单的就是信息传递,他分别对图的E V U的embedding进行了一次的MLP,从而保持图的结构,进行多次,就有了一个简单的图神经网络
继续,我们可以使用图进行图信息的预测
假设我们缺失图上的顶点信息,我们就可以将与此顶点相连的边还有全局信息进行信息传递,我们直接将边的embedding与全局的embedding进行求和,经过映射操作,那么我们可以直接将得到的值赋予给顶点信息,这也叫pooling
对于边信息或者全局信息,我们直接采用对称的方式进行操作即可
那么我们来看使用一张图中信息的流程,实际上就是我们对于一张图,将它进入E V U的三个MLP中直接进行输出,得到属性进行过处理的图(图进图出),然后将它进入全连接层,获得我们想要的结果
但是这种简单的方式没有考虑到V E U三者之间的联系,并不能完整的利用图中的信息。