图卷积神经网络(GCN)的理论与实践

前言

深度学习中大家熟知的几种框架DNN、CNN、RNN(LSTM和GRU)等等是为了处理欧式空间中的数据,如图片、语音、文本。而图神经网络可以应用于更为丰富的拓扑结构数据,如社交网络、推荐系统、交通网络等,这些数据的特点是具有无序的连接关系。
图神经网络是受CNN的启发,并假设距离越近的两个节点,它们的关系也更为亲密,试图通过将节点的特征信息和节点之间的拓扑信息相结合的方式来进行节点预测、图预测等任务。

信号处理和傅里叶变换(基础)

以波的形式传递的信号常常会通过傅里叶变换将其从时域空间转到频域空间进行处理,下面以一个简单的例子进行说明:对声音进行变声处理,可以分为以下几步,

1.用傅里叶变换将声波从时域转换到频域,

左图为声波的时域图,右图为频域图

2.对频域图进行滤波处理:即用某个函数与相乘,

滤波后的频域图.png

3.将频域进行逆傅里叶变换,重新变为声波,

变换后的时域图

图片转自python基于傅里叶变换的频率滤波-音频降噪

注:傅里叶变换就是以为基底,为系数的线性组合。

图基本定义

设G(V,E),V代表节点集合,共有N个节点;E代表边集合,共有M条边。可以用连接矩阵A来表示一个图的拓扑结构信息,

用D表示度矩阵,它是一个对角阵,对角线上的元素是节点的度数,

拉普拉斯矩阵L的定义如下:

拉普拉斯矩阵

为了使大家能对GCN有更加直观的理解,这里对拉普拉斯矩阵做几点说明。

  • ,其中,代表节点的一阶邻居节点集合。可以看到矩阵是对图中一阶节点信息的简单聚合操作。
  • ,可以衡量一个图中节点信息的差异性,该值越大,则信息差异也越大。且可以看出是对称的半正定矩阵。
  • 常用的拉普拉斯矩阵是其规范化的形式:,该矩阵通过特征分解得到的特征值,其范围是[0,2)。证明如下,


    其中是矩阵的最小特征值,是矩阵的最大特征值。

    最小特征值为0可以从为半正定矩阵推出,且其特征向量较易得出,下证其最大特征值<2,
    \begin{aligned} & \frac{x^TL_{s} x}{x^T x} \\ =& \frac{x^TD^{(- \frac{1}{2})} L D^{(- \frac{1}{2})}x}{x^T x} \\ =& \frac{y^TL y}{y^T D y} (令y=D^{- \frac{1}{2}}x) \\ =& \frac{\sum_{e_{ij} \in E} (y_i - y_j)^2}{\sum_{e_{ij} \in E}(y_i ^2 + y_j ^2)} \\ \leq & \frac{\sum_{e_{ij} \in E} 2(y_i ^2 + y_j ^2)}{\sum_{e_{ij} \in E}(y_i ^2 + y_j ^2)} = 2,得证 \end{aligned}
  • 特征分解:因为是一个对称阵,一定有一个正交阵,使得其对角化,对应的对角矩阵为,

    设,对其进行傅里叶变换,

    对其进行逆傅里叶变换:

    其中特征向量为基底,傅里叶系数为其线性组合的系数。

GCN

理论

GCN的计算过程与信号处理过程相同,先将卷积核和图数据通过傅里叶变换转换到频域空间,再对频域空间的系数进行数值运算,最后进行逆傅里叶变换得到卷积后的结果。设是图中节点的特征向量,是待学习的参数,则一次图卷积可以定义为,

其中代表傅里叶变换,代表逆傅里叶变换,,代表元素之间的点乘。
从式子中可以看出待学习的参数是共个,即和图中节点的数目相关,该方法难以适应节点数量较多的图(而这种情况在现实世界中更为常见)。那么可以使用多项式进行逼近,下面简单介绍下切比雪夫多项式。

则对应的,其递推形式为,
切比雪夫多项式递推形式 \left\{\begin{aligned} &T_0(\tilde\Lambda) = 1\\ &T_1(\tilde\Lambda) = \tilde\Lambda\\ &T_n(\tilde\Lambda) = 2\tilde\Lambda*T_{n-1}(\tilde\Lambda) - T_{n-2}(\tilde\Lambda) \end{aligned} \right. \tilde\Lambda=\frac{2}{\lambda_{max}}\Lambda_s-I \in [-1, 1]
对应的,其递推形式为,
切比雪夫多项式递推形式 \left\{\begin{aligned} &T_0(\tilde L) = 1\\ &T_1(\tilde L) = \tilde L\\ &T_n(\tilde L) = 2 \tilde L*T_{n-1}(\tilde L) - T_{n-2}(\tilde L) \end{aligned} \right. \tilde L=\frac{2}{\lambda_{max}}L_s-I \in [-1, 1]
用一阶切比雪夫多项式进行逼近,,令,
\begin{aligned} y=&(\theta_0I+\theta_1\tilde L)x \\ =&(\theta_0I+\theta_1(L_s-I))x\\ =&(\theta_0I-\theta_1D^{-\frac{1}{2}}AD^{-\frac{1}{2}})x\\ =&\theta(I+D^{-\frac{1}{2}}AD^{-\frac{1}{2}})x\\ \approx & \theta\tilde D^{-\frac{1}{2}}\tilde A \tilde D^{-\frac{1}{2}} x \end{aligned}
其中。
进一步推广,得到图卷积的形式,设,是特征向量的维度,,是输出向量的维度,

paper:semi-supervised classification with graph convolutional networks

实践(代码)

使用cora数据进行实践,cora数据是一个论文引用关系网络,节点代表一篇论文,边代表两篇论文之间的引用关系;节点有7种分类,分属于不同的学科。通过GCN对该数据进行节点分类任务。


训练误差与测试误差.png

最后对隐藏层的输出进行t-sne可视化,得到


隐藏层的可视化.png

代码:7nic7 GitHub

你可能感兴趣的:(图卷积神经网络(GCN)的理论与实践)