An End-to-End Deep Learning Architecture for Graph Classifification 论文笔记
简要概述
论文提出了图卷积的方法,此处的图(Graph),指的是包含节点与边的二维图,与一般的图像卷积不同,图卷积有节点数和边数不固定,如何提取特征等难题,该论文构造图卷积神经网络DGCNN可用于图的回归和分类
论文核心
图卷积神经网络的结构如图:
输入是一张图
-
过程1,Graph convolution layers:
此阶段是提取图的特征,将输入从图结构转换成矩阵结构,毕竟神经网络要处理的依旧是矩阵。DGCNN通过以下算法提取图的特征。
Z = f ( D ^ − 1 A ^ X W ) Z=f(\hat{D}^{-1}\hat{A}XW) Z=f(D^−1A^XW)
假设图G有n个节点,其中 A ^ = A + I \hat{A}=A+I A^=A+I, A A A是图的邻接矩阵,加上单位矩阵相当于节点自身也有边相连,则 A ∈ R n ∗ n A \in R^{n* n} A∈Rn∗n, X X X是图的节点的信息, X ∈ R n ∗ c X\in R^{n*c} X∈Rn∗c, c c c为每个原子的特征纬度, W W W为一个权重矩阵,需要学习,可以通过神经网络实现, W ∈ R c ∗ c 1 W\in R^{c*c_1} W∈Rc∗c1, D D D是标准化用的。这样一层得出来 Z ∈ R n ∗ c 1 Z\in R^{n*c_1} Z∈Rn∗c1解释 A ^ X \hat{A}X A^X可以理解为更新后的节点信息为原节点信息与其邻接节点信息的和
当然这只是一层,继续有:
Z i + 1 = f ( D ^ − 1 A ^ Z i W ) Z_{i+1}=f(\hat{D}^{-1}\hat{A}Z_{i}W) Zi+1=f(D^−1A^ZiW)
最终将所有 Z i Z_i Zi拼接在一起则完成过程1,这就完成了图的特征的提取
Z = [ Z 1 , Z 2 , ⋯ , Z h ] 记 s = ∑ i = 1 h c h , Z ∈ R n ∗ s Z=[Z_1,Z_2,\cdots,Z_h]\\ 记s=\sum_{i=1}^{h}c_h, Z\in R^{n*s} Z=[Z1,Z2,⋯,Zh]记s=i=1∑hch,Z∈Rn∗s -
过程2,SortPooling:
这个过程解决节点数不固定的问题。输入为 Z ∈ R n ∗ s Z\in R^{n*s} Z∈Rn∗s,此处n为图中节点个数不固定,最终该层输出为 S ∈ R k ∗ s S\in R^{k*s} S∈Rk∗s,k为固定。此处论文提出的解决方法是进行排序,代码中实际做的事情是对 Z Z Z的最后一列进行简单的大小排序(这里的原理看不懂~),取前k个,若 k > n k>n k>n,则填充0.
-
过程3,1-D convolution:
将 S ∈ R k ∗ s S\in R^{k*s} S∈Rk∗s平铺成一维向量,然后进行一维的卷积,max_pooling池化再卷积
-
过程4:,Dense layers:
最后一层是全连接。