符号定义 🔣
- l: 网络层索引 (1≤l≤L)。
- m: 源领域索引 (1≤m≤n)。
- Wm(l): 第 m 个源模型在第 l 层的冻结预训练权重矩阵。
- Am(l),Bm(l): 第 m 个源模型在第 l 层的冻结 LoRA 适配器矩阵。
- xm(l): 第 m 个源模型在第 l 层的输入。对于第一层,xm(1) 是提示(Prompt)的嵌入;对于 l>1,xm(l)=h~m(l−1)。
- hm(l): 第 m 个源模型在第 l 层的 LoRA 增强输出。
- hconcat(l): 第 l 层所有源模型输出的连接表示。
- Wconcat(l): 第 l 层 X-Cross 整合器的可训练权重矩阵。
- z(l): 第 l 层的动态缩放因子和互动项权重。
- z[m′](l,m),z[m,m′](l,m): 从 z(l) 派生出的,用于第 m 个领域提炼的具体权重。
- h~m(l): 第 m 个源模型在第 l 层的提炼后表示。
- β,γ: 控制提炼过程中直接影响和互动项强度的超参数。
- wm: 第 m 个源模型在最终聚合时的可学习权重。
- hfinal: 最终的整合表示。
- hpooled: 池化后的表示。
- Wp,bp: 池化层的可学习参数。
- Vc,bc: 评分头的可学习参数。
- Su: 用户 u 的历史记录。
- i: 候选项目。
- score(Su,i): 候选项目的评分。
1. 逐层处理 (l=1,…,L) ⚙️
a. LoRA 增强输出
对于每个源领域 m,计算其在第 l 层的 LoRA 增强输出:
hm(l)=(Wm(l)+Am(l)Bm(l))⋅xm(l)
其中 xm(l) 是第 l 层的输入。
b. 连接源领域表示 (Stage 1)
将所有源领域的输出连接起来:
hconcat(l)=Concat(h1(l),h2(l),…,hn(l))
这里 hconcat(l)∈Rn⋅d。
c. 动态缩放 (Stage 2)
计算动态权重 z(l):
z(l)=Wconcat(l)⋅hconcat(l)
这里 z(l)∈R2n(n−1)。
d. 表示提炼与整合 (Stage 3)
为每个源领域 m 计算提炼后的表示 h~m(l):
h~m(l)=hm(l)+m′=m∑(β⋅z[m′](l,m)⋅hm′(l)+γ⋅z[m,m′](l,m)⋅(hm(l)−hm′(l)))
这个 h~m(l) 将作为下一层 (l+1) 的输入。
2. 最终聚合与评分 🏆
a. 最终加权求和 (Stage 4)
在处理完所有 L 层后,进行最终的加权聚合:
hfinal=m=1∑nwm⋅h~m(L)
b. 候选项目评分
首先进行池化操作(以 [CLS] token 为例):
hpooled=GELU(Wp⋅h[CLS]final+bp)
然后计算最终得分:
score(Su,i)=VcT⋅hpooled+bc
3. 训练损失 (Training Loss) 📉
模型训练使用负对数似然损失:
Li=−log∑i′∈{i}∪Inegexp(score(Su,i′))exp(score(Su,i))
其中 i 是真实的正样本,Ineg 是负样本集合。