前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >专栏 | 9 篇顶会论文解读推荐中的序列化建模:Session-based Neural Recommendation

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

作者头像
机器之心
发布2018-05-10 15:35:12
3K0
发布2018-05-10 15:35:12
举报
文章被收录于专栏:机器之心

作者丨白婷

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

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

本文经授权转载自知乎专栏「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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-11-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器之心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
GPU 云服务器
GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于生成式AI,自动驾驶,深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档