Ch12 图神经网络 · 阶段测试题 (25 题,选择 4 简答 6 编程 5)¶
测试目标: 全面考察 Ch12 五节内容: 几何深度学习(§01) / 图论基础(§02) / GNN 三件套(§03) / 图注意力(§04) / 3D 图(§05) 难度分布: ★ 基础 / ★★ 中等 / ★★★ 拔高 / ⭐⭐⭐⭐ 竞赛
Part A 选择题 (10 题, 每题 3 分)¶
A1 (★★)¶
题目: 图 \(G = (V, E)\) 的邻接矩阵 \(A\) 中, 元素 \(A_{uv}\) 表示: - A) 节点 \(u\) 到 \(v\) 的距离 - B) 节点 \(u\) 与 \(v\) 是否相邻 (1 表示是) - C) 节点 \(u\) 的度 - D) 节点 \(v\) 的邻居数
答案: B
A2 (★★)¶
题目: GCN 中对邻接矩阵做归一化的主要原因是: - A) 减少计算量 - B) 防止度大节点主导聚合 - C) 让梯度更小 - D) 让模型更稀疏
答案: B
A3 (★★★)¶
题目: GIN 表达力最强的原因是: - A) 用了更多参数 - B) 与 Weisfeiler-Lehman 测试等价 - C) 用了注意力机制 - D) 是 Transformer 的特例
答案: B
A4 (★★)¶
题目: GAT 与 GCN 最大的不同是: - A) GAT 用 ReLU, GCN 用 Sigmoid - B) GAT 给不同邻居不同权重 - C) GAT 没有激活函数 - D) GCN 不能处理图
答案: B
A5 (★★★)¶
题目: SE(3) 群相比 SO(3) 多包含了: - A) 反射 - B) 平移 - C) 缩放 - D) 旋转
答案: B
A6 (★★)¶
题目: 谱图卷积基于: - A) 邻接矩阵幂 - B) 拉普拉斯矩阵的特征分解 - C) PageRank 收敛 - D) 节点度排序
答案: B
A7 (★★★)¶
题目: PointNet 的全局特征实现排列不变的关键操作是: - A) Mean Pooling - B) Max Pooling - C) Sum Pooling - D) Softmax
答案: B
A8 (★★)¶
题目: Over-smoothing 现象指: - A) 模型欠拟合 - B) 多层 GNN 后所有节点表示趋同 - C) 梯度爆炸 - D) 学习率过大
答案: B
A9 (★★★)¶
题目: Graphormer 在 GAT 基础上增加了: - A) 更多头 - B) 空间编码 (最短路 bias) 和中心性编码 - C) 残差连接 - D) 批归一化
答案: B
A10 (★★)¶
题目: 在 OGB-mol 数据集上, Equiformer 性能优异的原因是: - A) 模型更大 - B) 满足 E(3) 等变性 - C) 数据增强 - D) 用 Transformer 编码
答案: B
Part B 简答题 (8 题, 每题 5 分)¶
B1 (★★)¶
题目: 解释几何深度学习的"群等变性"为何重要, 给出两个 ML 例子。
要点: - 物理对称性是先验 - 强制等变提升数据效率与鲁棒性 - 例: CNN = 平移等变, GNN = 节点置换等变
B2 (★★★)¶
题目: 推导 GCN 的归一化拉普拉斯 \(\tilde L = I - D^{-1/2} A D^{-1/2}\) 特征值范围。
要点: - \(\tilde L\) 实对称, 特征值实 - 0 ≤ λ ≤ 2 (因为 \(D^{-1/2}AD^{-1/2}\) 谱半径 ≤ 1) - GCN 用此控制梯度
B3 (★★★)¶
题目: 比较 GCN, GraphSAGE, GIN 三种 GNN 的聚合函数和表达力。
要点: - GCN: 加权平均 (归一化求和) - SAGE: MEAN / MAX / LSTM, 可学 - GIN: SUM + MLP, WL 最优 - 表达力: GIN > GCN ≈ SAGE (部分场景)
B4 (★★★)¶
题目: Over-smoothing 是什么? 至少给出 3 种缓解方法。
要点: - 定义: 多层后所有节点表示趋于一致 - 缓解: DropEdge, 残差, PairNorm, 浅层 GCN
B5 (★★★)¶
题目: GAT 的多头注意力有什么好处? K 头如何合并?
要点: - 多个子空间学习不同关系 - 合并: concat 或 average - 类比 Transformer
B6 (★★★)¶
题目: 解释 Graphormer 的空间编码和中心性编码。
要点: - 空间编码: 最短路距离 bias, 加到注意力分数 - 中心性编码: 度数 embedding, 加到节点表征 - 让模型感知图结构信息
B7 (★★★)¶
题目: E(3) 等变网络的设计动机是什么? 如何实现?
要点: - 动机: 物理对称性 (旋转/平移/反射) - 实现: 球谐函数展开, 不可约表示, TFN / Equiformer
B8 (★★★)¶
题目: 比较 PointNet 和 PointNet++ 在点云处理上的差异。
要点: - PointNet: 单层 max, 无局部结构 - PointNet++: 分层 KNN + max, 类似 CNN 金字塔 - PointNet++ 表达力更强
Part C 编程题 (5 题, 每题 10 分)¶
C1 (★★★)¶
题目: 用 PyG 实现 2 层 GCN 在 Cora 数据集节点分类, 报告测试精度。
要点:
- GCNConv(1433 → 64 → 7)
- Adam, lr=0.01
- 期望精度: ~81%
参考:
from torch_geometric.datasets import Planetoid
from torch_geometric.nn import GCNConv
import torch.nn.functional as F
dataset = Planetoid(root='/data/Cora', name='Cora')
data = dataset[0]
class GCN(torch.nn.Module):
def __init__(self):
super().__init__()
self.conv1 = GCNConv(dataset.num_features, 64)
self.conv2 = GCNConv(64, dataset.num_classes)
def forward(self, data):
x, edge_index = data.x, data.edge_index
x = F.relu(self.conv1(x, edge_index))
x = F.dropout(x, training=self.training)
x = self.conv2(x, edge_index)
return F.log_softmax(x, dim=1)
model = GCN()
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)
# train loop...
C2 (★★★)¶
题目: 实现 GAT 节点分类在 Cora, 用 8 头注意力。
要点:
- GATConv(1433 → 8 (per head), 8 heads) → 7
- dropout=0.6
- 期望精度: ~83%
C3 (★★★)¶
题目: 实现 GIN 在 OGB-molhiv 图分类, ROC-AUC 评测。
要点:
- GINConv(MLP)
- global_add_pool READOUT
- 期望 ROC-AUC: ~75-80%
C4 (★★★)¶
题目: 实现 PointNet 在 ModelNet10 点云分类。
要点: - 输入: 1024 点 - MLP + max pool - 期望精度: ~89%
C5 (★★★)¶
题目: 实现 Equiformer (简化版) 在 QM9 分子性质预测。
要点: - 原子 embedding + 球谐 - 等变层 - 期望 MAE: 5-10 meV
Part D 综合题 (2 题, 每题 15 分)¶
D1 (⭐⭐⭐⭐)¶
题目: 设计一个异构 GNN (用户-商品-店铺) 用于推荐系统, 给出模型架构, 损失函数, 评测指标。
参考架构: 1. 输入: 异构邻接矩阵 (3 类型) 2. RGCN 层, 每类型边不同 W_r 3. 注意力聚合不同类型 4. 输出 user/item 嵌入, dot product 5. 损失: BPR (Bayesian Personalized Ranking) 6. 指标: Recall@K, NDCG@K
D2 (⭐⭐⭐⭐)¶
题目: 综述 2024 年最新 Graph Transformer (GraphGPT, GiT, SGFormer) 与传统 GNN 在大规模图上的性能对比。
要点: - 传统 GNN: 邻居采样, 局部注意力 - Graph Transformer: 全连接 + 空间编码, 复杂度高 - 大规模: SGFormer 稀疏注意力 + 线性复杂度 - 趋势: 混合架构
评分标准¶
| 题型 | 题数 | 总分 |
|---|---|---|
| 选择 | 10 | 30 |
| 简答 | 8 | 40 |
| 编程 | 5 | 50 |
| 综合 | 2 | 30 |
| 合计 | 25 | 150 |
自测建议¶
| 目标 | 分数 | 行动 |
|---|---|---|
| 及格 | 75 | 复习 §01-§02, 默写核心公式 |
| 良好 | 100 | 复习 §03 GIN, 跑通编程 C1-C3 |
| 优秀 | 120 | 复习 §05 等变网络, 完成综合 D1-D2 |