1. 项目概述当睡眠分期遇上“不完美”数据作为一名长期关注医疗AI落地的从业者我深知将前沿算法从论文搬到临床所面临的巨大鸿沟。其中最棘手的问题之一就是现实世界数据的“不完美性”。在实验室里我们可以用清洗得干干净净、标注完美的数据集训练出性能惊人的模型但一到医院或家庭环境信号缺失、电极脱落、运动伪影、工频干扰等问题层出不穷模型性能往往断崖式下跌。睡眠分期这个旨在自动标注整夜睡眠中各个阶段清醒、快速眼动期REM、非快速眼动期N1、N2、N3的任务正是这一挑战的典型代表。传统的自动化睡眠分期研究几乎将全部赌注都压在了脑电图EEG这一单一模态上。EEG确实是反映大脑活动的金标准但当它“掉链子”时——比如半夜电极片松了导致信号全是噪声——整个系统就瘫痪了。这就像只依赖GPS导航一旦进入隧道或高楼区立刻迷失方向。实际上睡眠监测中我们通常还会采集眼电图EOG和肌电图EMG等信号它们从不同侧面反映了睡眠状态。如何让模型像经验丰富的睡眠技师一样在EEG信号不佳时能聪明地参考EOG等其它线索做出判断是提升系统临床可用性的关键。最近读到一篇来自IEEE TNSRE 2024的工作题为《CoRe-Sleep: A Multimodal Fusion Framework for Time Series Robust to Imperfect Modalities》。这篇论文提出的CoRe-Sleep框架直指上述痛点。它不是一个单纯追求在干净数据上刷高分的模型而是一个专门为处理“不完美多模态数据”设计的鲁棒性融合框架。简单来说它的目标是即使某个传感器信号部分缺失或充满噪声模型依然能利用其他可用的信息做出尽可能准确的判断。这对于推动睡眠分期乃至更多医疗时序数据分析任务的实用化具有非常重要的意义。本文将结合我自己的工程实践经验深入拆解CoRe-Sleep的设计思想、实现细节并探讨其背后的通用多模态融合逻辑。2. 核心思路拆解从“早期/晚期融合”到“协调表示”在深入CoRe-Sleep之前我们必须理解多模态融合的几个基本范式这决定了模型如何处理不同来源的信息。2.1 传统融合策略的局限早期融合Early Fusion这是最直观的方法在数据输入的最早期通常是特征提取后直接将不同模态的特征向量在通道维度进行拼接然后送入一个共享的神经网络进行处理。比如把EEG的频谱特征和EOG的频谱特征直接连在一起当作一个更宽的输入。它的优点是模型能最早地学习到模态间的交互关系。但缺点也很明显它对模态间的对齐要求高且当某个模态完全缺失时整个拼接后的输入向量就出现了“空洞”模型难以处理。这好比把面粉和鸡蛋早早和成一团如果鸡蛋坏了整团面都受影响。晚期融合Late Fusion另一个极端。为每个模态单独训练一个模型例如一个EEG分类器一个EOG分类器在决策层通常是softmax概率输出后再进行融合比如取平均或加权投票。这种方式对缺失模态非常友好缺了EEG就用EOG模型的结果。但它的致命伤在于各个模态的模型在训练过程中是独立的完全错过了在特征层面进行互补和协同学习的机会。就像两个专家各自看报告最后再一起讨论但过程中没有交流。中期/晚期融合Mid-Late Fusion一种折中方案。每个模态先经过自己独立的编码器称为单模态编码器提取高级特征然后在送入最终的分类器之前将这些单模态特征表示融合起来。这比晚期融合更早地进行了信息交互但又比早期融合保留了各模态的独立性。CoRe-Sleep以及许多现代多模态模型都属于这一范畴。2.2 CoRe-Sleep的创新协调表示与多任务驱动CoRe-Sleep在Mid-Late Fusion的基础上引入了两个核心创新点构成了其鲁棒性的基石1. 协调表示Coordinated Representation这是架构上的创新。CoRe-Sleep不是简单地将两个单模态特征向量相加或拼接。它为每个模态都设置了一个“多模态编码器”。这个多模态编码器的输入除了本模态的单模态特征还会接收来自另一个模态的单模态特征并通过跨模态注意力Cross-Attention机制进行交互。这里可以打个比方想象有两个侦探EEG编码器和EOG编码器在独立调查同一个案件睡眠阶段。他们各自写了一份报告单模态表示。然后他们不是简单地把报告合并而是坐在一起进行“交叉质询”跨模态注意力。EEG侦探会拿着EOG侦探的报告问“根据你看到的眼部运动线索我发现的这个脑电波慢波活动是否更可能发生在深睡期”这个过程会让每份最终的报告多模态表示都融入了另一方的视角从而更加全面和稳健。2. 多任务学习目标Multi-Task Objective这是训练策略上的创新。CoRe-Sleep在训练时同时优化三个损失函数多模态分类损失基于融合后的特征进行睡眠分期分类这是主任务。多监督损失Multi-Supervised Loss, MS强制要求每个单模态编码器自己的输出也要能单独进行准确的分类。这确保了每个模态的编码器都是“专家”即使在没有其他模态帮助的情况下也能独当一面。这是应对模态缺失的关键。对齐损失Alignment Loss, AL这是一个自监督任务。由于EEG和EOG信号是同步采集的理论上同一时刻的窗口应该对应同一个睡眠阶段。AL损失要求模型能够判断来自两个模态的哪两个30秒窗口是时间上对齐的即属于同一时刻。这鼓励模型学习到两种信号在时间上的对应关系增强了模态间表示的协调性。这种“主任务单模态辅助任务模态关系任务”的三重监督使得模型既学会了融合协作又保证了各模态自身的判别能力同时还让它们之间的表示在语义上对齐。这正是其强大鲁棒性的来源。3. 架构与实现深度解析理解了核心思想我们来看看CoRe-Sleep具体是怎么搭建的。整个模型可以看作是由Transformer编码器模块像乐高一样精心组合而成的。3.1 骨干网络Inner-Outer Transformer 编码器CoRe-Sleep的基石是一个遵循“内-外”Inner-Outer框架的Transformer编码器这个设计在之前的SleepTransformer和XSleepNet等工作中被证明对睡眠分期非常有效。它巧妙地处理了睡眠数据的两级时序结构内层序列Inner Sequence一个30秒的睡眠片段epoch被进一步用短时傅里叶变换STFT切成许多个2秒、重叠1秒的小窗每个小窗得到一个128维的频谱特征。这29个小窗特征构成了一个内层序列。内层Transformer块的目标是理解这30秒内部的频谱动态变化。外层序列Outer Sequence睡眠阶段具有连续性当前阶段与前后阶段密切相关。因此模型会一次性处理连续多个30秒窗口论文中为21个即10.5分钟。每个窗口经过内层Transformer处理后会通过一个可学习的[CLS]标记聚合为一个代表该窗口的向量。这21个窗口向量就构成了外层序列。外层Transformer块的目标是捕捉窗口之间的过渡与依赖关系。这种设计让模型既能分析微观的频谱模式又能把握宏观的睡眠阶段转换规律非常符合睡眠分期的生理特点。3.2 单模态与多模态编码器的协同CoRe-Sleep为EEG和EOG两个模态分别配置了结构相同的单模态编码器每个都是上述的8层Inner-Outer Transformer。单模态编码器只处理自己模态的数据产出该模态的“单模态表示”。这个表示已经包含了从原始信号中提炼出的、用于睡眠分期的关键信息。多模态编码器这是实现“协调表示”的关键模块。每个模态如EEG对应一个多模态编码器。该编码器的输入不是原始数据而是两个部分本模态EEG的单模态表示。另一模态EOG的单模态表示通过跨模态注意力引入。具体来说在每一层Transformer的自注意力Self-Attention和前馈网络Feed-Forward之间插入了一个跨模态注意力层。EEG的多模态编码器会以EOG的单模态表示为“键”Key和“值”Value以自身的表示作为“查询”Query进行计算。这样EEG在构建自己的多模态表示时会主动去“询问”EOG的信息中哪些与当前判断相关。最终EEG和EOG的多模态表示会被加和得到融合后的表示用于最终的多模态分类预测。同时两个单模态编码器的输出也各自连接一个分类器用于计算多监督损失。3.3 训练技巧与参数设置论文中的实现细节对于复现和调优至关重要优化器与调度使用Adam优化器学习率1e-4权重衰减1e-4。采用余弦退火学习率调度并设置了2万步的预热期这对于Transformer模型的稳定训练非常有益。正则化广泛使用了Dropout概率0.3来防止过拟合这在模型参数量较大时是标准操作。位置编码采用了可学习的相对位置编码而非Transformer原版的绝对正弦编码。相对位置编码让模型更灵活地学习序列元素间的相对距离关系对于变长序列或重点关系建模往往效果更好。权重共享一个精妙的设计是单模态编码器和多模态编码器中的自注意力层和前馈网络层是共享权重的。这意味着模型并不是为多模态交互额外开辟一套全新的参数而是让同一套特征提取机制学会同时服务于“自我审视”和“交叉参考”两种模式大大提升了参数效率也促进了表示的一致性。实操心得在多模态模型中如何设置损失函数的权重如多监督损失MS和对齐损失AL相对于主损失的权重是一个需要仔细调校的超参数。论文中提到对齐损失有一个缩放参数λA0.1并指出模型性能对其小范围变化不敏感。在实际项目中我建议可以将其作为一个搜索项在验证集上尝试0.05, 0.1, 0.2等值。核心原则是辅助损失不能喧宾夺主干扰主分类任务的学习。4. 鲁棒性实验的启示如何应对真实世界的数据挑战论文通过一系列精心设计的实验系统地验证了CoRe-Sleep在三种“不完美”场景下的能力。这些实验设计思路本身就为我们评估医疗AI模型的实用性提供了范本。4.1 场景一模态缺失推理这是最直接的测试训练时使用EEGEOG双模态数据但测试时只给模型提供EEG或只提供EOG。这模拟了临床中某个传感器完全失效的情况。结果与洞察CoRe-Sleep在单模态测试下性能显著超过了仅用该单模态数据训练的专用模型。例如用EEGEOG训练好的CoRe-Sleep只用EEG测试比只用EEG数据从头训练的模型效果更好。这证明了多模态训练对单模态推理有正向迁移作用。即使在测试时看不到EOG但因为在训练中“见识过”并学会了与EOG协调EEG编码器自身的能力也得到了增强。这打破了“用什么模态测试就用什么模态训练”的惯性思维为利用丰富但可能不完整的多模态数据库提供了依据。4.2 场景二模态噪声干扰现实中的数据常常是带有噪声的而非完全缺失。论文从SHHS-1数据集中筛选出了一部分患者他们有一段较长时间40%记录的EEG或EOG信号噪声水平很高通过标准差阈值判断。结果与洞察如图3所示当EEG信号在后半段发生严重退化时仅基于EEG的模型预测完全混乱持续预测为“清醒”而CoRe-Sleep的多模态预测则保持了稳定其预测曲线与单模态EOG模型的预测高度一致。这生动地展示了跨模态注意力的价值当EEG信号不可信时模型能通过注意力机制自动降低对EEG信息的依赖更多地倚重仍然干净的EOG信息从而维持了系统的整体性能。这种动态的、数据驱动的信息权重分配比简单的硬性规则或后处理要优雅和强大得多。4.3 场景三用不完整数据训练这是最具实用价值的探索。现实中我们可能有一个包含双模态数据的小核心数据集但同时拥有大量仅包含EEG或仅包含EOG的“残缺”数据。能否利用起这些不完整的数据来提升模型性能论文设计了一个渐进式实验先用100个双模态患者数据训练一个CoRe-Sleep基础模型然后逐步加入仅包含单模态的数据进行继续训练。对于这些单模态数据只计算其对应模态的单模态分类损失MS Loss的一部分。结果与洞察平衡增益当加入的EEG单模态数据量和EOG单模态数据量大致相当时图4a模型在EEG、EOG和融合模态上的性能全部得到提升。这说明平衡地利用异构数据源能普惠所有任务。模态偏差如果大量加入只有EEG的数据图4bEEG单模态预测性能提升但EOG单模态预测性能会下降。反之亦然图4c。这是因为训练数据分布发生了倾斜模型整体会更偏向于数据量大的那个模态。实用指南这个实验给出了一个非常重要的工程指导在利用不完整多模态数据时应尽可能保持各模态数据量的平衡。如果无法平衡则需要意识到可能会对数据量少的模态的性能造成损害并在模型部署时考虑这一点。5. 工程复现与拓展思考对于想要复现或借鉴CoRe-Sleep思路的工程师和研究者以下是一些关键点和拓展方向。5.1 复现关键步骤与潜在陷阱数据预处理流水线SHHS数据集是公开的但预处理步骤需严格遵循论文重采样至100HzEEG带通滤波[0.3, 40] HzEOG滤波[0.3, 23] HzSTFT参数2秒窗1秒重叠256点汉明窗。窗口划分和标签分配多数投票的细节必须一致这是结果可复现的基础。跨模态注意力的实现这是模型的核心。在PyTorch中可以利用nn.MultiheadAttention模块来实现。需要注意的是在计算交叉注意力时query来自当前模态的多模态编码器上一层的输出而key和value来自另一个模态的单模态编码器对应层的输出。确保张量维度对齐batch_size, sequence_length, feature_dim。多任务损失平衡三个损失函数多模态CE、多监督CE、对齐损失直接相加。对齐损失由于是针对序列匹配的二分类任务其数值尺度可能与分类损失不同因此论文引入了缩放因子λA。在复现时监控每个损失项在训练初期的量级必要时进行调整确保优化方向不被某一项损失主导。计算资源考量由于包含多个Transformer编码器两个单模态两个多模态且处理长序列21*29个时间步模型参数量和计算量较大。论文使用单GPU训练batch size为16。在实际操作时可能需要根据显存调整batch size或使用梯度累积。5.2 常见问题与排查问题模型收敛慢或性能不稳定。排查首先检查学习率预热Warm-up是否实现。Transformer模型对初始学习率敏感没有预热容易训练不稳定。其次检查对齐损失是否过大如果λA设置过高可能会干扰主分类任务的学习。可以尝试在训练初期暂时关闭对齐损失待分类损失下降后再加入。问题单模态性能提升不明显甚至低于单独训练的模型。排查检查多监督损失的梯度是否正常回传到单模态编码器。有时在复杂的多分支网络中梯度流可能被意外阻断。使用深度学习框架的梯度检查工具如PyTorch的torch.autograd.grad或可视化工具如TensorBoard来确认。同时检查单模态分类器的参数是否被正确初始化并参与更新。问题在自有数据上模态缺失下的性能下降依然严重。排查CoRe-Sleep的鲁棒性依赖于训练数据中蕴含的模态间互补关系。如果自有数据中两个模态的相关性很弱或者噪声模式在训练集中未充分体现那么模型的鲁棒性就无法被激发。可以考虑在训练数据中主动模拟噪声或随机丢弃模态进行数据增强以强制模型学习应对策略。5.3 拓展与应用展望CoRe-Sleep的框架具有很强的通用性不局限于睡眠分期或EEG/EOG模态。更多模态的融合框架可以自然地扩展到两个以上的模态。只需为每个新增模态增加对应的单模态编码器并在多模态编码器层中设计所有模态间的两两交叉注意力或者更高效的多头交叉注意力机制。其他医疗时序分析同样的思路可以应用于癫痫检测融合EEG ECG 肌张力、情感计算融合脑电、心电、皮电、表情等任何涉及多通道生理信号的任务。关键在于设计好不同模态信号的对齐方式和特征提取骨干网络不一定是Transformer也可以是CNN、RNN等。处理异步或不同采样率的模态论文中EEG和EOG被重采样到相同频率。对于采样率差异巨大或根本不同步的模态如视频与音频需要在融合前进行时间对齐或设计能够处理异步序列的融合模块如基于记忆的融合、动态时间规整等。从“鲁棒性”到“可解释性”跨模态注意力权重本身可以作为一种解释工具。我们可以可视化在做出某个特定睡眠阶段判断时模型更关注EEG的哪些频段特征同时又参考了EOG的哪些特征。这对于建立临床医生对AI模型的信任至关重要。在我个人看来CoRe-Sleep这类工作的价值远不止于在某个数据集上提升几个百分点的准确率。它代表了一种研究范式的转变从追求在理想实验室环境下的“巅峰性能”转向致力于在复杂、嘈杂、不完美的真实世界中保持“稳定可靠”。这对于AI真正融入临床工作流成为医生值得信赖的助手是必不可少的一步。其“协调表示”与“多任务驱动”的核心思想也为处理其他领域的不完整多源数据提供了宝贵的借鉴。