原文:K-plet Recurrent Neural Networks for Sequential Recommendation

(本文只是略读,所以笔记只记录了主要的思想,更多的细节还需看原文)


背景

  • 一般推荐

    忽略时间因素,将用户的历史行为表示为一个集合,利用矩阵分解技术获取用户兴趣。

  • 序列推荐

    主要考虑用户的评分和购买行为

    • 马尔科夫链:序列转化为转移图,融合矩阵分解,难以对长期依赖性建模

    • 基于循环神经网络的方法: 只对整体结构建模

因为循环神经网络(RNN)在序列数据 (文本,语音)的学习中表现很好,故尝试将其用于推荐系统。

RNN只对考虑序列的全局结构,但在推荐系统中,一个好的模型需要对序列的全局结构和局部关系都进行考虑。

所以将近邻序列合并到循环神经网络中,得到新的模型K-plet Recurrent Neural Network,简称 KrNN

序列推荐下的RNN

x:输入层
o:输出层
h:隐藏层
U、V、W:权重参数

对于某一个时刻ttt,ht=f(Uxt+Wht−1)h_t=f(Ux_t+Wh_{t-1})ht​=f(Uxt​+Wht−1​)

f()f()f()为隐藏层中的激活函数,ot=g(Vht)o_t = g(Vh_t)ot​=g(Vht​)

g()g()g()为输出层中的激活函数,常见的有sigmod、tanh或 relu

从t=1开始不断循环,将全部的过去序列 (x(t),x(t−1),x(t−2),…,x(2),x(1))(x^{(t)}, x^{(t-1)}, x^{(t-2)},…,x^{(2)},x^{(1)})(x(t),x(t−1),x(t−2),…,x(2),x(1)) 作为输入来生成当前状态。

几个RNN变体:

Vanilla RNN 最初被用来预测用户希望在博客中播放的下一首歌,之后RNN的变体被用来序列推荐

基于GRU的RNN 用于基于会话的推荐,有两种类型的排名损失函数:BPR 和 TOP1。

DREAM 利用池来总结一次的嵌入的项目,然后输入Vanilla RNN来解决得到下一次推荐。

CRNN 为每个用户u学习一个RNN 参数FθuF_{\theta^u}Fθu​,在所有用户之间共享WiW_iWi​和WpW_pWp​,因此,容易因参数化过度而过拟合。

但是归根结底,RNN及其变体只擅长捕获序列数据中的整体结构

KrNN的主要思路

所以主要解决两个问题:

  1. 如何通过相似度确定KrNN中的近邻序列
  2. 如何在序列预测任务中对查询序列和它的邻居之间的交互进行建模

根据序列相似度决定已给定的查询序列的最相近的 k 个近邻序列,将查询序列传入一个RNN,其k个近邻序列传入剩余k个RNN中,k+1个 RNN中共享参数,最终在损失层或输出层对 RNN 建模,这样就建立了KrNN。

序列预测任务中,假设 若序列的下一个项目是相同的,则两个序列是相似的(传统上一般认为两个相似的输入应该拥有相似的标签)

KrNN-L

基本假设:下一个项目相同的两个用户的上下文序列共享相似的潜在表示。 在此假设下,增加 LsrL_{sr}Lsr​来保持项目相似度的局部一致性。

损失函数中对查询序列与其近邻之间的相似度进行建模,并将这种相似度作为原始损失函数(如交叉熵损失)的正则化,通过优化损失来学习参数。即在损失层引入一种特殊的图正则化,为RNN添加局部信息

KrNN-P

KrNN-P尝试让近邻序列在查询序列的预测功能中起作用

在k-NN的基础上,我们提出一种查询序列及其近邻的网络输出加权和的分类方法:
F(S≤tq,N≤tq)=fθ(S≤tq)+∑S[max⁡(0,ti−l),tii∈N≤tqγq,ifθ(S[max⁡(0,ti−l),ti]i)F\left(S_{\leq t}^{q}, N_{\leq t}^{q}\right)=f_{\theta}(S_{\leq t}^{q})+\sum_{S_{\left[\max \left(0, t_{i}-l\right), t_{i}\right.}^{i} \in N_{\leq t}^{q}} \gamma_{q, i} f_{\theta}\left(S_{\left[\max \left(0, t_{i}-l\right), t_{i}\right]}^{i})\right. F(S≤tq​,N≤tq​)=fθ​(S≤tq​)+S[max(0,ti​−l),ti​i​∈N≤tq​∑​γq,i​fθ​(S[max(0,ti​−l),ti​]i​)
$\gamma_{q, i} $是序列的相似度

实验结果

实验设置

数据集

  • Movielens 1M
  • Amazonnmovies

基线

  1. POP UKNN BPRMF
  2. MC FPMC
  3. RNN MrRNN

参数调整

作者在10倍验证集上选择最佳参数设置。

(1)BPRMF和FPMC:两者的潜在维度均设置为32,学习率分别为0.05和0.2,两者的采样偏差均为200,σ分别为1和0.01。

(2)UKNN:邻域大小为80。

(3)RNN,MrRNN,KrNN-P和KrNN-L:一层具有50个隐藏单元的LSTM层,学习率设置为0.1,

统一使用adagrad进行优化。 样本大小为7,权衡参数为0.5。

评估指标

  1. 短期预测:sps (短期预测的目的是预测下一次购买或评级的项目)
  2. 长期预测:precision、recall、ndcg 和 F1-score。
  3. 概括:user_average (使用至少收到一个正确建议的用户比例)

实验结果

通过表1,可以发现KrNN-P特别是KrNN-L有很大的提升效果

样本量的影响

作者基于一个Nvidia K40m GPU, 在MovieLens 1M上比较了它们之间每个 epoch的训练时间(秒)。

原始RNN的时间为613.58s。 通过表2,我们可以看到样本数量对KrNN效率的影响很大。 但是k不必很大。 作者证明,k = 1足以在两个数据集中获得更好的性能。

【论文笔记】K-plet Recurrent Neural Networks for Sequential Recommendation相关推荐

  1. 【推荐系统->论文阅读】Dynamic Graph Neural Networks for Sequential Recommendation(用于序列推荐的动态图神经网络)

    Dynamic Graph Neural Networks for Sequential Recommendation(用于序列推荐的动态图神经网络) Mengqi Zhang, Shu Wu,Mem ...

  2. [深度学习论文笔记][Adversarial Examples] Deep Neural Networks are Easily Fooled: High Confidence Predictions

    Nguyen, Anh, Jason Yosinski, and Jeff Clune. "Deep neural networks are easily fooled: High conf ...

  3. 论文笔记:Federated Graph Neural Networks: Overview, Techniques and Challenges

    论文地址:https://arxiv.org/pdf/2202.07256.pdf 目录 一.摘要 二.引言 三.3层FedGNN分类方法 1.分类方法简述 2.客户端通过图拓扑进行关联 2.1.有中 ...

  4. 论文笔记--Spatial-Temporal Fusion Graph Neural Networks for Traffic Flow Forecasting

    在交通预测问题上,现有的框架通常利用给定的空间邻接图和复杂的机制来建模空间和时间关联.作者认为使用给定的空间邻接图会限制模型的有效时空相关性学习,并且它们通常使用单独的模块来实现空间和时间相关性,或者 ...

  5. 论文笔记-精读-8.24-Pruning neural networks without any data by iteratively conserving synaptic flow

    原文:https://arxiv.org/pdf/2006.05467v1.pdf 代码:https://github.com/ganguli-lab/Synaptic-Flow 文章目录 总结 解决 ...

  6. 论文笔记:Gazetteer-Enhanced Attentive Neural Networks for Named Entity Recognition

    文章目录 摘要 一.模型 二.结果 三.疑惑 摘要 文章设计了一种利用外部词典加强命名实体识别的方法,整个模型大致分为[Inner-Region Encoder].[Attentive Context ...

  7. 循环神经网络(RNN, Recurrent Neural Networks)介绍

    循环神经网络(RNN, Recurrent Neural Networks)介绍   循环神经网络(Recurrent Neural Networks,RNNs)已经在众多自然语言处理(Natural ...

  8. 论文笔记 NAACL 2016|Joint Event Extraction via Recurrent Neural Networks

    文章目录 1 简介 1.1 动机 1.2 创新 2 背景知识 3 方法 3.1 编码 3.1.1 句子编码 3.1.2 RNN编码 3.2 预测 3.2.1 触发词预测 3.2.2 论元角色预测 3. ...

  9. 论文笔记:Dynamic Scene Deblurring Using Spatially Variant Recurrent Neural Networks

    Dynamic Scene Deblurring Using Spatially Variant Recurrent Neural Networks(利用空间变化循环神经网络对动态场景去模糊) 这是C ...

最新文章

  1. No subject
  2. java 列表展开方式_android列表控件实现展开、收缩功能
  3. PAT乙级题目——1002写出这个数
  4. leetcode--983.最低票价
  5. 深度神经网络关键词解释
  6. jQuery修改margin
  7. javascript 将时间戳格式化
  8. Qhsusb Dload驱动
  9. 关于浏览器主页篡改修复
  10. c语言程序设计卡特兰数问题,求解圆上2N个点的连线问题(卡特兰数)
  11. 十分简明易懂的FFT(快速傅里叶变换)
  12. 什么是黑客?郭盛华告诉你
  13. 机器学习_深度学习毕设题目汇总——运动活动动作
  14. 使用模型压缩库Distiller遇到的问题
  15. 树立品牌价值标杆,维谛技术(Vertiv)荣膺“中国电气工业100强”殊荣
  16. CSS3如何横向居中+纵向居中 in grid container
  17. Tark与AjM完美结合,解决全球支付难题
  18. 佳能Canon PIXMA MG2545S 打印机驱动
  19. LeetCode 2.1.10 4Sum
  20. Android设备信息获取

热门文章

  1. 从校内谈SNS-网络社区文化
  2. Django REST Framework API Guide 02
  3. Confluence 6 用户目录图例 - 使用 LDAP 授权,在用户第一次登陆时拷贝用户
  4. 紫书搜索 习题7-6 UVA - 12113 Overlapping Squares 暴力
  5. 2016年前端web开发趋势总结
  6. HDU 1027 G - Can you answer these queries?
  7. SQL Server 数据库操作类
  8. 5.26 考试修改+总结
  9. swift 关于闭包和函数
  10. 《Entity Framework 6 Recipes》中文翻译系列 (45) ------ 第八章 POCO之获取原始对象与手工同步对象图和变化跟踪器...