Page 323 - 《软件学报》2025年第12期
P. 323

5704                                                      软件学报  2025  年第  36  卷第  12  期


                 兴趣的细粒度刻画能力, 又充分挖掘了会话间的潜在高阶关联, 使模型在兼顾实时性和全局性的同时提升泛化能
                 力和推荐性能, 为复杂的推荐任务提供更全面的支持.
                    对于会话间信息的融合, 本文将标准二元交叉熵损失函数作为学习目标, 可直观地衡量样本对的相似性或差
                 异性, 以便更有效地进行正负样本的区分, 提升模型的优化效果, 如公式                    (10) 所示:

                                                                         a
                                                                       a
                                                           a
                                                         a
                                              L s1 = −log(δ( f ,h ))−log(1−δ( f ,h ))                (10)
                                                        s u  s u      s u  s c
                 其中,   f  a   是  Transformer 编码器下的增强会话嵌入  (锚点),  h a   是超图编码器下的对应增强会话嵌入        (正样本),  h a
                      s u                                      s u                                     s c
                 是超图编码器下的其他增强会话嵌入             (负样本),  δ 为非线性激活函数.
                    然而, 仅使用经过数据增强后的会话特征进行推荐任务, 会导致对比学习框架的形式单一, 使得模型在早期训
                 练时会受到项目建模不准确的影响, 在捕捉用户偏好变化上存在局限性, 从而限制模型的泛化能力. 因此, 本文使
                 用原始会话嵌入与增强会话嵌入进行对比学习, 以避免无关会话项目的影响, 提升模型的泛化能力. 对于原始会话
                 信息, 这里采用    NT-Xent 损失函数来提取, 有助于提升模型的特征表示能力, 使得学习到的特征在下游任务中表现
                 更佳, 如公式   (11) 所示:

                                                                  a
                                                          exp(sim( f , f ))
                                                                  s u  s u
                                                 L s2 = −log ∑                                       (11)
                                                                   a
                                                            exp(sim( f , f ))
                                                                   s u  s c
                                                          c,u
                 其中, sim(·) 是两个会话嵌入间相似性度量的点积操作,             f   是对应原始会话嵌入     (正样本),   f   是其他原始会话的嵌
                                                            s u                        s c
                 入  (负样本).
                    由于经过数据增强的会话中包含时间间隔时长信息, 且来自                    Transformer 编码器的输出嵌入中带有位置信息,
                 因此经过   Transformer 编码器的增强会话嵌入会融合多角度会话内项目的关系, 我们将其作为推荐任务的主体. 这
                 里采用对数似然损失函数进行推荐, 对编码器进行优化, 如公式                   (12) 所示:

                                                                ∑
                                                        a                 a
                                          L rec (u,t) = −log(δ( f ,e s u ,t+1 ))−  log(1−δ(f ,e s c ,i ))  (12)
                                                        s u               s u
                                                                c,u
                 其中,   L rec (u,t) 为会话  s u  中预测第  t 位项目的损失函数,  δ 为非线性激活函数,  e s u ,t+1  为会话中下一项目  v t+1  的嵌入,
                 e s c ,i  不是相应会话  s u  中的项目嵌入. 项目的嵌入   从 e  SeqEnc 嵌入表中检索, 该表与  Transformer 共同优化.
                    在推荐任务和对比学习任务中获得的损失函数均可对模型进行优化. 为通过对比学习提高推荐性能, 我们利
                 用了一种多任务策略来联合优化模型, 如公式              (13) 所示:

                                                                                                     (13)
                                                    L = L rec +λ 1 L s1 +λ 2 L s2
                 其中,  λ 1 、 λ 2  是超参数, 用于控制对比学习任务的强度. 自监督会话推荐的具体过程见算法                  3.
                 算法  3. 结合时间间隔数据增强的对偶视图自监督会话推荐算法.
                                              a                      a     a
                 输入: 用户数据增强后的会话信息集           S , 对偶视图得到的会话嵌入        h ,   f s u  f ,   ;
                                              u                      s u   s u
                 输出: 会话推荐列表     List.
                 Begin
                                     S ; //见算法  1
                                      a
                 1. 获取数据增强后的会话
                                      u
                 2. For 会话  s ∈ S :
                              a
                           a
                           u
                              u
                                                 a
                 3.  获取对偶视图编码会话的不同嵌入            h ,   f s u  f ,   a  ; //见算法  2
                                                 s u  s u
                                                        ,
                 4.  在不同视图间进行对比学习, 获得损失函数             L s1 L s2 ; //见公式  (10), 公式  (11)
                                                        L rec ; //见公式  (12)
                 5.  实施推荐任务获得推荐列表         List s u   及损失函数
                 6.  计算联合优化损失函数        L, 并更新模型参数; //见公式     (13)
                 7. End For
                                       ; //模型预测
                 8. 获取推荐列表
                              List ← List s u
   318   319   320   321   322   323   324   325   326   327   328