
在大数据时代,从生物学到材料科学的各个领域都充斥着极其复杂的信息。我们如何才能教会机器理解蛋白质的微妙语言、DNA 的语法或分子的反应潜力?答案不在于编写明确的规则,而在于让机器从数据本身中学习自己的表示方法。本文深入探讨了推动这场革命的核心概念:学习嵌入。我们探索了这种强大的方法如何将抽象数据转化为有意义的几何图谱,在这些图谱中,复杂的关系变成了简单的距离和角度。这种方法弥合了原始高维数据与可操作的科学洞见之间的根本差距。在接下来的章节中,您将发现创建这些“意义图谱”的基本原理,并见证它们在不同科学学科中的变革性影响。我们将首先探讨支配嵌入学习方式的原理和机制,从意义的几何学到预训练的力量。随后,我们将遍览其众多应用和跨学科联系,了解这些学习到的表示如何被用于解读生命蓝图、绘制复杂网络,并为医学带来新的清晰度。
一台由硅和逻辑门构成的机器,如何能理解分子的微妙舞蹈、蛋白质的复杂语言,或是编码在 DNA 中的宏大进化图景?当然,它无法像人类一样“理解”。但它可以做一些非常强大的事情:学会以一种能将复杂关系简单化的方式来表示世界。这种能力的关键在于一个被称为学习嵌入的概念。嵌入不过是一串数字——一个向量——但它是一串特殊的数字,充当坐标,将一个概念置于一个丰富的高维“意义图谱”中。在模型学会了这张图谱后,从药物发现到设计新酶的一切都变成了几何问题。
想象一下,试着解释猫、狗和汽车之间的关系。你可以写几段文字来描述它们的特征。猫和狗都是动物,有四条腿,通常是宠物。汽车是机器。现在,如果你能把这些概念放在一张地图上呢?你很可能会把猫和狗放在非常靠近的位置,而把汽车放在很远的地方。
这就是嵌入的核心思想。我们将每一个感兴趣的对象——无论是一个词、一个分子,还是一个完整的蛋白质——表示为一个多维空间中的点。对象的“意义”由其位置捕获,而它与其他对象的关系则由该空间的几何结构捕获。邻近意味着相似。
这不仅仅是一种哲学上的奇想,它具有深远的实际意义。假设一个生物学家团队拥有一种靶向特定蛋白质(我们称之为蛋白质Y)的药物。他们发现了一种与某种疾病相关、未经研究的新蛋白质X。同一种药物会起作用吗?如果我们已经为这些蛋白质学到了好的嵌入,我们可以简单地将它们表示为向量 和 ,并测量它们之间的“夹角”。一个小的夹角(即高的余弦相似度)表明这两种蛋白质在功能上是相似的,该药物可能对两者都有效。 “蛋白质相似性”这个抽象概念被转化为了一个简单的几何计算。因此,其魔力不在于计算本身,而在于计算机最初是如何学会绘制这张图谱的。
这些神奇的图谱是如何创建的?我们不是手动编程蛋白质或基因的“意义”。那将是一项不可能完成的任务。相反,我们让机器从海量数据中学习,遵循语言学中一个简单而深刻的原则,即分布假说:一个词的意义由其上下文决定(you shall know a word by the company it keeps)。
想一想“queen”(女王)这个词。你知道它的意思,因为你在“the king and queen”(国王和女王)、“Queen Elizabeth”(伊丽莎白女王)和“the queen ruled her kingdom”(女王统治她的王国)等语境中见过它。周围的词语提供了它的意义。同样的原则也适用于自然的构件。一个氨基酸的定义取决于在数百万个蛋白质序列中它倾向于出现在哪些其他氨基酸旁边。一个基因的功能则由其在数千个实验中与其他哪些基因共表达所暗示。
机器学习模型,特别是神经网络,可以被训练来玩一个基于此原则的“游戏”。我们可以取一个句子(或一个蛋白质序列),隐藏其中一个词(或氨基酸),然后要求模型根据上下文预测这个缺失的部分。这是连续词袋(CBOW)模型背后的核心思想。或者,我们可以给模型一个词,让它预测可能出现在其邻近位置的词。这就是Skip-Gram模型。
为了在这个游戏中表现出色,模型必须为每个词开发一个内部表示——这个表示就是学习到的嵌入。出现在相似上下文中的词需要有相似的内部表示,才能做出持续良好的预测。因此,作为学习预测上下文的一个美妙副产品,模型会自动将概念组织到一个有意义的几何空间中。它学习自然语言不是通过背诵字典,而是通过观察其“词汇”如何被使用。
在我们嵌入任何东西之前,我们必须首先确定我们语言的基本“词汇”或词元(tokens)是什么。这个过程被称为词元化(tokenization),是一个至关重要且常常微妙的步骤。词元化器的任务是将原始数据流分解为一系列离散的单元,每个单元都将获得自己的嵌入向量。
对于一个由SMILES字符串(如CCO,乙醇)表示的分子,一个简单的词元化器可能只是将其分割成字符:C、C、O。然而,一个更智能的词元化器会认识到C和O是原子单元,并且可能还会将更复杂的化学符号(如代表氯的Cl)作为单个词元来处理。选择什么构成一个“词元”是为问题施加结构的第一步。
这个选择绝非小事,它可以极大地改变模型能够学习的内容。考虑一个编码蛋白质的基因。DNA序列以三个核苷酸为一组的密码子被读取,每个密码子对应一个氨基酸。这个编码存在冗余;例如,六个不同的密码子都编码氨基酸亮氨酸(Leucine)。
如果我们选择在氨基酸水平上进行词元化,我们就会丢失这些信息。所有六个亮氨酸密码子都被映射到同一个“亮氨酸”词元。模型将无法辨别使用了哪个具体的密码子。然而,如果我们在密码子水平上进行词元化,模型就能区分所有64种可能的密码子。这使得它能够学习与密码子使用偏好相关的模式——这是一种微妙的生物学现象,即生物体倾向于使用某些同义密码子而非其他,这会影响蛋白质生产的速度和效率。词元化的选择定义了我们“地图”的分辨率。
在架构上,嵌入层本身出奇地简单:它只是一个大型查找表,一个大小为 的矩阵 ,其中 是我们词汇表中唯一词元的数量, 是我们嵌入空间的维度。当我们需要第 个词元的嵌入时,我们只需取出矩阵的第 行。如果我们发现一种新的氨基酸并需要将其添加到模型中,我们不需要重建所有东西;我们只需在嵌入表中添加新的一行,以容纳我们新词元的向量。
一个真正强大的表示不仅要捕捉统计模式,还必须尊重宇宙的基本定律——自然的对称性。一个理解这些对称性的模型数据效率更高,也更鲁棒,因为它不需要浪费精力从头重新学习物理学的基本规则。
考虑在三维空间中对一个分子进行建模。它的总势能是一个标量属性,取决于其原子的相对位置。如果你将这个分子平移到不同位置或旋转它,它的能量不会改变。这个属性被称为 不变性,代表平移和旋转的特殊欧几里得群。任何从三维坐标预测能量的模型都必须内置这种不变性。如果你给它一个分子,然后给它同一个分子但方向不同,它必须返回完全相同的能量。
然而,模型不应对镜像反射具有不变性。生命的构件是手性的——蛋白质由L-氨基酸构成,DNA的螺旋是右旋的。一个分子和它的镜像(它的对映异构体)可以有截然不同的生物学特性。一个好的模型必须能够区分它们。
所需的对称性完全取决于数据和问题。
我们甚至可以将这些对称性直接注入学习过程。DNA 是一个双螺旋结构。一条链上的序列,比如GA[TTA](/sciencepedia/feynman/keyword/test_time_augmentation)CA,在另一条链上有一个与之对应的反向互补序列TGTAATC。从生物学角度来看,这两个序列代表了同一段基因组信息。在为短 DNA 片段(k-mers)学习嵌入时,我们可以通过强制一个 k-mer 的嵌入向量与其反向互补序列的嵌入向量相同,来强制执行这一物理现实。这个简单的技巧,称为参数绑定,能将有效词汇量减半,并使模型立即意识到 DNA 结构的一个基本属性。
嵌入、从上下文中学习以及尊重对称性等概念,最终汇聚成现代人工智能中最具变革性的思想之一:迁移学习。
想象一下,在一个几乎包含所有已知蛋白质序列的庞大数据集上训练一个大型模型——这些序列数以百万计,从生命之树的各个角落收集而来。通过在这个巨大的数据集上玩上下文预测游戏,模型学习到一个结构精深的嵌入空间,一种通用的“蛋白质语言”。这个预训练模型没有被明确地教导关于蛋白质折叠或酶动力学的知识,但为了在预测任务中表现出色,它已经含蓄地学会了将这些原理编码到其表示中。它的嵌入捕捉了共进化、结构接触和功能角色的信号。
现在,假设你是一位科学家,面临一个新的具体问题:预测一个酶家族的某个属性,但你只有几百个标记好的例子。从头开始训练一个复杂的模型将是无望的;它只会记住这个小数据集,而无法泛化。但有了迁移学习,你就不必从零开始。你使用那个强大的预训练模型作为特征提取器。你将你的酶序列输入其中,得到丰富的预训练嵌入。然后,你基于这些嵌入训练一个非常简单的模型。
这个过程非常有效,因为嵌入提供了巨大的领先优势。从贝叶斯角度来看,预训练充当了一个信息量极大的先验,即使在特定数据非常少的情况下,也能引导模型走向物理上和生物学上合理的解决方案。
这个范式也是可扩展的。当我们遇到全新的事物,比如需要为一个包含原始模型从未见过的元素(例如氧)的系统建模时,会发生什么?我们不必扔掉我们辛苦学到的知识。我们可以使用一些巧妙的技术,比如为氧添加一个新的元素嵌入,并在一小部分新例子上仅对模型的一小部分(使用适配器)进行微调。或者我们可以使用多任务学习来明确地建模新元素与旧元素之间的关系。这使得模型可以跨元素“借用”统计强度,基于氧与氮和碳的化学相似性来对氧进行推理。
为了使这种适应更加高效,我们可以使用主动学习。我们不是随机收集一些含氧分子的例子,而是询问模型在哪些地方最不确定。然后,我们只对那些信息量极高的点进行昂贵的实验室实验或量子计算,并将结果反馈给模型,以填补其知识中最大的漏洞。
最终,这些学到的意义图谱不仅用于分析,也用于创造。通过在这个丰富的嵌入空间之上构建一个统计模型,例如高斯过程,我们可以在可能存在的分子或蛋白质的广阔图景中导航。利用贝叶斯优化,我们可以智能地问模型:“根据你所知,我应该在实验室合成什么新序列,才能最有希望提高这种酶的活性?”。我们不再仅仅是阅读自然之书;我们正在学习它的语言,以便开始书写我们自己的新篇章。
在上一章中,我们深入探究了计算机学习世界有意义表示(即嵌入)的精妙机制。我们看到,机器如何被教会绘制一张“地图”,其中邻近度等同于相似性,从而将抽象数据转化为结构化的几何空间。本章将探讨这些学习到的表示在从生命科学到材料科学等多个领域的应用,展示其广泛的影响力。学习嵌入这个单一而优雅的概念,已经成为一种通用语言,让我们能够在表面上看起来毫无关联的领域中,提出——并常常回答——深刻的问题。从我们自身DNA的螺旋脚本到先进材料的晶体结构,嵌入正为我们提供一个观察宇宙的新视角。
让我们从最基本的数据开始:生命的序列,DNA。几十年来,我们为计算机表示DNA序列的方式是简单的字母列表:A、C、G、T。一种常见的方法,独热编码(one-hot encoding),就像告诉机器:“在这个位置上,有一个A,而不是C、G或T。”这很精确,但同时也极其幼稚。它将每个核苷酸视为一个独立的实体,完全忽略了其邻居。这就像孤立地看每个字母来阅读一个句子,而不理解T-H-E构成了一个与T-E-A意义不同的词。
这正是嵌入提供革命性飞跃的地方。如果我们不看单个字母,而是教给机器基因组的“词汇”,会怎么样?通过分析海量的基因组数据,模型可以为短DNA序列,即-mers,学习嵌入。突然间,模型学到,“词汇”G-A-T-T-A-C-A不仅仅是一个随机的字母串。通过其学习到的嵌入,模型发现这个词经常与其他词在相似的上下文中出现,并开始在它的抽象地图中将它们归为一类。在小数据集中很少见但具有相似生物学功能的两个不同-mers可能会被映射到嵌入空间中相近的点。这提供了一种强大的正则化形式,使模型能够将其对常见-mer的知识泛化到更罕见的-mer上。在构建分类器以寻找增强子等功能元件时,使用这些预训练的-mer嵌入而非独热向量,可以提供更丰富、更具上下文的表示。这也极大地减少了模型需要学习的参数数量,使其效率更高,更不容易被噪声欺骗,尤其是在我们只有有限数量的标记样本时。
这种预训练的思想可以推向其逻辑极致。我们不仅仅是学习一个-mers的“字典”,而是可以在所有已知基因组上训练像DNA-BERT这样的巨型模型。训练目标简单且是自监督的:我们向模型展示一个带有一些被掩蔽核苷酸的DNA序列,并要求它预测缺失的字母。为了成功,模型必须含蓄地学习DNA的“语法”——它必须学习关于基序、基因结构以及区分功能区和垃圾序列的长程依赖关系。然后,当我们把这个预训练模型应用于一个特定的、数据稀缺的问题,比如识别启动子时,就像让一个已经读完整座图书馆的学生去解决一个问题。模型不是从零开始。从这个预训练状态开始训练,就像对DNA序列应有的样子有了强烈的先验信念;它对学习过程起到了正则化作用,并能在只有很少新的标记数据的情况下取得令人难以置信的性能。这就是迁移学习的力量,一个我们将反复看到的主题。
当然,科学家的工作不仅仅是制造一个能用的工具,还要理解它如何工作。这些复杂的模型仅仅是“黑箱”吗,还是它们学到了能反映生物学现实的东西?我们可以探测它们的内部状态——也就是嵌入本身——来找出答案。如果我们训练一个循环神经网络来区分增强子和启动子,我们会发现其内部隐藏状态会演化成专门的检测器。一些单元学会了在看到增强子特有的短小、位置灵活的结合位点时激活,它们甚至对这些位点之间的间距变得敏感。其他单元则学会了识别定义启动子的位置受限的基序,比如TATA盒。模型在没有被明确告知的情况下,重新发现了生物学家几十年来辛辛苦苦揭示的基因调控核心原则。这是计算机科学和生物学的美妙交汇,模型的学习表示验证并阐明了我们现有的知识。
这种方法的顶峰在于预测蛋白质的三维结构。很长一段时间里,主流方法是同源建模,这类似于描摹。如果你想知道一个新蛋白质的结构,你会找到一个已解析结构的已知亲缘蛋白,并假设你的新蛋白质看起来很相似。这种方法有效,但当你发现一个真正新颖、没有已知亲缘的蛋白质时,它就会彻底失败。像AlphaFold这样的现代深度学习模型采用了不同的途径。它们通过在所有已知结构上进行训练,学习折叠的基本原理。它们的内部表示——对序列和所有氨基酸之间的成对关系的极其复杂的嵌入——是如此丰富,以至于包含了最终三维形状的蓝图。
而真正的魔力正是在这里发生的。这些结构嵌入可以被重新利用。由于它们含蓄地编码了蛋白质的哪些部分最终会暴露在表面,以及它们的局部几何形状会是怎样,我们可以训练一个小的次级模型来“读取”这些嵌入,并预测最终结构的属性,例如哪些区域可能是被抗体识别的B细胞表位。然而,这也清醒地揭示了该方法的局限性。同样的嵌入对于预测T细胞表位是无用的,因为那个过程涉及蛋白质被切碎并以一种与其天然三维结构无关的方式呈现。模型根本没有在那个特定游戏的规则上进行过训练。同样,一个只在单个蛋白质链上训练的模型,如果不进行修改和重新训练,也无法预测蛋白质将如何与RNA相互作用。它学到的嵌入描述的是蛋白质内部的物理学,而不是分子间的化学。这是一个至关重要的教训:嵌入是它所见过的世界的地图,而不是可能存在的世界的地图。
世界并不总是一条简单的文本。通常,它是一个网络——事物的集合以及它们之间的关系。分子是原子通过化学键连接而成的网络。代谢途径是化学物质通过反应连接而成的网络。社会群体是人通过友谊连接而成的网络。嵌入的概念完美地适应了这一现实。使用一种称为图神经网络(GNN)的技术,我们可以为网络中的每个节点学习一个嵌入。这个过程非常直观:每个节点通过观察其邻居来学习它是什么。它从其直接连接中聚合“信息”,并更新自己的表示。这个过程重复进行,信息像池塘中的涟漪一样在网络中传播。几轮之后,每个节点的嵌入就成为其局部乃至非局部邻域的丰富摘要。
在系统生物学中,这开辟了一种探索细胞机器的新途径。想象我们有一张微生物代谢网络的部分图谱。我们可以训练一个GNN,根据已知的反应为每种代谢物学习一个嵌入。现在,考虑两个在我们的图谱中没有连接的代谢物。为了推测它们之间是否存在一个隐藏的反应,我们只需将它们最终学到的嵌入输入一个评分函数。如果根据评分器,这些嵌入是“兼容的”,这就表明一个连接很可能存在。我们可以用这个模型来填补我们图谱上的空白。在另一个场景中,我们可能有一个肠道细菌网络,其中一条边代表它们之间的基因转移。通过为每个细菌物种学习一个嵌入,然后对这些嵌入向量应用一个简单的聚类算法,我们可以发现“功能性群落”——即协同工作的细菌群,这通过它们密集的信息交换模式得以揭示。
同样的想法也从生物学延伸到化学和材料科学领域。从分子或晶体的结构预测其性质是这些领域的核心目标。GNN可以学会将一个化学结构表示为单个嵌入向量,然后用它来预测生成能或带隙等性质。但在这里,我们再次面临数据的挑战。我们可能有海量的模拟数据(例如,来自密度泛函理论),但只有一小部分珍贵的真实世界实验测量数据。解决方案是迁移学习。我们首先在庞大的模拟数据集上预训练一个GNN。然后,我们在较小的实验数据集上仔细地微调它。一个有原则的方案可能包括冻结网络的早期层(这些层学习键类型等通用化学特征),同时允许后期层进行适应。我们甚至可以继续在原始模拟任务上进行训练,将其作为一个“辅助”目标,这可以作为一种正则化手段,防止模型忘记它已经学到的基本物理知识。
当我们试图将知识从一个化学领域迁移到另一个截然不同的领域时,挑战变得更大,例如,从一个在小有机分子上训练的模型,到一个必须预测像蛋白质这样巨大生物聚合物性质的模型。问题是巨大的:尺度不同,原子类型不同,主导的物理力也不同。然而,有原则的解决方案是存在的。我们可以构建分层模型,在原子和残基两个层面上学习表示。我们可以在未标记的生物聚合物上进行中间阶段的自监督训练,以使模型适应新领域。我们可以扩展模型的词汇表以包含新的原子类型。我们还可以根据三维邻近度为图增加边,以帮助模型学习在小分子中不存在但在蛋白质生命中起主导作用的长程非共价相互作用。每一种策略都证明了嵌入框架的灵活性和强大功能。
学习嵌入最深刻的应用或许不仅在于预测,更在于理解。在像医学这样复杂的领域,我们常常被数据淹没。一个病人的转录组谱——数千个基因的表达水平——是他们当前生物状态的一个高维快照。它包含了关于他们的疾病、年龄、对治疗的反应,以及来自测量过程的技术噪声等信息,所有这些都纠缠在一起。
想象一下,我们训练一个单一模型,利用这些数据同时预测三件事:病人的疾病状态、他们的年龄以及他们对药物的反应。这被称为多任务学习。通过强制一个共享的编码器产生一个必须对所有三个任务都有用的单一潜在嵌入,我们鼓励模型做一件非凡的事情:解开数据中不同变异来源的纠缠。
当我们检查这样一个模型的学习到的潜在空间时,我们可能会发现一些美妙的东西。嵌入向量的一个维度,比如说,最终可能与年龄高度相关,而与其他因素无关。另一个维度,可能与年龄没有相关性,但与炎症相关的基因集有很强的关联,并且对疾病和治疗反应都有预测性。而第三个维度,可能完美地捕捉了技术上的批次效应,将这种讨厌的变异与生物信号分离开来。在控制了已知的协变量后,我们发现与疾病的表面联系只是通过年龄产生的伪相关,而代表了一个真正的生物学轴,提供了独立的预测能力。
这不仅仅是一个做出预测的黑箱。这是一台像科学家一样行动的机器。它将一个混乱的高维数据集分解为其基本的、可解释的组成部分。它将信号与噪声分离,将生物学因素与技术因素分离,将混杂因素与因果因素分离。它不仅为我们提供了一个预测,还提供了一个假说。它告诉我们,也许这个“炎症轴”是疾病中的一个关键角色,是一个值得进一步研究的目标。
从简单的字母序列到细胞中分子的复杂舞蹈,再到人类疾病的复杂图景,学习嵌入的旅程是一个抽象程度和能力不断增强的过程。它证明了一个统一的原则:在一张绘制精良的世界地图中,我们不仅可以发现事物的位置,还可以发现它们的真正意义。