← 返回 PaperDaily
大模型与智能体
不用最后一层?蛋白质语言模型嵌入层选择新视角
大家用蛋白质语言模型,是不是习惯性直接取最后一层嵌入做下游任务?这篇论文把13个模型、15个任务翻了个底朝天,告诉你"最后一层最优"很多时候是个错觉,甚至教会你如何低成本找到最优层,值得所有做蛋白预测的读者花时间读完。
龙哥读论文
阅读 2
查看原文

原论文信息如下:
蛋白质语言模型(PLMs)近年来在计算生物学领域火得一塌糊涂。从ESM-1开始,这个领域就走上了一条"大力出奇迹"的路线——把海量蛋白质序列灌进Transformer里,让模型自己"悟"出蛋白质的规律。如今,从酶活性预测到抗体设计,PLM已经成了许多生物信息学pipeline里不可或缺的"万金油"特征提取器。
但是,问题来了:大家用PLM的时候,几乎是"肌肉记忆"般地取最后一层的嵌入(embedding)来作为蛋白质的表示,然后丢给下游任务。这个习惯从哪来的?大概是受计算机视觉中ResNet等模型的影响——在图像分类任务中,网络端到端训练,最后一层的确是最好的特征表示。然而,语言模型(包括蛋白质语言模型)的训练方式和图像分类模型有着本质区别:它们是用自监督目标(比如掩盖氨基酸预测)预训练的,并没有针对某个具体下游任务做端到端优化。那凭什么"最后一层最优"这个假设还能成立?
这篇来自德国萨尔兰大学的论文,对这个"常识"发起了一次全面挑战。作者一口气分析了13个PLM(涵盖ESM-2、ESMC、ProtT5、ProstT5、ProGen2、ProtGPT2等主流模型),在15个下游任务(从荧光预测到亚细胞定位,从稳定性回归到二级结构预测)上的表现,并借助线性探针(linear probes)和潜在空间几何分析,系统地回答了三个问题:
第一,不同层的嵌入在下游任务上表现到底有多大差异?第二,什么因素决定了"最优层"的位置——是任务类型还是数据集本身的结构?第三,有没有办法用少量数据快速找到最优层,省去全量扫描的算力开销?
结果相当有意思:在大多数情况下,最后一层不仅不是最优的,甚至可能是"洼地"。更扎心的是,对于人工设计(非天然)蛋白质的预测任务,PLM的表现出现了肉眼可见的崩塌——这可能暗示这些模型学到的并不是"蛋白质功能"本身,而是"天然进化序列空间"的某种统计规律。下面咱们把这篇论文掰开揉碎了看。
蛋白质语言模型的"最后一层最优"假设为何失效
要弄清楚这个问题,得先回顾一下"最后一层最优"这个信念是从哪来的。Alain和Bengio在2016年提出用线性探针(linear classifier probes)来检验深度神经网络各层表征的信息量,在图像模型ResNet-50上,他们发现随着网络层数加深,预测误差稳步下降,最后一层的特征确实最适合做分类。这个结果看起来没什么毛病——毕竟图像模型是端到端在有监督的ImageNet上训练的,最后一层天然就是为了线性分类而优化的。
但蛋白质语言模型不一样。ESM、ProtT5这些模型在做预训练时,目标函数是掩盖氨基酸预测(MLM)或下一个token预测(NTP),这本质上是一个"局部"任务——模型只要看到周围几个氨基酸就能猜得八九不离十。而下游任务往往需要的是"全局"信息,比如整个蛋白质的稳定性、溶解性、亚细胞定位等。预训练任务和下游任务之间存在一个"尺度鸿沟":前者是token级别的局部理解,后者是序列级别的全局判断。
更微妙的是,之前有研究发现(Valeriani等人在NeurIPS 2023上的工作),像ESM-2这样的双向Transformer模型,其最浅层和最深层潜在空间在几何上非常相似——因为最后一层要把表征"还原"成预测被掩盖的token,所以它学到的表示反而和输入层有点"殊途同归"的味道。中间层呢?它们在中间"漂移",反倒可能包含更多对下游任务有用的信息。
本篇论文把这个观察系统化了。作者对13个PLM的每一层都训练了线性探针和k近邻探针,然后比较它们在15个下游任务上的表现。结果令人震惊:在83个模型-任务组合中,只有约18%的情况下最后一层真正拿到了最优性能。换句话说,超过80%的情况下,你辛辛苦苦取的最后一层嵌入,并不是最好的选择。
13个PLM×15个任务的系统性层间分析
这篇论文的实验规模相当可观。13个模型来自5个不同家族,覆盖了BERT式双向编码器(ESM-2系列)、T5式编码器-解码器(ProtT5、ProstT5)、Transformer解码器(ESMC、ProGen2系列)以及GPT式自回归模型(ProtGPT2),参数量从800万到30亿不等。这种覆盖面保证了结论不是某个特定架构的"特例"。
下游任务的设计也很有讲究。15个任务覆盖了两个层级:蛋白质级别(whole-protein)和残基级别(residue-level)。蛋白质级别的任务包括:荧光强度回归/分类(Fluorescence)、GB1突变效应回归、熔解温度回归(Meltome Atlas)、物种分类、稳定性回归(Rocklin和Tsuboyama)、溶解性分类(DeepSol)、亚细胞定位分类和膜蛋白分类(DeepLoc2.0)、折叠/超家族分类(SCOPe40)。残基级别的任务则包括DSSP二级结构的3类和8类预测,以及配体结合残基预测。
数据集的构成也刻意覆盖了"光谱"的两端:一端是深度突变扫描(DMS)数据,比如Fluorescence(5.4万个GFP突变体)、GB1(14.9万个突变体),这些数据集围绕一个或少数几个蛋白质疯狂突变;另一端是多样性数据集,比如DeepLoc2.0(2.8万个真核蛋白)、DeepSol(7.1万个蛋白)、SCOPe40(1.5万个折叠分类蛋白),这些数据集覆盖了广阔的天然蛋白质空间。
作者不仅训练线性探针,还用三个几何指标刻画了每一层潜在空间的结构:内在维度(Intrinsic Dimension, ID,用TwoNN方法估计)、邻域重叠(Neighborhood Overlap,衡量相邻层之间表征的相似程度)以及前10个主成分解释的方差比例(variance@10)。这三个指标从不同角度反映了潜在空间的"形状"和层间变化。
数据集结构如何决定最优层位置
论文最核心的发现之一,是最优层的位置和数据集结构之间存在强关联。作者发现,对于DMS类数据集(如Fluorescence、GB1),几乎所有PLM的最优信息都集中在浅层——性能在浅层达到峰值,然后急剧下降。而对于多样性数据集(如DeepLoc、DeepSol、SCOPe40),信息的有用性随层深稳步增加,直到最后5%的层才有所回落。
这个现象怎么解读?作者给出了一个很优雅的解释:浅层编码的是蛋白质的"局部细节"——单个氨基酸的理化性质、局部序列模式等;深层则编码"全局规则"——帮助区分不同蛋白质家族的更抽象的特征。对于DMS数据集,所有序列都是同一个蛋白质的微小变体,它们之间的差异恰恰体现在局部细节上,所以浅层嵌入最有判别力。而对于多样性数据集,你需要区分完全不同的蛋白质,这时候深层学习到的全局特征更给力。
这个解释和NLP中"BERT底层学语法、高层学语义"的发现形成了一种奇妙的呼应。只不过在蛋白质领域,这个"语法"和"语义"的边界由数据集的多样性程度来划定的。
为了排除"任务本身难度不同导致性能曲线不同"这个干扰因素,作者还做了一个精巧的消融实验:在同一个数据集上定义两个不同的任务。比如Fluorescence数据集上,回归任务和分类任务;DeepLoc2.0上,二分类(膜蛋白与否)和10分类(亚细胞定位)。结果显示,同一数据集上两个不同任务的性能曲线高度相似(皮尔逊相关系数大多在0.85以上),说明真正决定最优层位置的,是数据集的属性,而不是任务的定义。
微调如何重塑PLM的层间信息分布
看到这里,你可能有个疑问:既然预训练模型最后一层不好用,那微调一下是不是就能解决?作者用实验回答了这个问题。他们做了一个"三段式"实验:先验证原生PLM每层在预训练目标上的表现,再微调模型到底下游任务后检查每层在下游任务上的表现,最后再回头检查微调后模型在预训练目标上的表现。
结果显示,原生PLM在预训练目标(MLM或NTP)上的性能随层深几乎单调提升——这很正常,毕竟模型就是朝着这个目标训练的。但微调之后,一切都变了:层与层之间在下游任务上的表现变得单调提升,而预训练目标的性能则明显下降。
这个结果给出了一个非常清晰的因果解释:PLM层间"信息分布"的形状,本质上是预训练目标与下游目标对齐程度的函数。当两者高度对齐时(比如残基级任务vs MLM预训练),性能曲线单调上升;当两者不对齐时(比如蛋白质级任务vs MLM预训练),曲线就出现"先升后降"的钟形。微调本质上就是把所有层"拉向"下游任务,让每层都朝着对最终目标有用的方向优化。
人工蛋白质:PLM的认知盲区
论文用了两个关键数据集来考验PLM对“非天然”序列的理解力。第一个是Rocklin稳定性数据集,里面既有深度突变扫描(Deep Mutational Scanning, DMS)产生的天然蛋白变体,也包含用Rosetta物理建模管道设计的全新蛋白质;第二个是用ProGen v1生成的90个人工溶菌酶序列,同时搭配90个天然溶菌酶序列做对照。
先说Rocklin稳定性数据集。作者特意没有为DMS序列和人工设计序列分开训练模型,而是只训练一个探针模型,然后分别评测它在两类序列上的稳定性预测能力。结果显示,PLM在DMS那部分数据上表现尚可,但一遇到人工设计的序列,性能就明显“脚软”。
更有意思的是人工溶菌酶实验。人工生成的溶菌酶序列,其催化活性范围其实比天然序列更宽(人工序列相对鸡卵清溶菌酶的活性从-0.077到2.535,天然序列只有-0.117到0.395)。按理说,目标值范围更宽的任务,预测难度不一定会更大;但PLM的表现却和直觉相反——在人工序列上,所有模型各层的预测能力都非常弱,与真实催化活性的斯皮尔曼相关系数只有0.2左右;而天然序列上,最好的模型能把相关做到0.6上下。换句话说,人工序列即使功能差异更大、标签动态范围更宽,PLM反而更“读不懂”它们。
这个反差非常值得玩味。如果PLM真的学到了“蛋白质功能”的通用表示,那人工蛋白质即使序列分布偏离天然分布,功能相关的信号也应该能被部分捕捉到。可结果说明,PLM在很大程度上学到的不是抽象的“蛋白质功能”,而是天然进化序列空间的统计规律。说得直白一点,模型更擅长判断“什么样的序列长得像有功能的天然蛋白质”,而一旦序列脱离了天然分布,这套统计规律就开始失效。
这个观察还有一个更微妙的推论:PLM在浅层学习的局部突变效应,即使在人工设计的序列上也还保留了一定的预测能力,这一点从人工DMS数据上仍然能看得出一些效果;但到了需要全局判断的场景,比如比较一个全新设计蛋白的稳定性,或判断它是否具备催化活性,模型的“知识”就开始严重漏气了。这说明浅层捕捉的是相对局部的序列-性质关联,而深层建立的全局抽象,在很大程度上绑定在天然序列的统计分布上。
层间信息的度量:三种几何标尺
要理解层间信息为什么会这样分布,只靠探针性能的数字是不够的。论文还用了三个几何指标,从“形状”上刻画每一层潜在空间(latent space)的结构。这里先补充一个背景:对于蛋白质级别的预测任务,需要把一个由多个氨基酸token组成的序列压缩成一个固定长度的向量,论文用的是最常见的平均池化(mean pooling),即把所有token位置的向量取平均:
有了每层嵌入后,论文用三个指标来刻画这些潜在空间:
内在维度(Intrinsic Dimension, ID)用TwoNN方法估计潜在空间真正需要的独立变量数量。ID越低,说明数据越集中在一个低维流形上,高维空间中有大量“空转”的维度;ID越高,说明表征铺得更开、信息更分散。
邻域重叠(Neighborhood Overlap)计算相邻两层之间每个样本的k近邻集合有多少比例是重叠的。这个指标衡量的是相邻层表征的“突变程度”:重叠越高,说明两层学到的东西越接近,表征演化越平缓。
variance@10指前10个主成分解释的方差比例,反映信息在潜在空间中是否“集中”。如果前10个主成分就能解释绝大部分方差,说明表征的能量高度集中;反之则说明信息均匀地散落在许多方向上。
这三个几何指标的组合,能相当完整地描述潜在空间的“形态”。论文发现,在蛋白质级任务上,这些指标随层深的变化曲线和探针性能曲线高度呼应。特别是在深层,ID和variance@10会向浅层“回归”——这正是MLM预训练目标把最后一层“拉回”输入局部结构的表现。换句话说,模型为了在最后一层预测被掩盖的氨基酸,不得不牺牲一部分对全局蛋白质属性的表征能力,深层表征因此“返祖”。
为了量化每一层的“信息量”,论文使用线性探针(linear probe)来衡量各层嵌入在下游任务上的可判别性,其定义如下:
此外,补充图1给出了所有模型在所有数据集上的完整性能曲线,有兴趣的读者可以从中看到自己常用模型的具体表现形态:
一个容易被忽略的细节是,荧光数据集上作者还演示了如何从回归任务构造分类任务:通过设定两个阈值,把中间区间数据去掉,只保留“明显有荧光”和“明显无荧光”两个极端子集。图6展示了这个标签分布以及阈值边界,这种构造方式保证了分类任务和回归任务共享同一套底层数据分布,从而让“任务类型不影响层间性能曲线”的结论更加可信。
实用指南:如何快速找到最优层
前面的分析已经证明,不同数据集和任务的最优层位置差异很大。那落到实际应用中,怎么快速找到属于你自己的最优层?论文给了一个非常务实的答案:不需要全量数据,只需要15%-20%的均匀子采样。
第一步:子采样。从训练集中均匀抽取出15%-20%的数据,注意保持原有的数据划分方式,分类任务最好做分层采样,保证每个类别都有代表。
第二步:逐层训练轻量探针。把预训练好的PLM每一层都抽出来,在子采样数据上训练一个线性探针或k近邻探针。注意探针要轻量,因为目的是比较各层相对优劣,而不是追求绝对精度。
第三步:选出最优层。比较各层在验证集上的性能,挑出表现最好的那一层,记住它的位置。
第四步:全量训练。用全部训练数据,在你选中的最优层上训练最终的预测模型。
论文在ESM-2模型族上验证了这个流程的可靠性:只用15%-20%的数据,就能确定一个能达到全量数据95%性能的层。更关键的是,在三个随机种子下,同一层始终被识别为“最优层”,说明这个选择过程非常稳定,不是偶然的噪声波动。而且实验还发现,更大的模型对子采样数据更鲁棒,也就是说模型规模越大,这个“快速选层”技巧越可靠。
补充图4提供了除正文四个数据集之外其他数据集的完整稀疏性能分析,可以看到这个规律在多个数据集上都成立:
综合全文的分析,还可以总结出三条非常实用的“选层经验法则”:
法则一:DMS类数据集选浅层。如果数据集是围绕一个或少数几个蛋白质做深度突变扫描得到的(比如荧光、GB1),几乎所有PLM的最优信息都集中在浅层,性能在模型深度20%-50%区间达到峰值,然后迅速下滑。
法则二:多样性数据集选深层偏后。如果数据集覆盖了大量序列差异明显的天然蛋白(比如DeepLoc、DeepSol、SCOPe40),信息有用性随层深稳步增加,最优层通常在模型深度70%-90%区间,最后5%的层由于MLM预训练目标的“反向拉扯”而略有回落。
法则三:残基级任务越深越好。如果下游任务是预测每个氨基酸残基的属性(比如二级结构、配体结合位点),那预训练目标和任务目标天然对齐,性能随层深单调上升,直接取最后一层就对了。
表2和表3分别总结了论文所用模型和数据集的关键信息。模型覆盖从8M到3B的不同参数规模,架构涵盖BERT式编码器、T5式编码器-解码器以及GPT式自回归解码器;数据集则在序列多样性上形成了从“单蛋白密集突变”到“多蛋白广泛覆盖”的光谱,这正是层间信息分布差异的主要来源。
龙迷三问
这篇论文到底在解决什么问题?萨尔兰大学等机构对13个蛋白质语言模型、15个下游任务进行系统分析,发现最后一层嵌入并非最优,最佳层位置与任务类型及数据集结构密切相关,为蛋白质预测应用提供了实用的层选择指南。
这篇工作最值得看的点是什么?发现大多数PLM的最佳层不在最后一层(仅17.92%的任务最后一层最优),性能在10%-90%层深区间达到峰值;DMS数据集在浅层表现最佳,多样蛋白质数据集在深层表现最佳;人工蛋白质序列上PLM性能显著下降。
这篇工作的边界或风险在哪里?优点:系统性地覆盖了13个PLM和15个下游任务,分析全面;结合探针分析和潜在空间度量,方法严谨;发现具有实用价值(最佳层选择指导)。缺点:未提供选择最佳层的先验方法;对人工蛋白质性能差的机制解释不够深入;部分模型(如ESM-2 3B)在部分任务上数据缺失。
如果你还有哪些想要了解的,欢迎在评论区留言或者讨论~
龙哥点评
论文创新性分数:★★★★☆
通过线性探针和潜在空间度量系统分析13个蛋白质语言模型各层嵌入的信息量,揭示不同下游任务和数据集下最优层的位置规律。
实验合理度:★★★★☆
Pearson相关系数、Spearman相关系数、准确率、F1分数、内在维度、邻域重叠、方差解释率
学术研究价值:★★★★☆
通过线性探针和潜在空间度量系统分析13个蛋白质语言模型各层嵌入的信息量,揭示不同下游任务和数据集下最优层的位置规律;更关键的是问题定义是否可复用到同类任务。
稳定性:★★★☆☆
现有材料未提供充分的极端条件、重复运行或扰动测试,稳定性暂按中性评价。
适应性以及泛化能力:★★★☆☆
现有材料未完整展示跨数据集、跨场景或分布外实验,泛化能力仍需进一步验证。
硬件需求及成本:★★★☆☆
实验消耗约10TB存储空间用于蛋白质嵌入,9.8TB用于残基嵌入,在2块RTX3090、2块Tesla V100和多个A100 GPU上完成。
复现难度:★★★☆☆
https://github.com/(论文中提及但未给出具体链接)
产品化成熟度:★★★☆☆
论文验证以研究实验为主,真实部署中的时延、成本、维护和异常场景仍需补充验证。
可能的问题:未提供选择最佳层的先验方法;对人工蛋白质性能差的机制解释不够深入;部分模型(如ESM-2 3B)在部分任务上数据缺失。
*本文仅代表个人理解及观点,不构成任何论文审核或者项目落地推荐意见,具体以相关组织评审结果为准。欢迎就论文内容交流探讨,理性发言哦~ 想了解更多原文细节的小伙伴,可以点击"阅读原文",查看更多原论文细节哦!