skip to content

Search

跨领域分类:X-Cross 整合器的 LoRA 增强

4 min read Updated:

本文介绍了 X-Cross 整合器的 LoRA 增强方法,旨在通过动态缩放和互动项提炼源领域模型的表示,提升跨领域分类任务的性能。

符号定义 🔣

  • ll: 网络层索引 (1lL1 \le l \le L)。
  • mm: 源领域索引 (1mn1 \le m \le n)。
  • Wm(l)W_m^{(l)}: 第 mm 个源模型在第 ll 层的冻结预训练权重矩阵。
  • Am(l),Bm(l)A_m^{(l)}, B_m^{(l)}: 第 mm 个源模型在第 ll 层的冻结 LoRA 适配器矩阵。
  • xm(l)x_m^{(l)}: 第 mm 个源模型在第 ll 层的输入。对于第一层,xm(1)x_m^{(1)} 是提示(Prompt)的嵌入;对于 l>1l>1xm(l)=h~m(l1)x_m^{(l)} = \tilde{h}_m^{(l-1)}
  • hm(l)h_m^{(l)}: 第 mm 个源模型在第 ll 层的 LoRA 增强输出。
  • hconcat(l)h_{concat}^{(l)}: 第 ll 层所有源模型输出的连接表示。
  • Wconcat(l)W_{concat}^{(l)}: 第 ll 层 X-Cross 整合器的可训练权重矩阵。
  • z(l)z^{(l)}: 第 ll 层的动态缩放因子和互动项权重。
  • z[m](l,m),z[m,m](l,m)z_{[m']}^{(l,m)}, z_{[m,m']}^{(l,m)}: 从 z(l)z^{(l)} 派生出的,用于第 mm 个领域提炼的具体权重。
  • h~m(l)\tilde{h}_m^{(l)}: 第 mm 个源模型在第 ll 层的提炼后表示。
  • β,γ\beta, \gamma: 控制提炼过程中直接影响和互动项强度的超参数。
  • wmw_m: 第 mm 个源模型在最终聚合时的可学习权重。
  • hfinalh^{final}: 最终的整合表示。
  • hpooledh_{pooled}: 池化后的表示。
  • Wp,bpW_p, b_p: 池化层的可学习参数。
  • Vc,bcV_c, b_c: 评分头的可学习参数。
  • SuS_u: 用户 uu 的历史记录。
  • ii: 候选项目。
  • score(Su,i)\text{score}(S_u, i): 候选项目的评分。

1. 逐层处理 (l=1,,Ll = 1, \dots, L) ⚙️

a. LoRA 增强输出

对于每个源领域 mm,计算其在第 ll 层的 LoRA 增强输出:

hm(l)=(Wm(l)+Am(l)Bm(l))xm(l)h_{m}^{(l)} = (W_{m}^{(l)} + A_{m}^{(l)}B_{m}^{(l)}) \cdot x_{m}^{(l)}

其中 xm(l)x_{m}^{(l)} 是第 ll 层的输入。

b. 连接源领域表示 (Stage 1)

将所有源领域的输出连接起来:

hconcat(l)=Concat(h1(l),h2(l),,hn(l))h_{concat}^{(l)} = \text{Concat}(h_{1}^{(l)}, h_{2}^{(l)}, \dots, h_{n}^{(l)})

这里 hconcat(l)Rndh_{concat}^{(l)} \in \mathbb{R}^{n \cdot d}

c. 动态缩放 (Stage 2)

计算动态权重 z(l)z^{(l)}

z(l)=Wconcat(l)hconcat(l)z^{(l)} = W_{concat}^{(l)} \cdot h_{concat}^{(l)}

这里 z(l)R2n(n1)z^{(l)} \in \mathbb{R}^{2n(n-1)}

d. 表示提炼与整合 (Stage 3)

为每个源领域 mm 计算提炼后的表示 h~m(l)\tilde{h}_{m}^{(l)}

h~m(l)=hm(l)+mm(βz[m](l,m)hm(l)+γz[m,m](l,m)(hm(l)hm(l)))\tilde{h}_{m}^{(l)} = h_{m}^{(l)} + \sum_{m' \ne m} \left( \beta \cdot z_{[m']}^{(l,m)} \cdot h_{m'}^{(l)} + \gamma \cdot z_{[m,m']}^{(l,m)} \cdot (h_{m}^{(l)} - h_{m'}^{(l)}) \right)

这个 h~m(l)\tilde{h}_{m}^{(l)} 将作为下一层 (l+1l+1) 的输入。


2. 最终聚合与评分 🏆

a. 最终加权求和 (Stage 4)

在处理完所有 LL 层后,进行最终的加权聚合:

hfinal=m=1nwmh~m(L)h^{final} = \sum_{m=1}^{n} w_{m} \cdot \tilde{h}_{m}^{(L)}

b. 候选项目评分

首先进行池化操作(以 [CLS] token 为例):

hpooled=GELU(Wph[CLS]final+bp)h_{pooled} = \text{GELU}(W_{p} \cdot h_{[CLS]}^{final} + b_{p})

然后计算最终得分:

score(Su,i)=VcThpooled+bc\text{score}(S_{u}, i) = V_{c}^{T} \cdot h_{pooled} + b_{c}

3. 训练损失 (Training Loss) 📉

模型训练使用负对数似然损失:

Li=logexp(score(Su,i))i{i}Inegexp(score(Su,i))L_i = -\log \frac{\exp(\text{score}(S_u, i))}{\sum_{i' \in \{i\} \cup I_{neg}} \exp(\text{score}(S_u, i'))}

其中 ii 是真实的正样本,InegI_{neg} 是负样本集合。