GCN

核心思想

  • GCN 本质用来提取拓扑图的空间特征

  • 利用『边的信息』对『节点信息』进行『聚合』从而生成新的『节点表示』。

Non Euclidean Structure 拓扑图

为什么需要图卷积神经网络?

  • CNN 研究对象是具备 Euclidean Domains 的数据,特征是他们具有规则的空间结构,可以用一维或二维矩阵来表示。

  • CNN 的平移不变性在非矩阵结构数据不适用

    • 平移不变性

      • 输入怎么变形输出都不变
    • 平移可变性

      • 目标检测,物体从图片左侧移到右侧,坐标发生改变。

      • R-FCN,网络变深平移可变性变差。物体在输入上的小偏移,经过多层 pooling 后在小的 feature map 上感知不到。

将 [[CNN]] 扩展到图上,如何在图上实现卷积的各个特性?

  • 权重共享

  • 局部性

    • 第一代 GCN 没有 local 性质,卷积核的运算矩阵在所有位置上都有非 0 元素

    • 第二代的运算矩阵在和当前顶点邻接的位置都是非 0 元素

  • 多尺度

为什么需要 [[Laplacian matrix]]

  • 对称矩阵,可以进行特征分解

  • 拉普拉斯矩阵只在中心顶点和一阶相连的顶点上有非 0 元素

  • 由于卷积在傅里叶域的计算相对简单,为了在graph上做傅里叶变换,需要找到graph的连续的正交基对应于傅里叶变换的基,因此要使用拉普拉斯矩阵的特征向量。

如何把卷积推广到 Graph 上

  • (fh)G=U(h^(λ1)h^(λn))UTf(f * h)_{G}=U\left(\begin{array}{lll}\hat{h}\left(\lambda_{1}\right) & & \\ & \ddots & \\ & & \hat{h}\left(\lambda_{n}\right)\end{array}\right) U^{T} f
  • [[Laplacian matrix]]分解 可以写成 L=UΛUTL=U \Lambda U^{T}

[[Spectral Networks and Deep Locally Connected Networks on Graphs]] 图上扩展卷积

  • 基于空域的卷积构建 Spatial Construction

  • 基于谱域的卷积构建 Spectral Construction

    • 第一代 GCN

      • youtput =σ(Ugθ(Λ)UTx)y_{\text {output }}=\sigma\left(U g_{\theta}(\Lambda) U^{T} x\right)

        • gθ(Λ)=(θ1θn)g_{\theta}(\Lambda)=\left(\begin{array}{lll}\theta_{1} & & \\ & \ddots & \\ & & \theta_{n}\end{array}\right)
    • Spectral graph theory 借助于图的拉普拉斯矩阵的特征值和特征向量来研究图的性质

[[Convolutional neural networks on graphs with fast localized spectral filtering]]

  • 第二代 GCN

  • h^(λi)\hat{h}\left(\lambda_{i}\right) 设计成 j=0Kαjλlj\sum_{j=0}^{K} \alpha_{j} \lambda_{l}^{j}

  • youtput =σ(Ugθ(Λ)UTx)y_{\text {output }}=\sigma\left(U g_{\theta}(\Lambda) U^{T} x\right)

    • gθ(Λ)=(j=0Kαjλ1jj=0Kαjλnj)=j=0KαjΛjg_{\theta}(\Lambda)=\left(\begin{array}{llll}\sum_{j=0}^{K} \alpha_{j} \lambda_{1}^{j} & & \\ & \ddots & \\ & & \sum_{j=0}^{K} \alpha_{j} \lambda_{n}^{j}\end{array}\right) =\sum_{j=0}^{K} \alpha_{j} \Lambda^{j}

    • Uj=0KαjΛjUT=j=0KαjUΛjUT=j=0KαjLjU \sum_{j=0}^{K} \alpha_{j} \Lambda^{j} U^{T}=\sum_{j=0}^{K} \alpha_{j} U \Lambda^{j} U^{T}=\sum_{j=0}^{K} \alpha_{j} L^{j}

  • 最终

    • youtput =σ(j=0K1αjLjx)y_{\text {output }}=\sigma\left(\sum_{j=0}^{K-1} \alpha_{j} L^{j} x\right)

[[Semi-Supervised Classification with Graph Convolutional Networks]] 利用 Chebyshev 多项式作为卷积核

  • H(l+1)=σ(D~12A~D~12H(l)W(l))H^{(l+1)}=\sigma ( \tilde{D} ^ {-\frac{1}{2}} \tilde{A} \tilde{D} ^ {-\frac{1}{2}} H^{(l)} W^{(l)})

GCN 缺点

  • 训练时需要整个图的结构信息,因此是 transductive 的(训练阶段与预测阶段都是基于同样的图结构)。无法处理 inductive 任务(动态图问题,训练在子图上进行,测试阶段需要处理未知的顶点)

  • 不能处理有向图,不容易实现分配不通的学习权重给不通的 neighbor

    • 拉普拉斯举证的特征分解需要拉普拉斯矩阵是对称矩阵

[[Ref]]

作者

Ryen Xiang

发布于

2024-10-05

更新于

2024-10-05

许可协议


网络回响

评论