第4章:人工智能数据准备(Data Preparation for Artificial Intelligence)
数据去标识化(接续上节)
本章开篇承接前一节对 DICOM 去标识化的讨论,介绍把 DICOM 文件转换为其它文件格式的做法。一种常见的格式转换目标是神经影像信息技术倡议(Neuroimaging Informatics Technology Initiative, NIFTI)格式——这种格式保留了像素 / 体素信息与患者位置,但不再携带任何受保护健康信息(PHI)。作者提醒,移除 DICOM 头信息对保护患者隐私和防止数据泄露确实有好处,但数据的价值也会因此下降:原始 DICOM 元数据里本来就包含一些原本可以作为机器学习 / 深度学习模型输入的信息。
PHI 并不只藏在 DICOM 元数据里,也可能以其它方式嵌入图像本身。一个经常被忽略的形式就是含可识别身体部位的照片——例如面部照片——以及视网膜扫描、指纹等生物特征信息。在放射学中,需要特别警惕头颈部 CT 的三维重建影像中可能保留的面部特征,这些信息足以让患者被重新识别。因此在公开数据时,对于这些特殊解剖部位要格外小心;不过在心血管胸腹部影像中,由于躯干被重新识别的难度远高于面部,问题相对没那么严重。
数据传输与存储(Data Transfer and Storage)
数据在完成去标识化之后,下一步是传输与存储。传输可以走本地存储,也可以走外部存储。对于单中心研究,由于访问者仅限于本院研究者,大多使用本地存储;数据通常放在院内(on-premise)服务器上,优势是——只要正确加密——数据相对安全、可用性高,但与外部机构或研究者的共享能力有限。对于多中心研究和商用机器学习 / 深度学习模型开发,数据则通常要转移到外部存储,让多个研究者和模型开发者可以同时访问。云端存储(cloud-based storage)正变得越来越普遍,也越来越安全:它方便不同地点的研究者共享数据,同时提供安全的备份机会。其主要缺点包括:需要具备云环境配置方面的专业能力、相对较高的成本,以及对快速网络连接的依赖。
质量控制(Quality Control)
医学数据普遍具有非结构化的特点,医学影像数据也不例外。在数据传输和存储到位之后,下一步是评估数据质量。理解数据本身以及数据质量对后续机器学习 / 深度学习模型性能可能产生的影响,是这一步骤的核心。例如,目标是在冠脉 CT 血管成像(coronary CT angiography, CCTA)图像上自动分割左心室,那么必须知道图像是使用心电门控(ECG synchronization)采集的,并且是回顾性门控(retrospectively gated)还是前瞻性触发(prospectively triggered)。此外,还应该随机抽取若干图像评估图像质量——既包括客观质量(如噪声、对比噪声比),也包括主观质量(如心脏运动伪影的存在)。质量控制通常以随机方式、按例(case-by-case)进行,过程既昂贵又难以规模化;要做到规模化,就需要更高级的(机器学习)算法来辅助。
数据质量的另一个维度是数据多样性。为了提高所开发机器学习 / 深度学习模型的泛化能力,数据集必须在地域、人群(种族、族裔、性别)和扫描仪 / 设备类型等方面都足够多样。数据多样性能够减少模型被引入偏倚的风险。
数据结构化(Structure Data)
医学影像与临床数据虽然量很大,但在原生来源中绝大多数是异构、非结构化且无标签的。非结构化数据给 AI 开发带来挑战,因为现有的监督式与半监督式机器学习方法都依赖结构化数据 [21]。因此,处理非结构化数据是机器学习 / 深度学习模型开发中数据准备阶段的基础环节。
在医疗领域,非结构化数据主要存在于临床文本里:放射学报告、病理学报告、电子健康记录等。据估计,医疗记录系统里超过 40% 是文本 [33]。临床文本中混杂着非词法符号、缩写、领域专有首字母缩略词和行话,这些都让标准自动化工具难以直接处理。临床叙事文本——尤其是临床笔记——是在时间压力下为内部使用而写的,包含大量噪声:拼写错误、句子不完整等。此外,医生的笔记反映了他们的临床推理——会猜测可能的诊断,或保留不能排除的发现(例如"可能的心肌梗死"、"怀疑肿瘤")。否定表达在症状、体征与诊断中也极常见(如"无咳嗽史"、"实变缺失")。从临床文本中提取被否定的术语时需要特别小心,因为处理不当会意外地产生假阳性标签。
放射学报告比临床笔记写作更仔细——它们面向外部读者。报告按相对标准的方式组织:开头是检查模态和方案的小标题,中间是对解剖结构的半结构化分节描述,结尾是印象或结论。这种半结构化格式在数据提取时很有帮助。
自然语言处理(natural language processing, NLP)可以用来自动化临床文本分类,从叙事文本中抽取结构化信息。NLP 是一种基于计算机的方法,它结合语言学和统计方法等一系列理论与技术,把自由文本或语音转换为层次化、条目化的结构化格式 [34],从而让文本更易于查询和处理。在此之上,可以应用基于规则(rule-based)的分类来抽取诸如疾病存在与否或疾病分期等信息。最简单的做法是应用一条逻辑规则——当报告中同时出现若干临床发现时,规则返回"真"。例如:若 NLP 系统在心脏 CT 血管成像报告中识别到显著狭窄,就可能把该检查分类为"心肌梗死阳性"。这些临床规则是基于专家知识手动编写的,因此既费人力又难以扩展,因为它们必须涵盖大量概念以及概念之间的组合 [35, 36]。
基于规则的算法通常依赖关键词。词嵌入(word embeddings)可以显著放大关键词的效用——它把语义上相似的术语投影到向量空间中相近的点 [37]。例如,把一个初始术语扩展为多个扩展术语,再用任一扩展术语去做分类。SNOMED CT [38] 和统一医学语言系统(Unified Medical Language System, UMLS)[39] 等临床本体系统集成了关键术语、分类与编码标准,可用于查询和数据分类。因此,借助词嵌入的深度表示能够让机器学习方法从弱标签数据中学到额外的模式,并且在从临床叙事中抽取结构化数据的任务上已被证明优于基于规则的 NLP 系统 [36]。
更高级的技术如 GloVe [40] 和 word2vec [41] 依赖无监督机器学习模型来聚类语义词项。这些模型学习词与词之间的关联,并从训练文本中构造语义字典。一种把语义字典映射与 word2vec 相结合的混合方法在胸部 CT 报告的分类上取得了很高的精度——其目标是从自由文本中抽取肺栓塞信息,把报告分类为"肺栓塞存在 / 缺失"、"急性 / 慢性肺栓塞"和"中央型 / 亚段型肺栓塞",每一项的精度都超过 97% [42]。
数据标注(Label Data)
目前大多数针对心血管影像开发的机器学习 / 深度学习模型都基于监督学习。在监督学习下,模型的训练、验证和测试都需要与医学影像数据相关联的真值(ground truth)作为依据。真正的真值信息基于某一具体疾病的参考标准(或金标准)。例如:对于一个尝试在 CCTA 上自动判断冠脉管腔狭窄相关性的算法,真值可以是有创血管造影测得的血流储备分数(fractional flow reserve)。真值也可以基于医学专家(如放射科医生或心内科医生)的标注。对于某些诊断——例如通过 CT 血管成像诊断主动脉夹层——医学影像本身就构成金标准。然而,许多疾病需要的信息比影像学检查所能提供的更多。如果真正的金标准不可得,往往就退而使用其它形式的标签。最常见的方式是由医学专家对图像进行标注或分割。这种标注可以是前瞻性的(保留临床信息),也可以是回顾性的(仅保留有限信息);参见 Fig. 4.2。为每一项机器学习 / 深度学习算法选择合适的标签,需要在"区分适当的判别类别"(如正常 vs 异常)与"临床粒度的相关性"(如某种特定类型的心肌病)之间做出平衡。仅使用医学图像(不附带临床信息或标签)或许足够用于开发提升图像质量的机器学习 / 深度学习模型,但开发诊断模型通常需要专家的共识诊断、基于图像的器官或病灶分割,或基于影像特征或临床信息的标签 [1]。为大量患者收集临床信息的过程被称为电子表型(electronic phenotyping)[6, 10]。
一种(半)自动提取临床相关标签的方法是在放射学报告的文本上使用自然语言处理。最常用的 NLP 方法之一是主题建模(topic modeling):通过对大量文本(例如冠脉 CT 血管成像的放射学报告)生成摘要,为数据集提供洞察;冠脉 CTA 的报告可能与"CTA"、"心脏"、"冠脉"、"狭窄"等关键词相关联。循环神经网络(recurrent neural network, RNN)是另一类常用于放射学报告数据抽取的架构。这些基于神经网络的模型在相对较小的报告集上训练,性能与传统 NLP 方法相当 [43, 44]。RNN 的一个强项是:否定词(如"无")不必与目标词在句子中紧邻。例如"在这项检查中,没有证据表明存在显著冠脉狭窄"——否定词"没有"与目标词"狭窄"距离较远。传统 NLP 方法在这种情况下抽取相关信息会较为困难,而 RNN 的表现明显更好。作者提醒,NLP 技术本身以及原始放射学报告中的错误率,都会降低这些(半)自动提取出来的标签的质量。放射学报告通常是非结构化的,编写目的也不是为开发机器学习 / 深度学习模型服务,因此这些标签的质量往往偏低(即带噪声)。这是一个重要问题:放射学报告的经验证错误率约为 2–20%。一个可能的解决方案是引入结构化报告(structured reporting)——这在医学影像界正受到越来越多的关注。在心血管影像中,结构化报告的实例之一就是冠脉疾病报告和数据系统(Coronary Artery Disease Reporting and Data System, CAD-RADS)[45, 46]。
结论(Conclusion)
数据可用性是机器学习(ML)和深度学习(DL)模型开发与临床落地过程中最重要的瓶颈之一。本章描述了为 ML / DL 开发准备医学影像数据的过程,由八个步骤组成:伦理审批、数据访问、数据查询、数据去标识化、数据传输、质量控制、数据结构化和数据标注。
本章个人批注
本章把"数据准备"拆成八步(伦理审批 → 访问 → 查询 → 去标识化 → 传输 → 质量控制 → 结构化 → 标注),整条流水线的逻辑很清晰:先解决"能不能合法拿到",再解决"拿到的是不是干净、对、可学",最后解决"数据 + 标签能不能被监督学习直接用"。这一章基本上是为第 3 章末尾的流程图填肉:第 3 章讲"开发流程长什么样",第 4 章讲"流程里数据这一步到底要做什么"。
读的时候有几个点让我印象比较深。一是去标识化那一段——作者把"移除 DICOM 头"的双刃剑说得很直白:去标识化能保护隐私,但同时也丢掉了一部分本可以作为模型输入的元数据信息。这意味着"去标识化"不是一个单纯的法律 / 合规问题,而是一个会反向影响模型可用数据量的工程权衡,实践中要决定"哪些字段可以保留为机器可用的非 PHI 字段"。二是心血管胸腹部影像在 PHI 重新识别上风险相对较低这一句——它隐含了一个意思:跨学科共享数据时,第 4 章这套"通用去标识化流程"在不同身体部位上的强度可以差别很大,不能一把刀切。三是数据结构化那一段对否定表达("无咳嗽史"、"实变缺失")的强调——这其实是 NLP 在临床文本上最经典、最容易踩坑的失败模式,传统规则方法把"无 + 狭窄"识别成"有狭窄"几乎是教科书案例;RNN 在长距离否定上更强,这恰好是第 2 / 3 章"循环网络擅长序列依赖"的实际应用例证。四是标签质量那部分给出的 2–20% 报告错误率——这个数字非常关键,它提醒我们监督学习的"上限"其实被报告错误率封顶了,再怎么优化模型也不能跨越这个天花板;这也直接呼应了第 3 章强调的"电子表型"和"多专家共识"的做法。
我自己做研究时,第 4 章里两条具体建议值得记一下:第一,存储图像来源(provenance)——协议、扫描仪、参数、有无缺失切片或伪影——以便模型在查询阶段就能剔除不合适的样本;第二,做质量控制时要把客观质量(噪声、对比噪声比)和主观质量(运动伪影)分开评估,前者能量化、后者需要人工,两者结合才能真正判断一个数据集"能不能用"。这两点看起来朴素,但在多中心、多扫描仪的胸腹部心血管数据里,是模型能否跨机构泛化的实际决定因素。
与上下章的衔接(一段话)
本章紧接第 3 章末尾对"开发流程"的整体勾勒,把焦点从"流程图"下沉到"数据这一步具体怎么做"。第 3 章最后两节"Data Collection"和"Data Annotation or Labeling"提出了许多尚待展开的问题——数据如何去标识化、如何传输和存储、如何评估质量、如何把非结构化文本变成结构化数据、如何选标签、如何处理错误率——本章一一对应地把这些问题展开成可操作的步骤:去标识化(DICOM → NIFTI,PHI 风险)、传输与存储(本地 vs 云端,单中心 vs 多中心)、质量控制(客观 / 主观质量、数据多样性)、结构化(NLP、规则方法、词嵌入、RNN)、标注(金标准 vs 专家标注、电子表型、结构化报告)。本章末尾又把"AI 模型开发的最大瓶颈是数据可用性"明确点出,从而把读者引向下一章:第 5 章将讨论数据存储、云计算与 AI 流水线在 IT 基础设施层面的实现问题——重点从"一份数据应该长什么样"转移到"如何在大规模、跨机构层面把数据与算力组织起来",包括影像生物样本库(imaging biobanking)、云端五大基本特征与服务模型、联邦学习等。可以这样理解:第 3 章讲流程、第 4 章讲数据本身、第 5 章讲承载这些数据的 IT 基础设施与流水线实现——三章构成"原理 → 数据 → 基础设施"的三级递进。