推荐中的序列化建模:Session-basedneuralrecommendation 前⾔:本⽂对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参见博客:)
三、Deep Neural Network的⽅法
Deep Neural Network (RNN:LSTM和GRU的记忆性) 被成功的应⽤在刻画序列信息。因为论⽂中主要采⽤GRU,下⾯简单介绍下GRU.(LSTM 详解参加博客:)session怎么记忆
GRU的原理:GRU 输⼊为前⼀时刻隐藏层  和当前输⼊  , 输出为下⼀时刻隐藏层信息  。GRU 包含两个门  :reset 门和  : update 门,其中  ⽤来计算候选隐藏层 ,控制的是保留多少前⼀时刻隐藏层  的信息;  ⽤来控制加⼊多少候选隐藏层  的信息,从⽽得到输出  。GRU可以灵活控制长短距离的依赖信息,适合刻画序列数据。
到此,已经说明⽤GRU 来刻画session中的序列的合理性。下⾯我们来梳理相关的⼯作。
1. 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:
(1)模型(GRU4REC)架构(如下图)
模型输⼊: session 中的点击序列, x =  , 1 ≤ r < n,通过one hot encoding 编码,通过embedding层压缩为低维连续向量作为 GRU 的输⼊。
模型输出:每⼀个item 被点击的预测概率, y =M(x), where y =
是item i 的预测点击概率。
(2)训练策略
为了提⾼训练的效率,⽂章采⽤两种策略来加快简化训练代价,分别为:
Training strategy: 为了更好的并⾏计算,论⽂采⽤了mini-batch的处理,即把不同的session拼接起来,同⼀个sequence遇到下⼀个Session时,要注意将GRU 中的⼀些向量重新初化。
Training data sample:因为item的维度⾮常⾼,item数量过⼤的概率会导致计算量庞⼤,所以只选取当前的正样本(即下⼀个点击的item)加上随机抽取的负样本。论⽂采⽤了取巧的⽅法来减少采样需要的计算量,即选取了同⼀个mini-batch 中其他sequence下⼀个点击的item作为负样本,⽤这些正负样本来训练整个神经⽹络。
(3)损失函数
损失函数的选择也影响着模型的效果,⽂章尝试两种损失函数:
Point-wise ranking loss,即认为负样本为 0,正样本为 1 的loss function,发现训练出来的模型并不稳定,因为在推荐⾥⾯,并不存在绝对的正样本和负样本,⽤户可能对多个item 存在偏好。
故采⽤Pairwise ranking,即正样本的loss要低于负样本。本⽂使⽤了两种基于Pairwise ranking的loss function:
(4)数据集
RecSys Challenge 2015:⽹站点击流
Youtube-like OTT video service platform Collection
(5)评价指标
recall@20、MRR
(6)Baselines:
POP:推荐训练集中最受欢迎的item;
S-POP:推荐当前session中最受欢迎的item;
Item-KNN:推荐与实际item相似的item,相似度被定义为session向量之间的余弦相似度
BPR-MF:⼀种矩阵分解法,新会话的特征向量为其内的item的特征向量的平均,把它作为⽤户特征向量。
(7)实验结果及总结
2. 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
(1)模型架构
模型输⼊: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
(2)实验结果及结论
Parallel 并⾏更新item ID 和 feature 的模型达到最好的效果,Parallel shared-W和Parallel interaction 交互模型并没有好的效果,可能原因重复的序列信息加重了模型的训练负担。
3. 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:
(1) 模型架构
对于session 中的⼀个序列item集合x= {  },以及每个item  的停留时间 ,设定单位时间阈值 t. 如此我们可以将每个item 按照单位时间划分成 个时间⽚。如下图所⽰,其余训练⽅式与第⼀篇⽂章相同,实验证明可以提升推荐效果。
(2) 实验结果
4. 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
(1)模型架构
⽤两个GRU, Session-level GRU 和User-level的GRU分别刻画session 信息和user历史信息,模型架构图如下,对于⼀个⽤户的多个sessions,当⼀个session 结束时,⽤该session的输出作为当前的user的表⽰, 并⽤来初始化下⼀个session的输⼊。
(2)数据集
(3) Baseline
(4)实验结果
5. 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
(1)session-based ⽅法
出与当前session最相近的 k most similar past sessions in the training data.
item i 在当前session中出现的概率是:
如果item i 有出现在k 个最相近的session 中,  =1, 如果没有,那么认为该item 不会出现在当前session中。
Hybrid Approach. 将session-based ⽅法和 kNN ⽅法结合推荐效果最好。
(2)实验结果及结论
结论:item的共现信号co-occurrence signals 可以⽤来预测sequential patterns。
6. Improved Recurrent Neural Networks for Session-based Recommendations. (DLRS 2016) 本⽂的贡献在于提出将在在GRU4REC 中引⼊了四条优化⽅法。
(1) Data augmentation(数据增强)
给定⼀个session的输⼊序列  , 可以产⽣多条训练数据,如(  )如下图,可以增加训练数
据。此外,⽤户可能出现误点击的,⽤dropout 的⽅式来泛化数据,可以增强训练的鲁棒性。
(2)Model pre-training
在推荐中,对于user和item更新都很快的推荐场景,最近的信息更为重要,⽂本提出先利⽤历史所有数据预训练出⼀个模型,然后只选取最近的数据,以预训练得到的模型权重作为初始化参数,再训练⼀个最终模型。
(3)Use of Privileged information.
是⼀个generalized distillation framework。给定序列  ,其相应的privileged sequence为
,其中n为该session总长度(剩余序列的逆序列)。此时loss function变为
其中L 为距离函数,  的标签。
(4)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 Wid
e 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.
参考博客

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。