UniAdapter: Unified Parameter-Efficient Transfer Learning for Cross-modal Modeling

UniAdapter: Unified Parameter-Efficient Transfer Learning for Cross-modal Modeling

  • 论文链接:https://arxiv.org/pdf/2302.06605.pdf
  • 源码链接:https://hub.nuaa.cf/RERV/UniAdapter

简介

预训练-微调范式在自然语言处理,计算机视觉和多模态建模中取得了巨大的成功,其中模型首先用大规模数据预训练,然后针对每个下游任务进行全微调。最近的研究进一步发现,通过引入额外的可训练模块来微调/调整基础模型以适应新的模态。近期的研究进一步发现,通过引入额外的可训练模块来微调/调整基础模型以适应新的模态,显著优于以前的研究,例如用于图像到视觉传输的时间建模模块。

然而,随着基础模型变得越来越大(例如具有175B参数的GPT-3)和下游任务数量的增加,特别是在多模态场景中,传统的全微调变得不切实际,因为它需要大量计算和存储需求。寻找新的方法,在不产生过高成本情况下,有效地将现有基础模型迁移到下游任务,成为该领域一项重要挑战。

目前已经探索了上述挑战的替代方法。一种简单的方法使用线性探索,它几乎冻结整个模型,并且只为每个任务调整了一个轻量化头。它只是次优的,因为表示和特征空间是固定的。另一条研究路线是在基础模型中添加非常大的额外模块(例如Flamingo)的少样本学习缓解这个问题,这仍然远未达到全微调策略。

近年来,在许多研究领域,参数有效适配器在推广基础模型方面取得了显著的成果。在NLP和CV中,可调整适配器和可调整提示向量在迁移学习过程中使用冻结backbone。它们还显示出跨模态建模的巨大潜力,因为它们能够将预训练的基础模型从跨木平台迁移到单模态(例如视频分类)或其他下游任务(例如图像-文本推理)。然而,上述研究通常考虑单模态/跨模态到不同下游任务。考虑到多模态建模中各种下游任务(例如,视频文本检索、图像文本检索、视频和视觉问答)。同时以前的方法通常应用适配器,而不考虑它们之间的跨模态交互知识共享,这是跨模态建模关键。

受到上述观察启发,本文研究了一个关键问题,即有效地将视觉语言模型转化为一个统一的跨模态建模,目标是使视觉语言预训练模型能够适应统一的模态(如图像和视频)以及统一的跨模态下游任务(如检索和推理)。本文提出了UniAdapter,它统一了用于多模态建模的适配器,并将它们分发到每个模态和跨模态交互。UniAdapter有几个先前研究没有的吸引人的优势:1. 为了对跨模态交互进行建模,本文引入了一种知识分享方案,其中所有适配器中向下投影层都是共享的,而向上投影可以学习模态特定知识。2. 为了在多模态模型的交叉注意力过程中保持语言查询完整性,本文将残差学习纳入语言查询中。3. 本文提出了无参数的帧感知注意力,以无成本地统一视频和图像模态,不仅使本文方法适用于更多下游任务,还减轻了视频帧中噪声问题

本文方法

整体架构

UniAdapter目标使根据参数有效原则,为统一的跨模态下游任务启用预训练的视觉语言模型。除此之外,本文将单适配器均匀地插入文本、视觉和多模态编码器地每个Transformer层中,本文地框架有三个独特的跨模态迁移学习设计。1. 为了在多模态编码器交叉注意力过程中保持语言查询完整性,本文为语言查询引入了残差学习,2. 本文引入了统一和跨模态地知识共享设计,其中所有适配器中向下投影层都是共享的,而向上投影可以学习模态特定知识。考虑到视频帧的灶神问题,本文提出了无参数的帧感知注意力以无成本的统一视频和图像模态,以缓解视频语言领域中存在的噪声问题。
UniAdapter: Unified Parameter-Efficient Transfer Learning for Cross-modal Modeling_第1张图片

语言查询中的残差学习

采用多模态编码器进行跨模态令牌级建模,以文本特征为查询输入,将视觉特征插入每个跨注意力层,注入视觉特征。标准方法在Transformer编码器架构中的多头注意力后插入适配器。然而对于多模态编码器,直接遵循这种方法(在交叉注意力层后面插入适配器)很难处理混合信息,并且可能会在多模态编码器的交叉注意力过程中破坏查询的完整性。因此,本文引入了语言查询的残差学习解决这个问题。

多个多模态编码器块由多头自注意力(MSA)、多头交叉注意力(MCA)和全连接层FFN组成。多模态编码器将文本特征 f t f^{t} ft作为输入,视觉特征插入每个交叉注意力层以注入视觉特征。每个交叉注意力层将自注意力输出特征 q q q作为查询Q,视觉特征 f v f^{v} fv作为键K和值V。每个块的计算过程可以描述为:
q = l l − 1 + M S A ( l l − 1 ) h = q + M C A ( Q = q , K = f v , V = f v ) l l = A d a p t e r ( h ) + F F N ( L N ( h ) ) \begin{aligned} q&=l_{l-1}+MSA(l_{l-1})\\ h&=q+MCA(Q=q,K=f^{v},V=f^{v})\\ l_{l}&=Adapter(h)+FFN(LN(h)) \end{aligned} qhll=ll1+MSA(ll1)=q+MCA(Q=q,K=fv,V=fv)=Adapter(h)+FFN(LN(h))
上式中可以看出隐藏状态h包含查询特征和跨模态混合特征。以单一模态适配器学习这样的混合信息是非常困难地。此外,文本查询信息可能再每个交叉编码器块中的传输过程中丢失。本文提出引入一个残差形式的额外适配器来捕捉/维护查询信息,该适配器成为查询残差适配器。本文将其插入子注意力层之后,并以残差形式直接将输出添加到FFN层。此时 l l l_{l} ll可以改写为:
l l = A d a p t e r ( q ) + A d a p t e r ( h ) + F F N ( L N ( h ) ) l_{l}=Adapter(q)+Adapter(h)+FFN(LN(h)) ll=Adapter(q)+Adapter(h)+FFN(LN(h))
简单引入查询残差适配器可能会引入额外更新参数,这是轻量化原则不期望的。观察到文本编码器也将文本特征作为输入,并将输出添加到FFN层。因此文本适配器知识可以通过两个适配器之间的完全权重共享与查询残差适配器共享,以避免额外的参数成本。

UniAdapter

为了将视觉语言模型迁移到下游任务,一种简单的方式是将适配器注入每个模态模块(视觉、文本和多模态融合)。然而,为了每个模态使用单独适配器会带来相对高参数。同时这些适配器没有跨模态交互,导致性能不理想。本文提出UniAdapter解决上述问题,通过部分权重共享将单模态和多模态适配器统一为一个框架。UniAdapter核心思想是共享来自多个模态的知识以增强跨模态交互,同时减少额外的可调整参数。如图2b所示,UniAdapter由一个统一的下投影层 W d o w n ∈ R ( d × r ) W_{down}\in \mathcal{R}^{(d\times r)} WdownR(d×r),非线性激活函数 σ \sigma σ和模态特定上投影层 W u p M ∈ R ( r × d ) W_{up}^{\mathcal{M}}\in \mathcal{R}^{(r\times d)} WupMR(r×d)组成, M ∈ { V , T , C } \mathcal{M}\in \{\mathcal{V},\mathcal{T},\mathcal{C}\} M{V,T,C}。所有UniAdapter下投影层都是共享的,而上投影可以学习特定于模态的知识。

单模态情况

尽管将统一的下投影应用于跨模态知识分享,但学习模态特定表示对于单模态编码器也很重要。因此使用两个模态特定视觉编码器和文本编码器的下投影层 ( W u p V , W u p T ) (W_{up}^{\mathcal{V}},W_{up}^{\mathcal{T}}) (WupV,WupT)
U n i A d a p t e r ( x V ) = x V + s ⋅ σ ( x V W d o w n ) W u p V U n i A d a p t e r ( x T ) = x T + s ⋅ σ ( x T W d o w n ) W u p T \begin{aligned} UniAdapter(x^{\mathcal{V}})&=x^{\mathcal{V}}+s\cdot \sigma(x^{\mathcal{V}}W_{down})W_{up}^{\mathcal{V}}\\ UniAdapter(x^{\mathcal{T}})&=x^{\mathcal{T}}+s\cdot \sigma(x^{\mathcal{T}}W_{down})W_{up}^{\mathcal{T}}\\ \end{aligned} UniAdapter(xV)UniAdapter(xT)=xV+sσ(xVWdown)WupV=xT+sσ(xTWdown)WupT
视觉编码器和文本编码器采用相同Transformer编码器架构,遵循Towards a unified view of parameter-efficient transfer learning将UniAdapter注入自注意力层和FFN层。

多模态情况

本文还利用特定的下投影层进行多模态编码器迁移学习。但如前文所述,输入特征由查询特征和跨模态融合特征组成。以单一的模态学习这样的混合信息是非常难的。本文呢考虑重新使用文本下采样层 W u p T W_{up}^{\mathcal{T}} WupT到UniAdapter以捕捉文本信息。以这种方式,跨模态下投影层 W u p c W_{up}^{c} Wupc能更容易处理跨模态信息。在跨模态的UniAdapter可以描述为:
U n i A d a p t e r ( x C + s ⋅ [ σ ( x C W d o w n ) W u p T + σ ( x C W d o w n ) W u p C ] ) UniAdapter(x^{\mathcal{C}}+s\cdot[\sigma(x^{\mathcal{C}}W_{down})W_{up}^{\mathcal{T}}+\sigma(x^{\mathcal{C}}W_{down})W_{up}^{\mathcal{C}}]) UniAdapter(xC+s[σ(xCWdown)WupT+σ(xCWdown)WupC])
对于多模态编码器,本文将UniAdapter插入在跨注意力层和FFN之间。

无参数帧感知注意力

对于视频下游任务,本文算法合并由视觉编码器抽取的帧特征zu欧维视频级别跨模态对齐的视觉输入。然而,该方法考虑了具有相同权重高的所有帧,并忽略了视频中噪声和未对齐问题。受到LGDN启发,本文提出了用于视频检索的无参数帧感知注意力(PFA),它突出显著帧中令牌,同时在交叉注意力过程中抑制噪声或无关帧中令牌,而不引入额外的参数。

给定有抽取帧特征 { f C L S , i e , f i , j e ∣ i = 1 , … , n , j = 1 , … , m } \{f_{CLS,i}^{e},f_{i,j}^{e}|i=1,\ldots,n,j=1,\ldots,m\} {fCLS,ie,fi,jei=1,,n,j=1,,m}的视频-文本对,首先通过计算帧特征和文本[CLS]令牌特征 f C L S t f_{CLS}^{t} fCLSt的点乘识别第i帧的注意力权重 A i A_{i} Ai
A i = exp ⁡ ( f C L S , i e ⋅ f C L S t ) ∑ i exp ⁡ ( f C L S , i e ⋅ f C L S t ) A_{i}=\frac{\exp(f_{CLS,i}^{e}\cdot f_{CLS}^{t})}{\sum_{i}\exp(f_{CLS,i}^{e}\cdot f_{CLS}^{t})} Ai=iexp(fCLS,iefCLSt)exp(fCLS,iefCLSt)
之后在每个帧特征 f t f^{t} ft上应用PFA注意力权重形成最终输入视觉特征。
P F A ( f i e ) = { f C L S , i e , A i ∗ f i , j e ∣ 1 ≤ i ≤ n , 1 ≤ j ≤ m } PFA(f_{i}^{e})=\{f_{CLS,i}^{e},A_{i}*f_{i,j}^{e}|1\leq i\leq n,1\leq j\leq m\} PFA(fie)={fCLS,ie,Aifi,je∣1in,1jm}

实验

你可能感兴趣的:(有效参数迁移,人工智能,迁移学习,深度学习)