文章链接:A whole-slide foundation model for digital pathology from real-world data | NatureDigital pathology poses unique computational challenges, as a standard gigapixel slide may comprise tens of thousands of image tiles1--3. Prior models have often resorted to subsampling a small portion of tiles for each slide, thus missing the important slide-level context4. Here we present Prov-GigaPath, a whole-slide pathology foundation model pretrained on 1.3 billion 256 × 256 pathology image tiles in 171,189 whole slides from Providence, a large US health network comprising 28 cancer centres. The slides originated from more than 30,000 patients covering 31 major tissue types. To pretrain Prov-GigaPath, we propose GigaPath, a novel vision transformer architecture for pretraining gigapixel pathology slides. To scale GigaPath for slide-level learning with tens of thousands of image tiles, GigaPath adapts the newly developed LongNet5 method to digital pathology. To evaluate Prov-GigaPath, we construct a digital pathology benchmark comprising 9 cancer subtyping tasks and 17 pathomics tasks, using both Providence and TCGA data6. With large-scale pretraining and ultra-large-context modelling, Prov-GigaPath attains state-of-the-art performance on 25 out of 26 tasks, with significant improvement over the second-best method on 18 tasks. We further demonstrate the potential of Prov-GigaPath on vision--language pretraining for pathology7,8 by incorporating the pathology reports. In sum, Prov-GigaPath is an open-weight foundation model that achieves state-of-the-art performance on various digital pathology tasks, demonstrating the importance of real-world data and whole-slide modelling. Prov-GigaPath, a whole-slide pathology foundation model pretrained on a large dataset containing around 1.3 billion pathology images, attains state-of-the-art performance in cancer classification and pathomics tasks.https://rdcu.be/dWvGchttps://doi.org/10.1038/s41586-024-07441-w
datasets:非公开,只有去识别的测试子集。以及公开数据集TCGA-LUAD 可通过 NIH 基因组数据共享门户获取,https://portal.gdc.cancer.gov/projects/TCGA-LUAD
目录
[1. 模型框架](#1. 模型框架)
[1.1 DINOv2](#1.1 DINOv2)
[1.2 掩码自编码器预训练](#1.2 掩码自编码器预训练)
[1.3 LongNet网络](#1.3 LongNet网络)
[2. PubMedBERT生物医学领域预训练的语言模型作为文本编码器](#2. PubMedBERT生物医学领域预训练的语言模型作为文本编码器)
[2. AUROC(Area Under the Receiver Operating Characteristic Curve)](#2. AUROC(Area Under the Receiver Operating Characteristic Curve))
[1. 从病理图像中预测肿瘤突变基因](#1. 从病理图像中预测肿瘤突变基因)
[2. 癌症亚型分类](#2. 癌症亚型分类)
一:文章要解决的问题
标准的千兆像素切片可能由数万个图像块组成。之前的模型通常只对每个切片的少量图像块进行抽样,因此错过了重要的切片级别上下文信息。
1.首先,公开可用的病理数据相对较少,质量参差不齐,这限制了在这些数据上预训练的基础模型的性能。癌症基因组图谱(TCGA)的全片图像(wsi) 包括大约30,000张幻灯片和2.08亿个patch。
虽然它们是一个巨大的资源,但TCGA数据可能不够大,无法完全解决临床实践中围绕现实世界数字病理学的挑战,在使用基于TCGA的预测模型和生物标记物对分布外样本时性能大幅下降。
2.其次,设计一种既能有效捕获单个patch中的局部模式又能捕获整个幻灯片中的全局模式的模型体系结构仍然具有挑战性。现有模型通常将每个patch视为一个独立的样本,并将wsi级建模制定为多实例学习。从而限制了它们在十亿像素整张幻灯片中模拟复杂全局模式的能力。
3.第三,在极少数情况下,确实有一些模型是在大规模的真实患者数据上进行预训练的,但这些模型通常没有对外开放,限制了它们在实际临床应用中的推广(该模型公布了模型权重)。
二:文章提出的方法
1. 模型框架
为了同时捕捉切片上的局部和全局模式,作者提出了GigaPath ,是基于Vision-Transformer架构。核心思想是将图像patch嵌入为视觉token,从而将整个切片转化为一个长序列的token。
传统的视觉Vision-Transformer无法直接应用于数字病理学,因为一张病理切片可能包含成千上万的图像小块(如Providence数据中的切片最多包含70,121个小块),而Transformer的自注意力机制计算复杂度随着序列长度呈二次增长。
因此,该框架预训练过程(微调或直接用于下游任务)主要包含两个自监督的组成部分:
• DINOv2 教师 -学生框架在patch级别进行无标签自蒸馏(内部为Vision- Transformer),图 b ;
• LongNet (稀疏自注意力)和掩码自编码器进行全切片级的自监督学习,图c。
自监督目标的核心不在于直接分类,而是在没有标注数据的情况下学习切片的 深层特征表示。这些表示可以进一步用于下游任务,例如分类、分割或其他病理学相关的应用。
1.1 DINOv2
DINOv2 主要通过蒸馏过程 实现自监督学习,通过学生模型和教师模型之间的对比学习 有效的表示。目标是从无标注图像中提取稳健的视觉特征,得到能够有效提取patch特征的学生模型。DINOv2 生成的嵌入能够在特征空间中形成聚类。
1. 学生模型与教师模型的架构
- 学生模型和教师模型通常使用相同的神经网络架构(ViT),但它们的参数是不同的。
- 学生模型是正在学习的模型,在训练过程中,学生模型会在迭代中学习如何模仿教师模型的输出,从而逐步优化自身的参数。
- 教师模型是相对稳定的模型,用于为学生模型提供学习目标。教师模型的参数通常是通过学生模型的参数更新得到的,并经过指数移动平均 (Exponential Moving Average, EMA) 机制保持稳定。
2. 输入数据的不同
对同一张图像,应用不同的数据增强方式(例如旋转、裁剪、色彩变换等)来生成多个视图(不同版本的同一图像),这些视图会被分别输入到学生模型和教师模型,两者得到的token看作是对图像内容的不同层次的理解。
3. 对比学习
经过不同增强方式处理的相同图像,它们在表示空间中的特征应该尽可能接近,而不同图像的表示应该保持分离。这个过程通过对比学习来实现,目的是让模型学习到每个图像在不同视图下保持一致的表征。
4. 损失函数
DINO 使用 对比损失 (contrastive loss) 来训练模型。学生模型的输出和教师模型的输出CLS_token之间的相似度 。(CLS_token 是最终用于代表整张patch图像的全局表示; 随着 Transformer 网络处理这些视觉 token 和 CLS token,CLS token 会与其他 token 进行交互,逐渐学到整个图像的全局表示。)
DINO 使用的对比损失基于 KL 散度 (Kullback-Leibler Divergence),通过让学生模型的输出(即 CLS token)尽量匹配教师模型的输出,从而最小化损失,学生模型逐步学习到教师模型的表征能力。
1.2 掩码自编码器预训练
自监督方法,在训练过程中,部分输入数据(在这里可能是图像的某些区域)会被掩盖或丢失,然后模型被要求重建这些被掩盖的部分。通过这种方式,模型能够学习到输入数据的整体结构和特征,这在图像处理中有助于提升模型对局部特征和全局结构的理解。
1.掩码输入数据
在训练过程中,输入数据(例如图像)的一部分(某些patch)被随机遮盖或丢弃。
2. 编码器
模型的编码器只接收到未被遮盖的部分。通过对这些部分的编码,模型尝试提取图像的局部和全局信息。
3. 解码器
编码器的输出传递到解码器,解码器接收编码的表示并尝试重建完整的输入图像。
4. 重构损失
比较生成的输出(即重构的版本)与原始输入之间的差异。
对于图像或序列,通常使用 均方误差(MSE) 或 **交叉熵损失(Cross-Entropy Loss);**在长序列任务中,比如文本重建任务,重构损失通常衡量每个 token 的生成输出和真实输入 token 之间的差异。
重构损失MSE会对特征向量中每个值逐个进行计算,比较原始特征向量和重建后的特征向量在每个维度上的误差,然后对这些误差取平均。
优点:
掩码自编码器通过强迫模型重建图像中缺失的部分,模型需要对图像的整体结构和局部细节都有深刻的理解。这有助于模型在下游任务(如分类、检测等)中表现更好。
MAE 只需要对部分数据进行编码处理,这在训练过程中可以显著减少计算开销,特别是在处理超大图像时效果更为显著。
无需大量标注数据。
1.3 LongNet网络
文章:LongNet: Scaling Transformers to 1,000,000,000 Tokens
http:// https://doi.org/10.48550/arXiv.2307.02486
1. 膨胀式自注意力机制
不同于自注意力机制对序列中的每个 token 都进行全局注意力。
膨胀式自注意力机制是根据一定的间隔跳过一些 token。这种跳跃式的注意力机制类似于在卷积神经网络中使用的膨胀卷积,使得模型在保持计算复杂度相对较低的同时,仍能捕获到全局的上下文信息。LongNet 可以高效处理极长的序列,而不需要线性增加计算资源(Transformer)。
应用:
长序列生成:LongNet 的设计能够处理非常长的序列,比如文本生成任务中的长文档或者 DNA 序列。decoder 在这些任务中会逐步生成序列的每个元素(例如,每个单词或每个 token),并结合 encoder 提供的上下文信息来输出整个序列。
自回归生成:在自回归生成任务中(例如自然语言生成),decoder 通过逐步生成下一个 token,并利用已经生成的 token 作为输入,直到生成完整的序列。LongNet 的 decoder 可以在处理非常长的序列时,仍然高效地进行生成。
视觉-语言任务中的解码:如果 LongNet 用于多模态任务(例如图像-文本生成任务),decoder 的任务是将从图像编码器获取的视觉信息解码为相应的文本输出,获得全局概述。
2. 膨胀率(Dilation Rate):即跳跃间隔,如果膨胀率为 2,那么模型会关注当前 token 和相隔两个位置的 token。
3. 分层设计:LongNet 采用了一种分层结构,逐层增加膨胀率。这样可以在早期层捕捉到局部细节(低膨胀率),而在高层次捕捉到长距离的全局上下文(高膨胀率),这使得模型在处理长序列时能够既捕获细粒度信息,又能够捕捉全局信息。
LongNet和MAE结合能够对全局和局部的模式来进行建模,通过重构损失确保长距离依赖关系被正确建模,同时显著提高的计算效率。
三:数据集构建
首先,prov-gigapath在provi - path上进行预训练,prov- path是来自Providence普罗维德斯28个癌症中心的健康网络的大型数字病理数据集。
provo - path包含来自171189(H&E)染色和免疫组织化学病理切片的13亿张图像patch,这些切片来自30,000多名患者的活检和切除,涵盖31种主要组织类型
在图像patch数量上,provo- path比TCGA大5倍以上,在患者数量上,比TCGA大2倍以上。
预训练利用了所有13亿个图像块,作者说,这是迄今为止最大的预训练成果。
在模型验证过程中,为了系统地调查Prov-GigaPath作为病理学基础模型在真实世界场景中的有效性,作者建立了一个涵盖26个预测任务的综合数字病理学基准,包括病理学和癌症亚型分类任务,使用了Providence和TCGA的数据。
四:医学相关的知识
1.泛癌
泛癌(pan-cancer)是指在多种不同类型的癌症中寻找和分析共同的特征、机制和生物标志物的研究方式。泛癌研究旨在跨越癌症类型的界限,识别所有癌症中共同的基因突变、分子机制或生物学特性,从而帮助理解癌症的整体生物学规律。
2. PubMedBERT生物医学领域预训练的语言模型作为文本编码器
专门为生物医学领域预训练的语言模型。它基于BERT(Bidirectional Encoder Representations from Transformers)架构。
PubMedBERT使用了PubMed(生物医学文献数据库)中的论文摘要和PubMed Central中的全文数据进行预训练。
主要应用:
- 生物实体识别:识别生物医学领域的专有名词和概念(如基因、疾病、药物等)。
- 关系抽取:从文本中提取不同生物实体之间的关系。
- 文献分类和摘要生成:对生物医学文献进行分类或生成摘要。
- 医学问答系统:在医学问答场景下提供准确答案。
五:部分评价指标介绍
1.平衡精度BACC
在多分类问题中,BACC(Balanced Accuracy,平衡准确率)是为了处理不平衡数据而提出的评估指标。它通过计算每个类别的准确率,进而得出一个平均值,反映了分类器在不同类别上的整体表现。计算公式如下:
BACC 是各个类别的召回率的平均值,旨在反映模型在不平衡数据集上的整体表现。
2. AUROC(Area Under the Receiver Operating Characteristic Curve)
One-vs-Rest(OvR):对于每个类别,将该类别视为正类,所有其他类别视为负类。然后,计算每个类别的 ROC 曲线,并计算出每个类别的 AUROC 值。最终的多分类 AUROC 是所有类别的 AUROC 的平均值。
3.AUPRC
平均精度-召回曲线下面积是用于二分类任务中的一种评估指标,特别适用于类别不平衡的场景。AUPRC通过度量模型在不同阈值下的精度(Precision)与召回率(Recall)之间的权衡,来评估模型的性能。
阈值的具体定义:
- 对于二分类任务,模型通常会输出样本属于某个类别(例如正类)的概率值,范围为0到1。
- 阈值就是设定一个0到1之间的数值,如果输出的概率大于等于这个阈值,模型将该样本分类为正类;如果概率小于阈值,则分类为负类。
- 默认情况下,很多二分类问题的阈值设定为0.5,但在某些情况下,这个默认值可能并不是最优选择,尤其是在处理类别不平衡数据时。
- AUROC侧重于评价正类和负类的整体区分能力,对数据分布比较均衡的数据集效果较好。
- AUPRC则更加关注正类样本的识别效果,适用于正类样本较少的情景,能够更准确地反映模型在不平衡数据集上的表现。
- AUPRC常用于不平衡的二分类任务,例如欺诈检测、疾病诊断等,在这些任务中正类(例如欺诈、疾病病例)通常较少。
六:实验
1. 从病理图像中预测肿瘤突变基因
通过图像识别组织中的模式,预测基因的突变状态,而无需直接进行基因组测序。这种方法允许通过组织图像大规模挖掘潜在的生物标志物,尤其是在跨癌种的预测中有显著优势。标签可以是某个基因(如 KRAS 或 EGFR)是否发生了突变(突变或非突变)。
泛癌的18 个跨癌种中最常见的生物标志物;
肺腺癌的五个基因(EGFR、FAT1、KRAS、TP53 和 LRP18)的突变预测任务;
泛癌的上述五种基因的突变预测任务;
TCGA数据集上的肺腺癌五基因分析;
总体肿瘤突变负荷(TMB)的预测;(TMB是实体肿瘤的预测性生物标志物,与免疫治疗特别相关)
2. 癌症亚型分类
九种主要癌症类型的亚型分型
3.消融实验
4.切片级的和视觉语言对齐
包含零样本癌症亚型分类,对非小细胞肺癌(NSCLC)和结直肠癌(COADREAD)进行癌症亚型分类。第二个是零样本基因突变预测。(这里一直很不懂zero-shot,参考博文零次学习(zero-shot learning)基本概念_domain shift problem-CSDN博客)
猜测,应该是测试即中有对非小细胞肺癌和结直肠癌的文字描述(包含这两个亚型的名称,病例中包含对切片中一些组织形态、病变描述)转化为embedding。此时模型已经经过预训练具备将图像与相对应的图像文本描述联系起来的能力了。
然后拿到测试图像(训练图像并没有这两类),模型能够预测哪张切片是非小细胞肺癌,哪张是结直肠癌。
也就是说,利用训练集数据训练模型,使得模型能够对测试集的对象进行分类,但是训练集类别和测试集类别之间没有交集;期间需要借助类别的描述,来建立训练集和测试集之间的联系,从而使得模型有效。
七:Zero-shot学习
参见上面一段。