《Deep Multimodal Learning with Missing Modality: A Survey》中文校对版

news2024/11/28 3:17:08

文章汉化系列目录


文章目录

  • 文章汉化系列目录
  • 摘要
  • 1 引言
  • 2 方法论分类:概述
    • 2.1 数据处理方面
    • 2.2 策略设计方面
  • 3 数据处理方面的方法
    • 3.1 模态填充
      • 3.1.1 模态组合方法
      • 3.1.2 模态生成方法
    • 3.2 面向表示的模型
      • 3.2.1 协调表示方法
      • 3.2.2 表示组合方法。
      • 3.2.3 表示生成方法。
  • 4 方法论在策略设计方面
    • 4.1 架构聚焦模型
      • 4.1.1 基于注意力的方法
      • 4.1.2 基于蒸馏的方法。
      • 4.1.3 基于图学习的方法。
      • 4.1.4 多模态大型语言模型(LLM)
    • 4.2 模型组合
      • 4.2.1 集成方法
      • 4.2.2 专用训练方法
      • 4.2.3 离散调度方法
  • 5 方法学讨论
    • 5.1 数据处理方面
    • 5.2 策略设计方面
    • 5.3 恢复与非恢复方法及一些统计数据
  • 6 应用与数据集
    • 6.1 情感分析
    • 6.2 医学诊断
    • 6.3 信息检索
    • 6.4 遥感
    • 6.5 机器人视觉
  • 7 开放问题与未来研究方向
    • 7.1 精确的缺失模态/表示数据生成
    • 7.2 恢复还是不恢复?
    • 7.3 缺失模态问题的基准测试与评估
    • 7.4 方法效率
    • 7.5 缺失模态的多模态流数据
    • 7.6 缺失模态的多模态强化学习
    • 7.7 面向自然科学的缺失模态多模态AI
  • 8 结论


摘要

 这段文字讨论了在多模态模型训练和测试过程中,由于传感器限制、成本约束、隐私问题或数据丢失,某些数据模态可能会缺失,这会对模型性能产生负面影响。为了解决这一问题,专门设计的多模态学习技术可以处理缺失模态,从而保证即使某些模态不可用时,模型仍能保持鲁棒性。这篇综述回顾了多模态学习中的缺失模态问题(Multimodal Learning with Missing Modality, MLMM)的最新进展,重点介绍了深度学习方法。它提供了第一篇全面的综述,涵盖了MLMM与标准多模态学习设置之间的动机和区别,随后详细分析了当前的方法、应用和数据集,并总结了挑战和未来的发展方向。
 缺少模态的深度多模态学习:CCS概念综述:·计算方法→人工智能;机器学习;计算机视觉;自然语言处理。
 附加关键词和短语:多模态学习,深度学习,表征学习,多模态融合,音频信号处理,多媒体,模态缺失,不完美模态,不完整模态

1 引言

 多模态学习已成为人工智能(AI)领域中的一个关键方向。它专注于联合分析多种数据模态,包括视觉、文本、听觉和传感器信息。这种方法类似于人类将多种感官信息结合起来,以更好地理解和与环境互动的能力。现代多模态模型利用深度学习的强大泛化能力,揭示了单模态系统可能无法检测到的复杂模式和关系。这一能力正在推动多个领域的研究进展 [8, 56, 156]。近期的多模态学习综述突显了多模态方法的显著影响,展示了其提升性能的能力,并使更复杂的AI应用成为可能 [6, 216]。
 然而,现实世界中的多模态系统经常面临必须处理某些数据模态缺失或不完整的挑战。这种情况的发生原因多种多样,如传感器故障、硬件限制、隐私问题、环境干扰以及数据传输问题。近年来,越来越多的研究者对这一领域表现出浓厚的兴趣,这一点可以从图1a中的条形图中看出。如图1b所示,在一个三模态的场景中,数据样本可以分为全模态(包含所有三种模态的信息)或缺失模态(缺少一种或多种模态的数据)。这些问题可能在从数据采集到部署的任何阶段出现,显著影响模型性能。例如,早期的情感计算研究者[29, 144]发现,在采集面部和音频数据时,由于麦克风噪音过大或摄像头被遮挡,某些图像或音频样本变得无效。这迫使他们提出了能够处理缺失模态的视听模型,用以识别人的情感状态。在医疗AI领域,隐私问题以及在手术或侵入性治疗过程中获取某些数据模态的困难,常常导致多模态数据集中的模态缺失[214]。类似地,在太空探索中,NASA的“灵巧号”火星直升机[34]在因火星极端温度变化导致其倾斜仪故障时,也面临了缺失模态的挑战。为了解决这一问题,NASA应用了一个软件补丁,修改了导航算法的初始化过程[163]。此外,不同版本或品牌设备传感器的固有结构或定量异质性也可能导致可用模态的差异。这要求模型能够处理在实际应用中具有不同类型模态的输入。现实世界场景的不可预测性和数据源的多样性进一步加剧了这一挑战。因此,开发能够在缺失模态的情况下有效执行的稳健多模态系统,已成为该领域的一个关键研究方向。
在这里插入图片描述

Fig. 1.(a)近10年来关于模态缺失的深度多模态学习论文的趋势。随着时间的推移,出版物的数量不断增加,并受到社会各界的广泛关注。(b)具有完整和缺失模态样本的三模态场景的描述。在本文的所有图中,我们将“模态”缩写为“Mod”,并使用褪色的虚线框表示缺失的模态/模块。

 当数据集中存在一些缺失模态样本时,删除缺失模态样本是一种常见且简单的多模态数据预处理策略。然而,这种方法会浪费缺失模态样本中包含的有价值信息,并且无法帮助模型在测试时处理缺失模态样本,因为它只能作为训练中的“临时”解决方案。这促使许多研究者提出了许多针对缺失模态样本的多模态学习方法。在本综述中,我们将处理多模态学习中缺失模态的挑战称为“缺失模态问题”(missing modality problem)。我们将解决这一问题的方法称为“缺失模态的多模态学习”(MLMM)。这些方法与传统的使用完整模态集的设置相对立,我们将其称为“完整模态的多模态学习”(MLFM)。具体来说,在MLFM任务中,给定一个N模态的数据集,通常需要训练和测试一个能够处理和融合所有N个模态进行决策的模型。与此不同,MLMM任务由于数据采集的限制或部署环境的约束,在训练或测试过程中可能会使用少于N个模态。MLMM的主要挑战在于如何在训练和测试过程中动态且稳健地处理和融合来自任何数量可用模态的信息,同时保持与使用完整模态样本时相当的性能。
 本综述涵盖了缺失模态多模态学习(MLMM)领域的最新进展及其在多个领域中的应用,包括信息检索 [112]、遥感 [184]、机器人视觉 [42]、医学诊断 [5, 145, 225]、情感分析 [171] 和多视角聚类 [17]。我们还介绍了一个细粒度的MLMM方法、应用场景及对应数据集的分类法。本文的主要贡献包括:
(1) 对MLMM方法在不同领域的全面综述,并附有相关数据集的广泛汇编,突出了MLMM在解决现实世界挑战中的多样性。
(2) 提出了一种新的细粒度MLMM方法学分类法,基于多模态集成阶段和缺失模态恢复策略的多维分类框架。
(3) 对当前MLMM方法、其面临的挑战以及未来研究方向进行了深入分析,并结合提出的分类框架进行背景说明。

论文收集:在我们的文献检索方法中,主要通过Google Scholar以及人工智能、机器学习、计算机视觉、自然语言处理、音频信号处理、数据挖掘、多媒体、医学影像和遥感领域的主要会议和期刊收集论文。收集的论文来源于但不限于顶级会议(例如:AAAI、IJCAI、NeurIPS、ICLR、ICML、CVPR、ICCV、ECCV、ACL、EMNLP、KDD、ACM MM、MICCAI、ICASSP)和期刊(例如:TPAMI、TIP、TMI、TMM、JMLR)。有关这些会议和期刊的完整名称,请参阅附录A中的补充材料。我们共收集了2012年至2024年10月期间的315篇重要论文。我们的检索策略涉及使用“incomplete”(不完整)、“missing”(缺失)、“partial”(部分)、“absent”(缺席)和“imperfect”(不完美)等关键词,结合“multimodal learning”(多模态学习)、“deep learning”(深度学习)、“representation learning”(表征学习)、“multi-view learning”(多视角学习)和“neural networks”(神经网络)等术语。

调查组织: 首先,我们在第1节中解释了本次调查的背景和动机。在第2节中,我们介绍了我们的分类法,并从方法论的角度对现有的深度多模态缺失模式学习(MLMM)方法进行了分类,详细描述了其两个方面和四种类型(见图2)。接下来的第3节和第4节分别从模型数据处理和策略设计的角度介绍了各种方法。然后,在第6节中,我们总结了当前的应用场景及其相应的使用数据集。在第7节中,我们讨论了尚未解决的挑战和未来的研究方向。最后,我们在第8节中给出了关于深度MLMM探索的结论。

在这里插入图片描述

图2。我们的分类学的深度多模态学习与缺失模态的方法。我们将现有的方法分为两个方面:数据处理和策略设计。数据处理:我们区分了模态插补(在模态数据水平上处理)和以表示为中心的模型(在数据表示水平上处理)。战略设计:我们区分了以架构为中心的模型(模型架构调整)和模型组合(外部组合多个模型)。“MLLM”:多模态大型语言模型。

2 方法论分类:概述

我们从两个关键方面回顾了当前的深度多模态缺失模式学习(MLMM)方法:数据处理和策略设计。

2.1 数据处理方面

专注于探索模型数据处理方面的方法可以根据缺失模态处理发生的层级划分为“模态填充”和“基于表示的模型”,分别对应在模态数据层级或数据表示层级进行缺失模态处理。

(1) 模态填充:该方法操作在模态数据层级,通过合成[14, 26, 130, 158, 196, 196](模态合成方法)或生成[3, 22, 111, 166, 181, 213]缺失的模态(模态生成方法)来填补缺失的信息。这些方法的核心思想是,如果能够准确地填补缺失的模态,那么下游任务就可以继续进行,就像“完整”模态可用一样。

(2) 基于表示的模型:这些模型旨在在表示层级上解决缺失模态的问题。在一些情况下,协调表示方法[90, 109, 176]会对不同模态的表示施加特定的约束,帮助对不同模态在语义空间中的表示进行对齐,从而使得即使面对缺失的模态,模型仍然能够有效训练。其他基于表示的方法则是通过使用现有数据生成缺失模态的表示[53, 88, 111, 129, 218],或者通过结合现有模态的表示[32, 158, 215, 220, 222, 224]来填补空缺。

2.2 策略设计方面

探索策略设计方面的方法基于那些能够通过灵活调整模型架构(内部模型架构调整)和多模型组合(外部模型组合),在训练和测试过程中动态适应不同缺失模态情况的模型。我们将这些方法命名为架构聚焦模型模型组合

(1) 架构聚焦模型:通过设计灵活的模型架构来处理缺失模态,这些架构能够适应训练或推理过程中可用模态的数量变化。这里的一个关键技术是基于注意力机制[36, 38, 61, 123, 135, 136, 198],它动态调整模态的融合和处理,使模型能够处理任意数量的输入模态。另一种方法是基于知识蒸馏[23, 142, 150, 172, 178, 179, 214],模型通过从完整模态模型向处理不完全数据的模型传递知识,或者在模型内部的不同分支之间进行蒸馏,从而适应缺失的模态。此外,基于图学习的方法[89, 112, 208, 217]利用模态之间的自然关系,使用图形动态地融合和处理可用的模态,同时弥补缺失的模态。最后,MLLMs(多模态长序列模型)[78, 189, 207]也在这一类别中发挥着重要作用,因为它们能够处理长时序的上下文并作为特征处理器,能够接受并处理来自任意数量模态的表示。这些架构策略共同使得模型能够在处理不完整的多模态输入时,保持良好的性能。

(2) 模型组合:通过采用利用多个模型或专门训练技术的策略来解决缺失模态问题。一种方法是使用针对不同模态情况的专用训练策略[24, 193, 206],确保每种情况都经过优化训练以获得最佳性能。另一种方法涉及集成方法[55, 76, 183],即将基于部分/完整模态集训练的模型进行组合,使得系统能够根据可用的模态选择最合适的模型进行联合预测。此外,离散调度器方法[148, 159, 188]可以整合各种下游模块,灵活处理任意数量的模态,并执行特定任务。这些调度器智能地选择并组合多个模型或模块的输出,以管理缺失模态的场景,为多模态任务提供一种多功能的解决方案。

我们的分类法(图2)能够反映多模态学习的不同方面和层次——从模态数据到数据表示、架构设计到模型组合——每个方面都为基于任务需求和可用资源解决缺失模态问题提供了不同的途径。

3 数据处理方面的方法

3.1 模态填充

 模态填充是MLMM方法中用于处理缺失模态样本的技术,通过对现有模态进行各种转换或操作,填充缺失模态或生成缺失的模态,从而完成包含缺失模态的完整数据集。解决缺失模态问题的模态填充方法可以分为两类:(1) 模态组合方法:使用零值/随机值或从相似实例复制的数据作为缺失模态数据的输入。通过这些方法生成的代表缺失数据的数据,随后与可用模态的数据组合,形成“完整”的模态样本。(2) 模态生成方法:使用生成模型(如自编码器[51]、生成对抗网络(GANs)[39]或扩散模型[52])生成缺失模态数据。生成的数据与可用模态的数据组合,形成“完整”的模态样本。我们将在下一个小节中详细介绍这两种方法。

3.1.1 模态组合方法

 模态组合方法因其简单有效且能够保持原始数据集大小而被广泛采用。零值/随机值组合方法是一种模态组合方法,它通过将缺失模态替换为零值或随机值,如图3所示。在最近的研究中[26, 99, 112, 158],这些方法常作为与其他更复杂方法进行比较的基准方法。在处理缺失序列数据问题时,如视频中的缺失帧,提出了类似的帧零方法[130],该方法用零值替换缺失的帧。这些方法在典型的多模态学习过程中非常常见,并且可以用于平衡和整合来自不同模态的信息,从而进行预测。这种方法可以防止模型对每个样本中可用的主导模态产生过度依赖,通过鼓励更平衡地整合所有可用模态的信息,增强了模型的鲁棒性。
在这里插入图片描述

图3. 零值/随机值组合方法 假设模态2缺失,则该模态将被零值或随机值替代。本文调查中的所有图示中,“DNN”表示不同类型的深度神经网络。

基于检索的表示组合方法 (图4) 代表了另一种模态组合方法,该方法通过复制或平均与缺失模态相同类别的样本数据来替换缺失的模态数据。其他一些方法通过随机选择具有相同分类和所需缺失模态的样本,从其他样本中选择模态数据,然后将其与缺失模态样本组合,以形成完整模态样本进行训练。然而,这些基于检索的模态组合方法不适用于像分割这样的像素级任务,仅适用于简单任务(如分类),因为如果组合了不匹配的样本,可能会导致噪声数据的过拟合。例如,Yang等人[196]提出了Modal-mixup方法,通过随机补充缺失模态的同类别样本来完善训练数据集。然而,这种方法无法解决测试阶段的缺失模态问题,因为它依赖于已知的训练数据标签。在一些多模态流数据分类任务中,如视听表达识别,视频流可能会由于网络通信数据包丢失等原因发生帧丢失,Frame-Repeat[130]方法提出通过使用过去的帧来弥补缺失的帧。
在这里插入图片描述

 其他方法 [14, 196] 也使用了 K-最近邻 (KNN) 或其变体来检索与缺失模态最匹配的样本进行组合。对于这些匹配的样本,它们选择得分最高的样本,或获得这些样本的平均值来补充缺失的模态数据。实验表明,基于 KNN 的方法通常比上述方法表现更好,并且能够在测试过程中处理缺失模态。然而,这些基于 KNN 检索的模态组合方法通常面临较高的计算复杂性、对不平衡数据的敏感性以及显著的内存开销等问题。
 上述所有方法都可以完成缺失模态的数据集,但它们会降低数据集的多样性,因为可能会引入重复的训练样本。对于具有较高模态缺失率的数据集来说,这尤其成问题,因为在大多数样本都缺失模态数据的情况下,如果通过重复的样本填充缺失模态数据,将增加对某些类的过拟合风险,尤其是对于那些只有少量完整模态样本的类。

3.1.2 模态生成方法

随着深度学习的进展,利用强大的表示学习和生成模型捕捉复杂的跨模态关系,生成缺失模态的数据变得更加有效。当前的缺失模态数据生成方法分为个体生成方法和统一生成方法。
在这里插入图片描述

图 5. 描述了两种典型的模态生成方法。我们设定模态 2 为缺失的模态,并使用其他可用的模态来生成模态 2。图中的“GEN”代表模态生成网络。 (a) 我们为模态 2 设置了一个生成器(GEN-2),它从其他模态中生成模态 2。 (b) 所有模态都被输入,并通过一个单一的生成器(GEN)共同生成所有模态。

这两种方法展示了如何通过不同的生成策略处理缺失模态问题,方法 (a) 是为每个模态单独训练生成器,而方法 (b) 则采用统一生成器来生成所有缺失模态。

个体模态生成方法:为每种模态训练一个独立的生成模型,以便在任何模态缺失的情况下生成缺失模态,如图5a所示。早期的研究使用了高斯过程[114]或玻尔兹曼机[153]来从可用数据中生成缺失模态。随着深度学习的发展,像自编码器(AEs)[51]这样的模型也可以用于生成缺失模态数据。Li等人[83]使用3D卷积神经网络(3D-CNN)根据磁共振成像(MRI)输入生成正电子发射断层扫描(PET)数据。Chen等人[22]通过训练U-Net模型生成MRI中的其他两种模态,以解决MRI分割中的缺失模态问题。最近的一项研究[111]使用自编码器作为基准之一,通过为每种模态训练一个自编码器来完成数据集。 在领域适应中,Zhang等人[212]提出了一种基于U-Net的多模态数据生成模块,通过领域对抗学习生成每个缺失的模态,通过学习领域不变的特征来完成模态生成。
 生成对抗网络(GANs)显著提高了图像生成质量,通过使用生成器生成逼真的数据,判别器则用于区分生成数据与真实数据。因此,研究者开始用GANs替代之前的模型来生成缺失模态数据。例如,在乳腺癌预测中,GANs通过利用现有模态的潜在表示生成缺失的模态[3]。在遥感领域,Bischke等人[9]使用GANs生成深度数据,从而提高了RGB-only模型的分割性能。在机器人物体识别模型中,GANs也被用于帮助生成缺失的RGB和深度图像[42]。最近的研究[111]表明,GANs在生成更为逼真的缺失模态方面优于自编码器(AEs),并且能够提升下游任务模型的性能。随着扩散模型(Diffusion models)的引入,图像生成质量得到了进一步的提升。Wang等人提出了IMDer方法[181],该方法将现有模态作为条件,利用扩散模型生成缺失模态。实验表明,IMDer方法能够减少恢复模态与缺失模态之间的语义模糊,且在泛化性能上优于之前的工作。
统一原始数据生成方法训练一个统一的模型来同时生成所有模态,如图5b所示。一个具有代表性的模型是Cascade AE[166],该模型堆叠自编码器(AEs)以捕捉缺失模态和现有模态之间的差异,从而生成所有缺失模态。最近,Zhang等人[213]尝试使用注意力机制和最大池化(max-pooling)来整合现有模态的特征,使得特定模态的解码器能够接收可用的模态并生成其他缺失的模态。实验表明,与仅使用最大池化方法[19]从任意数量的模态中整合特征相比,这种方法更为有效。以上生成缺失模态的方法可以在一定程度上缓解性能下降的问题。然而,当面临某一模态严重缺失的场景时,训练一个能够生成高质量缺失模态的生成器仍然具有挑战性。此外,模态生成模型显著增加了存储和计算的要求。随着模态数量的增加,这些生成模型的复杂度也随之增加,进一步增加了训练过程和资源需求的难度。

3.2 面向表示的模型

 面向表示的模型从表示层面解决缺失模态问题。我们通过首先介绍两种基于协调表示的方法来引入这些模型,这些方法通过施加特定的约束来增强更具辨别力和鲁棒性的表示学习(图6)。接下来,我们讨论的另一类面向表示的方法是表示填充方法,这些方法可以分为表示组合表示生成方法。表示组合方法可以借鉴第3.1.1节中描述的解决方案,并在模态的表示层面进行操作,或者通过算术运算(例如池化)来融合动态数量的模态。最后,我们介绍表示生成方法,这些方法通常使用小型生成模型来生成缺失模态的表示。
在这里插入图片描述

3.2.1 协调表示方法

 协调表示方法旨在通过在不同模态的表示之间引入特定的约束,使得学习到的表示在语义上保持一致。这些方法通常分为两类:一种基于正则化,另一种则由相关性驱动。正则化的一个例子是张量秩正则化(TRR) [90]。TRR通过对不同模态的张量进行外积运算,并对所有外积结果求和来实现多模态融合。为了解决时间序列中由于模态不完美(如缺失或噪声)导致的多模态表示张量秩过高的问题,Paul等人引入了张量秩最小化的方法,试图保持多模态表示的低秩,以更好地表达多模态数据中真实相关性和潜在结构的张量,从而缓解输入数据的不完美问题。
 有些方法通过协调不同模态特征之间的相关性来训练模型。例如,Wang等人 [176] 使用深度典型相关分析(Deep Canonical Correlation Analysis,CCA)模块,通过典型相关系数(Canonical Correlation Coefficient)最大化可用模态特征的关联性,从而实现对不完整数据集的训练。Ma等人 [109] 提出了一个最大似然函数,用于在训练过程中描述完整模态和缺失模态样本的条件分布。其他研究工作 [104] 基于Hilbert-Schmidt独立性准则(HSIC)添加约束,帮助模型通过强制无关特征之间的独立性,同时最大化相关特征之间的依赖关系,从而学习如何完成缺失模态特征。这些方法 [80, 108, 117] 帮助模型通过学习特征之间的相似性或相关性来完成缺失模态特征,或在不完整数据集上进行训练。然而,这些方法的一个缺点是,它们仅在使用两种或三种模态作为输入时表现良好 [216]。即使在具有缺失模态的数据集上进行训练,一些方法在测试过程中仍然难以有效地解决缺失模态问题。

3.2.2 表示组合方法。

表示组合方法有两种类型,具体解释如下。
基于检索的表示组合方法尝试通过从现有样本中检索模态数据来恢复缺失的模态表示,类似于第3.1.1节中的模态组合方法。它们通常使用预训练的特征提取器从可用样本中生成特征,并将这些特征存储在特征池中 [158, 222]。然后,使用余弦相似度来检索与输入样本匹配的特征,通过在前K个样本中取这些缺失模态特征的平均值来填充缺失模态的表示。此外,一些方法,如缺失模态特征生成 [174],通过对可用模态的表示进行平均来替代缺失模态特征,假设不同模态之间具有相似的特征分布。基于算术操作的表示组合方法可以通过算术操作(如池化)灵活地融合任意数量的模态表示,这些操作没有可学习的参数(图7)。研究人员[174, 224]通过诸如平均池化/最大池化或加法等操作融合特征,提供了低计算复杂度和高效率。然而,缺点包括可能会丢失重要信息。为了解决这个问题,合并操作[32]使用了符号最大值函数,该函数从特征向量中选择最高的绝对值,从而通过保留正负激活值来获得更好的结果。TMFormer[215]引入了基于余弦相似度的令牌合并。类似的方法[220]专注于选择关键向量或合并令牌,以处理缺失的模态。
在这里插入图片描述

图7. 基于算术运算的表示组合方法的一般思路。任何数量模态的表示可以通过算术运算组合成一个固定维度,该维度与后续DNN层所需的维度相同。

 因此,这些表示组合方法不仅允许模型灵活地处理来自任意数量模态的特征,还能够在不引入新的可学习参数的情况下进行学习。然而,它们在通过学习捕捉模态之间的关系方面表现不佳,因为像选择最大向量或具有最高分数的特征这样的操作,难以完全代表所有模态的特征。

3.2.3 表示生成方法。

 与第3.1.2节中的模态生成方法相比,表示生成方法可以无缝集成到现有的多模态框架中。目前的方法分为两类:(1)间接任务表示生成方法(图8a)将模态重建作为训练过程中的辅助任务,帮助模型在下游任务中内在地生成缺失模态的表示。由于辅助任务在训练过程中有助于表示生成,但在下游任务的推理阶段被丢弃,因此称为“间接任务”。(2)直接任务表示生成方法(图8b)训练一个小型生成模型,将现有模态表示直接映射到缺失模态。我们将在下面提供有关这两类方法的更多细节。
在这里插入图片描述

图8. 两种典型的表示生成方法的描述。我们假设模态2是缺失的。(a)间接到任务的表示生成方法通过两个任务的损失进行监督,即:辅助重建任务和下游任务。需要注意的是,这两个任务有时可以分开训练,先训练重建任务,丢弃生成器,然后训练下游任务,例如ActionMAE [186]的训练过程。(b)直接到任务的表示生成方法在训练和推理过程中直接使用模态生成网络(图中的“GEN-2”)生成缺失模态2的表示,而不需要重建模态2。

 间接任务表示生成方法可以间接地生成缺失模态的表示,并且通常采用“编码器-解码器”架构。在训练过程中,模态特定的编码器从可用的模态中提取特征,重建解码器重建缺失的模态,下游模块通过下游任务损失进行预测监督。这些重建解码器在推理阶段会被丢弃,在推理过程中,预测依赖于生成的缺失模态表示和现有模态的表示。这种方法通常采用多任务学习,同时训练下游任务和辅助任务(模态重建)。一些方法受到掩蔽自编码器(Masked Autoencoder)[47]的启发,将重建和下游任务训练拆分开来。通常,在这类方法的训练过程中,可用模态的特征通常会被输入到下游任务模块和不同模态的重建解码器中,经过融合后再进行处理。然而,也有一些方法将不同模态编码器的输出分别输入到各自的重建解码器中。根据这一区分,我们将这类方法分为融合前方法和融合后方法。
 融合前方法直接将来自模态特定编码器的特征输入到各自的重建解码器中,用于重建缺失的模态。例如,MGP-VAE [46] 将每个模态的VAE编码器输出作为输入,传递到每个重建解码器,并将融合后的输出用于高斯过程预测。类似地,PFNet [218] 使用RGB和热红外模态进行行人重识别,将每个编码器的输出输入到相应的解码器中,然后再将它们融合在一起。Li 等人 [88] 在脑肿瘤分割中采用了类似的方法,先重建每个模态,再将编码器的输出进行融合。
 融合后方法使用来自模态特定编码器的融合特征作为重建解码器的输入。Tsai 等人 [167] 提出了一个多模态因子化模型,其中模态特定的编码器-解码器用来重建缺失的模态,而下游任务模块则使用一个独立的多模态编码器-解码器。为了恢复缺失的模态特征,下游任务模型的编码器输出不仅用于下游任务解码器的预测,还与每个模态特定编码器的输出融合后,输入到各自的重建解码器中。Chen 等人 [20] 也将重建任务和下游任务的编码器解耦,表明解耦特征有助于消除无关特征。Jeong 等人 [62] 提出了一个更简单的方法,使用 U-Net 架构中的多级跳跃连接来融合特征以进行缺失模态重建,相较于 Chen 等人 [20],在脑肿瘤分割任务中表现出了更好的泛化能力。此外,Zhou 等人 [223] 和 Sun 等人 [157] 展示了有效的跨模态注意力融合技术,能够帮助增强重建和分割效果。这些方法大多数在训练时同时进行重建和下游任务。然而,某些方法,如 ActionMAE [186] 和 M3AE [99],首先训练重建任务,然后对预训练编码器进行下游任务的微调。尽管这些方法取得了强劲的性能,但它们仍然要求在训练过程中缺失的模态数据存在,以便监督重建解码器的训练。
Direct-to-Task 表示生成方法 通常使用简单的生成模型将可用模态的信息直接映射到缺失模态的表示中。该概念如图8b所示。早期的研究 [114] 使用高斯过程(Gaussian Processes)“幻觉”缺失的模态特征,这一思想启发了Hoffman 等人 [53] 提出了 Hallucination Network (HN),该网络从RGB图像中预测缺失的深度模态特征。HN通过L2损失函数将中间层特征与另一个网络(该网络基于深度图像训练)对齐,从而使RGB输入能够生成深度特征,解决缺失模态问题。此方法已被扩展应用到姿势估计 [27] 和土地覆盖分类 [69] 中,其中HN可用于生成缺失的热分布和深度特征。这些方法通过直接生成缺失模态的表示,避免了额外的复杂训练阶段,并且可以有效处理下游任务中的缺失模态问题。
 在像情感分析这样的任务中,翻译模块可以将可用模态的表示映射到缺失模态的表示,并应用L2损失对齐这些输出与在缺失模态上训练的网络输出 [57]。最近的一个重要研究,SMIL [111],采用贝叶斯学习和元正则化方法,直接生成缺失模态的表示。SMIL在具有高缺失模态样本率的数据集上表现出了强大的泛化能力。随后的研究 [86] 解决了如分布不一致、未能捕捉特定模态信息以及生成的模态与现有模态之间缺乏对应关系等问题。研究人员还探索了跨模态分布转换方法,通过对齐生成和现有模态表示的分布,增强了模型的判别能力 [180]。在音视频问答(AVQA)任务中,Park等人 [129] 提出了一个关系感知缺失模态生成器(Relation-aware Missing Modal Generator,RMM)。RMM由视觉生成器、听觉生成器和文本生成器组成,通过分析视觉和文本模态之间的相关性,并利用可学习的参数向量(槽位)来重建和合成缺失模态特征,从而生成缺失的听觉表示。该方法提高了模型的鲁棒性和准确性。这种方法通过生成缺失模态的伪特征,进一步推动了缺失模态问题的解决,同时能够在多模态数据中有效捕捉和利用不同模态之间的关联性,从而提高了下游任务的性能。
 最近,为了应对情感分析中可能缺失不同模态的问题,Guo等人 [43] 提出了一个缺失模态生成模块(Missing Modality Generation Module)用于提示学习(prompt learning)。该模块通过一组投影层将可用模态的提示映射到缺失模态的提示。这种方法通过生成缺失模态的提示来补充缺失的数据,从而提高下游任务在模态缺失情况下的表现。Lin等人 [94] 提出了一个不确定性估计模块(Uncertainty Estimation Module),该模块能够识别不同模态中的无用标记(tokens),从而在面对缺失模态时,能够更好地利用U-Adapter辅助的预训练模型。通过这种方法,模型能够有效地利用现有模态的标记,并减小缺失模态带来的负面影响。这两种方法均尝试通过有效的提示生成和标记优化策略,帮助模型在面对缺失模态的情况下,仍然能够高效地处理任务,增强了模型的鲁棒性和泛化能力。
 与间接方法相比,直接生成方法(direct generation methods)避免了繁琐的模态数据重建过程,而是使用特征生成器来生成缺失模态的表示。这些生成器相对简单,训练过程也更加高效,且更容易与多模态模型进行集成。
 总结来说,表示生成方法(representation generation methods)受限于训练数据集中缺失模态的不平衡性或全模态样本数量有限,这可能导致训练过程对现有模态过拟合。此外,间接到任务的表示生成方法(indirect-to-task representation generation methods)能够在训练过程中访问缺失模态样本的缺失模态数据,这意味着训练数据集实际上是完整的,因此这类方法通常表现优于直接到任务的表示生成方法(direct-to-task representation generation methods)。

4 方法论在策略设计方面

4.1 架构聚焦模型

与上述在模态或表示层面处理缺失模态问题的方法不同,许多研究者通过调整模型的训练或测试架构来适应缺失模态的情况。根据它们在处理缺失模态方面的核心贡献,我们将这些方法分为四类:基于注意力的方法、基于蒸馏的方法、基于图学习的方法,以及多模态大语言模型。

4.1.1 基于注意力的方法

在自注意力机制 [169] 中,每个输入被线性转换以生成查询(Query)、键(Key)和值(Value)向量。通过将每个元素的查询与其他元素的键相乘,计算注意力权重,随后通过缩放和 softmax 操作确保权重之和为 1。最后,值的加权和生成输出。我们将基于注意力的多模态方法(MLMM)分为两类:(1)注意力融合方法,重点关注模态融合,整合多模态信息,这些方法不依赖于特定的模型类型,适用于各种模型类型,因为其输入和输出维度相同。(2)其他是基于 Transformer 的方法,通过堆叠注意力层处理大规模数据,能够捕获全局信息并支持并行化。我们将在下面提供这两种方法的更多细节。

注意力融合方法具有强大的能力来捕捉关键特征,可以看作是即插即用的模块。我们将它们分为两种类型:模内注意力方法和模间注意力方法。

  1. 模内注意力方法
    模内注意力方法在融合模态之前,首先独立地计算每个模态的注意力,如图 9a 所示。这种方法侧重于单一模态内的关系,而模态之间的融合是通过共享部分信息来实现的。例如,在 3D 检测中,BEV-Evolving Decoder [36] 通过与每个模态特定的注意力模块共享相同的 BEV 查询来处理传感器故障,从而允许融合任意数量的模态。同样,在临床诊断中,Lee 等人 [74] 提出了模态感知注意力方法,通过使用共享的瓶颈融合标记 [127] 来执行模内注意力,并做出决策预测。

  2. 模间注意力方法
    模间注意力方法通常基于掩蔽注意力,将缺失模态特征视为掩蔽向量(使用零值或负无穷大值),以更好地捕捉可用模态之间的依赖关系,如图 9b 所示。与传统的跨模态注意力不同,掩蔽注意力模型在所有嵌入中共享相同的参数,从而灵活地处理缺失的模态。例如,Qian 等人 [134] 设计了一个注意力掩码矩阵来忽略缺失的模态,从而提高了模型的鲁棒性。类似地,DrFuse[198] 将模态解耦为特定表示和共享表示,使用共享表示来替代缺失的模态,并使用定制的掩码矩阵帮助模型忽略缺失模态的特定表示。
    在这里插入图片描述

图 9. 两种典型的注意力融合方法,假设模态 2 为缺失模态。
(a) 模内注意力(图中的“IntraAtten”)可以跳过缺失的模态 2。由于不同模态的每个 Intra-Atten 都共享融合表示(如 [36] 中的可学习查询或 [127] 中的瓶颈标记),在逐一计算后,输出表示可以视为可用模态的融合结果。
(b) 缺失模态掩码是根据缺失的模态 2 生成的自定义掩码,能够帮助模间注意力(图中的“Inter-Atten”)忽略缺失的模态 2。通过掩码将模态 2 的标记设置为零或负无穷大,我们可以强制注意力机制忽略缺失的模态 2。

基于 Transformer 的方法可以根据完全参数训练和少量参数微调分为两类:联合表示学习(Joint Representation Learning, JRL)参数高效学习(Parameter Efficient Learning, PEL)。由于 Transformer 能够处理长上下文并处理大量特征标记,多模态 Transformer 可以从任意数量的模态标记中学习联合表示(图 10)。一些方法首先使用模态编码器从可用模态中提取特征标记,然后将它们输入到多模态 Transformer 中。例如,Gong 等人 [38] 提出了一个基于第一人称视角的多模态任务,设计了一个基于 Transformer 的融合模块,该模块具有灵活数量的模态标记,并引入跨模态对比对齐损失,将特征映射到公共空间中。类似地,Mordacq 等人 [123] 利用掩蔽多模态 Transformer,将缺失的模态视为掩蔽标记,以实现稳健的联合表示学习(JRL)。Ma 等人 [110] 在多模态 Transformer 中提出了一种优化融合策略搜索方法,帮助找到适合不同缺失/完整模态表示的最佳融合方法。Radosavovic 等人 [136] 为自回归 Transformer 引入了专门设计的掩蔽标记,用于管理缺失模态,并成功地将模型部署在实际场景中。
在这里插入图片描述

图10. 联合表示学习方法的一般思路描述,假设模态2是缺失的模态。缺失的模态2令牌可以被特定的掩码令牌替代。在某些方法中,模态编码器(红色虚线框)可以被线性投影层替代。

 随着预训练 Transformer 模型的兴起,参数高效学习(PEL) 方法被开发出来,通过训练少量参数来微调这些模型。针对预训练模型,常见的两种 PEL 方法是提示调优(prompt tuning)适配器调优(adapter tuning)。提示调优最初用于自然语言处理,它通过优化输入提示(prompt)来调整模型,而保持模型参数不变。后来,这一方法被扩展到多模态模型中。Jang 等人 [61] 引入了模态特定的提示,以解决早期方法的局限性,这些提示在所有模态都存在时合并,并允许模型在训练过程中更新所有可学习的提示。Liu 等人 [102] 进一步改进了这一方法,提出了傅里叶提示(Fourier Prompt),该方法利用快速傅里叶变换将可用模态的全局光谱信息编码到可学习的提示标记中,这些提示标记可以用来补充缺失模态的特征,并与特征标记进行交叉注意力,从而应对缺失模态的问题。另一方面,适配器调优涉及将轻量级的适配器层(例如多层感知机,MLP)插入到预训练模型中,以适应新任务,而不修改原始参数。Qiu 等人 [135] 提出了一个方法,使用分类器识别不同的缺失模态情况,并利用该分类器的中间特征作为缺失模态提示,与轻量级适配器配合使用,以解决缺失模态问题。
 尽管上述方法中的基于注意力的融合机制可以有效地帮助解决任何框架中的缺失模态问题,但它们都没有考虑到缺失模态可能包含对预测至关重要的信息。在基于 Transformer 的方法中,联合表示学习(JRL) 方法通常受限于大量的计算资源,并且需要相对较大的数据集才能达到良好的性能。参数高效学习(PEL) 方法可以实现高效的微调,但它们的性能仍然无法与 JRL 相媲美。

4.1.2 基于蒸馏的方法。

知识蒸馏 [50] 是将教师模型的知识传递给学生模型的过程。教师模型可以访问更多的信息,从而帮助学生模型重建缺失的模态。下面,我们将介绍两种针对这一问题的蒸馏方法。
基于表示的蒸馏方法通过从教师模型转移丰富的表示,帮助学生模型捕捉和重建缺失的模态特征。我们根据是否使用logits或中间特征对这些方法进行分类。图11展示了这一类方法。响应蒸馏方法侧重于将教师模型的logits转移给学生模型,帮助学生模型模仿概率分布。Wang等人 [178] 为缺失模态训练了模态特定的教师模型,然后使用其软标签来指导多模态学生模型。Hafner和Ban [45] 使用教师模型从光学数据中训练出的logits来监督重建网络,从雷达数据中近似重建缺失的光学特征。Pramit等人 [142] 提出了模态感知蒸馏方法,利用全球和局部教师知识,在联邦学习环境中帮助学生模型学习如何处理缺失模态。
在这里插入图片描述

图11. 表示蒸馏方法的描述。这里假设模态2缺失。为了区分教师模型和学生模型的表示,我们在图中为它们的表示添加了“-T”和“-S”。我们将中间层蒸馏称为使用模型内任意组合的中间层特征。

 中间层蒸馏方法对教师模型和学生模型的中间特征进行对齐。Shen等人[147]使用领域对抗相似性损失(Domain Adversarial Similarity Loss)对齐教师模型和学生模型的中间层,提升了缺失模态情况下的分割效果。Zhang等人[214]在子宫内膜异位症诊断中应用了中间层蒸馏,通过将从TVUS训练的教师模型的特征蒸馏到使用MRI数据的学生模型中。

在这里插入图片描述

图12. 两种基于过程的蒸馏方法的描述。 (a) "EMA"表示指数移动平均。为了展示均值教师蒸馏(Mean Teacher Distillation)的整体架构,我们在logits表征上设置了损失函数。 (b) 针对缺失模态问题的自我蒸馏方法涉及使用充当教师和学生的模型,这些模型在训练过程中使用自己从每个分支获得的软标签/表征来进行自我优化。

基于过程的蒸馏方法侧重于整体蒸馏策略,如平均教师蒸馏(Mean Teacher Distillation, MTD)[162]和自我蒸馏[210]。这些方法强调过程学习,而非直接的表征传递。MTD通过使用学生模型参数的指数移动平均作为教师模型(图12a),从而增强了模型的稳定性。Chen等人[23]将此方法应用于缺失模态情感分析,将缺失的样本视为增强数据。Li等人[87]在激光雷达-雷达分割中使用了MTD,提升了对缺失模态的鲁棒性。
自我蒸馏通过从自身的软表征中学习来帮助模型改进(图12b)。Wang等人提出了ShaSpec[172],该方法利用可用模态的模态共享分支和模态特定分支之间的蒸馏。在ShaSpec的基础上,研究人员提出了元学习跨模态知识蒸馏(Meta-learned Cross-modal Knowledge Distillation)[173],进一步权衡不同可用模态的重要性,以提升性能。Ramazanova等人[138]在自我蒸馏中引入互信息,用于自我中心任务,使得预测对缺失模态不变。Shi等人提出了PASSION[150],一种自我蒸馏方法,旨在利用多模态分支帮助其他可用模态的单模态分支,从而提升缺失模态情况下的多模态医学分割性能。
混合蒸馏方法结合了多种蒸馏方法,以提高学生模型的性能。在医学分割中,Yang等人[195]在每个解码器层进行教师模型知识(包括logits和中间特征)蒸馏,表现优于ACNet[183]。Wang等人[179]引入了ProtoKD,该方法捕捉类间特征关系,以提高缺失模态情况下的分割性能。最近,CorrKD[81]通过对比蒸馏和原型学习提升了在缺失模态不确定性情况下的性能。
 上述方法解决了缺失模态问题,并在测试时实现了良好的泛化。然而,除了某些中间蒸馏和自我蒸馏方法外,大多数方法假设在训练过程中完整的数据集是可用的(即教师可以在训练过程中访问全模态样本),缺失的模态仅在测试时遇到。因此,大多数蒸馏方法不适合处理不完整的训练数据集。

4.1.3 基于图学习的方法。

基于图学习的方法利用图结构数据中节点和边之间的关系进行表示学习和预测。我们将解决缺失模态问题的方法分为两种主要类型:图融合方法和图神经网络(GNN)方法。
在这里插入图片描述

图13. 图融合方法的示意图。我们将模态2(图中的白色圆圈)设为缺失模态。模态1和模态3的特征可以通过这种图融合方法进行聚合,融合后的特征保持相同的维度。

图融合方法使用图结构整合多模态数据(图13),使其能够适应各种网络。例如,Angelou等人[1]提出了一种方法,利用图技术将每个模态映射到一个公共空间,以保留距离和内部结构。Chen等人[21]提出了HGMF,使用超边构建复杂的关系网络,动态地连接可用模态。Zhao等人[217]开发了用于脑肿瘤分割的模态自适应特征交互方法,基于二进制存在代码调整模态之间的特征交互。最近,Yang等人[194]提出了一种基于图注意力的融合模块,通过基于注意力的消息传递在模态之间共享信息,以自适应地融合多模态特征。这些融合方法可以灵活地插入到任何网络中,用于整合多种模态。
图神经网络方法直接将多模态信息编码到图结构中,并使用图神经网络(GNN)学习和融合这些信息。早期的方法[177]使用拉普拉斯图将完整和不完整的样本连接起来。个体GNN方法(图14a)如DESAlign[182],使用神经网络或GNN提取特征并进行融合预测。统一GNN方法(图14b)首先完成图的构建,然后使用GNN进行预测,例如张等人提出的M3Care[208],它通过自适应权重整合来自相似患者的信息。Lian等人[89]提出了图补全网络,通过将特征映射回输入空间来重建缺失的模态。在推荐系统中,FeatProp[112]通过传播已知的多模态特征来推测缺失的特征,而MUSE [190]将患者-模态关系表示为二分图,并学习统一的患者表示。在知识图谱中,Chen等人[25]提出了实体级模态对齐,通过动态分配较低的权重给缺失/不确定的模态,减少学习中误导的风险。
 上述方法可以利用图结构更好地捕捉模态之间以及样本之间的关系。然而,与其他方法相比,这些方法往往在效率、可扩展性和开发复杂度方面较低。

在这里插入图片描述

图14. 基于图神经网络(GNN)方法的示意图。我们假设模态2为缺失模态。(a)每个模态首先通过DNN或构建其图,然后通过GNN统一处理。(b)该方法首先通过像FeatProp [112]这样的方式,从缺失模态样本中完成图的构建,然后通过GNN进行处理。

4.1.4 多模态大型语言模型(LLM)

 像ChatGPT [10]这样的LLM展现了令人印象深刻的变革能力,能够在多个任务中进行优秀的泛化。然而,我们对世界的理解不仅仅依赖于语言,还依赖于其他数据模态,如视觉和音频。这促使研究人员探索多模态大型语言模型(MLLM),旨在处理跨模态的多样化用户输入,包括缺失模态的情况,利用Transformer的灵活性。它们的架构类似于图10所示。由于MLLM的独特性,我们将其与普通的基于Transformer的联合表示学习方法区分开来,并在4.1.1节中进一步介绍。在一些当前的MLLM架构中,LLM充当特征处理器,整合来自不同模态特定编码器的特征令牌,并将输出传递给任务/模态特定的解码器。这使得LLM不仅能够捕捉丰富的跨模态依赖关系,还能够自然地处理任意数量的模态,也即具有解决缺失模态问题的能力。
 大多数多模态大型语言模型(MLLM)采用基于Transformer的模态编码器,如CLIP、ImageBind [37]和LanguageBind [226],将多模态输入编码为统一的表示空间。例如,BLIP-2 [79]使用轻量级查询Transformer弥合模态差距,LLaVA [98]通过使用GPT-4生成的指令数据 [10]增强视觉-语言理解。这些模型被优化用于视觉问答、对话和图像描述等任务。近期的进展将输出生成扩展到多种模态,如图像。AnyGPT [207]和NExT-GPT [189]通过离散表示和多模态投影适配器统一文本、语音和图像等模态,实现无缝的多模态交互。CoDi [161]引入了可组合多模态条件化,通过加权特征求和允许任意模态生成。还有一些方法,如Fuyu [7]和OtterHD [78],放弃了模态编码器,直接使用线性变换。尽管MLLM能够灵活地处理任意数量的模态,但它们也存在许多缺点,如不一致的多模态位置编码、训练难度大以及高GPU资源需求。此外,目前没有针对缺失模态问题的特定MLLM基准。

4.2 模型组合

 模型组合旨在通过使用选定的模型处理下游任务。这些方法可以分为集成方法、专用训练方法和离散调度方法。集成方法通过不同类型的聚合方法(如投票、加权平均等)结合来自多个选定模型的预测,从而提高准确性和稳定性。专用训练方法将不同的子任务(例如不同的缺失模态情况)分配给专门的单独模型,专注于特定的子任务或子数据集。在离散调度方法中,用户可以通过自然语言指令使大型语言模型(LLM)根据模态类型和下游任务自动选择适当的模型。我们将在下文中提供更多关于这些方法的细节。

4.2.1 集成方法

如接下来的段落所详细介绍的,集成学习方法允许灵活地支持不同数量的专家模型,通过结合它们的预测结果来提高性能,如图15所示。
在这里插入图片描述

图15. 集成方法的两种通用架构。
(a) 多模态模型集成方法包含𝑛个三模态深度神经网络(DNN),并基于所有𝑛个DNN的输出生成最终预测。
(b) 每个模态由单模态深度神经网络(DNN)处理,在单模态模型集成方法中,最终预测是通过聚合所有可访问的单模态DNN的输出生成的。

多模态模型集成方法:早期的研究[171]在情感分析中采用集成学习处理缺失模态,方法是对单模态模型的预测进行平均。随着深度学习的进展,提出了基于集成的缺失模态重建网络[206],该方法在生成的缺失模态特征存在语义不一致时,利用多个完全模态模型的加权判断。这种多模态模型集成方法,如图15a所示,将不同的完全模态模型集成起来,帮助决策过程。

单模态模型集成方法:该方法的通用架构如图15b所示,其中每个模态由单模态模型处理,只有可用的模态参与决策。在多模态医学图像诊断中,早期研究发现,均匀加权方法比加权平均和投票方法表现更好 [203]。在多模态目标检测中,Chen等人[24]提出了一种概率集成方法。该方法不需要训练,可以通过概率边缘化灵活处理缺失模态,在实验中表现出较高的效率。Li等人[84]最近提出了具有缺失模态适应的单模态集成方法,按模态训练模型,并进行后期融合训练。其他方法[120]计算基于特征的权重来融合模态,其中权重反映特征在最终预测中的重要性。
混合方法:动态多模态融合 (DynMM) [193] 使用门控机制动态选择单模态/多模态模型。最近,Cha等人[16]提出了基于邻近度的模态集成 (PME),通过交叉注意力机制和注意力偏差来整合来自不同模态的框预测。PME可以自适应地结合单模态/多模态模型的框特征,并减少多模态解码中的噪声。

4.2.2 专用训练方法

 专用训练方法将不同的任务分配给专门的模型。我们在图16中展示了这些方法的一般思路。KDNet [55] 是第一个提出的专用方法,用于处理不同组合的缺失模态问题。它将单模态特定模型视为学生模型,从多模态教师模型的特征和逻辑回归中学习多模态知识。这些训练过的单模态模型可以用于不同的缺失模态情况。在KDNet之后,ACNet [183] 也采用了这种蒸馏方法,但引入了对抗共训练,进一步提高了性能。Lee等人[76] 提出了缺失模态感知的提示方法,通过使用输入级和注意力级的提示来解决缺失模态问题,该方法只需要对1%的模型参数进行微调以适应下游任务。类似地,一些研究人员[140]为每种缺失模态情况引入了不同的适配器层。
在这里插入图片描述

图16. 专用训练方法的一般思路。假设模态2缺失,专用方法从DNN模型库中选择适合样本的模型进行训练和测试。在图中,三个模态可以形成总共七种不同模态组合的模型。为了便于理解,我们使用紫色矩形中的彩色圆圈来表示模型可以处理的模态。为了适应缺失的模态2(浅绿色圆圈),专用方法通常选择能够处理模态1(浅橙色圆圈)和模态3(浅蓝色圆圈)的DNN模型(紫色矩形)进行训练和测试。

4.2.3 离散调度方法

 在离散调度方法中(图17),大语言模型(LLM)充当控制器,决定将主要任务/指令拆解成不同离散步骤的执行顺序。虽然LLM并不直接处理多模态数据,但它能够解释语言指令,并协调跨单模态和多模态模块的任务执行。这种结构化但灵活的方法特别适用于需要顺序任务的输出,使系统能够处理任意数量的模态,并自然地解决缺失模态问题。例如,Visual ChatGPT [188] 将多个基础模型与ChatGPT结合,允许通过文本或图像进行互动,使用户能够在多步骤协作框架内提出复杂的视觉问题、提供编辑指令并接收反馈。HuggingGPT [148] 是一个由LLM驱动的代理,管理和协调Hugging Face的各种AI模型。它利用LLM进行任务规划、模型选择和总结,以应对复杂的多模态任务。ViperGPT [159] 将视觉和语言任务组合成模块化的子程序,通过生成和执行Python代码处理复杂的视觉查询,而无需额外训练即可获得有效输出。还有一些类似的离散调度方法,如MM-REACT [197] 和 LLaVA-Plus [103]。
在这里插入图片描述

图17. 离散调度方法的一般思路。用户通过文本指令让大语言模型(LLM)调用下游任务模块来完成数据样本的处理,并反馈给用户。只要下游任务模块足够多样,就可以处理具有不同模态数量的各种任务。

 一些前述的专用训练和集成方法能够灵活地处理缺失模态问题,而无需额外的训练,但它们大多数需要更多的模型存储空间,这对于许多资源受限的设备来说是不可行的。例如,DynMM需要存储各种单模态和多模态模型。随着模态数量的增加,所需模型的数量也会增加。此外,单模态模型集成方法难以充分建模复杂的模态间关系,从而做出最终预测。尽管一些专用微调方法不需要过多的时间和GPU资源消耗,但它们仍然难以与完全参数训练相比较。此外,离散调度方法能够在有足够类型的下游模块时解决多种任务,但它们通常需要LLM能够快速响应并准确理解现实场景中的人类指令。

5 方法学讨论

 在上述的第3和第4节中,我们从数据处理和策略设计的角度,将现有的多模态学习方法(MLMM)分为四类:模态填充、表示聚焦、架构聚焦和模型组合。我们进一步将这四类方法细分为十二个类别,探索了我们提出的细粒度方法学分类法。表1总结了这些方法的整体优缺点。生成式方法和蒸馏方法是最常见的方法,它们易于实现并且表现良好。随着Transformer技术的兴起,基于Transformer的方法由于其更大的感受野和并行性变得更加流行。然而,间接任务生成方法和大多数蒸馏方法(除了部分中间蒸馏[214]和自蒸馏方法[150, 172])目前无法处理不完整的训练数据集(即训练过程中无法访问缺失模态数据)。下面我们将从两个方面和四个类型对这十二种方法进行简要分析。

在这里插入图片描述

表1.从四种类型和两个方面比较深度多模态学习与模态缺失方法。

5.1 数据处理方面

(1) 模态填充: 模态组合方法直接在输入模态数据层面操作,通过组合现有的数据样本或填充缺失数据来解决缺失模态问题。然而,这些方法通常不适用于像像素级别的下游任务,并且在很大程度上依赖于可用模态数据。另一方面,模态生成方法使用生成模型合成缺失模态,从而缓解因数据缺失导致的性能下降。但这些方法通常受到完整模态样本的可用性和数量的限制,并且由于需要额外的模态,这会增加训练的复杂性。它们还需要额外的存储空间来存放生成模型。

(2) 表示聚焦: 协调表示方法通过简单地添加对应的分支来引入新的模态。然而,随着约束和模态数量的增加,如何平衡它们变得具有挑战性。基于相关性的驱动方法通常无法处理测试环境中的缺失模态样本,因为它们通常是为在不完整数据集上进行预训练而设计的。与模态组合方法类似,表示组合方法通过组合可用模态表示来恢复缺失模态表示。由于表示通常携带比模态数据更为通用的信息,因此这些方法往往能取得更好的效果。表示生成方法通过基于模态间的关系生成表示,进一步改进了这一过程,从而可以重建缺失的模态表示。许多研究已经证实了这种方法在处理缺失模态方面的有效性。然而,如果数据集中包含缺失模态样本,则旨在通过重建模态数据恢复缺失模态表示的间接任务表示生成方法不可行。当数据集包含严重不平衡的模态组合时,生成方法可能也会失败,过度依赖现有的模态。

5.2 策略设计方面

(1) 架构聚焦: 一些方法专注于设计模型的训练或推理架构,以减轻因缺失模态引起的性能下降。基于注意力的方法受到研究人员的重视,因为它们能够有效地捕捉不同模态之间的关系,在数据集规模上具有可扩展性,并且具有很高的并行化能力。用于模态融合的单一注意力机制具有即插即用的优势。这类基于Transformer的方法的缺点也相对明显:从零开始训练多模态Transformer需要过多的训练时间和大量的GPU资源。最近流行的PEL方法能够有效缓解这一缺点,但该方法的泛化性能仍然不如全参数训练或调优。尽管多模态大型语言模型(MLLMs)能够灵活地处理任意数量的模态,但它们受限于训练复杂性,并且需要大量的计算资源。
 基于蒸馏的方法相对容易实现,学生模型通过学习如何从教师模型中重建缺失的模态表示和模态之间的关系。由于教师模型通常接收完整模态样本作为输入,它能够在训练过程中模拟任何缺失模态的情况,从而确保较强的性能。然而,大多数基于蒸馏的方法受到完整数据集要求的限制,无法应用于存在固有缺失模态的数据集。据我们所知,只有一种中间蒸馏方法 [214] 尝试将同一类别的匹配样本输入到教师模型中,而一些自蒸馏方法 [150, 172] 则使用可用模态分支的表示进行蒸馏。
 基于图学习的方法能够更有效地捕捉模态内部和模态之间的关系,但随着模态数量的增加,这些方法的开发复杂性和低效率问题变得更加明显。它们目前也不适合大规模数据集。
(2) 模型组合:这些方法通过选择模型进行预测。集成和专门训练方法可能会受到数据集中模态组合不平衡的影响。随着模态数量的增加,训练的复杂性和模型数量也会增加,特别是对于专门训练的方法。离散调度方法需要一个大语言模型(LLM)进行协调,但如果可调用的模块不足,可能无法完成下游任务。此外,推理速度受到LLM和模块的限制。模型组合方法还需要大量的模型存储。

5.3 恢复与非恢复方法及一些统计数据

 我们进一步使用表1中的分类法对MLMM方法进行了分类,以帮助研究人员更好地区分不同类型的MLMM。此分类基于经典的三阶段(早期、中期和晚期)多模态学习分类法。表2借用了这一经典的MLMM分类法,并指定了不同方法是否恢复缺失的模态。同时,我们列出了不同方法的参考文献。在对315篇论文的分析中,我们发现75.5%的研究聚焦于恢复缺失的模态信息,而仅有24.5%的研究探讨了不恢复模态的推理方法。在恢复方法中,早期阶段和中期阶段的模态恢复方法分别占20.3%和45.8%,而晚期阶段和多阶段恢复方法各占4.7%。对于非恢复方法,早期、中期和晚期模态融合方法分别占4.2%、14.1%和6.3%。我们未能找到任何结合多个阶段的非恢复方法。我们可以观察到,中期阶段的模态特征恢复方法占据了最大的比例。我们认为这是因为相比恢复原始数据,恢复特征可以避免许多噪声和偏差,同时提供更多模态特定的或共享的信息。此外,相比晚期阶段的特征,中期阶段的特征通常更加丰富。

限制:由于大多数缺失模态研究设置的多样性,比较不同方法在不同数据集上的表现非常困难。这代表了一个研究空白,我们鼓励学术界关注并解决这一问题。

在这里插入图片描述

表2. 多模态学习中恢复与非恢复方法的另一常见分类法基于三个阶段:早期、中期和后期,如传统分类法所示。在这个上下文中,恢复与非恢复方法指的是在每个阶段如何处理缺失的模态。

6 应用与数据集

 多模态数据集的收集通常是劳动密集型且成本高昂的。在某些特定的应用方向上,用户隐私问题、数据收集设备的传感器故障等因素可能导致数据集缺失模态。在严重的情况下,最多可达90%的样本可能存在缺失模态,这使得传统的MLFM方法很难取得良好的性能。这催生了MLMM任务。由于导致数据集不完整的因素通常来自不同的应用领域,我们根据MLMM任务中常见的应用领域介绍以下数据集:情感分析、医学诊断、检索/图像说明、遥感、机器人视觉等。我们在表3中根据应用领域和数据类型对这些数据集进行了分类。

在这里插入图片描述

表3. 深度多模态流数据方法常用的数据集,按主要应用和模态类型划分。“视觉”包括来自视觉传感器的数据,如RGB图像、深度图、红外、LiDAR、雷达、事件传感器和光流。“生物传感器”包括来自如电生理和呼吸传感器等传感器的数据。其他模态包括音频、文本、CT扫描、MRI和骨骼数据。

6.1 情感分析

 情感分析的目标通常是通过结合来自多种模态的信息,如文本、音频和RGB图像,来分类当前的情绪状态。由于其在市场研究、健康监测、广告等特定场景中的潜在应用,这一领域受到了广泛关注。在音视频情感分析研究的早期,研究人员发现数据收集设备中的人脸检测算法有时无法捕捉到面部图像(例如,由于遮挡)或录制的音频过于嘈杂无法使用[29, 144],导致一些样本仅包含音频或图像。因此,研究人员开始探索使情感分析模型在面对缺失模态样本时仍能有效工作的办法。目前,应用于情感分析的数据集大致可以分为两类。一类数据集[11, 12, 15, 106, 115, 124, 132, 141, 154, 155, 185, 202, 204, 219]涉及使用视频、音频、文本和生物传感器来确定人类在现实生活或电影中的情绪状态。另一类数据集[41, 116, 128]则涉及在漫画等情境中使用文本和图像来评估情绪状态。详细信息请参见表3。

6.2 医学诊断

 医学诊断需要综合考虑来自多个模态的信息,如病史、体检数据和影像学数据,这正是多模态学习擅长的领域,因此许多研究者开发了多模态智能医学诊断系统。目前,涉及缺失模态问题的多模态医学诊断数据集主要集中在以下八个领域:神经影像学与脑部疾病 [60, 77, 119, 126, 201],心血管疾病 [97, 122],癌症检测 [2, 164],妇女健康分析 [191, 214],眼科学 [82, 208],睡眠障碍 [73, 113],临床预测 [65-67],生物医学分析 [18, 70, 143]。我们根据模态类型将上述部分常用且具有代表性的数据集进行了分类,详见表3。

6.3 信息检索

 信息检索是一种基于查询、历史行为、偏好和属性数据自动检索相关内容或数据的技术。由于其在搜索引擎和社交媒体等各大平台上的成功应用,信息检索技术受到了广泛关注。通过算法分析和预测用户可能感兴趣的内容,它提升了用户满意度和信息获取体验。多模态学习使得现代检索系统成为可能,因为它能够有效处理和分析多种类型的信息,包括文本、图像、音频等。由于用户隐私问题和数据稀疏问题,一些研究者已经开始探索在检索系统中应用MLMM方法。许多这类研究利用了来自亚马逊、TikTok等网站的数据集进行研究。我们在表3中根据模态类型列出了这些数据集。

6.4 遥感

 通过利用多模态学习,我们可以整合各种类型的视觉数据,例如合成孔径雷达数据和多光谱/高光谱数据。因此,出现了许多数据集 [31, 54, 131, 139, 149, 200]。这些数据集使得能够通过卫星或飞机评估和分析地球上的不同环境条件、资源和灾害。这些能力在环境保护、资源管理和灾害响应中具有重要作用。在实际应用中,遥感任务,如多模态土地覆盖分类任务,可能由于云层遮挡或传感器损坏而无法获取光学模态数据。因此,解决遥感问题中的缺失模态问题也是非常必要的。

6.5 机器人视觉

机器人视觉是使机器人通过视觉传感器感知和理解其环境的领域,涉及图像数据的获取和处理。这包括物体与面部识别、环境建模、导航和行为理解等任务,使机器人能够自主执行复杂操作并与人类互动。在机器人视觉任务中,模态组合通常可以表示为 RGB+X,其中 X 可以包括但不限于 LiDAR、雷达、红外传感器、深度传感器和听觉传感器。由于各种原因,RGB 和其他传感器数据可能会丢失。以下是关于缺失模态问题的五个常见机器人视觉任务的介绍:

(1) 多模态分割:该任务旨在输入多模态数据,并使用分割掩码定位感兴趣的物体。在缺失模态的背景下,该任务在自动驾驶汽车的数据集中比较常见,因为传感器可能因损坏或恶劣天气条件而失效。典型的数据组合包括 RGB + (深度/光流/LiDAR/雷达/红外/事件数据) [13, 101, 160, 209]。其他数据集则集中于室内场景分割 [44, 152](RGB、深度、热成像)和材料分割 [92](RGB、线性偏振角度、线性偏振度、近红外图像)。

(2) 多模态检测:类似于多模态分割,多模态检测的目标是通过边界框定位感兴趣的物体。常见的多模态检测组合包括 RGB + 深度 [71, 152] 和 RGB + 热成像 [59, 68]。

(3) 多模态活动识别:该任务可以输入来自上述视觉传感器的数据,并利用音频线索来识别人的活动。常见的数据集 [30, 38, 40, 58, 146, 175] 包括 RGB 与音频、深度、热成像、惯性传感器和骨架数据的组合。

(4) 多模态行人重识别:该任务旨在利用深度和热成像 [187, 199] 信息,在不同的光照条件下(如夜间)可靠地识别个体。

(5) 多模态人脸防伪:该任务利用多种传感器(如 RGB、红外和深度摄像头)来检测并防止人脸识别系统中的欺诈行为 [64, 96, 211]。其目的是通过全面分析不同的模态,增强系统识别假面(如照片、视频、面具等)的能力,从而提高人脸识别系统的安全性和可靠性。

其他应用:MLMM 方法正在被探索应用于许多其他领域。例如,传统的视听分类 [170];视听问答 [129];多模态大语言模型在视觉对话 [10]、图像字幕 [103] 中的应用;利用深度图像和热分布进行手势姿态估计 [27, 165];利用多模态数据进行知识图谱补全,处理缺失模态问题 [105];多模态时间序列预测,如股票预测 [107] 和空气质量预测 [221];多模态手势生成,用于创建自然动画 [100];在生物学中,单细胞数据的多模态分析 [121]。

讨论:当前的MLMM研究主要集中在情感分析、医学诊断、遥感分析、信息检索/字幕生成和机器人视觉等领域。在这些领域中,研究的重点主要集中在解决视频、文本和音频基础的情感分析中的缺失模态问题、医学诊断中的MRI分割和临床预测问题,以及自动驾驶车辆的多传感器语义分割问题。相比之下,针对流数据和科学领域的MLMM研究相对较少。此外,上述大多数公开数据集在模态上是完整的,天然缺失模态的数据集相对较少。因此,这些任务通常通过考虑数据集中所有可能的缺失模态组合进行评估,然后在缺失模态的性能上进行训练和测试,并辅以不同的缺失模态率。在我们回顾的文献中,38%的研究控制了不同程度的缺失模态率并进行了相应的测试,而其余62%的研究则使用了随机缺失模态率进行训练和测试。当将缺失模态率分为轻度(<30%)、中度(30%-70%)和重度(>70%)时,分别占比72.6%、82.2%和69.9%。值得注意的是,一项研究可能会在多个缺失模态率水平上进行验证。此外,我们还发现,36.4%的研究是在不完全的训练数据集上进行训练(即训练时无法访问缺失的模态数据),而63.6%的研究则实际集中在测试时有缺失模态的数据。我们可以看到,目前关于不完全训练数据集的研究仍然较少,因此,强调这一领域需要更多研究是非常重要的。

7 开放问题与未来研究方向

7.1 精确的缺失模态/表示数据生成

许多研究[111]表明,在遇到缺失模态样本时,恢复、重建或生成缺失的模态或其表示可以帮助提高模型的性能。然而,这些生成的模态或表示通常会存在伪影或幻觉现象,这可能是由生成模型本身或其训练数据集引起的。因此,探索如何生成准确且无偏的缺失模态或其表示将是未来的重要研究方向。

7.2 恢复还是不恢复?

在MLMM中,“是否恢复缺失模态”是一个值得探讨的问题。根据我们的观察,目前处理MLMM的大多数方法大致可以分为两种类型:一种是专注于恢复缺失的模态信息,以便多模态模型能够继续正常工作[111, 172],另一种则是尝试仅使用可用的数据模态进行预测[55, 215]。然而,一些研究[198]表明,由于训练集中不同模态的缺失率不平衡,恢复的模态信息可能会被现有的模态信息忽视或主导,导致模型在做出预测时仍然依赖于可用的模态。此外,Lin等人[94]发现,在缺失关键模态信息的情况下,模型可能会过度受到次要模态信息的影响,从而产生错误的结果。在这种情况下,恢复缺失的模态信息可能有助于缓解这一问题。因此,确定在何种情况下恢复或不恢复方法对于模型预测更有利,以及如何衡量恢复的模态信息是否没有被其他模态信息主导或保持无偏,是一个重要挑战。解决这些问题对于推进具有缺失模态方法的深度多模态学习的有效性和可靠性至关重要。

7.3 缺失模态问题的基准测试与评估

基准测试和公平评估在引导该领域发展中起着至关重要的作用。许多研究在不同的缺失模态设置下进行训练/测试,这使得研究人员难以找到相同设置的工作进行对比。此外,最近大型预训练模型(如GPT-4)的兴起给研究人员带来了实现人工通用智能的希望。因此,更多的大型模型[98]正在整合视觉、听觉及其他模态信息,以实现多模态大语言模型(MLLM)的愿景。尽管一些研究已基于这些模型开展,但仍迫切需要对MLLM在缺失模态问题上的表现进行详细分析和基准测试。我们呼吁社区建立类似于MultiBench[91]的工作,涵盖第6节中提到的常见数据集和缺失模态问题的设置,以帮助研究人员进行更系统的研究。

7.4 方法效率

目前的MLMM方法往往忽视了对更轻量和高效方法的需求。例如,一些模型组合方法[55, 193]需要为每种模态组合训练一个独立的模型。同样,一些旨在恢复缺失模态信息的方法[22, 213]通常需要使用一个针对每种缺失信息的独立模型,或者使用一个大型统一模型来生成所有模态。尽管这些方法通常表现良好,但它们往往过于庞大。在实际应用中,许多多模态模型需要部署在资源受限的设备上,例如太空或灾难响应机器人。这些设备无法容纳高性能的GPU,并且容易遭受传感器损坏,修复起来可能既困难又昂贵。因此,迫切需要探索高效且轻量的MLMM解决方案,以便在这些约束条件下有效运行。

7.5 缺失模态的多模态流数据

目前,只有一小部分研究关注如何处理多模态流数据中的缺失模态。一个例子是情感分析[93]。在现实世界中,长时间序列的多模态数据,如RGB+X视频和多模态时间序列,常见且对异常检测和视频跟踪等任务至关重要,特别是在机器人领域。因此,MLMM(多模态流数据建模)需要解决流数据中的缺失模态问题,以推动该领域的进一步发展。

7.6 缺失模态的多模态强化学习

多模态强化学习利用来自不同感知模态的信息,使智能体能够在环境中学习有效的策略。这种方法在机器人抓取、无人机控制和驾驶决策等领域有广泛应用。然而,这些基于智能体的任务常常面临实际挑战,因为现实场景中常常出现传感器故障或无法访问某些模态数据,从而影响算法的鲁棒性。目前,只有少数几篇论文[4, 75, 168]专门针对强化学习中缺失数据或模态的问题。因此,我们希望学术界能更多关注在强化学习中缺失模态这一实际重要问题。

7.7 面向自然科学的缺失模态多模态AI

在药物预测[33]和材料科学[125]等科学领域,多模态学习通过整合分子结构、基因组序列和光谱图像等多种数据类型,发挥着关键作用。这种整合可以提高预测准确性并揭示新的见解。然而,在这些领域实施多模态学习面临着数据访问限制、高昂的获取成本以及异构数据不兼容等挑战。这些问题常常导致模态缺失,从而阻碍多模态模型的潜力。尽管这一需求至关重要,但在科学应用中关于多模态流数据建模(MLMM)的研究仍然较为有限[49]。弥补这一空白对于推动基于AI的发现至关重要,这需要新的方法来处理不完整的多模态数据集,并创建能够在缺失数据情况下仍能学习的鲁棒模型。

8 结论

在这篇综述中,我们首次全面介绍了深度多模态学习中的缺失模态问题。我们首先简要介绍了缺失模态问题的动机以及现实世界中支持其重要性的原因。接着,我们基于细致的分类法总结了当前的研究进展,并回顾了相关的应用和数据集。最后,我们讨论了该领域中存在的挑战和潜在的未来发展方向。尽管越来越多的研究者开始关注缺失模态问题,但我们也关注一些亟需解决的紧迫问题,例如测试的统一基准(例如,多模态大语言模型)以及更广泛应用的需求(例如,自然科学领域)。通过我们全面而详细的综述,我们希望能够激发更多研究者探索缺失模态问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2248781.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python爬虫案例——猫眼电影数据抓取之字体解密,多套字体文件解密方法(20)

文章目录 1、任务目标2、网站分析3、代码编写1、任务目标 目标网站:猫眼电影(https://www.maoyan.com/films?showType=2) 要求:抓取该网站下,所有即将上映电影的预约人数,保证能够获取到实时更新的内容;如下: 2、网站分析 进入目标网站,打开开发者模式,经过分析,我…

鸿蒙安全控件之位置控件简介

位置控件使用直观且易懂的通用标识&#xff0c;让用户明确地知道这是一个获取位置信息的按钮。这满足了授权场景需要匹配用户真实意图的需求。只有当用户主观愿意&#xff0c;并且明确了解使用场景后点击位置控件&#xff0c;应用才会获得临时的授权&#xff0c;获取位置信息并…

MATLAB矩阵元素的修改及删除

利用等号赋值来进行修改 A ( m , n ) c A(m,n)c A(m,n)c将将矩阵第 m m m行第 n n n列的元素改为 c c c&#xff0c;如果 m m m或 n n n超出原来的行或列&#xff0c;则会自动补充行或列&#xff0c;目标元素改为要求的&#xff0c;其余为 0 0 0 A ( m ) c A(m)c A(m)c将索引…

网络安全之内网安全

下面给出了应对企业内网安全挑战的10种策略。这10种策略即是内网的防御策略&#xff0c;同时也是一个提高大型企业网络安全的策略。 1、注意内网安全与网络边界安全的不同 内网安全的威胁不同于网络边界的威胁。网络边界安全技术防范来自Internet上的攻击&#xff0c;主要是防…

Python 爬虫入门教程:从零构建你的第一个网络爬虫

网络爬虫是一种自动化程序&#xff0c;用于从网站抓取数据。Python 凭借其丰富的库和简单的语法&#xff0c;是构建网络爬虫的理想语言。本文将带你从零开始学习 Python 爬虫的基本知识&#xff0c;并实现一个简单的爬虫项目。 1. 什么是网络爬虫&#xff1f; 网络爬虫&#x…

solr 远程命令执行 (CVE-2019-17558)

目录 漏洞描述 执行漏洞py脚本&#xff0c;取得shell连接 EXP 漏洞描述 Apache Velocity是一个基于Java的模板引擎&#xff0c;它提供了一个模板语言去引用由Java代码定义的对象。Velocity是Apache基金会旗下的一个开源软件项目&#xff0c;旨在确保Web应用程序在表示层和业…

数据库中的视图

数据库中的视图 什么是视图创建视图使⽤视图修改数据注意事项 删除视图视图的优点 什么是视图 视图是⼀个虚拟的表&#xff0c;它是基于⼀个或多个基本表或其他视图的查询结果集。视图本⾝不存储数 据&#xff0c;⽽是通过执⾏查询来动态⽣成数据。⽤户可以像操作普通表⼀样使…

爬虫实战:采集知乎XXX话题数据

目录 反爬虫的本意和其带来的挑战目标实战开发准备代码开发发现问题1. 发现问题[01]2. 发现问题[02] 解决问题1. 解决问题[01]2. 解决问题[02] 最终结果 结语 反爬虫的本意和其带来的挑战 在这个数字化时代社交媒体已经成为人们表达观点的重要渠道&#xff0c;对企业来说&…

springboot-vue excel上传导出

数据库 device_manage表 字段&#xff0c;id&#xff0c;workshop,device_number,device_name,device_model,warn_time,expired_time device_warn表 字段&#xff0c;id,warn_time,expired_time 后端 实体类格式 device_manage Data TableName("device_manage"…

【简单好抄保姆级教学】javascript调用本地exe程序(谷歌,edge,百度,主流浏览器都可以使用....)

javascript调用本地exe程序 详细操作步骤结果 详细操作步骤 在本地创建一个txt文件依次输入 1.指明所使用注册表编程器版本 Windows Registry Editor Version 5.00这是脚本的第一行&#xff0c;指明了所使用的注册表编辑器版本。这是必需的&#xff0c;以确保脚本能够被正确解…

Redis五大基本类型——Zset有序集合命令详解(命令用法详解+思维导图详解)

目录 一、Zset有序集合类型介绍 二、常见命令 1、ZADD 2、ZCARD 3、ZCOUNT 4、ZRANGE 5、ZREVRANGE 6、ZRANGEBYSCORE 7、ZREVRANGEBYSCORE 8、ZPOPMAX 9、ZPOPMIN 10、ZRANK 11、ZREVRANK 12、ZSCORE 13、ZREM 14、ZREMRANGEBYRANK 15、ZREMRANGEBYSCORE 16…

设计模式之 责任链模式

责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种行为型设计模式&#xff0c;旨在将多个处理对象通过链式结构连接起来&#xff0c;形成一条处理请求的链条。每个处理对象都有机会处理请求&#xff0c;或者将请求传递给链中的下一个对象。这样&#x…

新版布谷直播软件源码开发搭建功能更新明细

即将步入2025年也就是山东布谷科技专注直播系统开发,直播软件源码出售开发搭建等业务第9年,山东布谷科技不断更新直播软件功能&#xff0c;以适应当前新市场环境下的新要求。山东布谷科技始终秉承初心&#xff0c;做一款符合广大客户需求的直播系统软件。支持广大客户提交更多个…

VITE+VUE3+TS环境搭建

前言&#xff08;与搭建项目无关&#xff09;&#xff1a; 可以安装一个node管理工具&#xff0c;比如nvm&#xff0c;这样可以顺畅的切换vue2和vue3项目&#xff0c;以免出现项目跑不起来的窘境。我使用的nvm&#xff0c;当前node 22.11.0 目录 搭建项目 添加状态管理库&…

HTML飞舞的爱心

目录 系列文章 写在前面 完整代码 代码分析 写在后面 系列文章 序号目录1HTML满屏跳动的爱心&#xff08;可写字&#xff09;2HTML五彩缤纷的爱心3HTML满屏漂浮爱心4HTML情人节快乐5HTML蓝色爱心射线6HTML跳动的爱心&#xff08;简易版&#xff09;7HTML粒子爱心8HTML蓝色…

英伟达推出了全新的小型语言模型家族——Hymba 1.5B

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

低速接口项目之串口Uart开发(二)——FIFO实现串口数据的收发回环测试

本节目录 一、设计思路 二、loop环回模块 三、仿真模块 四、仿真验证 五、上板验证 六、往期文章链接本节内容 一、设计思路 串口数据的收发回环测试&#xff0c;最简单的硬件测试是把Tx和Rx连接在一起&#xff0c;然后上位机进行发送和接收测试&#xff0c;但是需要考虑到串…

《Java核心技术I》树集

树集 TreeSet类与散列类似&#xff0c;树集是一个有序集合(sorted collection)。 可以以任意顺序将元素插入到集合中&#xff0c;遍历集合时&#xff0c;自动按照排序后的顺序呈现。 插入5个字符串&#xff0c;访问添加的元素 package treeSet;import java.util.TreeSet;pu…

Tailwind CSS v4.0 开启

Tailwind CSS v4.0 发布了 Tailwind CSS 是一个为快速开发而精心设计的原子类 CSS 框架&#xff0c;它提供了充满设计感和应用程序至上的能力来创建组件&#xff0c;它在最新的 2.0 版本中加入了暗黑模式&#xff0c;开箱即用。 Tailwind Connect 大会上&#xff0c;与会者抢先…

QML TableView 实例演示 + 可能遇到的一些问题(Qt_6_5_3)

一、可能遇到的一些问题 Q1&#xff1a;如何禁用拖动&#xff1f; 在TableView下加一句代码即可&#xff1a; interactive: false 补充&#xff1a;这个属性并不专属于TableView&#xff0c;而是一个通用属性。很多Controls下的控件都可以使用&#xff0c;其主要作用就是控…