Symile-MIMIC 三模态临床配对数据集

11,622 次住院的胸片 × 心电图 × 血检对齐子集,附带零样本检索评测协议

来源 MIMIC-IV v2.2(住院与化验)+ MIMIC-CXR-JPG v2.0.0(胸片)+ MIMIC-IV-ECG v1.0(12 导联心电)三库按 hadm_id 与 subject_id 对齐后筛选,仅保留三模态齐全且满足时间窗的住院发布时间: 2026-10-18最后更新: 2026-10-20 阅读 13
Symile-MIMIC 三模态临床配对数据集

信息速览

数据集名称Symile-MIMIC 三模态临床配对数据集
数据类型真实世界数据,影像数据,信号数据,结构化数据
规模9,573 名患者 / 11,622 次住院
接入方式MIMIC-IV v2.2(住院与化验)+ MIMIC-CXR-JPG v2.0.0(胸片)+ MIMIC-IV-ECG v1.0(12 导联心电)三库按 hadm_id 与 subject_id 对齐后筛选,仅保留三模态齐全且满足时间窗的住院
AI 就绪度

Symile-MIMIC 是 PhysioNet 于 2025 年 1 月发布的多模态临床数据集,由四位方法论文作者在 MIMIC 体系之上构造,数据分别来自重症监护病历、胸片与心电图三个母库。它从 MIMIC-IV、MIMIC-CXR-JPG 与 MIMIC-IV-ECG 三个母库中筛出 11,622 次住院、9,573 名患者,每次住院只保留一张胸片、一段 12 导联心电图和一组血液化验。它的直接用途是评测作者同期提出的对比学习目标 Symile,版本号为 1.0.0,DOI 为 10.13026/3vvj-s428,面向凭证化用户开放。

它要补的缺口是「模态数超过两个」时的表示学习。以 CLIP 为代表的方法一次只处理一对模态,三个模态就得拆成三对分别对比,模态之间的联合信息在拆对过程中被丢掉。Symile-MIMIC 把胸片、心电图、化验放在同一次住院的同一时间轴上,让三路信号可以一起参与对比,并且保留了「哪些模态缺失」这一现实条件,使任何模态组合都能被评测。

上手前先确认三件事:自己是否具备 PhysioNet 凭证化访问资格;要做的任务是不是跨模态检索或多模态表征,而不是诊断分类;以及能否接受样本只覆盖三模态齐全的住院。第一件事决定能不能拿到数据,第二、三件决定拿到之后能做什么,本页的分节按这个顺序展开。

§1 它是什么

1.1 一句话定义与名称来源

Symile-MIMIC 是一个多模态配对小集,而不是一份病历。它的正式全名是 Symile-MIMIC: a multimodal clinical dataset of chest X-rays, electrocardiograms, and blood labs from MIMIC-IV,直译即「面向 Symile 的、由胸片、心电图与血液化验构成的 MIMIC-IV 多模态临床数据集」。

名称里的三个成分各自承载一层信息:

  • Symile 是方法名,指作者在 NeurIPS 2024 论文《Contrasting with Symile: Simple Model-Agnostic Representation Learning for Unlimited Modalities》中提出的对比学习目标函数。它不是数据集缩写,也不是影像模态、机构或设备的缩写。把 Symile 读成某个词的缩写,是使用这份数据时最常见的第一类误读。
  • MIMIC 是母库名,指 MIT 计算生理学实验室维护的重症监护医疗数据库体系,本数据集的数据全部来自其中三个成员。
  • 连字符表示「以该方法命名、为其评测而建」,与论文里另一个数据集 Symile-M3(3,300 万条图像、文本、音频样本的多语言集合)采用同一命名法。

作者为 Adriel Saporta、Aahlad Manas Puli、Mark Goldstein 与 Rajesh Ranganath 四人,论文与数据集作者完全一致,代码仓库位于 rajesh-lab/symile。官方页未披露作者机构,因此本页不列机构栏,只按发布平台 PhysioNet 交代归属。

1.2 三个母库分别贡献什么

Symile-MIMIC 不采集任何新数据,它的每一条记录都能在母库里找到原件。三个母库的分工如下。

模态 母库 具体模块 贡献内容
住院与化验 MIMIC-IV v2.2 hosp 模块的 admissions 表与 labevents 表 住院标识、入出院时间、患者标识、血检结果
胸片 MIMIC-CXR-JPG v2.0.0 图像与元数据 入院后 24-72 小时的 PA/AP 位胸片
心电图 MIMIC-IV-ECG v1.0 诊断级心电匹配子集 入院 24 小时内的 12 导联心电记录

三个母库本来就有共同的 subject_id 与 hadm_id,对齐在标识层面是现成的;真正的工作量在时间窗筛选上——同一次住院往往有多张胸片、多段心电图、上百条化验,必须按时间规则各挑一条。官方页对此的原话是:每次住院选取「最早可得的胸片、心电图与化验结果」。这里的「最早」要结合时间窗理解:心电图与化验取入院 24 小时内的记录,胸片取入院后 24-72 小时内最早的那张。

1.3 它相对母库 MIMIC-IV 的增量

MIMIC-IV 是面向全院的病历数据库,它的价值在于「全」——几乎所有检查、几乎所有住院都在里面;Symile-MIMIC 的价值恰恰相反,在于「窄而齐」:只保留三模态同时具备的住院,并且把这三模态压成可直接喂给网络的等长张量。

增量可以拆成四项。

  1. 三模态时间对齐。母库里胸片、心电图、化验分属不同模块,时间戳粒度不同,要自己写 SQL 关联并按窗筛选。本数据集把这一步做完了,且把胸片刻意推到入院后 24-72 小时,人为制造了「化验在心电与影像之前」的临床时序。
  2. 固定形状的张量。胸片统一为 3×320×320,心电图统一为 1×5000×12,化验统一为 50 维百分位加 50 维缺失指示。母库里的胸片分辨率各异、心电采样长度不一、化验是按 itemid 稀疏存放的事件表,不做这套规整就无法直接拼 batch。
  3. 检索评测协议。val_retrieval 与 test 按「1 正 9 负」构造候选组,每个查询固定 10 条候选,使不同模型的检索结果可以直接比较。母库没有任何现成的检索协议。
  4. 配套权重与重建代码。发布包内含用 Symile 目标训练的最佳检查点,以及从 MIMIC-IV 与 MIMIC-CXR 重建本数据集的代码,使结果可复现、流程可修改。

反过来,母库有而本数据集没有的东西同样明确:绝大部分住院、全部诊断编码、护理记录、用药、出入量、自由文本报告与随访结局。用量化的说法,MIMIC-IV 的住院记录在数十万次量级,本数据集取其中一万一千余次,占比在个位数百分比。任何「用 Symile-MIMIC 研究 ICU 人群流行病学」的想法都会因为这道筛选而失效。

1.4 版本与时间线

时间 事件
2024 年 11 月 1 日 方法论文 arXiv:2411.01053 v1 提交
2024 年 12 月 论文于 NeurIPS 2024 发表
2025 年 1 月 28 日 数据集 v1.0.0 于 PhysioNet 发布,含数据、代码与检查点

v1.0.0 是当前唯一版本,发布说明只有一句「首次上传数据集、代码与模型检查点」。PhysioNet 页同时给出两个 DOI:版本级 DOI 为 10.13026/3vvj-s428,最新版 DOI 为 10.13026/762h-qf80。引用时应使用版本级 DOI,以便日后出现新版本时仍能指回这一版。

需要提醒的一处时间错位:论文的实验章节只交代了总住院数与按患者的 95%/5% 划分,没有逐 split 给出精确行数;PhysioNet 页给出的三个 split 行数是论文未载的细节。两者可以互相印证大方向,但无法逐行核对,因此不能假设论文数字与 v1.0.0 完全一一对应。

§2 数据构成

2.1 十问十答

Q1:Symile-MIMIC 与 MIMIC-IV 是同一个数据集吗?
不是。MIMIC-IV 是母库,收录数十万次住院的全院结构化记录;Symile-MIMIC 是从中筛出的三模态齐全子集,每次只保留一张胸片、一段心电图和一组血检,并附带检索评测划分。前者是病历数据库,后者是专门用于多模态表示学习评测的配对小集。两者可以互相追溯,但不能互相替代。

Q2:Symile 是数据集的缩写吗?
不是。Symile 是作者在 NeurIPS 2024 论文中提出的对比学习目标函数,可处理任意数量的模态,其理论出发点是对总相关信息(total correlation)的一个下界。数据集以方法名加 MIMIC 后缀命名,表示这是用来评测该方法的临床数据。把 Symile 拆成 S-Y-M-I-L-E 去猜全称,在官方页与论文中都找不到任何依据。

Q3:为什么胸片要取入院后 24 到 72 小时?
为了让影像在时间上晚于化验与心电图,构成一个可检验的预测任务:用入院早期的检查去检索随后拍摄的影像。若胸片与化验同时采集,检索任务会退化为同一次检查内部的配对,临床意义与难度都随之改变。这个时间窗也符合临床实际——入院当天先抽血与做心电图,胸部影像通常排在次日或第三日。

Q4:能直接下载吗?
不能。数据采用凭证化访问,须在 PhysioNet 完成实名认证、通过 CITI 的「Data or Specimens Only Research」培训并签署数据使用协议,经审核后才能下载。整个流程与下载 MIMIC-IV 本身完全一致,没有额外的申请环节。

Q5:血液化验的 100 维向量怎么读?
前 50 维是各化验值按训练集经验分布函数换算的百分位,后 50 维是对应化验是否缺失的二值指示。某化验缺失时,其百分位用该化验在训练集上的平均百分位填充,因此缺失与否只能从后 50 维读出,前 50 维在缺失位置上的数值由填充而来,并不代表患者真实水平。做特征工程时若忽略这一层,模型会把「未测」误当成「测得平均水平」。

Q6:检索任务里的十条候选是怎么来的?
每个查询本身是一条正例,再从同一划分的其余记录中随机抽取 9 条作为负例,凑成 10 条候选。评测时模型须在 10 条候选中选出与查询对应的那条胸片,随机基线为 0.1。由于负例从同分布的住院中随机抽取,候选中可能混入与查询同病种、同体位的病例,任务难度因此高于纯随机的视觉区分。

Q7:训练集、验证集、测试集之间会共享患者吗?
不会。官方页明确写明三个划分之间无患者重叠。划分以患者为单位而非以住院为单位,同一患者的所有住院只会落在一个划分里,避免同一患者的重复影像造成信息泄漏——这在 MIMIC 体系里是必须的,因为反复入院的患者可能留下高度相似的胸片。

Q8:论文报告的检索准确率是多少?
在测试集 10 候选检索上,Symile 目标的平均准确率为 0.435(标准误 0.007),成对 CLIP 基线为 0.387(标准误 0.003),原文称相对提升约 12.5%,随机基线为 0.1。指标为十次自助重采样的平均准确率,原文未使用 Recall@k 的术语。

Q9:能拿它做诊断分类吗?
不能直接做。数据集中没有任何诊断标签、放射报告文本或出院诊断编码,label 列只标示检索候选的正负,不是疾病标签。若要研究疾病,必须回到母库用 hadm_id 关联诊断表自行构建标签,并重新考虑划分是否会造成患者泄漏。

Q10:为什么文件里还有模型权重?
发布包附带了用 Symile 目标在训练集上训练的最佳检查点,目的是让研究者能直接复现论文的检索结果,或在同一权重上尝试新的下游任务。这在 PhysioNet 的临床数据发布里并不常见,多数数据集只发数据不发权重。使用该权重时须同时遵守数据使用协议,不得将其作为医疗器械或临床决策依据。

2.2 规模表

官方数据描述给出的规模如下,三个划分的行数之和与总住院数不完全一致,差异在 2.3 节单独讨论。

项目 住院数 患者数 文件 说明
全数据集 11,622 9,573 symile_mimic_data.csv 三个划分的合并视图
训练集 10,000 8,374 train.csv 用于训练编码器与 Symile 目标
验证集 750 738 val.csv 用于调参与早停
验证检索集 — — val_retrieval.csv 750 查询 × 10 候选 = 7,500 行
测试集 464 461 test.csv 464 查询 × 10 候选 = 4,640 行

患者数一栏三个划分相加恰与总数吻合;住院数一栏相加却比总数少 408。这一处自洽性差异是使用本数据集时最需要留意的地方,详见 2.3 节与 §4.2。

2.3 划分方式与检索集的构造

划分并非随机切行,而是先切患者、再取患者名下的住院。官方页的表述是三个集合之间没有患者重叠,论文的表述是「按患者把 95% 划为训练加验证的开发集,5% 划为测试集」。两种表述一致:95% 的患者进入开发集,开发集再细分为训练与验证;余下 5% 的患者构成测试集。按患者数核对,训练与验证两级之和占全部患者的 95.2%,测试集占 4.8%,与论文的 95/5 相符。

检索集不是独立的样本,而是对既有样本的重排。以验证检索集为例:把验证集里的每一条记录当作一次查询,再从验证集其余记录中抽 9 条负例,每条查询展开成 10 行,于是验证集的记录数被放大十倍。测试集的构造方式与之相同,测试集的记录数同样放大十倍。这意味着:

  • 检索集的行数不能当作独立样本量使用,10 行背后只有 1 个真实病例;
  • 负例是从同一划分内抽取的,因此验证检索集的负例不会泄漏到测试检索集;
  • 由于每个查询的负例是随机抽的,不同复现实验若抽样种子不同,绝对准确率会有小幅波动,这也是论文用十次自助重采样报告标准误的原因之一。

论文对测试集的检索任务使用了「零样本」的说法——编码器只用训练集的配对关系训练,测试时不针对检索任务做任何微调。需要区分的是:val_retrieval 是验证期的同构造集合,用于观察训练过程中的检索表现,而非零样本评测本身;把两个检索集一并称为「零样本检索集」并不准确。

2.4 字段字典与可靠性

官方 CSV 的列在 PhysioNet 页上未逐列列出完整字典,以下依据官方页的数据描述、张量文件名与论文实验章节整理。可靠性一列的判断标准是:能在官方页找到直接文字依据的标为「官方明示」,由张量形状或文件命名推得的标为「依命名推定」,由 MIMIC 母库惯例推得的标为「依母库惯例推定」。

字段 类型 含义 可靠性
subject_id 整数 患者标识,跨住院稳定 依母库惯例推定(划分按患者进行,但官方未在列字典中点名该列)
hadm_id 整数 住院标识,本数据集的主键 官方明示(label_hadm_id 的定义用到此列)
cxr 数组 3×320×320 胸片张量,ImageNet 均值方差归一化 官方明示(张量形状与预处理均给出)
ecg 数组 1×5000×12 心电图张量,归一化到 [-1,1] 官方明示(形状给出,采样率未给)
labs_percentiles 数组 50 化验值百分位 官方明示
labs_missingness 数组 50 化验缺失二值指示 官方明示
label_hadm_id 整数 该行所服务的查询住院号 官方明示
label 0/1 是否为该查询的正例 官方明示

ECG 张量的第二维为 5000、第三维为 12,分别对应采样点与导联数。官方页只给了形状,未给采样率;按 MIMIC-IV-ECG 的惯例为 500 Hz、10 秒记录,5000 点与此吻合。这一条在页脚列为待核,正文按「形状确定、采样率依母库惯例」处理。

2.5 血液化验的 50 项与编码

化验是三个模态里处理最重的一路。母库的 labevents 是按 itemid 存储的事件表,一次住院可能产生上千条记录;本数据集的做法是:先统计全部住院中哪些 itemid 出现频率最高,取前 50 项,再对每次住院在时间窗内取每项化验的代表值。

官方页给出的 50 项 itemid 覆盖六个大类:

类别 代表性项目(itemid) 项数量级
血常规 白细胞 51301、血红蛋白 51222、红细胞压积 51221、血小板 51265 十余项
白细胞分类 中性粒 51256、淋巴 51244、单核 51254、嗜酸 51200、嗜碱 51146 及四项绝对值 近十项
电解质与血气 钠 50983、钾 50971、氯 50902、碳酸氢根 50882、pH 50820、pCO2 50818、pO2 50821 十余项
肾功能与代谢 肌酐 50912、尿素氮 51006、葡萄糖 50931 数项
肝功能 ALT 50861、AST 50878、碱性磷酸酶 50863、总胆红素 50885、白蛋白 50862 数项
凝血与其他 INR 51237、PT 51274、PTT 51275、乳酸 50813、肌酸激酶 50910 数项

编码方式分两步。第一步标准化:对每一项化验,用训练集上该化验的经验累积分布函数,把原始值映射为百分位,取值落在 0 到 1 之间。用训练集而非全集估计分布,是为了防止测试集信息泄漏到特征变换里——这一点在复现时容易被忽略,若改用全集重算百分位,测试集结果会略偏高。第二步补齐:把 100 维向量拆成前后两半,前 50 维放百分位,后 50 维放 0/1 缺失指示;若某化验未测,前 50 维对应位置填入该化验在训练集上的平均百分位,后 50 维对应位置置 1。

这样设计的后果是,前 50 维里「填充值」与「真实值接近平均水平」无法区分,必须结合后 50 维判读。反过来,这种编码对模型友好:缺失不再是空值,而是被显式编码为一维信号,网络可以学习「哪些缺失本身有信息」。

官方另提供一份 labs_means.json,记录每项化验的均值百分位,正是上述填充值的来源。若要复现,应使用该文件而不是自行重算,否则填充值会有细微差异。

2.6 影像与信号预处理

胸片。官方口径是:把短边缩放到 320 像素,再做方形裁剪——训练时随机裁剪,验证与测试时中心裁剪;随后用 ImageNet 的均值与标准差归一化;仅保留后前位(PA)与前前位(AP)两种体位。三点值得注意:

  • 方形裁剪加上短边缩放,意味着长边可能被裁掉一部分,原始视野并非完整保留;
  • 沿用 ImageNet 归一化参数而非胸片专用统计量,是为了配合从零训练以外的常规做法,但也意味着像素分布与自然图像不同,迁移学习时应留意;
  • 侧位片被排除,因此数据集中不存在同一患者同一检查的正侧位配对。

心电图。剔除含缺失值或全零信号的记录,每条信号归一化到 [-1,1]。剔除全零信号是必要的——母库中确实存在设备脱落导致的空记录,若不剔除会成为纯噪声样本。

张量落盘。每个划分分别存为 cxr_<split>.npy、ecg_<split>.npy、labs_percentiles_<split>.npy、labs_missingness_<split>.npy,另附 hadm_id_<split>.npy、label_hadm_id_<split>.npy、label_<split>.npy 三个索引文件。检索集的行序与标签文件一一对应,加载时须保持行序一致,否则正负标签会错位。

2.7 发布包文件清单

文件 内容 用途
symile_mimic_data.csv 全数据集合并表 快速查看全部记录
train.csv / val.csv / test.csv 三个划分 训练与评测
val_retrieval.csv 验证检索集 训练中观察检索表现
labs_means.json 各项化验的均值百分位 缺失值填充与反标准化
data_npy/ 按划分切分的张量 直接加载训练
symile_mimic_model.ckpt 最佳检查点 复现论文结果
code/ 环境文件与重建脚本 从母库重建数据

code/ 目录含 README、conda 环境定义与依赖清单。重建脚本需要本地已有 MIMIC-IV 与 MIMIC-CXR 的凭证化副本,并不能凭空生成数据。

§3 怎么拿到

3.1 访问门槛

Symile-MIMIC 采用 PhysioNet 的凭证化访问(Credentialed Access),这是比开放访问更严的一档。要拿到文件,需依次满足三项条件:

  1. 实名认证。在 PhysioNet 注册账号并提交身份与机构证明,审核通过后账号才具备凭证化访问资格。
  2. 完成培训。通过 CITI 项目的「Data or Specimens Only Research」课程并上传结业证明。这是美国人体受试者保护体系下的标准要求,与数据本身的敏感程度无关。
  3. 签署数据使用协议。逐项阅读并签署 PhysioNet Credentialed Health Data Use Agreement 1.5.0,承诺不再识别、不转交第三方、按约定方式报告使用情况。

三项齐备后,在数据集页面点击同意即可下载。协议签署是账号级的,同一账号对 MIMIC-IV、MIMIC-CXR 等其他凭证化数据集也一并生效,无需重复签署。

3.2 许可条款的实际含义

数据采用 PhysioNet Credentialed Health Data License 1.5.0。它不是知识共享类许可,也不是软件许可,而是一份数据使用协议。对使用者有实际约束力的条款可以归纳为四条:

  • 不得尝试再识别。数据虽已去标识化,但仍禁止用任何外部信息反推个体身份;
  • 不得再分发。不能把文件转给同事、上传到公开网盘或仓库,合作者须各自申请;
  • 不得用于广告、保险或雇主决策。这是协议对用途的明确限制;
  • 衍生成果的表述义务。发表时须按约定引用数据集与母库,并在方法中说明使用的版本。

由于本数据集是 MIMIC 的派生,母库协议中的义务随数据继承——申请本数据集不会豁免对 MIMIC-IV 的任何义务,反之亦然。把数据与外部数据做链接时,也须遵守同样的限制。

3.3 与母库的获取关系

三个母库都在 PhysioNet 上,且都是凭证化访问。理论上,有资格的团队可以完全不走 Symile-MIMIC,自己在母库上重做筛选。两条路径的取舍很直接:

路径 优点 代价
直接用 Symile-MIMIC 对齐、筛选、张量化、划分、检索协议全部现成,复现论文快 受限于作者定的时间窗与 50 项化验,改动空间小
自行从母库构建 时间窗、化验清单、影像体位、划分方式都可自定 需自行处理三库对齐、去重、泄漏控制,工作量以周计

发布包中的重建代码正是为第二条路径准备的:它把作者的筛选逻辑写成了可读代码,想改口径的团队可以在此基础上调整,而不必从零开始。这比只给数据不给代码的做法实用,但也意味着「用这份代码重建出的数据」与官方 v1.0.0 是否逐行一致,取决于母库版本是否相同——若母库已发布新版本,重建结果会有出入。

3.4 首次加载的最小步骤

拿到文件后,最小可执行流程如下(以 Python 为例,仅示意步骤,不依赖具体框架):

// 1. 读取张量与索引(保持行序一致)
cxr   = np.load('data_npy/cxr_train.npy')            # (n, 3, 320, 320) uint8
ecg   = np.load('data_npy/ecg_train.npy')            # (n, 1, 5000, 12) float32
labs_p = np.load('data_npy/labs_percentiles_train.npy')  # (n, 50)
labs_m = np.load('data_npy/labs_missingness_train.npy')  # (n, 50)

// 2. 化验拼成 100 维向量(顺序:先百分位,后缺失指示)
labs = np.concatenate([labs_p, labs_m], axis=1)      # (n, 100)

// 3. 检索集读取(每个查询 10 行,行序即候选序)
ret = np.load('data_npy/label_hadm_id_test.npy')     # (4640,)
lab = np.load('data_npy/label_test.npy')             # (4640,)

// 4. 核对一致性:每个 label_hadm_id 下恰有一条 label==1
print(len(set(ret)), lab.sum())

第四步的核对是必须的:若某次读取后每个查询的正例数不是 1,说明行序或标签文件对不上,后续的准确率会全部失真。这类错误不会报错,只会让指标莫名其妙地接近随机水平。

3.5 合规使用的常见边界

  • 展示图像。论文插图里出现单张胸片,在去标识化前提下一般可接受,但应避免拼出可识别个体的组合(如同时给出影像、罕见病史与精确日期)。
  • 共享代码。代码可以公开,权重与数据不能。仓库里若需示例文件,应使用自行生成的随机张量而非真实样本。
  • 商用。协议禁止将数据用于广告与保险决策,但基于数据训练的方法论研究本身不在此限;具体边界应逐案阅读协议原文,不依赖二手总结。
  • 跨库链接。把本数据集与外部登记数据按时间与地理链接,可能构成再识别风险,属于协议明确禁止的行为。

§4 质量与已知问题

4.1 三个可核验的质量事实

筛选强度。入选条件写作「同时具备三个模态:胸片、心电图与至少一项化验值」。这一条件在母库里的通过率很低:MIMIC-IV 的住院中大量患者从未做过胸部影像,另有部分患者入院期间没有心电图。因此本数据集的住院数停留在万级,而母库在数十万级。这意味着样本经过了强筛选,人群构成与母库整体不同——能同时做胸片、心电与血检的住院,往往是急症入院或术前评估,门诊式短住院相对稀少。

时间窗的双向筛选。心电图与化验必须在入院 24 小时内,胸片必须在入院后 24-72 小时。两个窗口一个靠前一个靠后,等于同时排除了「太晚做检查」与「太早拍片」的住院。后者尤其值得注意:很多急症患者在入院当天就拍胸片以排除肺炎或肺水肿,这批住院因为胸片落在 24 小时内而不符合条件。留下来的样本因此偏向相对稳定、按计划安排影像的病例。

患者级划分。三个划分无患者重叠,这是质量上的正面项。若按行随机切分,同一患者多次入院的相似记录会同时出现在训练集与测试集,检索准确率会被人为抬高。官方选患者级切分,说明有意控制了这类泄漏。

4.2 内部数字的不一致

官方页在同一段描述里给出两组互相抵触的数字,规格表中的「全数据集」一行与「训练集 / 验证集 / 测试集」三行相加相差 408 次住院。患者数一栏则完全自洽,三个划分的患者数相加恰好等于总数。三种可能的解释都需要更多证据才能定论:

假设 支持 反对
训练集行数为取整值,实际比公布值多 408 训练集行数是整千数,在统计描述里偏巧合;患者数自洽说明并非总体统计错误 官方未在任何位置给出修正后的行数,属于推测
有 408 次住院因某种原因未进入任一划分(如无法归入 train/val/test 的边界病例) 差值恰好落在住院维度而非患者维度 若如此,官方应说明被剔除原因,但未说明
全数据集 CSV 与划分 CSV 来自不同筛选批次 两者的生成代码可能不同 发布包同时提供两者,作者应已核对

无论哪种解释成立,使用时应以划分文件为准:三份划分 CSV 相加就是模型实际能看到的样本数。若在论文里直接引用全数据集的总数作为评测样本量,需要注明总数来源与划分之和的差异,否则审稿人核对时会对不上。

4.3 检索任务的难度设计

10 候选的设定是一个折中。真实临床检索场景里,候选池是全库的数千到数十万张胸片,10 候选远低于此;但若候选池设得太大,多数模型会逼近随机水平,无法区分方法优劣。10 候选的好处是随机基线固定在 0.1,头部方法可以达到 0.4 以上,指标有足够的区分度;代价是指标绝对值不能直接外推到临床部署场景。

另一个设计细节是负例的抽取方式:从同一划分的其余记录中随机抽 9 条,而不是按病种或影像相似度构造困难负例。这使任务偏向「粗粒度区分」——区分不同患者的不同检查,而非区分同病种的不同病例。若研究目标是评估模型对细微征象的判别力,需要自行构造困难负例集。

4.4 假设—支持—反对

假设 支持证据 反对证据
本数据集可用于评测任意多模态方法,而不只是 Symile 数据本身是通用的三模态配对,任何对比学习目标都能在其上训练;检索协议对方法中立 划分、预处理、化验编码均按 Symile 论文的需要设计,其他方法若采用不同的缺失值处理,横向比较会失真
三模态齐全的筛选不会显著改变人群构成 三个模态都是常规检查,覆盖面广 胸片 24-72 小时窗口排除入院当天急查影像的病例,人群偏向择期与次急症
检索准确率可以作为影像与化验关联强度的度量 准确率高于随机说明跨模态信息确实存在 10 候选的任务太容易,准确率随负例构造方式变化大,不能作为关联强度的绝对标尺
发布包中的检查点可直接用于下游任务 检查点在训练集上训练,附完整代码 编码器全部从零训练、规模小,且仅在配对的检索任务上优化,迁移到诊断任务时表现未知
患者级划分足以杜绝泄漏 官方明示无患者重叠 同一患者的多次检查不会跨集,但同一时期、同一病区的相似病例仍可能同名分布,属于软泄漏

4.5 缺失模态的处理

数据设计上允许模态缺失,但官方发布的三个划分并未做系统的缺失实验。论文中关于缺失模态的实验放在另一个数据集 Symile-M3 上:以 0.5 或 0.65 的概率随机丢弃各模态,观察模型在部分模态可用时的表现。把该结论外推到临床场景需要谨慎,因为临床数据的缺失不是随机的——没做某项化验往往与病情轻重相关,属于非随机缺失。

对本数据集而言,真正可用的「缺失信号」是化验的后 50 维指示位。它记录的是每项化验有没有测,天然携带临床决策信息。已有研究把化验的「测与不测」本身当作特征,这一维度在本数据集里是可直接取用的,但官方未提供任何基于该维度的基线结果。

4.6 已知的工程陷阱

张量行序。CSV 的行序与 npy 的行序不保证一致。若一边读 CSV 的 hadm_id、一边读 npy 的特征,必须用第三个索引文件对齐,不能假设第 k 行对第 k 行。

内存。胸片张量按 320×320×3 存储,若为 uint8 则每条约 300 KB,一万条约 3 GB;若加载为 float32 则膨胀四倍。心电图按 5000×12 单精度存储,每条约 240 KB。一次性全量载入在普通工作站上可以承受,但训练时应用内存映射或按批读取。

归一化不可逆。胸片已用 ImageNet 统计量归一化,若要把张量还原成可视图像,须用同一组均值与方差反算,不能直接用 255 缩放。化验的百分位也不可直接还原为原始单位,只能借助 labs_means.json 与母库分布近似反推。

crop 的不确定性。训练时的随机裁剪若未固定种子,两次训练的输入分布会有差异,复现时应固定随机种子并把增强参数记录在实验日志里。

§5 能做什么

5.1 任务清单

任务 输入 输出 现成支持
跨模态检索 心电图 + 化验 对应胸片 官方的 val_retrieval 与 test 协议
反向检索 胸片 对应心电图或化验 需自行翻转查询与候选
多模态表征学习 三模态任意组合 公共嵌入空间 官方代码与检查点
模态缺失鲁棒性 随机丢弃模态 检索准确率 需自行构造缺失实验
单模态基线 任一模态 检索准确率 论文仅报成对 CLIP 作为对照
下游分类 胸片表征 疾病标签 须回母库关联诊断表

前两项是数据集的原始用途,第三项是方法论文的核心,第四到第六项属于合理外延但官方未给结果。要特别注意第六项:数据集本身没有标签,任何分类结果都依赖使用者自己在母库中构建标签集,而这一步会引入新的选择偏倚。

5.2 最小可执行示例:复现检索基线

以下演示如何用官方张量复现一个最简的检索基线(此处用「化验最近邻」作为对照,用于确认流程跑通,不代表任何方法性能):

import numpy as np

labs = np.load('data_npy/labs_percentiles_test.npy')  # (4640, 50)
miss = np.load('data_npy/labs_missingness_test.npy')
x    = np.concatenate([labs, miss], axis=1)           # (4640, 100)
qid  = np.load('data_npy/label_hadm_id_test.npy')
lab  = np.load('data_npy/label_test.npy')

hit, total = 0, 0
for i in range(0, len(qid), 10):          # 每 10 行一组候选
    scores = -np.abs(x[i:i+10] - x[i]).sum(axis=1)   # 与查询的 L1 距离
    hit   += int(np.argmax(scores) == 0)
    total += 1
print('top1 =', hit / total)

这段代码的关键不在距离度量,而在两点:候选按每 10 行一组切分,正例固定在组内第 0 位;准确率的分母是查询数而非行数。只要这两点写对,换成任意模型的嵌入向量都能直接复用同一套评测循环。

5.3 一个可执行的研究方向:模态缺失下的检索

数据集没有现成的缺失实验,但它具备做这类实验的条件:三模态齐全,且有明确的缺失指示位。一个具体设计是:

  1. 在训练时以固定概率丢弃心电图或化验模态,迫使模型学习部分模态下的表示;
  2. 在测试时系统性地只保留一个、两个或三个模态,记录检索准确率的变化;
  3. 与「不做缺失训练、测试时才丢弃模态」的对照组比较,衡量鲁棒性差距。

这个设计与论文在 Symile-M3 上的实验结构一致,移植到临床数据上可以检验「缺失训练是否能抵消非随机缺失带来的分布偏移」。需要注意的是,化验的缺失在真实数据里非随机,简单地随机丢弃无法模拟这一点;更贴近现实的做法是按「测与不测」的既有模式做条件丢弃,但这已经超出数据集的现成范围。

5.4 不适用的场景

流行病学描述。样本经过三模态筛选,不能用来估计某病的患病率或住院构成。

诊断模型训练。没有标签,且样本量对影像诊断任务偏小;一万量级的训练集训练胸片分类模型,泛化性远不如用母库的数十万张。

时序预测。每次住院只保留一张胸片与一段心电图,没有纵向序列,无法做病程预测。

报告生成。没有放射报告文本,这一任务需要用 MIMIC-CXR 的报告数据,本数据集无法直接支持。

影像组学与全视野分析。胸片被缩放到 320 像素并做了方形裁剪,细节损失较大;若要研究细微病灶,应回母库取原始分辨率图像。

5.5 计算资源估计

按官方模型规模,三路编码器分别是 ResNet-50(胸片)、ResNet-18(心电)与三层感知机(化验),参数量在千万级,单张 24 GB 显卡即可训练,但受限于数据量,训练轮次不宜过多——论文明确提到因数据集规模有限,使用了代价较高的全对负采样来抑制过拟合。对大多数复现实验而言,瓶颈不在算力而在数据申请周期与内存管理。

§6 常见误读与引用陷阱

常见说法 实际口径 证据位置
Symile 是某个英文词组的缩写 Symile 是论文提出的对比学习目标名,非缩写 官方页摘要与 arXiv:2411.01053
这是母库的一份完整缩影 只保留三模态齐全且满足两个时间窗的住院,筛选后占母库极小比例 官方页 Data Description 的入选条件
三个划分加起来等于官方公布的总住院数 三个划分相加比总数少 408 行,官方未解释 官方页同段并列的两组数字
胸片与化验是同一天采集的 胸片在入院后 24-72 小时,化验在入院 24 小时内,刻意错开 官方页时间窗描述
test_retrieval.csv 是官方文件名 官方只有 test.csv,其结构同 val_retrieval.csv,文件名层面不存在 test_retrieval 官方页文件清单
val_retrieval 也是零样本评测集 零样本指的是测试集;验证检索集用于训练期观察 论文实验章节
检索集的行数就是独立样本数 每 10 行来自同一个查询,独立样本只有行数的十分之一 官方页的展开倍率说明
论文报告了 Recall@5 与 Recall@10 论文只报十次自助重采样的平均准确率,未使用 Recall@k 术语 论文实验章节
数据集带有疾病诊断标签可以直接分类 无任何诊断标签,label 列仅为检索正负标记 官方页数据描述
化验前 50 维缺失时是空值 缺失位置用该化验的平均百分位填充,须靠后 50 维识别 官方页 labs 编码说明
可以从全量数据重算百分位以提升精度 百分位按训练集经验分布函数定义,改用全集会引入测试集泄漏 官方页 labs 编码说明
数据可以直接下载后分享给合作者 凭证化访问,不得再分发,合作者须各自申请 许可与 DUA 条款

技术陷阱一:文件名与变量名不统一。官方页把验证检索集写为 val_retrieval,测试集写为 test。代码里若统一命名为 *_retrieval,读文件时会找不到 test_retrieval.csv;反之若统一命名为 split,又容易把 val_retrieval.csv 当成普通验证集加载。建议在项目内显式区分「按记录组织的划分」与「按候选组组织的检索集」两类文件。

技术陷阱二:「最早可得的记录」与时间窗的关系。官方说每次住院取「最早可得的胸片、心电图与化验」。若只看这句话,会以为胸片取入院后第一张;实际上胸片还受 24-72 小时窗口约束,取的是窗口内最早的那张。两个规则叠加后,入院当天拍片且次日没有复查的住院会被排除,而不是取当天那张。

技术陷阱三:患者数与住院数的混用。规格表两栏分别统计患者与住院,数值不同。因为按患者划分,训练集与测试集的患者数之比约为 18:1,而住院数之比约为 21:1——同一患者反复入院的次数在训练集里更集中。引用规模时必须分清是哪个口径,否则会得出「测试集占 4%」与「测试集占 5%」并存却都对不上具体数字的混乱表述。

技术陷阱四:检查点不能当预训练权重。发布包附带的检查点是在本数据集上训练的,编码器从零开始、仅在这个检索任务上优化。把它当作通用胸片或心电预训练模型用于诊断任务,属于超出其训练目标的使用,官方未提供任何迁移性能证据。

§7 在生态中的位置

7.1 在 MIMIC 派生谱系里的坐标

MIMIC 体系经过十余年积累,已经形成一个庞大的派生生态。按派生方式可以把它们分成四类,Symile-MIMIC 属于其中最新的一类。

派生类型 代表 派生逻辑 与本数据集的关系
模块拆分 MIMIC-IV-ED、MIMIC-IV-Note 把母库按科室或数据类型切成独立包 本数据集跨模块取数,是拆分逻辑的反向操作
结构化标注 MIMIC-CXR-JPG 用自然语言处理从报告抽结构化标签 本数据集无标签,若需标签须回到这一类
跨库配对 MIMIC-CXR-Ext-MIMIC-CXR-DB 把影像与住院记录建成关系表 方法上最接近,但只做关联不筛时间窗
时间配对 MIMIC-IV-Ext-ECG-Glucose 按时间邻近把心电图与血糖配对 同样做时间对齐,但只有两模态
方法评测 Symile-MIMIC 为评测某对比学习目标而构造的固定形状配对集 本页所介绍的数据集

从这张表能看出一条脉络:MIMIC 派生的演化方向,是从「把母库切小」到「把母库切准」。早期的派生包关心的是「能不能单独下载某一模块」,后期的派生包关心的是「某个具体研究问题需要什么样的配对关系」。Symile-MIMIC 站在这条线的末端,它的存在理由完全由方法论文定义——没有 Symile 这个目标,就不需要这样一份数据。

7.2 与其他多模态配对的比较

把胸片、心电图与化验放在一起的公开数据集很少,原因在于三个模态分属不同科室、不同信息系统,采集节奏也不同。可比的方案大致有三条路线。

路线一:只做两两配对。心电图与化验的配对已有先例,按时间邻近关联即可;胸片与报告的配对有 MIMIC-CXR 这类大规模版本。两两配对的好处是数据量大,坏处是无法研究三者的联合结构。

路线二:多模态但无时间约束。把同一患者的各类检查全放进一个包里,由使用者自行决定如何配对。这类数据灵活,但没有统一的评测协议,不同论文的结果不可比。

路线三:固定时间窗与固定形状。本数据集采用的就是这条路线:时间窗写死,张量形状写死,候选组构造写死。代价是灵活性丧失,收益是可复现性与结果可比性。

三条路线没有优劣之分,取决于研究目标是「探索」还是「对标」。要做方法间的横向比较,第三条路线的价值最高;要做探索性分析,第一条或第二条更合适。

7.3 与同期多模态临床数据的差异

2023 年以来出现了多批面向多模态大模型的临床数据集,它们与本数据集的取向不同:前者追求模态数量与文本丰富度,通常包含报告、病历文本与问答对;后者追求配对的精确性与评测的可控性,只有三个模态且无文本。这决定了它们的适用场景几乎不重叠——做视觉语言模型预训练应选前者,做跨模态表示的结构性研究应选后者。

另一个差异在规模策略。多模态大模型数据集往往以百万级样本为目标,靠规模弥补噪声;本数据集只有万级样本,转而靠严格筛选与干净的配对关系换取信噪比。对算力有限的团队,后者更实际;对追求通用能力的团队,前者不可替代。

7.4 参见

下列条目与本文介绍的数据集有直接血缘或方法接近,均属 MIMIC 体系。

  • MIMIC-IV — 重症监护医疗数据库:母库,提供住院记录与化验原始表;
  • MIMIC-CXR-JPG:胸片与结构化标签的来源,提供图像与 DICOM 血统;
  • MIMIC-CXR:胸片原始数据与放射报告;
  • MIMIC-IV-ECHO:同为 MIMIC-IV 派生,按 subject_id 关联全院病历的影像子集;
  • MIMIC-IV-Ext-ECG-Glucose:心电图与血糖的时间配对,方法上最接近的两模态版本;
  • MIMIC-CXR-Ext-MIMIC-CXR-DB:胸片与住院记录的关系型关联库;
  • BOLD, a blood-gas and oximetry linked dataset:跨 MIMIC-III、MIMIC-IV 与 eICU 的生理配对数据。

这些条目共享同一套凭证化访问体系与去标识化流程,但各自的数据规模、时间窗与标注方式不同。把它们放在一起看,能够勾勒出「同一份母库可以被派生出多少种用途」的图景。

§8 方法背景:Symile 要解决什么

8.1 两模态对比的局限

以 CLIP 为代表的对比学习有一个隐含前提:数据以成对形式出现,一次比较两个模态。图像与其配文是最典型的例子。当研究对象扩展到三个或更多模态时,成对方法的处理方式是把多模态拆成若干对,每对单独算对比损失,再把损失相加。

这种拆法的问题在于,它只能约束两两之间的关系,约束不到三者以上的联合信息。举个具体的例子:一份心电图、一组化验与一张胸片,若三者都对得上,成对损失会分别奖励「心电对胸片」「化验对胸片」「心电对化验」三组匹配,但不对「三者同时对应」提出额外要求。结果是模型可能把某一对学得很好,却在需要三路信息同时到场时表现不佳。论文的表述是成对应用 CLIP 无法捕捉模态间的联合信息,从而限制了学到的表示质量。

8.2 Symile 的做法

Symile 的出发点是对总相关信息(total correlation)的刻画。总相关信息衡量多个变量共享的信息量,它在两变量时退化为互信息,在多变量时则包含了「多个变量同时相关」的部分。论文推导出总相关信息的一个下界,并把这个下界写成可优化的对比损失,最终得到的损失形式是:对任意一组模态子集,用一个共享的表示去与其他子集的表示做对比。

由此带来三个性质,都与本数据集的设计直接相关:

  • 模态数量不受限。损失的定义不依赖于模态数是二还是三,任意数量的模态都能代入;
  • 表示与架构无关。每个模态先由各自的编码器(可以是任意网络)编码,再投影到公共空间,因此换编码器不影响损失本身;
  • 缺失模态可处理。当某些模态不可用时,损失退化为在可用子集上计算,模型不需要为缺失单独设计分支。

论文进一步证明,对任意模态集合,Symile 学到的表示是预测其余模态的充分统计量。这一性质是方法论文的理论核心,也是本数据集把三模态配对作为核心结构的理论依据。

8.3 在本数据集上的映射

把上述性质落到数据上,可以看到每一处设计都有对应的方法动机:

方法性质 数据设计 位置
任意模态数 三模态齐全是硬性入选条件,保证任意子集都能取到 官方页入选条件
架构无关 三种模态各自张量化,形状固定,可接任意编码器 data_npy 目录
缺失可处理 100 维化验向量显式编码缺失 labs_missingness 张量
高阶联合信息 检索任务要求从两模态查第三模态,直接检验联合信息 val_retrieval 与 test

最后一行是理解这份数据的关键:检索任务把「两模态对一模态」的判别作为评测目标,正是要检验模型有没有学到三者之间的联合结构,而不只是两两相关性。

8.4 论文中的模型配置

官方公布的编码器配置如下,可作为复现的起点:

模态 编码器 输入 输出投影
胸片 ResNet-50,从零训练 3×320×320 线性投影到 8192 维
心电图 ResNet-18,从零训练 1×5000×12 线性投影到 8192 维
化验 三层全连接网络 100 维 线性投影到 8192 维

三个模态的表示被投影到同一个 8192 维空间,检索时在该空间内计算相似度。所有编码器从零训练意味着不依赖 ImageNet 预训练权重,这在数据量有限时通常会牺牲一些性能,但也避免了预训练数据与临床数据的分布差异。

因数据集规模有限,训练使用了全对负采样,即每个 batch 内所有样本两两配对作为负例。这种做法的计算代价随 batch 增大呈平方增长,但在小数据上比随机负采样更稳定。论文未在临床数据上做缺失模态实验,这一点在使用时应记住:方法宣称的缺失鲁棒性,在本数据集上没有直接的实证结果。

8.5 评测口径与结果

测试集的检索协议是:每个查询的候选为 10 条胸片,其中 1 条为对应正例、9 条为随机负例;模型为每条候选打分,取最高者作为预测;准确率的定义为预测正确占全部查询的比例。为了降低抽样波动,论文在测试集上做了十次自助重采样,报告均值与标准误。

方法 平均准确率 标准误
Symile 0.435 0.007
成对 CLIP 0.387 0.003
随机基线 0.100 —

两组结果的差距约为 0.048 个百分点,相对提升约 12.5%。差距大于三倍标准误之和,可以认为差异不是抽样噪声。但也要看到,即便最好的方法也只把正确率做到 0.435,说明从心电图与化验推断胸片这件事仍然很难——胸片所反映的肺部实变、积液等改变,与入院早期的电生理和生化指标之间只有松散相关。

8.6 结果的解读边界

准确率不等同于临床可用性。0.435 是在 10 候选里选对 1 个的比例,换到全库检索会急剧下降。

基线单一。论文只与成对 CLIP 比较,没有引入其他多模态对比方法。这足以证明「成对拆解不如联合建模」,但不足以说明 Symile 优于所有替代方案。

只测了一个方向。查询是「心电图 + 化验」,候选是胸片。反向、单向(仅心电或仅化验)的结果官方未报,尽管数据支持这些实验。

§9 使用指南

9.1 复现论文结果的路径

若目标是复现 Symile 在测试集上的结果,最短路径是:

  1. 拿到凭证化访问权限,下载全部文件;
  2. 用官方 code/ 中的环境文件建环境,避免依赖版本差异;
  3. 直接加载 symile_mimic_model.ckpt,在 test.npy 张量上跑检索评测;
  4. 与论文的 0.435 对照,若差距超过两个标准误,先排查评测循环是否与官方一致(候选分组、正例位置、分母口径)。

第三步的检查点复现不涉及任何训练,通常在单卡上一小时内完成。若这一步就复现不出,问题多半在评测循环而非模型。

9.2 训练自己的模型的路径

若要训练新方法,建议的顺序是:

  1. 先跑通单模态基线。只用胸片做检索,或用化验的最近邻做检索,确认数据加载与评测循环正确;
  2. 再做两模态。心电图加化验作为查询,这是本数据集的原生设定;
  3. 最后做三模态或新目标。此时改动只涉及损失函数与编码器,评测流程保持不变。

跳过第一步是常见错误:三模态训练的调试成本高,若评测循环本身有 bug,会误判为方法不行。

9.3 数据加载的注意事项

  • 内存映射。胸片张量较大,训练时用 np.load(..., mmap_mode='r') 或框架的内存映射数据集,避免一次性载入;
  • 保持行序。所有张量文件与索引文件必须按同一顺序加载。若自行做 shuffle,须用同一个随机索引同时打乱特征与标签;
  • 类型转换。胸片若以 uint8 存储,送入网络前须转 float32 并做归一化;心电已是 float32,直接使用;
  • 缺失指示不要丢。化验前 50 维是填充后的值,若只取前 50 维而丢掉后 50 维,模型会把「未测」当成「测得平均水平」,这是使用该数据最常见的隐性错误。

9.4 做新实验时的报告清单

用本数据集发表结果时,建议在方法部分写明以下各项,否则他人难以复现:

项目 需写明的内容
数据版本 v1.0.0 与 DOI
划分 使用官方划分还是自建;若自建,说明是否患者级
模态组合 训练与测试分别用了哪些模态
编码器 架构、是否预训练、是否冻结
负例构造 采用官方 10 候选,还是自建困难负例
指标口径 准确率的分母是查询数还是行数;自助重采样次数
百分位重算 是否用训练集估计,若未用则说明

最后一项容易被忽略,却直接影响可比性:若用全集重算百分位,测试集特征会携带测试集信息,准确率会系统性偏高。

9.5 能够延伸的三个问题

问题一:模态的重要性排序。在三模态检索中逐一移除一个模态,观察准确率下降幅度,可以量化各模态对检索的贡献。这个实验数据完全支持,成本也低。

问题二:化验缺失模式的利用。把后 50 维的缺失指示单独作为特征,看它本身能否用于检索。若缺失模式单独就有区分力,说明「测什么」隐含着临床判断。

问题三:时间窗的敏感性。数据集固定了 24 小时与 24-72 小时两个窗口,但重建代码可修改窗口。用重建代码生成不同窗口下的子集,比较检索难度,可以回答「影像离化验越远,跨模态关联越弱吗」这一问题。这个方向的代价是要重跑母库上的筛选流程,需要母库的本地副本。

§10 总结

10.1 适用与不适用

适合用它的场景:

  • 研究多模态对比学习目标,尤其是模态数超过两类的情形,需要一个配对干净、评测协议固定的临床数据集;
  • 做跨模态检索的基线,需要与已发表数字直接对标;
  • 研究结构化临床数据(化验)与影像、信号之间的关联,需要一个已经对齐好的三模态样本;
  • 做教学方法设计,希望数据集规模适中、单卡可训、结果在一小时内跑出。

不适合用它的场景:

  • 需要病例标签做诊断、分型或预后建模;
  • 需要估计人群患病率、住院构成等流行病学指标;
  • 需要原始分辨率影像做细节分析;
  • 需要纵向序列做病程预测;
  • 需要放射报告文本做生成任务。

10.2 三句话

它是什么:从 MIMIC 三个母库中筛出的三模态齐全子集,每次住院附一张胸片、一段心电图与一组化验,专为评测 Symile 对比学习目标构造。

它独特在哪:把胸片刻意后移到入院后 24-72 小时,使心电图与化验成为「先验信息」、胸片成为「待检索目标」,从而把三模态联合建模变成一个可打分的检索任务;同时附带检查点与重建代码,使结果可复现、口径可修改。

用之前要记住什么:这是强筛选后的子集而非母库缩影,三个划分之和与官方总数差 408 行,论文的准确率建立在 10 候选的简化任务上——三条都会影响结论的外推范围。

10.3 一句话选型建议

如果你的问题需要在「心电、化验、胸片」三者之间建立可计算的关联,并且接受一万量级、无标签、固定形状的输入,那么这份数据几乎是现成的最优起点;如果你的问题需要任何一项标签或纵向序列,那么应该回到母库自行构建。

附录 A:关键数字速查

规模数字见 §2.2 的规格表,此处只列正文未成表的技术参数与结果数字。

项目 数值
发布年份与版本 2025 年,v1.0.0
版本 DOI 10.13026/3vvj-s428
检索查询与候选之比 1 查询 : 10 候选(1 正 9 负)
化验项数 50
化验向量维度 100(50 百分位 + 50 缺失指示)
胸片张量 3 × 320 × 320
心电图张量 1 × 5000 × 12
公共嵌入维度 8192
检索随机基线 0.1
Symile 准确率 0.435(标准误 0.007)
成对 CLIP 准确率 0.387(标准误 0.003)
相对提升 约 12.5%

附录 B:缩写对照

缩写 英文 中文
CXR Chest X-Ray 胸片
ECG Electrocardiogram 心电图
EHR Electronic Health Record 电子健康记录
MIMIC Medical Information Mart for Intensive Care 重症监护医疗信息库
PA Posteroanterior 后前位
AP Anteroposterior 前前位
DUA Data Use Agreement 数据使用协议
CITI Collaborative Institutional Training Initiative 合作机构培训计划
CDF Cumulative Distribution Function 累积分布函数
INR International Normalized Ratio 国际标准化比值
PT Prothrombin Time 凝血酶原时间
PTT Partial Thromboplastin Time 部分凝血活酶时间
MCHC Mean Corpuscular Hemoglobin Concentration 平均红细胞血红蛋白浓度
MCV Mean Corpuscular Volume 平均红细胞体积
RDW Red Cell Distribution Width 红细胞分布宽度
ALT Alanine Aminotransferase 丙氨酸氨基转移酶
AST Aspartate Aminotransferase 天冬氨酸氨基转移酶

附录 C:上手核对清单

  • [ ] 账号已具备凭证化访问资格,CITI 培训证明在有效期内;
  • [ ] 已签署数据使用协议,并确认所在单位对数据存放有合规要求;
  • [ ] 已下载全部文件,核对了版本号与 DOI;
  • [ ] 张量行序、索引文件、标签文件三者已对齐,正例校验通过;
  • [ ] 明确知道前 50 维百分位在缺失位置是填充值;
  • [ ] 百分位映射使用训练集估计,未用全集重算;
  • [ ] 训练期的随机裁剪已固定种子;
  • [ ] 报告指标时写明分母是查询数而非候选行数;
  • [ ] 检查点仅用于复现检索,未当作通用预训练权重。

附录 D:未覆盖内容

以下内容在官方页与论文中均未给出,使用时应自行确认或列为研究的已知边界:

  1. 各 split 的精确行数与总数之间的 408 行差额来源;
  2. 数据集中每个模态缺失的具体比例与分布;
  3. 每次住院实际测得的化验项数分布;
  4. 心电图采样率(形状为 5000 点,采样率未在官方页标注);
  5. 各文件的实际体积;
  6. 作者所属机构;
  7. 论文使用的数据版本与 v1.0.0 是否逐行一致;
  8. 反向检索与单模态检索的基线结果。

附录 E:检索模板

在文献库或搜索引擎中查证本数据集时,可用的检索式:

  • "Symile-MIMIC" AND physionet
  • "Symile" AND "contrastive" AND "unlimited modalities"
  • symile-mimic site:physionet.org
  • "MIMIC-IV" AND "ECG" AND "chest X-ray" AND "labs" AND retrieval
  • 10.13026/3vvj-s428

若检索结果里出现把 Symile 解释为某个缩写、或把数据集规模写成母库规模的条目,应以官方 PhysioNet 页与 arXiv:2411.01053 为准。

附录 F:DAIMS 数据资产成熟度评估

DAIMS(Data Assets and Information Maturity Scorecard)从六个维度评估数据资产的可用性与治理成熟度。下表按本数据集的实际情况逐项打分,满分为 5 分。

维度 评分 依据
可发现性 5 有 PhysioNet 页面、版本 DOI、arXiv 配套论文与 GitHub 代码仓库,四路可查
可获取性 3 凭证化访问,须认证、培训、签署协议,流程完整但门槛高
互操作性 4 与母库共享 subject_id 与 hadm_id,可按标识回连;张量格式通用;但无标准医学术语编码(如 SNOMED、LOINC)
可复用性 4 代码与检查点同包,划分与预处理写死,复现容易;但时间窗固定,改口径须重跑筛选
数据质量 3 三模态对齐与患者级划分严格,但总数与分项差 408 行,且官方未解释
治理与合规 5 明确的 DUA、CITI 培训要求、去标识化声明,义务链条完整

六项平均约 4.0。可发现性与治理两项接近满分,是这份数据最强的部分;数据质量一项因数字不一致被扣分,可获取性一项因门槛被扣分。需要说明的是,可获取性低并不意味着设计缺陷——临床数据的凭证化访问是行业标准做法,扣分反映的是使用成本而非发布方的疏忽。

编辑说明

核验时间与方式

核验完成于 2026 年 10 月 18 日。一手来源为 PhysioNet 的 Symile-MIMIC v1.0.0 页面与 arXiv:2411.01053 的摘要页及 HTML 正文实验章节,两处均逐字抓取。规模、时间窗、化验编码、检索集构造、许可条款、模型配置与检索结果均直接引自这两处,未采用二手转述。

数字口径冲突的存照

  1. 总数与三个划分之和相差 408 次住院:两数在官方页同一描述段落内并存,患者数一栏则自洽。正文按「以划分文件为准」处理,并在 §4.2 列出三种可能解释。
  2. 论文 95%/5% 与官方绝对行数:论文按患者比例划分,官方给绝对行数,二者方向一致但无法逐行互验。
  3. test_retrieval 的命名:官方文件清单中只有 test.csv,其结构同 val_retrieval.csv;不存在名为 test_retrieval.csv 的文件。本页正文统一写作「测试检索集」,只在必要的对照处提及文件名。
  4. 零样本的适用范围:论文的零样本表述针对测试集的检索任务,val_retrieval 是验证期使用的同构造集合,不宜一并冠以零样本之名。
  5. 心电图采样率:官方仅给张量形状 1×5000×12,未给采样率;按 MIMIC-IV-ECG 惯例记为 500 Hz × 10 秒,标为依母库惯例推定。
  6. 文件体积:官方页未提供任何文件大小信息,正文因此不写体积数字。
  7. 作者机构:官方页未列,正文不写机构。

未采信与待核

  • MIMIC-IV 的精确住院总数未在本次核验中逐字抓取,正文只写「数十万级」,不写具体数字。
  • 训练集行数是否为取整值,无官方依据,仅作为解释 408 行差额的假设之一列出。
  • 论文所用数据版本与 v1.0.0 是否逐行一致,官方未声明。

版本记录

  • 2026-10-18:初稿,对应数据集版本 v1.0.0(2025-01-28 发布)。

下次复核触发条件

PhysioNet 发布新版本、论文更新、或母库 MIMIC-IV 升版导致重建代码行为变化时,应重新核对规模数字与划分。


相关数据集导航

以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

返回 AI-Ready 数据集