图卷积神经网络(GCN)学习笔记

发布于:2025-09-12 ⋅ 阅读:(15) ⋅ 点赞:(0)

图卷积神经网络(GCN)学习笔记

开篇思考:为什么需要GCN?——从“数据结构痛点”出发

当我们处理图像时,CNN可以用3×3卷积核在规则像素网格上滑动提取特征;处理文本时,RNN能顺着单词的时序顺序捕捉上下文——但现实世界中,更多数据是“无规则结构”的:比如社交网络里每个人的好友数量不同,分子结构中原子的连接方式不规则,交通网络里路口的连通关系没有固定模式。

这些“节点+边”构成的图数据,传统深度学习模型束手无策:CNN的固定窗口用不上(没有网格),RNN的时序逻辑不适用(没有顺序)。这时候,图卷积神经网络(GCN) 应运而生——它的核心价值,就是为“不规则图数据”设计一套专属的特征提取逻辑,让模型能像处理图像、文本一样,理解图中的节点关系与属性,最终解决节点分类、边预测等任务。

一、基础认知:GCN与图数据的适配性

1. 图数据:GCN的核心处理对象

现实世界中,大量数据以“节点-边”的不规则结构存在,这类数据被称为图数据,典型场景包括:

  • 社交网络:节点=用户,边=好友关系,节点属性=年龄/兴趣,边属性=亲密度
  • 分子结构:节点=原子,边=化学键,节点属性=原子类型/电荷
  • 知识图谱:节点=实体(如“苹果”“水果”),边=关系(如“属于”)
  • 交通网络:节点=路口,边=道路连通性,节点属性=车流量/红绿灯状态

与图像(规则像素网格)、文本(有序单词序列)不同,图数据的节点邻居数量不固定,传统CNN/RNN难以直接处理,而GCN是专为这类不规则结构设计的模型。

2. GCN的核心目标:基于“邻居关联”更新节点特征

GCN的本质是利用图的拓扑结构(节点间连接关系),聚合邻居节点特征并更新自身特征,最终优化下游任务(如节点分类、边预测)。
举例:若节点A(喜欢看书)的邻居B(喜欢画画)、C(喜欢音乐),GCN会将B、C的兴趣特征与A的特征融合,让A的新特征包含“艺术相关”信息,从而更精准地预测A的兴趣类别。

二、核心原理:GCN的特征聚合逻辑(从基础到优化)

1. 第一步:邻接矩阵与自环——避免“丢失自身特征”

(1)邻接矩阵(A)的局限性

邻接矩阵A用于记录节点间的连接关系(A[i][j]=1表示节点i与j相连,0表示不相连),但默认对角线为0(不包含节点自身)。若直接用A聚合特征,会导致节点只参考邻居、忽略自身属性,出现“特征偏差”。

(2)加自环:保留自身信息

为解决上述问题,需构造带自环的邻接矩阵A~=A+I\tilde{A} = A + IA~=A+I(I为单位矩阵,对角线为1,其他为0)。此时每个节点聚合时会先纳入自身特征,再融合邻居特征,避免“只看别人、忘了自己”。

2. 第二步:度矩阵与归一化——解决“特征尺度失衡”

(1)度矩阵(D~\tilde{D}D~)的定义

度矩阵D~\tilde{D}D~是对角矩阵,对角线元素D~[i][i]\tilde{D}[i][i]D~[i][i]表示A~\tilde{A}A~中节点i的“度”(即与节点i相连的节点数,含自环)。例如:节点i在A~\tilde{A}A~中与3个邻居相连+1个自环,则D~[i][i]=4\tilde{D}[i][i]=4D~[i][i]=4

(2)单归一化的不足:只考虑“自身邻居数”

若直接用A~×F\tilde{A} \times FA~×F(F为节点特征矩阵)聚合,邻居多的节点(如度=1000)会因聚合更多特征导致数值偏大,邻居少的节点(如度=2)数值偏小,特征尺度失衡。
此时需用度矩阵倒数左乘A~\tilde{A}A~D~−1×A~\tilde{D}^{-1} \times \tilde{A}D~1×A~),对每行做归一化(本质是求邻居特征的平均值),让不同节点的聚合特征尺度一致。

(3)双归一化:兼顾“自身与邻居的社交圈”

单归一化仅考虑“自身的邻居数”,未考虑“邻居的邻居数”。例如:节点A(度=2)看重邻居B(度=1000),但B的社交圈极广,A对B而言无足轻重——若只做行归一化,A会过度借鉴B的特征,导致预测偏差。

解决方案是双归一化D~−1/2×A~×D~−1/2\tilde{D}^{-1/2} \times \tilde{A} \times \tilde{D}^{-1/2}D~1/2×A~×D~1/2,其中:

  • 左乘D~−1/2\tilde{D}^{-1/2}D~1/2:对A~\tilde{A}A~的行做“根号级归一化”,平衡自身邻居数的影响
  • 右乘D~−1/2\tilde{D}^{-1/2}D~1/2:对A~\tilde{A}A~的列做“根号级归一化”,平衡邻居社交圈的影响

双归一化后,节点间的关系权重会同时考虑双方的连接规模,避免“单方面看重”的偏差。例如:A(度=2)与B(度=1000)的连接权重为12×1×11000≈0.022\frac{1}{\sqrt{2}} \times 1 \times \frac{1}{\sqrt{1000}} \approx 0.0222 1×1×1000 10.022,A仅少量借鉴B的特征,不会被带偏。

3. GCN核心公式:整合全流程

结合“自环+双归一化+特征映射”,GCN的特征更新公式为:
H(l+1)=σ(D~−1/2×A~×D~−1/2×H(l)×W(l))H^{(l + 1)} = \sigma\left( \tilde{D}^{-1/2} \times \tilde{A} \times \tilde{D}^{-1/2} \times H^{(l)} \times W^{(l)} \right)H(l+1)=σ(D~1/2×A~×D~1/2×H(l)×W(l))

  • H(l)H^{(l)}H(l):第l层节点特征矩阵(N×D,N=节点数,D=特征维度)
  • A~=A+I\tilde{A} = A + IA~=A+I:带自环的邻接矩阵
  • D~−1/2×A~×D~−1/2\tilde{D}^{-1/2} \times \tilde{A} \times \tilde{D}^{-1/2}D~1/2×A~×D~1/2:双归一化后的邻接矩阵,平衡特征尺度
  • W(l)W^{(l)}W(l):可学习权重矩阵(全连接层参数),用于调整特征维度
  • σ\sigmaσ:激活函数(如ReLU),引入非线性,提升模型表达能力

4. GCN的输入要求:必须包含两类数据

GCN的输入需同时提供:

  1. 节点特征矩阵(N×D):每个节点的属性信息(如用户的年龄、路口的车流量)
  2. 邻接矩阵(N×N):节点间的连接关系(如用户是否为好友、路口是否连通)

传统机器学习难以处理“节点邻居数不统一”的问题,而GCN通过上述公式自动适配不规则结构,无需手动预处理。

三、模型结构:GCN的多层堆叠与层数限制

1. 基本结构:“输入层→图卷积层→输出层”

GCN的结构遵循“多层堆叠”逻辑,典型流程为:
输入层(特征矩阵F+邻接矩阵A)→ 自环与双归一化)→ 图卷积层1(×W₁)→ ReLU → 图卷积层2(×W₂)→ ReLU → 输出层(Softmax/无激活)

  • 图卷积层:每一层均需重复“自环+双归一化”操作,确保当前层特征尺度稳定
  • 输出层:根据任务调整:
    • 节点分类:用Softmax输出类别概率(如“是否为富二代”的二分类概率)
    • 回归任务(如车流量预测):无激活函数,直接输出连续值

2. 层数限制:为什么GCN不用深层?

(1)核心原因:过度平滑

层数越多,节点特征会逐渐趋同(类似“平均脸”),失去判别性——例如10层后,“贫民窟节点”与“富二代节点”的特征可能均为[0.5,0.5],模型无法区分。

(2)实验与理论支撑
  • 实验结论:多数研究表明,GCN在3-5层时效果最优,超过5层后测试集准确率显著下降(如某数据集3层准确率89%,10层降至75%)
  • 理论依据:“六度分隔理论”——节点获取远距离节点信息只需少数几层(如节点A获取节点F的信息,2层即可覆盖“A→B→F”的关联),层数过多会引入无关信息,导致特征发散。

四、GCN的核心优势:半监督任务适配性

1. 图任务的共性问题:标签稀缺

现实场景中,图数据的标签成本极高(如给每个路口装传感器、给每个用户打标签),多数节点无标签——例如:

  • 社交网络:仅“明星用户”有兴趣标签,普通用户无标签
  • 交通网络:仅“重点路口”有车流量标签,偏远路口无标签
  • 极端场景:100个节点中仅10个有标签(10%监督),甚至更少

传统模型在标签稀缺时性能骤降,而GCN能有效应对半监督任务。

2. 适配逻辑:“帮邻居就是帮自己”

GCN的半监督能力源于“特征传递性”:
若仅节点A(红色)有标签,其邻居B、C(蓝色)无标签——模型训练时仅计算A的预测损失,但A的特征需聚合B、C的特征,因此必须先优化B、C的特征质量。最终,无标签节点的特征通过“邻居关联”间接得到优化,模型仅靠少量标签即可训练。

3. 损失计算策略:只关注有标签节点

训练时无需计算无标签节点的损失,仅针对有标签节点计算(如交叉熵损失)。无标签节点相当于“辅助者”,虽不直接贡献损失,但它们的特征质量直接影响有标签节点的预测结果——这是GCN处理半监督任务的核心技巧。

五、适用场景与优缺点

1. 典型适用场景

GCN在“图结构明确、标签稀缺”的场景中表现突出,常见应用包括:

  • 分子属性预测:判断分子是否有毒/有药用价值(节点=原子,边=化学键,标签少)
  • 社交用户分类:给用户贴兴趣标签(节点=用户,边=好友关系,仅明星用户有标签)
  • 交通流量预测:预测未来车流量(节点=路口,边=道路,偏远路口无标签)

2. 优点

  • 适配不规则图数据:自动处理“节点邻居数不统一”的问题,无需手动预处理
  • 半监督能力强:标签稀缺时仍能有效训练,降低现实场景中的标签成本
  • 层数少、效率高:3-5层即可满足需求,小图任务计算速度快
  • 特征尺度平衡:通过双归一化避免“邻居多的节点特征偏大”的问题
  • 工程落地友好:输入格式简单(特征矩阵+邻接矩阵),无需复杂预处理

3. 缺点

  • 动态图处理困难:邻接矩阵固定,难以实时更新(如社交网络新增好友),需重新计算自环与双归一化
  • 大规模图效率低:10万节点的邻接矩阵为10万×10万,乘法运算易导致内存溢出
  • 仅支持同质图:无法直接处理“用户-物品”等 bipartite 图(节点类型不同),需修改结构(如GAT/GraphSAGE)
  • 过度平滑风险:层数超过5层易导致特征趋同,失去判别性

网站公告

今日签到

点亮在社区的每一天
去签到