scBERT as a large-scale pretrained deep language model for cell type annotation of single-cell RNA-seq data
基于单细胞RNA-seq数据注释细胞类型是研究疾病进展和肿瘤微环境的先决条件。在这里,我们表明,现有的注释方法通常缺乏精心策划的标记基因列表、批量效应处理不当以及难以利用潜在的基因-基因相互作用信息,从而损害了它们的泛化性和鲁棒性。我们开发了一种基于预训练深度神经网络的模型,来自 Transformer 的单细胞双向编码器表示 (scBERT),以克服这些挑战。遵循 BERT 的预训练和微调方法,scBERT 通过对大量未标记的 scRNA-seq 数据进行预训练,获得了对基因间相互作用的总体了解;然后将其转移到看不见的和用户特定的 scRNA-seq 数据的细胞类型注释任务中,以进行监督微调。广泛而严格的基准研究验证了 scBERT 在细胞类型注释、新细胞类型发现、批次效应稳健性和模型可解释性方面的卓越性能。
主要的
scRNA-seq 的准确细胞类型注释对于生物和医学研究至关重要。
细胞类型注释方法可分为三种类型:
(1)使用标记基因注释
(2)使用基于相关性的方法注释和
(3)通过监督分类注释
先聚类然后注释是常用的方法,其中使用从文献中识别出的手动标记基因来为源自无监督学习的聚类分配细胞类型。然而,标记基因的选择取决于研究人员的先验知识,因此容易出现偏差和错误。
此外,感兴趣的细胞类型的标记基因并不总是可用,并且新的细胞类型还没有标记基因集。此外,大多数细胞类型是由一组基因而不是单个标记基因决定的。如果没有适当的方法来整合多个标记基因的表达信息,则很难保证每个簇的统一和准确的细胞类型分配。
例如,一些自动注释方法建立在标记基因应该在细胞中高表达的假设之上。然而,即使是一些有据可查的标记基因也并非在相应细胞类型的所有细胞中都具有高表达。因此,这些标记基因表达的缺失或波动可能会极大地影响基于标记基因的方法的精确性。
这些标记物表达的缺失或波动,可能会显著影响基于标记基因的方法的准确性。
基于相关性的方法不依赖于标记基因点,而是测量查询样本和参考数据集之间基因表达谱的相关性。这些方法可能受到跨平台和实验的批次效应的影响。尽管存在批次效应校正方法,但区分真正的生物多样性和技术差异并从而保留重要的生物变异仍然具有挑战性。同时,常用的相似性度量(即余弦相似性、斯皮尔曼相关性和皮尔逊相关性)在测量两组高维稀疏 scRNA-seq 数据之间的距离时可能不稳健或有效。
监督/半监督分类方法
监督/半监督分类方法的注释遵循机器学习中的经典范例,识别基因表达谱中的模式,然后将标签从标记数据集转移到未标记数据集。这种方法对数据的噪声和变异性具有鲁棒性,而且不受人工选择的标记基因的影响,因此近来得到了广泛应用。
然而,由于模型容量有限,大多数这些方法需要在将数据输入分类器之前==执行高可变基因(HVG)选择和降维==。然而,==HVG 在不同批次和数据集中是可变的==,阻碍了它们在队列中的泛化能力。==主成分分析 (PCA) 等降维技术==可能会丢失高维信息以及基因水平的独立可解释性。此外,这些方法中HVG选择和PCA的参数设置远未达成共识,不可避免地会给性能评估带来人为偏差。
鉴于 HVG 是根据整个数据集的表达方差来选择的,其中优势细胞类型占最大方差,因此存在忽视稀有细胞类型的关键基因的风险。选择 HVG 会忽略基因的共现和生物相互作用(尤其是 HVG 和非 HVG 之间),这对于细胞类型注释很有用。此外,简单的分类器(例如完全连接的网络)无法有效捕获基因与基因的相互作用。因此,需要一种具有改进的模式识别能力的新方法来克服上述对大规模数据集的欠拟合问题。
最近,越来越多基于深度学习的方法被应用于 scRNA-seq 数据分析,并取得了卓越的性能。变压器双向编码器表征(BERT)是一种基于变压器的最先进(SOTA)语言表征学习模型。它在自然语言处理(NLP)领域取得了突破性进展,原因在于变换器层引入了强大的自我注意机制和长程信息整合能力。BERT 的预训练和微调范式可以使用大规模无标签数据来提高人工智能模型的泛化能力。受这一令人振奋的进展的启发,我们开发了单细胞 BERT(scBERT)模型,用于 scRNA-seq 数据的细胞注释。在预训练和微调范例之后,我们验证了在大规模无标签 scRNA-seq 数据上应用自监督学习的能力,以提高模型的泛化能力并克服批次效应。广泛的基准测试表明,scBERT 可以提供稳健、准确的细胞类型注释,并具有基因水平的可解释性。据我们所知,scBERT 率先将 Transformer 架构应用于 scRNA-seq 数据分析,并创新性地设计了基因嵌入。
结果
scBERT方法
最初的 BERT25 提出了一种革命性的技术,即通过预训练生成通用语言知识,然后通过微调将知识转移到不同配置的下游任务中。按照 BERT 的思路和范式,我们开发了一种名为 scBERT 的新型统一架构(图 1),它通过对数百万个来自不同来源的各种细胞类型的无标记 scRNA-seq 数据进行预训练来学习一般 scRNA-seq 知识,并通过简单地插入分类器和在参考数据集监督下微调参数来分配细胞类型。预训练使模型能够学习基因-基因相互作用的一般语法,这有助于消除数据集之间的批次效应,提高普适性(扩展数据图 1a)。微调可确保每个基因的输出嵌入编码的上下文信息与参考数据集的转录特征更加相关。要注释一个查询细胞,scBERT 会通过挖掘高层次隐含模式,计算该细胞成为参考数据集中标注的任何细胞类型的概率(扩展数据图 1b)。需要注意的是,如果没有高置信度的细胞类型可分配,查询细胞将被标记为未分配,以防止错误分配,并允许发现新的细胞类型。与最初的 BERT 模型相比,scBERT 有一些创新设计,可以在细胞类型标注任务中发挥更大的作用。
![](https://img.haomeiwen.com/i7691822/f4d88ac701113ae3.jpg)
首先,BERT 的嵌入包括标记嵌入和位置嵌入。我们的嵌入设计在某些方面与 BERT 相似,但也有利用基因知识的独特功能。原始 BERT 的标记嵌入是一个离散变量(代表一个单词),而我们模型的原始表达输入是一个连续变量(代表一个基因在单个细胞中的表达),带有生物和技术噪声。我们借鉴了 NLP 领域的词袋技术,对基因表达量(可视为==每个细胞中的基因转录本频率==)进行分选,从而将其转换为离散值,并在一定程度上==降低了数据噪声==。由于对输入数据进行洗列并不会改变其含义(就像用 TaBERT扩展 BERT 以理解表格数据一样),因此绝对位置对基因来说毫无意义。相反,我们从 gene2vec28 中获得了基因内嵌来表示基因的身份(每个基因都有一个唯一的 gene2vec 内嵌),这可以看作是相对内嵌 ,可以从一般共表达方面捕捉语义相似性。共表达基因保留了更紧密的表征,而基因的分布式表征已被证明可用于捕捉基因-基因间的相互作用。这样,scBERT 就能有效地形式化 Transformer 的基因表达信息,并生成单细胞特异性嵌入(scBERT embedding),该嵌入代表了基因与细胞间的相互作用。
普遍算法的限制:
其次,现有的单细胞方法由于高效建立高维数据模型的能力有限,不得不通过选择或操作基因(即 HVG 选择、人工选择标记基因和 PCA)对原始数据进行预处理;这些方法不可避免地会带来人为偏差和过拟合问题,进而可能严重影响其普适性。
scbert
相反,具有大感受野的 Transformer 可以有效利用 scRNA-seq 数据中的全局信息,通过无偏捕捉长程基因-基因相互作用,为每个细胞学习全面的全局表征。由于计算的复杂性,Transformer 的输入序列长度限制在 512,而大多数 scRNA-seq 数据都包含超过 10,000 个基因。因此,我们用 Performer 取代了 BERT 中使用的 Transformer 编码器,以提高模型的可扩展性,使其能够承受超过 16,000 个基因的输入(为什么是这个数呢?)。有了 Performer,scBERT 保留了完整的基因水平解释,放弃了使用 HVGs 和降维,让具有鉴别性的基因和有用的交互作用自己浮出水面(扩展数据图 1d)。因此,scBERT 允许以无偏见的数据驱动方式发现基因表达模式和细胞类型注释的长程依赖性。因此,scBERT 允许以无偏见的数据驱动方式发现基因表达模式和细胞类型注释的长程依赖性。
方法
scBERT 模型
scBERT模型采用了BERT的先进范式,并定制了架构来解决单细胞数据分析。我们的模型与 BERT 的联系如下。首先,scBERT 遵循 BERT 的革命性方法进行自监督预训练,并使用 Transformer 作为模型骨干。其次,我们的嵌入设计在某些方面与 BERT 相似,但具有利用基因知识的独特功能。从这个角度来看,我们的表达式嵌入可以被视为 BERT 的 token 嵌入。由于打乱输入的列并不会改变其含义(就像使用 TaBERT 扩展 BERT 来理解表格数据一样),因此绝对位置对于基因来说是没有意义的。相反,我们使用gene2vec 来生成基因嵌入,这可以被视为相对嵌入,它捕获任何两个基因之间的语义相似性。第三,具有全局感受野的Transformer可以在没有绝对位置信息的情况下有效学习全局表示和长程依赖,在非序列数据(例如图像、表格)上取得优异的性能。
Gene embedding
在 NLP 中,BERT 模型的输入是单词嵌入,即在预定义的向量空间中代表单个单词的一组实值向量。单词嵌入技术通过确保具有相似含义的单词具有相似的表示,有助于更好地表示文本。然而,从 scRNA-seq 的角度来看,输入由单个基因构成,需要一个预定义的向量空间来表示它们之间的相似性。因此,我们采用了 gene2vec 来专门编码基因嵌入。这样,借助过去知识提供的基因间关系,模型训练的难度就降低了。
Expression embedding
尽管进行了基因嵌入,但如何利用每个基因的转录水平(实际上是一个单一的连续变量)也是一个挑战。值得注意的是,单词在文本中出现的频率是文本分析的宝贵信息,通常会通过词频统计分析将其转化为词袋,用于 NLP 领域的下游任务。基因表达也可视为生物系统中已被充分记录的每个基因的出现情况。根据这一观点,我们采用了传统的词频分析方法,通过分选将连续表达变量离散化,并将其转换为 200 维向量,然后将其用作 scBERT 模型的标记嵌入。
Model building
以 Transformer 为基本单元的 BERT 模型的二次计算复杂度并不能很好地扩展到长序列,而 scRNA-seq 的基因数可能多达 20,000 多个。为此,我们采用了矩阵分解版本的 Transformer(即 Performer)来扩大序列长度。
==模型训练过程包括两个阶段:在无标签数据上进行自监督学习,以获得预训练模型;在特定细胞类型标注任务上进行监督学习,以获得微调模型==。
无标签数据的自我监督学习
在本研究中,我们沿用了 BERT 模型在 NLP 任务中的传统自学习策略,即随机屏蔽输入数据值并根据剩余输入值进行预测。考虑到掉零现象(dropout zeroes phenomenon),我们随机屏蔽了非零基因表达,然后利用剩余基因通过模型预测重建原始输入。我们将交叉熵损失作为重建损失。
对特定任务的监督学习
scBERT 的输出是每个基因对应的 200 维特征,并对每个基因特征进行一维卷积以提取抽象信息。然后应用三层神经网络作为分类头,将基因特征转化为每种细胞类型的概率。交叉熵损失也被用作细胞类型标签预测损失。
数据预处理
至于以基因表达矩阵格式提供的数据,则使用 10,000 的大小因子对数据进行对数归一化处理,并通过过滤表达基因少于 200 个的细胞离群值进行质量控制。至于 scBERT 的输入,由于 scBERT 的输入容量超过 20,000 个基因,并且保留了基因层面的完全可解释性,因此没有进行降维或 HVG 选择处理。
评估指标
分别使用准确度和宏 F1 分数指标评估每种方法在细胞级别和细胞类型级别的细胞类型注释性能。由于细胞类型注释任务和细胞聚类任务并不等同,因此评估聚类质量和距离的指标被排除在本研究之外。
对 scBERT 的系统分析
Pretraining versus not pretraining
按照 BERT 的预训练和微调范式,我们的方法很容易生成高效的编码器,并提供一般的嵌入,通过揭示关键模式,降低数据噪声,从而更好地表达每个细胞的基因表达。关于有无预训练模型性能的消融研究结果(扩展数据图 1a)表明,预训练对模型的下游任务(即细胞类型注释)至关重要,在生物信息学领域具有相对较大的重要差异。scBERT 模型从大规模的各种 scRNA-seq 数据中提取了基因表达和相互作用的有用关注模式,减轻了对特定下游任务进行微调的工作量。
![](https://img.haomeiwen.com/i7691822/70afdc022da86901.png)
利用基因表达模式进行分类的可行性
众所周知,标记基因在基于标记基因的细胞类型注释和大多数基于参考文献的注释中起着关键作用。即使是一些基于监督的方法,也在很大程度上依赖于先前的标记基因知识。在目前使用标记基因进行分类的主流方法中,有些方法使用基因表达模式进行细胞类型标注。据报道,这两类方法在不同的细胞类型标注任务中都取得了良好的表现,这表明这两类数据都隐含着不同细胞类型的判别信息。为了研究标记基因的影响以及只包含非标记基因的剩余表达模式的判别能力,我们进行了实验,逐步剔除标记基因,留下剩余的表达谱用于细胞类型注释(扩展数据图 1b 和补充表 16)。
结果证明,标记基因对于细胞类型注释非常重要;然而,除了标记基因之外,仍有一些信息基因模式对细胞类型分类具有很好的区分能力。在 100%删除标记基因的情况下,scBERT 仍能有效地学习信息基因模式,并在具有代表性的 Zheng68K 数据集上实现了与使用所有标记基因的比较方法的最佳性能相当的性能(扩展数据图 1b)。我们观察到基于机器学习的方法倾向于学习高层次的隐含细胞类型特异性模式(即发现一些在不同细胞类型中等级较高的基因),而基于非机器学习的方法通常只是通过统计分析找到差异表达的基因。结果表明,注意力机制、显著性机制和统计分析可以从不同角度获得单细胞数据挖掘模式的互补信息。
通用基因嵌入与单细胞特异性嵌入
Gene2vec 基于批量数据 ,测量的是组织中基因的平均表达量,是按细胞类型比例加权的细胞类型特异性基因表达量之和。在这方面,gene2vec 保持了基因的一般共表达模式,但避免了单细胞测序的强噪声和高稀疏性。因此,我们利用 gene2vec 作为基因嵌入来表示基因身份(每个基因都有一个唯一的 gene2vec 嵌入),并从一般共表达模式方面表示语义相似性。scBERT 编码器还可以学习单细胞特异性嵌入(我们简称为 scBERT 嵌入),以表示细胞特异性表达。为了说明模型学习过程中嵌入(或表征)的演变,我们在扩展数据图 1b 中展示了 gene2vec 和 scBERT 嵌入的例子。
我们的模型可以为不同的细胞输入生成同一基因的不同表示,而 gene2vec 则可以为不同的细胞输入生成同一基因的所有相同表示。我们观察到,scBERT 嵌入显示了细胞类型特异性表征(即基因的示例表征在 alpha 细胞中大量富集),适合下游的细胞类型注释任务。此外,细胞类型特异性表征还能学习到一些超越 gene2vec 的相关性。在对 scRNA-seq 数据进行模型训练后,该模型受益于 Performer 的注意力机制,可以检测到只能在单细胞数据中看到的微妙基因相互作用模式(扩展数据图 1d)。可以观察到一些基因对所有其他基因都有很强的注意力权重,这表明它在识别隐含模式中起着关键作用,这与补充表 17 和 18 中检测到的基因列表的结论是一致的。
超参数的影响
在 scBERT 上对超参数的敏感性(包括 bin 数量、scBERT 嵌入向量的大小、注意力头的数量和 Performer 编码器层的数量)进行了系统研究(扩展数据图 1b)。首先,通过将原始表达排序到七个容器中的表达嵌入适用于 scBERT。将 bin 数量增加到 9 会阻碍模型性能,这表明对基因表达进行排序会对原始数据进行去噪,并提高 scBERT 学习有意义模式的效率。相比之下,减少 bin 数量也会因基因表达信息的丢失(即模糊相对较大的基因表达差异)而影响模型性能。上述实验结果证明,平衡去噪同时保留表达信息的bin数的合理设计将有利于模型性能。其次,gene2vec提供了200个维度的嵌入,与其他维度相比取得了最好的性能。
减少潜在空间中 scBERT 嵌入向量的维度会损害模型的表示能力和性能(尤其是当维度为 50 时)。第三,具有十个注意力头适合我们的方法。由于代表性子空间较少,减少注意力头的数量可能会降低模型的表示能力。增加注意力头的数量似乎对性能的影响有限;然而,过度参数化模型(具有 20 个注意力头)面临过度拟合的风险,特别是在应用于小型数据集时。同样,该模型在使用四个和六个 Performer 编码器层时表现稳定,但在减少或增加层数时可能会出现欠拟合或过拟合问题。总体而言,上述参数的微小波动对模型的性能影响不大,这也验证了scBERT的鲁棒性。
参考:
scBERT as a large-scale pretrained deep language model for cell type annotation of single-cell RNA-seq data
Choromanski, K. et al. Rethinking attention with performers. In International Conference on Learning Representations (NIPS, 2021).
网友评论