返回列表

PB: 42nd - LB: 30th Place Solution [LB: 0.060, PB: 0.087]

667. NeurIPS - Open Polymer Prediction 2025 | neurips-open-polymer-prediction-2025

开始: 2025-06-16 结束: 2025-09-15 化学与材料 数据算法赛
PB: 第 42 名 - LB: 第 30 名解决方案 [LB: 0.060, PB: 0.087]

PB: 第 42 名 - LB: 第 30 名解决方案 [LB: 0.060, PB: 0.087]

副标题:ChemBERTa, GNN, GREA, CatBoost 的集成

作者:Nakanishi Wataru (中西 渡)

发布时间:2025-09-25

竞赛:NeurIPS Open Polymer Prediction 2025


背景


方法概述

我们的最终模型是三个模型的加权平均集成:

  • 基于 ChemBERTa 的回归模型 (PB/LB = 0.088 / 0.067)
  • GNN-GREA 集成模型 (PB/LB = 0.093 / 0.067)
  • CatBoost (PB/LB = 0.092 / 0.065)

通过实验,我发现集成权重 (BERT = 0.33, GNN-GREA = 0.24, CatBoost = 0.43) 将 LB 分数最小化至 0.065


模型细节

灵感

起初,我从 EUOS/SLAS 联合挑战赛:化合物溶解度 的第 1 名解决方案中获得了灵感。

解决方案架构图

(图片引用自 PDF。)

我的目标是通过连接嵌入并使用 MLP 进行预测来实现类似的想法。

GNN-GREA

基于 torch-molecule 仓库 中的实现,我创建了训练/推理管道,并稍微修改了库以输出隐藏状态向量。

  • 训练设置:batch size = 512, 250 个 epoch
  • 执行了超参数优化(60 次试验)
  • GNN 和 GREA individually 均达到了 LB = 0.073
  • 平均它们将 LB 降低至 0.067

代码:GREA+GNN 集成

基于 ChemBERTa 的模型

基于实现参考,我创建了代码,使用 2GPU 训练 ChemBERTa。

  • 训练设置:2GPUs(T4), batch size = 64, 学习率 = 0.001, epochs = 80
  • 针对每个属性分别训练
  • ChemBERTa 达到 LB = 0.067

代码:ChemBERTa 推理

CatBoost

我使用了基线,它采用 Mordred 描述符作为特征。
我发现添加以下指纹将 LB 分数从 0.068 提高到了 0.065

  • MACCS keys
  • Morgan fingerprints
  • RDKit fingerprints
  • Atom pair fingerprints

集成模型

最初,我尝试连接 BERT 和 GNN 的隐藏状态向量,随后训练一个 MLP (代码在此),达到了 LB = 0.066,但表现并未超越。

相反,我尝试了另一个想法,即三种不同模型类型(ChemBERTa, GNN+GREA, CatBoost)的加权平均集成。
经过多次实验,最优权重为 (BERT = 0.33, GNN-GREA = 0.24, CatBoost = 0.43),达到了最佳 LB = 0.060

代码:BERT GREA-GNN CatBoost 集成

数据增强

我在整个竞赛中使用了广泛共享的增强技术:

  • 标准化 -> 枚举,凯库勒化,立体枚举
    对于 ChemBERTa,增强应用于训练和推理期间。
    对于 GNN 和 GREA,增强仅应用于推理期间 (TTA),这将 LB 提高了约 0.001

后处理

未应用后处理。


无效的方法

  • 决策树的超参数优化 (Optuna):
    优化 CatBoost 的 depth 和 n_estimators 并没有显著改善 LB。
  • 决策树的特征工程:
    向 Mordred 描述符添加指纹提高了性能,但基于 PCA 的降维实际上恶化了分数。
  • 其他树模型:
    与许多顶级解决方案不同,XGBoost 和 LightGBM 在我的案例中效果不佳。TabTransformer/TabPFNRegressor 也表现不佳且消耗过多内存,因此我将它们排除在最终集成之外。

总结

这是我第二次参加 Kaggle 竞赛。成功的一个关键因素是利用类似竞赛中先前顶级解决方案的想法。

正如广泛讨论的那样,公共测试数据和私有测试数据之间存在分布偏移,导致排行榜出现显著的上下波动。有趣的是,许多顶级解决方案都应用了后处理,但由于我没有应用,我预期会有更大的排名下滑。然而,我的最终位置保持相对稳定,这相当令人惊讶。

同比赛其他方案