
摘要
会话推荐(Session-Based Recommendation, SR)模型的目标是利用用户在当前会话中历史行为(例如商品点击)的信息,预测其下一步最可能点击的项目。近年来的研究表明,会话中的项目交互序列可以建模为图结构数据,从而更有效地捕捉复杂项目间的转移关系。图神经网络(Graph Neural Networks, GNNs)能够学习此类会话图的有效表示,相较于传统的序列模型(如循环神经网络)[14],在推荐性能上表现出显著优势。然而,我们注意到,现有的基于GNN的推荐模型存在流行度偏差(popularity bias)问题:模型倾向于推荐热门项目,而难以有效推荐长尾项目(即不热门或出现频率较低的项目)。因此,在实际在线场景中,这些模型在面对每日不断涌入的新项目(尤其是低热度新项目)时表现较差。我们发现,这一问题在一定程度上与学习到的项目和会话图表示(嵌入向量)的模长(norm)有关。为此,我们提出一种新的训练方法,通过使用归一化表示来缓解该问题。采用归一化项目与会话图嵌入表示的模型,在离线设置下显著提升了对低热度长尾项目的推荐效果;在在线设置下,也显著改善了对新引入的低热度项目的推荐性能。此外,我们的方法在三个基准数据集上均显著超越了现有最先进模型的性能。
代码仓库
johnny12150/NISER
pytorch
GhostAnderson/NISER
pytorch
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| session-based-recommendations-on-diginetica | NISER+ | Hit@20: 53.39 MRR@20: 18.72 |
| session-based-recommendations-on-last-fm | NISER+ | HR@20: 24.76 MRR@20: 9.02 |
| session-based-recommendations-on-yoochoose1-1 | NISER+ | HR@20: 71.27 MRR@20: 31.61 |
| session-based-recommendations-on-yoochoose1-4 | NISER+ | HR@20: 72.90 MRR@20: 32.04 |