【推荐算法论文阅读】Session-based recommendations with recurrent neural networks

一、背景

基于会话的推荐方法,主要有基于物品的协同过滤和基于马尔可夫决策过程的方法。

基于物品的协同过滤,需要维护一张物品的相似度矩阵,当用户在一个session中点击了某一个物品时,基于相似度矩阵得到相似的物品推荐给用户。这种方法简单有效,并被广泛应用,但是这种方法只把用户上一次的点击考虑进去,而没有把前面多次的点击都考虑进去。

基于马尔可夫决策过程的推荐方法,也就是强化学习方法,其主要学习的是状态转移概率,即点击了物品A之后,下一次点击的物品是B的概率,并基于这个状态转移概率进行推荐。这样的缺陷主要是随着物品的增加,建模所有的可能的点击序列是十分困难的。

二、亮点

  1. 使用RNN建模基于会话的推荐系统,建模多次点击序列;
  2. 使用ranking loss来训练模型
  3. 为了提高训练的效率,采用mini-batch并行训练和负采样的策略

三、模型具体结构

在这里插入图片描述

请添加图片描述

四、ranking loss

本文使用ranking loss,ranking可以是逐点(pointwise)、成对(pairwise)或列表(listwise):

  • 逐点排名独立地估计item的得分或排名,损失的定义方式应确保相关item的排名较低。
  • 成对排名比较一个positive item和negative item的得分或成对排名,损失的定义方式应确保positive item的排名低于negative item的排名。
  • 列表排名使用所有item的得分或排名,并将其与perfect ordering进行比较。由于它包括排序,因此通常计算成本更高,因此不经常使用。

本文中,作者发现逐点排名不稳定,而成对排名的损失表现良好。

1. 贝叶斯个性化排名(Beyesian Personalized Ranking,BPR)

请添加图片描述

2. 本文使用的ranking loss

请添加图片描述
r s , j r_{s,j} rs,j是负样本的点击概率, r s , i r_{s,i} rs,i是正样本的点击概率,若 r s , j r_{s,j} rs,j< r s , i r_{s,i} rs,i,则 L s L_s Ls会比较小。加入正则项是为了稳定性,由于正样本也会被用作负样本。

五、mini-batch并行化训练

为了更好的并行计算,论文采用了 mini-batch 的处理,即把不同的session拼接起来:
请添加图片描述
可以看到,Session1的长度为4,Session2的长度为2,Session3的长度为6,Session4的长度为2,Session5的长度为3。假设Batch-Size为3,那么我们首先用前三个Session进行训练,不过当训练到第三个物品时,Session2已经结束了,那么我们便将Session4来接替上,不过这里要注意将GRU中的状态重新初化。

六、负采样

物品数量如果过多的话,模型输出的维度过多,计算量会十分庞大,因此在实践中一般采取负采样的方法。

对user-item matrix中任意缺失event的自然解释是:用户不知道该项的存在,因此没有交互。但是,由于用户不喜欢该项目,因此用户知道该项目并选择不进行交互的可能性很低。

item越受欢迎,user越有可能知道它,因此丢失的event越有可能表示不喜欢。在本文中,作者没有为每个训练实例生成单独的负样本,而是使用mini-batch中其他训练实例中的item作为负样本。这种方法的好处是:我们可以通过跳过采样进一步减少计算时间。同时,这种方法也是基于受欢迎程度的抽样,因为一个item出现在mini-batch的其它训练实例中的可能性与其受欢迎程度成正比。

参考资料

  1. 推荐系统遇上深度学习(四十)-SESSION-BASED RECOMMENDATIONS WITH RECURRENT NEURAL NETWORKS
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值