Self-Attentive Sequential Recommendation论文阅读笔记

SASRec论文阅读笔记

论文标题:Self-Attentive Sequential Recommendation

发表于:2018 ICDM

作者:Wang-Cheng Kang, Julian McAuley

论文代码:https://github.com/pmixer/SASRec.pytorch

论文地址:https://arxiv.org/pdf/1808.09781v1.pdf

摘要

  • 顺序动态是许多现代推荐系统的一个关键特征,它试图根据用户最近执行的操作来捕捉用户活动的“上下文”。
  • 为了捕捉这种模式,出现了两种方法:马尔可夫链 (MC) 和递归神经网络 (RNN)。
    • 马尔可夫链假设用户的下一个动作可以根据他们的最后一个(或最后几个)动作来预测,基于 MC 的方法在模型简约性至关重要的极稀疏数据集中表现最佳
    • RNN 原则上允许揭示更长期的语义,RNN 在模型复杂度较高的密集数据集中表现更好
  • 工作的目标是平衡这两个目标,提出一个基于自我注意的序列模型 (SASRec),该模型允许我们捕获长期语义(如 RNN),但使用注意机制,使其预测基于在相对较少的动作上(如 MC)
    • 在每个时间步,SASRec 都试图从用户的操作历史中识别哪些项目是“相关的”,并使用它们来预测下一个项目,其在每个时间步骤将权重分配给先前的项目

介绍

  • 从顺序动态中捕获有用的模式具有挑战性,主要是因为输入空间的维度随着用作上下文的过去动作的数量呈指数增长。因此,顺序推荐的研究主要关注如何简洁地捕捉这些高阶动态。
  • 马尔可夫链 (MCs) 是一个典型的例子,它假设下一个动作仅以前一个动作(或前几个动作)为条件,并已成功用于表征推荐的短程项目转换 [1]。另一项工作使用循环神经网络 (RNN) 通过隐藏状态总结所有先前的动作,用于预测下一个动作 [2]。
    • 这两种方法虽然在特定情况下很强大,但在某种程度上仅限于某些类型的数据
  • Transformer出现,与使用卷积或复制模块的现有顺序模型不同,Transformer纯粹基于称为“自我关注”的提出的注意机制,这是高效且能够在句子中揭示单词之间的句法和语义模式。
    • self-attention块适用于并行加速,导致模型比基于 CNN/RNN 的替代方案快一个数量级

结论

  • 在这项工作中,我们提出了一种新颖的基于自我注意的顺序模型 SASRec,用于下一个项目推荐。
  • SASRec 对整个用户序列进行建模(没有任何循环或卷积操作),并自适应地考虑消费项目进行预测。
  • 稀疏和密集数据集的大量实验结果表明,我们的模型优于最先进的基线,并且比基于 CNN/RNN 的方法快一个数量级。

未来工作

  • 计划通过结合丰富的上下文信息(例如停留时间、动作类型、位置、设备等)来扩展模型,并研究处理超长序列(例如点击)的方法

模型架构

Self-Attentive Sequential Recommendation论文阅读笔记_第1张图片

  • embedding Layer:

    • 将训练序列 ( S 1 u , S 2 u , . . . , S ∣ S u ∣ − 1 u S^u_1 , S^u_2 , ..., S^u_{|Su|-1} S1u,S2u,...,SSu1u) 转换为固定长度序列 s = (s1, s2, …, sn),其中 n 表示我们模型的最大可处理长度。如果序列长度大于 n,我们考虑最近的 n 个动作。如果序列长度小于 n,我们重复向左侧添加一个“填充”项 0 ,直到长度为 n。
  • Self-Attention Block:

    • Self-Attention layer:
      • 采用缩放点积注意力,将嵌入 E ^ \hat E E^作为输入,通过线性投影将其转换为三个矩阵,并将它们输入到注意力层,同时像Transform一样对其做掩码操作
        • 缩放点积注意力: A t t e n t i o n ( Q , K , V ) = s o f t m

你可能感兴趣的:(推荐系统学习,深度学习,机器学习,神经网络,算法)