Page 323 - 《软件学报》2025年第12期
P. 323
5704 软件学报 2025 年第 36 卷第 12 期
兴趣的细粒度刻画能力, 又充分挖掘了会话间的潜在高阶关联, 使模型在兼顾实时性和全局性的同时提升泛化能
力和推荐性能, 为复杂的推荐任务提供更全面的支持.
对于会话间信息的融合, 本文将标准二元交叉熵损失函数作为学习目标, 可直观地衡量样本对的相似性或差
异性, 以便更有效地进行正负样本的区分, 提升模型的优化效果, 如公式 (10) 所示:
a
a
a
a
L s1 = −log(δ( f ,h ))−log(1−δ( f ,h )) (10)
s u s u s u s c
其中, f a 是 Transformer 编码器下的增强会话嵌入 (锚点), h a 是超图编码器下的对应增强会话嵌入 (正样本), h a
s u s u s c
是超图编码器下的其他增强会话嵌入 (负样本), δ 为非线性激活函数.
然而, 仅使用经过数据增强后的会话特征进行推荐任务, 会导致对比学习框架的形式单一, 使得模型在早期训
练时会受到项目建模不准确的影响, 在捕捉用户偏好变化上存在局限性, 从而限制模型的泛化能力. 因此, 本文使
用原始会话嵌入与增强会话嵌入进行对比学习, 以避免无关会话项目的影响, 提升模型的泛化能力. 对于原始会话
信息, 这里采用 NT-Xent 损失函数来提取, 有助于提升模型的特征表示能力, 使得学习到的特征在下游任务中表现
更佳, 如公式 (11) 所示:
a
exp(sim( f , f ))
s u s u
L s2 = −log ∑ (11)
a
exp(sim( f , f ))
s u s c
c,u
其中, sim(·) 是两个会话嵌入间相似性度量的点积操作, f 是对应原始会话嵌入 (正样本), f 是其他原始会话的嵌
s u s c
入 (负样本).
由于经过数据增强的会话中包含时间间隔时长信息, 且来自 Transformer 编码器的输出嵌入中带有位置信息,
因此经过 Transformer 编码器的增强会话嵌入会融合多角度会话内项目的关系, 我们将其作为推荐任务的主体. 这
里采用对数似然损失函数进行推荐, 对编码器进行优化, 如公式 (12) 所示:
∑
a a
L rec (u,t) = −log(δ( f ,e s u ,t+1 ))− log(1−δ(f ,e s c ,i )) (12)
s u s u
c,u
其中, L rec (u,t) 为会话 s u 中预测第 t 位项目的损失函数, δ 为非线性激活函数, e s u ,t+1 为会话中下一项目 v t+1 的嵌入,
e s c ,i 不是相应会话 s u 中的项目嵌入. 项目的嵌入 从 e SeqEnc 嵌入表中检索, 该表与 Transformer 共同优化.
在推荐任务和对比学习任务中获得的损失函数均可对模型进行优化. 为通过对比学习提高推荐性能, 我们利
用了一种多任务策略来联合优化模型, 如公式 (13) 所示:
(13)
L = L rec +λ 1 L s1 +λ 2 L s2
其中, λ 1 、 λ 2 是超参数, 用于控制对比学习任务的强度. 自监督会话推荐的具体过程见算法 3.
算法 3. 结合时间间隔数据增强的对偶视图自监督会话推荐算法.
a a a
输入: 用户数据增强后的会话信息集 S , 对偶视图得到的会话嵌入 h , f s u f , ;
u s u s u
输出: 会话推荐列表 List.
Begin
S ; //见算法 1
a
1. 获取数据增强后的会话
u
2. For 会话 s ∈ S :
a
a
u
u
a
3. 获取对偶视图编码会话的不同嵌入 h , f s u f , a ; //见算法 2
s u s u
,
4. 在不同视图间进行对比学习, 获得损失函数 L s1 L s2 ; //见公式 (10), 公式 (11)
L rec ; //见公式 (12)
5. 实施推荐任务获得推荐列表 List s u 及损失函数
6. 计算联合优化损失函数 L, 并更新模型参数; //见公式 (13)
7. End For
; //模型预测
8. 获取推荐列表
List ← List s u

