《S3-Rec: Self-Supervised Learning for Sequential Recommendation with Mutual Information Maximization》
近年来,深度学习在序列推荐(《 sequential recommendation》
)方面取得了显著进展。现有的神经序列推荐模型通常依赖 item prediction loss
来学习 model parameters
或 data representations
。然而,用这种 loss
来训练好的模型容易出现数据稀疏问题(data sparsity problem
)。由于它过于强调 final performance
,在序列推荐中,context data
和 sequence data
之间的关联(association
)或融合(fusion
)没有得到很好的捕获和利用。
为了解决这个问题,我们提出了 S3-Rec
模型,即基于自注意力神经架构的 Self-Supervised learning for Sequential Recommendation
。我们方法的主要思想是:利用固有的 data correlation
来导出自监督信号,并通过 pre-training
方法增强 data representations
,以改进序列推荐。对于我们的任务,我们设计了四个辅助自监督目标,利用互信息最大化(mutual information maximization: MIM
)原则来学习attribute
、item
、subsequence
和 sequence
之间的相关性。MIM
提供了一种统一的方式来描述不同类型数据之间的相关性,特别适合我们的场景。在六个真实世界数据集上进行的大量实验表明,我们提出的方法优于现有的 SOTA
方法,尤其是在训练数据有限的情况下。此外,我们将自监督学习方法扩展到其他推荐模型,也提高了它们的性能。
近年来,许多在线平台取得了巨大成功,如 Amazon
和 Taobao
。在在线平台中,用户行为是动态(dynamic
)的,并且会随着时间而演变。因此,捕获用户序列行为的动态对于做出合适的推荐至关重要。为了准确描述用户兴趣并提供高质量的推荐,序列推荐任务在文献中得到了广泛研究。
通常,序列推荐方法从用户的历史行为中捕获有用的序列模式(sequential patterns
)。深度学习对这一动机进行了广泛探索。各种使用循环神经网络(recurrent neural network: RNN
)、卷积神经网络(convolutional neural network: CNN
)和自注意力机制的方法被提出来学习用户偏好的 good representations
,并刻画 sequential user-item interactions
。
此外,研究人员将丰富的上下文信息(如 item attributes
)纳入神经序列推荐器(neural sequential recommenders
)。已经证明,考虑上下文信息对于提高序列推荐系统( sequential recommender systems
)的性能很重要。
尽管现有方法在一定程度上被证明是有效的,但有两个主要缺点可能会影响推荐性能:
第一,它们依赖 item prediction loss
来学习整个模型。当纳入上下文数据时,所涉及的参数也通过唯一的 optimization objective
进行学习。已经发现,这种优化方式很容易出现数据稀疏等问题。
第二,它们过于强调 final performance
,而在 data representations
中,上下文数据(context data
)和序列数据(sequence data
)之间的关联(association
)或融合(fusion
)没有得到很好的捕获。例如,来自各个领域的越来越多的证据所示,有效的 data representation
(例如,pre-trained contextualized embedding
)是提高现有模型或架构性能的关键因素。因此,需要重新思考 learning
的范式,以开发更有效的序列推荐系统。
为了解决上述问题,我们借鉴自监督学习(self-supervised learning
)的思想来改进序列推荐。自监督学习是一种新兴的范式,旨在让模型从原始数据的固有结构中学习。自监督学习的一般框架是:首先直接从原始数据中构建训练信号,然后使用额外设计的优化目标对模型参数进行预训练。如前所述,有限的监督信号和无效的 data representations
是现有神经序列方法的两个主要学习问题。幸运的是,自监督学习似乎为这两个问题都提供了一个有前景的解决方案:它利用固有的 data correlation
来设计辅助训练目标,并通过具有丰富自监督信号的 pre-trained
方法来增强 data representations
。然而,对于序列推荐,上下文信息以不同的形式或具有不同的固有特性来特性存在,包括 item
、attribute
、subsequence
或 sequence
。开发一种统一的方法来描述这种 data correlations
并不容易。对于这个问题,我们受到最近提出的互信息最大化(mutual information maximization: MIM
)方法的启发。通过最大化这些视图的 encoded representations
之间的互信息,该方法在捕获原始输入的不同视图(或 parts
)之间的相关性方面特别有效。
为此,在本文中,我们提出了一种新颖的基于 MIM
的自监督学习方法来改进序列推荐,称为 S3-Rec
。基于自注意力推荐架构,我们建议:首先使用自监督信号对序列推荐器进行预训练,然后根据推荐任务对模型参数进行微调。主要的创新点在于 pre-training
阶段。具体来说,我们精心设计了四个自监督优化目标,分别用于捕获 item-attribute
、sequence-item
、sequence-attribute
和 sequence-subsequence
之间的相关性。这些优化目标以 MIM
的统一形式开发。因此,S3-Rec
能够以通用的方式描述不同粒度级别或不同形式之间的相关性。它也能够灵活地适应新的数据类型或新的相关性模式(correlation patterns
)。通过这种预训练方法,我们可以有效地融合各种上下文数据,并学习 attribute-aware contextualized data representations
。最后,将学到的 data representations
馈入到神经推荐器中,神经推荐器将根据推荐性能而被优化。
为了验证我们提出的 S3-Rec
方法的有效性,我们在六个不同领域的真实世界推荐数据集上进行了广泛的实验。实验结果表明,与许多有竞争力的方法相比,S3-Rec
达到了 SOTA
的性能,尤其是在训练数据有限的情况下。我们还表明,我们的 S3-Rec
能够有效地适应其他类别的神经架构,如 GRU
和 CNN
。
我们的主要贡献总结如下:
据我们所知,这是首次将基于 MIM
的自监督学习应用于改善序列推荐任务。
我们提出了四个自监督优化目标(self-supervised optimization objectives
),以最大化不同形式或粒度的上下文信息的互信息(mutual information of context information
)。
在六个真实世界数据集上进行的大量实验证明了我们提出的方法的有效性。
问题描述:假设我们有一组用户 items
item
。用户数量和 item
数量分别表示为 items
交互序列:item
。为了方便起见,我们使用 item
artist
)、专辑(album
)和流行度(popularity
)等辅助信息。所有属性构成一个属性集合
基于上述符号,我们现在定义序列推荐任务。正式地,给定用户的历史行为序列 item
next item
。
互信息最大化:我们方法中的一个重要技术是互信息最大化(Mutual Information Maximization : MIM
)。它基于互信息(mutual information
)这个核心概念发展而来,互信息用于衡量随机变量之间的依赖关系。给定两个随机变量
直接最大化互信息通常是难以处理的。因此,我们采用 InfoNCE
,它基于噪声对比估计(Noise Contrastive Estimation: NCE
)。InfoNCE
定义为:
其中:
input
的不同视图。
encoded representations
之间的内积;或者,一个图像及其局部区域的 encoded representations
之间的内积。
proposal distribution
请注意,InfoNCE
与交叉熵相关。如果 InfoNCE
类似于最大化标准交叉熵损失:
该方程表明: InfoNCE
与最大化 partition function
)。基于此公式,我们可以利用特定的 item
及其属性,或一个序列及其包含的items
。
现有研究主要强调使用单一的 item-level
优化目标来强调 sequential characteristics
的效果。受 MIM
最近进展的启发,我们从不同的角度出发,通过最大化原始数据不同视图之间的互信息来开发神经序列推荐器。
我们方法的基本思想是:纳入几个精心设计的自监督学习目标(self-supervised learning objectives
)来增强原始模型。为了开发这些目标,我们利用 input
的固有特性中反映的有效的 correlation
信号。对于我们的任务,我们考虑不同粒度级别的信息,包括 attribute
、item
、segment
(即子序列)和 sequence
,这些被视为输入的不同视图。通过捕获 multi-view correlation
,我们将这些自监督学习目标与最近在语言建模中提出的 pre-training
框架统一起来。
S3-Rec
的概述如 Figure 1
所示。在以下部分中,我们首先介绍我们提出的方法的 base model
,该模型基于 Transformer
架构开发。然后,我们将描述如何利用 attribute
、item
、segment
和 sequence
的 correlation
信号,基于 InfoNCE
方法来增强data representations
。最后,我们对我们的方法进行讨论。
(1)
图有问题:Item Embedding
不需要经过Bidirectional Self-Attention
而直接馈入Item-Attribute MIM
即可。这四个任务如何训练?根据论文的实验部分,这四个任务是通过共同训练来进行的:四个损失(即
AAP
、MIP
、MAP
和SP
)的权重分别设置为0.2
、1.0
、1.0
和0.5
。注意:预训练是双向
Transformer
,main task
是单向Transformer
。
我们通过堆叠 embedding layer
、self-attention blocks
和 prediction layer
,开发了序列推荐模型的基本框架。
Embedding Layer
:在 embedding mapping
阶段,我们维护一个 item embedding matrix
attribute embedding matrix
item
或 attribute
的高维 one-hot representation
投影到低维 dense representations
。给定一个长度为 item sequence
,我们从 look-up
来形成 input embedding matrix
此外,我们引入一个可学习的 position encoding matrix
item sequence
的 input representation
。通过这种方式,sequence representation
embedding
矩阵求和得到:attribute embedding matrix
item
形成一个 embedding
矩阵 item attributes
的数量。
Self-Attention Block
:基于 embedding layer
,我们通过堆叠多个 self-attention blocks
来开发 item encoder
。一个 self-attention block
通常由两个子层组成,即一个 multi-head self-attention layer
和一个 point-wise feed-forward network
。
multi-head self-attention
机制用于从不同的 representation
子空间中有效地选择性提取信息。具体来说,multi-head self-attention
定义为:
其中:
head
对应的可学习的参数矩阵。
attention function
实现为 scaled dot-product
操作:
其中:input embedding matrix
的线性变换,
由于 multi-head attention
函数主要基于线性投影构建。我们通过应用 point-wise feed-forward network
赋予 self-attention block
非线性。计算定义为:
其中:
在序列推荐中,只能利用当前 time step
之前的信息,因此我们对 multi-head self-attention
函数的 output
应用掩码操作,以去除 connections
。受 BERT
启发,在预训练阶段,我们移除掩码机制,以获取 item sequence
中每个 item
的双向 context-aware representation
。从两个方向整合上下文信息对于 sequence representation learning
是有益的。
Prediction Layer
:在 S3-Rec
的最后一层,我们计算在 user history
的上下文下,用户在第 item
其中:
item embedding matrix
item
representation
。
事实上
target item
除了item id
之外,还有对应的属性信息。如果考虑 target item
的属性信息,是不是对任务更有帮助?根据后面的Modeling Item-Attribute Correlation
,item embedding
已经融合了attribute
信息,因此仅使用target item
的item id
是可以的。
L-layer self-attention block
在第 self-attention blocks
的数量。
基于上述 self-attention
模型,我们进一步利用互信息最大化(MIM
)引入额外的自监督信号,以增强 input data
的 representations
。我们采用 pre-training
的方式,基于 multi-view correlation
构建不同的损失函数。
Modeling Item-Attribute Correlation
:我们首先最大化 items
和 attributes
之间的互信息。对于每个 item
,其 attributes
提供了关于它的细粒度信息。因此,我们旨在通过建模 item-attribute correlation
来融合 item-level
和 attribute-level
的信息,期望将有用的属性信息注入到 item representations
中。
给定一个 item
item
本身及其相关属性视为两个不同的视图。形式上,设 emebdding layer
得到的 item embedding
,embedding
。我们通过对比学习框架(contrastive learning framework
)设计一个损失函数,来最大化这两个视图之间的互信息。根据公式 Associated Attribute Prediction: AAP
损失:
其中:
我们采样 negative attributes
item
ground-truth attributes
\
表示 set subtraction
操作。
函数 bilinear network
)实现:
其中:sigmoid
函数。
为了清晰起见,我们给出了单个 item
的 loss
的定义 loss
扩展到整个 item set
。
Modeling Sequence-Item Correlation
:传统的序列推荐模型通常被训练用于预测 item item
。这种方法只考虑了 item sequence
从左到右的 sequential characteristics
。然而需要注意的是,在训练过程中模型实际上可以观察到整个交互序列。受类似 BERT
的 masked language model: MLM
的启发,我们提出通过完形填空任务来对 item sequence
中的双向信息进行建模。对于我们的任务,完形填空设置如下:在每个 training step
中,我们随机掩码 input sequence
中一定比例的 items
(即用 special tokens
“ [mask]
” 来替换它们)。然后,我们根据双向的上下文,从原始序列中预测 masked items
。
因此,我们考虑的第二个损失是利用 input sequences
的双向上下文来恢复 actual item
。为此,我们准备了 Base Model
的一个 pre-trained
版本,它是一个双向 Transformer
架构。举例来说,假设我们在序列 item
masked item
data representations
。根据 Masked Item Prediction: MIP
损失:
其中:
irrelevant item
。
其中:Self-Attention Block
章节中相同的方式并通过双向Transformer
架构得到的第 learned representation
。
Modeling Sequence-Attribute Correlation
:在对 item-attribute correlation
和 sequence-item correlation
进行建模之后,我们进一步考虑直接将 attribute
信息与 sequential contexts
进行融合。具体来说,我们采用与 Modeling Sequence-Item Correlation
类似的方法,基于 surrounding contexts
来恢复 masked item
的 attributes
。给定一个 masked item
surrounding contexts
attribute set
MIM
)的两个不同视图。因此,我们可以通过以下方式开发 Masked Attribute Prediction: MAP
损失:
其中:
negative attributes
。
其中:
需要注意的是,现有方法很少直接对 sequential context
和属性信息之间的 correlation
进行建模。然而,我们希望显式地对这种 correlation
进行建模,以获得更有意义的监督信号,这对于改进多粒度信息的 data representations
是有用的。
注意:这里是通过
surrounding contexts
的item id
(而不是属性),来预测masked item
的属性。
Modeling Sequence-Segment Correlation
:如上文所示,完形填空学习(Cloze learning
)策略在我们的预训练方法中,对于融合 sequential contexts
和 target information
起着关键作用。然而,item sequence
与 word sequence
的一个主要区别在于:单个 target item
可能与 surrounding contexts
的相关性并不高。例如,用户购买某些商品可能仅仅是因为它们在打折。基于这种考虑,我们将完形填空策略从单个 item
扩展到 item subsequence
(即 segment
)。显然,一个 item segment
比单个 item
更能反映清晰的、稳定的用户偏好。因此,我们采用与 Modeling Sequence-Item Correlation
类似的策略,从 surrounding contexts
恢复 item subsequence
。我们期望以此来增强自监督学习信号,并提高 pre-trained performance
。
令 item
MIM
)公式来恢复缺失的 item segment
,即所谓的 Segment Prediction: SP
损失:
其中:
corrupted negative subsequence
。
其中:learned representations
。为了学习 Transformer
来获得序列中最后一个位置的 state representations
。
在这部分,我们介绍 S3-Rec
用于序列推荐的学习过程及相关讨论。
学习过程:S3-Rec
的整个过程包括两个重要阶段,即 pre-training
阶段和 fine-tuning
阶段。我们在两个阶段分别采用双向 Transformer
和单向 Transformer
架构。
在预训练阶段,我们通过考虑四种不同类型的相关性来优化自监督学习目标。
在微调阶段,我们利用预训练阶段学到的参数来初始化单向 Transformer
的参数,然后利用从左到右的监督信号来训练网络。我们采用 pairwise rank loss
来优化其参数:
其中,我们将每个 ground-truth item
negative item
讨论:我们的工作提供了一种新颖的自监督方法,通过 pre-trained models
从输入中捕获固有的数据相关性,并将其作为额外信号。这种方法具有很强的通用性,许多现有方法都可以纳入这个框架。下面我们进行简要讨论。
Feature-based
方法,如因子分解机(Factorization Machine: FM
)和 AutoInt
,主要通过 context features
之间的交互来学习 data representations
。final prediction
是根据 user and item features
之间的实际交互结果来做出的。在S3-Rec
中,associated attribute prediction loss
masked attribute prediction loss
attributes
之间的交互进行建模,而是专注于捕获 attribute
信息与 item/sequential contexts
之间的关联。我们工作的一个主要区别在于,利用特征交互作为额外的监督信号来增强 data representations
,而不是用于直接进行预测。
Sequential models
方法,如 GRU4Rec
和 SASRec
主要侧重于按从左到右的顺序对 contextual items
和 target item
之间的序列依赖关系(sequential dependencies
)进行建模。S3-Rec
额外引入了一个预训练阶段,利用四种不同类型的自监督学习信号来增强 data representations
。特别是,masked item prediction loss
GRU4Rec
、SASRec
在捕获序列依赖关系方面有类似的效果,不同之处在于它还可以利用双向序列信息。
Attribute-aware sequential models
方法,如 TransFM
和 FDSA
利用 contextual features
来改进序列推荐模型,这些特征被视为辅助信息,用于增强 representation of items or sequences
。在我们的 S3-Rec
中,attribute
与 items or sequential contexts
进行融合,这能够达到与之前方法相同的效果。此外,pre-trained data representations
也可以用于改进现有方法。
数据集:我们在从四个真实世界平台收集的六个数据集上进行实验,这些数据集具有不同的领域和稀疏度水平。预处理后这些数据集的统计信息总结在 Table 1
中。
Meituan
数据集:该数据集包含 2014
年1
月至 2020
年1
月美团平台在北京的六年交易记录。我们选择类别、位置以及从客户评论中提取的关键词作为 attributes
。
Amazon Beauty, Sports, and Toys
:这三个数据集来自 Amazon
评论数据集。在本研究中,我们选择了三个子类别:“美妆”、“运动与户外” 和 “玩具与游戏”,并将商品的 fine-grained categories
和品牌作为 attributes
。
Yelp
数据集:这是一个用于商业推荐的流行数据集。由于其规模非常大,我们仅使用 2019
年 1
月1
日之后的交易记录。我们将商业类别作为 attributes
。
LastFM
数据集:这是一个音乐艺术家推荐数据集,包含用户对艺术家的 tagging behaviors
。在该数据集中,用户给艺术家的 tags
被用作 attributes
。
对于所有数据集,我们按对 interaction records
按照 user
进行分组,并按交互时间戳升序排序。遵循以往研究,我们仅保留 5-core datasets
,并过滤掉低于 5
条 interaction records
的冷门 items
和不活跃用户。
评估指标:我们采用 top-k Hit Ratio: HR@k
、top- k Normalized Discounted Cumulative Gain: NDCG@k
、以及 Mean Reciprocal Rank: MRR
来评估性能,这些指标在相关工作中被广泛使用。由于 HR@1
等于 NDCG@1
,我们报告 HR@{1, 5, 10}
、NGCG@{5, 10}
和 MRR
的结果。
遵循以往工作,我们采用留一法(leave-one-out
)进行评估。具体来说,对于每个 user interaction sequence
,最后一个 item
用作测试数据,倒数第二个 item
用作验证数据,其余数据用于训练。由于 item set
较大,使用所有 items
作为测试的 candidates
非常耗时。按照常见策略,我们将 ground-truth item
与 99
个用户未交互过的随机采样 negative items
进行配对。我们根据 items
的 ranking
来计算所有指标,并报告所有测试用户的平均得分。
Baseline Models
:
PopRec
:一种非个性化的方法,根据交互次数来衡量的流行度对 items
进行排名。
FM
:使用 factorized model
来描述变量之间的 pairwise interactions
。
AutoInt
:利用多头自注意力神经网络来学习特征交互。
GRU4Rec
:应用GRU
对 user click sequence
进行建模,用于 session-based recommendation
。我们使用 embedding
向量而不是 one-hot
来表示 items
。
Caser
:一种 CNN-based
的方法,通过应用水平卷积和垂直卷积操作来捕获高阶马尔可夫链,用于序列推荐。
SASRec
:一种 self-attention based
的序列推荐模型,使用 multi-head attention
推荐 next item
。
BERT4Rec
:通过双向 self-attention
机制,使用完形填空目标损失进行序列推荐。
HGN
:最近提出的方法,采用 hierarchical gating networks
来捕获用户的长期兴趣和短期兴趣。
GRU4Rec
的改进版本,利用 attributes
来提高性能。
SASRec
的扩展,将 representations of item and attribute
拼接起来作为模型的输入。
FDSA
:构建一个 feature sequence
,并使用 feature-level self-attention block
对特征转移模式(feature transition patterns
)进行建模。这是序列推荐中的 SOTA
模型。
实现细节:
对于 Caser
和 HGN
,我们使用作者提供的源代码。对于其他方法,我们使用 PyTorch
实现。所有超参数均按照原始论文的建议进行设置。
对于我们提出 S3-Rec
,我们将 self-attention blocks
的数量和 attention heads
的数量均设置为 2
。embedding
维度为 64
,最大序列长度为 50
(遵循 《Self-Attentive Sequential Recommendation》
)。需要注意的是,我们的训练阶段包含两个阶段(即预训练阶段和微调阶段),预训练阶段学到的参数用于初始化微调阶段模型的 embedding layers
和 self-attention layers
。
在预训练阶段,item
的掩码比例设置为 0.2
;据经验实验,四个损失(即 AAP
、MIP
、MAP
和 SP
)的权重分别设置为 0.2
、1.0
、1.0
和 0.5
。
我们使用 Adam
优化器,学习率为 0.001
,预训练阶段的 batch size = 200
,微调阶段的 batch size = 256
。我们对模型进行 100 epochs
预训练,然后在推荐任务上进行微调。
代码和数据集可在链接:https://github.com/RUCAIBox/CIKM2020-S3Rec
上获取。
不同方法在所有数据集上的结果如 Table 2
所示。基于这些结果,我们可以发现:
对于三个 non-sequential
的基线方法,在所有数据集上的性能顺序是一致的,即 PopRec > AutoInt > FM
。
由于 product adoption
中的 “富者更富” 效应,PopRec
是一个鲁棒的基线。
在大多数数据集上,AutoInt
的表现优于 FM
,因为 multi-head self-attention
机制具有更强的 model attributes
的能力。然而,在 Meituan
数据集上,AutoInt
的性能比 FM
差。一个潜在的原因是, multi-head self-attention
可能会从 attributes
中引入更多噪声,因为这些 attributes
是从美团平台的评论中提取的关键词。
一般来说,non-sequential recommendation
方法的性能比序列推荐方法差,因为在我们的任务中考虑序列模式(sequential pattern
)很重要。
有点不太符合预期,基于规则的、非个性化的
PopRec
居然超越了AutoInt
和FM
。可能是因为模型的超参数没有优化好。
对于序列推荐基线方法:
SASRec
和 BERT4Rec
分别利用单向的和双向的 self-attention
机制,并且比 GRU4Rec
和 Caser
取得了更好的性能。这表明 self-attention
架构特别适合对序列数据进行建模。然而,在使用传统的 next-item prediction loss
进行训练时,它们的改进并不稳定。
此外,HGN
取得了与 SASRec
和 BERT4Rec
相当的性能。这表明 hierarchical gating network
能够很好地对紧密相关的 items
之间的关系进行建模。
但是,当直接将 attribute
信息注入 GRU4Rec
和 SASRec
(即 Yelp
数据集上有性能提升,但在其他数据集上却产生负面影响。一个可能的原因是,简单地拼接 item representations
及其 attributes representations
无法有效地融合这两种信息。
在大多数情况下,FDSA
在所有基线方法中取得了最佳性能。这表明 feature-level self-attention blocks
能够捕获到有用的 sequential feature interaction patterns
。
最后,通过将我们的方法与所有基线进行比较,可以明显看出,S3-Rec
在六个数据集上的表现始终优于它们,且优势明显。与这些基线不同,我们采用自监督学习来增强 representations of the attribute, item, and sequence
从而用于推荐任务,其中包含四个预训练目标,通过互信息最大化(MIM
)对多种 data correlations
进行建模。这一结果也表明,自监督方法对于提高用于序列推荐的 self-attention
架构的性能是有效的。
接下来,我们继续研究 S3-Rec
在更详细的分析中是否表现良好。
消融研究:我们提出的自监督方法 S3-Rec
基于互信息最大化(MIM
)设计了四个预训练目标。为了验证每个目标的有效性,我们在美团、美妆、运动和玩具数据集上进行消融研究,分析每个目标的贡献。本评估采用 NDCG@10
指标。同时还提供了最佳基线 FDSA
的结果作为比较。
从 Figure 2
的结果中,我们可以观察到:
去除任何一个自监督目标都会导致性能下降。这表明所有目标都有助于提高推荐性能。
此外,这些目标的重要性在不同数据集上有所不同。总体而言,AAP
(Associated Attribute Prediction
)和 MAP
(Masked Attribute Prediction
)比其他目标更重要。在所有数据集上,去除这两个目标中的任何一个都会导致性能大幅下降。一个可能的原因是,这两个目标利用 attributes
信息增强了 representations of item and sequence
。
将自监督学习应用于其他模型:由于自监督学习本身是一种学习范式,它通常可以应用于各种模型。因此,在本部分中,我们进行了一项实验,以检验我们的方法是否能为其他模型带来改进。我们使用自监督方法在美妆和玩具数据集上对一些基线模型进行预训练。对于 GRU4Rec
、 SASRec
和 GRU4Rec
和 SASRec
是单向模型,因此在预训练阶段我们维持单向的 encoder layer
。对于 AutoInt
和 Caser
,由于它们的架构不支持某些预训练目标,我们仅利用 pre-trained parameters
来初始化 embedding layers
的参数。
美妆和玩具数据集上NDCG@10
的结果如 Figure 3
所示。
首先,经过我们的方法预训练后,所有基线模型都取得了更好的性能。这表明自监督学习也可以应用于提高它们的性能。
其次,S3-Rec
在预训练后优于所有基线模型。这是因为我们的模型采用了在预训练阶段中的双向 Transformer encoder
,更适合我们的方法。
第三,我们可以看到 GRU-based
的模型的改进程度比其他模型小。一个可能的原因是RNN-based
的架构限制了自监督学习的潜力。
不同训练数据量下的性能比较:传统的推荐系统需要大量的训练数据,因此在实际应用中可能会受到冷启动问题的影响。我们的方法可以缓解这个问题,因为所提出的自监督学习方法可以更好地利用输入中的 data correlation
。我们通过使用完整数据集的不同比例(即 20%
、40%
、60%
、80%
和 100%
)来模拟数据稀疏场景。
Figure 4
展示了在运动和Yelp
数据集上的评估结果。
正如我们所见,当使用较少的训练数据时,性能会大幅下降。
然而,S3-Rec
在所有情况下都始终优于基线,尤其是在极端稀疏水平(20%
)下。这一观察结果表明,S3-Rec
能够通过自监督方法更好地利用数据,在一定程度上减轻了序列推荐中数据稀疏问题的影响。
不同预训练 epochs
下的性能比较:我们的方法包括预训练阶段和微调阶段。在预训练阶段,我们的模型可以学习 enhanced representations of the attribute, item, subsequence, and sequence
从而用于推荐任务。预训练 epochs
会影响推荐任务的性能。为了研究这一点,我们使用不同的预训练 epochs
对模型进行预训练,并在推荐任务上进行微调。
Figure 5
展示了在美妆和玩具数据集上的结果。水平虚线表示 without pre-training
时的性能。我们可以看到:我们的模型在 first 20 pre-training epochs
中受益最大。之后,性能提升幅度较小。
基于这一观察结果,我们可以得出结论,通过少量的预训练 epochs
,我们的自监督学习方法可以很好地捕获不同视图(即 the attribute, item, subsequence, and sequence
)之间的相关性。因此,enhanced data representations
可以提高序列推荐的性能。
收敛速度比较:在获得 attribute, item, and sequence
的 enhanced representations
后,我们在推荐任务上对模型进行微调。为了检验在最终推荐任务上的收敛速度,我们逐渐增加微调阶段的 epochs
,并比较我们的模型和其他基线模型的性能。
Figure 6
展示了在美妆和玩具数据集上的结果。可以观察到:我们的模型收敛速度快,在大约 40 epochs
后达到最佳性能。与我们的模型相比,基线模型需要更多 epochs
才能达到稳定性能。
这一结果表明,我们的方法可以利用 pre-trained parameters
帮助模型更快收敛并取得更好的性能。