Contrastive Learning for Representation Degeneration Problem in Sequential Recommendation

文章原文:Contrastive Learning for Representation Degeneration Problem in Sequential Recommendation

背景介绍

Transformer与BERT等模型的发展促进了序列推荐。
但是,这些模型生成的项目嵌入的分布倾向于退化为各向异性的形状,这会导致嵌入之间的语义相似度较高。即项目嵌入分布退化为一个窄锥,导致语义的不加区分的表示。

该图表示亚马逊服装数据集的项目嵌入矩阵由SVD投影到2D,颜色表示数据集中项目的频率。
各向异性表示词嵌入在向量空间中占据了一个狭窄的圆锥体。实际是说:各向异性在空间中向量分布与方向有关联,并不是均质的。
很显然下图中右侧出现了表征退化(Representation Degeneration)。

各向异性会导致学习到的向量余弦相似度会很高,也就是上文说的语义相似度较高,并不是很好的表示。对于一个好的向量,我们需要它满足两个性质:Alignment与Uniformity。

Alignment:需要正样本对在超球面上距离较近,即让相同的样本的特征尽可能相似。
Uniformity:需要特征在超球面中分布均匀,使得特征的分布保留尽可能多的信息。
接下来从问题引出本文章做出的贡献:
1.表征退化
针对表征退化问题,本文提出了一种新的DuoRec模型,该模型用一种对比正则化方法来增强序列表示分布的均匀性。由于传统的推荐任务是通过点积度量序列表示和项目嵌入在同一空间内的相似性来执行的,因此对比正则化可以隐式地影响项目嵌入的分布更加均匀。
2.现有的对比学习方法主要依赖于通过项裁剪、掩码或重排序等方式对用户项交互序列进行数据级的增强,难以提供语义一致的增强样本
在DuoRec中,提出了基于Dropout的模型级增强,以实现更好的语义保留。并在此基础上,提出了一种新的采样策略,即选取具有相同目标项的序列作为困难正样本。

理论实现

损失函数


首先,我们通过观察模型的损失函数可以看出:这是一个双塔模型。对于Rec的loss不多赘述,模型做NIP(Next-Item Prediction)任务与上一篇论文的方法基本一致。接下来只介绍Regularization的部分。

上图公式即为对比正则化的损失。
本模型的对比正则化由无监督对比和有监督对比组成。从而引出我们接下来的步骤:
对于无监督对比,我们需要Augmentation。
对于有监督对比,我们需要Positive Sampling与Negative Sampling。

无监督增强

由于数据增强操作(item cropping, masking and reordering)不能提供高语义相似度的保证,增强序列并不一定与原序列很相似。所以本文采用了Dropout掩码进行模型级增强。
首先对embedding层输出 做Dropout掩码得到
之后再通过transformer中的Dropout操作完成Augmentation。

正采样

如果两个序列预测目标项相同,那么表明两个序列相似。
对于输入序列,从数据集中寻找具有目标项相同的序列,从这些序列随机抽取一个语义相似的序列S,经过Augmentation得到表征。

负采样

设一个序列经过Augmentation后为:

对于每一个样本对,如

定义其余样本都是这俩样本对的负样本,则该样本对负样本集合为:

需要注意的是:如果负样本集合中有序列对应的目标商品与正样本一样,则将其从负样本集合中去除。

再看损失函数


蓝框部分表示拉远增强样本与负样本的距离,即表示无监督对比;红框部分表示拉远正样本与负样本的距离,即表示有监督对比。

实验对比

本模型的结果表现如下,提升效果不错。

总结

本文研究对象是序列推荐中项目嵌入矩阵的表征退化问题。并利用双塔模型与监督对比结合无监督对比的方式来解决该问题。作者锐利地关注了向量的两个性质,成功地在模型上取得了进步。

posted @ 2022-10-11 10:51  wushucan  阅读(363)  评论(0)    收藏  举报