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: 所提出的方法中每个模块         (例如, 社交网络图、物品联系图等) 对整体的推荐性能有何影响?
   207   208   209   210   211   212   213   214   215   216   217