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

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


                      T
                    S
                 量  z ,  z  也由同样方法生成), 其计算如公式     (12) 所示.
                    i  i

                                            (          )     [   (          )]
                                                                           S
                                                                     O O
                                                           O
                                         S
                                               O O
                                                       S
                                                     S
                                        z = σ Vt a +Vt a ⊙a + 1−σ Vt a +Vt a S  ⊙a S
                                        u     u  u  u  u  u         u  u  u  u  u
                                       
                                                                                                    (12)
                                            (          )     [   (          )]
                                       
                                        T     O O   T  T  O         O O   T  T  T
                                        z = σ Vt a +Vt a ⊙a + 1−σ Vt a +Vt a u  ⊙a u
                                                       u
                                                           u
                                                     u
                                                                           u
                                         u
                                                 u
                                                                      u
                                               u
                                                                     u
                       O
                           S
                               T
                 其中,  Vt ,  Vt  /  Vt  分别是门控单元的域共享权重矩阵和域特有权重矩阵.

                       u   u   u
                 2.3   模型预测过程
                    在第  2.2  节获取用户与项目的组合特征向量后, 为更好地学习用户与项目表示之间的交互, 我们采用                           MLP  模
                 型对用户-项目交互建模, 以源域为例, 如公式            (13)、(14) 所示.

                                                                
                                                                S
                                                              z 
                                                    (1)  (1)  (1)   u   (1)
                                                                 +h )
                                                                  
                                                   φ = ϖ (G 
                                                                
                                                               S
                                                              z
                                                  
                                                               i
                                                  
                                                         .                                           (13)
                                                        .
                                                  
                                                        .
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                   φ  = ϖ (G φ    +h )
                                                    (L)  (L)  (L)  (L−1)  (L)

                                                         S
                                                               (L)
                                                        ˆ y = f(φ )                                  (14)
                                                         ui
                                                                                        (k)
                 其中,  φ (k)  表示第  k 层的输出结果  (1≤k≤L),  G (k)   和  h (k)  分别为第  k 层可训练矩阵和偏置项,  ϖ (·) 表示第  k 层激活
                 函数, f(·) 表示将  φ (L)   映射为得分概率  ˆ y S   的预测函数.
                                              ui
                                   ˆ y T   也由同样方法得到. 利用伪重叠判定机制的多层循环            GCN  跨域推荐算法, 利用伪重叠
                    目标域的评分预测        ui
                 判定机制获取节点相似度矩阵后, 输入至多层循环                GCN  以有效学习并组合节点特征, 最终利用            MLP  学习源域和
                 目标域的得分概率, 如算法        1  所示.
                 算法  1. 利用伪重叠判定机制的多层循环          GCN  跨域推荐过程.
                 输入: 源域/目标域用户集       U /U , 源域/目标域项目集    I /I , 源域/目标域评分矩阵    R /R ;
                                                                                 T
                                                                               S
                                                          S T
                                      S
                                        T
                 输出: 社区集   C, 模块度                               ˆ y S  ˆ y ).
                                                                    T
                                                            ˆ y ui (即
                                   Q, 源域/目标域的预测得分概率
                                                                 ui  /   ui
                 Begin
                 1.  C ← {{u}},∀u ∈ U; // 初始化每位用户为一个社区
                   ∑     ∑
                 2.   in  ←  w uv ,u ∈ c∩v ∈ c; // 计算社区  c 内部边权重和
                     c
                   ∑     ∑
                 3.   tot  ←  w uv ,u ∈ c∪v ∈ c; //计算与社区  c 中节点相连边的权重和
                     c
                 /* 伪重叠判定机制模块 */
                 4. For  u ∈ U // 找到用户  u  的最优社区
                 5.  For  v ∈ U ∩v ∈ c∩v , u∩w uv , 0
                              ∑       ∑
                                          tot
                             
                                  w uv     ∗w u  ∑
                                         c
                                v∈c                          o
                                     −        +λ     w uv , v ∈ U
                             
                                           2
                             
                 6.    ∆Q u→c =  ∑ 2m  ∑ 2m        v∈c         ;
                             
                             
                                         tot
                             
                                  w uv     ∗w u
                                v∈c      c
                                                             o
                                     −        ,          v < U
                             
                                 2m       2m 2
                    // 计算将   u  移入所有邻居节点      v 所在社区   c 所产生的模块度增益, 见公式        (5)
                 7.  End For
                 8.  If  max∆Q u→ˆc  then // 将  u  移入使其获得最大模块度增益的社区  ˆ c
                       ∑     ∑    ∑       ∑     ∑
                 9.       in  ←  in  +  w uv ,   tot  ←  tot  +w u ;
                          ˆ c   ˆ c          ˆ c   ˆ c
                                     v∈ˆc
                       ∑     ∑    ∑       ∑     ∑
                 10.      in  ←  in  −  w uv ,   tot  ←  tot  −w u ;
                          c     c           c      c
                                     v∈c
                 11.    ˆ c ← ˆc∪{u} c ← c−{u};
                               ,
                 12.  End If
   419   420   421   422   423   424   425   426   427   428   429