Graph Neural Networks
0. 前言
参考资料:
- 【主要】 姜成翰:https://www.bilibili.com/video/BV1G54y1971S
记录学习姜成翰同学关于GNN内容讲解的过程,以及个人的补充。
1. 为什么要研究图神经网络?
一个重要原因在于图结构具有广泛适用性(generalization),或者说在生活中很多数据关系与问题都可以规约成图,进而求解。
eg.1 分子的性质推断。
Given: 各原子类型、位置;分子的性质;
Target: 给定一个新的分子信息,输出目标值(例如势能,偶极矩,高占据分子轨道能量等等)
备注: 这是图神经网络在早期的一个应用方向。该方向一直有不低的研究热度。
在研究图神经网络的时候,我们需要注意哪一些问题?
1. 图较大,即你设计的算法/系统在大规模图结构数据集下的表现情况。例如网站排序时涉及上亿的节点集。
2. 只提供部分标签数据的情况。感觉这算是一类问题,即给定部分节点标签与整个图结构关系,推断剩余的节点标签情况。
回忆一下2D Convolution的过程:
核心问题:How to embed node into a feature space using convolution?
Sol. 1:Generalize the concept of convolution (corelation) to graph.
说人话就是单纯的从节点考虑,从最简单的图关系(邻居关系)开始入手,也就是spatial-based convolution。这一类方法较为直观。
Sol. 2:Back to the definition of convolution in signal processing.
该类则回归卷积在信号处理中最本质的定义,类比推导出在图中应该如何定义卷积,即spectral-based convolution。这一类方法存在较多的数学推导与构造,看上去有一些些玄学但是数学推导十分优美。
1.1 Roadmap
2. spatial-based convolution
2.1 术语
- aggregate: 用neighbor feature来更新下一层的hidden state;即网络层级之间的关系;
- readout: 把所有的nodes的feature按特定方法集合起来代表整个graph,即output层;
2.2 说明
我们接下来将介绍一些基于节点的图神经网络的例子,包括NN4G, GAT, GraphSAGE等等;
2.3 NN4G (Neural Networks for Graph)
aggregate: h 3 1 = w ^ 1 , 0 ( h 0 0 + h 2 0 + h 4 0 ) + w ˉ 1 ⋅ x 3 h_3^1 = \hat{w}_{1,0}(h_0^0 + h_2^0 + h_4^0) + \bar{w}_1·x_3 h31=w^1,0(h00+h20+h4