616. NeurIPS 2024 - Predict New Medicines with BELKA | leash-BELKA
业务背景:https://www.kaggle.com/competitions/leash-BELKA/overview
数据背景:https://www.kaggle.com/competitions/leash-BELKA/data

解决方案总结:基于配体、仅 SMILES、多靶点 Transformer 模型,分别在共享和非共享构建块划分上独立训练。对于非共享块,使用了特殊的命中识别数据划分技术和 k 折训练与验证。模型针对测试集的共享和非共享部分独立平均。
这场竞赛的关键在于相似分子倾向于具有相似性质——这是初始命中化合物先导优化的主要假设。然而,正确的评估策略很少被应用,这就是为什么最近推出了 Polaris,这是一个为药物发现建立无偏基准的集体努力。此外,很难说什么是特定任务的正确方法。然而,我的同事 Simon Steshin 最近表明,对于新命中化合物识别,应考虑按 0.4 Tanimoto 相似度进行划分策略 (Lo-Hi: Practical ML Drug Discovery Benchmark)。也许我们可以应用类似的方法在其他任务中构建更具泛化能力的模型,特别是在这场竞赛中,66% 的私有分数 dedicated 于分布外分子。
组织者提供的分子由三个构建块组成,因此我们可以考虑按构建块的相似度进行划分。让我们检查测试构建块与训练构建块的分布:

训练集和测试集之间有许多共享的构建块(最大 Tanimoto 为 1.0),我们显然需要避免在我们的非共享训练/验证划分中出现相同的情况。我们看到 BB1 不与 BB2 相交,而 BB2 与 BB3 显著相交。除了明显的重复外,还有许多相似的构建块,根据上述假设,这将给我们的评估引入强烈的偏差。
所以,让我们消除这种偏差。我们将使用来自 Lo-Hi 基准的 Hi 划分算法,该算法解决平衡顶点最小 k-割问题,以构建训练集和验证集,使得两个集合之间最近的分子至少相隔截止 Tanimoto 距离 (代码)。为了决定使用什么阈值,让我们查看每个块位置的训练集 Tanimoto 相似度分布,仅考虑相同位置(我们稍后将处理 BB2-BB3 交叉位置):

设置什么阈值是一个开放性问题,最有可能的是使用多个阈值是最好的方法。我选择了接近每个位置相似度平均值的阈值(别问我为什么):BB1<->BB2 为 0.7,(BB2+BB3<->BB2+BB3) 为 0.4。是的,我合并了 BB2 和 BB3,因为它们已知相互交叉。好吧,这个划分是最难的。在其上训练模型会很快显示 nothing is working(换句话说,结构相似性驱动了与活性的大量相关性)。

注意构建块的独占性——如果一个块出现在一个集合中,它不能以任何可能的组合出现在另一个集合中。
虽然 Hi 划分很有用,但对于竞赛问题来说可能过于悲观,并且由于将构建块独占分配给训练/验证集而删除了大量数据。因此,我决定创建一个更简单的划分,接近其他参与者在复制 host 划分时所做的事情,但在几个方面有所不同:
总的来说,折看起来像这样(为简单起见不考虑随机化):
| 折 (Fold) | BB1 | BB2&BB3 | BB3\BB2 | 训练大小 | 训练阳性率 | 验证大小 | 验证阳性率 |
|---|---|---|---|---|---|---|---|
| 1 | 0-50 | 0-101 | 0-5 | 1 875 494 | 50% | 356 620 | 1.67% |
| 2 | 51-101 | 102-203 | 6-11 | 1 777 354 | 50% | 406 629 | 1.62% |
| 3 | 102-152 | 204-305 | 12-17 | 1 430 522 | 50% | 363 503 | 2.96% |
| 4 | 153-203 | 306-407 | 18-23 | 1 924 372 | 50% | 311 943 | 1.47% |
| 5 | 204-254 | 408-509 | 24-29 | 1 903 992 | 50% | 313 838 | 1.47% |
与 HIBB 划分一样,每折的验证集大小相似,但我们现在有更多的训练数据:

训练集和测试集之间共享构建块的策略很明确——我们只需要过拟合已知的构建块,同时覆盖尽可能多的数据。因此,在这里,我使用了所有 9800 万个分子,其中我随机选择了 1% 用于验证,99% 用于训练。
简单来说,我使用的训练策略如下:
我尝试了大量的模型,并对以下模型进行了广泛的超参数调优(特别是在非共享构建块上):
SimAttn 模型)可以从最近的排名分子列表中学习,它确实做到了,但我无法用它达到足够高的 AP综上所述,表现最好的模型是微调的 MolFormer(4500 万参数)和自定义 RoBERTa(约 800 万参数),如 我公司最近的论文 所述。自定义主要涉及 500 大小的 BPE SMILES tokenizer,30% 的情况下 15% 的掩码 token,以及 50% 的情况下的 SMILES 重新枚举。
我对未见化学子空间泛化能力的看法:
我感谢 Copilot 和 Continue.dev 一直作为我的编码队友。我也感谢我的同事 Simon 他在分子基准测试方面的公开工作。我感谢其他参与者的解决方案和讨论;我没有时间参与讨论,但我与其中许多人保持一致。非常感谢 Leash Bio 和 Kaggle 组织这场竞赛。对于私有 leaderboard 上被打乱的团队,我很抱歉。我在比赛结束前十天就有了 0.299 的解决方案,所以我预计许多其他团队也会发生同样的情况。我相信他们都努力破解这个未解决但引人入胜的小分子泛化问题。