← 返回 PaperDaily
大模型与智能体
首次!"三角"转不回去?湖南学者造出非三角的右预三角范畴
多模态数据香是香,可一到真实世界就缺胳膊少腿。这篇Nature Communications没有堆新算法,而是把“缺数据”这件事系统拆解,做了一个Python包iMML:25+种方法、六类任务场景验证,还把MATLAB/R老代码重写成Python提速近10倍。做多模态研究的朋友,值得先收藏再看。
龙哥读论文
阅读 1
查看原文
原论文信息如下:
引言
先讲个让每个搞多模态研究的人都心头一紧的场景:你辛辛苦苦凑齐了基因表达、蛋白组学、影像数据和临床指标,正准备训一个“全域融合”大模型,结果一查数据,发现三分之一的病人缺蛋白组,五分之一的病人缺影像,还有几个倒霉蛋啥都缺。你是把这些人全删了?还是只用某一类数据凑合?还是拿个均值硬填进去?
这三个“常规操作”可以说是数据缺失时的三板斧:删样本、砍模态、瞎插补。听起来都挺合理,但每一项都在悄悄烧掉你的信息量和模型上限。删样本,你丢的是珍贵的标注;砍模态,你丢的是模态间互补的“化学反应”;盲目均值插补,则是往数据里硬塞噪声。更扎心的是,这三个做法往往同时使用,效果可想而知。
这个问题有多普遍?跑过真实数据的人都懂。癌症基因组图谱TCGA里大量病人缺了部分组学模态;交通分析中传感器一坏就是一片;人机交互里镜头一挡,图像和音频就一起失踪。可以说,只要是从真实世界采集的多模态数据,几乎没有“干干净净”的。但翻遍现有工具箱,你找不到一个能让你优雅地“带缺学习”的Python包——要么只支持完整数据,要么只管插补不管下游任务,要么直接没人维护。
正是这个空白,让挪威奥斯陆大学等机构的团队出手了。他们最近在Nature Communications上发表了一项工作,推出一个名为iMML的开源Python包,目标简单直接:让你在不完整的多模态数据上,也能跟数据齐全时一样体面地做研究。
多模态学习遇上数据缺失:一个亟待解决的痛点
先看一个让人血压升高的真实案例。在构建生存预测模型时,研究者原本想融合多种组学数据,结果为了凑齐所有模态,直接排除了47%的患者。也就是说,近一半样本的生存信息、基因突变、临床指标,全部因为“某个模态缺失”而变成废案。这不是个例——癌症基因组图谱(TCGA)里大量病人缺了部分组学层,交通分析中传感器故障导致数据成片缺失,人机交互里镜头一挡图像和音频一起失踪。数据缺失不是“小概率意外”,而是多模态学习在真实世界的默认状态。
面对这种情况,研究者通常只有三招:第一招,只保留所有模态齐全的样本——但代价是样本量骤减,统计功效直线下降;第二招,退而求其次只用数据最全的一个模态——等于主动放弃多模态的互补红利;第三招,用均值或简单规则做插补(Imputation)——但这种方法引入的噪声可能让后续分析产生系统性偏差。三个选择都像是从降级方案里挑一个相对不那么亏的,本质上没有任何一个能让人满意。
更尴尬的是工具层面的空白。翻遍现有的开源生态:传统插补库HyperImpute、Scikit-learn、mice只处理单模态数据;多模态学习库mvlearn、TorchMultimodal虽然功能丰富,但默认假设输入是完整数据;MultiZoo/MultiBench只以仓库形式存在,甚至无法通过pip安装;唯一聚焦不完整多视图聚类的Survey_IMC是用MATLAB写的,而且只覆盖聚类单一任务。换句话说,在iMML出现之前,研究者要么自己手动“缝补”数据,要么在多个库之间来回做格式搬运,大量精力浪费在工程对接上,而不是科学问题上。
iMML:一站式解决不完整多模态数据的Python利器
iMML(incomplete Multi-Modal Learning)的设计目标非常明确:用一个统一的Python接口,把处理不完整多模态数据所需的全部能力收拢到一起。整个包覆盖了插补(Imputation)、数据缺失模拟(Amputation)、分类、聚类、数据检索、特征选择、特征提取和数据探索八大类功能,集成方法超过25种。用户只要会pandas、NumPy或PyTorch,就能以最小的学习成本切入。
整个包在设计上做了三个关键决策。第一个决策是纯Python化:把原本用MATLAB或R实现的方法全部翻译成原生Python,既减少依赖冲突,又提升运行效率。第二个决策是统一接口:所有算法都遵循scikit-learn风格的fit/predict范式,深度学习模块则与Lightning AI兼容,这让iMML的代码风格与主流机器学习工作流无缝衔接。第三个决策是模式生成与评估闭环:内置四种块级(block-wise)缺失模式生成功能,方便研究者在受控条件下评测算法鲁棒性。
在缺失模式生成方面,iMML支持四种块级缺失模式,每一种都对应一类现实场景:
MEM(Missing Entire Modality,整模态缺失):整个模态完全缺失,对应设备故障、样本损坏等场景。比如某台测序仪坏了一批样本,这部分样本的所有基因表达数据全部消失。
PM(Patterned Missing,模式化缺失):不同模态的缺失比例不同,对应不同模态采集代价差异明显的现实。比如影像数据便宜所以基本齐全,而蛋白组学昂贵所以缺得多。
MCAR(Missing Completely At Random,完全随机缺失):缺失与否与任何变量无关,是最理想的简化假设,常用于理论分析。
MNAR(Missing Not At Random,非随机缺失):缺失与否与未观测到的值本身相关,最贴近真实世界的复杂缺失机制。比如多中心研究中,某个站点只采集特定类型的模态数据。
六大应用场景全面验证:从生物医学到计算机视觉
工具好不好用,光靠嘴上说没有用,得拉到真实数据上遛一遛。论文用六个用例覆盖生物医学、文本分析、计算机视觉三个领域,从数据探索、缺失模拟、分类、聚类、插补到特征选择,基本把所有核心功能都验证了一遍。
场景一:TCGA胰腺癌多组学数据探索
第一个用例展示了iMML在真实生物医学数据上的探索能力。研究者分析了TCGA胰腺癌患者的四层组学数据:拷贝数变异(CNA)、RNA测序(基因表达GEx)、蛋白组学和突变数据。通过iMML的可视化模块,可以清晰看到CNA在所有患者中完全观测,而突变数据则存在大量缺失变量。更重要的是,样本量随模态组合变化极大——只用CNA和基因表达时有177名患者,但要求四层组学全部齐全时只剩下100人。这种直观的“按组合统计样本量”的展示方式,比传统UpSet图更贴合研究者实际决策的需要。
iMML还提供了部分信息分解(PID)统计模块,量化每个模态的冗余性(R)、唯一性(U)和协同性(S)。分析结果显示,基因表达与蛋白组学的组合对患者生存预测特别有信息量——协同性高且冗余性低。这一发现与胰腺癌蛋白质组学研究的结论一致:蛋白数据确实提供了转录组之外的独立临床信息。
场景二:数据缺失模拟(Amputation)
第二个用例展示了iMML的缺失数据生成能力。研究者构造了一个10个样本、4个模态的示例数据集,其中80%的样本存在某种形式的模态缺失。四种模式(MEM、PM、MCAR、MNAR)下,完整样本与不完整样本的数量完全一致,但缺失分布结构截然不同——这为算法鲁棒性测试提供了多样化、可复现的测试条件。
场景三:不完整视觉-语言数据的分类与检索
第三个用例使用经典的Food101食物识别数据集,验证视觉-语言场景下的分类与检索能力。iMML内置了RAGPT和M³Care两种视觉-语言分类算法。实验结果显示,RAGPT对模态缺失表现出极强的鲁棒性,在所有测试条件下都保持最高性能;M³Care虽然整体准确率稍低,但在高缺失率下的稳定性同样值得肯定。此外,RAGPT中的多通道检索器还能在数据不完整的情况下有效识别跨模态相关实例——即使模态有缺失,检索功能依然可用。
场景四:不完整多模态文本聚类
第四个用例转向无监督聚类,使用BBCSport文本数据集——116篇体育新闻、5个类别、4个不同视图。iMML提供了IMSCAGL、IMSR、LFIMVC、PIMVC、SIMCADC五种聚类算法。结果显示,专门为不完整数据设计的算法在所有测试条件下都优于“先均值插补再聚类”的基线方案。即使不完整样本比例超过60%,多种算法仍能产生有意义的聚类结果。其中IMSR在大多数条件下表现最佳,而PIMVC在高缺失率下非常具有竞争力。
场景五:计算机视觉中的插补
第五个用例验证插补功能的实际效果。研究者在Statlog图像数据集(2310个样本、7类户外图像)上模拟块级和特征级缺失,然后使用MOFA(多组学因子分析)和DFMF(深度矩阵分解)进行缺失值插补,并评估插补后的分类性能。结果显示,两种方法在插补精度和下游分类准确率上都显著优于均值插补基线。其中MOFA在30%至70%缺失率下,分类准确率比基线平均提升4%到7%。由于大多数多模态学习算法不接受缺失数据作为输入,这个插补功能是打通实际应用的关键一环。
场景六:不完整生物医学数据的特征提取与选择
最后一个用例聚焦高维生物医学数据。研究者使用nutrimouse数据集(40只小鼠的基因表达与脂肪酸浓度,共141个变量),模拟块级和特征级缺失后,用jNMF(联合非负矩阵分解)做特征提取和选择。结果显示,提取特征在多数缺失条件下优于直接选择特征,原因在于选择后的特征需要再次插补,引入了额外噪声。更值得一提的是,分析识别出的最重要的特征同时来自基因表达和脂肪酸测量——两个基因和两个脂肪酸——构成一个多模态生物标志物面板。量化分析表明,基因表达的相对重要性远高于脂肪酸数据。
性能与易用性的双重提升:Python重写的优势
iMML最费工夫的地方,可能不是算法本身,而是把原本用MATLAB和R实现的算法翻译成原生Python。这一步工作量和价值都被低估了:它不只是在“换语言”,而是让这些算法真正从“论文附属品”变成“可复用工具”。
翻译的效果有数据支撑。以六个代表性算法为例:LFIMVC提速9.33倍,EEIMVC提速8.45倍,NEMO提速5.61倍,SIMCADC提速5.47倍,IMSR提速3.69倍,DAIMC基本持平(0.97倍)。内存占用也普遍下降,多数算法获得了1.2到2倍的内存节省。更重要的是,翻译后的Python实现与原始代码在结果上几乎完全一致——Nemenyi-Wilcoxon-Wilcox检验显示p值等于1,说明两组结果在统计上没有显著差异。换句话说:又快又省内存,结果还对得上。
易用性方面的提升同样关键。虽然iMML也通过Oct2Py和rpy2提供了调用原始MATLAB/R实现的包装接口,但绝大多数场景下用户不需要触碰这些“祖传代码”。所有方法都通过GitHub和PyPI发布带版本标记的包,每个版本绑定明确的依赖环境,避免“换个机器就崩”的经典问题。对于深度学习模型,iMML深度集成了Lightning AI框架,支持GPU并行化、模型量化、自动学习率搜索等高级功能,同时可以完全控制随机种子,确保实验可复现。
未来展望:构建多模态学习的基础设施
论文的野心不止于做“又一个工具箱”。iMML的目标是成为多模态学习的基础设施——就像scikit-learn之于传统机器学习、Hugging Face之于自然语言处理那样,让“数据不完整”成为默认被支持的情况,而不是需要额外处理的边界条件。
从设计哲学上看,iMML刻意把首版重心放在了数值表示上。这个决策很务实:大多数模态(文本、图像、组学)最终都能转换成数值向量,优先覆盖数值表示能让一个包服务最多场景。同时,iMML也集成了视觉Transformer和语言模型等专用方法,保证从通用到专用都有支撑。当然,大规模系统化基准测试是下一步的关键方向——不同数据集、不同缺失机制、不同任务和领域之间的全面对比,才能真正回答“哪种方法更适合什么场景”这个核心问题。
需要清醒认识的是,工具类工作最大的风险在于社区维护的可持续性。当前版本迭代是否活跃、是否能吸引更多研究者贡献方法、能否跟上深度学习生态的演进速度,这些都决定了iMML会成为一个“长期生态”还是“一次性论文产物”。好在开源协议和统一框架已经为社区协作打好了基础,剩下的交给时间来检验。
龙迷三问
这篇论文到底在解决什么问题?多模态数据普遍存在缺失问题,现有工具却难以统一应对。
这篇工作最值得看的点是什么?论文通过6个不同领域的用例展示了iMML的实用性,包括生物医学、文本分析和计算机视觉。在分类任务中,RAGPT在Food101数据集上表现出对缺失模态的高度鲁棒性;在聚类任务中,专门为不完整数据设计的方法始终优于先插补再聚类的方法;在插补任务中,MOFA和DFMF明显优于均值插补基线。此外,将MATLAB和R算法翻译为Python后,大多数算法获得了1-10倍的加速和更低的内存使用。
这篇工作的边界或风险在哪里?优点:(1) 提供了统一的、用户友好的接口,集成了超过25种处理不完整多模态数据的方法;(2) 覆盖了多种任务(分类、聚类、插补、特征选择等)和多种缺失模式(MCAR、MNAR、MEM、PM);(3) 代码质量高,测试覆盖率达97%,支持跨平台;(4) 提供了可复现性机制(random_state参数);(5) 通过实际用例展示了在生物医学、文本分析和计算机视觉领域的广泛适用性。缺点:(1) 目前仅支持数值表示的数据,对原始文本、图像等非数值模态需要先进行向量化转换;(2) 不支持自动扩展任意外部算法来处理缺失模态;(3) 部分深度学习方法的计算成本较高(如RAGPT在Food101上需要约1周GPU时间);
如果你还有哪些想要了解的,欢迎在评论区留言或者讨论~
龙哥点评
论文创新性分数:★★★★☆
开发了一个统一的Python包iMML,集成了超过25种处理不完整多模态数据的方法,涵盖分类、聚类、插补、特征选择等任务,提供统一的用户友好接口。
实验合理度:★★★★☆
分类准确率, 聚类准确率, 插补误差, 特征选择性能, 计算速度提升倍数, 内存使用减少倍数
学术研究价值:★★★★☆
开发了一个统一的Python包iMML,集成了超过25种处理不完整多模态数据的方法,涵盖分类、聚类、插补、特征选择等任务,提供统一的用户友好接口;更关键的是问题定义是否可复用到同类任务。
稳定性:★★★☆☆
现有材料未提供充分的极端条件、重复运行或扰动测试,稳定性暂按中性评价。
适应性以及泛化能力:★★★☆☆
现有材料未完整展示跨数据集、跨场景或分布外实验,泛化能力仍需进一步验证。
硬件需求及成本:★★★☆☆
不适用(论文主要关注软件包的集成和易用性,而非单一模型的计算量)
复现难度:★★★☆☆
https://github.com/ocbe-uio/imml
产品化成熟度:★★★☆☆
论文验证以研究实验为主,真实部署中的时延、成本、维护和异常场景仍需补充验证。
可能的问题:现有材料尚未充分覆盖分布外泛化、部署成本、长期稳定性和失败案例。
主要参考文献
López A, Zobolas J, Dumontier T, Aittokallio T. Multi-modal learning with incomplete data. Nature Communications, 2026. https://www.nature.com/articles/s41467-026-77212-w_reference.pdf
iMML官方文档: https://imml.readthedocs.io/
iMML GitHub仓库: https://github.com/ocbe-uio/imml
多模态数据缺一块?iMML一口气补上25+种方案,插补、聚类、分类、可视化一站搞定。搞科研最怕数据和工具都“缺位”,来『龙哥读论文』粉丝群,和同行一起把缺失补上!
扫描下方二维码或者添加龙哥助手微信号加群:kangjinlonghelper。
一定要备注:研究方向+地点+学校/公司+昵称(如 多模态+上海+清华+龙哥),根据格式备注,可更快被通过且邀请进群。
『龙哥读论文』微信群目前包含:图像处理、大模型及智能体、自动驾驶及机器人、AI医疗及AI金融5个群
*本文仅代表个人理解及观点,不构成任何论文审核或者项目落地推荐意见,具体以相关组织评审结果为准。欢迎就论文内容交流探讨,理性发言哦~ 想了解更多原文细节的小伙伴,可以点击"阅读原文",查看更多原论文细节哦!