结合异构图神经网络,HeGraphAdapter 提升 CLIP 模型性能研究 !

大模型向量数据库机器学习

备注好友: 方向-学校/公司-姓名/昵称

【AIGC 先锋科技】交流群

picture.image

picture.image

基于 Adapter 的调优方法在将预训练的视觉语言模型(VLMs)的知识迁移到下游任务方面显示了巨大的潜力。

然而,在审查现有 Adapter 后,作者发现它们通常无法完全探索不同模态之间的交互关系,以构建特定任务的知识。

此外,现有工作通常仅关注正文本 Prompt (或关系挖掘)之间的相似性匹配,这使得区分具有高度相似视觉内容的类变得困难。为了解决这些问题,在本文中,作者提出了一种名为异构图 Adapter (HeGraphAdapter)的新颖方法,以实现对下游任务的视觉语言模型的调优。

具体而言,作者首先构建了一个统一的异构图模式,其中包含:

(i)视觉节点、正文本节点和负文本节点,以及(ii)多种边连接,以同时建模模态内的结构知识、模态间的结构知识和跨类结构知识。

接下来,作者采用一种特定的异构图神经网络( HGNN )来挖掘多模态(异构)结构知识,以适应视觉和文本特征用于下游任务。

最后,在HeGraphAdapter之后,作者同时构建文本基和视觉基的分类器,以全面提高CLIP模型的性能。

在11个基准数据集上的实验结果证明了所提出HeGraphAdapter的有效性和优势。

1 Introduction

最近,大规模的视觉语言模型(VLMs),如CLIP [1]及其变体,为计算机视觉提供了一种新范式,并在许多下游任务上表现出优越的泛化性能,例如零样本泛化[5],少样本分类[6]和跨分布(OOD)检测。VLMs通常预先在数百万对视觉语言数据上进行训练,使它们能够理解开放词汇视觉概念。它们在与手工艺文本 Prompt (如“一张{类别}的照片”)结合时,展示了出色的泛化能力。

总的来说,存在三种迁移学习方法将VLMs的知识转移到下游任务,即全量微调、 Prompt 调优和适配式调优。全量微调方法[8, 9]专注于调整预训练模型的所有参数,以适应特定下游任务。然而,这些方法在微调过程中需要大量资源,并在低数据场景中面临过拟合的风险。 Prompt 调优方法旨在在预训练模型上引入可学习 Prompt ,以调整特征以适应下游任务。例如,一些工作利用手工艺模板(如“一张{类别}的照片”)或设计可学习文本 Prompt 来微调CLIP模型。然而,这些方法在训练期间通常需要计算文本编码器的梯度,通常导致计算成本高。

适配式调优方法专注于在输出端优化文本或视觉特征,以提高特定任务的表现。例如,TaskRes [17]引入了具有文本特征的残差向量来学习特定任务的知识。Tip-Adapter [18]从视觉特征构建一个键值对缓存模型,以优化分类器以适应下游任务。AMU-Tuning [15]引入了一个视觉辅助模态来优化分类器以提高下游任务的表现。

然而,这些适配式方法有两个主要局限性:

1)仅使用单一模态学习特定任务知识,2)无法利用下游任务中文本和视觉特征之间的固有结构关系。

为了克服上述限制,最近提出了一种名为GraphAdapter的方法[19],该方法通过利用双知识图谱学习模型来学习特定任务的知识。特别地,GraphAdapter首先采用文本和视觉知识图谱分别模型化文本和视觉模态之间的类间关系,并利用常规图卷积网络[20]挖掘两图中的文本特征。

然后,通过加权'总和'融合策略将多模态图节点表示进行融合。

然而,作者观察到GraphAdapter存在三个主要缺陷:

1 它通过简单的加权'总和'融合策略将多模态知识结合在一起,这无法充分探索不同模态之间的交互作用。

2 它只考虑文本节点的正面 Prompt ,这使得区分具有高视觉相似度的类变得困难。

3 它仅通过利用双图来优化文本模态特征,而忽视了调整视觉模态特征以确定最终分类器的必要性。

针对这些问题,本文提出了一种新颖的异构图 Adapter (HeGraphAdapter)用于调优 Transformer (VLMs)。与先前的 Adapter 方法[17, 18, 19]不同,作者提出的HeGraphAdapter利用异构图学习,全面捕捉不同模态之间的多模式知识,共同适应文本和视觉特征以适应下游任务。

因此,作者首先提出了一种异构图,涉及三种类型的节点,即视觉节点、正文本节点和负文本节点,分别表示不同模态下的'类'表示。正文本节点和负文本节点分别初始化为正 Prompt ("A photo of {class}")的CLIP特征和负 Prompt ("A photo of no {class}")的CLIP特征,而视觉节点则通过计算每个类别内的视觉图像的'平均'特征初始化。

此外,在作者的异构图中,有六种类型的边连接,编码不同类型节点之间的丰富关系,如第3.1.1节详细介绍的那样。然后,作者开发了一种特定的异构图神经网络(HGNN),挖掘异构结构知识并获取特定任务的手写文本和视觉特征。最后,作者同时构建文本和视觉基类的分类器,以全面提高CLIP模型在下游任务上的性能。

总的来说,本文的主要贡献如下:

  1. 作者提出了一种新颖的HeGraphAdapter,用于调优多模态VLMs。它可以在统一模型中同时全面模拟模态内、模态间和跨模态类结构知识。据作者所知,这是首次利用异构图学习来解决多模态VLM微调问题的研究。
  2. 为了在下游任务中获取独特的任务特定知识,作者将负面文本 Prompt 引入到作者的异质图学习中,以充分模拟不同类节点之间的相似性和不相似性关系。
  3. 作者同时构建文本基和视觉基的分类器,以全面提高CLIP在下游任务上的性能。
  4. 经过在11个基准数据集上的广泛实验,作者的HeGraphAdapter与其他许多相关方法相比,在各种少样本分类任务上表现出卓越的性能。

2 Related Work

视觉语言模型的调优: 视觉语言模型(VLMs)旨在同时学习视觉和语言表示,通过预训练大规模文本图像对齐数据集。大量研究表明,预训练的VLMs在零样本学习,少样本分类和跨模态生成任务方面具有显著的能力。现有工作主要探讨轻量级微调技术,以将VLMs的知识转移并适应下游任务。

微调技术可以分为三类:全量微调、 Prompt 微调和 Adapter 式微调。全量微调方法[8, 9]使用特定任务的数据调整预训练模型中的所有参数。LOMO[8]设计了一种低内存优化方法,通过融合梯度计算和参数更新来减少微调过程中的内存使用。 Prompt 微调方法受到自然语言处理启发,主要在预训练模型上引入可学习的 Prompt ,以适应下游任务。例如,零样本CLIP[1]使用自定义的模板(如“一张{类别}的照片”),并在下游任务中报告出色的泛化性能。Coop[6]为文本编码器引入可学习的 Prompt ,以学习任务特定的知识。

CoCoOp[24]设计了一种轻量级元网络,为每张图像生成文本 Prompt ,从而增强CoOp的泛化能力。MaPLe[11]引入了分支感知分层 Prompt ,同时微调文本和图像编码器的表示。

Adapter 式微调方法通过将视觉或文本特征在输出端进行调整,以适应下游任务。CLIP-Adapter[10]设计了一个基于MLP的 Adapter 模块,在输出端微调文本和视觉特征。AMU-Tuning[15]通过引入其他预训练大型模型生成的辅助特征,学习有效的对数偏差,以提高下游任务的性能。

GraphAdapter[19]构建了一个双知识图,以模拟类别间的关系,以适应下游任务的文本特征。

异质图学习:异质图(HeGraph)表示学习在形式化不同类型节点和关系之间的结构知识方面表现出色,已在现实场景中广泛应用,如推荐系统[29],医疗系统[30],计算机视觉[31]。HeGraph 的核心挑战是构建一个需要考虑不同关系下邻居信息差异的图,并实现层次聚合。

异质图神经网络(HGNN)主要分为两类:基于元路径(Meta-path)的方法和无元路径( Meta-path-free)的方法。

基于元路径的方法首先聚合具有相同语义的同元路径结构信息,然后将具有不同语义的同元路径信息进行融合。相反,无元路径方法同时集成结构信息和语义信息。

3 Approach

在本节中,作者提出了一个异构图 Adapter (HeGraphAdapter),它通过考虑积极的文本 Prompt 、消极的文本 Prompt 和视觉 Prompt ,同时全面地建模了模态内、模态间和模态间的结构知识,以统一的模型形式。所提出的VLM调优方法的整体框架如图1所示,包括 Prompt 生成、HeGraphAdapter和标签预测。

picture.image### Heterogeneous Graph Adapter

3.1.1 Heterogeneous graph construction

为了发掘下游任务的结构知识并构建一个区分性分类器,作者构建了一个异质图来捕捉不同类别之间的关系,其中表示包含三种节点的节点集,表示包括六种边的边集。和分别表示节点和边特征的集合。它们的具体细节如下。

节点 对于节点,它涉及三类节点,即正文本节点,负文本节点和视觉节点,分别表示不同模态的'类别'表示。作者用来表示正文本节点、负文本节点和视觉节点的特征集合。对于一个特定的任务,具有类微调数据集,作者为每个类别设计一些正文本 Prompt (例如,"一个{类别}的照片"),并用CLIP模态[1]编码以初始化正文本节点的特征表示,如[19]中的建议所示。同时,为了挖掘每个类别的负语义知识,作者还为每个类别引入负文本 Prompt (例如,"一个没有{类别}的照片")[35],并用CLIP模态编码以初始化负文本节点的特征。此外,作者使用CLIP的视觉编码器来获取所有微调图像的视觉特征,并在每个类别内计算'平均'特征以初始化视觉节点的特征。

如图1所示,对于边集中的边,它涉及六种类型的边连接,其中 表示从负文本节点到正文本节点的有向边, 表示从视觉节点到正文本节点的边, 表示正文本节点之间的边, 表示从正文本节点到负文本节点的边, 表示从视觉节点到负文本节点的边, 表示视觉节点之间的边。用 表示 中每个边的相关权重值,即 ,其他类型边同理。这些权值的详细计算方法如下。

首先,对于连接正文本和视觉节点的边,即 , 和 ,作者将其边权重计算为节点特征之间的余弦相似度。

然后,对于连接每个正文本/视觉节点到其对应负文本节点的边,即 , 和 ,作者将其边权重计算为节点特征之间的差异,例如 ,,因为负节点编码的正反信息与正节点相反。最后,对于连接每个正文本/视觉节点到其他负文本节点的边,即 和 ,作者简单地将边权重计算为节点特征之间的余弦相似度。

3.1.2 Heterogeneous graph message passing

在构建异质图之后,作者利用受启发于[33, 36, 37]等工作的异质图神经网络(HGCN)进行不同类型节点和关系的消息传递。

在这里,作者开发了一种知识引导的分层聚合方法,包括三个步骤:负文本节点聚合、正文本节点聚合和视觉节点聚合,如下所述。接下来,作者用 表示 ,并交替使用。

负文本节点聚合: 人工制作的负文本 Prompt 在下游任务中往往无法有效地理解“不”的含义。因此,作者允许负文本节点从其相邻的视觉和正文本节点中获取上下文知识信息。

具体来说,作者考虑元路径中的异质语义关系,并根据元路径聚合邻居节点的特征。第i个负文本节点的聚合特征计算如下:

picture.image

其中,, 是一个可学习的投影矩阵。 表示根据每个元路径 与节点 相连接的邻居,。 表示元路径 的权重。在节点聚合为负后,作者更新 为 ,并将当前特征矩阵 更新为 ,以进行以下过程。

正文本节点聚合: 为了获取每个类别的判别性文本特征,正文本节点可以从负文本节点和视觉节点聚合信息。正文本节点的异质关系定制为 。

作者按照如下方式聚合每个正文本节点的邻居:

picture.image

其中,表示一个可学习的变换矩阵。表示根据元路径连接到第个正文本节点的邻居。表示元路径的权重。

在正文本节点聚合后,作者更新正文本 Prompt 的特征,得到。所有节点的特征矩阵更新为。

视觉节点聚合:为了学习视觉节点的视觉偏差并优化所有微调样本的视觉特征,作者还考虑利用视觉节点的结构信息进行上下文学习。

具体来说,作者通过将第i个视觉节点的邻居信息聚合来学习第i个视觉节点的视觉偏差:

picture.image

是可学习的变换矩阵, 表示根据元路径 与视觉节点 相连接的邻居。权重 是超参数。

Tuning for Downstream Tasks

在HeGraphAdapter之后,作者可以获得针对特定任务的文本特征和视觉特征,这些特征用于所有微调样本。

然后,作者同时构建文本基础和视觉基础的分类器,以全面提高CLIP模型在下游任务上的性能。假设CLIP模型的视觉编码器将类别为的视觉特征编码为,则文本分类损失的计算如下:

picture.image

视觉相似性 表示 CLIP 模型中的一个学习温度参数 。为了探索视觉样本之间的关系,作者构建了一个基于视觉的分类器,灵感来源于 Tip-Adapter [18]。基于视觉的分类器利用一个键值缓存模型通过特征检索来优化 CLIP 模型的分类结果。对于 类和 -shot 任务,作者存储所有训练视觉特征 和相应的 one-hot 标签向量 。

为了从下游任务中获取任务特定的知识,作者学习每个类的视觉偏差,并通过提出的 HeGraphAdapter 模块将所有微调样本的特征更新为 ,从而得到视觉基于的分类损失 [18]。

然后,作者计算视觉基于的分类损失如下:

picture.image

通过在两个损失中添加一个平衡参数λ,作者得到最终的总体损失函数 如下:在调优过程中,作者只需要调整作者 HeGraphAdapter 中 (式3)、(式1)和 (式5)的参数。

4 Experiments

Datasets and Implementation Details

Datasets: 作者在少样本分类和域泛化任务上进行实验,以评估作者的HeGraphAdapter的有效性。根据之前的 Adapter 风格研究[6, 18, 19],作者选择了11个基于少样本分类任务的基准数据集,包括ImageNet[38],StanfordCars[39],UCF101[40],Caltech101[41],Flowers102[42],SUN397[43],DTD[44],EuroSAT[45],FGV-CAircraft[46],OxfordPets[47],以及Food101[48]。所选数据集涉及各种视觉分类任务,包括遥感分类,动作识别,纹理分类和细粒度分类。

遵循GraphAdapter[19]的工作,作者在ImageNetV2[49],ImageNet-Sketch[50],ImageNet-A[51]和ImageNet-R[52]数据集上构建了泛化实验。

实现细节:作者的实验基于CLIP预训练的 Backbone 网络ResNet-50。对于正文本 Prompt ,作者使用ChatGPT为每个类别生成多个文本描述。每个类别的负文本 Prompt 来自一个模板,如"一张没有{类别}的照片"。所提出的模型使用AdamW优化器[53]进行微调,该优化器使用余弦调度器。值得注意的是,作者在训练过程中采用了一个 Warm up 策略,首先将学习率设置为,以确保第一轮训练的稳定。

学习率对于FGVCAircraft数据集设置为0.01,对于其他数据集设置为0.001。作者的模型在EuroSAT,DTD和FGVCAircraft数据集上训练了100轮,在其他的少样本数据集上训练了30轮。

由于少样本数据集之间的差异,作者对元路径,和的融合权重设置不同的值。为了保留正样本之间更多的上下文信息,作者在测试时将元路径的融合权重设置为0.1。

平衡因子设置为0.1。所有实验都在一个NVIDIA RTX3090 GPU上实现。

Comparisons with State-of-the-arts

少样本学习: 作者将HeGraphAdapter与包括最新方法(SOTA)在内的11个基准数据集进行了比较,包括CLIP-Adapter [10],CoOp [6],TaskRes [13],Tip-Adapter [18],GraphAdapter [19]和PROTO-CLIP [54]。比较结果如图2所示。SOTA方法的前期报告结果已直接用于作者的实验。总体而言,提出的HeGraphAdapter在所有少样本设置上都优于之前的方法。

尤其是,作者的HeGraphAdapter在1/2/4-shot设置上的平均性能分别达到66.89%,69.45%和71.93%,比第二好方法提高2.09%,1.74%和1.28%。这验证了在不同属性数据之间学习异质知识对于下游任务的优势。观察到具有大量类别(ImageNet中的1000个类别和SUN397中的397个类别)和少量类别(OxfordPets中的37个类别)的数据集上的结果,作者的方法表现出竞争力的性能,在16-shot设置下分别达到ImageNet的66.18%,SUN397的72.28%和OxfordPets的90.24%。

结果表明,提出的HeGraphAdapter可以有效地利用结构知识,对于大和小数量的数据节点/类别。

泛化能力: 正如前述方法[6, 19]所指出的,仅在特定任务上进行训练可能学习到伪相关并降低在未见领域的一般化能力。为了分析HeGraphAdapter的泛化能力,作者在四个未见过的常用数据集上进行实验,包括ImageNet-V2 [49],ImageNet-Sketch [50],ImageNet-A [51],ImageNetR [52]。

此外,作者在不同的CLIP视觉 Backbone 上构建了实验,包括ResNet-101 [55],ViT-B/32 [56],以及ViT-B/16 [56]。作者在表1中报告了结果。视觉分类器利用所有微调视觉特征的键值缓存模型来优化分类结果,从中学习到更多的风格信息。

为了保持泛化能力,作者在泛化实验中仅使用基于文本的分类器,这在本文中被称为HeGraphAdapter(T)。与Zero-shot CLIP [1],Linear Probe CLIP [1],CoOp [6],TaskRes [13]和GraphAdapter [19]相比,作者在不同的 Backbone 上实现了优越的性能,这表明异构图 Adapter 有效地提高了下游任务分类准确性,同时保持了一般化能力。

picture.image### Ablation Studies

不同组件的有效性:为了验证异构图 Adapter 的有效性,作者在11个少样本数据集上进行了多次实验,每个数据集有16个样本。'Base'方法仅使用正面文本 Prompt 和测试图像之间的相似性匹配。HeGraphAdapter(T)仅使用基于文本的分类器进行实验。HeGraphAdapter(T-N)仅在异构图 Adapter 上考虑负文本节点聚合。HeGraphAdapter(T-P)仅考虑正面文本 Prompt 和视觉特征之间的关系。如表2所示,'Base'方法平均性能为60.19%。在引入负面文本 Prompt 并仅考虑异构图 Adapter 上的负文本节点聚合为HeGraphAdapter(T-N)后,性能提高了8.17%。同时考虑负面和正面文本 Prompt 作为HeGraphAdapter(T),与'Base'方法相比,性能提高了17.07%。这表明在少样本分类任务上增强正面和负面文本 Prompt 都是必要的。

HeGraphAdapter方法平均性能为77.30%,与HeGraphAdapter(T)相比提高了0.04%,表明同时优化文本分类器和视觉分类器可以有效地全面提高CLIP的性能。

picture.image超参数敏感性分析: 为了通过元路径验证等式4中融合权重的敏感性,作者进行了几组仅使用基于文本的分类器的实验,结果如表3所示。元路径的权重大于的权重,这表明在构建文本和视觉数据之间的异质关系对于提高CLIP模型的独特性至关重要。

否则,作者根据元路径来建模负文本节点和正文本节点之间的不相似关系。

作者还进行了一项实验,其中所有元路径的融合权重都是可学习的。作者实现了65.68%的性能,这低于固定系数的性能。性能下降可以归因于在少量数据场景下优化系数具有挑战性,导致学习不足。

picture.image不同 Backbone 的影响: 作者在ImageNet数据集上进行了广泛的实验,采用16-shot设置,以评估所提出的方法在不同CLIP Backbone 上的有效性。结果如表4所示。

CLIP Backbone 包括ResNet-50、ResNet-101、ViT-B/32和ViT-B/16。作者的方法在ResNet-50上实现了66.18%的性能,在ResNet-101上实现了68.66%的性能,在ViT-B/32上实现了69.20%的性能,在ViT-B/16上实现了74.02%的性能,分别比第二好的方法提高了0.46%、0.43%、0.40%和0.34%。

这表明作者的HeGraphAdapter在各种视觉 Backbone 上都是有效的。

picture.image为了证明异构图 Adapter 可以捕获区分性文本特征,作者利用2D t-SNE [57]来说明图3中积极文本节点的分布情况,其中每个节点代表一个类别。作者从细粒度食品101数据集中随机采样20个类别,以更好地展示HeGraphAdapter的有效性。'Base'模型与作者的'HeGraphAdapter'之间的比较结果表明,所提出的异构图 Adapter 有效地模拟了不同模态之间的关系,实现了更大的类别间距离,从而可以增强 Adapter 式调优的分类能力。

picture.image复杂性分析: 在表5中,作者展示了HeGraphAdapter在ImageNet数据集上,16-shot设置下的微调时间和可调参数数量。HeGraphAdapter的性能是在单个NVIDIA RTX3090 GPU上实现的。作者直接使用他们论文中的比较结果进行实验。从结果中,作者可以观察到HeGraphAdapter微调一个周期的耗时为33.95秒,比GraphAdapter [19]方法(10.66秒)更长,但HeGraphAdapter需要的微调周期更少。

在HeGraphAdapter中,作者只需要调整、和的参数。可调参数数量为10.367M。尽管作者的HeGraphAdapter需要更多的可调参数,但其性能比第二好的方法提高了0.46%,实现了效率和性能之间的平衡。

picture.image5 Conclusion

本文提出了一种新的异构图适配器,用于微调视觉-语言预训练模型(VLMs)。

首先,构建了一个异构图,以全面建模模态内、模态间以及类别间的关系,然后开发了一个异构图神经网络,以提取多模态结构知识,用于将视觉和文本特征适应到下游任务。

此外,本文利用特定任务的文本和视觉特征构建分类器,并提升CLIP在下游任务上的性能。

在十一个基准数据集上的扩展实验证明了所提方法的有效性。

作者认为异构图学习为通用多模态表示问题提供了一个有效的模型。

未来,作者将探索异构图学习,以解决某些其他预训练多模态模型的微调问题。

参考文献

HeGraphAdapter: Tuning Multi-Modal Vision-Language Models with Heterogeneous Graph Adapter.

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论