Page 212 - 《软件学报》2026年第2期
P. 212
王丹丹 等: 基于多视角的自监督推荐方法 691
v
其中, z 表示用户 u 在任意一个视图下学习到的用户表示, ˜ z p 表示在多视图训练下, 学习到的用户正样本, 而 ˜ z j 是
u
经过编码器学习后得到的用户负样本.
2.6 模型训练
本文模型的训练方式采用多任务联合训练, 其中包括推荐任务、对比学习任务, 模型的损失函数包括 3 部分,
推荐损失 ( L r )、用户视角对比损失 ( L )、物品视角对比损失 ( L ), 整体的损失函数定义如下:
i
u
ssl ssl
i
u
L = L r +λ(L +L ) (11)
ssl ssl
其中, λ 为对比损失函数权重, 后面会详细介绍其取值对整体模型性能的影响. 模型训练过程中, P 和 Q 的更新过
程执行如下公式:
∂L ∂L
P = P−L r × , Q = Q−L r × (12)
∂P ∂Q
其中, L r 为学习率.
模型训练具体算法步骤如算法 1 所示.
算法 1. 基于多视角自监督推荐方法模型框架.
输入: 用户集合 U、物品集合 I、用户-物品历史交互数据、用户社交关系以及物品类别信息;
输出: 推荐列表.
1) 构建用户-物品二部图 G r 、社交关系图 G s 以及物品类别图 G t
2) 随机初始化用户与物品的表示 P 和 Q
∑
2
2
3) L r = −logδ(ˆr ui − ˆr uj ) + η(|| P|| +||Q|| ) //执行 BPR 损失函数进行模型预训练
i∈I(u), j<I(u) 2 2
(
)
(
)
T
T
,
,
4) A s = RR ⊙T A f = (SS)⊙S A s = RR ⊙S //基于 G r 、 G s 、 G t 进行数据增强, 得到增强视图
5) for epoch do //迭代次数循环
6) for N r ∪N t , m⊙(E r ∪E t ) //构建无标签数据集, m 为随机删除节点/边的概率
˜ Z = H(Q,V) //LightGCN 编码器学习用户、物品表示 ˜ Z
7)
8) for (u, i) in (U, I) do //多视图共同训练
f
f
s
s
9) y + = Softmax(ϕ(˜z,z )), y = Softmax(ϕ(˜z,z ))
i + i
1 f
s
r
y
10) y = ( + )
y +
+ 2 +
r ( ) ˜
r
11) P = { ˜ z k |k ∈ Top-K y , ˜z ∼ G }
+ +
12) endfor
( u i )
13) L = L r +λ L +L //将推荐任务、对比学习任务联合训练
ssl ssl
∂L ∂L
14) P = P−L r × , Q = Q−L r × //更新 P、Q
∂P ∂Q
15) endfor
16) endfor
3 实验分析
为了验证所提出方法的有效性, 我们在 3 个公开数据集上进行实验. 具体来说, 旨在回答以下 3 个研究问题
(research question, RQ).
RQ1: 我们的方法与其他基线方法 (例如, 基于图神经网络的 LightGCN [19] 、基于社交网络的自监督推荐模型
SEPT [12] 等) 相比, 效果如何?
RQ2: 所提出的方法中每个模块 (例如, 社交网络图、物品联系图等) 对整体的推荐性能有何影响?

