一、背景介绍
下一个购物篮推荐旨在通过考虑用户之前购买的一系列购物篮来推断用户将在下次访问时购买的一组商品。现有的解决方案主要侧重于对其历史交互的顺序建模。然而,由于用户行为的多样性和随机性,并非所有购物篮都有助于识别用户的下一步行为。有必要对购物篮去噪并提取可信的相关Item以提高推荐性能。不幸的是,这个维度在当前的文献中通常被忽视。
为此,在本文中,我们提出了一种对比学习模型(命名为 CLEA)来自动提取与目标项目相关的项目以进行下一个购物篮推荐。具体来说,在 Gumbel Softmax 的支持下,我们设计了一个去噪生成器来自适应地识别历史篮子中的每个Item是否与目标Item相关。通过这个过程,我们可以为每个用户的每个篮子获得一个正子篮子和一个负子篮子。
然后,我们通过基于 GRU 的上下文编码器基于其组成Item导出每个子篮子的表示,该编码器表达与目标Item相关的偏好或不相关的噪声。之后,设计了一个新颖的两阶段引导对比学习过程,以同时指导进行相关性学习,而无需任何Item的相关性监督。
据我们所知,这是第一项以端到端的方式对购物篮进行Item级降噪以进行下一个购物篮推荐的工作。在具有不同特征的四个真实世界数据集上进行了广泛的实验。结果表明,我们提出的 CLEA 比现有的最先进的替代方案实现了显着更好的推荐性能。
此外,进一步的分析还表明,CLEA 可以成功地发现与推荐决策相关的真实Item。
二、CLEA
CLEA网络结构框架如图:
网络框架图
**整个框架分为三个部分:**
1.Denoising Generator 去噪生成器
2. Context Encoder 上下文编码器
3. Contrastive Learning Process (anchor-based marginal loss)
先介绍图中一些基础符号:
蓝色的是一组篮子;里面是item1,2,4…ic是目标item。
2.1 去噪生成器
把每个篮子显式分成了两个正负不相交的子篮子,对应着和item相关的项目和无关的项目。 怎么实现的也比较简单,当前item和目标item的one-hot representatioin 【分别对应公示(2)的xj,xc】concat起来,MLP,gumbel softmax预测【这里用gumbel softmax处理是因为前面用的one-hot离散特征,可以实现反向传播】,以0.5为阈值,大于0.5就是与目标item相关的,小于0.5是无关的。 公式如下:
2.2 上下文编码
上一步每个篮子不是得到了两个子篮子吗,然后用GRU对分出来的序列进行编码,最后一层的隐状态作为特征的表达,分别表示与目标项相关的偏好和无关的噪声。vij是item的embedding【注意跟xj不同,xj是one-hot,这里是embedding,怎么获取的??】
2.3 对比学习
作者用这postive隐状态进行预测,并且刚开始用这两个特征构建了loss,公式如下:
但是这个loss只计算模型基于训练集估计用户偏好的准确性,在训练中表现的性能不稳定,所以采用对比学习来进行,改进后loss如下:
从这个loss来看,希望pos篮子学习到的偏好估计是好于anchor【anchor就是用原始分被拆分的篮子序列进行GRU编码得到】的,而neg篮子学习到的偏好是低于anchor的。
2.4 训练过程
最终的训练步骤是个二阶段的,具体就是先训练anchor表征,再训练pos/neg表征,两个步骤迭代进行。
在第二阶段,我们用已经训练好的 根据公式9去指导 和 的学习,迭代这两个步骤直到覆盖。