《Contrastive Learning for Representation Degeneration Problem in Sequential Recommendation》
近年来,Transformer
和 BERT
等深度序列学习模型的发展显著推动了序列推荐技术的进步。然而,研究发现,这些模型生成的 item embeddings
分布往往会退化为各向异性 (anisotropic
),这可能导致 embeddings
之间的语义相似度偏高。本文首先对这种表征退化(representation degeneration
)问题进行了实证和理论研究,并在此基础上提出了一种新的推荐模型 DuoRec
,以优化 item embeddings
分布。具体而言,基于对比学习(contrastive learning
)的均匀性特性,我们为 DuoRec
设计了对比正则化项(contrastive regularization
),以重塑 sequence representations
的分布。鉴于推荐任务通常通过在同一空间中使用点积来衡量 sequence representations
与 item embeddings
之间的相似度,该正则化项可以间接地使 item embedding
分布更加均匀。现有的对比学习方法主要依赖于对 user-item interaction sequences
进行数据增强,如 item cropping, masking, or reordering
,但这些方法很难提供语义一致的增强样本。在 DuoRec
中,我们提出了一种基于 Dropout
的 model-level
增强方法,以更好地保留语义。此外,我们还开发了一种新的采样策略,将具有相同 target item
的序列选为 hard
正样本。在五个数据集上进行的大量实验表明,与基线方法相比,所提出的 DuoRec
模型性能更优。对学到的 represention
进行可视化的结果证实,DuoRec
可以在很大程度上缓解 representation degeneration
问题。
传统推荐系统通常依据用户历史记录来预测其偏好,却未考虑时间因素 。然而,用户偏好往往会随时间发生变化。近期的序列推荐方法利用用户交互的序列模式(sequential patterns
)来捕获动态的偏好。
在研究这些序列模型时,我们发现 item embeddings
存在表征退化(representation degeneration
)问题,其分布会退化为一个狭窄的锥形,导致语义模糊的 representation
。如 Figure 1(a)
所示,由 SASRec
生成的 item embeddings
在 X
轴方向上趋于正值,而在 Y
轴方向上分布狭窄。在这种情况下,由于几何特性,大多数 items
之间呈现正相关。这种分布通常是各向异性的(anisotropic
),如 Figure 1(c)
中蓝色曲线所示,item embedding matrix
的奇异值(singular values
)迅速减小。这表明 embedding matrix
存在主导维度,而其他维度无效,近似于极低的秩(extreme low rank
)。相比之下,本文提出的 DuoRec
的 item embeddings
在原点周围分布更为均匀,奇异值下降更为缓慢,如 Figure 1(b)
、以及 Figure 1(c)
中的橙色曲线所示。
本文首先通过理论分析探究了 representation degeneration
的原因,并在此基础上提出了一种新的序列推荐模型 DuoRec
,以改善 item embeddings
的分布。具体来说,受对比学习的均匀性的启发,我们设计了对比正则化项(contrastive regularization
),以增强 sequence representation
分布的均匀性。由于推荐通常是通过在同一空间中用点积测量 sequence representation
和 item embeddings
之间的相似性来实现的,对比正则化可以间接地使 item embeddings
分布更均匀。现有的对比学习方法通常使用 data-level augmentation
来生成正样本,如 item cropping, masking, and reordering
,但这可能会导致样本语义不一致。考虑到输入数据本身通常被嵌入到一个 dense vector
中,我们提出了一种 model-level augmentation
方法,在 sequence representation learning
中应用两组不同的 Dropout masks
。此外,由于存在大量语义相似的序列,它们代表相似的用户偏好,我们开发了一种额外的 positive sampling
策略,生成更具挑战性和信息性的正样本,即把具有相同 target item
的序列视为语义相似的序列。
本文的主要贡献总结如下:
通过理论和实证分析,识别并研究了序列推荐模型中的 representation degeneration
问题。
为解决 representation degeneration
问题,提出了一种新的模型 DuoRec
,使用 contrastive objective
作为 sequence representations
的正则化。
设计了一种基于 Dropout
的 model-level augmentation
用于用户序列,并开发了以 target item
为监督信号的 positive sampling
策略。
在五个基准数据集上进行了大量实验,结果显示了 DuoRec
模型的先进性能,以及 contrastive regularization
在序列推荐中的有效性。
符号和任务定义:在序列推荐中,问题设定是利用历史交互来推断用户偏好并推荐 next item
。存在一个包含所有 items
的 item
集 items
的数量。用户的历史交互被构建为一个有序列表 time step
,同时也是序列 time step
next item
,即
Representation Degeneration
问题:为了在序列推荐中执行 next item prediction
任务,模型会将交互序列编码为一个固定长度的向量,以便在 item set
中进行检索。
给定 items
的一个序列 time step
context
),包含所有之前的交互
其中:item
的 embeddings
向量;GRU
和 Transformer
等序列模型生成的。
当使用交叉熵损失来优化上述参数化的模型时,目标函数可以抽象为:
根据文献 《On the Sentence Embeddings from Pre-trained Language Models》
、《Breaking the Softmax Bottleneck: A High-Rank RNN Language Model》
,在一个训练良好的序列模型中,点积项可以近似分解为:
其中:
pointwise mutual information: PMI
)。
PMI
捕获了变量之间的共现统计信息(co-occurrence statistics
),通常被视为 tokens
和 context
之间的语义。
为了用损失函数 item embedding
这个梯度意味着,对于数据集中出现频率较低的 items
,其梯度方向几乎由 context vector
决定。这也在 Figure 1(a)
中有所体现,代表低频 items
的黄色点在一个狭窄的空间内朝着相似的方向移动。这是因为大多数时候,这些 item embeddings
在训练时,更多是作为 non-target items
,按照 target items
,通过编码器的梯度流动进行训练。这种 embeddings
分布被称为各向异性空间(anisotropic space
)。
正如公式 sequence embedding
和 item embedding
之间的语义信息是通过基于 co-occurrence
的点积来捕获的。然而,根据公式 sequence embeddings
在衡量低频 items
之间的相似性时表现出明显差异是不现实的。一般来说,推荐系统的输出层是 sequence representation
和 item embeddings
之间的点积,这将 sequences representations
和 items representations
置于相同的潜在空间中。在接下来的部分,我们将引入对比正则化(contrastive regularization
),重新调整 sequence representations
在原点周围的分布,从而间接地改善 item embeddings
的分布。
噪声对比估计(Noise Contrastive Estimation
):对比学习是一种训练方法,它使正样本 pairs
更接近,负样本pairs
更远离。具体来说,噪声对比估计(Noise Contrastive Estimation: NCE
)目标通常用于训练编码器
其中:
positive pair
。
对齐和均匀性:根据公式 NCE loss
直观上是在进行拉近和推远的操作。在向量是 normalized
的假设下,数学上正式定义 representations
的对齐(alignment
)和均匀性(uniformity
):
其中:pair
的分布,
对于公式 positive pair
分布 representations
接近。
对于公式 representations
均匀分布。
在序列推荐中,主要思路是聚合历史交互以描绘用户偏好。与 SASRec
类似,DuoRec
的编码模块是一个 Transformer
。为了利用 Transformer
的 encoding
能力,首先将 items
转换为 embeddings
向量,然后应用多头自注意力模块计算 user representation
。
Embedding Layer
:在 DuoRec
中,有一个 embedding matrix
embedding
维度。对于输入序列 embedding representations
为 embedding
向量。
为了保留序列的时间顺序,我们构建了一个 positional encoding matrix
item embedding
和 positional encoding
相加,作为 Transformer
在 time step
interaction
的输入向量:
其中:
time step
interaction
的完整输入向量,
time step
positional encoding
。
自注意力模块:获得输入序列后,Transformer
通过多头自注意力机制计算每个 item
的 updated representations
。假设 hidden representation
,作为 Transformer
编码器(Trm
)的输入,序列的编码过程可以定义为:
其中 hidden vector
user representation
。
next item prediction
任务被构建为对整个 item set
的分类任务。给定 sequence representation
item embedding matrix
将 ground truth item
的索引转换为 one-hot vector
为了缓解 representation degeneration
问题,通过利用无监督和有监督的对比样本,我们开发了一种对 contrastive regularization
方法。
无监督增强:DuoRec
中的无监督对比增强(unsupervised contrastive augmentation
)旨在以无监督的方式为单个序列提供语义有意义的增强。在之前的方法,如 CL4SRec
中,增强方法包括item cropping, masking, and reordering
,类似的技术也应用于自然语言处理,如 word deletion, reordering, and substitution
。尽管这些方法在一定程度上有助于提高相应模型的性能,但不能保证增强后的样本具有高的语义相似性。由于 data-level
增强并不完全适合离散序列,本文提出了一种 model-level
增强方法。在计算 sequence vector
时,embedding layer
和 Transformer encoder
中都有 Dropout
模块。对输入序列进行两次前向传递,使用不同的 Dropout masks
,会生成两个语义相似但特征不同的向量。因此,我们为输入序列 Dropout mask
:
首先对 Transformer encoder
的 input embedding
dropout
操作,得到
然后,将增强后的 input sequence embedding
馈入到具有相同权重但不同 Dropout mask
的 Transformer encoder
中:
其中:sequence representation
。
有监督的正采样:DuoRec
中的有监督对比增强(supervised contrastive augmentation
)旨在将语义相似序列之间的语义信息纳入对比正则化。需要语义正样本的原因是,如果只应用无监督对比学习,原本语义相似的样本会被归类为负样本。因此,最重要的是确定哪些样本在语义上相似。
语义相似性:在序列推荐中,目标是预测用户偏好。如果两个序列代表相同的用户偏好,自然可以推断这两个序列包含相同的语义。因此,给定两个不同的用户序列 item
,那么在 DuoRec
中,
正样本:对于输入序列 target item
的序列。从这些序列中随机采样一个语义相似的序列 input embedding
其中: sequence representation
;
负采样:为了有效地为增强后的样本 pair
构建负样本,同一 training batch
中的所有其他 augmented samples
都被视为负样本。假设 training batch
为 batch size
为 hidden vectors
,即 batch
中样本的索引和增强情况。因此,对于 batch
中的每一个 positive pair
,有 negative pairs
作为负样本集合 sequence representations
的 augmented pair
target item
的序列,这些序列也将从
正则化目标:与公式 DuoRec
中 batch
contrastive regularization
定义为:
该式计算两次,分别对应于 unsupervised augmented representation
和 supervised augmented representation
。
这两部分的核心区别在与分母的第二部分:
第一项:分母第二部分为
unsupervised augmented representation
与其他负样本之间的距离。第二项:分母第二部分为
supervised augmented representation
与其他负样本之间的距离。为什么要经过
dropout
而不是original representation
,读者猜测是为了降低噪音对抗过拟合。可以做个实验,看看移除dropout
之后的效果。
因此,带有 DuoRec
的总体目标为:
这里的关键在与对比学习的
pair
如何设计。这里的positive pair
来自于相同的target item
的序列,而不是给定序列的不同view
。
本节将描述 DuoRec
的对比正则化的特性以及与其他方法的联系。
解决 Representation Degeneration
问题:为探究对比正则化如何解决 representation degeneration
问题,需要分析对比正则化
在 alignment
项中,保持来自同一输入序列两次增强的 positive pairs
的 representations
之间的对齐是有意义的。
而在 uniformity
项中,目标是使序列的 representations
均匀分布。
semantic positive pairs
之间的对齐将语义相似序列的 representations
拉到一起,而均匀项则使所有序列的 representations
均匀分布。由于推荐的主要学习目标是通过 sequence representation
和 item embeddings
之间的点积来实现的,因此对 sequence representation
的分布进行正则化,进而影响 item embeddings
的分布是有意义的。
在 representation degeneration
问题中,锥形分布的一个主要缺陷是 embeddings
存在主导轴。基于均匀性,这种情况将得到缓解,因为 sequence representation
将均匀分布,并通过公式 item embeddings
的分布。
对于低频词倾向于远离原点的另一个缺陷,softmax loss
进行训练的。通过对比正则化,这些低频词比以前更频繁地参与训练,因为会有更多的正采样和负采样,它们是通过编码器的梯度流(gradient flow
)进行训练,而不是直接在 embeddings
上训练。
联系:最近的方法主要使用对比目标进行正则化。
例如,CL4SRec
在 data-level
通过 cropping, masking, and reordering
来增强输入序列,这直接遵循了计算机视觉中对比学习的范式,在输入空间中增强样本。然而,离散序列难以确定语义内容,更难以提供语义一致的增强。
如果对 DuoRec
的无监督 Dropout augmentation
操作两次,并仅将这些无监督增强的样本用于对比正则化,在后续实验中,它就变成了无监督对比学习(Unsupervised Contrastive Learning: UCL
)变体。由于 UCL
的增强避免了 data-level
增强(data-level
无法保证增强后的样本仍然包含相似的语义),因此 UCL
的表现可以始终优于 CL4SRec
。
类似地,如果仅使用 DuoRec
的有监督增强,那么它就变成了有监督对比学习(Supervised Contrastive Learning: SCL
)变体,这可以提供更 harder
的训练目标,并且 SCL
因为使用了更合适的样本,所以性能优于 UCL
。最近的自然语言处理研究(《SimCSE: Simple Contrastive Learning of Sentence Embeddings》
)也观察到了这一点。
在实验中,我们将回答以下研究问题(research question: RQ
):
RQ1
:与SOTA
的方法相比,DuoRec
的性能如何?
RQ2
:与现有的对比训练范式相比,DuoRec
的性能如何?
RQ3
:对比正则化如何帮助训练?
RQ4
:DuoRec
模型中超参数的敏感性如何?
数据集:实验在五个基准数据集上进行,预处理后的数据集统计信息如 Table 1
所示。
Amazon Beauty, Clothing and Sports
:遵循基线方法,我们在实验中选择了广泛使用的 Amazon
数据集的三个子类别。
MovieLens-1M
:遵循文献 《BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer》
,使用这个流行的电影推荐数据集,记为 ML-1M
。
Yelp
:这是一个广泛用于商业推荐的数据集。与文献 《S3-Rec: Self-Supervised Learning for Sequential Recommendation with Mutual Information Maximization》
类似,我们使用 2019
年 1
月1
日之后的交易记录进行实验。
按照文献 SASRec, BERT4Rec, CL4Rec, S3-Rec
进行预处理,所有交互都被视为隐式反馈。出现次数少于 5
次的用户或 items
被移除。序列的最大长度设置为 50
。
评估指标:为进行整体评估,我们采用top-K Hit Ratio: HR@K
和 top-K Normalized Discounted Cumulative Gain: NDCG@K
作为评估指标,{5, 10}
。我们在整个 item set
上评估排名结果,以确保公平比较。
基线方法:使用以下方法进行比较:
BPR-MF
:是第一个使用 BPR loss
来训练矩阵分解模型的方法。
GRU4Rec
:应用 GRU
对用户序列进行建模,是第一个用于序列推荐的 RNN
模型。
Caser
:是一种基于卷积神经网络的方法,通过应用水平卷积和垂直卷积操作来捕获高阶模式,用于序列推荐。
SASRec
:是一种单向自注意力模型,是序列推荐中的强大基线方法。
BERT4Rec
:使用类似于自然语言处理中掩码语言模型的 masked item training
方案,骨干是双向自注意力机制。
S3Rec_MIP
:也应用了 masked contrastive pre-training
,这里使用 Mask Item Prediction: MIP
的变体。
CL4SRec
:使用 item cropping, masking, and reordering
作为对比学习的增强手段,是序列推荐中最新且强大的基线方法。
模型实现:
DuoRec
中 embedding size
设置为 64
,所有线性映射函数的hidden size
也是 64
。
Transformer
中的层数和头数都设置为 2
。
embedding
矩阵和 Transformer
模块上的 Dropout rate
从 {0.1, 0.2, 0.3, 0.4, 0.5}
中选择。
训练 batch size
设置为 256
。我们使用 Adam
优化器,学习率为 0.001
。
{0.1, 0.2, 0.3, 0.4, 0.5}
中选择。
在本实验中,我们评估 DuoRec
与基线方法相比的整体性能,结果如 Table 2
所示。可以看到:
首先,可以观察到非序列模型 BPR-MF
的性能很难与其他序列方法相媲美。
进入深度学习时代,第一个代表性方法是基于 GRU
的 GRU4Rec
,它始终优于非序列的 BPR-MF
。可以得出结论,结合序列信息可以提升性能。同样,Caser
使用卷积模块来聚合 equential tokens
,其性能通常与 GRU4Rec
相似。
最近,注意力机制成为了最强的序列编码器。
SASRec
是第一个将单向注意力应用于序列编码的方法,与之前基于深度学习的模型相比,SASRec
可以大幅提升性能,这得益于其更具表达能力的序列编码器。
最近的方法通常继承基于注意力的编码器,并引入额外的目标。例如,BERT4Rec
应用 masked item prediction
目标,通过填充 masks
来增强模型对语义的理解。尽管这样的任务可以为模型引入有意义的信号,但由于 masked item prediction
与推荐任务的契合度不高,其性能并不稳定。
类似的情况也出现在 S3Rec_MIP
上,它也依赖 masked item prediction
作为预训练目标。微调阶段给出的预测更准确。
对于最新的基于对比学习的方法 CL4SRec
,它比其他基线方法有一致的性能提升。其额外目标与普通对比学习规范相同,即对同一序列设置两种不同的视图。
对于 DuoRec
,它可以大幅超越所有基线方法。通过对 sequence representation
和 item representation
的分布进行正则化,结合无监督的和有监督的正样本可以提升整体性能。
在本实验中,评估无监督增强和有监督正采样的有效性。实验变体包括:
CL4SRec
:使用 cropping, masking, and reordering
作为增强手段来计算 NCE
。
UCL
:NCE
使用无监督增强进行优化。
同一个序列,经过两次
model-level dropout augmentation
的视图作为positive pair
。
SCL
:NCE
使用有监督正采样进行优化。
具有相同
target item
的不同序列,作为positive pair
。
UCL+SCL
:结合 UCL
和 SCL
损失进行训练。
结果如 Figure 2
所示。从结果中可以明显看出:
与基线 SASRec
相比,添加对比目标通常可以提升推荐性能。
同时作为无监督对比方法,UCL
与 CL4SRec
相比, UCL
的性能更优。可以得出结论,model-level Dropout augmentation
比 data-level augmentation
能提供语义更一致的无监督样本。
此外,SCL
依赖 target item
来采样语义一致的有监督样本,与无监督方法相比,性能有显著提升。
有趣的是,直接将 UCL
和 SCL
损失相加会损害性能,这可能是由于两种对比损失的对齐方式不兼容。
那为什么
DuoRec
没有损害性能呢?解释不通。
对于 DuoRec
,同时利用无监督的和有监督的正样本,与其他所有方法相比,性能最佳。
为评估 contrastive regularization
对训练的影响,我们将展示 learned embedding matrix
的可视化结果、以及训练损失,以帮助理解对比学习如何提升性能。可视化基于奇异值分解(SVD
),它将 embedding
矩阵投影到二维空间并给出归一化的奇异值。结果如 Figure 3
和 Figure 4
所示。训练损失的可视化通过公式 Figure 5
所示。
Item Embedding
的可视化:
如前所述,SASRec
在训练时对 embedding
矩阵没有约束,导致在潜在空间中形成狭窄的锥形,如 Figure 3(a)
和 Figure 4(a)
所示,其奇异值急剧下降到非常小的值。
虽然 CL4SRec
有额外的 data-level
增强的对比损失,在 embedding
分布的 magnitude
上有所改善,但低频 items
仍然位于原点的同一侧。CL4SRec
的奇异值下降速度比 SASRec
慢,这可能是因为 data-level
增强无法一致地提供合理的序列。
对于 UCL
变体,它生成的 embedding
分布与 CL4SRec
类似,因为它们都基于无监督对比学习。
而对于仅使用有监督对比学习的 SCL
,可以明显看出 embedding
分布更加平衡,高频 items
和低频 items
都分布在原点周围,其奇异值明显高于无监督方法。可以得出结论,有监督正样本在语义上与输入序列更一致。
当同时添加无监督的和有监督的正样本时,UCL+SCL
在 Clothing
数据集上的情况与纯 SCL
类似,但在 Sports
数据集上有所不同。这种差异是由于无监督对比损伤和有监督对比损失的组合可能会使模型朝着不同的训练方向发展。
对于 DuoRec
,embedding
以平衡的方式分布,奇异值下降缓慢。无监督对比学习和有监督对比学习的合理结合改善了 item embedding
的分布。
对齐和均匀性:为研究对比学习在训练过程中的作用,这里展示了 alignment loss term
和 uniformity loss term
(两者越小越好)。uniformity
是在原始 output sequence representation
内计算的,对于每个方法,样本范围相同。需要注意的是,由于不同方法对正样本的选择不同,alignment term
仅作为趋势指标,不具有可比较的实际意义。
从 Figure 5(a)
和 Figure 5(b)
可以明显看出:
随着 DuoRec
训练的进行,uniformity loss
下降而 HR@5
增加,并且 uniformity loss
明显低于 CL4SRec
,这反映出 DuoRec
的 sequence representations
分布更加均匀。
对于 CL4SRec
,训练过程中uniformity loss
增加,这表明其分布空间比 DuoRec
更差。
尽管两种方法在训练过程中 alignment loss
都略有增加,但 DuoRec
中 uniformity loss
的下降实际上提升了推荐性能。
在本实验中,研究了增强操作中的 Dropout rate
、以及 Figure 6
和 Figure 7
所示。
Dropout rate
主要影响无监督增强,它假设:在相同权重下使用不同的 Dropout masks
可以生成语义相似的样本。根据 Figure 6
:
对于 ML-1M
数据集,增加 Dropout rate
会导致性能下降,这可能是因为该数据集的密度较高,训练信号较多。当使用较高的 Dropout rate
使得增强的输入与原始输入的差异过大时,模型会被引导到不准确的训练方向。
而对于 Beauty, Clothing, Sports and Yelp
数据集,不同 Dropout ratios
的效果不太显著。
关于超参数 Figure 7
中可以看出,contrastive regularization
与推荐任务很好地一致。 。