想象你是一位材料星探,面前堆着几百万份“晶体简历”,每份都是一个原子组合的新材料候选。你不可能把每一份都送进实验室“面试”,因为一次高温高压合成实验既贵又慢。GNoME(Graph Networks for Materials Exploration,谷歌 DeepMind 的材料探索图网络)就是一位不知疲倦的 AI 猎头。它不看表面颜值,而是先画出每个材料的“同事关系网”:原子节点、原子之间的键连关系。然后它在网络上反复“互相打听口碑”,估算这个材料在热力学上省不省钱、稳不稳定。所谓稳定性预测,本质上是回答一个问题:把这一堆原子放在一起,会不会比它们拆成已知的其他材料组合更划算?更划算,就稳定;不划算,迟早分解。GNoME 用这套方法一口气筛出上百万个新晶体候选,把材料发现的效率提升了几个数量级。这篇教程,就从一张“合租账本”和一张“关系网”讲起,带你搞懂 AI 如何预测材料稳定性。

岗位关联

学会稳定性预测,你就掌握了 AI 在真实科学发现中做“大规模筛选”的核心范式,这种“预测—验证—反馈”的闭环同样适用于药物分子、合金、催化剂等领域的 AI 应用。

目录
  1. 可视化演示
  2. 稳定性概念
  3. 晶体图建模
  4. GNN预测
  5. 数据与训练
  6. 大规模搜索
  7. 实验闭环
  8. AI+材料价值
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

演示图神经网络学习晶体结构、形成能稳定性预测与大规模候选材料筛选扩展,理解AI加速新材料发现。

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

晶体结构图表示 原子节点 稳定中心 GNN 图神经网络学习结构

稳定性概念

把每种晶体想象成一套合租方案。原子是室友,化合物是几个人搬到同一个房间。单独住有单独住的成本,合租有合租的成本;形成能描述的就是“合租之后比各自独居省下多少能量”。如果形成能为负,说明大家一起住更划算,这个化合物有存在的基础。

但“合租划算”还不够。室友们还可能拆成更好的两套房,比如一个 AB 晶体可能分解成 A₂B 加 B,最终总成本反而更低。所以判断稳定性,不能只看自身形成能,还要看它相对“所有已知分解组合中最优成本线”的位置。这条线就是材料学里的凸包。

GNoME 给每个候选材料计算的核心判据如下:

所以稳定性从来不是一个孤立的“分数”,而是一次“同行竞争”。AI 给每个候选材料发的不是绝对证书,而是一张“相对凸包线下方才有效”的居住证。

Ef=Ecompound−∑iniEi,ΔEhull=Ef−Ehull(x)\displaystyle E_f = E_{\mathrm{compound}} - \sum_i n_i E_i,\qquad\Delta E_{\mathrm{hull}} = E_f - E_{\mathrm{hull}}(\mathbf{x})
通俗解释:第一个式子算“合租省了多少钱”,第二个式子算“合租方案比市场上最优分租方案贵还是便宜”。
  1. 查看晶体总能量先计算这块化合物的总能量,也就是整个合租团队的最终账单。
    EcompoundE_{\mathrm{compound}}
  2. 扣除纯元素参考态减去同样数量的纯元素各自独立存在时的能量,得到形成能。
    ∑iniEi\sum_i n_i E_i
  3. 找到同成分凸包能量在相图中找到相同元素比例下,所有已知稳定相构成的最低能量边界。
    Ehull(x)E_{\mathrm{hull}}(\mathbf{x})
  4. 做差得到判据如果这个差值小于等于零,说明新方案比现有最优分解方案更省能量,因此稳定。
    ΔEhull≤0\Delta E_{\mathrm{hull}} \le 0

晶体图建模

猎头看简历时,除了学历和技能,还必须看这个人的同事关系网:他平时和谁合作,合作距离是否紧密。晶体的“同事关系网”就是晶体图:原子是节点,原子之间的化学键或近距离接触是边。GNoME 不是把材料当成一个字符串,而是当成一张图来学习。

晶体结构千变万化,同样元素可以排成不同结构,性质完全不同。因此,节点上要记录“我是谁”,边上要记录“我们怎么连”。原子节点的初始特征来自元素类型,例如原子序号、价电子数;边的特征则来自原子间距,通常用一组径向基函数展开成向量。

GNoME 的晶体图可以写成:

晶体图把原子排列的几何信息变成了神经网络能“看”懂的输入。有了这张关系网,GNoME 才能进一步在网络上做消息传递。

\displaystyle \mathcal{G}=(\mathcal{V},\mathcal{E}),\qquadh_v^{(0)}=\mathbf{E}[Z_v],\qquade_{uv}=\mathbf{B}[d_{uv}]
通俗解释:图就是“谁和谁认识”,节点特征是一张张身份证,边特征则写明两个人的熟悉程度。
  1. 节点集合晶体里每一个原子对应一个节点。
    V\mathcal{V}
  2. 边集合距离小于截断值的原子对连成一条边,代表键合或紧密接触。
    E\mathcal{E}
  3. 原子初始特征把原子序数等元素信息映射成向量,作为每个节点的初始发言稿。
    hv(0)=E[Zv]h_v^{(0)}=\mathbf{E}[Z_v]
  4. 边特征把原子间距编码成向量,让模型知道这条“关系”是近还是远。
    euv=B[duv]e_{uv}=\mathbf{B}[d_{uv}]

GNN预测

猎头拿到关系网后,不会只看第一层熟人,而会逐层打听:每个原子先给邻居发消息,邻居汇总消息后更新自己的判断,再把新判断传给更远的邻居。这个过程在神经网络里叫消息传递,而做这件事的网络就叫图神经网络。

每轮消息传递分成两步:每个节点把当前特征加工成消息,沿边发给邻居;目标节点把邻居发来的消息汇总,再和自己原有特征一起更新。经过若干轮,每个节点的表示已经包含了局部甚至全局的化学环境信息,最后由一个读出层把所有原子表示汇总成整块晶体的形成能预测。

公式如下:

GNN 的核心优势在于:它不把原子当孤立个体,而是把化学键和空间关系真正放进模型里。消息传得越深,猎头对候选材料的判断就越接近真实能量。

mv(l)=∑u∈N(v)ψ(hv(l),hu(l),euv),hv(l+1)=ϕ(hv(l),mv(l)),E^f=MLP(∑v∈Vhv(L))\displaystyle\begin{aligned}m_v^{(l)} &= \sum_{u\in\mathcal{N}(v)} \psi\left(h_v^{(l)}, h_u^{(l)}, e_{uv}\right),\\h_v^{(l+1)} &= \phi\left(h_v^{(l)}, m_v^{(l)}\right),\\\hat{E}_f &= \mathrm{MLP}\left(\sum_{v\in\mathcal{V}} h_v^{(L)}\right)\end{aligned}
通俗解释:每层都在“打听消息”,层数越多,每个原子知道的朋友圈就越大;最后把全公司印象汇总成一个报价。
  1. 邻居发消息用一个函数把当前节点、邻居节点、边特征组合成一条消息。
    ψ(hv(l),hu(l),euv)\psi\left(h_v^{(l)}, h_u^{(l)}, e_{uv}\right)
  2. 聚合邻居消息把所有邻居发来的消息求和,得到聚合向量。
    mv(l)=∑u∈N(v)ψ(⋅)m_v^{(l)} = \sum_{u\in\mathcal{N}(v)} \psi(\cdot)
  3. 更新节点特征将聚合结果与自身特征一起送入更新函数,得到下一层表示。
    hv(l+1)=ϕ(hv(l),mv(l))h_v^{(l+1)} = \phi\left(h_v^{(l)}, m_v^{(l)}\right)
  4. 读出形成能对全部原子表示求和,再经过多层感知机,得到整块材料的形成能预测。
    E^f=MLP(∑vhv(L))\hat{E}_f = \mathrm{MLP}\left(\sum_{v} h_v^{(L)}\right)

数据与训练

再聪明的猎头也需要档案库。GNoME 的“档案库”来自材料数据库和密度泛函理论(DFT)计算。DFT 能从量子力学第一性原理算出晶体总能量,从而得到形成能,但它对每个候选都要消耗大量算力。GNoME 的策略是:先用已有 DFT 结果训练一个快速图神经网络,代替昂贵的计算。

训练目标很直接:让模型的预测尽可能接近 DFT 算出的形成能。这里用的是回归任务,损失函数是均方误差。训练集中不仅包含已知稳定材料,也包含大量不稳定材料,这样模型才能学会“为什么一些结构会输给凸包”。

损失函数如下:

训练之后还要用主动学习继续迭代。GNoME 先用模型挑一批高价值候选,再用 DFT 验证,把验证结果加回训练集,重新微调模型。这个“先让 AI 猜,再用计算确认,最后喂回去”的循环,让模型越用越准。

L=1B∑i=1B(E^f(i)−Ef(i))2\displaystyle\mathcal{L} = \frac{1}{B}\sum_{i=1}^{B}\left( \hat{E}_f^{(i)} - E_f^{(i)} \right)^2
通俗解释:把模型报价和 DFT“标准答案”放在一起比,差多少就扣多少分。
  1. 取一批样本每次从训练集中拿出 B 个材料,形成一个小批次。
    1B∑i=1B\frac{1}{B}\sum_{i=1}^{B}
  2. 模型预测形成能GNN 对第 i 个候选给出的预测值。
    E^f(i)\hat{E}_f^{(i)}
  3. DFT 真实形成能用高精度计算得到的标签值。
    Ef(i)E_f^{(i)}
  4. 计算均方误差把两者差平方再平均,得到当前批次的损失。
    (E^f(i)−Ef(i))2\left(\hat{E}_f^{(i)} - E_f^{(i)}\right)^2

大规模搜索

传统材料探索像在漫无边际的大海里捞针。元素周期表里有上百种元素,任意组合再加上不同晶体结构,候选空间几乎无穷无尽。GNoME 的大规模搜索,本质就是把这整片海先数字化,再用训练好的图神经网络快速给每个候选打分。

打分之后,最重要的过滤工具就是凸包距离。候选材料的形成能如果明显高于同成分凸包线,就说明它会被已知稳定相分解,直接淘汰。只有低于或接近凸包线的候选才会进入下一轮高精度验证。

稳定候选集合可以写成:

这一层过滤非常关键:它把海选从“百万级”快速压缩到“几千甚至几百级”,让后续的 DFT 验证和实验资源集中在最有希望的候选上。

S={c∈C∣ΔEhull(c)≤τ}\displaystyle\mathcal{S} = \left\{ c\in\mathcal{C} \mid \Delta E_{\mathrm{hull}}(c) \le \tau \right\}
通俗解释:只有“运营成本比行业最优方案还低”的候选,才有资格进入下一轮面试。
  1. 候选集合所有由元素组合和结构构成的候选材料。
    C\mathcal{C}
  2. 凸包距离每个候选材料形成能到同成分凸包的差值。
    ΔEhull(c)\Delta E_{\mathrm{hull}}(c)
  3. 容差阈值考虑到 DFT 误差和温度效应,允许设一个很小的能量阈值,通常约为每原子 0.1 eV。
    τ\tau
  4. 稳定集合筛选后留下的候选材料集合。
    S\mathcal{S}

实验闭环

通过 GNoME 初筛的材料,距离真正走进实验室还差最后几步。首先要用更精确的 DFT 重新验证凸包距离,因为 GNN 是代理模型,难免有误差。验证通过后,还要考虑可合成性:这个材料能不能找到合适的合成路径,是否需要高压、高温等特殊条件。

GNoME 并不是“预测完就结束”,而是把计算与实验组成一个闭环。模型给实验团队一份优先清单,实验团队按优先级合成新材料,并把合成结果反馈给模型。成功的经验强化模型,失败的原因也能帮助模型修正错误。

优先清单可以表示为:

有了实验闭环,AI 才真正成为材料发现流水线的一部分,而不只是一篇论文里的模型。

P={c∈S∣Ssynth(c)≥θ}\displaystyle\mathcal{P} = \left\{ c\in\mathcal{S} \mid S_{\mathrm{synth}}(c) \ge \theta \right\}
通俗解释:从“理论上稳定”的候选人里,再挑出“真正请得动、养得起”的人发 offer。
  1. 稳定候选集合已经通过凸包距离筛选的材料。
    S\mathcal{S}
  2. 可合成性评分根据合成难度、前驱体可得性等给出的经验分数。
    Ssynth(c)S_{\mathrm{synth}}(c)
  3. 合成阈值只有当可合成性评分高于阈值时,才值得送进实验室。
    θ\theta
  4. 最终优先清单真正交给实验团队验证的材料列表。
    P\mathcal{P}

AI+材料价值

传统试错法发现一种新材料往往要几年甚至几十年。GNoME 把 DFT 计算和机器学习结合,让“候选生成—稳定性预测—验证筛选”的周期大幅缩短。这种范式的价值,不仅在于某个材料,而在于整个材料科学的研究方式被重构。

衡量这套系统最直接的指标是“命中率”:送进实验室的候选里,有多少真的被验证为稳定。GNoME 通过主动学习不断提高命中率,最终用极其有限的实验资源换回大量新材料。

命中率公式如下:

对未来而言,GNoME 不只是“材料界的深蓝”,更像是“AI for Science”的样板间。它告诉我们:只要把物理规则、图结构数据和主动学习闭环结合起来,AI 就能在真实科学发现中当主角。

hit_rate=NverifiedNtested\displaystyle\mathrm{hit\_rate} = \frac{N_{\mathrm{verified}}}{N_{\mathrm{tested}}}
通俗解释:猎头推了十个人,有八个成功入职,那这位猎头的命中率就是 80%。
  1. 送实验候选数计算与实验团队实际尝试合成的材料数量。
    NtestedN_{\mathrm{tested}}
  2. 验证成功数其中被实验确认为稳定相的材料数量。
    NverifiedN_{\mathrm{verified}}
  3. 做比值用成功数除以尝试数,得到命中率。
    NverifiedNtested\frac{N_{\mathrm{verified}}}{N_{\mathrm{tested}}}
  4. 优化目标AI 系统要不断提高这个指标,同时降低每次验证的成本。
    hit_rate\mathrm{hit\_rate}

AI 应用场景

高通量虚拟筛选新材料

阶段:候选材料筛选

解决的问题:传统方法依赖试错法,每尝试一种新材料都要经过漫长合成和表征,成本极高。GNoME 式的稳定性预测可以在几分钟内给数百万候选打分,再用凸包距离过滤掉大概率不稳定的结构,只留下高潜力候选。

具体案例:某电池团队想找新型固态电解质,传统做法只能测试几十种已知材料。采用 GNoME 思路后,团队先构建候选晶体图,训练图神经网络预测形成能,再用凸包筛选出 500 个候选交给 DFT 验证,最终锁定 20 种高稳定材料进入实验。

扩充材料数据库

阶段:数据生产与标注

解决的问题:材料数据库(如 Materials Project)需要大量高精度 DFT 数据,但计算昂贵。GNoME 用图神经网络作为快速代理模型,批量预测未收录晶体的形成能,再把高置信度结果补充进数据库。

具体案例:某研究组把已有的 10 万条晶体数据用于训练 GNN,然后对 100 万个假想晶体做稳定性预测。预测稳定的 3 万条候选经过 DFT 复核后,有 1.8 万条进入公开数据库,让后续研究者可以直接查询使用。

计算-实验反馈闭环

阶段:实验验证与反馈迭代

解决的问题:模型预测结果如果只是停留在纸面,价值有限。将预测清单交给实验团队验证,再把实验结论反馈给模型,可以持续优化预测精度,让 AI 系统“越用越聪明”。

具体案例:某高校团队用 GNoME 类模型筛选出 50 种候选合金,实验合成了其中 20 种,最终 8 种被证实为稳定新相。他们将这 8 条正样本和 12 条负样本重新加入训练集,下一轮模型的命中率从 30% 提升到 45%。

Python 演示

python54 行
import torchimport torch.nn as nn def make_demo_graph():    x = torch.tensor([        [1.0, 0.0, 2.0],        [0.0, 1.0, 3.0],        [1.0, 1.0, 1.0],    ], dtype=torch.float32)    edge_index = torch.tensor([[0, 1, 1, 2], [1, 0, 2, 1]], dtype=torch.long)    target = torch.tensor(-1.6)    return x, edge_index, target class MessagePassingLayer(nn.Module):    def __init__(self, in_dim, out_dim):        super().__init__()        self.fc = nn.Linear(in_dim, out_dim)     def forward(self, h, edge_index):        src, dst = edge_index        msg = torch.tanh(self.fc(h))        agg = torch.zeros_like(msg)        agg.index_add_(0, dst, msg[src])        return torch.tanh(self.fc(h + agg)) class SimpleGNN(nn.Module):    def __init__(self):        super().__init__()        self.mp1 = MessagePassingLayer(3, 16)        self.mp2 = MessagePassingLayer(16, 16)        self.head = nn.Linear(16, 1)     def forward(self, x, edge_index):        h = self.mp1(x, edge_index)        h = self.mp2(h, edge_index)        return self.head(h).sum() x, edge_index, target = make_demo_graph()model = SimpleGNN()optimizer = torch.optim.Adam(model.parameters(), lr=0.02) for _ in range(300):    optimizer.zero_grad()    pred = model(x, edge_index)    loss = (pred - target) ** 2    loss.backward()    optimizer.step() hull_energy = torch.tensor(-1.5)with torch.no_grad():    pred_energy = model(x, edge_index).item()stable = (pred_energy - hull_energy.item()) <= 0.1print("predicted formation energy:", round(pred_energy, 3))print("stable under convex hull:", stable)
目的:用几十行代码演示 GNoME 的核心思路:图神经网络在原子图上做消息传递,预测整块晶体的形成能,再利用凸包能量判断是否稳定。
  1. msg = torch.tanh(self.fc(h))把每个原子的特征变成一条要发给邻居的消息。
  2. agg.index_add_(0, dst, msg[src])沿着边把邻居消息累加到目标原子,完成聚合。
  3. h = self.mp2(h, edge_index)再重复一轮消息传递,让每个原子了解更大的“朋友圈”。
  4. return self.head(h).sum()把每个原子打分后求和,得到整块晶体的形成能预测。
  5. loss = (pred - target) ** 2计算预测值与目标形成能的均方误差,并反向传播更新模型。

常见误区

误区我原来以为形成能最负的材料一定最稳定,不用管它会不会分解成其他化合物。

正解稳定性是相对比较,不是绝对分数。一个材料即使形成能很低,如果多个已知相按一定比例混合后能量更低,它仍然会分解。凸包距离正是用来判断“有没有更便宜的混合方案”的指标,只看单个形成能会漏掉分解竞争。

为何常见:教材常说“能量越低越稳定”,初学者容易忽略材料之间还存在分解成多相混合物的竞争关系。

误区把材料里的元素比例拼成一个向量,随便丢进回归模型就能预测稳定性,图结构只是花架子。

正解晶体性质强烈依赖原子排列和局部连接。同样元素可以形成金刚石和石墨,性质天差地别。图结构显式建模原子邻居与键长,GNN 才能把几何信息编码进模型;只拼成分会丢失结构信息。

为何常见:传统机器学习常把材料表示成平均成分向量,这种惯性思维很难理解图结构为什么重要。

误区AI 说某个材料稳定,那实验室按配方烧一烧就能做出来。

正解热力学稳定只是必要条件,不是充分条件。合成还受动力学、温度、压力、前驱体路径等因素影响。GNoME 的稳定候选还需要 DFT 复核和实验验证,很多热力学稳定相不一定能找到可行的合成条件。

为何常见:把“计算稳定”和“实验可合成”画了等号,混淆了热力学判据与动力学可及性。

误区模型训练好就能一劳永逸,预测完所有材料,整个流程就结束了。

正解GNoME 是一个主动学习闭环。初始模型挑选候选,DFT 验证结果被加回训练集,再重新微调模型。每一轮迭代都在提高下一轮命中率,发现过程是滚动的。

为何常见:把 AI 当成离线打分工具,忽略了科学发现中“验证结果反馈模型”的关键循环。

误区只要 ΔE_hull 是负数,这个材料就一定能在任何条件下稳定存在。

正解计算和实验都存在误差,实际中常用每原子约 0.1 eV 的容差判断。而且材料可能位于凸包线附近,受动力学屏障影响以亚稳相存在。凸包距离是一个强信号,但不是绝对保证。

为何常见:模型给出的是数值预测,初学者容易把阈值当成精确物理定律,忽视了误差和实验条件。

面试题

Q1. 某候选化合物的形成能高于同成分凸包线,它的命运最可能是?

单选题 · easy

  • A.被判定为稳定材料
  • B.相对凸包不稳定← 正确答案
  • C.一定无法做实验
  • D.一定具有超导性

答案:B。形成能高于凸包线,说明存在已知相按比例混合后能量更低,化合物倾向于分解。就像合租方案贵过现有最优方案,自然不被选择。

Q2. 晶体图中原子节点的初始特征通常不包含以下哪项?

单选题 · easy

  • A.原子序号
  • B.价电子数
  • C.论文引用数← 正确答案
  • D.原子半径

答案:C。原子节点特征来自元素本身的性质,例如原子序号、价电子数、原子半径。论文引用数与材料本身无关,不会作为晶体图节点特征。

Q3. 形成能公式中的 ΣnᵢEᵢ 在物理上代表什么?

单选题 · easy

  • A.纯元素参考态总能量← 正确答案
  • B.晶体内部总动能
  • C.凸包附近的混合相
  • D.实验合成所需时间

答案:A。ΣnᵢEᵢ 表示把化合物拆成同量纯元素后,这些纯元素各自独立存在时的总能量。形成能就是化合物总能量减去这个参考态能量。

Q4. 凸包距离 ΔE_hull 使用“每原子 eV”表示,这样做的主要好处是?

单选题 · mid

  • A.方便不同尺寸晶体公平比较← 正确答案
  • B.让所有元素颜色更加统一
  • C.让模型训练速度明显提升
  • D.让能量变成无量纲的数值

答案:A。不同材料的晶胞原子数不同,总能量差不能直接比较。除以原子数得到每原子能量,可以消除尺寸影响,让大小晶体放在同一把尺子上比较。

Q5. 在 GNN 消息传递层中,对一条有向边 (u→v) 通常需要完成哪些操作?

多选题 · mid

  • A.从源节点生成消息← 正确答案
  • B.沿边把消息发给目标← 正确答案
  • C.把消息累积到源节点
  • D.更新节点自身特征← 正确答案

答案:ABD。消息从源节点 u 生成,沿边发给目标节点 v,并被累积到目标节点上。节点 v 再做自身特征更新。把消息累积到源节点是方向错误。

Q6. GNoME 使用主动学习的主要目的不包括?

单选题 · mid

  • A.减少昂贵 DFT 计算量
  • B.挑选最有价值候选
  • C.把验证结果反馈进训练
  • D.完全替代所有实验仪器← 正确答案

答案:D。主动学习让模型优先挑选信息量大的候选交给 DFT 验证,再用验证结果迭代训练,从而减少高成本计算。但它不可能完全替代实验仪器,真实合成仍然必不可少。

Q7. 当模型给出数千个“稳定”候选而实验产能有限时,最合理的策略是?

单选题 · hard

  • A.按可合成性和信息增益排序← 正确答案
  • B.把全部候选直接送去合成
  • C.用随机抽签的方式挑选
  • D.停止计算等待硬件升级

答案:A。实验资源有限时,应优先选择可合成性高、对模型信息增益最大的候选。这样既能提高实验命中率,又能用实验结果进一步改善模型。

Q8. 关于热力学稳定与实验合成的关系,以下说法正确的有?

多选题 · hard

  • A.稳定预测是必要非充分条件← 正确答案
  • B.亚稳相也可能被实验合成← 正确答案
  • C.热力学稳定代表性能优异
  • D.动力学路径会影响合成结果← 正确答案

答案:ABD。热力学稳定是合成的必要条件,但合成还受动力学控制。亚稳相可能因为能量壁垒而长期存在,稳定相也可能因合成路径不对而得不到。稳定不代表性能一定优异。

Q9. 若新候选的形成能恰好等于当前凸包线,最合理的解释是?

单选题 · hard

  • A.它落在最有利能量边界上← 正确答案
  • B.它一定完全无法被合成
  • C.它必然富含稀有元素
  • D.它肯定具有金属光泽

答案:A。形成能等于凸包线,说明该候选位于热力学最有利边界上,至少与已知稳定相能量相当。至于能否合成、元素组成和物理性能,都无法仅凭这一点判断。

Q10. GNoME 的图神经网络相比传统成分式回归的主要优势有哪些?

多选题 · extreme

  • A.显式编码原子相对位置← 正确答案
  • B.可聚合局部键合环境← 正确答案
  • C.天然利用平移对称性← 正确答案
  • D.完全消除数据集偏差

答案:ABC。图神经网络用节点和边表示原子与键,显式编码原子位置与局部环境;同一结构平移后图不变,因此天然具备平移对称性。但数据集偏差不会因为用了图结构就自动消失。