《Contrastive Learning for Sequential Recommendation》
序列推荐方法在现代推荐系统中起着至关重要的作用,因为它们能够从用户的历史交互中捕获用户的动态兴趣。尽管这些方法取得了成功,但我们认为它们通常依赖于 sequential prediction
任务来优化大量参数,并且通常会受到数据稀疏性问题的困扰,这使得它们难以学习到高质量的 user representations
。为了解决这个问题,受计算机视觉领域对比学习技术最新进展的启发,我们提出了一种名为 Contrastive Learning for Sequential Recommendation: CL4SRec
的新型多任务模型。CL4SRec
不仅利用了传统的next item prediction
任务,还利用对比学习框架从原始用户行为序列中导出自监督信号。因此,它可以提取更有意义的 user patterns
,并进一步有效地编码 user representations
。此外,我们提出了三种数据增强方法来构建自监督信号。在四个公共数据集上进行的大量实验表明,CL4SRec
通过推断出更好的 user representations
,在现有基线方法的基础上实现了 SOTA
的性能。
推荐系统已广泛应用于 Amazon
和 Alibaba
等在线平台,以满足用户的需求。在这些平台上,用户行为中隐藏的兴趣本质上是动态的,并且会随着时间而演变,这使得平台很难做出合适的推荐。为了解决这个问题,人们提出了各种方法,通过从用户的历史交互中捕获他们的动态兴趣来进行序列推荐。
对于序列推荐任务,核心问题是如何通过用户的历史交互为每个用户推断出高质量的 representation
。有了这些 user representations
,我们就可以轻松地为每个用户推荐合适的 items
。因此,研究工作的主线是通过使用更强大的序列模型来获得更好的 user representation
。最近,随着深度学习技术的进步,许多工作采用深度神经网络来处理这个问题,并取得了显著的性能提升。这些序列模型,如循环神经网络(RNN
)和自注意力机制,可以通过捕获更复杂的序列模式(sequential patterns
)来学习用户行为的有效 representations
。一些先前的工作还采用图神经网络(GNN
)来探索用户序列中更复杂的 item transition patterns
。尽管这些方法取得了有希望的结果,但它们通常只利用 item prediction
任务来优化这些大量的参数,这很容易受到数据稀疏性(data sparsity
)问题的影响。当训练数据有限时,这些方法可能无法推断出合适的 user representations
。
最近,自监督学习技术在计算机视觉(CV
)和自然语言处理(NLP
)等领域的 representation learning
方面取得了重大突破。它们试图直接从 unlabeled data
中提取固有的数据相关性(data correlation
)。受自监督学习成功的启发,我们旨在使用自监督学习技术来优化 user representation
模型,以改进序列推荐系统。为了实现这个目标,一种直接的方法可能是在更大的用户行为语料库上直接采用像 GPT
这样强大的序列模型。然而,这种方法不适用于推荐系统,原因有两个:
i)
:推荐系统通常没有更大的语料库用于预训练。同时,与 NLP
领域不同,推荐系统中的不同任务通常不共享相同的知识,从而限制了 pre-training
的应用。
ii)
:这种 predictive
的自监督学习的目标函数与序列推荐的目标函数几乎相同,其中序列推荐通常被建模为一个 sequential prediction
任务。在相同的数据上应用另一个相同的目标函数无助于序列推荐中的 user representation learning
。
由于上述问题,自监督学习在推荐系统中的应用研究较少。最相关的研究方向是通过从原始特征数据的固有结构(例如 item attributes
)导出的自监督信号来增强 feature representations
。这些先前的工作通常侧重于在 item level
改进 representations
。然而,如何在 user behavior sequence level
获取准确的 representations
尚未得到充分研究。
与先前通过对 item features
进行自监督任务来增强 item representation
的研究不同,我们旨在通过在 user behavior sequence level
的自监督信号来学习更好的 sequence representations
,即使只有 ID
信息。具体来说,我们提出了一种名为 Contrastive Learning for Sequential Recommendation: CL4SRec
的新型模型。我们的模型将传统的 sequential prediction
目标与对比学习目标相结合。通过对比学习损失,我们通过最大化同一 user interaction sequence
在潜在空间中不同 augmented views
之间的一致性来编码 user representation
。通过这种方式,CL4SRec
可以推断出准确的 user representations
,然后轻松地为每个用户单独选择有吸引力的 items
。此外,我们提出了三种数据增强方法(crop/mask/reorder
)来将用户交互序列投影到不同的视图。我们在四个真实世界的公共推荐数据集上进行了广泛的实验。综合实验结果验证了 CL4SRec
与竞争方法相比达到了 SOTA
的性能。我们的主要贡献可以总结如下:
我们提出了一种名为Contrastive Learning for Sequential Recommendation: CL4SRec
的新型模型,它仅通过用户的交互行为推断出准确的 user representations
。据我们所知,这是第一项将对比学习应用于序列推荐的工作。
我们提出了三种不同的数据增强方法,包括裁剪(crop
)、掩码(mask
)和重排序(reorder
),以构建用户序列的不同视图。
在四个公共数据集上进行的大量实验证明了我们的 CL4SRec
模型的有效性。与所有竞争基线相比,根据 ranking
指标,对比学习框架带来的改进平均约为 7.37%
至 11.02%
。
在本节中,我们介绍 CL4SRec
,该框架仅利用用户历史行为的信息。我们首先介绍本文中使用的符号并阐述序列推荐问题。然后,介绍通用的对比学习框架。接着,我们提出三种增强方法来构建对比任务。然后,我们介绍我们方法中使用的 user representation model
。由于 CL4SRec
是一个通用框架,我们选择最先进的模型之一,Transformer
的编码器,作为我们的 user representation model
。最后,我们提出如何通过多任务学习框架来训练user representation model
。
符号和问题陈述:设 items
集合,其中 items
数量。我们用 item
。在序列推荐任务中,用户的行为序列通常按时间顺序排列。因此,我们用 time step
item
,items
。此外,设 augmentations
。
基于上述符号,我们现在定义序列推荐的任务。它专注于在没有任何其他辅助上下文信息的情况下,根据用户 timestamp
item
。可以将其公式化为:
受用于学习 visual representation
的 SimCLR
框架的启发,我们探索将对比学习算法应用于序列推荐任务,以获得强大的 user representation model
。该框架包含三个主要组件,包括随机数据增强模块、user representation encoder
、以及对比损失函数。Figure 1
的左侧展示了该框架。
数据增强模块:我们采用随机数据增强模块将每个数据样本随机转换为两个相关的实例。如果两个转换后的实例来自同一样本,则将它们视为 positive pair
。如果它们是从不同样本转换而来的,则将它们视为 negative pair
。在序列推荐任务中,我们对每个用户的历史行为序列
User Representation Encoder
:我们利用神经网络作为 user representation encoder
,从增强后的序列中提取信息。通过这个编码器,我们可以从增强后的序列中获得有意义的 user representations
,即 CL4SRec
对 user representation model
的选择没有限制,在这项工作中,我们采用 Transformer encoder
来编码 user representation
,该编码器在最近的工作中已显示出有希望的结果。值得一提的是,SimCLR
在
对比损失函数:最后,应用对比损失函数来区分两个 representations
是否来自同一用户的历史序列。为了实现这个目标,对比损失函数学习最小化同一用户历史序列不同增强视图之间的差异,并最大化来自不同用户的增强序列之间的差异。考虑一个包含 mini-batch
,我们对每个用户的序列应用两个随机的 augmentation
算子,得到 《A Simple Framework for Contrastive Learning of Visual Representations》
和 《Self-supervised Learning for Deep Models in Recommendations》
类似,对于每个用户 positive pair
,并将同一 mini-batch
中的其他 representation
之间的相似性,positive pair
softmax
交叉熵损失:
这里不考虑温度超参数吗?比如,
,其中 为温度超参数。
基于上述对比学习框架,接下来我们讨论对比学习框架中 transformations
的设计,它可以结合额外的自监督信号来增强 user representation model
。如 Figure 2
所示,我们引入了三种基本的增强方法,这些方法可以构建同一序列的不同视图,但仍然保留历史行为中隐藏的主要偏好(main preference
)。
在训练的时候,我们会事先选择一种增强方法、选择一个增强比例(
),然后在整个训练期间固定下来。是否可以每个 batch
选择不同的增强方法?作者没有说明,也没有在实验中验证。
Item Crop
:随机裁剪是计算机视觉中增加图像多样性的常见数据增强技术,它通常会创建原始图像的随机子集,帮助模型更好地泛化。受图像随机裁剪技术的启发,我们针对序列推荐中的对比学习任务提出了 item crop
数据增强方法。对于每个用户的历史序列item
我们的 item crop
增强方法的效果可以从两个方面解释。
首先,它提供了用户历史序列的局部视图。在没有用户完整信息的情况下,通过学习通用的用户偏好来增强 user representation model
。
其次,在对比学习框架下,如果两个 cropped sequences
没有交集,它可以被视为一个 next sentence prediction
任务 。这促使模型预测用户偏好的变化。
Item Mask
:随机将 input word
进行 zero-masking
的技术,也称为 “word dropout”
,在许多 NLP
任务中被广泛采用,以避免过拟合,如句子生成、情感分析和问答系统 。受这种 word dropout
技术的启发,我们提出应用 random item mask
作为对比学习的增强方法之一。对于每个用户历史序列 items
items
的索引。如果序列中的 item
被掩码,它将被一个特殊的 item
,即 [mask]
所替换。因此,这种增强方法可以表示为:
由于用户的意图在一段时间内相对稳定,用户历史交互的 items
大多反映了相似的目的。例如,如果一个用户打算购买一双运动鞋,该用户可能会点击许多运动鞋来决定购买哪一双。因此,通过我们的 item mask
数据增强,从同一用户序列派生的两个不同视图仍然可以保留用户的主要意图。通过这种方式,这种自监督信号可以防止 user representation encoder
过度适应(co-adapting
)。
Item Reorder
:许多方法采用严格的顺序假设,即用户历史序列中大多数相邻 items
在顺序上是相关的 。然而,在现实世界中,由于各种不可观察的外部因素,有时用户交互的顺序是灵活的 。在这种情况下,我们可以派生一个自监督增强算子,在灵活顺序的假设下捕获 sequential dependencies
。通过这个算子,我们可以鼓励 user representation model
减少对交互序列的顺序的依赖,从而在遇到新的交互时使模型更加鲁棒。
为此,我们采用 item reorder
任务作为对比学习的另一种增强方法。受 NLP
中 swap
操作的启发,我们以比例 items
的位置来改变 items
的顺序。更具体地说,对于每个用户历史序列
在本小节中,我们描述如何通过堆叠 Transformer encoder
对用户历史序列进行建模。在本文中,我们使用 SASRec
模型的架构,该模型应用单向 Transformer encoder
,并在序列推荐任务中取得了有希望的结果 。Transformer encoder
由三个子层组成:embedding Layer
、多头自注意力模块、以及 position-wise feed-forward Network
,Figure 3
简要说明了这些组件。
Embedding Layer
:Transformer encoder
利用 item embedding matrix
one-hot item representations
投影到低维密集向量。此外,为了表示序列的 position
信息,它利用可学习的 position embedding
position
向量的数量 time step
representation
时,如果 items
从而得到输入序列
最后,我们通过将 item embedding
和 position embedding
相加来获得用户序列中 items
的 input representations
:
其中:item
representation
。这里,为方便起见,我们省略了上标
多头自注意力模块:在 embedding layer
之后,Transformer encoder
引入自注意力模块 ,以捕获序列中每个 item pair
之间的依赖关系,这在许多任务的序列建模中是有效的。此外,为了在每个 position
从不同子空间提取信息,我们在这里采用多头自注意力而不是单一的注意力函数。它首先利用不同的线性投影将 input representations
投影到 head
应用自注意力机制,并通过拼接中间结果并再次投影来导出 output representations
。计算过程如下:
其中:
Attention
操作通过缩放点积注意力实现,如下所示:
其中:query
、key
和 value
。这个注意力模块中的因子
在序列推荐中,当我们预测 next item
time step
Position-wise Feed-Forward Network
:虽然多头自注意力有助于从前面的 items
中提取有用信息,但它基于简单的线性投影。我们通过 position-wise feed-forward network
为模型赋予非线性。它应用于上述子层的 output
的每个位置,具有共享的可学习参数:
堆叠更多模块:堆叠更多模块通常有利于深度学习方法学习更复杂的模式。然而,随着参数增多和网络加深,模型变得更难收敛。为了缓解这个问题,我们采用了几种机制,包括残差连接(residual connection
)、层归一化(layer normalization
)和 dropout
模块,如下所示:
其中:position-wise feed-forward network
。这些机制被广泛用于稳定和加速模型训练。
User Representations
:基于几个 Transformer
模块,我们在每个 time step
user representation
,它从 items
中提取有用信息。由于我们的任务是为每个用户 time step
items
,我们将用户 final representation
设置为该用户在时间
其中:
Transformer
层数。
为了利用从 unlabeled
的原始数据中派生的自监督信号来提高序列推荐的性能,我们采用多任务策略,联合优化主要的序列预测任务和额外的对比学习任务。总损失是一个线性加权和,如下所示:
我们采用带有 sampled softmax
的负对数似然作为每个用户 time step
main loss
:
其中:
user representation
。
time step
item
。
negative item
,
在本节中,我们进行了广泛的实验,以回答以下研究问题:
RQ1
:与序列推荐任务中 SOTA
的基线方法相比,所提出的 CL4SRec
框架性能如何?
RQ2
:不同的 augmentation
方法对性能有何影响?不同的augmentation
超参数对 CL4SRec
性能有何影响?
RQ3
:在多任务框架下,对比学习损失的权重
RQ4
:CL4SRec
的不同组件(即 augmentation
方法和对比学习损失)如何有益于其性能?
RQ5
:与其他 SOTA
的基线方法相比,我们的 CL4SRec
是否真的在 user behavior sequence level
学习到了更好的 representation
?
数据集:我们在从现实世界平台收集的四个公共数据集上进行实验。
其中两个来自全球最大的电子商务平台之一 Amazon
。它们在 《Image-Based Recommendations on Styles and Substitutes》
中被介绍过,是按照 Amazon
的 top-level
产品类别进行划分的。在这项工作中,我们遵循 《S3-Rec: Self-Supervised Learning for Sequential Recommendation with Mutual Information Maximization》
中的设置,采用 “美容” (Beauty
)和 “运动与户外” (Sports and Outdoors
)这两个类别。
另一个数据集是由 Yelp
收集的,Yelp
是一个著名的商业推荐平台,涵盖餐厅、酒吧、美容院等。我们遵循《S3-Rec: Self-Supervised Learning for Sequential Recommendation with Mutual Information Maximization》
中的设置,使用 2019
年 1
月 1
日之后的交易记录。
最后一个数据集是 MovieLens 1M
(ML-1M
)数据集,它被广泛用于评估推荐算法。
对于数据集预处理,我们遵循 《Self-attentive sequential recommendation》
、《S3-Rec: Self-Supervised Learning for Sequential Recommendation with Mutual Information Maximization》
中的常见做法。如果存在数值评分或评论则 label
为 1
,否则 label
为 0
。然后,对于每个用户,我们丢弃重复的交互,并按交互 time step
的先后顺序对他们的 historical items
进行排序,以获得用户交互序列。值得一提的是,为了确保每个 user/item
有足够的交互,我们遵循 《Factorizing Personalized Markov Chains for Next-Basket Recommendation》
、《S3-Rec: Self-Supervised Learning for Sequential Recommendation with Mutual Information Maximization》
中的预处理过程,只保留 "5-core"
数据集。我们迭代地丢弃交互记录少于 5
条的用户和 items
。处理后的数据统计信息总结在 Table 1
中。
评估:我们采用留一法(leave-one-out
)来评估每种方法的性能,这种方法在许多相关工作中被广泛采用 。对于每个用户,我们将最后交互的 item
作为测试数据,并将倒数第二个交互的 item
作为验证数据。其余 items
用于训练。
为了加快指标的计算,许多先前的工作使用 sampled metrics
,只对 relevant items
和一小部分随机采样的 items
进行排名。然而,正如 《On Sampled Metrics for Item Recommendation》
所指出的,这种采样操作可能导致与非采样版本不一致 。因此,我们在整个 item
集合上评估每种方法,不进行采样,并根据相似性分数对用户未交互过的所有 items
进行排名。
我们采用命中率(Hit Ratio: HR
)和归一化折损累计增益(Normalized Discounted Cumulative Gain: NDCG
)来评估每种方法的性能,这两个指标在相关工作中被广泛使用 。HR
关注 positive item
是否存在,而 NDCG
进一步考虑了排名位置信息。在这项工作中,我们报告 HR
和 NDCG
。
基线方法:为了验证我们方法的有效性,我们将其与以下代表性的基线方法进行比较:
Pop
:这是一种非个性化方法,为每个用户推荐相同的 items
。这些 items
是整个 item set
中交互次数最多的最受欢迎的 items
。
BPR-MF
:它是代表性的非序列基线方法之一。它利用矩阵分解,结合 Bayesian Personalized Ranking: BPR
损失函数对用户和 items
进行建模。
NCF
:它采用神经网络架构对 non-sequential user-item interactions
进行建模,而不是像矩阵分解那样使用内积。
GRU4Rec+
:它应用 GRU
模块对用户序列进行建模,用于 session-based recommendation
,并使用 ranking loss
,通过新的损失函数和采样策略进行了改进。
SASRec
:它是解决序列推荐任务的 SOTA
基线方法之一。它通过自注意力模块对用户序列进行建模,以捕获用户的动态兴趣。
GC-SAN
:它将 GNN
与自注意力机制相结合,以捕获每个 interaction session
中 neighbor items
的局部转移和长距离转移。
S3−Rec_MIP
:它也利用自监督学习方法来导出固有的数据相关性。然而,它主要关注如何融合上下文数据和序列数据。在本节中,为了公平起见,我们仅比较 S3−Rec
中的 mask item prediction: MIP
。
实现细节:
我们使用 《Make It a Chorus: Knowledge and Time-Aware Item Modeling for Sequential Recom- mendation》
提供的在 PyTorch
中 BPR-MF
、NCF
和 GRU4Rec
的公开实现 。对于其他方法,我们也使用 PyTorch
进行实现。
对于所有具有可学习 embedding layers
的模型,我们按照先前的工作 (SASRec, BERT4Rec, S3Rec
的论文)将 embedding
维度大小 64
。
对于每个基线方法,所有其他超参数都按照其论文中的原始设置建议进行设置,并且我们报告每个基线方法在其最优设置下的性能。
对于我们的 CL4SRec
方法:
我们使用截断正态分布(truncated normal distribution
)在
我们使用 Adam
优化器 以 0.001
的学习率、batch size
设置为 256
。
我们根据验证集上的性能使用 early stopping
技术训练模型。
为了研究每两种增强方法组合的效果,我们每次固定 CL4SRec
中使用的增强方法。并且我们测试 items
的 crop/mask/reorder
的比例从 0.1
到 0.9
。
对于 CL4SRec
的 user representation model
,我们堆叠 head
数量设置为
为了进行公平比较,按照 S3-Rec
论文中的设置,对于 ML-1M
数据集,最大序列长度 20
,对于其他数据集设置为
为了回答 RQ1
,我们将 CL4SRec
的性能与上述基线方法进行比较。Table 2
总结了所有模型在四个数据集上的最佳结果。请注意,improvement
列是 CL4SRec
相对于第二好的基线方法的性能提升。由于空间限制,Table 2
中报告的 CL4SRec
结果是使用三种增强方法之一的最佳结果。基于实验结果,我们可以观察到:
非个性化方法 Pop
在所有数据集上表现最差,因为它忽略了用户历史交互中隐藏的 unique
偏好。
考虑所有数据集上的其他基线方法,我们发现序列方法(例如 GRU4Rec+
和 SASRec
)始终优于非序列方法(例如 BPR-MF
和 NCF
)。与那些非序列方法相比,这些序列方法利用了用户历史交互的序列信息,这有助于提高推荐系统的性能。
在所有序列模型中,SASRec
在所有数据集上都达到了 SOTA
的性能,这表明强大的自注意力机制适合捕获序列模式(sequence patterns
)。
对于 GC-SAN
,在我们的实验设置中,它没有取得明显的改进,甚至有时表现比 SASRec
更差。一个可能的原因是在这些经过预处理的数据集里,每个用户序列中不存在环,并且每个交互的 degree
小于 2
。GNN
无法在这种序列中捕获到有用的辅助信息,反而增加了 optimization
的负担。
对于 S3−Rec_MIP
,它有时也比 SASRec
表现更差。在没有辅助上下文信息的情况下,它在完全相同的数据集上对 base
模型进行预训练和微调,这可能会导致灾难性遗忘 。
最后,根据结果显然可以看出,我们提出的 CL4SRec
在所有数据集上的所有评估指标方面都优于所有基线方法。它在稀疏数据集(例如 Sports
和 Yelp
)和密集数据集(例如 ML-1m
)上都取得了改进,尤其是在稀疏数据集上。与 SOTA
的基线方法相比,CL4SRec
在 HR@5
上平均提高了 11.02%
,在 HR@10
上提高了 9.69%
,在 NDCG@5
上提高了 5.52%
,在 NDCG@10
上提高了 8.50%
。
这些实验验证了我们的 CL4SRec
方法在序列推荐任务中的有效性。与仍然关注 sequence prediction issue
的 S3−Rec_MIP
不同,我们采用对比学习框架引入其他信息,这增强了 user representation model
,以捕获更准确的 user representations
。
为了回答 RQ2
,我们分析不同的增强算子及其比例如何影响性能。为了研究每个增强算子的效果,我们每次在对比学习任务中仅使用一种操作,并使用相同的比例参数。请注意,增强算子中较高的 Sport
和 Yelp
数据集的实验中报告 HR@20
和 NDCG@20
作为指标。
Figure 4
展示了不同增强方法在比例参数 0.1
变化到 0.9
时的性能。随着比例参数的变化,我们观察到不同增强方法的一些趋势。
首先,配备任何一种增强方法的 CL4SRec
在大多数比例选择下,在所有数据集上的性能都能超过 SASRec
基线。这表明了所提出的增强方法的有效性,因为它们都引入了隐藏在原始数据中的辅助自监督信号。并且我们观察到,这三种增强算子中没有一种总是能比其他增强算子取得最佳性能。例如,Mask
操作在 Sport
数据集上取得了最佳结果,但 Crop
操作在 Yelp
数据集上取得了最佳结果。这表明不同的增强方法适用于不同的数据集,因为它们关注原始数据的不同方面。
其次,我们观察不同增强方法的比例如何影响推荐性能。考虑 item crop
和 item mask
算子,一个普遍的模式是性能在特定比例下达到峰值,然后如果我们增加或减少该比例,性能会下降。例如, item mask
算子在 Yelp
数据集上比例为 0.5
时达到峰值。这可以解释为:
当比例 0
时, item mask
算子不起作用。
当 1.0
时,整个用户序列仅由 [mask] item
组成,从而损害了性能。
item crop
算子的表现与 item mask
算子类似,只是当 item crop
算子不起作用,当
为了回答 RQ3
,我们研究我们提出的 CL4SRec
的对比学习损失与 sequential prediction
损失之间的相互作用。具体来说,我们探索不同的 RQ2
的结果,我们为每个数据集选择最佳的增强方法及其最佳比例,并保持其他参数固定,以进行公平比较。
Figure 5
展示了评估结果。请注意,
当
然而,在合适的 CL4SRec
在所有情况下都始终优于 SASRec
。
这一观察结果意味着,当对比学习损失主导学习过程时,可能会降低序列预测任务的性能。我们将在未来的工作中仔细分析这种影响。
我们对 CL4SRec
进行消融研究,以展示增强方法和对比学习损失对其性能的影响。为了验证每个组件的有效性,我们在 SASRec
的变体 SASRec_aug
上进行实验,该变体在训练过程中使用我们提出的增强方法来增强行为序列。
Table 3
展示了 SASRec
、SASRec_aug
和 CL4SRec
的结果。我们在这个表中观察到一些趋势。
一方面,我们发现 SASRec_aug
在几乎所有增强方法下,在所有数据集上的性能都优于 SASRec
。这表明我们的增强方法通过添加随机噪声对 base
模型非常有用。
另一方面,使用我们提出的对比学习损失,CL4SRec
在所有数据集上,在所有增强方法下都始终优于 SASRec_aug
。这验证了我们的对比学习组件在提供显著自监督信号方面的有效性,如上文所述。
如前所述,与其他 SOTA
的基线方法相比,CL4SRec
可以在 user behavior sequence level
推断出更好的 representations
。在本小节中,我们试图验证 CL4SRec
是否真的能解决这个问题。我们利用 Yelp
数据集提供的好友关系来探索,如果用户是好友,他们在潜在空间中是否更接近。我们使用余弦函数来衡量相似度。请注意,我们在训练过程中不使用这类信息。
Figure 6
展示了评估结果。SASRec
和 CL4SRec
的平均余弦相似度分别为 0.5198
和 0.6100
。我们可以观察到,CL4SRec
推断出的相似用户的 representations
在潜在空间中比 SASRec
更接近。这表明 CL4Rec
确实可以捕获到用户交互序列中隐藏的偏好,从而在 user behavior sequence level
获得更好的 representations
。