【论文导读】ICDM2018|SASRec---基于自注意力机制的序列推荐(召回)

前言

本次分享2018年发表在ICDM上的论文----「Self-Attentive Sequential Recommendation」。主要是应用self-attention机制来做一个序列推荐,与上一次分享的BST模型类似,最后部分简单做了个对比,并给出了该模型的复现代码。
本文约4.6k字,预计阅读15分钟。

概要

「Self-Attentive Sequential Recommendation」主要是针对的是召回的工作,提出SASRec序列推荐模型。作者受到Transformer启发,采用自注意力机制来对用户的历史行为信息建模,提取更为有价值的信息。最后将得到的信息分别与所有的物品embedding内容做内积,根据相关性的大小排序、筛选,得到Top-k个推荐。【当然在论文实验中,首先针对隐式数据集,完成的是一个二分类问题。在测试集中,并不是对所有的物品进行预测,这样耗时太长。针对每一个正样本,伴随了100个负样本,进行排序】

Self-Attention的意义

文中作者与基于马尔科夫链的序列推荐方法和基于深度学习(CNN、RNN)的序列推荐方法进行对比:

  • 基于MC的方法,通过一个简单的假设,进行信息的状态转移。在高稀疏数据下表现好,但在更复杂的场景中很难捕捉到有用的信息,文章实验也证明了这点;

  • 基于RNN的方法有很强的表达能力,但是训练需要大量的数据,在密集型数据集下表现得更好,且因为每一个隐藏状态都必须依赖于前一个,运行效率较低;

而注意机制已被证明在各种任务中是有效的,如机器翻译等。本质上,这种「机制背后的思想是连续的输出都依赖于某个输入的“相关”部分,而模型应该连续地关注这些输入」。且基于注意力的方法通常更容易解释。注意力机制在AFM、DIN模型中得到了很好的应用。

Transformer模型很大程度上依赖于“self-attention”模块来捕捉句子中的复杂结构,以及检索相关单词来生成下一个单词。虽然顺序推荐的问题与机器翻译有很大的不同,但是作者受到了Transformer的启发,试图基于self-attention方法构建一种新的序列推荐模型。

自己的理解

对于一篇论文,最重要的是去理解为什么文章使用了这个方法,有什么意义或作用。以下是我自己的理解:

在本文中,self-attention的意义:对于下一次的物品推荐,依赖于用户行为序列的各个物品的权重是不同的,这与「推荐场景有关」

  • 用户物品交互较少:在一个稀疏数据集下,用户行为较少,行为相隔时间可能相差几天,甚至几个月,那么「此时相近时间的历史物品信息表现得更为重要」

  • 用户物品交互频繁:在一个密集型数据集下,用户行为多,例如在电商场景下,那么相近的物品信息就不是非常重要。例如,对于某个用户,他在电商场景的一个Session中,行为:手机--电脑--衣服---鼠标---裤子,那下一个用户感兴趣的是电子产品、服装都有可能,上述历史行为都很重要,这牵扯到一个「多兴趣」的概念了。

正如文章实验那样,「在不同环境(数据集)下,模型的self-attention机制关注的重点是不同的」

模型结构

1. 参数定义

对于序列推荐,我们定义一个用户的行为序列: ,目标是预测下一个用户可能发生交互的物品但需要依赖之前用户的交互历史,如上图所示。论文中所需的参数表示见下表:

2. Embedding层

文章中重点提到了关于用户行为序列的表示:将行为序列 转化为一个适宜长度的序列 。对于用户 ,若其行为序列的长度大于 ,则取离当前最近的 个行为;若小于 ,则采用0在左边进行填充,直至长度为 。然后其经过Embedding操作,得到Embedding矩阵 表示物品集合, 是embedding维度。对于每一个用户行为序列,都可以检索得到Embedding向量,最终得到

  • 12
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值