SASRec

Self-Attentive Sequential Recommendation
2018年的经典文章

摘要

时序动态是许多现代推荐系统的一个关键特征,它们试图根据用户最近执行的操作来捕捉用户活动的“背景”。为了捕捉这种模式,出现了两种方法:马尔可夫链(MC)和递归神经网络(RNN)。马尔科夫链假设用户的下一个动作可以根据他们的最后(或最后几个)动作来预测,而RNN原则上允许发现更长期的语义。一般而言,基于MC的方法在模型简约性至关重要的极稀疏数据集中执行得最好,而RNN在较密集的数据集中执行得更好,因为较高的模型复杂性是负担得起的。我们工作的目标是通过提出一个基于自我注意的顺序模型(SASRec)来平衡这两个目标,该模型允许我们捕获长期语义(如RNN),但使用注意力机制,基于相对较少的动作(如MC)进行预测。在每一个时间步,SASRec都会试图从用户的操作历史中找出哪些项目是“相关的”,并用它们来预测下一个项目。大量的实证研究表明,我们的方法在稀疏和密集数据集上的性能都优于各种最先进的序列模型(包括基于MC/CNN/RNN的方法)。此外,该模型的效率比基于CNN/RNN的同类模型高一个数量级。注意力权重的可视化还显示了我们的模型如何自适应地处理不同密度的数据集,并揭示活动序列中的有意义的模式。

相关工作

  1. 普通推荐系统
  2. 临时推荐
  3. 序列推荐
  4. 注意力机制

方法

1. 符号系统

M:\mathbf M:M: 项目embedding矩阵;
E:\mathbf E:E: 输入矩阵,每个用户不同,是项目embedding的顺序堆叠

2. 位置信息


在输入矩阵的每一行加入对应的位置向量P\mathbf PP, 这里的P\mathbf PP是可学习的。

3. 自注意力层


常规,用了3个投影矩阵,在这里,有个额外的因果关系,由于是序列模型,所以模型在预测第t+1项时,应该只考虑前面的t项。然而,自注意力机制的第t个输出包含了后续项目的embedding, 会使得模型不稳定,于是作者修改了注意力,禁止了Qi\mathbf Q_iQiKj\mathbf K_jKj之间的联系。(怎么实现的这里没说)

接下来是常规的FFN环节赋予模型非线性,这里用的是RELU激活函数。

4. 注意力模块堆叠

就是把FFN的输出作为attention的输入,再进行一轮attention+FNN的组合,当然,这里会出现三个问题:

  1. 过拟合
  2. 训练过程不稳定,如梯度消失的问题
  3. 参数太多,训练耗时
    所以进行如下操作:

    每层添加dropout,然后再把输入加进去。

5. 预测


前面FNN的输出就是F\mathbf FF, 再乘上项目embedding矩阵的转置,就是对应项目iii的预测得分。

额外操作


为了减少参数,并且防止过拟合,作者采用共享的项目embedding矩阵

6. 训练


oto_tot被定义为ttt时刻预期的输出。大S和小s的区别在于:大S是真实序列,不包含填充。

比如定义序列最大长度为5,iii是项目,那么:Su={i1,i2,i3}S^u=\{i_1,i_2,i_3\}Su={i1,i2,i3}s={i0,i0,i1,i2,i3}s=\{i_0,i_0,i_1,i_2,i_3\}s={i0,i0,i1,i2,i3},i0i_0i0就是填充项

oto_tot就是说:如果上一个项目是填充项,那么输出就是填充项,当前时刻ttt不是序列末尾时,就输出原有序列的下一个,到最后ttt时刻,即序列末尾时,输出的才是预测项目。

7. 损失函数

oto_tot是填充项时,忽略。损失函数是二元交叉熵。可以看出损失函数的目的是,让序列内的项目的相关性尽可能大。

总结

和AttRec在注意力机制上的使用的区别在,AttRec少用一个投影矩阵,使得V不同而已。

对数据集的使用仅仅是序列信息,尝试在模型中融入项目特征,现在的难点在于除了电影数据集以外,序列模型各baseline最常用的数据集有:Movielens-1M,Amazon数据集的beauty,sports,toys.
但是Amazon的数据集的项目特征只有一个“category”,而且数据集需要预处理,数据集也有点大。

SASRec: Self-Attentive Sequential Recommendation阅读笔记相关推荐

  1. 【Self-Attentive Sequential Recommendation论文笔记】

    Self-Attentive Sequential Recommendation论文笔记 Self-Attentive Sequential Recommendation 序列动态是许多现代推荐系统的 ...

  2. #Reading Paper# SASRec:Self-Attentive Sequential Recommendation

    #论文题目:SASRec:Self-Attentive Sequential Recommendation(SASRec-基于自注意力机制的序列推荐) #论文地址:https://arxiv.org/ ...

  3. 2018_WWW_DKN- Deep Knowledge-Aware Network for News Recommendation阅读笔记

    Xmind思维导图: deep knowledge-aware network(DKN) properties: incorporates knowledge graph representation ...

  4. DKN: Deep Knowledge-Aware Network for News Recommendation阅读笔记

    这篇论文发表在2018年的WWW上.引入知识来进行新闻推荐. 关键词:News recommendation; knowledge graph representation; deep neural ...

  5. Self-Attentive Sequential Recommendation论文阅读笔记

    SASRec论文阅读笔记 论文标题:Self-Attentive Sequential Recommendation 发表于:2018 ICDM 作者:Wang-Cheng Kang, Julian ...

  6. 论文阅读笔记:Geography-Aware Sequential Location Recommendation

    论文阅读笔记:Geography-Aware Sequential Location Recommendation 文章目录 论文阅读笔记:Geography-Aware Sequential Loc ...

  7. Filter-enhanced MLP is All You Need for Sequential Recommendation论文阅读笔记

    Filter-enhanced MLP is All You Need for Sequential Recommendation 代码和数据:https://github.com/RUCAIBox/ ...

  8. 论文笔记:Sequential Recommendation with Relation-Aware Kernelized Self-Attention

    论文笔记:Sequential Recommendation with Relation-Aware Kernelized Self-Attention 摘要:     最近的研究发现,顺序推荐可以通 ...

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

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

最新文章

  1. pytorch多进程加载数据
  2. eclipse恢复默认布局
  3. python程序官方网站-IO编程
  4. 八、spring生命周期之BeanPostProcessor
  5. 浅谈数据库发展史和 OceanBase 的诞生
  6. windows下检測文件改变
  7. LSI SAS 3008配置操作
  8. php根据ajax传值跳转页面_vue中动态路由的跳转(name | path) 前进后退 replace...
  9. C++11的std::declval与decltype
  10. 软件项目测试报价单,某软件项目报价单
  11. 详解Vue中的自定义指令
  12. 菜鸟驿站是什么快递_菜鸟驿站支持哪些快递(菜鸟驿站默认发什么快递)
  13. 数据库增加字段注意事项
  14. jbX和finss的一些问题
  15. 星火计划 | Apache InLong一站式大数据接入平台沙龙火热报名中
  16. 城市内涝一维二维耦合技术及在城市排水防涝领域中的实践应用
  17. 全国所有城市人均GDP排名(包含县级市 611 )
  18. 配置赛门铁克(Symantec)https证书:从阿里云申请免费赛门铁克(Symantec)https证书并配置到cdn
  19. Android证书生成(android studio)
  20. 假如我是超级内卷王。。。

热门文章

  1. 【CSDN问答】使用体验、产品BUG和改进建议
  2. iOS、iPadOS、macOS屏蔽系统更新
  3. 东周科目三考场5号线_深圳东周科目三考场路线及注意事项
  4. [Swift]LeetCode93. 复原IP地址 | Restore IP Addresses
  5. 介绍当前计算机软件应用发展状况,简要介绍我国当前税收征管软件的应用状况...
  6. webpack-dev-server filename中的路径问题,IntelliJ IDEA local history有效期设置,标签顺序设置,dva call put 解构
  7. 艺赛旗(RPA)相对路径、绝对路径、执行空间、代码空间,傻傻分不清?
  8. 从零开始使用AntDB
  9. Oracle sqlplus 常用命令总结
  10. 李艳鹏:技术人如何修炼内功