查看原文
其他

9 篇顶会论文解读推荐中的序列化建模:Session-based Neural Recommendation

白婷 PaperWeekly 2022-03-17

作者丨白婷

学校丨中国人民大学博士生

研究方向丨深度学习、推荐系统,大数据管理与分析方法

本文经授权转载自知乎专栏「RUC AI Box」。

前言


本文对 Recurrent Neural Network 在推荐领域的序列数据建模进行梳理,整理推荐领域和深度学习领域顶会 RecSys、ICLR 等中的 9 篇论文进行整理。图片和文字来源于原文,帮助读者理解,有争议的请联系我。


Session-based neural recommendation


首先介绍下 session-based 的概念:session 是服务器端用来记录识别用户的一种机制。典型的场景比如购物车,服务端为特定的对象创建了特定的 Session,用于标识这个对象,并且跟踪用户的浏览点击行为。我们这里可以将其理解为具有时序关系的一些记录序列。


写作动机


传统的两类推荐方法——基于内容的推荐算法和协同过滤推荐算法(model-based,memory-based)在刻画序列数据中存在缺陷:每个 item 相互独立,不能建模 session 中 item 的连续偏好信息。


传统的解决方法


1. item-to-item recommendation approach (Sarwar et al.,2001; Linden et al., 2003) : 采用 session 中 item 间的相似性预测下一个 item。缺点:只考虑了最后一次的 click 的 item 相似性,忽视了前面的的 clicks, 没有考虑整个序列信息。 


2. Markov decision Processes (MDPs)(Shani et al., 2002):马尔科夫决策过程,用四元组<S,A, P, R>(S: 状态, A: 动作, P: 转移概率, R: 奖励函数)刻画序列信息,通过状态转移概率的计算点击下一个动作:即点击 item 的概率。缺点:状态的数量巨大,会随问题维度指数增加。MDPs 参见博客[1]。


Deep Neural Network 的方法


Deep Neural Network(RNN:LSTM 和 GRU 的记忆性)被成功的应用在刻画序列信息。因为论文中主要采用 GRU,下面简单介绍下 GRU(LSTM 详解参考博客[2])。 


GRU的原理:GRU 输入为前一时刻隐藏层和当前输入输出为下一时刻隐藏层信息GRU 包含两个门:reset 门和: update 门,其中用来计算候选隐藏层,控制的是保留多少前一时刻隐藏层的信息;用来控制加入多少候选隐藏层的信息,从而得到输出。GRU 可以灵活控制长短距离的依赖信息,适合刻画序列数据。



到此,已经说明用 GRU 来刻画 session 中的序列的合理性。下面我们来梳理相关的工作。 


Session-based recommendations with recurrent neural networks

ICLR 2016


本文的贡献在于首次将 RNN 运用于 Session-based Recommendation,针对该任务设计了 RNN 的训练、评估方法及 ranking loss。 


• Motivation (Why):第一篇提出将 RNN 应用到 session-based recommendation 的论文。 


• Main Idea (What):一个 session 中点击 item 的行为看做一个序列,用 GRU 来刻画。 


• How:


模型(GRU4REC)架构 


型输入:session 中的点击序列,, 1 ≤ r < n,通过 one hot encoding 编码,通过 embedding 层压缩为低维连续向量作为 GRU 的输入。 


模型输出:每一个 item 被点击的预测概率,y=M(x), where y=[y1, y2...ym]。


M:模型函数。yi 是 item i 的预测点击概率。


△ Model Architecture  


训练策略 


为了提高训练的效率,文章采用两种策略来加快简化训练代价,分别为:


Training strategy:为了更好的并行计算,论文采用了 mini-batch 的处理,即把不同的 session 拼接起来,同一个 sequence 遇到下一个 Session 时,要注意将 GRU 中的一些向量重新初化。



Training data sample:因为 item 的维度非常高,item 数量过大的概率会导致计算量庞大,所以只选取当前的正样本(即下一个点击的 item)加上随机抽取的负样本。论文采用了取巧的方法来减少采样需要的计算量,即选取了同一个 mini-batch 中其他 sequence 下一个点击的 item 作为负样本,用这些正负样本来训练整个神经网络。


损失函数 


损失函数的选择也影响着模型的效果,文章尝试两种损失函数: 


Point-wise ranking loss,即认为负样本为 0,正样本为 1 的 loss function,发现训练出来的模型并不稳定,因为在推荐里面,并不存在绝对的正样本和负样本,用户可能对多个 item 存在偏好。


故采用 Pairwise ranking,即正样本的 loss 要低于负样本。本文使用了两种基于 Pairwise ranking 的 loss function:


• BPR:一种矩阵分解法,公式:


• TOP1:一种正则估计,公式:



数据集 


• RecSys Challenge 2015:网站点击流 


• Youtube-like OTT video service platform Collection 


评价指标 


recall@20、MRR


Baselines


POP:推荐训练集中最受欢迎的 item; 


S-POP:推荐当前 session 中最受欢迎的 item; 


Item-KNN:推荐与实际 item 相似的 item,相似度被定义为 session 向量之间的余弦相似度;


BPR-MF:一种矩阵分解法,新会话的特征向量为其内的 item 的特征向量的平均,把它作为用户特征向量。


实验结果及总结



Parallel Recurrent Neural Network Architectures for Feature-rich Session-based Recommendations

RecSys 2016


这篇文章主要贡献:探究如何将 item 属性信息(如文本和图像)加入到 RNN 框架中,探究了几种融合 item 属性的模型框架。 


• Motivation (Why): Items typically have rich feature representations such as pictures and text descriptions that can be used to model the sessions. 


• Main Idea (What): Here we investigate how these features can be exploited in Recurrent Neural Network based session models using deep learning. 


• How:


模型架构 


模型输入:item ID, Item features (texts and image) 


模型输出:next click scores of each items 


1. Baseline architectures: ID only, Feature only, Concatenated input 


2. p-RNN architectures: Parallel, Parallel shared-W, Parallel interaction



实验结果及结论


Parallel 并行更新 item ID 和 feature 的模型达到最好的效果,Parallel shared-W 和 Parallel interaction 交互模型并没有好的效果,可能原因重复的序列信息加重了模型的训练负担。



Incorporating Dwell Time in Session-Based Recommendations with Recurrent Neural Networks

RecSys 2017


本文的贡献在于将用户在 session 中 item 上的停留时间长短考虑进去。 


• Motivation (Why): 用户在 session 中的 item 停留时间越长,越感兴趣。


• Main Idea (What): We explore the value of incorporating dwell time into existing RNN framework for session-based recommendations by boosting items above the predefined dwell time threshold. 


• How:


模型架构


对于 session 中的一个序列 item 集合 x= { [x1,x2...xn] },以及每个 item xi 的停留时间

,设定单位时间阈值 t。如此我们可以将每个 item 按照单位时间划分成个时间片。如下图所示,其余训练方式与第一篇文章相同,实验证明可以提升推荐效果。




实验结果



Personalizing Session-based Recommendations with Hierarchical Recurrent Neural Networks

RecSys 2017


本文的贡献在于提出一种层次化的 RNN 模型,相比之前的工作,可以刻画 session 中用户个人的兴趣变化,做用户个性化的 session 推荐。


• Motivation (Why): 用户的历史信息反映了用户的兴趣爱好,应该在下一个 session 的推荐中考虑进去。


• Main Idea (What): 提出一种层次化的 RNN 模型,可以解决 (1) session-aware recommenders:传递用户的历史兴趣爱好到下一个 session 中;(2) session-based recommenders:当用户没有历史记录时,对用户当前 session 进行建模。


• How:


模型架构


用两个 GRU,Session-level GRU 和 User-level 的 GRU 分别刻画 session 信息和 user历史信息,模型架构图如下,对于一个用户的多个 sessions,当一个 session 结束时,用该 session 的输出作为当前的 user 的表示,并用来初始化下一个 session 的输入。



数据集



Baseline



实验结果



When Recurrent Neural Networks meet the Neighborhood for Session-Based Recommendation

RecSys 2017


本文的贡献在于提出将 session 中的 RNN 模型,与 KNN 方法结合起来,能够提高推荐的效果。


• Motivation (Why): 如果一个 item 在与当前 item 相似的 session 中出现,那么这个 item 出现的可能性更大。


• Main Idea (What): 提出一种 Session-based kNN 算法。


• How:


session-based 方法


找出与当前 session 最相近的 k most similar past sessions in the training data


item i 在当前 session 中出现的概率是:



如果 item i 有出现在 k 个最相近的 session 中,,如果没有,那么认为该 item 不会出现在当前 session 中。 


Hybrid Approach:将 session-based 方法和 kNN 方法结合推荐效果最好。


实验结果及结论



结论:item 的共现信号 co-occurrence signals 可以用来预测 sequential patterns。


Improved Recurrent Neural Networks for Session-based Recommendations

DLRS 2016


本文的贡献在于提出将在 GRU4REC 中引入了四条优化方法。


Data augmentation(数据增强) 


给定一个session的输入序列 [x1,x2...xn] , 可以产生多条训练数据,如([x1,V(x2)], [x1,x2, V(x3)] )如下图,可以增加训练数据。此外,用户可能出现误点击的,用 dropout 的方式来泛化数据,可以增强训练的鲁棒性。



Model pre-training


在推荐中,对于 user 和 item 更新都很快的推荐场景,最近的信息更为重要,文本提出先利用历史所有数据预训练出一个模型,然后只选取最近的数据,以预训练得到的模型权重作为初始化参数,再训练一个最终模型。


Use of Privileged information


这是一个 generalized distillation framework。给定序列 [x1,x2...xr] 和对应 label,其相应的 privileged sequence 为,对应 label 为,其中 n 为该 session 总长度(剩余序列的逆序列)。此时 loss function 变为:



其中 L 为距离函数,V(xr) 是 xr 的标签。


Output embedding


直接预测 item 的 embedding 向量。使预测结果更具有泛化意义,相当于预测了用户 embedding 后的语义空间中兴趣表示,训练时定义的 loss 为输出层与该样本在 embedding 层的 cosine 相似度。 


现有 session-based neural recommendation 论文对比如下:



论文列表


1. Session-based recommendations with recurrent neural networks. (ICLR 2016) 

2. Parallel Recurrent Neural Network Architectures for Feature-rich Session-based Recommendations. (RecSys 2016) 

3. Incorporating Dwell Time in Session-Based Recommendatons with Recurrent Neural Networks. (RecSys 2017) 

4. Personalizing Session-based Recommendations with Hierarchical Recurrent Neural Networks. (RecSys 2017) 

5. When Recurrent Neural Networks meet the Neighborhood for Session-Based Recommendation. (RecSys 2017) 

6. Improved Recurrent Neural Networks for Session-based Recommendations. (DLRS 2016) 

7. Neural Attentive Session-based Recommendation. (CIKM 2017:未公布论文) 

next basket recommendation也可以看做序列数据,之后再做整理 

8. Next Basket Recommendation with Neural Networks (Recsys 2015) 

9. A Dynamic Recurrent Model for Next Basket Recommendation (SIGIR 2016)


参考文献


[1] Sarwar, Badrul, Karypis, George, Konstan, Joseph, and Riedl, John. Item-based collaborative filtering recommendation algorithms. In Proceedings of the 10th international conference on World Wide Web, pp. 285–295. ACM, 2001. 

[2] Linden, G., Smith, B., and York, J. Amazon. com recommendations: Item-to-item collaborative filtering. Internet Computing, IEEE, 7(1):76–80, 2003. 

[3] Shani, Guy, Brafman, Ronen I, and Heckerman, David. An mdp-based recommender system. In Proceedings of the Eighteenth conference on Uncertainty in artificial intelligence, pp. 453–460. Morgan Kaufmann Publishers Inc., 2002.


参考资料


[1] 马尔可夫决策过程MDP

http://www.cnblogs.com/jinxulin/p/3517377.html

[2] LSTM 详解

https://colah.github.io/posts/2015-08-Understanding-LSTMs/

[3] SESSION-BASED RECOMMENDATIONS WITH RECURRENT NEURAL NETWORKS

https://zhuanlan.zhihu.com/p/28776432

[4] Improved Recurrent Neural Networks for Session-based Recommendations 阅读笔记

https://zhuanlan.zhihu.com/p/30550859

          

 我是彩蛋


 解锁新姿势:用微信刷论文!


PaperWeekly小程序上线啦


今日arXiv√猜你喜欢√热门资源√


随时紧跟最新最热论文

 

 解锁方式 

1. 识别下方二维码打开小程序

2. 用PaperWeekly社区账号进行登陆

3. 登陆后即可解锁所有功能

 

长按识别二维码,使用小程序

*点击阅读原文即可注册





关于PaperWeekly


PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。


▽ 点击 | 阅读原文 | 访问作者知乎专栏

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存