S^3-Rec:self-supervised learning for sequential recommendation with mutual information maximization

S3-rec是人大和美团等研究人员在CIKM2020上发表的一篇文章,本文提出的S3-rec提出基于自监督神经网络架构,使用互信息最大化MIM(mutual information maximization)来充分挖掘出attribute,item,subsequence, and sequence之间的联系。

Abstract

传统的基于深度学习的序列推荐往往基于物品预测损失来训练模型参数或者数据特征。但是这样的损失函数受限于数据稀疏问题。我们提出的S3-rec模型是利用内在的数据相关性来获得自监督信息,并通过预训练方法来增强数据表示,从而提高序列推荐。

在我们的任务中,我们设计了四个辅助自监督目标通过互信息最大化(mutual information maximization)原则来学习attribute、item、subsequence和sequence之间的联系。

最终在6个数据集上进行的大量实验证明本文方法的先进性;特别是当获取的数据有限时,另外本文还探索了将自监督方法延申到别的推荐模型,相应的也提高了它们的模型表现。

1.Introduction

时间序列推荐能够很好的抓取用户历史行为中的时序模式,研究人员采用了诸如RNNs,CNNs,self-attention mechanisms等深度学习模型进行时间序列推荐取得了不错的效果;同时研究人员也在尝试向模型中加入丰富的上下文信息来提升模型效果,而且证明了上下文信息是对于提高序列推荐的效果是重要的。然而,这些工作都存在两点缺陷:1.这些模型都依赖于物品损失这一单一的目标函数来训练整个模型,这个被证实会受到数据稀疏等问题巨大的影响。2.数据表示中各类数据之间信息(比如上下文数据和序列数据)没有被充分挖掘出来。因此,本文借助了自监督模型。然而,对于序列推荐,上下文信息存在于不同的形式和实体存在,包括了item,attribute,subsequences或者sequence。很难取用一个统一的方法来建模这样的数据关系。对于这个问题,我们收到了互信息最大化(MIM)的鼓舞,它可以通过最大化这些视角之间编码表征的互信息来有效的捕捉不同视角之间的联系。

所以本文提出了S3-res模型,它采用自监督学习从原始数据中提取隐含特征,然后根据提出的四个目标函数进行预训练,这就很好的解决了上述的两个问题。但是item,attribute,subsequence,sequence四种数据形式并不统一,所以引入了MIM(mutual information maximization)来挖掘这些数据之间的关联。最终,我们设计了四个自监督优化目标函数用来捕捉item-attribute,sequence-item,sequence-attribute和sequence-subsequence之间的关系。

最终在6个数据集上进行的大量实验证明本文方法的先进性;特别是当获取的数据有限时;另外本文还探索了将自监督方法延申到别的推荐模型(例如GRU和CNN),相应的提高了它们的模型表现。

PS:所谓自监督学习就是自监督学习主要时利用辅助任务(pretext)从大规模的无标签数据中挖掘自身的监督信息,通过这种构造的监督信息对网络进行训练,从而可疑学习到对下游任务有价值的表征。

本文的主要贡献如下:

(1)to the best of out knowledge, it is the first time that self-supervised learning with MIM has been applied to improve the sequential recommendation task;(第一次将基于MIM的自监督学习应用于提高序列推荐任务)

(2)We propose four self-supervised optimization objectives to maximize the mutual information of context information in different forms or granularities(我们提出了四个自监督优化目标来最大化不同视角的上下文数据之间的互信息)

(3)Extensive experiments conducted on six real-world datasets demonstrate the effectiveness of our proposed approach.(我们在6个真实的数据集上做了实验表明了我们提出的方法的有效性)

2. related work

相关工作中介绍了序列推荐和自我监督学习方面的内容,不再赘述。

2.1 sequential recommendation

Markov Chain based methods, neural networks, Factorization Machines

2.2 Self-supervised Learning

Training a network on an auxiliary objective, mutual information maximization

3.Preliminaries

在这个部分,我们以公式化的形式来介绍序列推荐问题,然后介绍互信息最大化(mutual information maximization)技术

3.1 problem statement

假设我们有一组用户U和物品I,其中 �∈� 表示一个用户, �∈� 表示一个物品。一般来说,用户u和物品i有时间顺序的交互序列: �1,...,�� ,其中n时交互次数, �� 是与用户交互的第t个物品。为了方便起见,我们使用 ��:� 来表示子序列,即 其中��:�={��,...,��},其中1≤�<�≤� .此外,每个物品i都与几个属性 ��={�1,...,��} 相关联,所有属性都构成属性集A。基于上述符号,我们现在定义了序列推荐的任务。形式上,给定用户的历史行为 {�1,...,��} 以及每个物品i的属性 �� ,序列推荐的任务是预测用户在(n+1)步可能交互的下一个物品。

3.2 Mutual Information Maximization(MIM)

我们的方法中一个重要的技术是互信息最大化。它发展于互信息这个核心的概念,它衡量了两个随机变量之间的重复度。给定两个随机变量X,Y,它可以理解为知道X的情况Y的不确定性可以减少多少。用公式来看,X和Y的互信息为:
I(X,Y) = H(X)-H(X|Y)=H(Y)-H(Y|X)

直接最大化互信息通常是不好做的。因此我们求助于I(X,Y)的一个下界。一个已经在实践中被证明用的很好的下界是InfoNCE,infoNCE是基于NCE(Noise Contrastive Estimation)。InfoNCE的定义如下:

其中x和y是一个输入的不同视角, �� 是一个函数其参数是θ(比如一个单词的编码表示和它的上下文的点积,或者一个图片的编码表示和图片的local regions的点积)。 �~ 是由一个建议的分布 �(�~) 所刻画的一个样本集,其中包含一个正样本和 |�~|−1 个负样本。

需要注意的是InfoNCE是和交叉熵有关的,如果�~包含随机变量Y所有可能的值并且它们是均匀分布,最大化infoNCE类似于最大化标准的交叉熵损失:

这个式子表明了infoNCE是和最大化 ��(�|�) 相关的,and 它通过负采样估计了Y中所有元素的和。基于这个式子,我们可以利用X,Y来最大化原始数据的不同视角的互信息,比如一个item和它的属性,或者一个序列和它所包含的item。

4. approach

4.1 overview

develop neural sequential recommenders by maximizng the mutual information among different views of the raw data.incorporate several elaborately designed self-supervised learning objectives for enhancing th self-supervised learning model

我们的方法主要包括两个点:首先我们通过最大化原始数据的不同视角之间的互信息来开发序列推荐,然后我们用最近在语言建模中提出的预训练框架来合并这几个设计好的自监督学习目标来提高我们原始的模型。

4.2 Base Model

序列推荐模型的基本框架:嵌入层、自注意力模块和预测层的堆叠。这块就是原来的真实,就不再多做介绍了。

4.2.1 Embedding Layer

物品嵌入矩阵MI,属性嵌入矩阵MA,将高维空间中关于物品和属性的独热编码映射到低维空间中的稠密的表示。当输入一个长度为n的物品序列时,通过查找MI我们可以得到输入嵌入矩阵E;另外本文提出一个可编码矩阵P来提升输入物品序列的代表性,次数序列表示矩阵EI=E+P;本文也为属性嵌入矩阵MA的每一个物品构造了一个嵌入矩阵EA,k时物品属性的个数。

4.2.2 self-attention block

通常包括两个子部分:

a multi-head self-attention layer:有效地从不同的表示子空间中选择性地提取信息

a point-wise feed-forward network:因为多头注意函数主要建立在线性投影上,我们通过应用一个全连接前馈网络来赋予自注意模块非线性。

在序列推荐中,只有当前时刻之前的信息可以被利用,因为我们在多头子注意力函数的输出上使用mask operation来删除Query和Key的所有连接。受bert地启发,在预训练阶段,我们删除掩码机制,以获得物品序列中每个物品地双向上下文感知表示。

4.2.3 Prediction Layer

计算在t+1步用户对物品i地偏好评分。

4.3 self-supervised learning with MIM

基于上述自注意模型,我们应用MIM方法进一步将额外的自监督信号加入模型,以增强输入数据地表示。我们采用预训练方法,基于多个视角地相关性构造不同地损失函数。

4.3.1 Modeling Item-Attribute Correlation

给定一个物品i和属性集合 ��={�1,...,��} ,我们将物品本身及其相关属性视为两个不同地视角。让 �� 表示由嵌入层获得地物品嵌入信息,而 ��� 表示第j个属性 ��∈�� 地嵌入.我们通过对比学习框架设计一个损失函数来最大化这两个视角的互信息,如下所示,我们最小化关联属性预测损失(Associated Attribute Prediction,APP)loss。

4.3.2 Modeling Sequence-item Correlation

本文建议通过填空任务对物品序列中地双向信息进行建模:在每个训练步骤中,我们随机掩盖输入序列中地小一部分项目。然后,我们根据两个方向地周围上下文来预测原始序列中的掩盖项。举例说明,让我们将第t个物品掩盖起来。我们将其余序列{i1,mask,in}视为它地周围上下文,由Cit表示。给定周围地上下文顶点和掩蔽项,我们将他们视为两个不同地视角来融合以学习数据表示,我们定义Masked Item Prediction(MIP)损失:

4.3.3 Modeling Sequence-Attribute Correlation

给定一个mask物品 �� ,我们将其上下文 ��� 及其属性集 ��� 视为MIM地两个不同视图,为了恢复被mask的物品的属性,我们提出了以下掩盖属性预测(Masked Attributed Prediction, MAP)损失:

4.3.4 Modeling Sequence-Segment Correlation

物品序列和字序列的主要区别是,单个目标物品可能与其上下文没有高度相关的关系,比如用户购买某项物品可能因为它正在打折出售。所以我们将掩盖策略从单物品扩展到物品子序列,使用bert的思想尝试通过上下文信息恢复被掩盖的物品子序列。它有望提高自监督学习信号,并提高预训练的性能。设 ��1:�2 表示从物品 ��1 到 ��2 的物品子序列,而 ���1:�2 表示整个序列中��1:�2的上下文。我们可以用MIM公式恢复缺失物品子序列,即所谓的Segment Prediction(SP) loss:

4.4 Learning and Dicussion

4.4.1 Learning

S3-rec是一个预训练+微调的模式,分别采用双向和单向的Transformer网络架构。在预训练阶段,我们考虑了四种相关性,并且构建了四个辅助函数来优化自监督学习目标。在微调阶段,我们利用从预训练阶段得到的学习参数来初始化单向Transformer的参数,然后利用从左到右的监督信息来训练网络。我们采用pairwise rank loss来优化其参数如下:

4.4.2 Discussion

本文的工作提供了一种新的自监督方法,通过预训练模型抓取输入数据的内在相关性作为一个额外的信号。这种方法具有普适性,因此在这个框架中可以包含许多现有的方法。我们将在下面做一个简短的讨论。

基于特征的方法,如分解机和Autoint,学习数据表示并进行预测。在S3-rec中,专注于数据增强表示,而不是做出预测。

序列模型如GRU4Rec和SASRec主要专注于以从左到右的顺序建模上下文物品和目标物品之间的顺序依赖关系,与S3-rec的LMIP具有类似的效果而还包括一个预训练阶段,它可以有效地挖掘数据隐藏地信息。

属性感知序列模型,如TransFM和FDSA,利用上下文特征来改进序列推荐模型,与S3-rec中LAAP损失和LMAP损失具有类似地效果。

5.Experiment

5.1Experimental setup

5.1.1 dataset

我们在从四个具有不同领域和稀疏性级别地真实平台上收集地六个数据集上进行了实验。预处理后这些数据集地统计数据汇总见表1.

(1)美团1:该数据集包括6年美团平台(2014年1月至2022年1月)在北京地交易记录。我们选择类别、位置和从客户评论中提取地关键字作为属性。

(2)亚马逊美容、体育和玩具:这三个数据集是从亚马逊评论数据集获得地。本文选择了'美',‘体育与户外’,‘玩具与游戏’三个子类别,并利用细粒度地类别和商品品牌作为属性。

(3)Yelp2:这是一个很受欢迎地商业推荐数据集。由于它非常大,我们只使用2019年1月1日以后地交易记录。我们将业务类别视为属性。

(4)LastFM3:这是一个音乐艺术家推荐数据集,包含了艺术家地用户标签行为。在这个数据集中,用户给出地艺术家地标签被用作属性。

对于所有数据集,我们按用户对交互记录进行分组,并按交互时间戳对它们进行排序。在之后,我们只保留5核数据集,并过滤具有少于5个交互记录地不受欢迎地物品和非活动用户。

5.1.2 Evaluation Metrics.

我们采用top-k点击率(HR@k),topk归一化累积折扣增益(NDCG@k)和平均倒数排名(MRR)来评估性能,这些性能在相关工作中被广泛使用。由于HR@1等于NDCG@1,我们将报告HR@{1,5,10},NDCG@{5,10}和MRR地结果。根据之前地工作,我们应用留一法进行评估。具体地说,对于每个用户交互序列,最后一个物品用作测试数据,最后一个物品之前地项作为验证数据,其余数据用于训练。由于物品集合很大,所以使用所有物品作为测试的候选物品都很耗时。按照一般策略,我们将物品真值与99个用户没有交互的负物品配对。我们根据物品的排名计算所有指标,并报告所有测试用户的平均分数。

5.1.3 Baseline Models

我们将我们提出的方法与以下11中基准方法进行了比较:

(1)PopRec (2)FM (3)AutoInt (4)GRU4Rec (5)Caser (6)SASRec (7)Bert4rec (8)HGN (9)GRU4RecF (10)SASRecf (11)FDSA

5.1.4 Implementation Details

对于S3-Rec,本文使用预训练阶段的学习参数来初始化模型的嵌入层和自注意层。根据我们的经验实验,四种损失(即AAP,MIP,MAP和SP)的权重分别设置为0.2,1.0,1.0和0.5.我们使用学习速率为0.001的Adam优化器,其中在预训练和微调阶段,批处理大小分别设置为200和256.我们对100轮的模型进行了预训练,并对推荐任务进行了微调。该代码和数据集可在连接中获得: https://github.com/RUCAIBox/CIKM2020-S3Rec

5.2 Experimental Results

所有数据集上不同数据方法的结果如表2所示。根据这些结果,我们可以发现:

表2:6个数据集上不同方法的性能比较。最佳性能和第二最佳性能方法分别永粗体和下划线字体表示。'*'表明p<0.01与最佳基线法相比的统计学意义。

根据这些结果,我们可以发现:

对于三个非序列推荐基本模型,所有数据集的性能顺序都是一致的,即PopRec>AutoInt>FM.一般来说,非序列推荐方法比序列推荐方法表现得更差,因为序列模式在我们的任务中考虑的很重要。

对于序列推荐基本方法,SASRec和Bert4rec分别采用单向和双向自注意机制,取得了比GRU4Rec和Caser更好的性能。这表明,自注意力的架构特别适合于建模序列数据。此外,HGN还实现了与SASrec和Bert4rec相当的性能。这表明分层门控网络可以很好的建模密切相关项之间的关系。在大多数情况下,FDSA在所有基本方法中达到最佳性能。这表明,特征级的自我注意力模块可以捕获有用的序列特征交互模式。

最后,通过比较我们的方法与所有的基准模型,可以很清楚的看到,S3-rec在6个数据集上的表现始终优于它们。与这些基线不同的是,我们采用自监督学习来增强推荐任务的属性,物品和序列的表征,其中包含了四个预训练的目标函数来通过MIM建模多种数据相关性。该结果还表明,自监督方法可以有效地提高序列推荐的自注意力体系结构的性能。

5.3 Further Analysis

接下来,我们继续研究S3-rec在更详细的分析中是否工作良好。

5.3.1 Ablation Study

我们提出的自监督方法S3-rec设计了基于MIM的四个预训练目标。为了验证每个目标的有效性,我们对美团、美容、体育和玩具数据集进行了消融研究,分析了每个目标的贡献。本次评价采用NDCG@10 进行。还提供了最佳基准模型FDSA的结果进行比较。

从图2中的结果,我们可以观察到,删除任何自我监督的目标都会导致性能下降。它表明,所有的目标都有助于改进推荐的性能。此外,这些目标的重要性在不同的数据集上有所不同。总体而言,AAP(相关属性预测)和MAP(掩码属性预测)比其他目标更重要。删除他们会导致所有数据集的性能显著下降。一个可能的原因是,这两个目标通过属性信息增强了物品和序列的表示。很明显的看到所有的模型变体都优于最好的基线FDSA,后者只对下一物品预测损失进行训练。

5.3.2 Applying Self-Supervised Learning to Other Models

由于自监督学习本身是一种学习范式,它通常可以应用于各种模型。因此,在这一部分中,我们进行了一个实验来检查我们的方法是否可以改进其他模型。我们使用自我监督的方法在美容和玩具数据集上对一些基线模型进行预训练。对于GRU4rec,GRU4recf,SASRec和SASRecF,我们直接应用我们的预训练目标来改进它们。值得注意的是,GRU4Rec和SASRec都是单向模型,因此我们在预训练阶段保持了单向编码器层。对于AutoInt和Caser,由于它们的架构不支持一些预训练的目标,我们只使用预训练的参数来初始化嵌入层的参数。

NDCG@10 在美容和玩具数据集上的研究结果如图3所示。首先,在通过我们的方法进行预训练后,所有基准模型都获得了更好的性能。这表明,自我监督学习可以提高它们的性能。其次,S3-rec在预训练后的表现优于所有的基准模型。这是因为我们的模型在预训练阶段采用了双向Transformer编码器,这更适合我们的方法。

第三,我们可以看到基于GRU的模型比其他模型取得的改进更小。一个可能的原因是,基于RNN的体系结构限制了自监督学习的潜力。

5.3.3 performance comparison w.r.t the amount of training data

传统的推荐系统需要大量的训练数据,因此它们很可能在现实应用中遭受冷启动问题。我们的方法可以更好的缓解这个问题,因为所提出的自监督学习方法可以更好的利用来自输入的数据相关性。我们通过使用不同比例的完整数据集来模拟数据稀疏性场景,即20%、40%、60%、80%和100%。

图4中显示了在体育数据集和Yelp数据集上的评估结果。正如我们所看到的,当使用较少的训练数据时,性能会大幅下降。而S3-rec在所有情况下都始终优于基准模型,特别是在极端稀疏性水平下(20%)。这一观察结果表明,S3-rec能够更好的利用自监督方法利用数据,在一定程度上减轻了数据稀疏性问题的影响。

5.3.4 Performance Comparison w.r.t the Number of Pre-training Epochs

我们的方法包括一个预训练阶段和一个微调阶段。在预训练阶段,我们的模型可以学习推荐任务的属性、物品、子序列和序列的增强表示。预训练的迭代次数会影响到推荐任务的执行。为了研究这一点,我们用不同的epochs预训练模型,并对推荐任务进行微调。

图5中展示了在美容和玩具数据集上的结果。水平仪表线表示没有预训练的性能。我们可以看到,我们的模型主要受益于预训练阶段前20个epoch.在那之后,性能略有提高。基于这一个观察结果,我们可以得出结论,不同视图之间的相关性(即属性、物品、子序列和序列)可以通过我们的自监督学习方法通过预训练来很好的捕获。这样增强的数据表示就可以提高序列推荐的性能。

5.3.5 Convergence Speed Comparison

在获得了属性、物品和序列的增强的表示形式后,我们对模型进行了微调。为了检查最终推荐任务的收敛速度,我们逐渐增加了微调阶段的迭代次数,并比较了我们的模型和其他基准模型的性能。

图6中显示了在美容和玩具数据集上的结果。可以观察到,S^3-rec收敛迅速,并在大约40个epoch后达到了最佳的性能。与我们的模型相比,其他模型需要更多的epoch来实现稳定的性能。结果表明,S3-rec可以利用预训练的参数来帮助模型更快的收敛,并获得更好的性能。

6.Conclusion

本文提出了一种基于互信息最大化(MIM)原理的自监督序列推荐模型S3-rec.在我们的方法中,我们采用自注意推荐架构为基础模型,并设计了四个自监督学习目标来学习原始数据中的相关性。基于MIM,这四个目标可以学习属性、物品、子序列和序列之间的相关性,从而增强了序列推荐的数据表示。实验结果表明,我们的方法优于几个做比较的基准模型。在未来,我们将研究如何设计其他形式的自监督优化目标。我们还将考虑将我们的方法应用于更复杂的推荐任务,如会话推荐和多媒体推荐。

何容兄:论文研读分享——S3-Rec

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值