Ch12 图神经网络 · 闪卡 (Anki 导出)¶
100 张卡,涵盖 5 节核心。Anki Deck:
Ch12 图神经网络
Section A: 基础¶
Card 1¶
Front: 图 (Graph) 的数学定义? Back: \(G = (V, E)\), 其中 \(V\) 是节点集, \(E \subseteq V \times V\) 是边集。无向图对称, 有向图不要求。
Card 2¶
Front: 邻接矩阵 \(A\) 的元素含义? Back: \(A_{uv} = 1\) 当 \((u,v) \in E\), 否则 \(0\)。对称当无向。
Card 3¶
Front: 节点度 (degree) 定义? Back: \(d_v = \sum_{u \in V} A_{uv}\), 即 \(v\) 的邻居数。
Card 4¶
Front: 拉普拉斯矩阵 \(L\) 定义? Back: \(L = D - A\), 其中 \(D\) 是度矩阵 (对角)。实对称半正定。
Card 5¶
Front: 归一化拉普拉斯? Back: \(\tilde L = I - D^{-1/2} A D^{-1/2}\)。特征值在 \([0, 2]\)。GCN 用这个。
Card 6¶
Front: Weisfeiler-Lehman (WL) 测试定义? Back: 节点邻居集合哈希比较,迭代确定两图是否同构。GIN 与 WL 等价。
Card 7¶
Front: 几何深度学习 5 原则? Back: 1. 几何先验 (对称性) 2. 尺度分离 (粗到细) 3. 群等变性 \(f(Tx) = Tf(x)\) 4. 不变量特征 5. 组合性 (子结构)
Card 8¶
Front: SO(3) 与 SE(3) 区别? Back: SO(3) = 三维旋转群; SE(3) = 旋转 + 平移 (3D 刚体变换群)。
Card 9¶
Front: GCN 用于直推 (transductive) 还是归纳 (inductive)? Back: 直推, 因为聚合依赖全图 \(A\)。GraphSAGE 支持归纳(邻居采样)。
Card 10¶
Front: GNN 的 over-smoothing 指什么? Back: 多层 GNN 后所有节点表示趋同, 失去区分度。
Section B: 公式¶
Card 11¶
Front: 默写 GCN 卷积公式。 Back: \(H^{(l+1)} = \sigma(\tilde D^{-1/2} \tilde A \tilde D^{-1/2} H^{(l)} W^{(l)})\); \(\tilde A = A + I\)。
Card 12¶
Front: 默写 GraphSAGE 聚合公式。 Back: \(h_v^{(l+1)} = W \cdot [\text{CONCAT}(h_v^{(l)}, \text{AGG}(\{h_u^{(l)}\}))]\); AGG ∈ {MEAN, MAX, LSTM}。
Card 13¶
Front: 默写 GIN 公式。 Back: \(h_v^{(l+1)} = \text{MLP}((1+\epsilon) h_v + \sum_{u \in \mathcal{N}(v)} h_u)\)。 \(\epsilon\) 可学习。
Card 14¶
Front: 默写 GAT 注意力系数。 Back: \(\alpha_{ij} = \frac{\exp(\text{LeakyReLU}(\mathbf{a}^\top [Wh_i \| Wh_j]))}{\sum_k \exp(\text{LeakyReLU}(\mathbf{a}^\top [Wh_i \| Wh_k]))}\)。
Card 15¶
Front: 默写 Graphormer 空间编码。 Back: \(\alpha_{ij} = (Q_i K_j^T / \sqrt{d_k}) + b_{\text{spd}(i,j)} + c_{\text{deg}(i)} + c_{\text{deg}(j)}\)。空间偏置 \(b_{\text{spd}}\) + 中心性编码 \(c_{\text{deg}}\)。
Card 16¶
Front: 默写 READOUT 排序不变性。 Back: \(h_G = \sum_{v \in V} h_v^{(L)}\) (SUM) 或 \(h_G = \text{MAX}_{v} h_v^{(L)}\)。排列不变。
Card 17¶
Front: 默写 SchNet 距离基。 Back: \(h_v^{(l+1)} = h_v^{(l)} + \sum_{u \in \mathcal{N}(v)} \text{MLP}(h_u, \|x_v - x_u\|)\)。距离特征。
Card 18¶
Front: 默写 PointNet 全局特征。 Back: \(h_G = \text{MAX}_{v \in V} \text{MLP}(h_v)\)。Max 实现排列不变。
Card 19¶
Front: 默写 PageRank 收敛。 Back: \(p_v^{(t+1)} = \frac{1-d}{N} + d \sum_{u \to v} \frac{p_u^{(t)}}{d_u^{\text{out}}}\); 收敛当 \(\|p^{(t+1)} - p^{(t)}\| < \epsilon\)。
Card 20¶
Front: 默写 PageRank 与 GNN 的关系。 Back: PageRank 是一种特殊 GNN: \(\text{AGG}\) = 邻接归一化求和, \(h_v\) = 标量, 多次迭代 = K 层 GNN。
Section C: 模型对比¶
Card 21¶
Front: GCN vs GraphSAGE vs GIN 三大模型对比? Back: | 维度 | GCN | SAGE | GIN | |------|-----|------|-----| | 聚合 | 加权平均 | MEAN/MAX/LSTM | Sum | | 表达力 | 中 | 中 | 最高 (WL 最优) | | 归纳 | 否 | 是 | 是 | | 应用 | 节点分类 | 大图 | 分子 |
Card 22¶
Front: GAT vs GCN 注意力优势? Back: GAT 给不同邻居不同权重,适应异质图; GCN 等权。
Card 23¶
Front: Graphormer vs GAT 区别? Back: - GAT: 每边系数, 局部注意力 - Graphormer: 全连接 + 空间/中心性编码 (距离 bias, 度编码)
Card 24¶
Front: 谱图卷积与空间图卷积区别? Back: - 谱: 用 Laplacian 特征分解 \(L = U \Lambda U^\top\), 卷积=\(U g(\Lambda) U^\top\) - 空间: 直接在图上聚合, 不用 Laplacian
Card 25¶
Front: PointNet 与 PointNet++ 区别? Back: PointNet 单层 max; PointNet++ 多层 max + KNN 分层聚合, 类似 CNN 金字塔。
Section D: 现实应用¶
Card 26¶
Front: GNN 在推荐系统的核心逻辑? Back: 用户-商品-店铺多类型异构图,RGCN/HAN 编码, 输出嵌入向量, dot product 预测评分。
Card 27¶
Front: GNN 在交通预测如何用? Back: 路网是图,路段节点+路口边。GCN 时空预测车速。
Card 28¶
Front: GNN 在药物发现的应用? Back: 分子图(原子节点+键边)→ GINE 编码 → 性质预测。
Card 29¶
Front: AlphaFold 3 中 GNN 替代 Transformer 的可能? Back: 当前 AlphaFold 3 用 Triangle Attention, GNN (边编码/距离编码) 可替代。
Card 30¶
Front: GPT-4o 等多模态模型有 GNN 元素吗? Back: 当前主要是 Transformer; 多体预测 (分子/蛋白) GNN 重要; R-GCN + LLM 是新兴方向。
Section E: 历史¶
Card 31¶
Front: GCN 起源? Back: Kipf & Welling, ICLR 2017, "Semi-supervised classification with GCN"。
Card 32¶
Front: GraphSAGE 起源? Back: Hamilton, Ying, Leskovec, NeurIPS 2017。
Card 33¶
Front: GAT 起源? Back: Velickovic et al., ICLR 2018, Graph Attention Networks。
Card 34¶
Front: GIN 起源? Back: Xu et al., ICLR 2019, "How powerful are GNNs?"。
Card 35¶
Front: Graphormer 起源? Back: Ying et al., NeurIPS 2021, Microsoft。
Card 36¶
Front: 几何深度学习书作者? Back: Michael Bronstein, Joan Bruna, Taco Cohen, Petar Velickovic。2020 / 2021 在线。
Card 37¶
Front: OGB 数据集? Back: Hu et al., NeurIPS 2021 (Open Graph Benchmark)。OGB-arxiv, OGB-mol, OGB-ppa, OGB-ddi。
Card 38¶
Front: SchNet 起源? Back: Schütt et al., NeurIPS 2017, 分子量子化学性质预测。
Card 39¶
Front: SE(3)-Transformer 起源? Back: Fuchs et al., ICML 2020, 等变图 Transformer。
Card 40¶
Front: Equiformer 起源? Back: Liao et al., ICLR 2023, E(3) 等变 + Transformer, SOTA 于分子性质。
Section F: 工程¶
Card 41¶
Front: PyG (PyTorch Geometric) 适用什么任务? Back: 通用 GNN 框架, 支持 OGB 数据集, 早期 Google 工业部署常选。
Card 42¶
Front: DGL 优势? Back: Deep Graph Library, AWS 维护, 大规模分布式训练好, RL + GNN 集成强。
Card 43¶
Front: OGB 数据集规模? Back: - OGB-arxiv: 169K 节点, 11 类节点分类 - OGB-mol: 130K 分子, ROC-AUC 任务 - OGB-ddi: 药物相互作用预测 - OGB-ppa: 蛋白质关联
Card 44¶
Front: 小图 (Cora) vs 大图 (OGB) 训练差异? Back: 小图全批处理; 大图邻居采样 + mini-batch (GraphSAGE)。
Card 45¶
Front: 异构 GNN 库?
Back:
- PyG: to_heterogeneous
- DGL: heterograph
- GraphScope: 大规模异构图
Card 46¶
Front: Sparse vs Dense GNN 性能比较? Back: Sparse (PyG Scatter) 内存高效, 利用邻接稀疏; Dense 简单但贵。
Card 47¶
Front: GNN 推理延迟? Back: 单图 10-100 ms; 大图 (OGB-mol 分子) <10 ms; Transformer 长链路慢。
Card 48¶
Front: 怎样选择合适的 GNN 模型? Back: - 节点分类:Cora/GAT/GraphSAGE - 图分类:OGB-mol/GIN - 异构:RGCN/HAN - 分子:E(3) 等变 - 大图: GraphSAGE / ClusterGCN
Card 49¶
Front: 如何可视化 GNN 学到的嵌入? Back: t-SNE / UMAP 投影到 2D, 着色 (节点类别 / 标签), 看是否聚类有意义。
Card 50¶
Front: GNN 训练稳定技巧? Back: - BatchNorm / LayerNorm - DropEdge (随机删边) - PairNorm (节点对距离正则) - Residual + 初始表征保持
Section G: 跨章¶
Card 51¶
Front: GNN 与 CNN 的关系? Back: CNN = 图神经网络在网格图(像素)上的特例。CNN 权重共享,GNN 应对任意拓扑。
Card 52¶
Front: GNN 与 Transformer 的关系? Back: Transformer = 全连接图 (完全图) 的图注意力。GNN 是子集。
Card 53¶
Front: 几何深度学习在 NLP 的应用? Back: 句法树是图, 早期 GNN 用句法树处理 NLP; 现代 LLM 不用, 但可解释仍是 GNN 应用。
Card 54¶
Front: GNN 在强化学习的应用? Back: 状态/动作空间是图 (组合动作), 用 GNN 编码状态。NeurIPS 2021 多篇。
Card 55¶
Front: GNN 在 VLA 模型的辅助角色? Back: 物体间 affordance 预测 (Spatial Graph), Pi0 / OpenVLA 不用但研发中。
Card 56¶
Front: Ch14 数据结构与算法对 Ch12 的支持? Back: Dijkstra, BFS, Bellman-Ford 为图的算法理论; GNN 用这些理论。
Card 57¶
Front: Ch08 NeRF 与 Ch12 GNN 在 3D 的差异? Back: NeRF = 神经辐射场 (隐式); GNN = 显式点云/分子图。3D 场景上 NeRF 更好, 分子 GNN 更好。
Card 58¶
Front: Ch03 梯度下降在 GNN 的角色? Back: GNN 通过 SGD 优化参数 W (GCN), 与普通网络相同。RL 时与环境交互采样。
Card 59¶
Front: Ch02 矩阵论与 Ch12 GNN 的关系? Back: 邻接矩阵 A, 度矩阵 D, 拉普拉斯 L = D - A 都是矩阵; 谱图卷积基于特征分解。
Card 60¶
Front: Ch07 词向量与 Ch12 知识图谱的关系? Back: 知识图谱嵌入 (TransE, RotatE) 与词向量同源, GNN 加图结构。
Section H: 错误避免¶
Card 61¶
Front: GCN 与 GAT 最大常见错误? Back: GCN 是 GAT 的特例(等权注意力); GAT 表达能力 ≥ GCN, 但训练时偶尔欠稳定。
Card 62¶
Front: over-smoothing 怎么避免? Back: DropEdge, 残差, PairNorm, 浅层 GCN (<3 层)。
Card 63¶
Front: 节点分类与图分类区别? Back: 节点分类: 预测单个节点; 图分类: 整图;READOUT 后接 MLP。
Card 64¶
Front: 谱图卷积 vs 空间图卷积耗时? Back: 谱 = O(n²) 特征分解 + O(n²d); 空间 = O(E d) 邻接遍历。大图用空间。
Card 65¶
Front: 训练 GNN mini-batch 处理? Back: 不能像 CNN 整图 batched; GraphSAGE 邻居采样到固定大小, ClusterGCN 把大图切 subgraph。
Section I: 进阶¶
Card 66¶
Front: 等变网络为何需要? Back: 物理属性 (旋转/平移不变) 是先验, 模型应保留这一不变性。等变 = 对输入变换的输出变换。
Card 67¶
Front: 不可约表示 (irreducible representation) 在等变 GNN 的角色? Back: 用球谐函数 \(Y_l^m\) 当基,SO(3) 作用规则确定。Equiformer 用此。
Card 68¶
Front: Equiformer 的输入嵌入? Back: 原子位置/类型/电荷 → 球谐展开为 type-0, type-1, type-2 等张量。
Card 69¶
Front: 球谐函数简述? Back: \(Y_l^m(\theta, \phi)\) 是球面上的复正交基, SO(3) 作用规则 \(\to l\) 阶表示。
Card 70¶
Front: 等变 GNN 在 OGB-mol 的性能? Back: TFN → 73%, SchNet → 73%, Equiformer → 80%+。
Section J: 评测代码¶
Card 71¶
Front: PyG GCN Cora 节点分类示例。 Back:
import torch_geometric.nn as nn
from torch_geometric.datasets import Planetoid
dataset = Planetoid(root='/data/Cora', name='Cora')
data = dataset[0] # x, edge_index, y, train_mask
model = nn.GCNConv(dataset.num_features, 64)
model2 = nn.GCNConv(64, dataset.num_classes)
out = model2(model(data.x, data.edge_index).relu())
loss = F.cross_entropy(out[data.train_mask], data.y[data.train_mask])
Card 72¶
Front: GAT Cora 示例。 Back:
from torch_geometric.nn import GATConv
model = GATConv(in, 8, heads=8, dropout=0.6)
out = model(data.x, data.edge_index)
Card 73¶
Front: GIN 分子性质预测。 Back:
from torch_geometric.nn import GINConv
def mlp():
return nn.Sequential(nn.Linear(d, d), nn.ReLU(), nn.Linear(d, d))
model = GINConv(mlp())
h = model(x, edge_index)
h = global_add_pool(h, batch)
Card 74¶
Front: 点云 PointNet 示例。 Back:
import torch
h = torch.randn(1024, 3) # 1024 点云
mlp = nn.Sequential(nn.Linear(3, 64), nn.ReLU(), nn.Linear(64, 1024))
global_feat = mlp(h).max(dim=0)[0] # max pool
Card 75¶
Front: OGB 数据加载。 Back:
from ogb.graphproppred import PygGraphPropPredDataset
dataset = PygGraphPropPredDataset(name='ogbg-molhiv', root='/data/OGB')
split = dataset.get_idx_split()
train = dataset[split['train']]
Section K: 应用案例¶
Card 76¶
Front: GraphSAGE 工业部署案例? Back: Pinterest / Uber Eats 推荐系统, Pinterest 上亿用户/商品图谱。
Card 77¶
Front: 阿里 EHC (Entire Heterogeneous graph Convolution) 应用? Back: 淘宝推荐, 用户-商品-店铺-直播间多类型异构图。
Card 78¶
Front: DeepMind AlphaFold 用了 GNN 吗? Back: AlphaFold 2 用三角注意力 (Triangle Attention), AlphaFold 3 加 GNN/E(3)。
Card 79¶
Front: Meta Chemistry 应用 GNN? Back: Open Catalyst Project (OCP) 用 Equiformer 预测催化反应能量。
Card 80¶
Front: 知识图谱嵌入 TransE 起源? Back: Bordes et al., NeurIPS 2013, "Translating embeddings for modeling multi-relational data"。
Section L: 速算¶
Card 81¶
Front: Cora 数据集节点数? Back: 2708 节点, 5429 边, 7 类节点分类。
Card 82¶
Front: OGB-arxiv 节点数? Back: 169K 节点, 11 类。
Card 83¶
Front: GCN 2 层实际效果? Back: 1 跳 + 2 跳邻居。3 层: 3 跳。>3 层 over-smoothing 风险高。
Card 84¶
Front: GAT 常用头数? Back: 4/8 头, 隐藏维 8/16/32, K=8 总维 64/128/256。
Card 85¶
Front: Graphormer 默认参数? Back: Transformer 12 层, hidden 768, heads 32, OGB-mol Top-1。
Section M: 工程 Tips¶
Card 86¶
Front: GNN 大规模训练常用技术? Back: - GraphSAGE 邻居采样 - Cluster-GCN 子图切分 - Cluster sampling (Cluster-GCN 中 SPEC) - 邻居带权重采样 (GBP)
Card 87¶
Front: GNN 评测指标与训练技巧? Back: - 节点分类: Accuracy - 图分类: ROC-AUC (分子) - 早停 (Early Stopping) - 调 LR 与 Weight Decay
Card 88¶
Front: 异构 GNN 训练注意事项? Back: - 不同节点/边类型用不同 W_r - 元路径采样避免信息流失 - 类不平衡: Weighted sampler
Card 89¶
Front: 工业 GNN 部署? Back: - PyG + Triton 推理 (1-10ms) - CPU 模型量化为 INT8 - 大图用 DGL 分布式训练
Card 90¶
Front: GNN 评估的常见 pitfall? Back: - 同一个 split 训练 vs 验证 vs 测试时, 不能有 data leakage - 节点级 split 需小心 (邻居不能跨 split)
Section N: 综述与未来¶
Card 91¶
Front: GNN 三大未来方向? Back: 1. 几何深度学习 + 等变: E(3) 等变 2. 大规模 GNN: 万亿边, Cluster-GCN + 采样 3. GNN + LLM: 知识图谱问答, R-GCN 编码 + LLM 推理
Card 92¶
Front: GNN 三大局限? Back: 1. 长距离依赖 (Deep GNN over-smooth) 2. 数据稀缺 (分子图) 3. 计算复杂度 (全图注意力 \(O(N^2)\))
Card 93¶
Front: Graph Transformer 会取代 GNN 吗? Back: 当前两类共存: Graphormer 在大图 SOTA; GIN 在小图更稳。趋势是混合。
Card 94¶
Front: 几何深度学习的"群等变性"为何关键? Back: 物理对称性是先验 (旋转不改变图像语义), 强制等变提升数据效率 + 鲁棒性。
Card 95¶
Front: GNN 与新型神经网络范式? Back: - Mamba: 长序列替代 Transformer - Diffusion: 图生成 - LLM: 替代 GNN 在简单任务
Card 96¶
Front: GNN 在金融的应用? Back: 反欺诈 (用户-设备-IP 异构图), 反洗钱 (交易图谱), 风险传染 (公司股东图)。
Card 97¶
Front: GNN 在生命科学的应用? Back: - 蛋白结构 (AlphaFold) - 药物-靶点相互作用 - 单细胞发育轨迹
Card 98¶
Front: Graph Few-shot Learning? Back: 给定少量节点标签预测新类节点。代表: GPNN, Meta-GNN。
Card 99¶
Front: GNN 与 LLM 知识图谱哪个是趋势? Back: 短期 LLM 编码文本优势; 长期 GNN 编码图结构不可替代 (知识图谱/分子)。
Card 100¶
Front: 一句话总结 Ch12。 Back: 图神经网络 = 几何先验 + 群等变 + 邻居聚合, 是 CNN 在非欧数据 (图/分子/3D 点云) 上的推广。Ch12 覆盖: GDL 几何先验 (§01)、图论基础 (§02)、GNN 三件套 GCN/SAGE/GIN (§03)、GAT 注意力 + Graphormer (§04)、3D 等变图 (§05) — 是机器学习"非欧数据"的范式。