图卷积网络(Graph Convolutional Network, GCN)是一种用于处理图结构数据的深度学习模型。GCN编码器的核心思想是通过邻接节点的信息聚合来更新节点表示。
图的表示
一个图 G通常表示为 G=(V,E),其中:
- V 是节点集合,包含 N个节点。
- E是边集合,包含图中所有的边。
节点特征矩阵
假设每个节点 i有一个特征向量 (维度为 F),所有节点的特征可以表示为矩阵 。
邻接矩阵
图的邻接矩阵 表示图中节点之间的连接关系,其中 表示节点 i和节点 j之间有边,反之为 0。
度矩阵
度矩阵是一个对角矩阵,其中 表示节点 i的度,即节点 i的邻居数量:
图卷积层
GCN编码器由多个图卷积层组成,每一层的运算可以描述为:
其中:
- ,即在邻接矩阵A中加上自环(self-loop),其中 I是单位矩阵。
- 是对应的度矩阵,计算方式与度矩阵 D类似,只不过这里考虑了自环。
- 是第 l层的节点表示矩阵,初始表示 。
- 是第 l层的权重矩阵。
- σ 是非线性激活函数(例如ReLU)。
归一化的邻接矩阵
因此,图卷积层的更新规则可以简化为:
GCN通常由多层图卷积层堆叠而成。假设有 L层,那么经过 L 层图卷积后,最终的节点表示为 。
聚合和更新
每一层的图卷积操作本质上是对每个节点的邻居节点信息进行聚合,然后通过线性变换和非线性激活函数进行更新。具体过程如下:
- 聚合邻居信息:使用归一化的邻接矩阵对节点表示进行线性变换,得到聚合后的邻居信息。
- 线性变换:通过权重矩阵 对聚合后的邻居信息进行线性变换。
- 非线性激活:应用非线性激活函数 σ进行非线性变换。
最后
GCN编码器的结构可以通过如下递归公式表示:
初始状态下 ,经过 L层图卷积后,得到最终的节点表示 。每层的图卷积通过聚合邻居信息、线性变换和非线性激活来更新节点表示。