空域卷积(使用空间上的连接关系)
最早期GNN
更新函数在每个节点处都是共享的
通过第一步更新,我们可以看到离他距离为一的所有的节点;通过第二步更新,我们可以看到离他距离为二的所有的节点;更新的次数足够多,就有能力感知到整张图
如何保证迭代最后会收敛?
保证F是一个压缩映射,最后会收敛到一个不动点
存在缺陷:过平滑的问题,节点的embedding趋于一致化
变种GNN(门控制图神经网络)
不再要求更新函数是一个压缩映射,并且不再要求更新到收敛,防止过拟合
GCN
聚合邻居节点的信息
MPNN:空域卷积形式化的框架
(1)消息的传递(从相邻的节点怎么传递消息过来)——
M
l
+
1
M_{l+1}
Ml+1
(2)状态更新(怎么通过传递来的消息,更新当前的状态)——
U
l
+
1
U_{l+1}
Ul+1
MPNN框架下的模型都有一个共同的缺陷——卷积操作是针对整张图的每一个节点,然而当图太大时这个操作是不现实的
GraphSage
如何sample如何aggregate是我们需要去定义的事情
GAT
定义了特殊的局部更新函数
处理变长输入——attention
频域卷积
数学基础
特征分解——谱分解——对角化
充要条件:n阶方阵,有n个线性无关的特征向量
图信号
拉普拉斯算子特征向量组成的矩阵
定义卷积操作:傅立叶变换结果的乘积,再做傅立叶逆变换
确定了卷积核h,对角阵就是卷积核
如何去定义卷积核呢?
第一种思路:将对角线上的元素定义成我们要学习的参数
不具有空间局部性
对角阵上的每一个元素,写成是
λ
\lambda
λ(特征值)多项式的形式。极大程度降低参数量
减少计算量,不需要对拉普拉斯矩阵谱分解,直接求k次方就可以了
k等于几就使用了几阶邻居(空间局部性)