【Self-Attentive Sequential Recommendation论文笔记】

Self-Attentive Sequential Recommendation论文笔记

Self-Attentive Sequential Recommendation

序列动态是许多现代推荐系统的一个关键特性,它试图根据用户最近执行的操作来捕获用户活动的“上下文”。

为了捕捉这种模式,出现了两种方法:马尔可夫链(MCs)和循环神经网络(RNNs)。

马尔可夫链假设用户的下一个操作可以基于他们的最后(或最后几个)操作进行预测,而rnn原则上允许揭示更长期的语义。

一般来说,基于mc的方法在极其稀疏的数据集中表现最好,其中模型简约是关键,而rnn在更密集的数据集中表现更好,因为更高的模型复杂性是负担得起的。

我们工作的目标是平衡这两个目标,通过提出一种基于自我注意的顺序模型(SASRec),它允许我们捕捉长期语义(比如RNN),但使用一种注意机制,使其基于相对较少的行为(比如MC)进行预测。在每个时间步骤中,SASRec试图从用户的操作历史中识别哪些项目是“相关的”,并使用它们来预测下一个项目。

大量的实证研究表明,我们的方法在稀疏和密集数据集上都优于各种最先进的序列模型(包括MC/CNN/ rnn方法)。此外,该模型比基于CNN/ rnn的同类模型的效率高一个数量级。注意力权重的可视化也显示了我们的模型如何自适应地处理不同密度的数据集,并揭示活动序列中的有意义的模式。

本文想法受Transformer启发,Transformer是一种新的序列模型,实现了机器翻译任务的最先进的性能和效率。与使用卷积或循环模块的现有顺序模型不同,Transformer完全基于一种被提议的称为“自我注意”的注意机制,这种机制非常高效,能够发现句子中单词之间的语法和语义模式。

具体来说,我们构建了一个基于自我注意的顺序推荐模型(SASRec),该模型在每个时间步自适应地为之前的条目分配权重(图1)。由于自我注意机制,SASRec倾向于考虑对密集数据集的长期依赖,而专注于对稀疏数据集的近期活动。这对于自适应处理不同密度的数据集是至关重要的。
图一
符号表示
在这里插入图片描述

Embedding Layer

我们将训练序列(S1,S2,…,S|S|−1)转换为一个固定长度的序列= (s1, s2,…, sn),其中表示我们的模型可以处理的最大长度。如果序列长度大于n,则考虑最近的操作。如果序列长度小于n,则在序列左边重复添加一个“填充”项,直到序列长度为n。使用常数0向量0作为填充项的嵌入。

正如我们将在下一节中看到的,由于自我注意模型不包括任何循环或卷积模块,它不知道前一项的位置。因此,我们注入一个可学习位置嵌入P∈Rn×dinto的输入嵌入:
在这里插入图片描述

Self-Attention Block

Transformer中缩放点积attention定义:

比例因子√d是为了避免内积的值过大,特别是当维数高的时候
在这里插入图片描述

Self-Attention layer

self-attention操作将嵌入的E作为输入,通过线性投影将其转换为三个矩阵,并将其输入到一个注意层,投影使模型更加灵活。例如,模型可以学习非对称交互。
在这里插入图片描述

Causality

由于序列的性质,模型在预测(t+ 1)-st项时应该只考虑第一个t项。然而,自我注意层(St)的第一个输出包含后续项的嵌入,使得模型不适定。因此,我们通过禁止q和k (j > i)之间的所有联系来修改注意。

Point-Wise Feed-Forward Network

自注意仍然是一个线性模型。为了使模型具有非线性并考虑不同潜在维数之间的相互作用,我们将一个点wise两层前馈网络应用于allsiendy(共享参数)
在这里插入图片描述

Stacking Self-Attention Blocks

在第一个自我注意块之后,F实质上聚集了之前所有项的嵌入。然而,通过另一个基于F的自我注意块来学习更复杂的项目转换可能是有用的。具体地说,我们将自我注意块(即一个自我注意层和一个前馈网络)堆叠起来
在这里插入图片描述
然而,随着网络的深入,几个问题也日益突出:
1)模型容量的增加导致模型过拟合;
2)训练过程变得不稳定(由于梯度消失等原因);
3)参数越多的模型往往需要更多的训练时间。

我们执行以下操作来缓解这些问题:对于每个块中的layer gin,我们在输入之前对输入进行层归一化,然后应用dropout ong的输出,并将输入添加到最终的输出中。我们在下面介绍这些操作。
在这里插入图片描述

残余网络

其核心思想是通过残余连接将底层特征传播到上层。因此,如果底层特性是有用的,模型可以很容易地将它们传播到最后一层。
例如,现有的顺序推荐方法表明,最后访问的条目在预测下一个条目时起着关键作用。然而,在几个自我注意块之后,最后访问的项目的嵌入与所有之前的项目纠缠在一起;通过添加剩余连接将最后访问的项目嵌入到最后一层将使模型更容易利用底层信息。

Layer Normalization

采用层归一化的方法对不同特征(即零均值和单方差)的输入进行归一化,有利于稳定和加速神经网络训练

Dropout:

为了缓解深度神经网络中的过拟合问题
dropout的想法很简单:在训练过程中随机“关闭”神经元,在测试时使用所有神经元。进一步的分析指出,dropout可以被看作是一种集成学习的形式,它考虑了大量共享参数[39]的模型(神经元和输入特征的数量呈指数增长)。

Prediction Layer

我们采用MF层预测项目的相关性,高互动得分意味着高相关性,我们可以通过对得分进行排名来生成推荐。N∈R^(|I|×d)是一个item embedding矩阵。
在这里插入图片描述显式用户建模:
为了提供个性化的推荐,现有方法通常采用两种方法之一:
1)学习显式用户嵌入表示用户偏好(例如MF[40]、FPMC[1]和Caser [22]);
2)考虑用户之前的行为,并通过嵌入已访问的项目(如FSIM [8], Fossil [21], GRU4Rec[2])诱导隐式用户嵌入。
我们的方法属于后一类,因为我们通过考虑用户的所有操作来生成一个嵌入式f )。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值