多模态表示学习是一个具有挑战性但至关重要的研究领域,涉及整合来自多个异构数据源的信息。它在多媒体、情感计算、机器人学、金融、人机交互和医疗保健等众多实际应用中发挥着关键作用。然而,多模态研究一直面临资源有限的问题,难以深入研究(1)跨领域和模态的泛化能力,(2)训练和推理过程中的复杂性,以及(3)对噪声和缺失模态的鲁棒性。
为了加速对未充分研究的模态和任务的进展,同时确保实际应用的鲁棒性,研究人员发布了MultiBench,这是一个系统化的大规模多模态学习基准测试套件,涵盖15个数据集、10种模态、20个预测任务和6个研究领域。MultiBench提供了一个自动化的端到端机器学习管道,简化和标准化了数据加载、实验设置和模型评估过程。为了反映实际需求,MultiBench旨在全面评估(1)跨领域和模态的性能,(2)训练和推理过程中的复杂性,以及(3)对噪声和缺失模态的鲁棒性。
为了配合MultiBench,研究人员还提供了MultiZoo,这是20种核心多模态学习方法的标准化实现,统一了融合范式、优化目标和训练方法等创新。MultiZoo以模块化的方式实现这些方法,以便新研究人员易于使用,方法可组合,结果可复现。
MultiBench目前支持以下数据集:
要添加新的数据集,可以按以下步骤进行:
MultiBench支持以下类型的算法:
要添加新算法,可以按以下步骤进行:
MultiBench欢迎通过新的研究领域、数据集、任务、算法和评估方法来做出贡献。请参考上述部分了解添加新数据集和算法的说明,如果您希望添加特定的数据集或算法,请提交pull request。研究人员计划将MultiBench作为未来研讨会、竞赛和学术课程的主题 - 敬请关注即将发布的参与邀请!
MultiBench提供了多个领域的实验示例,包括情感计算、医疗保健、机器人学、金融、人机交互和多媒体。以下是一些实验示例:
研究人员发布了处理后的数据集:sarcasm、mosi、mosei和humor。原始数据集也可以在MultimodalSDK(MOSI和MOSEI)、MUStARD和UR-FUNNY公开获取。可以使用datasets/affect/get_data.py
获取处理后的数据,注意sarcasm
指MUStARD,humor
指UR-FUNNY。
examples/affect/目录下有几个运行情感数据集的示例脚本。例如,要使用简单的晚期融合运行情感数据集,首先可以使用:
traindata, validdata, test_robust = get_dataloader('/home/pliang/multibench/affect/pack/mosi/mosi_raw.pkl', data_type='mosi')
或者,如果不想使用打包数据,并期望具有相同最大序列长度的数据,请使用max_pad
和max_seq_len
选项,并记得在train
和test
函数中设置is_packed=False
:
traindata, validdata, testdata = get_dataloader('/home/pliang/multibench/affect/pack/mosi/mosi_raw.pkl', data_type='mosi', max_pad=True, max_seq_len=50)
然后执行:
python3 examples/affect/affect_late_fusion.py
MIMIC数据集的访问受到限制。要获取此数据集的预处理版本,请按照这里的说明获取必要的凭据。获得凭据后,请发送电子邮件至yiweilyu@umich.edu,提供凭据证明并索要预处理的"im.pk"文件。
获得"im.pk"文件后,可以通过调用examples/mimic/get_data.py中的get_dataloader函数来获取此数据集的数据加载器。get_dataloader函数有2个输入:第一个指定要执行的任务(-1表示死亡率任务,1表示icd9 10-19任务,7表示ic9 70-79任务)。输入模态将是静态(大小为5的向量)和时间序列(形状为24x30)。
examples/healthcare/目录下有几个运行MIMIC 的示例脚本。例如,要使用低秩张量融合运行MIMIC,执行:
python3 examples/healthcare/mimic_low_rank_tensor.py
对于Vision and Touch数据集,dataset/robotics/文件夹中包含下载数据集的脚本(download_data.sh)。下载数据后,使用dataset/robotics/data_loader.py访问预处理的数据加载器。请注意,此数据集只有训练集和验证集,因此输出将是2个数据加载器的元组而不是3个。默认任务是Contact,但可以通过将"output='ee_yaw_next'"作为参数传递给get_data函数来获取End Effector任务的数据加载器。
有关此数据集的更详细信息,请参阅原始repo。
examples/robotics/目录下有几个运行Vision and Touch的示例脚本。例如,要在Contact任务上使用低秩张量融合运行Vision and Touch,执行:
python3 examples/robotics/LRTF.py
MuJoCo Push实验的代码位于examples/gentle_push
目录下。每种模型类型在此目录下都有自己的Python文件,可以直接执行以运行实验。
例如,要运行晚期融合模型:
python examples/gentle_push/LF.py
这也会在第一次运行时将数据集下载到datasets/gentle_push/cache
。由于原始数据集托管在Google Drive上,有时自动下载可能会因各种原因失败。在Colab上运行可以解决这个问题。此外,您可以手动下载这些文件并将它们放在正确的位置:
datasets/gentle_push/cache/1qmBCfsAGu8eew-CQFmV1svodl9VJa6fX-gentle_push_10.hdf5
。datasets/gentle_push/cache/18dr1z0N__yFiP_DAKxy-Hs9Vy_AsaW6Q-gentle_push_300.hdf5
。datasets/gentle_push/cache/1JTgmq1KPRK9HYi8BgvljKg5MPqT_N4cR-gentle_push_1000.hdf5
。金融实验的代码位于examples/finance
目录下。每种模型类型在此目录下都有自己的Python文件。每个文件接受两个参数,--input-stocks
和--target-stock
。例如,要在论文中基准测试的股票上运行简单的晚期融合:
python examples/finance/stocks_late_fusion.py --input-stocks 'MCD SBUX HSY HRL' --target-stock 'MCD'
python examples/finance/stocks_late_fusion.py --input-stocks 'AAPL MSFT AMZN INTC AMD MSI' --target-stock 'MSFT'
python examples/finance/stocks_late_fusion.py --input-stocks 'MRK WST CVS MCK ABT UNH TFX' --target-stock 'UNH'
您可以指定任意股票进行下载。数据加载器将自动为您下载数据。如果股票不覆盖datasets/stocks/get_data.py
中定义的日期范围,可以指定不同的日期范围。
对于单模态实验,运行stocks_early_fusion.py
,将相同的股票传递给--input-stocks
和--target-stock
。
以下是论文中概述的每个类别下的完整股票列表:
AI数字人视频创作平台
Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。
一站式AI创作平台
提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作
AI办公助手,复杂任务高效处理
AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!
AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI小说写作助手,一站式润色、改写、扩写