【论文阅读】GNN阅读笔记

A gentle introduction on gnn

前言

发表在distill的文章

图神经网络在应用上才刚刚开始

搭建了一个GNN playground

什么是图

图是表示实体之间的关系

可以分别表示成点向量、边向量、图向量

图可以分为有向图和无向图

数据是怎么表示成图

图片表示成图:

把图上的每一个像素都映射成图上的一个点

边是像素之间的关系

文本表示成图:

上一个词和下一个词之间有一条有向边

化学表示图:

每一个原子表示成一个点

社交网络表示成一个图:

人物在场景里同时出现

数据集:

Qm9 化学分子式

Cora 论文引用

wikipedia 知识图 引用图

在图上可以定义什么问题

图层面

比如给一张图,对图进行分类

顶点层面

节点分类

边层面

边的属性预测

将机器学习用在图上会遇到什么挑战

图的四个属性:点属性、边属性、图的全局属性、连接性

连接性可以通过邻接矩阵来表示

存储高效并且存储无关的

图神经网络

v1 最简单的GNN

对于点、边、图,分别构造一个MLP

进去以后得到了更新后的三种向量

比如做节点二分类,就在后面加一个输出维度为2的全连接层,再加一层softmax,就可以得到输出。

如果是n类,就加一个输出维度为n的全连接层,再加一层softmax。

pooling

对一个点的向量做预测

把全局向量、边的向量加起来;不过维度要一致,否则要做投影

所有边和顶点的向量加起来,可以得到全局的向量

总结

GNN一个层里就是三个MLP,对原图做transform

在图转换为向量以后,加一个分类层就可以做预测了

但是这种方法有局限性,没有考虑到连接信息,没有把图的信息更新到结构里

v2 信息传递

aggregate 把邻居的向量加起来,聚合后,再更新

这里相当于卷积,但是权重都是一样的

顶点和边之间的交换

可以交替交换

全局信息的交换

Master node

这个点是一个虚拟的点,可以和所有的点和边相连

把所有的顶点和边的信息都拿过来汇聚

这样对三类属性都可以学到预测的向量

其实有点像attention mechanism

基于消息传递的图神经网络

GNN playground

把gnn的训练程序嵌入到javascript

在浏览器里运行的

可以选图神经网络有多少层

可以改变超参数,重新进行训练

这个东西超参数比较难调

相关技术

不同类型的图

可能有很多别的图,比如multigraph,比如图可能是分层的

采样

如果图太大,可能要做采样

随机采样一些点,把这些点的邻居找出来,只在子图上做计算,减少内存

做随机游走,规定最多随机走几步,就可以得到子图

batch

inductive biases

gnn的假设是保持了图的对称性

不同的汇聚操作

求和、求平均

没有一个聚合的操作是比另一个更好的

所以在实际应用中可能要找一个适合的办法

GCN

GCN就是带了aggregation的神经网络

每一个点都是以自己为中心的往前走k步的子图的汇聚

GCN可以认为是有n个子图

dual

可以做对偶

在图上做卷积,做random work,都是在矩阵上做乘法

和pagerank的思想有点像

GAT

在图上做汇聚的时候每个点的权重是相同的

卷积的权重是对位置不敏感的

所以可以用注意力机制的的办法

做点乘,以后做softmax

图的可解释性

图到底学到了什么东西

结论

写作:非常流畅

gnn就是对属性做变换,但是不改变图的结构

怎么做预测,就是最后做输出层

如果有缺失可以用一个聚合的操作,弥补缺失的属性

消息交换,可以通过汇聚的方法把图上的信息进行汇聚

实验部分对于每个超参数对结果的影响是怎么样的

最后对gnn相关的技术进行了展开

交互图蕴藏了很多信息,美观直观

图既是一个优点也是一个缺点,图数据的可视化是比较难的

distill写作的门槛太高

尽量的使用图和文字来描述,而不是公式和代码

在图上做优化是很难的,因为它的架构很稀疏

图神经网络对超参数很敏感

所以图神经网络的门槛比较高

图神经网络在工业界的应用是比较少的

你可能感兴趣的:(论文阅读)