Page 410 - 《软件学报》2024年第6期
P. 410

2986                                                       软件学报  2024  年第  35  卷第  6  期


                                                        ∑       1
                                                   e (k+1)  =        e k                             (17)
                                                    i     u∈N u  √  u  u
                                                            i  |N ||N | i
                                                                 i  u
                                                                       0
                                                       0              e  时, 便可分别通过公式      (16) 和公式  (17) 中
                    ● 预测层. 当给定并初始化所有用户的嵌入             e  和所有项目的嵌入
                                                       u               i
                 设置的传播方式来层层优化嵌入. 直到嵌入达到最后一层                   (第  K  层) 时, 再将每一层用户和项目的嵌入        (包括初始
                 嵌入) 组合起来, 得到用户      (或项目) 的最终表示, 如公式       (18) 所示:
                                                    ∑ K          ∑ K
                                                         ′ k
                                                                       ′ k
                                                e u =   ω e ,  e i =  ω e                            (18)
                                                         k u
                                                                       k i
                                                      k=0          k=0
                 其中, 第  k 层嵌入的权重为     ω   (即, 用户对第  k 种兴趣项目类型的选择概率).
                                       ′
                                       k
                    最后, 我们将模型预测定义为用户和项目最终表示的内积, 如公式                    (19) 所示:
                                                              T
                                                         S u, i = e e i                              (19)
                                                              u
                    综上分析, 引入艾宾浩斯遗忘曲线构建兴趣模型, 分别求得自适应周期                       (见算法   1) 和兴趣量因子    (见算法   2)
                 等关键深度信息, 再根据兴趣模型得到用户潜在推荐项目类型, 进一步构建用户-类型-项目三元图结构, 用来表示
                 用户和项目的嵌入表示, 最后结合          GCN  模拟协同过滤思想, 以生成推荐列表. 具体过程见算法               3.
                 算法  3. 融合深度信息的     GCN  自适应推荐.
                                              i
                 输入: 用户当前内的所有的行为记录           B  ;
                                              u
                 输出: 用户的兴趣项目个体推荐列表           List.
                 Begin
                 1.   Γ T p  = ∅, List = ∅  /*参数初始化*/
                           i
                 2.   For  B in  B  :
                           u
                 3.   Compute T p  /* 计算所有用户对应所有项目的自适应周期, 见算法           1*/
                 4.       Γ T p  = f(T p )
                 5. End For ω (f A ) /* 计算用户-项目类型兴趣占比, 见公式
                           i
                 6.   For B in  B  :
                           u
                 7.   Compute   φ  /*计算所有用户对应所有项目的兴趣量因子, 见算法            2*/
                 8.      ϕ = f(φ)
                 9. End For
                           i
                 10.   For B in  B  :
                           u
                 11.    For each user’s    T p ∈ Γ T p    and   φ ∈ ϕ :
                 12.     J = j(T p )
                 13.      f A  =   φ∗ J   /* 计算用户对项目类型的感兴趣程度, 见公式      (2)*/
                 14.   End For
                 15.    p =                                   (11)*/
                           ω  (p) /* 将兴趣占比转换成权重值, 见公式       (12)*/
                            ′
                 16.    q =
                 17.   Sort and update the set of user interest items /* 排序并更新用户兴趣项目类型集*/
                 18. End For
                              0
                     0
                 19.    e = g(∗), e = σ(∗)   /*计算用户和项目的初始潜在嵌入, 见公式     (14) 和公式  (15)*/
                              i
                     u
                            0
                                        0
                 20.    e (k+1)  = f(e ), e (k+1)  = f(e )   /*计算用户和项目的  k 层潜在嵌入, 见公式  (16) 和公式  (17)*/
                     u      u    i      i
                        ∑        ∑
                           k
                 21.    e u =  e ,  e i =  e k i    /*计算用户和项目的最终潜在嵌入, 见公式  (18)*/
                           u
                 22.   s = S (e u ,e i )  /* 计算项目个体的得分, 见公式  (19)*/
                 23. List = sort(s) /* 排序获得项目个体推荐得分*/
   405   406   407   408   409   410   411   412   413   414   415