基于会话的推荐的短期注意/记忆优先级模型

摘要

然而,现有的方法都没有明确考虑到用户当前操作对其下一步行动的影响。
在本研究中,我们认为长期记忆模型可能不足以对长会话进行建模,而长会话通常包含由意外点击引起的用户兴趣漂移。提出了一种新的短期注意/记忆优先级模型,该模型能够从会话上下文的长期记忆中获取用户的一般兴趣,同时考虑到用户当前的兴趣来自于最后一次点击的短期记忆。在2015年RecSys挑战赛和2016年CIKM杯的三个基准数据集上,对所提出的注意机制的有效性和有效性进行了广泛的评估。数值结果表明,该模型在所有试验中均取得了较好的性能。

introduction

基于已有文献,几乎所有基于rnnr的SRS模型都只考虑将会话建模为一个项目序列,而没有明确考虑到用户兴趣随[6]时间的漂移,这在实践中可能存在问题。例如,如果用户刚刚单击了某个特定的数码相机链接并将其记录在会话中,那么用户的下一步操作很可能是响应当前操作。(1)如果当前的操作是在做出购买决定之前浏览产品描述,那么用户很可能在下一步访问另一个数码相机品牌目录。(2)如果当前的操作是将相机添加到购物车中,那么用户的浏览兴趣可能会被更改为其他外设,如存储卡。在这种情况下,向该用户推荐另一台数码相机不是一个好主意,尽管这个会话的最初意图是购买一台数码相机(如前面的操作所反映的)。
在典型的SRS任务中,会话由一系列命名项组成,用户的兴趣隐藏在这些隐式的反馈中(例如,单击)。为了进一步提高RNN模型的预测精度,必须同时具备学习这种隐式反馈的长期利益和短期利益的能力。正如Jannach等人[7]所指出的,用户的短期兴趣和长期兴趣对于推荐都是非常重要的,但是传统的RNN架构并没有同时区分和利用这两类兴趣[11]。
在本研究中,我们考虑通过在SRS模型中引入一个近期的动作优先机制,即短时注意/记忆优先(STAMP)模型来解决这个问题,该模型可以同时考虑用户的一般兴趣和当前兴趣。在STAMP中,用户的兴趣通常由一个外部内存捕获,该内存由会话前缀中的所有历史单击(包括最后一次单击)构建而成,这就是术语“内存”的含义所在。术语“last-click”表示会话前缀的最后一个操作(项),SRS的目标是预测与此“last-click”相关的“next click”。在本研究中,我们使用了嵌入last-click来表示用户当前的兴趣,并在此基础上构建了提出的注意机制。由于last-click是外部内存的一个组成部分,所以可以看作是用户兴趣的短期内存。同样,建立在最后一次点击之上的用户注意力可以被看作是短期的注意力。据我们所知,这是第一次在构建基于会话的推荐的神经注意模型时同时考虑长/短期记忆。本研究的主要贡献如下:

  • 我们引入了一个短期注意力/记忆优先级模型:(a)一个包含跨会话项的统一嵌入空间;(b)一个用于基于会话的推荐系统中下一次点击预测的新神经注意力模型。
  • 针对STAMP模型的实现,提出了一种新的注意机制,该机制根据会话上下文计算注意权重,并根据用户当前的兴趣进行增强。输出的注意向量被解读为用户时间兴趣的合成表示,并且比其他基于神经注意的解决方案更敏感于用户兴趣随时间的漂移。因此,它能够同时捕捉用户的长期兴趣(响应最初的目的)和短期注意(当前的兴趣)。通过对比研究,验证了该注意机制的有效性和有效性。
  • 本模型分别在两个现实世界数据集上进行了评估,分别是来自RecSys 2015的Yoochoose数据集和来自CIKM Cup 2016的Diginetica数据集。实验结果表明,该方法达到了目前的水平,所提出的注意机制发挥了重要作用。

method

每一个session 由 S = [s1,s2, . . .,sN ] 表示,St = {s1,s2, . . .,st }表示一个截断的序列。
V = {v1,v2, . . .,v |V |} 是所有的item,item词典,X ={x1,x2, . . .,x|V |} 是item的embedding。

yˆ = {yˆ1,yˆ2, … .,yˆ|V |} 表示输出的score 向量,yˆi 对应于item vi 的分数,topk用来预测。
为便于标注,我们将三个向量的三线性乘积定义为:

短期记忆优先模型

STAMP 模型展示为图1.
从图1可以看出,STMP模型以两个embeddings (ms和mt)作为输入,其中ms表示用户对当前会话的总体兴趣,定义为会话external记忆的平均值:

其中,**external memory 一词是指嵌入当前会话St的以前的项序列。?**符号mt表示该会话中用户当前的兴趣,在本研究中,使用lastclick xt表示用户当前的兴趣:mt =xt。由于xt是从会话的external memory中提取的,所以我们将其称为用户兴趣的短期内存。然后利用两个MLP网络对一般兴趣ms和当前兴趣mt进行处理,实现特征提取。图1中所示的MLP单元的网络结构彼此相同,只是它们具有独立的参数设置。使用一个简单的没有隐藏层的MLP进行特征抽象,对ms的操作定义为:


where hs ∈ Rd denotes the output state, Ws ∈ Rd×d is
a weighting matrix, and bs ∈ Rd is the bias vector. f (·) is a non-linear activation function (we use tanh in this
study).

与 mt 相关的 状态向量ht计算与hs相似。
对于每一个候选item,计算score的方程为

让zˆ ∈ R|V | 表示 三个向量的点积,每一个zi 表示了非归一化的余弦相似度,表示用户兴趣之间与当前会话前缀st和候选项xi之间的。
然后经过一个softmax函数,

使用交叉熵函数计算loss,
y表示由groundtruth激活的one-hot向量。

The STAMP Model

注意力网络
1)一个简单的前馈神经网络(FNN)负责生成注意重量为每个项目在当前会话st,和(2)注重复合函数负责计算在注ma基于用户的兴趣的注意力。用于注意力计算的FNN定义为:

注意,式7中明确考虑了短时记忆,这与相关著作有明显不同,这就是为什么提出的注意模型被称为短时注意优先模型。

再将ms加到这个上下文向量 ma中。

the short -Term memory only model

评估的有效性本研究的基本理念,也就是说,将优先分配给用户的短期关注/记忆行为决策根据会话(序列的动作),在本节中,我们提出一个短期记忆(STMO)模型,使预测的再次单击st+1只基于当前会话前缀的last-click st。
与STMP模型类似,在STMO模型中使用一个没有隐藏层的简单MLP进行特征抽象。MLP将last-click st作为输入,输出一个向量ht∈Rd,与STMP中的“MLP CELL B”一样(见图1),定义为:
当给定一个候选item,score 被计算为 ht和xi的点积,

实验

  • 数据 Recsy’15 挑战 网址:[1] http://2015.recsyschallenge.com/challege.html包含电商平台六个月的点击流

  • Diginetica dataset coming from the CIKM Cup 2016 http://cikm2016.cs.iupui.edu/cikm-cup 只使用了交互数据

  • 过滤掉长度小于1 的session,出现次数小于5的item

  • Yoochoose的测试集由与训练集相关的后续几天的会话组成,我们过滤掉训练集中没有出现的点击(条目)。对于Diginetica,唯一的区别是我们使用后续一周的会话进行测试。在预处理阶段之后,Yoochoose dataset中还有7,966,257个会话,共37,483个条目,共点击31,637,239次;Diginetica dataset中还有202,633个会话,共43,097个条目,点击982,961次。

  • 与[相同,我们使用序列分割预处理,对于输入会话S = {s1,s2,…,sn},我们生成序列和相应的标签([s1], s2), ([s1, s2], s3)…([s1, s2,…,sn - 1], sn)对两个数据集进行训练和测试,证明是有效的。

  • 由于Yoochoose训练集比较大,根据[17]的实验,对最近一部分的训练比对整个部分的训练效果更好,所以我们使用了最近部分1/64和1/4的训练序列。这三个数据集的统计数据如表1所示。

  • 评测指标

  • P@20 P @ K表示测试用例中在排名列表的前K位拥有正确推荐项目的比例。其中N表示SRS系统G中测试数据的个数,nhit表示在前K个排名列表中拥有所需项目的案例的个数,当t出现在G的排名列表的前K个位置时,就发生了hit。

  • MRR @20: 所需项的倒数秩的平均值t.如果秩大于20,则倒数秩为零。

  • MRR是一个标准化的范围分数[0,1],其值的增加反映了大多数“点击率”在推荐列表的排名中会出现更高的排名,这表明相应的推荐系统性能更好。

STAMP:Short-TermAttention/MemoryPriorityModelfor Session-basedRecommendation相关推荐

  1. Java项目:化妆品商城系统(java+Springboot+ssm+mysql+jsp+maven)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统主要实现的功能有: 网上商城系统,前台+后台管理,用户注册,登录,上架展示,分组展示,搜索,收货地址管理,购物车管理,添 ...

  2. Nokia防火墙配置过程

    System boot -. Aug 12 01:48:28 FW [LOG_NOTICE] kernel: sio0: type 16550A Aug 12 01:48:28 FW [LOG_NOT ...

  3. Java项目:在线电子商城管理系统(java+SpringBoot+Thymeleaf+bootstrap+jQ+layui+maven+mysql)

    源码获取:博客首页 "资源" 里下载! 项目介绍 本项目分为管理员与普通用户两种角色, 管理员角色包含以下功能: 发货,后台登录后首页,商品管理,商城类别增删改查,用户管理,管理员 ...

  4. 2022面试200题目和答案分布式+微服务+MYSQL+Redis+JVM+Spring

    200题目和答案分布式+微服务+MYSQL+Redis+JVM+Spring等等 带图MD在资源https://download.csdn.net/download/m0_47987937/86509 ...

  5. Java项目:在线服装销售商城系统(java+SpringBoot+Maven+Vue+mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclis ...

  6. MT4 managerAPI 接口(头文件)

    以下是MT4官方managerAPI的头文件,具体是什么功能看方法名字还是比较好理解的, 可以直接保存为.h文件导入到自己工程中使用 //+------------------------------ ...

  7. 基于javaweb的仿天猫商城系统(java+jsp+springboot+ssm+mysql)

    基于javaweb的仿天猫商城系统(java+jsp+springboot+ssm+mysql) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/myeclipse/s ...

  8. 如何设置一个严格30分钟过期的Session

    今天在我的微博(Laruence)上发出一个问题: 我在面试的时候, 经常会问一个问题: "如何设置一个30分钟过期的Session?", 大家不要觉得看似简单, 这里面包含的知识 ...

  9. spring session 退出登录 清理session

    2019独角兽企业重金招聘Python工程师标准>>> spring session 退出登录 清理session 博客分类: spring /*** Allows creating ...

  10. 分布式中Redis实现Session终结篇

    上一篇使用Redis实现Session共享方式虽然可行,但是实际操作起来却很麻烦,现有代码已经是这个样子了,总不可能全部换掉吧!好吧,这是个很实际的问题,那么能不能实现无侵入式的分布式Session共 ...

最新文章

  1. 使用信号量实现简单双向同步
  2. 判断dialog是否显示_如何成为一流的仪表维修工之液位测量仪表故障检查判断思路...
  3. java学习之单例模式(饿汉式与懒汉式)
  4. IOS开发学习笔记011-xcode使用技巧
  5. android 获取弹窗的值,从弹出窗口调用的Activity 返回一个值_popupwindow_开发99编程知识库...
  6. SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载
  7. 完美实现类似QQ的自拍头像、上传头像功能!(Demo 源码)
  8. font-spider(字蛛) 让页面引入中文web字体
  9. 类似金山打字的窗口打字游戏代码版--注释很多,不用讲解
  10. 【8】同步vscode配置和插件【导入导出】、再也不用担心换电脑重新安装插件了
  11. matlab对角和,matlab – 如何在对角线上赋值?
  12. VMware虚拟机安装Win10
  13. 不同走法的象棋能否走完整个棋盘问题
  14. selenium录屏python_Selenium实现录屏的一种方法
  15. 蚂蚁集团境外站点 Seata 实践与探索
  16. 水的黏度 Viscosity of Water
  17. PTA基础编程题目集
  18. OJ每日一练——羞涩的答复
  19. PFM格式图像和读取middlebury 数据集
  20. 测试未来对象照片的软件,测测你未来的样子的软件

热门文章

  1. Python爬虫 之 破解 cookie 代理 验证码 实战
  2. animate将flash转换html,Animate—flash动画入门到精通教程
  3. 所用软件安装及环境配置
  4. 配置你的ASP.NET运行环境
  5. C#生成Code39条形码【非条形码字体】
  6. 粒子群算法 java_粒子群算法解决TSP问题
  7. 2021年中国互联网安全行业发展状况及发展趋势展望分析[图]
  8. jQuery实现下拉菜单[代码+详细讲解+效果图]
  9. 普中科技51单片机直流电机控制风扇调速
  10. 全志V3s IIC控制器驱动分析