↑↑↑关注后"星标"kaggle竞赛宝典
kaggle竞赛宝典 作者:M Sato
NeurIPS 2024金牌方案
赛题背景简介
NeurIPS 2024比赛希望通过利用机器学习技术彻底改变小分子结合预测。机器学习方法最新进展表明:有可能通过使用经过良好训练的计算模型推断搜索化学空间,而不是进行实验室实验。其他领域中的类似进展表明,使用机器学习在广阔领域中搜索可能是一种可推广的方法,适用于许多领域。
本次竞赛通过提供BELKA,我们将使计算药物发现的某些方面democratize,并帮助社区发现新的拯救生命的药物.
方案简介
Public第二名的方案采用的方案框架主要由:CNN, GBDT和GNN模型融合.
1. 共享模块
1.1 CNN 模型
- 将过滤器大小从32、64、96翻倍到64、128、192;核大小从3、3、3增加到19、9、3。ReLU激活函数被替换为SiLU。
- 对于第二个模型,我们在嵌入后添加了一个双向GRU层,并将其与全局最大池化后的卷积层连接起来。
- 我们对以上两个模型进行了加权平均,分别使用训练和无验证集的总共四个CNN模型。
1.2 XGBoost & LightGBM
- 数据:一个包含所有结合分子的样本和非结合分子的随机样本(对于GBDT总共50M或40M,对于chemprop为10M)
- 特征:对于一个模型,我们在SECFP4(比特=1024)中添加了来自chemprop(版本2.0,FFN中的第3个线性层的输出)的预测,对于另外两个模型,我们在ECFP4(比特=1024)中添加了BB活动特征(当给定BB smiles出现在给定位置时结合的化合物的比例)。对于LightGBM,我们使用了SECFP4(比特=1024)和SECFP6(比特=2048)。
- 训练:一个模型在训练数据的5个部分上进行了5次训练,每次去掉20%的随机BB,其他训练在50M样本中(不包括验证和测试子集)。
- XGBoost训练参数:eta 0.05,max_depth: 25,subsample: 0.2,sampling_method: gradient_based,colsample_bytree: 0.4,min_child_weight: 4,gamma: 2,num_boost_round = 5000,early_stopping_rounds = 30。
- LightGBM训练参数:max_depth: 11,bagging_fraction: 0.9,learning_rate: 0.05,colsample_bytree: 1,colsample_bynode: 0.5,lambda_l1: 1,lambda_l2: 1.5,num_leaves: 490,min_data_in_leaf': 50。
1.3 GNN
使用了hengck23 Public的Notebook,只做了一些小的更改(原子类型列表被截断为实际训练/测试数据集中的原子)。
对于这部分,我们使用加权平均值来将每个蛋白质的预测组合在一起,使用局部得分(与LB完美相关性):BRD4:4个模型,HSA:7个模型,sEH:5个模型。
2. 非共享模块
为了那些具有非共享Building Blocks的分子创建一个可靠的交叉验证是困难的,因此我们基于公共得分进行了两种集成方法,并将它们用于最终提交。
2.1 最终提交1(公共0.488/私有0.275):模型集成之后的排名
对于这个解决方案,为了减少因公共和私有得分之间差异而导致的波动,我们对以下两个基于ChemBERTa的模型进行了集成,这两个模型对非共享区块中所有蛋白质的预测都相当不错。我们将每个模型的预测转换为排名,以解决模型之间规模差异的问题。
附录:模型参数
参考文献
- https://www.kaggle.com/competitions/leash-BELKA/discussion/519133
- https://www.kaggle.com/competitions/leash-BELKA/overview