作者:胡连宇,石同凯,冯伟,尚凡华,万亮(天津大学智算学部ViL实验室)
单位:天津大学
论文:https://arxiv.org/abs/2410.06558
https://github.com/hulianyuyy/Deep_Correlated_Prompting
论文概述
当前多模态大模型通常建设输入是模态齐全的。然而,由于隐私问题、传感器设置、信号传输等因素,现实中输入常常可能是模态缺失的。为解决这一问题,本文提出了面向视觉理解的深度关联提示学习。在MMIMDb、HatefulMemes以及Food101三个数据集上的广泛实验验证了模型的有效性。充足的消融实验验证了模型的鲁棒性及可扩展性。
前言
问题定义:给定一个拥有M个模态(如M=2, 对于图像和文本)的数据集
,参考之前方法[1], 我们将
定义为完整数据,
以及
为模态缺失的数据, 其中只有一个模态是缺失的(比如文本或图像)。该情况可以推广到任意多模态。
回顾之前方法:MMP[1]首先提出使用提示学习策略解决模态缺失问题。对于M模态输入,它将
个提示向量赋给每种模态缺失情形(如3种提示向量,对于图像-文本任务,1种向量给模态齐全情形,1种向量给图像缺失情形,1种向量给文本缺失情形)。它直接将提示向量和输入进行拼接送入网络。在训练过程中, 只有提示向量和网络末端的分类器被训练, 其余部分均被冻结。
方法框架
虽然MMP[1]通过引入提示向量,相比于直接丢弃缺失模态的baseline能有效提示鲁棒性(如图1所示),但是它仅在输入层面简单将提示向量和输入拼接,忽略了以下方面:(1)忽略不同层之间提示向量的关联;(2)缺乏根据输入动态调整提示向量的能力;(3)忽略了不同模态间提示向量的互补性。
图1:MMP[1]与baseline对比
因此,我们提出多种不同提示向量,分别应对以上缺点,如图2所示。
图2:所提出的三种提示学习方法图示
Correlated prompting:前一层的提示向量可以为后一层提供指导。如图2(c)所示, 因此我们在第 J层之前使用函数 F(实例化为一个MLP)基于上一层的提示向量,生成下一层的提示向量。第一层的提示向量被随机初始化。为结合多模态互补信息,我们将多个模态中前一层的提示向量,送入
生成各模态下一层的提示向量。
Dynamic prompting: 不同输入往往需要不同类型的提示。我们提出根据输入在第一层网络之前动态生成提示向量。如图2(d)所示,我们使用函数
(实例化为一个attention layer)基于输入向量,为本模态动态生成提示向量。
Modal-common prompting: 不同模态间存在互补信息与共有信息。我们提出modal-common prompts, 存储模态间共有信息, 当某模态缺失时, 为其提供缺失信息。图2(f)所示, 我们随机初始化了一个modal-common prompt, 使用函数
将其转化为每个模态的提示向量。
我们将以上三种提示向量拼接,并进一步与输入拼接后,送入模型。在训练过程中,只有提示向量及其生成模块,以及模型末端的分类器被更新,其余部分被冻结,因此只需要训练整个模型约2.4%的参数。整个模型框架如图3所示。
图3:整个模型框架
实验部分
实验细节:我们使用CLIP ViT-B/16作为基础模型,输入大小为224×224,最大文本输入长度为77。提示向量总长度为36,在一个3090 GPU上完成训练。