Page 422 - 《软件学报》2025年第9期
P. 422

钱忠胜 等: 利用伪重叠判定机制的多层循环             GCN  跨域推荐                                     4333


                    重复步骤    1、2, 直至社区网络模块度达到最优, 得到完整的社区网络, 可获取最终的社区集. 在社交网络中,
                 共同邻居的数量可反映用户之间的兴趣相似程度. 若两个用户有很多共同的朋友, 则他们很可能有相似的兴趣和
                 行为. 故我们使用社区网络图中的共同邻居重新衡量用户间的相似度. 同一社区中的用户                            u  和  v 的相似度计算, 如
                 公式  (6) 所示.

                                                   ∑
                                         w = w uv +β   (w uk +w vk ),(k , u∩v)∩(w uk ∩w vk )          (6)
                                           ′
                                           uv
                                                     k∈c
                 其中,  w ′   表示经过伪相似判定后重新获取的用户相似度, β 表示共同邻居权重.
                       uv
                    计算用户    u  的所有相似用户节点, 获得基于         u  的相似度矩阵   W , 即联合域相似度矩阵, 它由源域相似度矩阵
                                                                     ′
                                                   W  也是加权邻接矩阵, 可作为多层循环           GCN  节点嵌入学习模块的输
                                                    ′
                 与目标域相似度矩阵组成. 同时相似度矩阵
                 入. 伪重叠判定机制的流程图如图          2  所示.

                                                            N
                         初                      计 所                                     非
                         始     计  与      用      算 在       邻         叠    将 模     更      重
                                                          居
                         化     算  社      户      将 社       节         加    用 块     新    重 叠     重
                         每     社  区      节      用 区       点       重  计   户 度     社    叠 用     构
                                                户
                                         点
                    开    个     区  节      是    N 节 产       是    Y  叠  算   节 增     区    用 户     相
                    始    用     内  点      否      点 生       否       用  模   点 益     集    户 视     似     结
                         户     权  相               的               户  块   移 最          社 为           束
                         为     重  连      为      移 模       为       权  度   入 大     与    区 伪     度
                                                                                              矩
                                                                                 模
                         一     和  权      重      入 块       重       重  增   获 的     块    中 重     阵
                                                          叠
                         个     及  重      叠      邻 度       用         益    得 社     度    的 叠
                                         用
                         社       和              居 增                       区             用
                         区               户      节 益       户                             户
                                         ?      点         ?
                                           Y
                                                                                更新伪重叠用户集
                                                 图 2 伪重叠判定机制流程图

                 2.2   基于多层循环   GCN  的偏好获取
                    跨域场景中节点大多缺乏明显的特征, 故为提高跨域节点嵌入的准确性, 考虑不使用用户-项目特征信息捕获
                 节点嵌入. 我们提出多层循环         GCN  学习跨域节点嵌入, 包含节点嵌入模块和图学习模块. 其中, 节点嵌入模块涉及
                 域共享嵌入层和两域特有嵌入层, 分别生成用于跨域传输的共享嵌入和两域特定嵌入; 图学习模块将用户、项目
                 嵌入作为输入, 得到用户-项目偏好.
                    在第  2.1  节利用伪重叠判定机制得到所有用户、项目相似度矩阵后, 将其作为多层循环                         GCN  节点嵌入模块
                 的初始输入. 该模块利用       GCN  分别学习源域、目标域和联合域节点嵌入, 通过聚合低阶信息, 得到用户、项目域
                 共享和两域特有嵌入, 并利用门控神经单元得到用户组合嵌入和项目组合嵌入. 多层循环                            GCN  图如图  3  所示.
                    嵌入层的输入是邻接矩阵和节点特征矩阵, 通过对节点属性和图结构进行编码生成节点嵌入. 在嵌入层中采
                 用多层   GCN, 可有效地学习基于邻域聚合的节点嵌入. 在初始阶段, 每个用户                   (或项目) 节点初始化为特征向量         X 0
                                                                                                        u
                     0
                 (或  X ), 此时图结构分别为用户、项目相似度图. 节点嵌入计算如公式                 (7) 所示.
                     i

                                                           1    1
                                                                      (k)
                                                           − 2 ˆ
                                                                   (k)
                                                 X (k+1)  = ϖ(D u W u D u X F )
                                                                − 2
                                                 
                                                 
                                                   u              u  u                               (7)
                                                           1    1
                                                          − 2 ˆ  − 2
                                                   (k+1)          (k)  (k)
                                                  X  = ϖ(D W i D X F )
                                                   i       i    i  i  i
                 其中,  X (k)   和  X (k)  分别是第  k 层得到的用户、项目嵌入矩阵,  ϖ 表示激活函数,    ˆ W u  和   ˆ W i  分别表示带自连接的用户、
                       u    i
                                  ′
                 项目邻接矩阵,     ˆ W = W + I (I 为单位矩阵), D u 和  D i 为用户、项目节点的度矩阵, 表示与之相似度不为零的邻居节
                 点数,  F  (k)   和  F (k)  分别是第  k 层的用户、项目权重矩阵.
                       u
                            i
                    嵌入模块得到的用户、项目节点嵌入作为图学习模块的输入, 该模块在获取新的权重矩阵后, 将其作为下一
                 层节点嵌入模块的再次输入, 多次迭代操作. 这样, 利用图学习模块将用户、项目表示可从潜在空间映射到相似度
   417   418   419   420   421   422   423   424   425   426   427