Collaborative Filtering with Recurrent Neural Networks论文介绍

Collaborative Filtering with Recurrent Neural Networks

Robin Devooght Hugues Bersini 2016

问题:

传统的协同过滤方法没有考虑推荐物品的时间差异,因此无法捕捉到用户随时间变化的喜好或与情境有关的兴趣。作者通过分析,认为传统推荐常用的协同过滤方法可以看作时间序列的预测问题。进而引入RNN这一处理序列问题常用的深度网络学习模型。静态推荐系统将用户和项目建模为特征空间中的点,没有时序差异。 它会在特定的信息不佳的空间推荐与用户相近的物品。 给定序列预测方法,用户可以用特征空间中的轨迹来表示,这可以更准确地预测用户兴趣的发展(因为追求同样的轨迹)。
考虑用户消费物品的顺序,(x1, x2, x3),然后预测(x4, x5, etc)。
由此产生了两种预测:

  • 短期预测,即预测用户下一个要消费的物品 序列预测多是短期预测
  • 长期预测,即预测用户迟早要消费的物品 传统的方法多是长期预测

评价标准:精确率(Precision)和召回率(Recall)当然两种方法的具体公式并不相同。
短期预测增加了推荐结果的多样性,因为为获得更精确的结果,短期预测比长期预测需要更多的物品。

将推荐问题变为序列预测问题

将数据集中出现的每个item视作一个词,item的集合视作词的集合。借用bag-of-words的思想,将每个item用one-hot向量表示。
每个用户的历史行为作为采样的时间序列。每一时刻, RNN模型的输入即为item的one-hot表示,输出则为每个item对应神经元的softmax值的大小。可以根据问题需要返回softmax最大的前k个值作为推荐item.
为了避免梯度消失的问题,文中采用”gated”RNN即LSTM模型,目标损失函数为输出类别的交叉熵函数,采用Adagrad方法更新梯度。
RNN/LSTM训练:

  • 学习率 采用Adagrad方法更新梯度,且学习率会衰减
  • 隐层神经元个数 可通过实验得出最佳结果,要考虑最后的准确性,也要考虑训练时长。可使用特征数量作为神经元个数来试验
评价标准
  • sps 衡量短期预测的准确性
  • recall 衡量长期预测的准确性
  • User coverage 衡量推荐方法的普适性
  • Item coverage 衡量推荐结果的多样性
数据集
  • Movielens 1M: with 6040 users and 1,000,209 ratings
    over 3706 movies.
  • Netflix: 480k users and 100M ratings over 17770 movies.
实验结果:
  • RNN效果最好
    在这里插入图片描述
  • GRU往往比RNN和LSTM速度快, 而且性能与LSTM相差无几
    在这里插入图片描述
  • 本文还在原来的实验基础上,加入了三个特征:用户特征(年龄、性别等)、物品特征(发行时间、类型等)、以及用户对物品的互动(评分等)。结果显示加入特征后确实比原来的结果更好,不过提升并不明显,说明序列信息已经包含了大部分特征。
    在这里插入图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值