【解读—论文】引导性掩码表示学习以捕捉心电图的时空关系

发布于:2025-05-26 ⋅ 阅读:(28) ⋅ 点赞:(0)

目录

一、研究动机与背景

二、方法创新:ST-MEM 框架

三、 实验验证

1、六个模型在两个数据集上的性能对比

2、低资源环境下通用ECG表示的有效性

3、在减少导联设置中的性能

4、从ST-MEM学到的一般ECG表示分析

5、消融实验

6、通过分析自注意力来解释ST-MEM

四、额外的实验

1、和对比预测编码模型(CPC)进行比较

2、MoCo v3模型预训练时使用的数据增强方法

3、在PTB-XL数据集上进行更多标签的分类

4、额外的单导联实验

5、低资源设置下单导联心电图的实验结果

6、ST-MEM学习的ECG的不同导联的空间信息的额外分析

7、额外的消融实验

8、ST-MEM自注意力图的额外分析

五、结论与未来展望

六、数据集与预处理

疑问与思考

1、掩码相关

(1)为什么这里解码器输入前的  要共享,为什么不在每个位置上都用不同的(即共L*n个),或者每个位置都用不可学习的同一个?

2、解码器相关

(1)为什么要用导联共享解码器,这样有什么好处。用12个不同的解码器会更好吗

1.1 信息共享和跨导联的协同效应

1.2 减少参数数量与计算开销

1.3 提高模型的泛化能力

1.4 多导联特征的协同优化

1.5 为什么不使用12个不同的解码器

总结:

3、改进


一、研究动机与背景

  1. 问题:心电图(ECG)是多导联时序信号,具有丰富的时序(temporal)与空间(spatial)信息。然而,标注心电图样本往往依赖资深心脏科医生,获取成本高且数据稀缺。在下游任务(如心律失常分类)中,如何学习到可迁移、通用的 ECG 表征成为亟待解决的问题。

  2. 现有自监督学习 (SSL) 方法局限

    • 对比式方法(contrastive):依赖数据增强构造正负样本,但 ECG 信号易被裁剪、旋转等操作改变其生理含义,导致语义漂移 。

    • 生成式方法(generative,例如 MAE):直接通过重构输入学习表征,但若无感知 ECG 内在的多导联时空关联,重构任务可能过于简单,无法挖掘空间视角间的互补信息。

二、方法创新:ST-MEM 框架

        ST-MEM(Spatio-Temporal Masked Electrocardiogram Modeling)基于 MAE 架构,将 ECG 的空间–时序结构引入预训练过程,核心模块包含:

  1. 时空补丁化(Spatio-Temporal Patchifying)

    • 将 12 导联 ECG 信号同时在时间轴与导联维度上切分成小补丁(patch),每个补丁同时包含某一时刻片段与特定导联信息,共生成 N_{\text{patch}}=L\times T 个补丁,其中 L=12 为导联数,T 为时间分段数。

    • 使得 Transformer 编码器在自注意力计算时,能跨导联、跨时间地捕捉全局依赖。

  2. 导联指示模块(Lead-Indicating Modules)

    • 导联嵌入(lead embedding):为同一导联的所有补丁添加相同的可学习向量,帮助区分导联来源。

    • 分隔嵌入(SEP embedding):在序列首尾添加共享分隔符,进一步增强模型对不同补丁序列边界的感知。

  3. 导联共享解码器(Lead-Wise Shared Decoder)

    • 针对被遮掩(masked)的补丁,仅使用对应导联的补丁序列进行重构,禁止解码器跨导联访问未遮掩信息,从而强制编码器必须学习真正的时空关联。

  4. 可学习的共享掩码token(Masked)

    • 在解码器输入时,对掩码区域放置一个可学习的共享 Masked token 作为占位符,代表这个位置需要预测。

  5. 预训练与微调

    • 预训练阶段:随机遮掩一定比例(最佳约 75%)的时空补丁,最小化原始信号与重构信号的均方误差。

    • 下游微调:仅保留编码器,加上线性分类头,在带标签的 arrhythmia 数据集(PTB-XL、CPSC2018 等)上端到端训练。

三、 实验验证

1、六个模型在两个数据集上的性能对比

        六个自监督预训练模型( MoCo v3、CMSC、MTAE、MTAE+RLM、MLAE、ST-MEM (Ours) )在两个数据集(PTB-XL、CPSC2018)做了线性评估和微调,比较了它们的三个分类评估指标(Accuracy、F1、AUROC),此外进行了有监督学习分类器的训练参与比较。从结果看 ST-MEM 在各个方面均是最优的。

2、低资源环境下通用ECG表示的有效性

        六个自监督预训练模型( MoCo v3、CMSC、MTAE、MTAE+RLM、MLAE、ST-MEM (Ours) )加有监督模型共七个模型在两个数据集(PTB-XL、CPSC2018)做了线性评估和微调,比较了它们的一个分类评估指标(AUROC),使用的数据集分别为总数据集的 1% / 5% / 100%,从结果可以看出ST-MEM 在各个方面均是最优的。

3、在减少导联设置中的性能

        将三个模型( MTAE+RLM、MLAE、ST-MEM )分别用在PTB-XL数据集和CPSC2018数据集的不同导联( 12导联、6导联、1导联 ),以及PhysioNet2017数据集(只有1导联),比较三个模型在不同导联情况下的性能。从结果可以看出ST-MEM 在各个方面均是最优的。也就是说本模型适合少导联的情况,在少导联的情况下也能有好的效果。

4、从ST-MEM学到的一般ECG表示分析

        论文中通过可视化的方式来展示ST-MEM学到的不同导联的空间信息,具体方式是,通过编码器对不同的导联的信息进行编码,然后降维到2维,再将结果进行聚类,可见明显的空间区别效果。

思考:编码器学到的其实是数据的潜在区别,这些区别有时序区别,空间区别和标签区别,如果聚类后只看空间信息,如果空间信息效果不好,也不能说编码器学到的潜在的空间信息不好,因为其中混杂着时许和标签等其他信息,要想让空间信息呈现的聚类效果好,可以在作本实验前选择同种标签同一时序的样本,这样呈现的空间聚类效果可能会更好。

本模型与其他模型( ST-MEM、MTAE、MoCo v3 )进行对比,聚类效果也比其他模型好。

5、消融实验

        本实验的目的是为了测试ST-MEM模型的4个模块的重要性,这4个模块分别是:时空切片、带导联共享解码器、带SEP嵌入、带导联嵌入。

分别在两个数据集上,做了4组实验:

        第一组是编码器只有时空切片,没有后三个模块。

        第二组是在第一组的基础上加入了带导联共享解码器,

        第三组实验又加入了 带SEP嵌入

        第四组实验又加入了 带导联嵌入

实验结果是性能越来越好。

6、通过分析自注意力来解释ST-MEM

        这个实验做出了注意力权重的可视化。可以观察到ST-MEM将ECG信号从空间和时间两个维度进行考虑,位于同一导联的patch之间注意力权重大,位于不同导联同一时序的权重大。说明attention注意到了时间和空间上的相关性。

四、额外的实验

1、和对比预测编码模型(CPC)进行比较

        论文中对低资源设置中进行了实验,从实验结果可知,在低资源微调时(1% / 5%)的情况下,ST-MEM明显优于CPC,而使用100%数据进行微调时,CPC的效果可达到与ST-MEM相似的效果。微调使用的数据集是 PTB-XL 和 CPSC2018 。

        这个地方有一个微调,对于CPC模型,它预训练时使用的模型也是 PTB-XL 和 CPSC2018,这里对CPC的实验结果会有问题。

2、MoCo v3模型预训练时使用的数据增强方法

        MoCo v3模型预训练使用的是对比式方法,本实验对比了使用4种增强方式进行预训练和使用8种方式进行预训练的结果有什么不同。

从结果可以看出,使用8种数据增强方式比使用4种数据增强方式效果变好的不多,在有些方面甚至变坏了一点,所以可知,一些数据增强方式不适合在心电图数据上使用。

3、在PTB-XL数据集上进行更多标签的分类

        本模型ST-MEM分别与Supervised和MTAE模型进行比较,从结果可以看出,ST-MEM的效果在更多标签分类时比其他两个模型好。

4、额外的单导联实验

        ST-MEM、MLAE、MTAE+RLM 模型进行比较分别在单导联上作实验,可见,ST-MEM的效果更好。

5、低资源设置下单导联心电图的实验结果

        ST-MEM与有监督模型进行了比较,前者效果更好。

6、ST-MEM学习的ECG的不同导联的空间信息的额外分析

        比较了ST-MEM   和  去除导联指示模块(共享解码器、导联嵌入和SEP嵌入)的模型在空间上的可视化,比较编码后并降维后的聚类情况。从结果可以看出排除所有导联指示模块的模型难以聚类ECG不同导联的空间信息。

7、额外的消融实验

这个实验消融的是 :解码器的层数,掩码的比例,导联指示模块

        比较了不同层的解码器时的预训练效果,实验结果为:当配置解码器时,仅使用一个Transformer块时,性能显著下降。相反,过度增加解码器深度也被发现是不理想的。最高的性能是在解码器深度为4块时获得的。

        比较了在不同掩码比例的情况下,比较预训练模型的性能,从实验结果可知,在掩码比例为75%时效果最佳。

        逐一去除导联指示嵌入(SEP)和导联嵌入来比较它们的有效性,从结果可以看出,去除任何一个导联指示模块,效果都会变差。

8、ST-MEM自注意力图的额外分析

        展示了通过预训练的ST-MEM生成的自注意力图,这些图来自不同节律类型的ECG。值得注意的是,无论ECG的节律类型如何,ST-MEM始终会为具有相似形状的时间片段分配较高的注意力权重,这些时间片段与查询片段和相邻的空间片段相似。根据这一观察,我们推测ST-MEM被训练用来识别ECG的形态学特征,同时区分每个导联的独特特征,这对一般的ECG表示学习至关重要。

五、结论与未来展望

  • 结论:ST-MEM 通过“时空补丁化 + 导联指示 + 导联共享解码”策略,有效地将 ECG 的空间–时序结构融入自监督预训练,学习到高质量、可迁移的通用表征。在心律失常分类、低资源、导联受限等多种现实场景下均表现优异。

  • 未来工作:作者提出将该思路推广至一般多变量时序数据(如人体活动识别等),并已在人机识别数据集上取得初步成果

六、数据集与预处理

预训练使用的数据集:

        Chapman、Ningbo、CODE-15

微调使用的数据集:

        PTB-XL、CPSC2018、PhysioNet2017

数据集介绍和预处理

  • Chapman:包括10,64612导联心电图记录,每个记录持续10秒,采样率为500Hz,与PhysioNet2021数据集(Reyna等,2021)一致,本实验从Chapman数据集中去除了399个心电图。
  • Ningbo:包括34,90512导联心电图记录,每个记录持续10秒,采样率为500Hz
  • CODE-15:包含345,77912导联心电图记录,涉及233,770名患者,采样率为400Hz,在这些345,779个心电图中,143,328个记录为10秒的心电图,其余的记录为7秒,并且实验中专门使用了10秒的心电图记录。

        将这三个数据集合并为一个统一的数据集用于预训练。该预训练数据集总共包含188,480个心电图。注意,在预训练过程中,我们使用所有心电图,而不关注具体标签。

  • PTB-XL:12导联,有44个诊断标签及其对应的描述。这些44个标签被合并为23个子类别标签,而这23个子类别标签又进一步合并为5个超级类别标签(Wagner等,2020)。这5个超级标签是:心肌梗死(MI)、传导障碍(CD)、ST/T波变化(STTC)、心衰(HYP)和正常心电图(NORM)。这5个标签是我们在 PTB-XL 数据集中的目标标签。
  • CPSC2018:12导联,包含9个心律失常目标标签。
  • PhysioNet2017:单导联,包含4个目标标签。

预处理过程:

        每个数据集具有不同的特点。例如,Chapman 和 CODE-15 数据集有不同的采样频率(500Hz 和 400Hz)以及不同的单位(微伏和毫伏)。这些数据集中的差异在数据分辨率和单位上可能会混淆模型并降低性能。为确保数据集间的一致性并提高心电图信号质量,我们实施了几种信号处理程序。最初,我们将所有心电图重新采样到统一的250Hz采样频率。接着,我们应用了一个带通数字滤波器,范围为0.67-40Hz,以去除基线漂移和高频噪声。最后,我们对心电图信号进行了 Z 标准化,以确保各个数据的统一尺度。该信号处理在所有基准测试中都进行了,不论是在预训练阶段还是微调阶段。

将心电图裁剪为不重叠的10秒片段:ChapmanNingboCODE-15PTB-XL 数据集包含10秒的心电图记录,除了 CPSC2018PhysioNet2017 数据集。为标准化所有心电图数据为10秒,我们将持续时间少于10秒的数据裁剪为不重叠的10秒片段。每个裁剪的片段都根据原始标签进行标记,以便在损失计算中使用

删除具有多个标签的心电图用于多类分类设置:一个心电图可能同时展示多个心脏疾病,即一个心电图可能同时显示心肌梗死(MI)和传导障碍(CD)。在我们的数据集中,PTB-XL 和 CPSC2018 数据集中的一些心电图具有多个标签。在多类分类设置中,每个心电图应只具有一个标签。因此,我们排除了那些有多个并行标签的心电图(Zhang等,2022)。

将下游数据集划分为训练集、验证集和测试集:最后,关于下游数据集,它们按照 70-10-20 的配置划分为训练集、验证集和测试集。表10提供了PTB-XL数据集的预处理步骤,并包含有关所使用的训练集、验证集和测试集的信息。类似地,表11提供了CPSC2018的数据集的信息,而表12则详细列出了有关PhysioNet2017的数据集。

疑问与思考

1、掩码相关

(1)为什么这里解码器输入前的 M_{masked} 要共享,为什么不在每个位置上都用不同的(即共L*n个),或者每个位置都用不可学习的同一个?

        答:之所以只用一个可学习的、在所有被掩盖位置共享的 M_{masked}​,而不为每个补丁位置都设一个独立的可学习向量,或者干脆用一个固定的不学习的常量,主要有以下几个考量:

  1. 参数量与模型容量

    • 如果为每个位置都设一个独立的掩码向量(共 L\times n 个),参数量会急剧膨胀。以 D=768L=12n=100 为例,仅这个掩码矩阵就要 12\!\times\!100\!\times\!768\approx 921{,}600 个额外参数,而这部分并没有带来对应的多样化信息,反而容易导致过拟合。

    • 共享一个向量,则只增加 D 个参数(例如 768),既轻量又高效。

  2. 掩码语义的一致性

    • 共享同一个掩码 token,相当于告诉解码器:“ 这里是一个被完全隐藏的补丁,你只能依赖上下文去重构它。” 无论这个补丁原本在哪个导联、什么时间段,都用同样的 “ 被掩盖 ” 信号,能让解码器更聚焦于如何从空间–时序上下文中恢复信息。

    • 如果每个位置用不同的掩码向量,解码器可能会学习到 “ 这个掩码向量本身就携带了位置或导联信息 ”,从而降低了对上下文真正时空依赖的学习。

  3. 可学习 vs. 固定常量

    • 固定常量(如全零或全同值)虽然也能标记“这里被掩掉了”,但它无法适应不同模型架构、不同任务设置下的最优 “ 填充值 ” ——你得自己手动调参或设计特殊的常量。

    • 可学习的 M_{masked} 则会在反向传播中自动调整,找到最能帮助解码器恢复原始信号的向量表示,从而提升重构和下游任务的效果。

综上,共享的、可学习的唯一 M_{masked}​ 在参数效率、掩码语义一致性与学习灵活性之间达到了最优平衡。

2、解码器相关

(1)为什么要用导联共享解码器,这样有什么好处。用12个不同的解码器会更好吗

        使用导联共享解码器而非为每个导联设计独立解码器的主要原因在于信息共享和参数效率,同时也能提升模型的泛化能力。我们来深入分析一下其优势及为什么不一定需要使用12个不同的解码器:

1.1 信息共享和跨导联的协同效应

        在心电图(ECG)中,来自不同导联的信号本质上反映的是同一心脏活动的不同视角。这些导联的信号在一定程度上是相关的,它们的时空特征往往存在互补性。因此,使用导联共享解码器可以有效地让不同导联之间的信息互相流动与共享,从而捕捉到跨导联的全局模式。这样可以提高模型对心脏活动的理解,而不是仅仅依赖于单一导联的局部信息。

  • 共享学习:通过共享解码器,模型能够在学习过程中捕捉到不同导联之间的相似性,并且在训练时能通过共享权重的方式减少学习的偏差,使得模型能更好地从全局信号中提取信息。

  • 时空特征融合:不同导联间的信号会有不同的时序模式,通过共享解码器,模型能够更加有效地结合各导联的时序特征,提升模型的表达能力。

1.2 减少参数数量与计算开销

        如果为每个导联使用单独的解码器(如使用12个解码器),会导致参数数量大幅增加,进而带来计算和存储的开销。心电图信号通常是高维的时间序列数据,每个解码器可能都需要独立的学习参数和计算资源,这会导致:

  • 参数冗余:每个导联的解码器可能会学习到相似的特征,因为它们处理的信号是同一心脏活动的不同视角。如果每个导联都有独立的解码器,很多参数将是重复的,无法有效利用共享信息。

  • 计算效率低:多解码器的架构会使得训练和推理过程更加复杂,并且增加了对硬件资源的需求。

因此,使用导联共享解码器能够在减少冗余参数的同时,降低计算负担,并保持较高的模型表现。

1.3 提高模型的泛化能力

        使用导联共享解码器的方式,可以避免模型对单一导联的过拟合,特别是在数据较少或者数据存在噪声的情况下。不同导联间的信息共享有助于模型学习到更稳定和普适的特征,而不是仅仅依赖某一导联的局部特征。这对于提升模型在不同病人群体、不同实验环境中的泛化能力是非常有帮助的。

1.4 多导联特征的协同优化

        多个导联的信号通常具有互补性,它们可以为模型提供不同的视角。例如,有些导联可能在心脏病的诊断上表现得更敏感,而其他导联则可能有助于捕捉到某些心律失常的特征。共享解码器能够让模型同时学习这些不同导联的信号,并综合考虑它们之间的关系,从而获得更全面的特征表示

1.5 为什么不使用12个不同的解码器

        尽管为每个导联使用独立的解码器可能在某些情况下有其优势,尤其是在每个导联信号差异非常大的情况下,但这通常会面临以下问题:

  • 过拟合:每个导联的解码器独立学习时,可能会使得模型过拟合某些特定的导联模式,无法很好地概括不同导联之间的共享信息。

  • 计算资源需求:12个解码器会增加模型的训练时间和推理时间,尤其在处理大规模数据时,可能会变得非常低效。

  • 冗余特征:如果导联之间的信号相关性较高,使用12个解码器可能会导致过多冗余的特征学习,并未必能带来实际的性能提升。

总结:

        使用导联共享解码器的主要好处是信息共享、减少参数、提高计算效率、增强模型的泛化能力。每个导联的信号通常包含相似的时空信息,因此共享解码器能够有效地融合这些信息并减少冗余,优化模型表现。而使用12个不同的解码器虽然可以增加模型的灵活性,但通常会增加计算开销,且可能导致过拟合和参数冗余。因此,导联共享解码器通常是更为高效且合理的选择。

3、改进

整个导联都掩掉?


网站公告

今日签到

点亮在社区的每一天
去签到