图卷积神经网络_biji
图卷积神经网络
卷积
卷积是一种积分,是一种运算,是一种信号处理,结果比原来的信号更加平滑。
- spectral methods:谱域方法,通过傅立叶变化到谱域,在谱域进行卷积运算,在通过傅立叶变换的逆回到空间域。
- spatial methods:空间域方法,在空间上直接使用卷积,遇到的问题是每个节点的邻居区域大小不同,实现参数共享有点困难。 卷积在这里的基本思想是在邻居节点的加权平均。 主要是解决邻居区域大小,找相同大小的邻居区域大小。
谱域方法
每个节点有 d 维特征,X 是节点的特征矩阵,X 是 n*d 维的,X的每一行是一个节点特征,X的每一列是N个节点组成的图上的信号。
傅立叶变换,拉普拉斯矩阵的特征向量U作为基。
傅立叶变换:
傅立叶变换的逆:
根据卷积定理(两个信号的卷积可以看成是它傅立叶变换后的点积),谱域上的卷积是这样是实现的,将X和卷积核y 通过 傅立叶变化,投影到谱域上,在谱域上做点积。再通过傅立叶逆变换,回到空间域。
存在问题:
- 依赖 拉普拉斯矩阵的特征分解,时间复杂度高,O(n^3),且特征向量是稠密的
- 傅立叶变换的时间复杂度是O(n^2)
- 不是localized,也就是对节点的处理,不来自于节点的邻居节点,而来自于所有所有节点。
ChebyNet 的改进
将谱域的卷积核做多项式近似,这样就不需要做拉普拉斯矩阵的特征分解,不依赖于拉普拉斯矩阵的特征向量。只依赖于拉普拉斯矩阵,且参数从n减小到K。同时L是稀疏的,且L是局部化的。
作者改进:图小波神经 网络。思路:更换傅立叶变换的基换成小波基
图的卷积和图上的特征变换不能一起进行,改为先做 feature transformation,再做卷积。
思考点:feature transformation和卷积的本质区别在哪里,为什么后面的其他论文会仔细说到,只是做了feature transformation,并没有做卷积。在image cnn中,feature transformation和卷积同时进行又是如何得到的呢?
空间域方法
核心问题:
- 定义邻居 节点
- 为邻居节点排顺序
- 参数共享
类比的方法思路:通过一定的指标选择固定个数的节点做 为邻居节点
GraphSAGE的方法
随机采样得到邻居节点,聚合邻居节点。这里的 图卷积,没有卷积的本质,只是 Aggregate 和 combine
GCN的方法
声称是ChebNet的简化版,一节邻居的特征变换后,加权平均,权重由拉普拉斯矩阵决定,这里,只是做了图上的平滑,没有卷积的本质。
GAT
节点做feature transformation,邻居节点做feature transformation。combine后 过self attention,得到weight。(是否有 weight的学习过程为 卷积的核心???是否有卷积核)
其他的方向与创新点
- Anonymous Walks 和具体的节点无关,相似的匿名结构会得到相似的子图结构
- Pretrain GNN Model
- Data driven GNN Model VS Knowledge driven GNN Model
- Heterogeneous Information Networks( MetaPath2vec 与 MetaPath2Vec++的差异, 算分母的时候MetaPath2Vec++只算同类型的节点数量,把异质图变成同质图)