GNN 赛道¶
赛道概览
11 个 Lesson · 预计 2-3 周 · 图分类、节点分类、图嵌入与异构图推荐
GNN 赛道是 DL-Hub 最丰富的赛道之一,从 toy 图分类入门,逐步深入到 Cora 节点分类、图嵌入算法,最终涵盖异构图和工业级图推荐。11 个 Lesson 按三大主题分组,结构清晰。
学习路径¶
flowchart TD
subgraph GC["Graph Classification 图分类"]
L01["01 GCN\n图分类"] --> L02["02 GIN\n图分类"]
L02 --> L03["03 GAT\n图分类"]
end
subgraph NC["Node Classification 节点分类"]
L04["04 GCN Cora\n节点分类"] --> L05["05 Label Propagation\nCora"]
L05 --> L06["06 GraphSAGE\nCora"]
end
subgraph EA["Embedding & Advanced 嵌入与进阶"]
L07["07 SDNE\n节点嵌入"] --> L08["08 LINE\n节点嵌入"]
L08 --> L09["09 Metapath2Vec\n异构图嵌入"]
L09 --> L10["10 PinSAGE\n推荐"]
L10 --> L11["11 R-GCN\n关系图节点分类"]
end
GC --> NC --> EA
style L01 fill:#2563eb,color:#fff
style L02 fill:#2563eb,color:#fff
style L03 fill:#2563eb,color:#fff
style L04 fill:#059669,color:#fff
style L05 fill:#059669,color:#fff
style L06 fill:#059669,color:#fff
style L07 fill:#d97706,color:#fff
style L08 fill:#d97706,color:#fff
style L09 fill:#7c3aed,color:#fff
style L10 fill:#dc2626,color:#fff
style L11 fill:#7c3aed,color:#fff 颜色说明
图分类 ·
节点分类 ·
图嵌入 ·
异构图 ·
推荐系统
先修知识¶
| 领域 | 要求 |
|---|---|
| DL-Hub | 完成 Foundations 赛道 |
| 图论 | 邻接矩阵、节点度、连通分量等基本概念 |
| 线性代数 | 矩阵乘法、特征值分解(谱方法需要) |
课程列表¶
Graph Classification 图分类¶
| 序号 | 项目 | 代码文档 | 核心概念 |
|---|---|---|---|
| 01 | GCN 图分类 | toy_graph_classification | 邻接矩阵, 消息传递 |
| 02 | GIN 图分类 | gin_toy_graph_classification | WL Test, 图同构 |
| 03 | GAT 图分类 | gat_toy_graph_classification | 注意力系数, 多头注意力 |
从 GCN 到 GAT
这三个 Lesson 展示了 GNN 消息传递范式的演进:
- GCN:用对称归一化邻接矩阵聚合邻居特征
- GIN:引入 MLP 和求和聚合,达到 WL Test 同构判别能力
- GAT:为不同邻居分配不同注意力权重,实现自适应聚合
Node Classification 节点分类¶
| 序号 | 项目 | 代码文档 | 核心概念 |
|---|---|---|---|
| 04 | GCN Cora 节点分类 | cora_node_classification_gcn | 半监督学习, 谱方法 |
| 05 | Label Propagation Cora | label_propagation_cora | 经典基线, 无参数方法 |
| 06 | GraphSAGE Cora | graphsage_cora | 采样聚合, 归纳学习 |
Cora 数据集系列
Cora 是图神经网络领域最经典的引文网络数据集(2708 节点 / 7 类),这三个 Lesson 在同一数据集上对比不同方法:
- GCN:全图谱卷积,转导学习
- Label Propagation:无参数标签传播基线
- GraphSAGE:小批量采样 + 聚合,归纳学习
Embedding & Advanced 嵌入与进阶¶
| 序号 | 项目 | 代码文档 | 核心概念 |
|---|---|---|---|
| 07 | SDNE 节点嵌入 | sdne_karate_embedding | 自编码器, 一阶/二阶近似 |
| 08 | LINE 节点嵌入 | line_karate_embedding | 大规模网络, 边采样 |
| 09 | Metapath2Vec 异构图嵌入 | metapath2vec_toy_hetero_embedding | 元路径, 异构随机游走 |
| 10 | PinSAGE 推荐 | pinsage_toy_recommender | 随机游走采样, 工业级图推荐 |
| 11 | R-GCN 关系图节点分类 | rgcn_toy_node_classification | 关系特定权重, 知识图谱 |
运行示例¶
GNN 技术演进¶
timeline
title GNN 核心方法演进
2016 : GCN (Kipf & Welling)
: 谱图卷积的一阶近似
2017 : GraphSAGE (Hamilton et al.)
: 归纳学习 + 采样聚合
: GAT (Velickovic et al.)
: 注意力机制
2019 : GIN (Xu et al.)
: WL Test 等价图同构网络
2018 : PinSAGE (Ying et al.)
: Pinterest 工业级图推荐
: R-GCN (Schlichtkrull et al.)
: 关系图卷积网络 下一步¶
完成 GNN 赛道后,你可以继续:
| 推荐方向 | 说明 |
|---|---|
| 将图结构思想应用于 3D 点云 | |
| 学习 VAE 和 GAN 生成模型 | |
| 多模态融合中的图结构应用 |