• 图卷积网络(Graph Convolutional Network, GCN)


    图卷积网络(Graph Convolutional Network, GCN)是一种用于处理图结构数据的深度学习模型。GCN编码器的核心思想是通过邻接节点的信息聚合来更新节点表示。

    图的表示

    一个图 G通常表示为 G=(V,E),其中:

    • V 是节点集合,包含 N个节点。
    • E是边集合,包含图中所有的边。

    节点特征矩阵

    假设每个节点 i有一个特征向量 x_i(维度为 F),所有节点的特征可以表示为矩阵 \mathbf{X} \in \mathbb{R}^{N \times F}

    邻接矩阵

    图的邻接矩阵 \mathbf{A} \in \mathbb{R}^{N \times N}表示图中节点之间的连接关系,其中 \mathbf{A}_{ij} = 1表示节点 i和节点 j之间有边,反之为 0。

    度矩阵

    度矩阵\mathbf{D} \in \mathbb{R}^{N \times N}是一个对角矩阵,其中 \mathbf{D}_{ii}表示节点 i的度,即节点 i的邻居数量: \mathbf{D}_{ii} = \sum_{j} \mathbf{A}_{ij}

    图卷积层

    GCN编码器由多个图卷积层组成,每一层的运算可以描述为:

    \mathbf{H}^{(l+1)} = \sigma\left( \mathbf{\tilde{D}}^{-\frac{1}{2}} \mathbf{\tilde{A}} \mathbf{\tilde{D}}^{-\frac{1}{2}} \mathbf{H}^{(l)} \mathbf{W}^{(l)} \right)

    其中:

    • \mathbf{\tilde{A}} = \mathbf{A} + \mathbf{I},即在邻接矩阵A中加上自环(self-loop),其中 I是单位矩阵。
    • \mathbf{\tilde{D}} 是对应的度矩阵,计算方式与度矩阵 D类似,只不过这里考虑了自环。
    • \mathbf{H}^{(l)}是第 l层的节点表示矩阵,初始表示 \mathbf{H}^{(0)} = \mathbf{X}
    • \mathbf{W}^{(l)}是第 l层的权重矩阵。
    • σ 是非线性激活函数(例如ReLU)。

    归一化的邻接矩阵

    \mathbf{\hat{A}} = \mathbf{\tilde{D}}^{-\frac{1}{2}} \mathbf{\tilde{A}} \mathbf{\tilde{D}}^{-\frac{1}{2}}

    因此,图卷积层的更新规则可以简化为:

    \mathbf{H}^{(l+1)} = \sigma\left( \mathbf{\hat{A}} \mathbf{H}^{(l)} \mathbf{W}^{(l)} \right)

    GCN通常由多层图卷积层堆叠而成。假设有 L层,那么经过 L 层图卷积后,最终的节点表示为 \mathbf{H}^{(L)}

    聚合和更新

    每一层的图卷积操作本质上是对每个节点的邻居节点信息进行聚合,然后通过线性变换和非线性激活函数进行更新。具体过程如下:

    1. 聚合邻居信息:使用归一化的邻接矩阵\mathbf{\hat{A}}对节点表示进行线性变换,得到聚合后的邻居信息。
    2. 线性变换:通过权重矩阵 \mathbf{W}^{(l)}对聚合后的邻居信息进行线性变换。
    3. 非线性激活:应用非线性激活函数 σ进行非线性变换。

    最后

    GCN编码器的结构可以通过如下递归公式表示:

    \mathbf{H}^{(l+1)} = \sigma\left( \mathbf{\hat{A}} \mathbf{H}^{(l)} \mathbf{W}^{(l)} \right)

    初始状态下 \mathbf{H}^{(0)} = \mathbf{X},经过 L层图卷积后,得到最终的节点表示 \mathbf{H}^{(L)}。每层的图卷积通过聚合邻居信息、线性变换和非线性激活来更新节点表示。

  • 相关阅读:
    可视化概述
    Git命令(持续更新中...)
    Caliburn.Micro框架学习笔记——事件总线机制
    二、前端-VUE(2)
    Meta分析的流程及方法
    MS4344:24bit、192kHz 双通道数模转换电路
    如何手动获取spring/springboot中的IOC容器(全局上下文对象)?
    html页面直接使用elementui Plus时间线 + vue3
    340. 至多包含 K 个不同字符的最长子串
    springboot如何实现文件下载呢?
  • 原文地址:https://blog.csdn.net/weixin_44012667/article/details/139812818