本论文在JC CLUB中分享,点击查看论文PPT 👆

⭐论文信息

文献类型:CCFA
发表刊物:ICCV
发表时间:2023
发表单位:上海交通大学、上海AI lab

⭐Abstract

第一句话:一句话概括本文贡献:本文旨在利用放射科日常实践中产生的成对图像—文本报告,引入领域特定知识,以增强医学视觉-语言预训练(VLP)模型的能力。

第二句话:创新一:第一,与直接处理原始报告的现有工作不同,我们设计了一种新颖的三元组抽取模块,用于提取与医学相关的信息,从而避免自然语言语法所带来的不必要复杂性,并强化监督信号

第三句话:创新二:第二,我们提出了一种结合知识库实体翻译的三元组编码模块,通过查询医学知识库充分利用丰富的领域知识,并在语言嵌入空间中隐式建模各医学实体之间的关系。

第四句话:创新三:第三,我们采用基于 Transformer 的多模态融合模型,在图像补丁(patch)层面实现实体描述与视觉信号的空间对齐,从而赋予模型医学诊断的能力。

第五句话:第四,我们在多个公开数据集上对所提出的架构进行了系统而全面的实验验证。

**第六句话:在零样本和微调两种设置下,与现有方法相比,我们的模型在疾病分类和疾病定位等任务上均展现出优异的性能。

⭐Introduction

段落一:【背景写作】:计算机辅助诊断进入到多模态大模型时代

  • 随着深度学习的快速发展,大量研究被提出以推动医学领域的计算机辅助诊断

  • 【小模型的缺点】:尽管取得了巨大进展,这类模型通常被训练用于识别或分割预先定义的有限解剖结构或疾病类别;一旦出现新的感兴趣疾病,就必须进行昂贵的数据标注与模型重新训练,从根本上限制了其实际应用价值

  • 【引入多模态和放射学报告】:作为替代方案,近期研究开始考虑使用来源于临床日常实践的大规模多模态语料库进行模型训练,例如最常见的就是包含 X 线影像及其对应放射学报告的数据集。

段落二:【挖坑写作】:医学视觉语言模型的挑战

  • 【本文任务】:本文对医学领域中的视觉语言表征学习进行了初步探索,目标是实现更优的零样本疾病诊断(分类)和疾病/视觉定位。

  • 【阐述挑战】:毫无疑问,这类任务在计算机视觉领域也已被广泛研究,并在近几年基础模型的发展上取得了显著进展,例如 CLIP 、ALBEF 、BLIP 等。然而,要在医学场景中实现同样的目标,仍需解决一系列不同的挑战,这也需要整个社区的共同努力

  • 【坑一】数据可得性问题——在通用计算机视觉任务中,训练基础模型通常需要上百万对图文样本,而在医学领域,往往只能获得几十万对左右的图像–文本配对数据 [31],有限的数据规模使得语言模型难以充分理解自由文本形式的报告

  • 【坑二】细粒度领域知识:计算机辅助诊断中所处理的问题天然属于细粒度范畴,需要区分精细的医学概念以理解疾病本身,因此领域知识至关重要

  • 【坑三】可解释性:鲁棒性同样关键,因此模型最好具备可解释性,即诊断结果应伴随相应的视觉定位,以帮助放射科医生理解系统的决策过程,并在医生与智能系统之间建立信任。

段落三:【填坑写作】:介绍本文方法

  • 【核心坑】现有的医学视觉-语言预训练(VLP)工作 通常采用一种直接的训练范式,即将原始报告与图像扫描匹配,忽略了医学领域的先验知识
  • 【填坑一】我们提出了一个三元组提取模块,用于从原始报告中提取有用的医学实体,并将每个报告简化为一组三元组,表示为 {实体, 位置, 存在性}。将报告分解为三元组可以有效表示报告内容,同时由于报告结构的先验知识,信息损失最小

  • 【填坑二】其次,我们利用一个定义明确的医学词汇知识库,将医学实体转化为细粒度的描述,该知识库通常使用常见词汇解释疾病。通过对这些描述计算文本嵌入,可以隐式地在医学实体之间建立关系;

  • 【填坑三】第三,我们将实体视为查询集合,并采用基于 Transformer 的架构,将图像补丁与实体描述对齐,从而在实体层面提供明确的监督信号。因此,我们可以通过空间热图的形式同时推断某些疾病的可能性,即为可解释性提供粗略的定位

段落四:实验性能涨点

  • 我们在一个广泛使用的医学图像-报告数据集 MIMIC-CXR [31] 上对模型进行了预训练,并在多个公共基准数据集上对疾病诊断任务进行了严格评估

  • 在不同疾病的零样本分类和定位任务中,我们的模型在不同图像分布下表现出最先进的性能,并且通过进一步微调,模型的性能仍显著超越了之前的模型。

⭐methodology

问题描述

数据: 假设我们有一个包含 $N$ 个样本的训练集:

其中 $ X_i $ 是 X射线图像,$ T_i $ 是相应的医学报告。

任务: 该模型的输出包括:

  • $ \hat{s}_i $: 这是预测的疾病发生概率,反映了患者是否可能患有输入中描述的疾病。
  • $ \hat{m}_i $: 这是一个空间热图,指示了图像中可能与疾病相关的区域。
  • $ X_i \in \mathbb{R}^{H \times W \times 3} $: 表示图像样本,其中 $ H $ 和 $ W $ 分别为图像的高度和宽度。
  • $ \hat{s}_i \in [0, 1] $: 表示预测的疾病发生概率。
  • $ \hat{m}_i \in \mathbb{R}^{H \times W \times 1} $: 表示预测的空间热图,其中每个像素的激活值指示可能与疾病相关的区域。

报告预处理

【填坑一】:我们提出了一个三元组提取模块,用于从原始报告中提取有用的医学实体,并将每个报告简化为一组三元组,表示为 {实体, 位置, 存在性}。将报告分解为三元组可以有效表示报告内容,同时由于报告结构的先验知识,信息损失最小。

医学关键字通过命名实体识别(NER)方法被提取和分类为“实体”或“位置”,NER模块还会为每个实体提供一个“存在性”标签,用来判断该实体是否存在于报告中。基于此,我们可以使用一组三元组形式表示,例如 {entity, position, exist},以重新构造报告中的句子。因此,给定一个包含多个句子的报告 $T = \{s_1, s_2, \dots, s_M\}$,提取模块会独立处理每个句子,并从报告中构建一组三元组:

讨论:与自然语言处理中的通用文本相比,医学报告内容更加专业,并且通常在特定的词汇表内(大多数列在UMLS [5]中)。专门设计的NER方法在报告中表现出色。因此,在医学视觉-语言预训练中采用三元组提取操作,能够避免因理解语法带来的不必要复杂性,同时保证报告中的关键点信息。

知识增强的三元组编码

【填坑二】其次,我们利用一个定义明确的医学词汇知识库,将医学实体转化为细粒度的描述,该知识库通常使用常见词汇解释疾病。通过对这些描述计算文本嵌入,可以隐式地在医学实体之间建立关系;

Exist 编码: 我们使用 $l \in \{0, 1, -1\}$, $l \in \{0, 1, -1\}$ 来表示其中的“存在性”,其中 $1$ 表示存在(True),$0$ 表示不存在(False),$-1$ 表示不确定。

Entity 编码: 我们通过查询一些容易访问的医学知识库来将其转换为详细描述,例如,Description([ “Pneumonia” ]) = “它是一种主要影响肺部的疾病……” 表现为不透明和胸腔积液……

尽管这种转换方法简单,但将实体转化为描述对于更可置信的零样本诊断至关重要,因为它让一步将专业医学实体分解为不同疾病共享的基本属性性,促进模型对视觉数据进行更深入的理解

Position 编码: 对于“位置”词汇,我们使用一个提示语句:“它位于 {位置}”来形成句子。最后,我们使用预训练的文本编码器 ClinicalBERT 来计算“实体”和“位置”的嵌入向量,并使用线性多层感知机(MLP)将嵌入映射到所需的类别:

讨论:提取的实体是医学术语,只有具备医学背景的观众才能理解,而通过详细的描述丰富这些实体有助于模型深入理解疾病的视觉证据。这样的模式可以跨疾病进行泛化,因为许多属性描述通常是共享的,从而使得模型能够建立已见类之间的隐式关系,并理解未见类的描述。

融合模块

【填坑三】第三,我们将实体视为查询集合,并采用基于 Transformer 的架构,将图像补丁与实体描述对齐,从而在实体层面提供明确的监督信号。因此,我们可以通过空间热图的形式同时推断某些疾病的可能性,即为可解释性提供粗略的定位。

通过报告中的三元组,我们可以在实体级别对模型进行监督,而不是在整个报告级别进行监督。三元组中的“位置”和“存在性”部分可以自然地视为更细粒度的监督标签。

具体来说,我们采用基于 Transformer 的架构,使用实体的嵌入作为查询,代表地关注图像的嵌入,并输出实体的存在性和位置预测。

(就是把实体描述作为 query,图像嵌入作为 key 和 value,做一个交叉注重力机制,输出就是一个融合特征和一个注意力得分,再加个预测头,用融合特征分别预测实体的存在 $s$,实体的位置 $p$)

讨论:采用 Transformer 解码器使得能够在图像的补丁级别计算实体与图像之间的对应关系。因此,图像特征 V 更适合下游的分割任务,并且每一层中的交叉注意力图的平均值可以直接用于零样本定位,为诊断提供可解释性

推理

在推理时,给定一张测试图像,我们可以直接推断出某些实体/疾病的存在性,并定位它们的视觉证据。

具体来说,对于在实体查询集 $Q$ 中出现的实体,我们直接采用 $Q$ 中对应的元素;而对于那些未见过的实体,我们用用户提供的简短描述替换该实体,并将其作为一个额外的查询添加到实体查询集 $Q$ 中,类似于零样本推理。存在性输出 $\hat{s}$ 可以直接用于分类,目标实体与视觉特征之间的平均交叉注意力 $m$ 用于定位。

⭐Experiments

实验数据

数据集 描述 任务 数据集划分(训练/验证/测试)
MIMIC-CXR v2 包含227k对图像-报告数据,来自65,379名患者,共377,110张图像。 预训练 N/A
ChestX-ray14 包含112,120张前视X射线图像,来自30,805名患者,标注14种常见疾病。 分类 0.8/0.1/0.1
RSNA Pneumonia 包含260k张前视X光图像,带有肺炎不透明斑块。 分类 0.6/0.2/0.2
SIIM-ACR Pneumothorax 包含12k张前视X光图像,带有气胸症状。 分类 0.6/0.2/0.2
COVIDx CXR-2 包含29,986张图像,来自16,648名患者,用于COVID-19诊断。 分类 0.7/0.2/0.1
COVID Rural 包含200+张胸部X光图像,带有分割肺部症状,用于COVID-19诊断。 分类 0.6/0.2/0.2
Edema Severity 包含6,524个例子,标注腹水肿严重度(0到3)。 分类 0.6/0.2/0.2

实施细节

预训练阶段,三元组提取模块和用于三元组编码的文本编码器都是固定的,而视觉编码器和融合模块则在图像-文本对上进行端到端训练。

微调阶段,我们采用初始化为图像编码器的ResNet50 [24]进行分类,并使用我们的预训练图像编码器初始化ResUNet [16]的编码器进行分割。

我们与现有的多种最先进的医学图像-文本预训练方法进行比较,具体包括ConVIRT [68]、GLoRIA [25]、BioViL [6]和CheXzero [56]。由于ConVIRT和GLoRIA是在内部数据集上预训练的,为了公平比较,我们在MIMIC-CXR数据集上重新训练了它们的模型。对于BioViL,我们使用作者公开发布的模型。

零-shot设置下,我们使用BioViL [6]中提到的提示,并与最近的方法(CheXzero [56])进行比较,后者在零-shot诊断能力上已被证明优于放射科医生。

实验一 零样本分类能力

已见疾病:们的模型将RSNA肺炎数据集的AUC得分从0.83提升至0.87,将SIIMACR气胸数据集的AUC得分从0.71提升至0.89,如表1所示。这表明我们的方法能更好地处理医学中的多中心和多疾病数据分布

未见疾病:COVID-19是一种新疾病,首次出现于2019年,2015年收集的MIMIC-CXR报告中没有涉及COVID-19的任何数据实体,因此它要求系统具备诊断真正未见疾病的能力。如表2所示,仅依赖疾病名称的现有方法在做出正确诊断时遇到困难。而我们提出的方法,在引入医学知识后,即使用实体描述,可以理解训练集中未见过的复杂医学实体描述,并显著提高性能:AUC从0.66提升至0.74,ACC从0.59提升至0.70,证明了实体翻译对于未见疾病的诊断至关重要

这里用COVID-19作为未见疾病的例子十分有趣,它的方法就算是没有见过COVID-19这个词,但是通过查询医学知识库,获得了COVID-19的描述,然后用这个描述去做诊断,结果效果还不错,强调知识增强的重要性。

实验二 零样本定位能力

除了简单的诊断外,可解释性在医疗保健中同样至关重要,它可以提高机器学习系统的可靠性和可信度。在这里,我们考虑通过在预测中定位异常来提供可解释性,并与现有方法进行比较:

已见疾病:我们将指示游戏得分从0.83提升至0.87,检测召回率从0.85提升至0.87,检测精度从0.50提升至0.64,IOU从0.30提升至0.32,Dice系数从0.44提升至0.46。而在SIIM-ACR数据集(b表)上,气胸区域往往较薄且狭窄,定位其位置通常比不透明性定位更具挑战性,因此我们只考虑指示游戏得分、召回率和精度。类似地,我们的方法在这些指标上表现明显优于之前的方法。

这里删指标有点意思,不好的指标我会删hh

未见疾病:我们还对未见疾病——即COVID-19进行了零-shot基础定位实验,如表4所示。我们的模型在所有指标上均表现出一致的提升,例如,指示游戏得分从0.40提升至0.58。

指示游戏:具体来说就是计算预测的热图与真实的分割掩码之间的重叠程度,衡量模型在定位异常区域方面的准确性。

实验三 微调分类能力

我们在四个不同的数据集上进行了实验,使用1%、10%和100%的数据进行微调,这与现有的工作一致。如表所示,我们的模型在所有数据集上展示了显著的AUC得分提升,反映出我们的预训练表示相比现有模型具有更高的质量。

实验四 微调分割能力

我们对三种不同疾病进行了分割的微调实验。我们选择了1%、10%和100%的数据进行微调。对于这三种具有不同图像分布的疾病,我们的方法在所有指标上都显著超越了现有的最先进方法,尤其是在低数据量的情况下

实验五 微调多分类能力(分级任务)

此外,疾病严重程度的分级也发挥着重要作用。在这里,我们采用我们的预训练特征,并将其用于多分类任务,0到3代表不同的严重程度级别。如表7所示,对于每个级别,AUC、F1和ACC得分是作为一个类别与其他类别进行计算的,例如,0与{1, 2, 3}比较。最终计算四个级别的宏观平均得分。在大多数严重程度级别上,我们的方法能够取得最佳结果。

⭐Conclusion

本文提出一种医学知识增强型视觉 - 语言预训练(VLP)模型,核心工作包括三部分:
1)通过三元组提取模块挖掘医疗相关三元组作为增强监督信号,简化原始报告并减少信息损失;
2)将三元组实体转化为详细医学描述并经文本编码器嵌入,助力网络理解专家级医学知识;
3)设计基于 Transformer 的结构实现局部区域对齐

实验验证表明,该模型在不同数据集和设置下表现优异,具备强零样本分类与定位能力(可应对未见疾病),微调后仍显著优于现有最先进方法,凸显其技术优越性。

但是这个论文为什么不提供可视化实验呢,既然是局部对齐,感觉可视化一下注意力图会更好理解一些。