传统的材料性质预测依赖手工描述符——电负性、离子半径、价电子数等做特征,随机森林或XGBoost做回归。这条路在组分空间内表现不错,但一旦问”这个晶体结构和那个晶体结构比,谁的带隙更小”,光靠成分信息就不够了——结构差异才是关键。图神经网络(GNN)打开了另一扇门:直接把晶体结构当图输入,让网络自己学”什么结构特征决定什么性质”。

晶体结构天然是图——原子是节点、原子间相互作用是边。但”怎么定义边”是整个流程中最关键的预处理步骤,选错了后面全跑偏。
多高斯展开边特征。 这是CGCNN(2018)的做法。对每个原子,找12个最近邻原子,在每一对之间建一条边。边的特征不是直接放键长,而是把键长通过一组高斯函数展开——每个高斯函数的中心在不同距离上,距离越接近某个中心,响应越强。这样做的好处是:网络不需要先学”键长”这个概念,Gaussian展开已经把距离变成了一个高维的”化学敏感”特征向量。
最大截断距离是个关键参数。 12个最近邻这个规则对无机晶体通常够用,但对分子晶体或低维材料可能过度——把没有化学键合的远邻也拉进图里当边,等于引入噪声。MEGNet(2019)在这个问题上改用了固定的截断半径(默认4 Å),对所有距离小于阈值的原子对都建边。这个方案更接近”物理键合”的定义,但对高密度相和低密度相需要设不同的截断半径,不够通用。
节点特征方面,早期的CGCNN只用了9个原子属性(原子序数、电负性、电离能等),后来ALIGNN(2021)在这个基础上加入了键角信息作为额外的图边——把二面角也编码进图结构,对捕捉配位多面体的取向和畸变更敏感。
图的”消息传递”层是GNN区别于传统描述符方法的核心。每一层消息传递中,每个节点从它的邻居节点接收消息(隐藏特征向量),和自身特征聚合,更新自己的特征。经过2-3层消息传递,每个节点”看到”了它第一、第二、第三近邻的化学环境——对应两体、三体、四体相互作用。
消息聚合函数有三种常见选择:均值聚合(所有邻居特征取平均,简单但丢失分布信息)、最大池化(取邻居中最大的特征值,对”有没有某个关键元素”敏感)和注意力机制(让网络自己学哪个邻居更重要)。注意力机制的数学表现最好,但计算量也最大——对几千个原子的体系,注意力权重矩阵的内存开销可能超过GPU显存。
层数不能无脑堆。GNN层数多了会出现”过平滑”(oversmoothing)——所有节点的特征向量趋向相同,不同局部化学环境的区分度消失。对晶体结构预测,2-4层消息传递通常在性能和过平滑之间达到平衡。
消息传递之后,每个节点有一个特征向量,但材料性质是整个晶体的全局属性——形成能、带隙、体模量,不是单个原子的。全局池化(global pooling)把所有节点的特征聚合成一个固定长度的向量,然后通过全连接层输出性质预测值。
最简单的全局池化是取所有节点特征的均值——速度快,但对掺杂、缺陷等局部不均匀性不敏感。Set2Set池化(CGCNN采用)通过一个LSTM递归地从节点集合中提取信息,效果比均值好但计算代价高。注意力池化给不同节点赋不同权重——比如在预测带隙时,网络可能自动给过渡金属原子的特征更高的权重,因为d轨道位置对带隙影响最大。
GNN在形成能预测上的表现近年来稳步提升:CGCNN在Materials Project数据集上的形成能RMSE约80 meV/atom,ALIGNN降到约50 meV/atom,最新的ORB模型在特定测试集上到了20-30 meV/atom区间——已经接近DFT不同泛函之间的差异量级。
但对带隙的预测RMSE仍然在0.3-0.5 eV区间,改善缓慢。根本原因是带隙是电子结构的直接投影,而GNN输入的是原子坐标和元素种类——它没有显式地解Kohn-Sham方程。GNN通过结构信息间接推断电子性质,在带隙这种对电子关联敏感的指标上天然天花板比形成能低。
部署GNN做材料筛选的真正价值在于速度:一个训练好的GNN模型预测一个结构的形成能只需要几毫秒,而DFT需要几十分钟到几小时。用它做粗筛——从几十万种候选压到几百种——时间优势是压倒性的。但最终验证必须回到DFT——不是GNN不够好,而是材料发现的风险不应该完全押在代理模型上。
参考文献:Xie & Grossman, Phys. Rev. Lett., 2018, 120, 145301;Chen et al., Chem. Mater., 2019, 31, 3564-3572;Choudhary & DeCost, npj Comput. Mater., 2021, 7, 185.