今天学习论文的时候接触到了图卷积神经网络,有点好奇,故查阅一下资料。
Graph Convolutional Network
参考资料:图卷积神经网络(GCN)详解:包括了数学基础(傅里叶,拉普拉斯) - 知乎
CNN与GCN的关系:
CNN(Convolutional Neural Networks)是卷积神经网络,本质上是利用共享参数的过滤器,通过计算中心像素点以及相邻像素点的加权和构成feature map,实现空间特征的提取。其中的加权系数就是卷积核的权重系数,它是随机化初值,然后根据误差函数通过反向传播梯度下降进行迭代优化。
在计算机视觉中,CNN处理图像或视频中的像素点,组成很整齐的欧几里德结构数据(如:矩阵)。
针对社交网络、知识图谱等结构,无法形成欧几里德结构数据,所以直接使用拓扑图作为结构。
研究GCN的原因:(对CNN的改进)
1.处理非欧几里德结构数据(图数据、流数据参考《学习geometric deep learning笔记系列》第一篇,Non-Euclidean Structure Data之我见_FesianXu的博客-优快云博客)
2.在拓扑图上提取空间特征进行机器学习。
3.可以扩展到各种应用,建立拓扑关联,在这种广义的数据结构上进行应用。
GCN简介:
目标:学习图G=(V,E)上的信号或特征的一个映射。
输入包括:
- 每一个节点i的特征描述 xi ,可以写成一个N*D的特征矩阵(N表示节点数,D表示输入的特征数)
- 矩阵形式的图结构的特征描述,通常是以邻接矩阵的形式(或者其他的形式)
模型会产生一个节点级别的输出Z(一个N*F的特征矩阵,其中F表示每一个节点的输出特征数,Z也可以作为图级别的输出)。
图级别的输出可以通过引入一些池化操作来建模
每一个神经网络层可以写成这样一个非线性函数:
L是层数,这个模型主要在于怎样选择以及参数化。
从卷积方式上可以分为两种:
1.谱(spectral)卷积 Semi-Supervised Classification with Graph Convolutional Networks