1. 材料图神经网络工程导论
材料信息学把材料科学问题转化为可计算、可检索、可学习的数据问题;图神经网络(Graph Neural Network, GNN)则提供了一种天然适配晶体与分子结构的表示学习工具。两者的交叉点在于:材料的物理化学性质往往由局部原子环境及其连接关系决定,而图结构恰好能同时表达“原子是什么”和“原子如何连接”。本课程的目标不是停留在算法原理,而是把这种表示能力落到可复现的工程流程中。
1.1 为什么材料适合用图表示
在传统材料描述符中,成分、晶格常数、空间群、电负性差等特征被拼接成固定长度向量。这种方式对成分敏感,却容易丢失局部配位信息。例如同为TiO₂,金红石与锐钛矿的配位数和连接拓扑不同,带隙与催化活性差异显著。图表示把晶体抽象为:节点=原子(含元素类型、坐标、氧化态等),边=原子间连接(含距离、键角、周期性镜像关系)。这样,模型可以在消息传递中逐层聚合邻域信息,学习到“八面体配位”“四面体配位”“层状堆垛”等结构模式。
以晶体图构建为例,常用做法是:设定截断半径r_cut(如6.0 Å),对每个原子搜索其邻域原子,若距离小于r_cut则建立边,边特征可包含距离的径向基展开。对于周期性体系,还需考虑跨越晶胞边界的镜像原子,通常通过最小镜像约定或显式扩展超胞处理。节点特征可包括原子序数、电负性、原子半径、轨道信息等;边特征可包括距离、方向余弦。这些选择直接决定模型能学到什么,也决定后续工程中数据管线的复杂度。
1.2 工程化应用全景
材料GNN的工程化应用可以按“预测目标”和“数据条件”两个维度展开。在数据条件充足时,监督学习可直接用于性质预测,如带隙、形成能、弹性模量、离子电导率等。在数据稀缺时,则需引入迁移学习、多任务学习或主动学习。典型场景包括:
- 性质预测:以晶体图或分子图为输入,回归或分类目标性质。例如用MEGNet在Materials Project数据上预测形成能,MAE可控制在0.03 eV/atom量级(示例值,随数据集划分与模型配置变化)。
- 结构筛选:对大规模候选结构进行快速打分,缩小后续DFT计算范围。工程上常把GNN作为“预筛选器”,把计算资源集中在高潜力候选上。
- 逆向设计:给定目标性质,生成或搜索满足条件的成分与结构。此时GNN可作为代理模型嵌入优化循环,与遗传算法、贝叶斯优化或扩散模型结合。
- 势函数与分子动力学:以GNN拟合势能面,替代部分第一性原理计算,用于有限温度下的结构演化模拟。
这些场景共享一条工程主线:数据获取与清洗、图构建、模型训练、验证与不确定性量化、部署与迭代。区别在于数据规模、目标维度和对不确定性的要求不同。例如性质预测更关注MAE,而逆向设计更关注生成样本的多样性与物理可行性。
1.3 课程项目目标与工具链
本课程以一个贯穿式项目为主线:从公开材料数据库出发,构建晶体图数据集,训练GNN模型预测目标性质,并完成评估与简单筛选。项目不追求覆盖所有GNN变体,而是让每个环节都可运行、可检查、可复现。建议的工具链如下:
| 环节 | 推荐工具 | 用途说明 |
|---|---|---|
| 结构解析 | pymatgen / ASE | 读取CIF、POSCAR,处理周期性边界,导出原子坐标与晶格 |
| 图构建 | PyTorch Geometric / DGL | 将结构转为节点-边图,支持邻域采样与批处理 |
| 模型实现 | PyTorch + SchNet/MEGNet/CGCNN | 消息传递、池化、读出层,支持自定义边特征 |
| 训练管理 | PyTorch Lightning / 自定义循环 | 学习率调度、早停、检查点保存 |
| 评估与可视化 | scikit-learn / matplotlib / seaborn | MAE、RMSE、 parity plot、误差分布 |
一个最小可运行示例的配置如下(示例参数,需根据实际数据调整):截断半径6.0 Å,节点特征维度64,边特征维度128,消息传递层数4,隐藏层维度128,批量大小32,初始学习率1e-3,Adam优化器,早停耐心20轮。数据划分建议按成分或结构类型分组划分,避免同构材料同时出现在训练集和测试集导致指标虚高。