3.7.1 Tox21:标签来自实验
Tox21 是美国 NIH(NCATS 与 NTP)、EPA 与 FDA 的联合毒理学计划:以定量高通量筛选(quantitative high-throughput screening, qHTS)在 1536 孔板上对约一万个化合物逐个测定浓度–响应曲线(Huang et al., 2016)。MoleculeNet 收录的教学子集含约 7,831 个分子、12 个二分类任务(Wu et al., 2018)。任务分两类:七个核受体(nuclear receptor)任务——雄激素受体 AR 及其配体结合域、芳香烃受体 AhR、芳香化酶、雌激素受体 ER 及其配体结合域、PPARγ;五个应激反应(stress response)任务——抗氧化应答元件(response element) ARE、DNA 损伤反应 ATAD5、热休克 HSE、线粒体膜电位 MMP、p53 通路。
标签的来历要先讲清楚。矩阵的每一格背后是一条真实的实验曲线:样品按若干浓度点处理,仪器读数拟合为浓度–响应关系,再按曲线形态归为命中或不命中。标签来自测定,不是计算,也不是人工推断。这决定了它的性质:权威性来自实验,噪声也来自实验——假阳与假阴是生物学变异与仪器的产物,不存在标注者分歧那类监督噪声。3.3 节的基线纪律在此同样成立:任何模型的成绩,都要对照这层实验噪声来读。
两个特征把这份数据变成对学习器的双重刁难。其一,类别不平衡(class imbalance):命中是少数,各任务阳性占比普遍只有百分之几。全判负的平凡解,损失已经相当低;负例主导梯度,模型稍弱就滑向悲观。其二,标签稀疏(label sparsity):许多分子只在部分任务上有测,y 矩阵含大量未知格(1.3 节)。每个任务的有效数据因此更少,批内的有效样本数还随批波动。图 3.7-1 用一小块标签矩阵示意三色格局。
两者叠加,才有本节的标题。多任务与类别不平衡不是两件可以分别打发的小事,它们互相纠缠:稀疏让不平衡更尖锐(有效正例更少),不平衡又让掩码损失的设计更讲究(权重往哪里放)。3.2 至 3.6 节的模型一律可在此使用,变化全在损失、采样与评估的口径上。
3.7.2 稀疏标签与掩码损失
3.1 节把“缺失”表达为权重掩码(weight mask) w:wit = 1 表示分子 i 在任务 t 的标签真实存在,wit = 0 表示未知。落到二分类,多任务训练用的就是掩码损失(masked loss)——按格过滤的二元交叉熵:
式子的要点全在求和范围:Ω 只含 w = 1 的格子,未测的格子在 y 里填什么都不影响损失。缺失是“不知道”,负例是“知道为否”,两者在 y 矩阵里都可写成 0,语义相反,w 是唯一仲裁者。把未测当阴性训练,等于向模型宣布它从未获得的证据:分子 i 在任务 t 的活性从未测定,模型却收到一条“确为负”的梯度。后果是系统性的——预测概率被整体压低,正例召回受损;任务的正例率口径被稀释,评估随之失真。
缺失标签误当负例,三个环节都会遭殃。① 数据侧:报告每任务有效标签数 |Ωt| 与总格数 N×T 之比,缺失占比应与数据来源核对;② 训练侧:任何损失先过掩码,缺失格不得贡献梯度;③ 评估侧:AUC、PR 只在有效标签上计算。三处口径一致,掩码才真正闭合;任何一处漏掉,模型读数与实验事实之间就多了一层看不见的偏差。
掩码还带来一个纯统计层面的麻烦:批内有效样本数波动。训练按分子组批,一批 64 个分子落到任务 t 上,有效格数可能是 60,也可能是 7——取决于这批分子恰好在哪些任务上有测。损失若按批平均,任务 t 在不同批里的“音量”忽大忽小,梯度噪声随之增大;极端时一批里某任务的有效格全为负,该批对该任务的梯度只在教模型说“不”。两种缓解:任务感知采样(task-aware sampling)——组批时保证每个任务有起码的有效标签数;或按批内有效格数归一损失,压平音量波动。前者牺牲均匀随机性、引入轻微分布偏移,后者略改各任务的相对权重。都有代价,但都比放任波动好。
习题 3.7-1
8 个分子(m1–m8)× 3 个任务(T1–T3)的标签 y 与模型预测 p 见表 3.7-3,格式“y / p”,∅ 为未测、预测记“—”。损失取掩码二元交叉熵(式 (3.7-1)),并在正类项上乘以正类权重 c1 = 2、c2 = 1、c3 = 3,负类项权重 1(加权的一般形式见 3.7.4 节的式 (3.7-2))。可取 ln 0.9 = −0.105、ln 0.8 = −0.223、ln 0.7 = −0.357、ln 0.6 = −0.511、ln 0.5 = −0.693、ln 0.4 = −0.916、ln 0.3 = −1.204、ln 0.2 = −1.609。(1) 求有效标签数 |Ω|。(2) 计算总损失与平均每有效标签的损失。(3) 若实现有误,缺失格被当作 y = 0 参与训练,模型将向哪个方向偏?说明机理。
| 分子 | T1 | T2 | T3 |
|---|---|---|---|
| m1 | 1 / 0.8 | 0 / 0.4 | ∅ / — |
| m2 | 0 / 0.3 | 1 / 0.8 | 1 / 0.7 |
| m3 | 1 / 0.6 | ∅ / — | 0 / 0.3 |
| m4 | 0 / 0.2 | 0 / 0.3 | ∅ / — |
| m5 | ∅ / — | 1 / 0.6 | 0 / 0.2 |
| m6 | 1 / 0.9 | 0 / 0.5 | 1 / 0.8 |
| m7 | 0 / 0.4 | ∅ / — | 0 / 0.6 |
| m8 | 1 / 0.7 | 1 / 0.9 | ∅ / — |
(1) 有效格:T1 有 7 个(缺 m5),T2 有 6 个(缺 m3、m7),T3 有 5 个(缺 m1、m4、m8),|Ω| = 18。(2) 逐项计算 −[c·y ln p + (1−y) ln(1−p)]。T1(c = 2):m1 得 0.446,m2 得 0.357,m3 得 1.022,m4 得 0.223,m6 得 0.211,m7 得 0.511,m8 得 0.713,小计 3.483。T2(c = 1):m1 得 0.511,m2 得 0.223,m4 得 0.357,m5 得 0.511,m6 得 0.693,m8 得 0.105,小计 2.400。T3(c = 3):m2 得 1.070,m3 得 0.357,m5 得 0.223,m6 得 0.669,m7 得 0.916,小计 3.235。总损失 L = 3.483 + 2.400 + 3.235 ≈ 9.12;平均每有效标签 9.12/18 ≈ 0.51。(3) 未测格被当作高置信负例,每个缺失格贡献一条“确为负”的梯度(本例 6 条),模型被系统性地教成悲观:预测概率整体下压,正例召回受损;同时各任务的表观正例率被稀释(如 T3 从 2/5 降到 2/8),评估口径失真。缺失与负例必须由掩码区分,这正是式 (3.7-1) 的存在理由。
3.7.3 多任务学习:硬参数共享的机理
先看困境的另一面。12 个任务的分子高度重叠,同一批化合物在多数任务上都有测定;单独训练 12 个网络,等于把同一个结构–活性问题切成 12 份,各自从头学习“什么样的结构值得警惕”。每个任务的有效数据不过数千、正例数百,单任务网络极易过拟合。多任务学习(multitask learning)的提议是:合并训练,让任务互相帮忙(Caruana, 1997)。
标准结构是硬参数共享(hard parameter sharing):低层的分子编码器——3.5 节的消息传递层与读出——被所有任务共用;其上为每个任务 t 设一个小的输出头 ft,通常一层线性变换加 sigmoid。参数分两份:共享的 θ0,各任务私有的 θt。图 3.7-2 画出这一分工。
硬参数共享。多任务网络的一种参数化:低层(表示层)的参数被所有任务共用,只有顶层(输出头)按任务分设。与之相对的软参数共享是每个任务各有一套网络、以正则项约束参数彼此接近。共享的是参数,不是损失——各任务仍各算各的掩码交叉熵。
负迁移。联合训练的成绩低于相应单任务训练的现象。常见机理:不相关任务对共享参数的梯度方向冲突,平均之后互相抵消,甚至把参数推离各自的最优位置。
共享为什么有用?两条互补的解释。正则化解释:θ0 的更新来自全部任务的梯度,一组参数要同时解释 12 个任务的信号,容许的过拟合路径随之收窄。单任务里那些“恰好拟合本任务噪声”的表示,很难同时讨好其余 11 个任务;正则化(regularization)由此不靠惩罚项而靠结构达成,效果类似数据扩增——同一分子在不同任务下的标签互相牵制,模型学到的必须是跨任务稳定的结构规律。归纳迁移解释:相关任务的信号互为补充。数据多的任务把共享编码器训练充分,数据少的任务在这个表示之上只需拟合一个小头——它“借”到的是别的任务用数据学来的词汇。Caruana 的经典表述即此:多任务学习是一种归纳迁移(inductive transfer)机制,以相关任务的训练信号为彼此注入归纳偏置(inductive bias)(Caruana, 1997)。
两条解释共享同一个前提:任务相关。Ramsundar 等(2015)的大规模研究给出定量图景:将近四千万条测定、二百余个靶点合并训练,多任务网络的预测力随任务与数据的增加而提升,数据量与任务数是两个独立的增益来源。收益却分布不均——获益最大的是数据量小的任务,部分数据集几乎无改善甚至受损,对训练时未见的任务迁移也有限。加任务不是免费午餐:先助后抑的转折随时可能出现,判据始终是任务相关性与逐任务的验证成绩。
“抑”的机理就是负迁移。不相关任务的梯度在 θ0 上方向冲突:任务甲要把某参数往东推,任务乙要往西推,平均之后互相抵消,甚至把参数推离两者各自的最优。冲突不是偶发噪声而是持续拉锯时,联合训练就输给单任务。识别靠对照:每个任务留一条单任务基线(3.3 节),联合训练后逐任务比对;持续劣于基线者,在相关性矩阵里多半也找不到朋友。处置不必犹豫——按任务相关性分组训练(组内共享、组间独立),或干脆给冲突任务拆出单任务。多任务是一种可进可退的结构选择,不是信仰。
习题 3.7-2
论述题:给定一份 Tox21 式多任务数据(12 个任务、标签稀疏、各任务阳性占比百分之几),何时应合并为单个多任务模型训练,何时应拆为单任务或分组的模型?请从任务相关性、各任务数据量、负迁移机理与验证协议四方面组织论证,并说明决策证据应来自何处。
参考解答合并的理由:分子集合高度重叠、任务相关(标签相关性矩阵中成簇的正关联)时,硬参数共享提供两条收益——正则化(共享表示须同时解释多个任务,过拟合路径收窄)与归纳迁移(数据少的任务借用数据多的任务学到的表示)。各任务正例仅数百,单任务网络最缺的正是这种隐式的数据扩增。拆分或分组的理由:任务弱相关或负相关时,梯度在共享参数上方向冲突,联合训练的成绩可能低于单任务基线;数据极充足的任务合并收益小,被拖累的风险却真实存在。判据与协议:一切以逐任务验证成绩为证据——先训 12 条单任务基线,再训联合模型,同划分、同指标逐任务比对;持续劣于基线者在相关性矩阵上通常是孤立列,应拆出或归入别的组。折中方案是分组训练:按标签相关性聚成少数几组,组内共享、组间独立,兼顾迁移与冲突。决策是经验问题而非先验问题,证据只能来自同一划分下的对照实验(Ramsundar et al., 2015)。
3.7.4 类别不平衡的应对谱系
回到不平衡本身。机理一句话:负例主导损失,梯度的大半在教模型“对一切说不”。对策按“动什么”分四层——动指标、动阈值、动损失、动数据。表 3.7-1 先给全景,再逐条看机理与代价。
评估侧换指标。最便宜的一层,训练完全不动。不平衡下 AUC 对模型差异不敏感(3.3.6),应改以 PR 曲线与 PR-AUC 为主叙事——其随机基线高度就是阳性占比,任何真实的改善都看得见;辅以平衡准确率(balanced accuracy)(TPR 与 TNR 的平均)或召回率。He 与 Garcia 的综述系统梳理了这一侧的选项(He & Garcia, 2009)。
阈值移动。训练不动,推理时把判决阈值从 0.5 挪到验证集选定的位置:固定 TPR 下最大化查准率,或按漏报与误报的代价比取等代价线的切点(3.3 节)。排序未变,只是换了工作点;代价是阈值绑定验证集分布,部署语境必须明确。
损失重加权。把正例项乘上 ct ≥ 1:
机理:正例的每一份误差梯度放大 c 倍,模型对漏报更痛,召回上升。代价:输出概率系统性偏高,校准(calibration)变差——本该读作频率的 p 变成了带偏的打分;c 过大还会让小任务的正例被反复放大,训练不稳。下游只用排序(配合阈值移动)时校准损失可以接受;要报概率,就得再校准。
焦点损失。另一种动损失的方式,让权重随难度自适应:
Lin 等为密集目标检测提出焦点损失(Lin et al., 2017),在分子任务里同样对症:海量负例大多已被轻松分对,调制因子把它们的权重压向零,梯度自动聚焦到错分与难分样本上,无须人工设定 ct。代价与重加权同源且更重:概率语义进一步扭曲——focal 训练的输出不是校准概率,只宜作排序分数;γ 也须在验证集上调。
过采样与欠采样。过采样(oversampling)重复正例或插值造新正例,欠采样(undersampling)丢弃负例。分子数据有个特有的坎:指纹或表示空间里的“插值”多半不对应任何真实分子——两个分子表示的平均未必有合法结构与之对应,化学上无意义的合成样本会污染共享表示。实践中常见的是按权重重复采样真实正例,效果近似重加权,差别在它改变了批组成、与批归一化这类组件有相互作用;欠采样则直接扔掉多数类信息,只宜在负例极多时用。
| 手段 | 动什么 | 机理 | 代价与适用 |
|---|---|---|---|
| 换指标(PR-AUC 等) | 评估 | PR 基线即阳性占比,对不平衡敏感 | 零训练成本;不改善模型本身,3.3.6 |
| 阈值移动 | 推理 | 验证集上按代价或目标选工作点 | 须明确部署语境;阈值绑定验证分布 |
| 损失重加权 | 损失 | 正例梯度放大 c 倍,漏报更痛 | 校准变差;c 过大训练不稳 |
| 焦点损失 | 损失 | 易样本权重自动衰减,聚焦难样本 | 输出不再校准;γ 须调 |
| 过采样 / 欠采样 | 数据 | 改批组成,等效于隐式加权 | 分子空间插值无化学意义;欠采样丢信息 |
干预次序。① 先动评估:换 PR 主叙事、报平衡准确率,零成本;② 部署语境明确时动阈值:验证集上选工作点,训练不动;③ 仍不足再动损失:重加权或焦点损失,一处改动、逐任务调参;④ 最后才动数据:采样改变批组成,副作用最大。每动一步,用同一划分、同一指标、逐任务对照;多任务场景下一切类别加权都走 3.1 节的 w 通道,掩码语义保持不变。
3.7.5 早富集:只看头部的指标
虚拟筛选的部署形态与以上都不同:化合物库动辄百万,实验只测排在前面的几十个。排序的中后段无关紧要,头部才是价值所在——而 AUC 恰恰对头部不敏感。把排前 10 名里的 3 个活性挪到第 100 名开外,AUC 几乎不动,买回家的分子却已经变了。度量须给头部更大的权重(Truchon & Bayly, 2007)。
早富集(early enrichment)度量的共同想法:名次 r 越靠前,权重越大。RIE 一族取指数衰减权重 w(r) = e^(−αr/N),把每个活性按名次计权求和,再除以随机排序下的期望:
α 的语义一句话:衰减率由 α/N 决定,列表前 x 份承载约 1 − e−αx 的总权重。α = 20 时,前 5% 占约 63%、前 10% 占约 86%;α 小则权重近均匀、度量退向全局排序观,α 大则只认头几名。图 3.7-3 画出两种 α 的权重轮廓。
最朴素的替代是富集因子(enrichment factor, EF)与“top-x% 命中率”:
EF 好算好讲,两个局限要记牢。其一,对头部内部的位置不敏感:7 个活性挤在前 7 名与散在第 1–100 名,只要都落在前 5% 就同分——指数权重族(RIE、BedROC)能区分这两种情况。其二,小样本方差大:随机排序下前 x% 的命中数服从超几何分布,均值 P·x%,波动与均值同阶;EF = 2 与 EF = 3 的差距可能在噪声之内。报告早富集时应附随机波动量级,或多次划分的方差(3.8 节)。还要记得这一族全是排序指标——若部署需要概率,另做校准,别把排序分数当频率读。
习题 3.7-3
虚拟筛选 200 个分子,其中 20 个活性。模型 A 的降序列表前 10 名(恰为 5%)含 7 个活性;模型 B 前 10 名仅 2 个,但整体 AUC 以 0.82 对 0.79 领先。(1) 计算 EF5%(A) 与 EF5%(B),并给出随机期望。(2) 实验预算只够购买并测定 10 个分子,应选哪个模型?说明理由。(3) 随机排序下前 10 名的命中数服从超几何分布(N = 200,K = 20,n = 10),均值 1、标准差约 0.93。据此说明报告 EF 时应注意什么。
参考解答(1) EF5%(A) = (7/10) ∕ (20/200) = 0.7 ∕ 0.1 = 7;EF5%(B) = (2/10) ∕ 0.1 = 2。随机期望:前 10 名平均命中 20 × 0.05 = 1 个,即 EF = 1。(2) 选 A。预算只测排前分子,价值全部落在头部:A 的头部命中率 70%,B 为 20%。AUC 度量全列表排序,对“只买前十”的部署形态几乎没有发言权——这正是早富集指标存在的理由。(3) EF 的随机波动与均值同阶:标准差 0.93 意味着 EF = 2 与 EF = 1 可能只是噪声之差,而 EF = 7 远超波动、可信。报告 EF 应附随机期望与波动量级(或多次划分的方差),单点数值没有解释力。
3.7.6 实务清单:诊断与报告
把本节的判断落成可执行的清单,三件事。
诊断任务相关性。在共同有效标签上计算 12 × 12 的两两关联——Φ 相关系数或正例 Jaccard。口径要紧:只在两个任务都有标签的分子上算,缺失格必须剔除,否则稀疏模式本身会污染关联估计。相关性矩阵回答两个问题:哪些任务适合合并训练(分组依据);异常的单任务表现该怪谁——与其他任务全不相关的孤立列,多半是负迁移的候选人。
报告不平衡比。逐任务给出有效正例数、有效负例数与正例占比 nt+/|Ωt|。模型成绩离开这些数字没有解释力:AUC 0.85 出现在 π = 0.05 的任务与 π = 0.4 的任务,是两回事。
逐任务报告,宏平均汇总。多任务 AUC 有两种平均:池化——12 个任务的预测并成一个大表算一个 AUC;宏平均——逐任务各算再平均。惯例是宏平均(macro-average):任务分数跨任务不可比,池化任由占比高、碰巧容易的任务主导总量(3.3.6,Wu et al., 2018)。宏平均本身也会掩盖单任务的灾难——0.5 与 0.9 平均得漂亮,一个不可用的任务藏在里面。均值汇报,逐任务列表随附。
| 检查项 | 做法 | 理由 |
|---|---|---|
| 标签口径 | 每任务 |Ωt| 与缺失占比 | 缺失≠负例;掩码闭合的凭证(3.7.2) |
| 任务相关性 | 共同有效标签上的 Φ / Jaccard 矩阵 | 合并或分组的依据;孤立列提示负迁移 |
| 不平衡比 | 逐任务 n+/n− 与正例占比 | 成绩离开基数没有解释力 |
| 单任务基线 | 每任务一条基线,同划分对照 | 负迁移的判据是“输给自己的单任务” |
| 指标组合 | 宏平均 AUC + 逐任务表;不平衡重时 PR 为主 | 均值掩盖单任务灾难(3.3.6) |
| 早富集(筛选语境) | EF 附随机波动,或 RIE/BedROC | 部署只测头部时 AUC 不发言(3.7.5) |
清单之外还剩一个问题:多任务网络训练中,验证集上 12 条曲线此起彼伏,何时停、以哪条为准?早停的判据与诚实评估的纪律,正是下一节的主题。
关键术语
- 多任务学习 (multitask learning)
- 多个相关任务共用一个模型联合训练,以共享结构改进各任务泛化。
- 硬参数共享 (hard parameter sharing)
- 低层表示层为全部任务共用、仅输出头按任务分设的多任务结构。
- 归纳迁移 (inductive transfer)
- 借相关任务的训练信号为当前任务注入归纳偏置的机制。
- 负迁移 (negative transfer)
- 联合训练反而低于相应单任务水平的现象,多源于梯度方向冲突。
- 类别不平衡 (class imbalance)
- 正负占比悬殊、负例主导损失与梯度的处境。
- 掩码损失 (masked loss)
- 只在 w = 1 的有效标签格上累计的多任务损失。
- 损失重加权 (loss reweighting)
- 按类别占比放大少数类损失项的权重,以召回换校准。
- 焦点损失 (focal loss)
- 以 (1−pt)γ 调制因子压低易样本贡献的损失。
- 阈值移动 (threshold moving)
- 训练不变、按验证集调整判决阈值的部署侧手段。
- 早富集 (early enrichment)
- 排序头部命中密集的程度及其度量性质。
- 富集因子 (enrichment factor)
- 头部命中率相对随机命中期望的倍数。
- BedROC (Boltzmann-enhanced discrimination of ROC)
- 指数衰减权重下的头部敏感指标,RIE 的 [0, 1] 归一化。
参考文献与延伸阅读
- Caruana R. 1997. Multitask learning. Machine Learning 28:41–75.
- He H, Garcia EA. 2009. Learning from imbalanced data. IEEE Transactions on Knowledge and Data Engineering 21:1263–1284.
- Huang R, Xia M, Sakamuru S, et al. 2016. Modelling the Tox21 10K chemical profiles for in vivo toxicity prediction and mechanism characterization. Nature Communications 7:10425.
- Lin T-Y, Goyal P, Girshick R, He K, Dollár P. 2017. Focal loss for dense object detection. In: Proceedings of the IEEE International Conference on Computer Vision (ICCV), 2980–2988.
- Ramsundar B, Kearnes S, Riley P, Webster D, Konerding D, Pande V. 2015. Massively multitask networks for drug discovery. arXiv:1502.02072.
- Truchon J-F, Bayly CI. 2007. Evaluating virtual screening methods: good and bad metrics for the “early recognition” problem. Journal of Chemical Information and Modeling 47:488–508.
- Wu Z, Ramsundar B, Feinberg EN, et al. 2018. MoleculeNet: a benchmark for molecular machine learning. Chemical Science 9:513–530.