论文学习:2.Semi-Supervised Classification with Graph Convolutional Networks(1)
导师推荐的计算机cv方面的文章培养兴趣并且以讲述的方式最高效率的学习知识。这篇论文是图神经网络领域的开山之作其思想简洁、优美且强大。1.本文核心关注知识点1. 1基础图数据相关底层知识点首先我们要明白普通 CNN 处理的是图片这种规整网格数据而本文处理图结构数据图由节点、边两个基础单元构成比如论文引用网络里每一篇论文是节点论文之间的引用关系是边知识图谱里实体是节点、实体关系是边无向图代表双向关系A 引用 B 等价 B 引用 A邻接矩阵 A 用来存储整张图的连接关系矩阵中 A [i][j]1 代表 i、j 两个节点存在边0 代表无连接度矩阵 D 是对角矩阵对角数字代表对应节点相连的邻居总数这两个矩阵是整篇论文所有公式的基础载体所有卷积计算都围绕 A 和 D 展开。 其次是图学习两大经典任务半监督节点分类也是本文核心任务现实场景里绝大多数图只有极少节点拥有类别标签比如上万篇论文里仅几十篇人工标注领域剩下全部无标注传统监督学习无法使用传统半监督图方法依靠图拉普拉斯正则约束强制相邻节点标签相近但这个假设存在巨大缺陷图的边不一定代表节点相似比如知识图谱里 “人 - 购买 - 商品” 这条边只代表关系不代表人和商品特征接近这是论文开篇点出的行业固有矛盾也是本文研究出发点。 然后区分两大图卷积流派谱域图卷积、空域图卷积本文是一阶近似谱域 GCN谱域基于图傅里叶变换、拉普拉斯矩阵特征分解计算卷积原始谱卷积计算量极大无法落地大规模图空域直接在节点邻居上聚合特征本文用数学推导把复杂谱卷积简化为空域可执行的传播公式打通谱理论与工程落地之间的鸿沟切比雪夫多项式是原始谱卷积的近似工具用来降低特征分解开销但高阶多项式依然计算繁重论文把多项式阶数固定为 1大幅简化运算。 还有一系列配套基础概念自环就是节点自己和自己相连作用是保留节点自身原始特征避免聚合邻居后丢失自身信息归一化操作是为了解决节点度数差距过大带来的数值不稳定问题社交网络里有的节点有上千好友有的只有两三个直接聚合会让高度数节点特征权重无限放大激活函数 ReLU、交叉熵损失、Dropout 正则、全批量梯度下降、t-SNE 可视化、WL 魏斯费勒 - 莱曼算法、空手道俱乐部小图数据集、引文标准数据集 Cora/Citeseer/Pubmed、知识图谱 NELL 数据集全部是论文实验与理论证明用到的核心知识点其中 WL 算法是传统图同构算法论文在附录证明 GCN 是可微分、带可学习参数的 WL 算法泛化版本这是非常关键的理论关联知识点。1.2 传统图半监督学习缺陷类知识点第一类传统方法基于图拉普拉斯显式正则的半监督算法代表有标签传播 LP、流形正则 ManiReg这类方法在损失函数额外添加正则项强制相连节点特征尽可能接近核心假设是 “相邻节点同类”但现实大量图结构违背该假设强行约束会严重限制模型表达能力同时正则超参 λ 需要反复调优泛化能力差第二类传统方法基于随机游走的图嵌入算法 DeepWalk、node2vec、Planetoid这类采用多阶段流水线先随机游走采样路径再单独训练嵌入分步优化无法联合学习标签与拓扑步骤繁琐、训练速度慢Planetoid 虽然融入标签但依然没有端到端利用图邻接矩阵做特征聚合第三类早期图神经网络老式 GNN 依靠循环迭代直至特征收敛计算低效部分模型为不同度数单独设置权重节点度数分布差异大时无法扩展还有扩散卷积复杂度 O (N²)百万节点图完全无法运行。1.3 创新理论知识点端到端融合拓扑与节点特征模型输入同时包含节点原始特征矩阵 X 和图邻接矩阵 A不再单独设置正则项依靠多层网络逐层传播标签梯度让有标签节点的类别信息顺着边传递给无标注节点天然实现半监督学习抛弃传统方法额外约束的设计一阶切比雪夫近似简化谱卷积将复杂 K 阶多项式压缩至 K1再近似拉普拉斯最大特征值 λmax≈2合并两个可学习参数为单一参数推导出极简传播公式同时提出重归一化技巧解决多层堆叠梯度爆炸、消失问题对称自环归一化先给邻接矩阵加自环再基于新增自环后的度矩阵做对称归一化平衡自身特征与邻居特征权重完美适配度数差异巨大的真实图GCN 与 WL 算法等价映射传统 WL 依靠哈希离散更新节点颜色GCN 用可微矩阵运算、可训练权重替代哈希成为深度学习版本的图着色算法哪怕随机初始化权重也能提取图社区特征模型局限性配套知识点原生 GCN 只适配无向图、不原生支持边特征全批量训练内存随边数线性上涨深层 GCN7 层以上极易过拟合、梯度流通受阻自环与邻居权重固定相等部分场景需要引入可学习 λ 调整自环权重这些都是论文讨论部分完整阐述的待优化方向。1.4 实验与工程知识点标准图数据集划分Cora、Citeseer、Pubmed 三类引文图少量标注节点用于训练大量无标注参与传播NELL 知识图谱每类仅 1 个标注样本极端少标签场景验证模型鲁棒性两层 GCN 标准架构输入层 - 隐层 ReLU - 输出层 Softmax仅在标注节点上计算交叉熵损失无标注节点只参与特征聚合、不参与损失计算稀疏矩阵加速邻接矩阵采用稀疏存储矩阵乘法复杂度仅 O (|E|FC)和图边数量线性相关GPU 稀疏算子大幅提速消融实验核心变量掩码比例本文无掩码对应归一化方式、解码器层数这类消融逻辑迁移、网络层数、残差连接有无、归一化公式对比、训练硬件 CPU/GPU 速度差异评估指标测试集分类准确率、单轮训练时钟耗时、随机划分数据集的均值与标准差用来证明模型稳定优于所有基线。2.论文完整技术改进分四大维度逐条对比旧方案长段对比总结小白清晰看懂提升点2.1对比传统图正则半监督方法LP/ManiReg/SemiEmb的颠覆性改进传统正则方法把图拓扑当成额外惩罚项特征学习和图平滑分开优化模型不能自主学习图里复杂关联关系只能强制相邻节点相似极大压缩模型拟合空间而本文 GCN 直接将邻接矩阵嵌入网络前向传播全过程拓扑结构和节点原始特征同步融合训练不存在额外正则约束不再依赖 “邻接节点同标签” 的强错误假设面对知识图谱、异构引用网络这类边不代表相似的数据依旧能精准提取特征同时不需要人工调节正则权重 λ减少大量调参成本另外传统方法无法搭建多层非线性模型只能浅层线性平滑GCN 依靠多层叠加叠加高阶邻居信息两层 GCN 就能聚合二阶邻域特征捕捉远距离节点关联在 Cora 数据集上相比标签传播 LP 准确率直接提升 13.5 个百分点性能差距十分显著。2.2对比 DeepWalk/node2vec/Planetoid 随机游走嵌入类方法的核心改进所有随机游走嵌入方法都属于分阶段流水线第一步随机游走采样路径、第二步训练嵌入、第三步分类三个阶段独立优化标签信息无法反向传播修改拓扑嵌入信息传递存在隔断训练流程冗长、收敛速度慢Planetoid 最优模型在 Cora 收敛需要 13 秒本文两层 GCN 仅需 4 秒速度提升三倍以上而 GCN 实现完整端到端一体化训练输入特征与图拓扑共同参与梯度更新标注节点的分类损失能够顺着每一层卷积传递到所有邻居节点无标注节点自动吸收周边类别信息不需要额外采样游走序列省去大量预处理开销同时嵌入特征专门适配下游分类任务不是通用无差别嵌入分类精度全面超越 DeepWalk、PlanetoidNELL 知识图谱数据集上高出 4.1 个百分点在超稀疏标注场景优势进一步放大。2.3对比原始谱域卷积Bruna、Defferrard与高阶切比雪夫模型的轻量化改进最原始谱卷积需要对拉普拉斯矩阵做特征分解复杂度 O (N²)上万节点图算力直接爆炸Defferrard 提出 K 阶切比雪夫多项式近似降低开销但 K 越大计算越繁重多层堆叠后参数量、运算量持续上涨很难训练大容量深层图模型本文创新性固定多项式阶数 K1仅保留一阶线性项再通过数学近似合并两个参数为单一共享权重把复杂卷积公式简化为一次稀疏矩阵乘法计算复杂度直接降低至线性 O (|E|)和图边数量成正比百万级图也能在 GPU 正常训练同时提出重归一化技巧解决一阶近似后多层网络梯度爆炸、数值溢出的问题原始不加修正的归一化方案深层训练极易失效对称归一化同时平衡节点自身自环与邻居特征权重兼顾稳定性与表征能力消融实验证明该归一化方案是所有传播规则里精度最高的选择舍弃该技巧会直接下降 2~5 个百分点准确率。2.4对比早期循环式图神经网络、度数专属权重 GNN 的工程扩展改进老式循环 GNN 需要反复迭代更新节点表征直至收敛前向传播循环次数不可控训练效率极低Duvenaud 等模型为每一种节点度数单独设置权重现实网络节点度数分布跨度极大社交网络存在数万度枢纽节点参数量爆炸无法扩展本文 GCN 每层仅设置一组全局共享权重矩阵完全不区分节点度数依靠对称归一化自适应平衡高低度数节点的特征贡献参数量极小、扩展性极强不管是几千节点的 Cora 还是六万多节点的 NELL 知识图谱都能稳定训练同时原生支持稀疏邻接矩阵运算不需要把稀疏图转为稠密矩阵占用海量显存CPU、GPU 均可运行随机大图实验证明边数达到百万级别时 GPU 依旧能快速完成单轮训练CPU 虽然慢但不会直接内存溢出大幅拓宽图模型硬件适配范围。2.5深层网络与训练策略改进原生多层 GCN 层数超过 7 层会出现严重过拟合、梯度衰减因为每层扩大一阶感受野深层节点会吸收全图冗余信息论文引入残差连接变体 GCN将每层输入直接加到输出缓解深层梯度消失5 折交叉验证证明残差结构大幅提升深层模型测试集精度训练层面采用全批量梯度下降配合 Dropout、L2 正则仅在标注节点计算交叉熵无标注节点不参与损失计算只作为特征传递载体充分利用海量无标注数据不需要为无标注节点设计额外损失函数训练目标简洁高效调参门槛更低。3.GCN 完整整体流程分预处理、前向传播、损失计算、反向更新、推理五大阶段整体流程分为训练前图预处理、多层 GCN 前向特征聚合、半监督损失计算、梯度反向传播更新权重、训练完成节点分类推理五个完整连续环节每一步数据从节点特征与邻接矩阵输入最终输出所有节点类别概率全程依靠图拓扑传递标签信息完美适配少量标注的半监督场景。3.1训练前置图预处理一次性执行所有轮次复用拿到原始图数据后首先构建二元对称邻接矩阵 A矩阵中 A [i][j]1 代表节点 i 和 j 存在无向边不存在则为 0随后生成单位矩阵 I_N做自环扩充得到给每一个节点增加自身连接保证后续聚合特征时不会丢失节点原始信息接着计算新增自环后的度矩阵是对角矩阵对角数值等于对应行所有数字求和也就是节点自身加邻居的总连接数最后计算核心归一化矩阵这一步对称归一化会提前完成并保存整个训练过程不需要重复计算大幅节省每轮前向传播的算力开销同时加载 N 行 C 列节点特征矩阵 XN 是节点总数C 是单个节点原始特征维度比如 Cora 每篇论文 1433 维词袋特征X 矩阵每行对应一个节点原始属性作为网络初始输入。3.2多层 GCN 前向特征聚合以论文标准两层 GCN 为例工业最通用结构3.3半监督交叉熵损失计算仅使用少量标注节点核心半监督逻辑3.4梯度反向传播与权重更新全批量梯度下降使用 Adam 优化器对损失函数做反向传播梯度沿着两层权重逐层回传更新所有可训练参数每一轮训练输入整张完整图所有节点全批量不需要拆分子图 mini-batch设置早停策略持续监测验证集损失如果连续 10 个 epoch 验证损失不再下降直接终止训练避免过拟合权重采用 GlorotBengio 初始化方式保证训练初期梯度数值稳定输入特征矩阵 X 预先逐行归一化进一步提升收敛速度与最终精度重复前向传播 - 损失计算 - 反向更新完整循环最多 200 轮直到触发早停或达到最大迭代次数。3.5训练完成推理与节点表征使用4.核心技术要领由底层数学到工程落地4.1-要领 1对称重归一化邻接矩阵是整篇 GCN 最根基的核心创新解决了图模型两大致命难题绝大多数初学者只会记住两层网络的公式却忽略归一化才是 GCN 能够稳定训练、适配任意度数图的根本传统不加自环的邻接矩阵 A 聚合时会完全丢弃节点自身特征节点仅依靠邻居信息更新自身原始属性彻底丢失模型无法学习节点独有的特征单纯添加自环\(\tilde{A}AI\)后又会出现数值失衡度数上千的枢纽节点在矩阵乘法中权重无限放大低度数节点特征被完全淹没模型偏向高连接节点产生严重偏置论文设计的对称归一化左右同时乘以度矩阵 - 1/2 次方相当于给每一条连接包括自环做自适应权重缩放高度数节点的每条边权重自动缩小低度数节点边权重适度放大天然平衡自身特征与所有邻居特征的贡献比例同时这个归一化修正了一阶切比雪夫近似带来的数值缺陷原始一阶公式矩阵特征值落在 0~2 区间多层连续矩阵乘法会不断放大数值出现梯度爆炸或者梯度消失重归一化压缩特征值分布多层堆叠也能保持数值稳定消融实验对比多种归一化方案后只有这套公式同时实现最高分类准确率、最低训练数值误差是整套 GCN 架构不可替换的底层基础所有后续图神经网络GraphSAGE、GAT都沿用这套归一化思想作为基准操作。4.2-要领 2一阶切比雪夫多项式近似是 GCN 轻量化的理论源头平衡谱卷积理论完备性与工程落地算力限制原始谱域图卷积依托图傅里叶变换需要分解拉普拉斯特征向量矩阵 U复杂度 O (N²)只要节点数量过万普通 GPU 完全无法承载Defferrard 提出 K 阶切比雪夫多项式近似替代特征分解把复杂度降到线性但 K 取值越大参数量、计算量成倍上涨深层网络几乎无法搭建论文抓住关键洞察图卷积多层堆叠本身就可以逐步捕捉高阶邻居信息单层不需要设计复杂高阶滤波器直接固定 K1 仅保留一阶线性项大幅减少每层运算量再通过合理近似拉普拉斯最大特征值等于 2将公式内两个独立可学习参数合并为单一共享权重进一步简化矩阵运算形式不再需要存储多组多项式系数这套理论简化没有大幅损失模型表征能力多层叠加后依旧能捕捉远距离节点关联两层 GCN 等效融合一阶、二阶邻居全部信息三层可覆盖三阶邻域用极简单层运算叠加换取高阶感受野完美解决传统谱卷积算力过高、无法大规模落地的痛点让图卷积从理论数学推导变成可以在普通 GPU 快速运行的实用算法也是 GCN 能够普及、成为入门基准图模型的根本原因。4.3-要领 3半监督训练的独特损失设计仅标注节点计算交叉熵充分释放无标注图拓扑的学习价值传统半监督算法要么给无标注节点设计额外重构损失要么强制平滑正则增加复杂超参调优工作而 GCN 巧妙利用图拓扑的信息传递特性仅在少量有标签节点计算分类损失反向传播时梯度会沿着每层的归一化邻接矩阵传递给该节点所有一阶邻居再经过下一层卷积继续扩散到二阶、三阶远距离节点整张图所有无标注节点自动接收周边标注节点的类别梯度信号不需要给无标注设置任何监督目标天然实现标签平滑传播这种设计极大降低标注数据依赖Cora 仅 5.2% 节点有标签、Pubmed 仅 0.3% 标注样本模型依旧能学到全局区分特征对比 ICA 迭代分类算法只能传递标签、无法同步更新特征GCN 每一层同时融合拓扑与原始属性特征和标签同步传播表征质量大幅提升同时损失函数简洁通用直接复用图像分类成熟的交叉熵损失不需要自定义图专属损失函数新手复现代码难度极低不需要额外设计无监督辅助任务一套损失同时完成特征学习与分类训练。4.4-要领 4两层浅层 GCN 是通用最优模型深层网络存在固有性能衰减缺陷残差连接仅能小幅缓解论文通过完整层数消融实验给出明确结论在引文、知识图谱标准数据集上2~3 层 GCN 测试准确率达到峰值层数持续增加到 4 层以上精度缓慢下滑超过 7 层后过拟合、梯度衰减问题严重核心内在逻辑是每一层 GCN 的感受野扩大一阶10 层 GCN 单个节点会聚合整张图几乎所有节点特征大量无关远距离节点信息混入稀释局部有效拓扑关联模型记住训练集噪声而非通用特征出现严重过拟合即便引入残差连接把每层输入直接叠加到输出缓解梯度消失深层模型的测试精度依旧无法超越 2~3 层浅层网络残差仅提升训练集拟合效果泛化增益有限工业落地、学术 baseline 全部默认采用两层 GCN兼顾训练速度、分类精度、显存占用不需要搭建复杂深层图卷积小白入门直接使用两层架构就能复现论文 SOTA 结果不用调试复杂深层超参大幅降低入门试错成本。4.5-要领 5稀疏矩阵运算适配全批量训练平衡训练速度与内存开销适配中小规模完整图GCN 前向传播核心运算是稀疏邻接矩阵乘稠密特征矩阵邻接矩阵 A 绝大多数位置都是 0采用稀疏存储格式可以省去大量无效 0 值乘法计算复杂度严格等于图边数量 × 特征维度 × 隐层维度完全线性增长不会随节点数量平方爆炸论文采用全批量梯度下降每轮加载整张图所有节点不需要采样子图、构建邻居采样器代码实现极简不需要复杂 mini-batch 邻居采样逻辑对于 Cora、Citeseer 这类数万节点以内的图单轮训练速度远超随机游走、迭代分类等基线唯一局限是超大图千万节点以上整张图无法存入 GPU 显存论文明确提出小批量邻居采样是未来拓展方向但对于绝大多数学术标准数据集、中小业务图全批量稀疏运算都是最优高效方案CPU 也能完成训练只是 GPU 加速提升 30~100 倍单轮速度普通实验室硬件就能复现全部实验结果没有高端算力门槛。4.6-要领 6GCN 等价可微分 WL 算法从图同构理论解释模型特征提取底层逻辑不理解为什么 GCN 聚合邻居就能区分不同类别节点附录的 WL 算法类比给出底层理论解释传统 WL 算法通过哈希聚合邻居离散标签更新节点颜色只能处理离散输入、不可微分、无法用梯度下降训练GCN 把哈希函数替换为带可学习权重矩阵的线性变换 非线性激活离散着色升级为连续可微向量表征归一化系数对应 WL 算法的邻居加权系数完整保留 “聚合邻居更新自身表征” 的核心逻辑同时拥有深度学习可训练、可叠加多层的优势哪怕不做任何监督训练随机初始化权重的 GCN 也能把图内不同社区节点分出差异化嵌入空手道俱乐部 34 节点小图可视化直观验证这一点这说明 GCN 天然具备挖掘图内部社区、拓扑结构的能力半监督标签只是进一步对齐表征与分类目标模型本身自带无监督图结构提取能力这也是 GCN 泛化能力强的隐藏底层原因。4.7综合总结综合全部核心技术要领来看Kipf 版简化 GCN 整套体系以一阶切比雪夫谱卷积数学近似为理论根基以对称自环重归一化邻接矩阵为工程核心操作搭配两层浅层网络架构、仅标注节点参与的半监督交叉熵损失、稀疏矩阵全批量训练四大配套设计一次性解决传统图半监督方法强假设限制、随机游走流水线繁琐、原始谱卷积算力爆炸、老式 GNN 无法扩展多度数图四大行业痛点同时借助 WL 算法的理论支撑解释模型拓扑提取能力整体框架数学推导严谨、代码实现极简、算力开销线性可控对新手极度友好不需要复杂图论、谱分析基础也能复现运行模型存在原生仅支持无向图、无法处理边特征、超大图全批量显存不足、深层易过拟合等明确局限性但在中小规模稀疏标注图节点分类任务上实现全面 SOTA 性能成为后续所有图神经网络GAT、GraphSAGE、GIN的基准对比模型奠定空域简化谱图卷积的研究路线是图深度学习入门必读里程碑论文所有设计层层相互配合归一化、一阶近似、浅层架构、半监督损失缺一不可单独使用任意一项设计都无法达到论文兼顾速度、精度、泛化能力的完整效果。