4.3 从序列到分子图:表征学习 本节摘要:模型不认识基因和分子,只认识数字。表征学习的任务是把领域对象翻译成向量:蛋白质语言模型从未标注的海量序列里学到结构与功能语义,图神经网络把分子当成图做消息传递。本节讲两条路线的直觉、预训练为什么有效、以及表征向量在循环里的三种用法。 翻译问题 第 2、3 章的方法各自定义了输入格式:GS 吃 SNP 编码矩阵,QSAR 吃描述符向量。这些都是"人工特征"——人先决定哪些信息重要,再手工抽取。深度学习的提议更激进:把原始对象(氨基酸序列、原子的连接表)直接交给模型,让模型自己学出有用的表示。这条路线近年的突破集中在两端:蛋白质序列端的语言模型,小分子端的图神经网络。
本节摘要:模型不认识基因和分子,只认识数字。表征学习的任务是把领域对象翻译成向量:蛋白质语言模型从未标注的海量序列里学到结构与功能语义,图神经网络把分子当成图做消息传递。本节讲两条路线的直觉、预训练为什么有效、以及表征向量在循环里的三种用法。
第 2、3 章的方法各自定义了输入格式:GS 吃 SNP 编码矩阵,QSAR 吃描述符向量。这些都是"人工特征"——人先决定哪些信息重要,再手工抽取。深度学习的提议更激进:把原始对象(氨基酸序列、原子的连接表)直接交给模型,让模型自己学出有用的表示。这条路线近年的突破集中在两端:蛋白质序列端的语言模型,小分子端的图神经网络。妙处在于,两条设计线(品种与分子)在此汇合——因为它们处理的是同一个问题形态:离散符号序列或图结构 → 连续向量 → 下游预测。
自然语言处理的核心发现——"一个词的意思由它的上下文决定"——搬到蛋白质上出奇地好用:一个氨基酸位点的"意思"(它在维持结构、催化、结合中的角色)也由序列上下文决定。蛋白质语言模型(以自监督方式训练的 Transformer 类模型)的做法:拿数以亿计的、没人测过功能的蛋白质序列,反复玩"遮住某个位点、预测被遮住的氨基酸"的游戏。要玩好这个游戏,模型不得不学会哪些位置倾向于形成螺旋、哪些残基之间在三维上靠近、哪些位点家族保守——结构与功能的语法,就这样从纯序列里被压榨出来。
工程含义立刻兑现:预训练模型的输出向量(每个位点或整条序列一个向量)可以零样本或微调地用于二级结构预测、结合位点预测、突变效应预测。对第 3 章的分子线,这意味着靶点结构未知时,仍能用序列嵌入估计"哪段可能是结合口袋";对品种线,嵌入向量可以直接当 GS 模型的输入特征(与 SNP 矩阵互补),用于候选拟南芥之外的物种功能迁移——第 8 章会再遇到跨物种话题。
分子不是序列,是图:原子是节点,化学键是边,每个原子带着元素、电荷、芳香性等属性。图神经网络(GNN)的处理逻辑是"消息传递":每一层,每个原子收集邻居发来的消息、更新自己的状态;叠若干层后,每个原子的表示就"看见"了它的化学邻域,再聚合成整分子表示。直觉上这像化学家读结构的方式——看一个官能团,先看它连着什么、隔壁是什么电子环境。
一个最小消息传递示意(文字版): 原子级初始化:C 原子 h = [元素=碳, 芳香=否, 电荷=0, ...] 第1层后:h 包含直接邻居信息(连了两个 C 一个 N) 第2层后:h 包含两跳邻域(N 上还连着什么) 第3层后:包含官能团级模式(胺基、稠环片段的"味道") 分子级读出:所有原子向量求和或注意力池化 → 整分子向量 z 下游:z → 性质预测头(溶解度、透膜性、活性) z → 生成模型的隐空间(下一节的舞台) 对照 3.3 节 QSAR:描述符是人工挑选的摘要,GNN 学的是 任务相关的摘要——数据足够时后者更强,数据稀缺时前者更稳。

表征学习最大的启示是"未标注数据的杠杆"。监督数据(测过活性的分子、测过表型的株系)昂贵且稀少;未标注数据(海量序列、化学结构库)近乎免费。预训练把免费数据的统计规律先榨出来,再让昂贵数据只负责"最后一公里"的微调。这解释了为什么小团队也该关注预训练模型:它们把入场券从"你有多少数据"改成了"你会不会用别人的预训练"。
把表征放回第 1.1 节的循环,它出现在三个位置:
⚠️ 常见坑:拿预训练向量当万灵药直接用。嵌入反映的是预训练分布的偏见——训练集里 overwhelmingly 是可溶性细菌酶的序列,你的膜蛋白靶点可能落在表示空间 poorly covered 的角落;使用前先做 sanity 检查(近邻是否合理)。
💡 关键直觉:表征学习的本质是压缩——把对象压进几百维向量时保留"与任务相关"的结构、丢弃无关细节。压缩得好不好,最终由下游任务的成绩单说话。
零样本预测是什么意思,可靠吗? 指预训练模型不做任何任务特定训练、直接输出预测(比如突变效应的打分)。可靠性分层看:模型预训练分布内的家族相当可靠(同源序列多的蛋白);分布外的(孤儿家族、极端环境蛋白)要打问号。使用纪律仍是 8.1 节那条迁移衰减律——把零样本输出当"便宜的先验",重要决策补实验或微调,不要当"免费的真理"。
微调一个蛋白语言模型需要多少数据? 令人惊喜地少:因为预训练已学到通用语法,下游任务常几百到几千条标注就能微调出可用性能(对比从头训练的百万级需求)。但小数据微调的坑在过拟合——学习率要小、早停要严、评估必须用完全 held-out 的测试集(3.3 节的切分纪律在深度学习语境同样适用)。数据极少的场景(几十条),考虑不做全参数微调,只训轻量的适配层。
GNN 会被 Transformer 取代吗? 两者在合流而非替代:纯 Transformer 把分子写成序列(类似 SMILES 的 token 化)也能学,且与语言模型共享架构红利;GNN 的图先验(显式表达连接性)在数据少时仍是优势。工程选型的现实判断:数据充足比架构选择更重要——先确保任务数据质量与数量,再在两者间做小规模对比实验定夺,避免架构信仰之争浪费迭代预算。
向量空间就绪,下一步不只是预测,而是在空间里主动搜索、创造。下一节:生成模型与它的护栏。