想象你搬进一个新社区,每家每户门前都有小路和邻居相连。你想快速了解这片社区的风土人情,最聪明的做法不是挨家挨户查户口,而是先拜访几位关键邻居,再从他们口中打听他们邻居的情况——一圈聊下来,每家每户的轮廓就浮现了。如果再多聊几轮,整个社区的消息就像涟漪一样一圈圈传开。这正是GCN(图卷积网络)的灵感:把图像卷积那套“滑窗取平均”的招数,改造成“谁和谁是邻居”的图结构上,让每个节点通过反复聚合邻居信息,学出自己的一份“社区画像”。这篇文章将带你从一张图、几条公式,看懂这场图上的卷积革命。

岗位关联

掌握GCN,就拿到了图神经网络家族的基石。无论做社交推荐、分子筛选还是知识图谱推理,你都能用“邻居消息聚合”的思维,让模型在关系网中自动提取关键结构信号。

目录
  1. 可视化演示
  2. 图的直觉
  3. 谱域基础
  4. 谱图卷积
  5. 一阶近似
  6. 传播规则
  7. 训练实现
  8. 变体局限
  9. 应用落地
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

展示图结构上的特征聚合传播、谱域到空域的推导路径、以及节点分类多模型精度对比。

本节配有交互动效(进入视口后自动加载,约 3KB)。

图特征传播 GCN通过聚合邻居特征更新节点表示 每层传播扩大感受野到k跳邻居 H⁽ˡ⁺¹⁾=σ(D̄⁻¹ᐟ²ĀD̄⁻¹ᐟ²H⁽ˡ⁾W⁽ˡ⁾) 图卷积将CNN卷积推广到非欧图数据

图的直觉

你见过小区楼下的社区关系图吗?每个小圆点代表一户人家,圆点之间的连线代表“咱们是邻居”。这张图,就是 GCN 眼里的世界。在图像时代,CNN 看照片就像隔着方格窗户看世界——每个像素身边整整齐齐围着八个邻居,所以卷积核能做成固定大小的窗口,滑到哪儿都一样。可社区关系图里,谁家邻居多、谁家邻居少,全凭缘分,找不到一扇能到处套用的方格窗。

所以 GCN 要做的第一件事,就是把“邻居”这件事用数学记下来。记下来的工具叫邻接矩阵 A。它就像一张门牌联络表:如果第 i 户和第 j 户之间有小路直通,表上就记 1,否则记 0。别小看这张表,后面的谱分析、邻居聚合,全靠从它身上读取谁和谁认识。

这张联络表把社区结构“数字化”了。有了它,我们才能用线性代数刻画“谁影响谁”——下一节,我们给这张表做个体检。

Aij={1,(i,j)∈E0,otherwiseA_{ij} = \begin{cases} 1, & (i,j) \in E \\ 0, & \text{otherwise} \end{cases}
  1. 下标 i 和 j表示图中两个节点(两户人家)的编号,范围是 1 到 N。i,j∈{1,2,…,N}i, j \in \{1, 2, \dots, N\}
  2. 判定条件 (i,j) ∈ E判断这两户之间是否直接相连,E 是全部小路的集合。if i and j are connected\text{if } i \text{ and } j \text{ are connected}
  3. 填 1 或 0连通记 1,不连通记 0。otherwise 0\text{otherwise } 0

谱域基础

社区民警想给整个社区做体检,光有一张联络表远远不够,还得知道每户人家和邻居之间“差异有多大”。拉普拉斯矩阵 L 就是这份体检报告——它的每一个数字都在回答:“我和邻居们比,差了多少?”数学上,L 由度矩阵 D 减去邻接矩阵 A 得到。度矩阵 D 是个对角阵,对角线上写着每户人家的邻居数量;减去 A 之后,对角线上是“我有几个邻居”,非对角线上的 -1 则在说“我们两家之间有联系”。

有了 L,就能对它做特征分解。特征分解会得到一组特征值和特征向量,它们描述了图上的“振动模式”:变化平缓的区域是低频,跳跃剧烈的区域是高频。就像社区里有的地方大家脾气相似(低频),有的地方几户人家性格迥异(高频)。这些频率成分,正是下一节构造卷积滤波器的原料。

拉普拉斯矩阵把“谁是谁的邻居”升级成了“邻居之间的差异有多大”。这份体检报告进入频谱世界后,图上的卷积就有了理论根基。

L=D−AL = D - A
  1. 度矩阵 D对角线上的数值是每个节点的度数,也就是邻居的数量。Dii=∑jAijD_{ii} = \sum_j A_{ij}
  2. 邻接矩阵 A记录每对节点是否相连的“门牌联络表”。Aij=1  ⟺  (i,j)∈EA_{ij} = 1 \iff (i,j) \in E
  3. 相减对角线变成“自己的度数”,有边相连的节点对记 -1。Lij=Dii−AijL_{ij} = D_{ii} - A_{ij}

谱图卷积

社区里要发布一条重要通知,聪明的居委会不会拿着喇叭挨家挨户吼,而是先分析整个社区的“舆论频率”——哪些地方想法统一,哪些地方众说纷纭——然后按频率分别处理,再把结果合成回来。谱图卷积就是这个思路:利用图傅里叶变换,把节点上的特征投影到频率域,用滤波器缩放各频率成分,最后逆变换回节点域。

具体来说,设图的拉普拉斯矩阵特征分解为 L = UΛUᵀ,其中 U 的列向量就是图上的“频率基”。我们把节点特征 x 投影到这些基上,在频率域用可学习滤波器 gθ 做逐分量缩放,再投影回来。整个过程写成公式就是:

谱图卷积在理论上很漂亮,但它需要做矩阵特征分解——社区规模一大,特征分解的成本高得吓人。因此实战中的 GCN 走了一条捷径:一阶近似。

gθ∗x=UgθUTxg_\theta * x = U g_\theta U^T x
  1. 频域投影用 Uᵀ 把节点上的特征变换到频率域,得到各频率分量。x^=UTx\hat{x} = U^T x
  2. 频率滤波gθ 是一个对角矩阵,对每个频率分量做缩放,相当于给不同“舆论波动”分配权重。y^=gθx^\hat{y} = g_\theta \hat{x}
  3. 逆变换回节点域用 U 把处理后的频率分量还原成每个节点的新特征。y=Uy^y = U \hat{y}

一阶近似

谱图卷积像居委会请来频谱分析仪,精细但昂贵——特征分解的复杂度对大规模社区是灾难。于是研究者拿出切比雪夫多项式,用有限阶多项式去逼近那个滤波器。Kipf 等人狠心把阶数截到 1:只用“直接邻居”这一层信息,再配上两次参数折叠,谱卷积就退化成一个极其简单的邻居加权和。

截断后的公式里不再出现特征向量矩阵 U,也不再需要特征分解,只剩邻接矩阵的归一化形式。这一步是 GCN 从“论文公式”走向“工业代码”的关键一跃:原本要算 O(N³) 的特征分解,现在只剩稀疏矩阵乘法。

一阶近似把“频谱分析”变成了“邻居串门”。这条捷径不仅保留了谱卷积的精华,还让 GCN 具备了在大规模图上训练的可能。

gθ′∗x≈θ0′x+θ1′(L−I)xg_{\theta'} * x \approx \theta_0' x + \theta_1' (L - I) x
  1. 切比雪夫截断把滤波器 gθ 用切比雪夫多项式展开,只保留 K=1 的前两项。gθ′≈θ0′+θ1′L~g_{\theta'} \approx \theta_0' + \theta_1' \tilde{L}
  2. 代入拉普拉斯将 L = D - A 代入,I 是单位矩阵,对应自环。θ0′x+θ1′(L−I)x\theta_0' x + \theta_1' (L - I) x
  3. 参数折叠令 θ = θ₀′ = -θ₁′,两个参数合成一个,化简后只剩归一化邻接矩阵。θ(I+D−1/2AD−1/2)x\theta \left( I + D^{-1/2} A D^{-1/2} \right) x

传播规则

现在我们把社区比喻端上桌:一阶近似的本质,就是让每户人家敲开邻居的门,把邻居们的“口碑”抄到自己的小本本上,再和自己原有的印象混在一起。为了防止某户人家朋友太多、嗓门太大,我们还要按“邻居数目的平方根”做音量平衡——这就是度归一化。另外,千万别忘了给自己留一票:在自己家也贴一张小抄,才能保证原本的信息不被淹没。

于是 GCN 每一层的传播规则水到渠成:先把邻接矩阵加上自环,再用度矩阵做对称归一化,最后和特征矩阵、权重矩阵相乘,过一遍激活函数。这个公式就是 GCN 前向传播的全部秘密。

这一层“串门汇总”公式,从谱域理论里一路披荆斩棘走来,最终变成一行简洁的矩阵乘法。它既保留了邻居消息聚合的直觉,又能用 GPU 高效并行。

H(l+1)=σ(D~−1/2A~D~−1/2H(l)W(l))H^{(l+1)} = \sigma\left( \tilde{D}^{-1/2} \tilde{A} \tilde{D}^{-1/2} H^{(l)} W^{(l)} \right)
  1. 加自环在邻接矩阵上叠加单位阵,让每个节点聚合时包含自己。A~=A+I\tilde{A} = A + I
  2. 对称归一化用加上自环后的度矩阵 D̃ 做开方归一化,平衡高低度节点。D~−1/2A~D~−1/2\tilde{D}^{-1/2} \tilde{A} \tilde{D}^{-1/2}
  3. 特征变换归一化矩阵左乘特征 H⁽ˡ⁾、右乘权重 W⁽ˡ⁾,再经过激活函数。σ(A~symH(l)W(l))\sigma(\tilde{A}_{sym} H^{(l)} W^{(l)})

训练实现

消息聚合规则定了,接下来要教社区里的模型做事了。GCN 常用的场景是半监督节点分类:社区里只有少数几户人家贴了“好邻居/普通邻居”的标签,我们要根据邻里关系,推断剩下所有住户的类别。为什么半监督能行?因为 GCN 的每一层都在让相连的节点交换信息,标签会像消息一样沿着边传播,一个带标签的节点能间接影响它的二度、三度邻居。

训练时,我们把有标签节点的预测分布与真实标签做交叉熵,计算损失;其余节点不贡献损失,但它们的特征依然参与邻居聚合,帮助信息流动。网络通常堆 2~3 层,每层共享一套权重,最后用 softmax 输出各类别概率。

用极少的标签,就能让整张图上的节点“找到组织”。这正是 GCN 最迷人的地方——关系本身就是一种标签传播的通道。

L=−∑v∈VL∑c=1Cyvcln⁡zvc\mathcal{L} = -\sum_{v \in \mathcal{V}_L} \sum_{c=1}^{C} y_{vc} \ln z_{vc}
  1. 带标签节点集合V_L 是社区里已知分类结果的住户集合。VL⊂V\mathcal{V}_L \subset \mathcal{V}
  2. 真实标签 y_vc第 v 户人家的真实类别 c 用独热编码表示。yvc∈{0,1},∑cyvc=1y_{vc} \in \{0, 1\}, \sum_c y_{vc} = 1
  3. 预测概率 z_vc模型输出经过 softmax 后的类别概率。zvc=eovc∑keovkz_{vc} = \frac{e^{o_{vc}}}{\sum_k e^{o_{vk}}}
  4. 交叉熵求和对每个有标签节点、每个类别,计算负对数似然并累加。−∑v∑cyvcln⁡zvc-\sum_{v} \sum_{c} y_{vc} \ln z_{vc}

变体局限

社区的谣言传多了,会出问题:如果每个人都只复述邻居的话,几轮之后大家的观点会变得一模一样——这在 GCN 里叫“过平滑”。层数越多,所有节点的表示越趋同,区分度越低。所以 GCN 堆到四五层后,效果往往不升反降。这是图卷积的一个天然瓶颈。

为了缓解局限,研究者们推出了各种变体。最著名的是 GAT:它不再用固定权重聚合邻居,而是给每条边学一个注意力系数——就像串门时,你更相信靠谱老邻居的话,而不是陌生人的传言。注意力机制让模型自动判断“该听谁的”。

GAT 给 GCN 装上“选择性倾听”的耳朵,但过平滑这朵乌云依然笼罩着深层图网络。理解这些变体和限制,才能在实际项目中选对模型、调对深度。

αij=exp⁡(LeakyReLU(aT[Whi ∥ Whj]))∑k∈Niexp⁡(LeakyReLU(aT[Whi ∥ Whk]))\alpha_{ij} = \frac{\exp\left( \text{LeakyReLU}\left( a^T [W h_i \, \| \, W h_j] \right) \right)}{\sum_{k \in \mathcal{N}_i} \exp\left( \text{LeakyReLU}\left( a^T [W h_i \, \| \, W h_k] \right) \right)}
  1. 拼接特征把节点 i 和邻居 j 变换后的特征拼接起来,交给注意力向量 a 打分。[Whi ∥ Whj][W h_i \, \| \, W h_j]
  2. 打分激活用 LeakyReLU 把得分转成非负数,表达“这条关系多值得信任”。LeakyReLU(aT⋅zij)\text{LeakyReLU}(a^T \cdot z_{ij})
  3. softmax 归一化对 i 的所有邻居做归一化,得到和为 1 的注意力权重。∑k∈Niαik=1\sum_{k \in \mathcal{N}_i} \alpha_{ik} = 1

应用落地

理论讲完,社区故事要落地了。GCN 的输出层通常再接一个 softmax,把最终的节点表示映射成类别概率。两层 GCN 的完整前向过程可以浓缩成一个公式:第一层聚合 + ReLU,第二层聚合 + softmax。前文所有内容——自环、归一化、邻居聚合——都在这个公式里各就各位。

这个简洁的模型在真实世界里遍地开花:社交网络上判断用户兴趣标签,电商平台根据用户与商品的交互图做推荐,制药公司用分子图预测化合物毒性。凡是能表示成“节点 + 边”的数据,GCN 都有机会大显身手。

从社区门口的小路到工业界的推荐系统,GCN 用“邻居消息聚合”这同一套语言,给各种关系型数据带来了深度学习范式。下一次再看到一张图,你不妨想想:如果让节点们串门聊几轮,会发生什么?

Z=softmax(A~⋅ReLU(A~XW0)⋅W1)Z = \text{softmax}\left( \tilde{A} \cdot \text{ReLU}\left( \tilde{A} X W_0 \right) \cdot W_1 \right)
  1. 第一层聚合归一化邻接矩阵与输入特征相乘,再用 ReLU 激活。H1=ReLU(A~XW0)H_1 = \text{ReLU}(\tilde{A} X W_0)
  2. 第二层聚合把第一层结果再聚合一次,得到每个节点的打分向量。O=A~H1W1O = \tilde{A} H_1 W_1
  3. 归一化输出softmax 把打分变成各类别的概率分布。Z=softmax(O)Z = \text{softmax}(O)

AI 应用场景

社交网络节点分类

阶段:模型训练与推理

解决的问题:传统方法靠人工设计特征(粉丝数、发帖频率)判断用户兴趣,既费人力又丢结构信息。GCN 聚合邻居的标签与特征,让“物以类聚”自动生效——一个用户哪怕自己很少发帖,只要他的好友圈大量属于某个兴趣群,模型也能把他准确归类。

具体案例:某社交平台想识别“游戏爱好者”用户做精准推荐。平台以用户为节点、关注关系为边构建社交图,用 5% 已标注用户训练两层 GCN,其余 95% 用户的兴趣标签被自动推断出来,准确率比传统特征工程高 12 个百分点。

电商推荐系统

阶段:特征建模与召回排序

解决的问题:用户和商品天然构成二部图,传统协同过滤只利用“共现”信号,难以融入商品属性、用户画像等边信息。GCN 在图上做消息传递,把用户的历史交互、商品的特征、以及“谁还买了这个”的邻居信息统一聚合进向量表示,召回更精准。

具体案例:某电商平台用 GCN 建模“用户—商品—品牌”异质图,将用户最近 10 次点击作为带噪标签做半监督训练,最终让推荐召回率提升 8%,长尾商品的曝光量翻倍。

分子性质预测

阶段:图级表示学习

解决的问题:分子是天然的图——原子是节点、化学键是边。传统方法依赖专家手工设计分子描述符,成本高且丢失三维结构信息。GCN 通过逐层聚合原子邻居信息,学到整个分子的向量表示,直接预测溶解度、毒性等性质。

具体案例:药企用 GCN 对 10 万个小分子图做毒性预测,把“是否安全”分类准确率从 78% 提到 89%,并把候选药物筛选周期从数周缩短到数小时。

Python 演示

python52 行
import numpy as np # 构造一个小社区图:6户人家,边表示邻里关系edges = [(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 0), (0, 2)]n = 6 # 邻接矩阵 A:i 和 j 是邻居则 A[i,j] = 1A = np.zeros((n, n))for i, j in edges:    A[i, j] = 1    A[j, i] = 1 # 加自环并做对称归一化(GCN 传播规则的核心)A_tilde = A + np.eye(n)D = np.diag(A_tilde.sum(axis=1))D_inv_sqrt = np.linalg.inv(np.sqrt(D))A_norm = D_inv_sqrt @ A_tilde @ D_inv_sqrt # 每户人家的初始"口碑"特征(2 维)X = np.array([[0.7, 0.3], [0.6, 0.4], [0.2, 0.8],              [0.1, 0.9], [0.15, 0.85], [0.65, 0.35]]) # 半监督:只有 0 号和 3 号家庭给出真实标签labeled = np.array([0, -1, -1, 1, -1, -1])true_y = np.array([0, 0, 1, 1, 1, 0]) np.random.seed(42)W = np.random.randn(2, 2) * 0.5 def softmax(Z):    exp = np.exp(Z - Z.max(axis=1, keepdims=True))    return exp / exp.sum(axis=1, keepdims=True) # 训练:让"串门聚合"后的表示能分出两类家庭for epoch in range(300):    Z = A_norm @ X @ W    P = softmax(Z)    grad = np.zeros_like(P)    loss = 0.0    for i in range(n):        if labeled[i] != -1:            loss -= np.log(P[i, labeled[i]] + 1e-9)            grad[i] = P[i]            grad[i, labeled[i]] -= 1    W -= 0.1 * X.T @ (A_norm.T @ grad)    if epoch % 100 == 0:        print("epoch", epoch, "loss", round(loss, 4)) pred = softmax(A_norm @ X @ W).argmax(axis=1)print("预测类别:", pred)print("真实类别:", true_y)print("准确率:", (pred == true_y).mean())
目的:用纯 NumPy 实现一层 GCN 的邻居聚合与半监督节点分类训练,演示传播规则从公式到代码的真实样子。
  1. A_tilde = A + np.eye(n)给邻接矩阵加上自环,相当于“自己也算自己的邻居”。
  2. A_norm = D_inv_sqrt @ A_tilde @ D_inv_sqrt按度数开方做对称归一化,防止网络红人家庭的声音盖过所有人。
  3. Z = A_norm @ X @ W一行代码完成“邻居消息聚合 + 线性变换”,正是 GCN 的核心传播规则。
  4. grad[i, labeled[i]] -= 1交叉熵损失对 logits 的梯度,只对带标签节点生效。
  5. W -= 0.1 * X.T @ (A_norm.T @ grad)梯度下降更新权重,让模型逐步学会从邻里关系推断类别。

常见误区

误区以为 GCN 的卷积核就像 CNN 的滑块,把图裁成小方块,然后在方块上做卷积。

正解图结构没有上下左右,不存在“固定尺寸的滑动窗口”。GCN 的卷积本质是消息传递:每个节点把邻居特征加权求和,再与自己的特征融合。公式里的归一化邻接矩阵就是“窗口替身”,但它的形状随邻居结构动态变化,谁的邻居多,谁的窗口就大。

为何常见:CNN 的“滑窗”形象太深入人心,初学者容易拿图像思维硬套图数据。

误区认为 GCN 前向传播时要用到拉普拉斯矩阵的特征向量 U,因此每次推理都要算特征分解。

正解一阶近似后的 GCN 完全绕开了特征分解,只做稀疏矩阵乘法。U 和特征分解只存在于谱图卷积的理论推导中,工程实现用的全是归一化邻接矩阵的稀疏乘法。

为何常见:谱图卷积的推导过程以特征分解为主线,初学者误以为这是“运行时”的操作。

误区加自环 A + I 是个可有可无的补丁,去掉了也没多大影响。

正解如果聚合时不含自身,高度数节点会被邻居特征“淹没”,低度节点则几乎丢失自己的信息。自环相当于“先跟自己打个招呼”,保证节点本征特征一定参与更新。它是一阶近似推导的自然产物,不是拍脑袋加上去的。

为何常见:公式里多出一个单位阵,看起来像工程修复,容易被当成非核心细节忽略。

误区像 CNN 一样,叠更多 GCN 层就能学到更抽象的特征,效果应该更好。

正解GCN 反复聚合会让节点表示趋向同一——过平滑。两层聚合已经覆盖二度邻居,三层以上信息重复平均,节点区分度急剧下降。实践中 2~3 层是黄金选择。

为何常见:“深度=更强”的深度学习直觉让人忽略消息传递特有的过度平滑现象。

误区直接用 A 乘 X 就行,加归一化纯粹是为了防止数值溢出。

正解不归一化直接乘 A,高度数节点的特征数值会随聚合次数指数爆炸,低度节点则被稀释到忽略不计。对称归一化按度数开方缩放,让每个节点聚合后的量级稳定在同一个水平。它是模型能否训练起来的必要条件,而非锦上添花。

为何常见:从公式表面看,归一化像是缩放因子,容易低估它对学习过程的影响。

面试题

Q1. GCN 传播规则的核心操作是什么?

单选题 · easy

  • A.在图上滑动固定窗口卷积
  • B.将邻居特征加权求和并与自身特征融合← 正确答案
  • C.对图做随机游走采样
  • D.把整张图展平后接全连接层

答案:B。GCN 没有固定滑动窗口,本质是消息传递:每个节点聚合邻居的特征再结合自身,权重由归一化邻接矩阵决定。随机游走是图嵌入的套路,全连接层不理解邻居结构。

Q2. 邻接矩阵中 A[i][j] = 1 表示什么?

单选题 · easy

  • A.节点 i 和节点 j 的特征相同
  • B.节点 i 和节点 j 之间存在一条边← 正确答案
  • C.节点 i 和节点 j 属于同一个类别
  • D.节点 i 就是节点 j

答案:B。邻接矩阵就是“门牌联络表”,元素为 1 表示两家之间有路直通。它只记录连接关系,不关心特征、类别或等价性,因此其余选项都不对。

Q3. 拉普拉斯矩阵的定义是?

单选题 · mid

  • A.L = A - D
  • B.L = A + D
  • C.L = D - A← 正确答案
  • D.L = A D⁻¹

答案:C。度矩阵 D 减去邻接矩阵 A 得到拉普拉斯矩阵 L = D - A。它描述“自己与邻居的差异”,对角线是度数、非对角线为 -1,是谱图卷积的理论基石。

Q4. 谱图卷积中矩阵 U 的含义是?

单选题 · mid

  • A.拉普拉斯矩阵的特征向量矩阵← 正确答案
  • B.邻接矩阵
  • C.度矩阵
  • D.随机投影矩阵

答案:A。U 的列向量是拉普拉斯矩阵的特征向量,构成图上的“频率基”。谱卷积先把特征投影到这些基上滤波,再变换回来;邻接矩阵和度矩阵都不是 U。

Q5. 切比雪夫一阶近似主要解决了什么问题?

单选题 · hard

  • A.提升模型分类精度
  • B.避免矩阵特征分解的高计算复杂度← 正确答案
  • C.支持更深层网络
  • D.减少训练数据需求

答案:B。谱图卷积需要特征分解,复杂度高达 O(N³),大规模图根本算不动。一阶近似把滤波器截断成邻居加权和,只剩稀疏矩阵乘法。它不是为了精度、深度或数据效率,而是为了让 GCN 真正可落地。

Q6. GCN 中给邻接矩阵加自环(A + I)的作用是?

单选题 · mid

  • A.防止训练过拟合
  • B.增加图的平均度数
  • C.在聚合时保留节点自身特征← 正确答案
  • D.消除图中的孤立点

答案:C。自环让每个节点在聚合邻居信息的同时也包含自己,避免自身特征被邻居淹没。它源自一阶近似的数学推导,作用是信息保留而非正则化或连通性修复。

Q7. GCN 中的“过平滑”现象是指?

单选题 · easy

  • A.所有节点的表示向量趋于一致← 正确答案
  • B.模型梯度完全消失
  • C.训练集上的损失不下降
  • D.邻接矩阵变得稠密

答案:A。反复聚合邻居信息相当于反复做平均,层数一多,每个节点的表示都被整张图“平均”掉了,彼此难以区分。这正是 GCN 不能堆太深的原因。

Q8. 关于 GCN 中度归一化的作用,说法正确的是?

多选题 · mid

  • A.防止高度数节点的特征数值过大← 正确答案
  • B.让卷积结果受节点度数影响更小← 正确答案
  • C.等价于给所有边权重置 1
  • D.能显著提升训练数据的数量

答案:AB。对称归一化按度数开方缩放,让大度数节点不会因聚合过多邻居而数值爆炸,同时让不同度数节点的表示量级更稳定,所以 A、B 正确。C 说的是原始邻接矩阵,D 与数据量无关。

Q9. 以下哪些任务适合用 GCN 解决?

多选题 · mid

  • A.社交网络中的用户兴趣分类← 正确答案
  • B.普通餐厅照片的分类
  • C.分子毒性预测← 正确答案
  • D.一段英文的词频统计

答案:AC。社交网络是天然图结构,分子是原子-键构成的图,都适合 GCN。普通照片是规则网格,用 CNN 更合适;词频统计是文本序列问题,与图卷积无关。

Q10. 相比 CNN,GCN 的差异体现在哪些方面?

多选题 · extreme

  • A.每个节点的邻居数量不固定← 正确答案
  • B.缺乏平移不变性,权重无法跨空间共享← 正确答案
  • C.卷积通过邻居消息聚合实现,而非滑窗← 正确答案
  • D.完全不需要任何标签即可训练

答案:ABC。图节点的邻居数由结构决定,不固定;图上没有“平移”概念,权重在不同位置不能简单共享;卷积形式从滑窗变成消息聚合。GCN 支持半监督,但仍需部分标签,D 错误。