AI 制药领域的论文常常报告令人印象深刻的指标。但相当一部分「提升」来自评测设置而非方法本身。了解这些陷阱,既是读论文的必备能力,也是做自己的工作时避免自欺的前提。
陷阱一:宽松的数据划分
# 最常见也最严重的问题(见 167)
#
# 表现:
# 用随机划分报告主要结果
# 骨架划分的结果放在附录,或干脆不做
#
# 为什么高估:
# 药物数据成系列产生,同系列分子高度相似
# → 随机划分让测试集的「近亲」留在训练集
#
# 【识别方法】:
# □ 论文用了什么划分?主表用的是哪个?
# □ 有没有报告测试集与训练集的相似度分布?
# □ 不同划分下的差距有多大?
#
# 【DTI 任务的特殊形式】(见 157):
# 药物-靶点矩阵的随机划分
# → 「药物均值 + 靶点均值」的平凡基线
# 就能接近深度模型
# □ 论文有没有报告这个基线?
陷阱二:不公平的基线
# 表现:
# 新方法精心调优(贝叶斯优化、几十次试验)
# 基线用默认参数跑一次
#
# 【超参数优化带来的提升常常大于换模型】(见 131)
# → 这样比较,「提升」的来源无法区分
#
# 其它形式:
# - 基线用了过时的实现或版本
# - 基线的特征工程明显不如新方法
# - 只与弱基线比,不与该任务的实际最优方法比
# - 【不与 ECFP + 梯度提升这个强基线比较】
#
# 【识别方法】:
# □ 基线的调优预算是多少?与新方法相同吗?
# □ 有没有 ECFP/描述符 + 树模型的基线?
# □ 基线的数字与其原论文报告的一致吗?
# (明显偏低说明基线没跑好)
陷阱三:单次运行与选择性报告
# 表现:
# 只报告一个数字,没有标准差
# 或只报告最好的一次运行
#
# 为什么严重:
# 分子数据集常常只有几百到几千个样本
# → 【不同随机种子的结果差异可能大于方法间差异】
#
# 【识别方法】:
# □ 报告了几个种子?有标准差吗?
# □ 提升幅度与标准差相比如何?
# 提升 0.02 而标准差 0.03 → 【没有意义】
# □ 有没有做显著性检验?
#
# 相关的问题:
# - 在测试集上调超参数(测试集泄漏)
# - 报告最佳 epoch 的结果而非早停选出的
# - 多个数据集中只报告表现好的那些
#
# 【一个提示】:
# 如果论文在 10 个数据集上都「全面领先」,
# 这本身就值得怀疑 ——
# 真实的方法通常各有所长
陷阱四:数据泄漏
| 类型 | 表现 |
|---|---|
| 重复分子 | 同一分子(不同 SMILES 写法)出现在训练与测试集 |
| 预训练泄漏 | 测试集分子在预训练数据中 |
| 特征泄漏 | 特征中包含了标签的信息 |
| 时间泄漏 | 用未来的数据预测过去 |
| 基准自身的偏倚 | DUD-E 的诱饵与活性分子性质分布不同(见 241《DUD-E》) |
| 结构基模型的配体偏倚 | 只用配体特征就能达到接近的成绩(见 238《PDBbind》) |
「只用配体特征的对照基线」是评估所有基于结构的模型时必须做的:如果不看蛋白也能达到接近的成绩,说明模型没有真正利用结构信息。
陷阱五:指标与实际需求脱节
# 表现:
# 报告 ROC-AUC,而实际关心的是前 1% 的富集
#
# 为什么误导:
# 【ROC-AUC 在极度不平衡时会给出误导性的高值】
# 真实筛选中活性分子可能只占 0.1%
# → AUC 0.9 听起来很好,
# 但前 1% 中可能几乎没有活性分子
#
# 应该报告的:
# 虚拟筛选:EF@1%、EF@0.1%、BEDROC
# 排序任务:分组内的 Spearman
# 分类任务:PR-AUC、特定召回率下的精确率
#
# 其它形式:
# - 生成模型报告有效性/唯一性(区分度已很低,见 135)
# - 报告整体相关性而非分靶点/分系列的相关性
# - 用 RMSE 评价一个实际用于排序的模型
#
# 【识别方法】:
# □ 这个指标对应什么实际决策?
# □ 有没有报告更贴近实际需求的指标?
陷阱六:缺乏实际验证
- 表现:所有结论都来自回溯性的基准测试,没有任何前瞻性验证;
- 为什么重要:基准测试是「已知答案的考试」,而实际应用是「未知答案的预测」——两者的差距可能很大;
- 更有说服力的证据(按强度递增):
- 在独立的外部数据集上验证;
- 时间划分的前瞻性验证;
- 实际合成并测试了生成/预测的分子;
- 发现的分子进入了后续研发。
- 识别方法:直接搜索论文中有没有「synthesized」「experimentally validated」「we tested」这类描述,以及具体测了多少个、结果如何。
阅读时的快速检查清单
# 【5 分钟快速评估】
#
# 数据:
# □ 数据集大小?(几百个 → 结论要打折)
# □ 划分方式?(随机 → 主要结论存疑)
# □ 有没有相似度分布的分析?
#
# 基线:
# □ 有 ECFP + 树模型的基线吗?
# □ 基线的调优预算与新方法相同吗?
# □ 有任务特定的平凡基线吗?
# (DTI: 药物均值;结构模型: 只用配体特征)
#
# 统计:
# □ 几个种子?有标准差吗?
# □ 提升 vs 标准差的比例?
#
# 指标:
# □ 指标对应什么实际决策?
#
# 验证:
# □ 有前瞻性/实验验证吗?
#
# 可复现:
# □ 代码与数据可用吗?
# □ 超参数与随机种子有记录吗?
#
# 【如果前四项中有两项以上不过关,
# 这篇论文的主要结论就不应该直接采信】
# 【更重要的一点】:
# 这些检查同样适用于【你自己的工作】
# → 在向团队汇报结果前,自己先过一遍
# → 【避免自欺比识别别人的问题更重要】
关键要点
- 宽松的数据划分是最常见也最严重的问题——随机划分下的数字几乎没有参考价值;
- 基线必须获得同等的调优预算,否则无法区分提升来自架构还是调参;
- 小数据集上种子间方差可能大于方法间差异——没有标准差的单个数字不足信;
- 这些检查更应该用在自己的工作上——避免自欺比识别别人的问题更重要。
延伸资源
- 论文阅读框架:170《AI 制药论文阅读框架》;模型外推性:167《模型外推性》;
- MoleculeNet:132《MoleculeNet 论文精读》;DUD-E:241《DUD-E》;LIT-PCBA:242《LIT-PCBA》;PDBbind:238《PDBbind》。