Page 210 - 《软件学报》2026年第2期
P. 210

王丹丹 等: 基于多视角的自监督推荐方法                                                             689


                 过的物品的得分, 即使得正负样本之间的预测得分的差值尽可能大, 用公式表示为:

                                                 ∑                 (         )
                                                                       2
                                            L r =    −logδ(ˆr ui − ˆr u j )+η || P|| +||Q|| 2         (1)
                                                                       2    2
                                               i∈I(u), j<I(u)
                 其中, i 表示与用户    u  交互过的物品, j 表示与用户      u  未交互过的物品,    ˆ r ui 、 ˆ r u j  分别表示用户  u  对物品  i、物品  j 的
                 预测得分,   I (u) 表示与用户  u  交互过的物品集合,    η 表示正则化系数.
                  2.4   物品视角
                    在偏好视角下, 我们初步学习到物品表示, 然而数据稀疏性一直是推荐系统中存在的问题, 而自监督学习正是
                 解决这一问题很好的方式, 它在很多模型中得到了验证. 自监督学习可以从原始数据中自动生成自监督信号, 例
                 如, 基于图对比学习     [9] 的方法是通过随机删除原始图中的节点/边, 创建增强视图, 然后最大化同一节点在不同视图
                 下学习到的向量表示之间的一致性. 推荐系统中存在着大量的图结构数据, 但是, 与其他基于图的任务相比, 推荐
                 系统中用户和物品之间有着广泛的同质性               [24] , 现有的基于自监督学习的推荐方法, 都是通过自识别的方式生成正
                 负样本, 由于推荐系统中的同质性, 有些节点是假负样本, 如果把这些假负样本识别为正样本, 实际上可以学习到
                 更好的表示. 相反, 如果把它们粗略地归结为负样本会导致推荐性能下降.
                    为了解决这一问题, 我们提出多视角共同训练与自监督学习相结合的推荐方法, 物品视角下的模型框架如图                                  1
                 物品视角标注所示. 考虑到物品之间的同质性, 我们将属于同一类别的物品之间建立一条边, 形成物品类别图                                  G t .
                 物品视角下的数据源包括用户-物品二部图              G r 、物品类别图    G t . 从用户-物品交互图中, 我们分析到同一用户交互
                 过不同的物品, 并且这些物品在物品类别图中又属于同一类别, 那么根据用户-物品偏好关系以及物品类别关系,
                 可以从物品的角度, 给用户推荐其喜好的物品, 从而提高推荐性能.
                    基于物品视角, 我们使用多视图共同训练的方式生成自监督信号. 首先根据物品之间的类别关系进行数据增
                 强, 得到增强视图, 即模型框架图         1  中标注的物品共享图, 它是根据用户-物品二部图和物品类别图而得到的, 将属
                 于同一类别并且与相同用户交互过的物品之间建立一条边, 是物品类别图的一个子图. 物品共享图承载了物品类
                 别信息以及用户-物品交互信息, 它表示一个用户购买过的同一种类别的物品. 物品共享图对应的邻接矩阵由如下
                 公式得到:

                                                           (   )
                                                        s
                                                              T
                                                       A = RR ⊙T                                      (2)
                                                        i
                                                   R ∈ R
                 其中, T  ∈ R n×n  代表物品类别图的邻接矩阵,         m×n  代表用户-物品交互二部图的邻接矩阵,          ⊙T  确保  A  中的关系
                                                                                                s
                                                                                                i
                 是  T  中关系的子集. 从图   1  中可以看出, 在物品视角下, 有       3  个视图从不同的角度对物品信息进行描述, 即物品类
                 别图、物品共享图和用户-物品交互图, 我们将利用它们来挖掘具有多视图编码的自监督信号.
                    首先, 我们在    3  个视图上构建了    3  个非对称编码器, 其中两个仅用于学习物品表示并给出伪标签, 另一个针对
                 用户-物品交互视图完成推荐任务. 这里非对称编码器是指对于构建的每一个视图, 分别使用                             LightGCN  编码器进
                 行编码, 得到对应视图下的节点的表示, 由于每个视图的连接关系不同, 因此每个视图上的编码器的参数也不同,
                 从而使得所得到的节点表示也不同. 这里使用的是多视图共同训练方式, 需要将用户-物品交互图和物品类别图组
                 合成一个新的图, 以概率       p  动态删除原始图中的边, 动态生成无标签数据集, 这个过程可以描述为:

                                                   ˜ i
                                                   G = (N r ∪N t ,m⊙(E r ∪E t ))                      (3)
                 其中,  N r 、 N t  和  、   E t  分别为  G r 、 G t  中的节点和边;   m ∈ {0,1} |E r ∪E t | , m 为随机删除节点/边的概率. 我们同时扰动
                              E r
                 物品类别图和用户-物品交互图, 因为对物品的影响包含在上述两个增强视图中.
                    在以上增强视图和无标签数据集的基础上, 我们使用                 LightGCN  编码器对其进行编码, 其定义如下:

                                                        Z = H(Q,V)                                    (4)
                 其中, H  为编码器, Z  ∈ R n×d   为节点的最终表示, 相同大小的    Q 为  3  个编码器共享的初始节点嵌入,        V ∈ {R,A ,G t } 为
                                                                                                   s
                                                                                                   i
                 3  个视图中的任何一个. 通过在       3  个视图上进行图卷积, 编码器学习到了           3  组物品的表示, 由于每个视图都反映了
                 物品的不同方面, 因此从其他两个视图中寻求监督信息, 以改进当前视图的编码器, 给定一个物品, 我们使用来自
                 其他两个视图的物品表示来预测它在无标签数据集中的语义上的正样本. 以偏好视图中的物品                                i 为例子, 表述为:
   205   206   207   208   209   210   211   212   213   214   215