由于课题研究需要,这星期看了几篇GCN相关的文章和书籍,并对其进行了代码复现,现将最近学习的内容做一个梳理与总结,用于日后复习巩固。由于能力有限,文章中有错误或者不当之处,还望各位读者多多指出。之后对GCN应用方面相关的论文阅读笔记,也会及时文末跟新。(本文作为笔者的学习笔记,如有错误,希望各位读者批评指正)- - 更新时间:2020年11月1日
[学习笔记(1)]深入浅出了解GCN原理(公式+代码)
[学习笔记(2)]深入浅出了解GNN的几种变体
引言
相信大多数读者在了解GCN(Graph Convolutional Networks)之前,对CNN(Convolutional Neural Network)都是非常熟悉的,我们知道,在连续信号中的卷积是表征函数f与g经过翻转和平移的重叠部分函数值乘积对重叠长度的积分,如下公式(1)。
∫ − ∞ + ∞ f ( τ ) g ( x − τ ) d τ ( 1 ) \quad\qquad\int_{-\infty}^{+\infty} f(\tau)g(x-\tau)d\tau \qquad\qquad\qquad (1) ∫−∞+∞f(τ)g(x−τ)dτ(1)

对于离散信号而言,离散卷积的本质也是平移叠加之后的加权和,所以在CNN中图像上的卷积,本质上是利用参数共享的过滤器(kernel),通过计算中心像素点以及相邻像素点的加权和来构建成Feature Map,实现空间特征的提取,而加权的系数就是卷积核的权重,这其实在很多传统图像的算法中也有体现,就比如高斯平滑算子,拉普拉斯算子,边缘检测算子(提取边缘特征),包括SIFI(Scale-invariant feature transform)特征点提取,也是一系列的卷积和后处理操作。这些在图像上通过卷积核特征提取的操作,之所以有效很大一部分原因是因为图像本身是结构化数据,它是多个像素点排列整齐的矩阵,而CNN具有平移不变性(即图像如果经过平移,得到的特征图也会相应平移)。然而在真实世界中,还含有很多非欧几里得距离的数据,比如社交网络关系、交通连通图、脑网络连接等等,对于这类具有抽象意义的拓扑图关系的数据,它们是无法保证平移不变性的,这就需要我们有类似cnn的方法,来提取和挖掘有效的空间关系进行建模学习。广义来说,对于任何数据,都可以建立一定的拓扑关联,来进一步挖掘数据内部之间的关联性,所以GCN有很大的应用空间。
GCN发展
GCN真正开始运用和发展是从这篇于2016年提出,2017年发表的文章开始:SEMI-SUPERVISED CLASSIFICATION WITHGRAPH CONVOLUTIONAL NETWORKS ,详细文章内容,读者可以自行阅读原文。
1、基于损失函数的考虑
在2016年以前,就有前人尝试利用正则化约束的方法,通过在损失函数中引入图的拉普拉斯正则项,来对节点分类任务进行半监督学习,如下公式(2).
L = L 0 + λ L r e g w i t h L r e g = ∑ i , j A i j ∣ ∣ f ( X i ) − f ( X j ) ∣ ∣ 2 = f ( X ) T △ f ( X ) . ( 2 ) \mathcal{L}=\mathcal{L}_0+\lambda\mathcal{L_{reg}}\qquad with\quad \mathcal{L_{reg}}=\sum_{i,j}A_{ij}||f(X_i)-f(X_j)||^{2}=f(X)^T\vartriangle f(X). \qquad(2) L=L0+λLregwithLreg=i,j∑Aij∣∣f(Xi)−f(Xj)∣∣2=f(X)T△f(X).(2)
其中 L 0 \mathcal{L}_0 L0为监督损失(与label定义的损失), L r e g \mathcal{L}_{reg} Lreg为约束项, f ( . ) f(.) f(.)可以是神经网络可微函数, X X X是节点特征向量 X i X_i Xi的矩阵, △ = D − A \vartriangle=D-A △=D−A是无向图 G = ( V , E ) G=(V,E) G=(V,E)的非标准化拉普拉斯矩阵。这里说明下,拉普拉斯矩阵是用来研究图结构性质的核心对象,其定义为 L = D − A L=D-A L=D−A,其中D是一个对角矩阵, A A A是邻接矩阵, D i i = ∑ j A i j D_{ii}=\sum_jA_{ij} Dii=∑jAij 表示 i i i节点的度。拉普拉斯矩阵还有一种正则化的形式(symmetric normalized laplacian) L s y m = D − 1 2 L D − 1 2 = I N − D − 1 2 A D − 1 2 ( 3 ) \qquad L_{sym}=D^{-\frac{1}{2}}LD^{-\frac{1}{2}}=I_N-D^{-\frac{1}{2}}AD^{-\frac{1}{2}} \qquad\qquad\qquad(3) Lsym=D−21LD−21=IN−D−21AD−21(3),其元素级别的定义如下:
L s y m [ j , j ] { 1 i f i = j − 1 d e g ( v i ) d e g ( v j ) i f e i j ∈ E 0 o t h e r w i s e ( 4 ) \qquad L_{sym}[j,j]\left\{ \begin{aligned} 1\qquad\quad& &{ if\ i=j\quad}\\ \frac{-1}{\sqrt{deg(v_i)deg(v_j)}} & &{if\ e_{ij} \in E} \\ 0 \qquad\quad& & {otherwise } \end{aligned} \right.{\quad \qquad \qquad \qquad (4)} Lsym[j,j]⎩⎪⎪⎪⎨⎪⎪⎪⎧

本文是作者对GCN学习内容的梳理总结。先介绍GCN发展,包括基于损失函数的考虑、谱图卷积、切比雪夫卷积核等;接着给出代码设计与实现;最后总结谱域和空域卷积,指出GCN虽降低计算复杂度但仍存在问题,还提及未来可围绕的工作方向。
最低0.47元/天 解锁文章
789





