2


password:19990702

使用低秩适配法进行高效域自适应

标题

Efficient Domain Adaptation Using Low-Rank Adaptation

0.摘要

1.引言

迁移学习(Transfer Learning)是机器学习(Machine Learning)中的一个重要领域,旨在将在一个任务上学到的知识应用到另一个相关任务中,从而提高模型的性能。机器学习的一个主要的假设是训练和测试数据在同一个样本空间并遵循相同的分布,但是当数据分布变化后需要使用新数据重新构建模型[^ 1 ].迁移学习旨在通过迁移不同但相关的源领域中包含的知识来提高任务在目标领域的表现,这样可以减少构建目标学习器对大量目标领域数据的依赖[^ 2 ]。普通的迁移学习通常均将一个源领域知识迁移到另外一个目标域,即便有多个源领域,也通常会选择一个最好的源域进行迁移。但实际上在现实生活中源领域并非只有一个,所有也有另一个研究方向叫做多源迁移学习.

域适应(Domain Adaptation)是迁移学习的一个特殊情况,也叫做领域自适应,专注于源领域和目标领域分布差异的问题[^ 3 ]。根据目标域数据是否有标签,域适应分为监督领域自适应(Supervised Domain Adaptation,SDA),半监督领域自适应(Semi-supervised Domain Adaptation,SSDA),无监督领域自适应(Unsupervised Domain Adaptation,UDA)[^ 4 ]。其中,无监督领域自适应旨在通过在没有目标领域标签的情况下进行适应来解决目标领域上的各种任务[^ 5 ],缓解源域和目标域之间的域转移[^ 6 ].

在近几年的自然语言处理(Natural Language Processing,NLP)中,微调预训练模型是提升NLP任务性能的主要方法[^ 17 ]。通过在大规模数据上进行预训练,模型能够学到通用的特征表示,为其后续在特定任务上的表现提供有力支持,也因此涌现了大批的预训练模型比如BERT[^ 18 ],GPT[^ 19 ],XLNet[^ 20 ]。而为了更高效地微调这些预训练模型,研究者们提出了参数高效微调(Parameter-Efficient Fine-Tuning,PEFT)[^ 21 ]的方法。与标准全参数微调相比,这些方法仅微调模型参数的一小部分,而其余部分保持不变,大大降低了计算和存储成本,同时还有着可以媲美全参数微调的性能.

参数高效微调方法有适配器(Adapter),软提示词(Soft Prompts),低秩适配(Low-Rank Adapation,LoRA)[^ 22 ],其中后几种都是适配器方法的变种。Adapter是Houlsby等人于2019年提出的[^ 23 ]。Adapter允许在预训练模型的特定层添加小而灵活的模块,以适应不同任务,并且在训练的过程中,冻结预训练模型的参数,只训练添加的Adapter参数,以便更高效的进行训练,虽然多余的参数也降低了推理的速度,但依然是划算的。

在参数高效微调作用的背景下,UDAPTER[^ 25 ]提出了两种方法,使用适配器使无监督领域自适应的参数效率更高,而LoRA 允许我们通过优化适应过程中密集层变化的秩分解矩阵,来间接训练神经网络中的一些密集层,同时保持预先训练的权重不变,相比于适配器更加参数高效,所以本文通过使用LoRA来增强域适应的能力,相比于之前的方法在保持甚至效果更好的同时训练和推理代价减少。

2.方法

2.1 低秩适配法

2.2 两阶段领域和任务低秩适配法

给定一个源-目标域适应场景,作者首先训练域适配器并保存它们的权重。然后,将任务适配器与域适配器堆叠在一起,域适配器使用源域中的监督数据进行训练。训练任务适配器时,域适配器被冻结。在推理过程中,作者堆叠域和任务适配器。

作者在训练域适配器的时候,输入有源域和目标域的文本,输入到添加适配器的预训练模型中,将两者的输出使用散度函数进行比较,散度函数可以有多种选择,UDAPTER全程使用了multi-kernel maximum mean discrepancy (MK-MMD)[^ 30 ][^ 31 ]这个散度函数。
$$
\Delta _ {l} =div(dom_ {l}^ {src} ,dom_ {l}^ {trg})
$$

最终的损失函数为源域和目标域所有层输出的散度差的和

$$
\mathcal{L}{div}=\sum{i=1}^L {\bigtriangleup _l}
$$
该步骤的目的主要是训练一个领域适配器,尽可能的将源领域的输入和目标领域的输入进行对齐,使其符合相同的分布。

作者在训练任务适配器的时候,在领域适配器上堆叠一个适配器,叫做任务适配器,再在最后添加分类器,使用源领域的有监督的数据进行学习
$$
\mathcal{L}{task}=softmax_ce\left( W{task}\cdot h_L \right)
$$
该步骤的目的是训练一个任务适配器,来学习源领域的任务表示。

2.3 联结领域和任务低秩适配法

该方法使用一个单独的适配器模块同时减少域分布之间的差异和学习任务表示,损失函数如下:
$$
\mathcal{L}=\lambda \cdot \mathcal{L}{task}+\left( 1-\lambda \right) \cdot \mathcal{L}{div}
$$
其中, $\mathcal{L}{task}$ 是源域的监督样例的任务损失,而 $\mathcal{L}{div}$ 是上一节提到散度差的和,而$\lambda$ 是根据Ganin等人2016年的理论[^ 28 ]引入的噪音信号,定义( $\gamma$ =10)如下;
$$
\lambda =\frac{2}{1+exp\left( -\gamma \cdot p \right)}-1
$$

3.实验

4.1 数据集

本文使用了一个多领域情感分析数据集[^ 26 ],具体的数据集采用了UDAPTER处理好的数据[^ 25 ]。

AMAZON:多域情感分析数据集,其中包含五种不同类型产品(领域)的亚马逊产品评论:apparel(A) books(BO)、baby(BA)、Camera_Photo (C) 和Movie Reviews (MR)。每条评论都被标记为正面或负面。

4.2 Baseline Methods

**Fully Supervised (FS)**:Fine-Tuning 和 Fine-Tuning with Adapter两种方法,这两种方法都是使用目标领域的有标签的数据进行监督学习

  • Fine-Tuning(FT): 直接使用预训练模型。
  • Fine-Tuning with Adapter(FTWA): 使用基于适配器的预训练模型。

Unsupervised Domain Adaptation method using adapters (UDAPTER):基于适配器提出两种改进方法来提升域适应能力

  • TS-DT-Adapter:首先添加一个domain adapter来学习域对齐信息,然后再在这个domain adapter上堆叠一个task adapter来使用域对齐信息来学习源域的任务表示,然后用来进行域适应。
  • JT-DT-Adapter:这个方法只添加一个适配器来同时学习域对齐知识和源域任务表示。

Unsupervised Domain Adaptation method using Low-Rank (UDALoRA): 基于低秩适应

  • JT-DT-LoRA_1:改进JD-DT-Adapter,使用LoRA方法来学习域对齐知识和源域任务表示,LoRA的参数r设置为8,alpha设置为16。
  • JT-DT-LoRA_2:改进JD-DT-Adapter,使用LoRA方法来学习域对齐知识和源域任务表示,LoRA的参数r设置为256,alpha设置为512。

4.3 结果

image-20231212000023804

UDALoRA在域适应上表现很好。

UDALoRA相比于UDAPTER保持性能的同时更加参数高效

UDALoRA的不同超参数对于性能有影响, 我们得出了比较参数高效的

5.结论

本文提出了一种多领域适配器融合方法来通过多领域知识来增强域适应能力同时保持参数高效,更进一步的,本文提出的方法在域泛化问题上也有很好的表现。MDAF相比于DDN类方法和UDAPTER类方法都有不错的性能提升,并且也进一步缩短了与使用目标领域标注数据监督学习微调类方法的差距,甚至在小数据集上有的源领域-目标域域适应对上还超越了监督微调方法。在未来的工作中,本文将探讨融合其他的参数高效微调方法来进行迁移学习能力的提升,以及如何更进一步优化现有方法的性能。


欢迎在评论区中进行批评指正,转载请注明来源,如涉及侵权,请联系作者删除。

×

喜欢就点赞,疼爱就打赏