想象你是一座城市的管理者。你手里有四套档案:城建局的蓝图记录着每个街区原本的设计图纸(基因组),交通局的调度单写着此刻发往各区域的工作指令(转录组),统计局的行业名册列出现役的企业与厂房(蛋白质组),能源公司的报表则显示各街区当下的用电、用水和垃圾量(代谢组)。单看任何一套档案,都只能得到城市的一个侧影。真正的城市智慧,是把这些档案叠在一起,画出居民之间真实的关系网:谁给谁下指令、谁和谁共用厂房、谁为谁供应能源。这张关系网,就是多组学网络;而让网络中的每个分子学会“参考邻居意见”更新自身状态的方法,就是图神经网络(GNN)。 这篇文章会用“城市情报系统”的比喻,带你从零看懂图神经网络如何构建多组学网络:先认识分子节点,再学习如何挖掘边关系,然后看消息如何在网络中传递,最后讨论多关系建模、生物可解释性和工程调优。读完你会明白,为什么精准医疗想要“看懂”疾病,不能只看单个基因,而要看整个分子城市如何协作。

岗位关联

对 AI 从业者而言,掌握多组学图神经网络的构建,意味着你能够在基因、蛋白、代谢物之间建立可计算的关系模型,为疾病分型、靶点发现提供可落地的技术抓手,这正是精准医疗时代的核心技能之一。

目录
  1. 可视化演示
  2. 组学数据地图
  3. 分子节点定义
  4. 边关系挖掘
  5. 消息传递机制
  6. 异质关系建模
  7. 生物可解释性
  8. 工程训练优化
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示图神经网络在多组学网络中的消息传递过程和多关系网络结构,揭示基因与代谢物间的调控关系。

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

GNN消息传递机制 基因节点:蓝色表示基因,通过边向邻居传递嵌入特征 代谢物:绿色节点表示代谢物,接收来自基因的调控信号 消息聚合:每个节点聚合邻居信息更新自身嵌入表示 h\'v = σ(W · AGG({hu : u∈N(v)})) 多轮消息传递后节点嵌入捕获多跳邻域信息。

组学数据地图

假设你是市长,四个部门各交来一张城市地图:城建局画的是街道原本该怎么建,这是基因组;交通局画的是此刻车辆和指令往哪里走,这是转录组;统计局画的是哪些企业正在运转、产能如何,这是蛋白质组;能源公司画的是各街区耗电、耗水和排废情况,这是代谢组。四张图单独看都有价值,但只有把它们对齐成一张“叠加地图”,你才能真正看懂一座城市的运行规律。多组学整合要做的,正是这件事。

从 AI 的角度看,叠加地图就是一张图。我们把每个分子当作一个节点,把分子之间的调控、结合、转化关系当作边,把每个分子在多个样本中的测量值当作节点的属性。于是,多组学数据就从几张表格变成了一张可以计算的结构化图谱:

这样定义之后,预测疾病就不再是“只看某一份档案”,而是看整个分子城市的结构。后续所有 GNN 操作,都是在学习这张叠加地图上的规律。

G=(V,E,X)\mathcal{G}=(\mathcal{V},\mathcal{E},X)
通俗地讲,G 是一张城市关系图,V 是居民名单,E 是道路清单,X 是每位居民随身携带的档案袋。
  1. 节点集合所有基因、蛋白、代谢物都是城市里的居民,构成图的节点。
    V={v1,v2,…,vn}\mathcal{V}=\{v_1,v_2,\dots,v_n\}
  2. 边集合居民之间存在调控或互作关系,就形成一条可通行的道路。
    E⊆{(vi,vj)∣vi,vj∈V}\mathcal{E}\subseteq\{(v_i,v_j)\mid v_i,v_j\in\mathcal{V}\}
  3. 初始属性矩阵把每个节点在不同组学样本中的测量值写成一行,拼成特征表。
    X∈Rn×dX\in\mathbb{R}^{n\times d}

分子节点定义

城市有了地图,还需要给每位居民办一张 ID 卡。对于基因节点,ID 卡上可以写它的 DNA 序列特征、在不同组织中的表达量、所属通路;对于蛋白质节点,可以写蛋白丰度、结构域、亚细胞定位;对于代谢物节点,则写浓度、所在代谢通路、上下游酶的信息。ID 卡上的字段,就是 GNN 里的“节点特征”。

但麻烦的是,不同组学数据的量纲完全不同:RNA 表达量可能是几十到几万的计数,蛋白丰度可能是仪器读取的强度值,代谢物浓度可能是微摩尔每升。如果不做处理直接拼接,就像把“厘米”和“千克”写在同一张表里比较大小,大数会把小数淹没。因此,在把特征喂给模型之前,通常要对每个分子的跨样本特征做标准化:

办好 ID 卡之后,每个分子的“初始发言”才不会因为测量单位不同而失真。这是后续所有消息传递能够公平进行的前提。

x~ij=xij−μjσj\tilde{x}_{ij}=\frac{x_{ij}-\mu_j}{\sigma_j}
它的意思是:把第 j 个分子在所有样本中的测量值,减去这批样本的均值,再除以标准差,让每个特征都拥有类似的尺度。
  1. 计算均值对每个分子,先看它在所有样本中的平均水平。
    μj=1n∑i=1nxij\mu_j=\frac{1}{n}\sum_{i=1}^{n}x_{ij}
  2. 计算标准差再看它在不同样本间波动的幅度。
    σj=1n∑i=1n(xij−μj)2\sigma_j=\sqrt{\frac{1}{n}\sum_{i=1}^{n}(x_{ij}-\mu_j)^2}
  3. 标准化用“离均差除以波动幅度”得到新特征,避免量纲差异主导模型。
    x~ij=xij−μjσj\tilde{x}_{ij}=\frac{x_{ij}-\mu_j}{\sigma_j}

边关系挖掘

城市不能只有居民,还要有道路。道路来自哪里?一部分来自已知的生物学知识库,比如蛋白-蛋白互作数据库、转录因子调控数据库;另一部分来自数据本身,比如用共表达分析发现两个基因的表达在多个样本中总是同涨同跌。前者像城市规划师手动画好的主干道,后者像我们用交通流量数据反推出来的捷径。

最常用的“从数据反推道路”的方法是计算相关性。对于基因 i 和基因 j,我们观察它们在 n 个样本中的表达向量,计算皮尔逊相关系数:

实际工程中,我们不会把每条相关都修成路。通常只保留 |r| 大于某个阈值(比如 0.8)的边,或者每个节点只连接相关性最强的 Top-K 个邻居。这样得到的是稀疏而可信的城市道路网,而不是一张密不透风的蜘蛛网。

rij=∑k=1n(xi,k−xiˉ)(xj,k−xjˉ)∑k=1n(xi,k−xiˉ)2∑k=1n(xj,k−xjˉ)2r_{ij}=\frac{\displaystyle\sum_{k=1}^{n}(x_{i,k}-\bar{x_i})(x_{j,k}-\bar{x_j})}{\displaystyle\sqrt{\sum_{k=1}^{n}(x_{i,k}-\bar{x_i})^2}\sqrt{\sum_{k=1}^{n}(x_{j,k}-\bar{x_j})^2}}
这个值接近 1,表示两个分子在样本间同向协同变化;接近 -1 表示反向变化;接近 0 表示没有明显线性关系。
  1. 中心化先减去各自的均值,突出每个样本偏离平均水平的方向和幅度。
    xi,k′=xi,k−xiˉx'_{i,k}=x_{i,k}-\bar{x_i}
  2. 协同变化累计把两个分子的中心化结果相乘再求和。符号相同的样本贡献正值,符号相反的贡献负值。
    Sij=∑k=1nxi,k′xj,k′S_{ij}=\sum_{k=1}^{n}x'_{i,k}x'_{j,k}
  3. 归一化除以两个分子的波动幅度,把结果压缩到 -1 到 1 之间,便于设定阈值。
    rij=Sij∑k=1n(xi,k′)2∑k=1n(xj,k′)2r_{ij}=\frac{S_{ij}}{\sqrt{\sum_{k=1}^{n}(x'_{i,k})^2}\sqrt{\sum_{k=1}^{n}(x'_{j,k})^2}}

消息传递机制

道路修好后,情报系统开始运转。GNN 的核心思想非常朴素:每个居民不能只凭自己的 ID 卡做判断,还要去问问邻居最近发生了什么。这个过程叫“消息传递”。第一轮,每个节点把邻居的信息收集起来,和自己的信息融合,更新一次状态;第二轮,它再把更新后的状态传给下一批邻居。经过几轮,信息就像城市里的流言一样扩散开来。

用数学语言描述一次消息传递,可以写成:

在多组学场景中,节点特征就是分子 ID 卡,邻居就是通过共表达或互作关系连接起来的分子。经过 2 到 3 层消息传递后,一个基因的表示就不再只代表它自己,而是代表“它和周围一圈功能相关分子”的小社区画像。这正是 GNN 比普通神经网络更擅长建模组学关系的原因。

hv(l+1)=σ(W(l)AGG⁡({hu(l):u∈N(v)}∪{hv(l)}))h_v^{(l+1)}=\sigma\left(W^{(l)}\operatorname{AGG}\left(\{h_u^{(l)}:u\in\mathcal{N}(v)\}\cup\{h_v^{(l)}\}\right)\right)
它表示:在第 l+1 层,节点 v 先把邻居 u 的状态和自身状态集中起来,做一次聚合,再乘以一个可学习矩阵并经过激活函数,得到新状态。
  1. 收集邻居消息把节点 v 的所有邻居状态拿出来,同时保留它自己的状态。
    Mv(l)={hu(l):u∈N(v)}∪{hv(l)}M_v^{(l)}=\{h_u^{(l)}:u\in\mathcal{N}(v)\}\cup\{h_v^{(l)}\}
  2. 聚合操作用求和、取平均或注意力机制,把一堆消息压缩成一条“综合情报”。
    mv(l)=AGG⁡(Mv(l))m_v^{(l)}=\operatorname{AGG}(M_v^{(l)})
  3. 线性变换与激活用可学习矩阵 W 挑选重要信息,再通过激活函数增加非线性表达能力。
    hv(l+1)=σ(W(l)mv(l))h_v^{(l+1)}=\sigma(W^{(l)}m_v^{(l)})

异质关系建模

普通城市里的道路都是同一种规则:靠右行驶。但分子城市不是这样:基因调控蛋白是一条规则,蛋白和蛋白结合又是一条规则,酶催化代谢物转化还是另一条规则。如果所有边都用同一个权重矩阵处理,就像把高速公路、步行街和铁路当成同一条路,信息一定会失真。因此我们需要“异质关系建模”。

一种经典做法是关系图卷积网络(RGCN)。它给每种关系类型 r 配一个独立的变换矩阵 W_r,在聚合邻居时按关系分别处理:

除了 RGCN,还有一种常见思路是设计“元路径”。比如“基因-蛋白-代谢物”这条路径,表示我们只沿着这条语义链传递消息。元路径像城市里的公交专线,指定了情报必须走哪条路线,避免无关关系互相干扰。

hv(l+1)=σ(∑r∈R∑u∈Nr(v)1cv,rWr(l)hu(l)+W0(l)hv(l))h_v^{(l+1)}=\sigma\left(\sum_{r\in\mathcal{R}}\sum_{u\in\mathcal{N}_r(v)}\frac{1}{c_{v,r}}W_r^{(l)}h_u^{(l)}+W_0^{(l)}h_v^{(l)}\right)
它把节点 v 的邻居按关系类型先分组,每组使用不同的“相处规则”,最后把不同类型的信息加在一起,并保留节点自身信息。
  1. 按关系切分邻居不是所有邻居都一视同仁,而是先看这条边属于哪类关系。
    Nr(v)={u:(u,v)∈Er}\mathcal{N}_r(v)=\{u:(u,v)\in\mathcal{E}_r\}
  2. 关系专属变换每种关系用自己的矩阵处理邻居信息,并除以该关系邻居数做归一化。
    zv,r(l)=∑u∈Nr(v)1cv,rWr(l)hu(l)z_{v,r}^{(l)}=\sum_{u\in\mathcal{N}_r(v)}\frac{1}{c_{v,r}}W_r^{(l)}h_u^{(l)}
  3. 汇总所有关系把不同关系得到的情报相加,同时额外加上节点自身的“自环消息”。
    hv(l+1)=σ(∑r∈Rzv,r(l)+W0(l)hv(l))h_v^{(l+1)}=\sigma\left(\sum_{r\in\mathcal{R}}z_{v,r}^{(l)}+W_0^{(l)}h_v^{(l)}\right)

生物可解释性

模型预测出一个病人属于高风险亚型,医生自然会问:凭什么?如果 GNN 是一套只会算分的黑箱,很难在临床落地。于是可解释性成为多组学 GNN 的重要环节。我们希望模型不仅能判断“这个分子社区和疾病有关”,还能指出“是哪一个邻居、哪一条边起了关键作用”。

注意力机制是常用的解释工具。它给每条边学习一个权重,告诉模型:这次消息传递,哪些邻居更值得听。以图注意力网络(GAT)的打分方式为例:

拿到注意力权重后,我们可以把得分最高的边画出来,得到“疾病相关分子模块”。这就像在巨大的城市交通图上,标出事故高发区周边的关键道路。再结合数据库注释和实验验证,这些模块就可能转化为新的生物标志物或药物靶点。

αuv=exp⁡(LeakyReLU(a⊤[Whu∥Whv]))∑k∈N(u)exp⁡(LeakyReLU(a⊤[Whu∥Whk]))\alpha_{uv}=\frac{\exp\left(\mathrm{LeakyReLU}\left(\mathbf{a}^{\top}[\mathbf{W}h_u\|\mathbf{W}h_v]\right)\right)}{\displaystyle\sum_{k\in\mathcal{N}(u)}\exp\left(\mathrm{LeakyReLU}\left(\mathbf{a}^{\top}[\mathbf{W}h_u\|\mathbf{W}h_k]\right)\right)}
注意力权重 α 表示节点 u 在听取节点 v 消息时的“信任程度”,所有权重加起来等于 1。
  1. 特征变换先把两个节点状态分别做线性变换,得到更具表达力的表示。
    h~u=Whu,h~v=Whv\tilde{h}_u=\mathbf{W}h_u,\quad \tilde{h}_v=\mathbf{W}h_v
  2. 拼接打分把两个表示拼接起来,再用向量 a 打分,得到未归一化的注意力分数。
    suv=a⊤[h~u∥h~v]s_{uv}=\mathbf{a}^{\top}[\tilde{h}_u\|\tilde{h}_v]
  3. Softmax 归一化对节点 u 的所有邻居做归一化,让分数变成可比较的权重。
    αuv=exp⁡(LeakyReLU(suv))∑k∈N(u)exp⁡(LeakyReLU(suk))\alpha_{uv}=\frac{\exp(\mathrm{LeakyReLU}(s_{uv}))}{\sum_{k\in\mathcal{N}(u)}\exp(\mathrm{LeakyReLU}(s_{uk}))}

工程训练优化

理论和模型结构都有了,真正落地时还要面对工程问题。多组学图往往有几万个节点、几十万条边,一次性装入显存不现实。常用方案是小批量采样:每次只取一部分节点,并连带采样它们的邻居,构建一个子图来算梯度。这就像市中心的交通调度,不需要等全城数据同步,只看局部街区也能做短期决策。

训练 GNN 做疾病分类时,最常见的损失函数是交叉熵损失:

工程调优还有三个关键点。第一,层数不是越多越好,通常 2 到 3 层就能覆盖大多数分子模块;层数过深会导致所有节点表征趋同,即“过平滑”,相当于城市里所有居民都说着同样的话,信息反而丢失。第二,数据划分不能随机打乱整个图,而应按子图或分子模块划分,否则训练时见过的邻居会泄露到测试集。第三,组学数据往往样本少、维度高,可以增加 Dropout、早停和边 dropout,增强泛化能力。做好这些,模型才能稳定复现,真正从实验室走向临床。

L=−1∣B∣∑i∈B∑c=1Cyiclog⁡y^ic\mathcal{L}=-\frac{1}{|\mathcal{B}|}\sum_{i\in\mathcal{B}}\sum_{c=1}^{C}y_{ic}\log\hat{y}_{ic}
它衡量模型预测的概率分布与真实标签分布之间的差距,差距越小,模型越自信。
  1. 取小批量样本从图中采样一批节点,降低单次计算量。
    i∈Bi\in\mathcal{B}
  2. 真实标签编码如果节点 i 属于类别 c,则 y_{ic} 为 1,否则为 0。
    yic∈{0,1}y_{ic}\in\{0,1\}
  3. 交叉熵求和对每个样本、每个类别计算 y_{ic}\log\hat{y}_{ic} 并加负号取平均。
    L=−1∣B∣∑i∈B∑c=1Cyiclog⁡y^ic\mathcal{L}=-\frac{1}{|\mathcal{B}|}\sum_{i\in\mathcal{B}}\sum_{c=1}^{C}y_{ic}\log\hat{y}_{ic}

AI 应用场景

疾病亚型精准分型

阶段:多组学图构建 + 图表示学习 + 下游分类

解决的问题:传统方法通常把基因表达、蛋白丰度、代谢物浓度分别建模,无法捕捉跨组学相互作用;GNN 可以把这些分子连成网络,让分类器同时看到结构信息。

具体案例:在乳腺癌多组学数据中,研究人员以基因、蛋白、代谢物为节点,以共表达和数据库互作为边,训练 GNN 模型把患者分为不同分子亚型,比单组学模型更稳定地识别出预后较差的亚型。

候选药物靶点发现

阶段:模型可解释性分析 + 关键子图提取

解决的问题:从成千上万个差异分子中找药物靶点像大海捞针;GNN 的注意力权重能够定位“与疾病最相关的分子模块及其关键邻居”,缩小筛选范围。

具体案例:在阿尔茨海默症多组学图谱中,模型预测疾病状态的同时,输出注意力分数最高的代谢物-蛋白子网络;团队再结合数据库检索,筛选出 3 个可进一步验证的候选靶点。

基因-代谢物关联网络挖掘

阶段:边预测 / 链路预测

解决的问题:已知互作数据库中基因与代谢物的直接关系很少,而 GNN 可以通过邻居传播预测“尚未标注但很可能存在”的边,帮助发现新调控关系。

具体案例:利用代谢组和转录组联合构建异构图,对缺失的“基因-代谢物”边做链路预测;预测结果中排名靠前的边,有 60% 被后续文献或实验初步证实。

Python 演示

python49 行
import numpy as np def make_omics_graph(expr, corr_threshold=0.7):    # expr 形状为 (n_samples, n_molecules)    # 计算分子之间的皮尔逊相关矩阵    corr = np.corrcoef(expr.T)    # 保留相关度大于阈值的边,构成稀疏邻接矩阵    adj = (np.abs(corr) >= corr_threshold).astype(float)    np.fill_diagonal(adj, 0.0)    # 按度归一化,使每个节点平均分配消息给邻居    deg = adj.sum(axis=1, keepdims=True)    deg[deg == 0] = 1.0    norm = adj / deg    return norm  class SimpleMessagePassing:    def __init__(self, feature_dim, hidden_dim, out_dim):        self.w1 = np.random.randn(feature_dim, hidden_dim) * 0.1        self.w2 = np.random.randn(hidden_dim, out_dim) * 0.1     def predict(self, norm_adj, features, steps=2):        h = features        for _ in range(steps):            # 消息传递:归一化邻接矩阵加权求和 + 线性变换 + 激活            h = np.tanh(norm_adj @ h @ self.w1)        return h @ self.w2  def main():    rng = np.random.default_rng(42)    n_samples = 60    n_genes = 30    # 模拟 60 个样本、30 个分子的表达矩阵    expr = rng.normal(size=(n_samples, n_genes))    # 人为制造一对共表达基因,让图中出现一条真实边    gene_a = expr[:, 0].reshape(-1, 1)    expr[:, 15] = 0.8 * gene_a.ravel() + 0.2 * rng.normal(size=n_samples)     # 构建图并执行两轮消息传递,得到分子嵌入    norm = make_omics_graph(expr, corr_threshold=0.7)    features = expr.T    model = SimpleMessagePassing(n_genes, 16, 8)    embeddings = model.predict(norm, features)    print("分子嵌入维度:", embeddings.shape)  if __name__ == "__main__":    main()
目的:用 NumPy 实现一个简化版的多组学图构建与消息传递流程,展示从表达矩阵到分子嵌入的完整链路。
  1. corr = np.corrcoef(expr.T)把每个分子在所有样本中的表达量当作坐标,计算两两之间的相关系数。
  2. adj = (np.abs(corr) >= corr_threshold).astype(float)只保留相关性超过阈值的分子对作为边,让图保持稀疏。
  3. deg[deg == 0] = 1.0防止孤立节点做除法时出现除零错误。
  4. norm = adj / deg按度归一化邻接矩阵,让每个节点给邻居发消息时权重平均。
  5. h = np.tanh(norm_adj @ h @ self.w1)最核心的消息传递步骤:邻居加权求和、线性变换、非线性激活。
  6. features = expr.T把表达矩阵转置成“行是分子、列是样本”的节点特征矩阵。
  7. embeddings = model.predict(norm, features)经过两轮消息传递后,得到可用于下游聚类或分类的分子向量。

常见误区

误区我以为多组学整合就是把基因、蛋白、代谢物的数据表横向拼起来,然后喂给普通神经网络就完了。

正解直接拼接会丢失“谁和谁有关系”的结构信息。GNN 的价值在于把分子之间的互作、调控、共表达建模成边,让模型显式利用关系。如果只用拼接矩阵,等于只看居民名单,不看城市道路,自然无法发现社区结构。

为何常见:因为普通表格数据习惯了“一行样本、一列特征”的输入方式,容易忽略分子间天然存在的网络结构。

误区我一开始把相关系数绝对值大于 0 的所有分子对都连成边,觉得信息越多模型越准。

正解边太密会让图变成稠密连通块,消息在邻居之间反复平均,节点表征迅速趋同,也就是过平滑。更合理的做法是设定阈值或 Top-K 筛选,保留最可信的边,让网络保持稀疏但富有信息。

为何常见:人们习惯认为“数据量越大越好”,但图的边并不是越多越好,边的质量和拓扑结构才是关键。

误区我觉得既然都是边,就不需要区分“基因调控蛋白”和“蛋白与蛋白互作”,统一用同一个矩阵训练更简单。

正解多组学图是异构图,不同关系类型有完全不同的生物学含义。RGCN、基于元路径的模型等方法的核心,就是为不同关系设计不同的参数或聚合路径。共用权重会让模型混淆不同类型的调控规则。

为何常见:普通 GNN 的教程大多基于同构图,容易让人默认所有边都是同质的。

误区我看到 GAT 给边打了高分,就认为这条边在真实细胞里一定存在很强的调控关系。

正解注意力权重是模型为完成预测任务而学到的“相关性贡献”,可能与真实调控相关,也可能只是在当前数据上有效。它只能作为筛选线索,后续需要用数据库、敲除实验或文献验证。

为何常见:注意力机制听起来像“模型自己告诉你为什么”,但解释性并不等于因果性。

误区我用 GNN 做样本分类时,把所有样本随机分成训练、验证、测试,测试准确率很高。

正解如果节点是基因、蛋白、代谢物,随机划分会让同一个分子社区同时出现在训练集和测试集中,造成信息泄漏。正确做法是按分子模块、图子图或患者批次划分,确保测试集近似于“未见过的城市新区”。

为何常见:常规机器学习默认样本独立同分布,而图数据中节点有依赖关系,容易忽视图级泄漏。

面试题

Q1. 在多组学网络构建中,“节点”通常代表什么?

单选题 · easy

  • A.基因、蛋白质与代谢物← 正确答案
  • B.患者年龄与体质量指数
  • C.测序平台与试剂批次
  • D.医生经验与诊疗科室

答案:A。多组学网络的节点是参与生物学过程的分子,如基因、转录本、蛋白质、代谢物。年龄、平台和医生信息属于样本元数据,不应作为分子网络中的节点。

Q2. GNN 的消息传递过程主要做什么?

单选题 · mid

  • A.只保留节点初始特征向量
  • B.聚合邻居信息并更新自身← 正确答案
  • C.对全部节点特征取平均
  • D.随机置换节点特征值

答案:B。消息传递的核心是每个节点收集邻居信息,聚合后与自身信息融合,再通过线性变换和激活函数更新。选项 C 忽略了节点自身信息和可学习变换,A 和 D 都不涉及邻居交互。

Q3. 两个分子的皮尔逊相关系数接近 1,通常说明什么?

单选题 · easy

  • A.两分子表达同升同降协同变化← 正确答案
  • B.两分子必然直接物理结合
  • C.两分子在不同样本中毫无关联
  • D.两分子位于同一条染色体

答案:A。皮尔逊相关系数度量线性协同变化。接近 1 表示正相关,但相关不等于物理结合,也不代表染色体位置关系。

Q4. RGCN 相比普通 GNN 的核心差异是什么?

单选题 · mid

  • A.对不同关系类型使用不同权重← 正确答案
  • B.把节点特征拼接得更长
  • C.用循环网络编码分子序列
  • D.用注意力替代全部邻居聚合

答案:A。RGCN 为每种关系类型学习独立的变换矩阵,再汇总所有关系的结果。它没有使用序列编码,也不只是加长特征。

Q5. GNN 的“过平滑”问题指的是什么?

单选题 · hard

  • A.多层传播后节点表征逐渐趋同← 正确答案
  • B.训练集准确率直接降为零
  • C.学习率过大导致梯度爆炸
  • D.邻居数量减少到无法聚合

答案:A。网络层数过深时,每个节点反复平均邻居信息,最终所有节点表征越来越相似,丧失区分度。梯度爆炸和邻居减少不是过平滑的核心描述。

Q6. 在异质多组学图中,“元路径”的作用是什么?

单选题 · hard

  • A.限定异构图中的语义聚合路径← 正确答案
  • B.把基因序列翻译成氨基酸序列
  • C.消除不同组学间的批次效应
  • D.替代传统差异表达统计检验

答案:A。元路径定义了一种可解释的语义关系链,比如“基因-蛋白-代谢物”,让模型只沿着指定路径聚合邻居,避免不同关系类型互相干扰。

Q7. GNN 输出的分子嵌入可以用于什么?

单选题 · easy

  • A.疾病亚型分类与分子模块发现← 正确答案
  • B.直接读取原始基因序列
  • C.替代质谱仪的代谢物检测
  • D.免去临床数据的伦理审查

答案:A。分子嵌入是低维向量,可输入分类器做亚型预测,也可以聚类发现功能模块。它不能替代测序或质谱检测,也不能绕过伦理审查。

Q8. 构建多组学网络时,常见的边类型包括哪些?

多选题 · mid

  • A.基因共表达相关性← 正确答案
  • B.蛋白-蛋白相互作用← 正确答案
  • C.转录因子调控关系← 正确答案
  • D.试剂批次号相同

答案:ABC。共表达、蛋白互作、转录因子调控都有明确生物学意义,可构成图的边。试剂批次相同属于实验元数据,不应作为分子间关系边。

Q9. 以下哪些策略可以缓解 GNN 的过平滑问题?

多选题 · hard

  • A.限制 GNN 层数← 正确答案
  • B.引入残差与跳跃连接← 正确答案
  • C.增加消息传递轮数
  • D.采用稀疏图与归一化← 正确答案

答案:ABD。减少层数、加入残差/跳跃连接、使用稀疏图和归一化,都能抑制节点表征过度趋同。增加消息传递轮数通常会加剧过平滑。

Q10. 在多组学 GNN 中,可用于生物可解释性的方法包括哪些?

多选题 · extreme

  • A.注意力权重回溯关键邻居← 正确答案
  • B.梯度归因识别重要特征← 正确答案
  • C.扰动边观察预测变化← 正确答案
  • D.对全部特征取平均值

答案:ABC。注意力权重、梯度归因、边扰动都是常见的解释性手段,能帮助定位重要分子模块。对特征取平均只会丢失信息,不能解释模型决策。