该文章的博客链接
A Gentle Introduction to Graph Neural Networks
通过js交互图,介绍不同层之间,图的信息传递
摘要
Understanding Convolutions on Graphs 这篇文章会帮助我们理解从图像卷积自然过渡到图的卷积。GNN属于是一个新的领域,刚刚开始应用。本篇文章主要可以分为四个部分,第一部分是介绍什么数据可以表示成图。第二部分是介绍图和其他数据结构有什么区别。第三部分是介绍GNN的模型,从最简单的模型到现在最先进的模型。第四部分,作者提供了GNN的playground,可以让读者亲自体验体验GNN的魅力。
在本篇文章中,V/U/E的详细信息如上。为了更好的描述它,用长度较小的向量来表示。
图神经的核心就是,怎么样把我们想要的信息表示成向量,以及向量是否能通过数据学习到。
V | E | U |
---|---|---|
node(6) | edge(8) | 全局信息,整个图(5) |
1. 什么数据可以表示为图
image/text/molecule/social network/citation novels都可以用图来表示。
data | graph |
---|---|
image | 每个像素看作一个点,是否相邻看作一条边 |
text | 每个词看作一个点,词之间存在有向边 |
molecule | 每个原子看作一个点,它们之间的键看作边 |
social network | 每个人看作一个点,它们之间是否认识作为边 |
citation novels | 每篇文章引用别人的文章,文章的引用看作一条有向边 |
在图上面可以定义什么样的问题?
总共可以分为三大问题,分别是Graph/Edge/Node level
Graph Level
例子:给定一个分子表示的图,然后预测该分子的气味,或者是不是可以与某种疾病的受体相结合。
Node Level
例子:通过老师与学员打比赛,将学员分类到2个老师的队伍中。
Edge Level
例子:跆拳道比赛,预测不同的人的关系,比如观众看比赛,选手比赛。
2.图和其他数据类型的区别
图在机器学习上的挑战
challenges one
Graph 有4种信息,分别是node/edge/graph/connectivity。前三个相对简单,但是连接性很复杂。如果使用邻接矩阵来表示connectivity来表示,需要很大存储空间,而且空间上是稀疏的。稀疏矩阵存储的话,GPU计算较困难。
challenges two
排列不变性:同一个图,可以用不同的邻接矩阵来表示,但对于这些同一个图生成的不同的输入,无法保证对应的输出是一致的。
如何高效的表示这个图呢?(邻接表)
稀疏矩阵可以考虑用邻接表来存储,以上是图对应的邻接表。图中数值可以是任意的tensor。
3.GNN(Graph Neural Network)
GNN解决了上述存在的问题。一是GNN可以保持排列不变性,即对于同一个图,不同的表示并不会影响输出。二是GNN的输出和输入都是图,不会改变图的连接性。
simplest GNN
对于node、edge、Global,分别增加一个MLP层,不会改变图的连接性。
Pooling Information
问题:解决最后一层预测。某些节点没有node/edge/global中的一种,该怎么办?
解决:缺啥,用其他有的来做汇聚(pooling)。
消息传递的GNN(增加图的连接性)
node
通过相邻节点来更新自己这个节点的信息。
edge(3种)
1.节点——边——节点
2.边——节点——边
3.交替使用
global
可以将这个理解为特征级别的注意力机制,即这个Global整合了node/edge等诸多信息。Global(抽象)可以和所有的点和边连接,然后做MLP。
4.GNN playground
本文作者将GNN嵌入到js中,搭建了一个playground,给出了分子的数据集,通过调节超参数,可以得到不同的模型。并通过可变的分子结构,给出了结果的可视化。
模型超参数选择
下图是一个预测分子是否有味。可以改变的参数有层数、pooling函数、node、edge、global的表示向量的长度等。在超参数的基础上,会将模型训练50个epoch。最后会给出模型的AUC。
参数数量对于模型的影响
edge/node/global维度对于模型的影响
模型层数对于模型的影响
pooling的选择对于模型的影响
消息机制对于模型的影响
图相关的技术
多重图和超图
采样和batch
图的结构决定了不可能像CNN那样固定batch的大小。
随机采样、随机走采样、随机走采样+随机采样、扩散采样
Inductive biases
网络 | Inductive biases |
---|---|
CNN | 空间变换的不变性 |
RNN | 时序的连续性 |
GNN | 图的对称性 |
结论
图是非常强大,几乎所有数据都能表示成图,但是图上做优化很难,涉及到CPU和GPU的训练也是一个挑战,同时图神经网络对超参数非常敏感。近些年图神经网络在学术界迅速发展,实际上工业落地的并不多,GNN的发展还需要时间的沉淀。
参考链接