跳转至

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