SIGIR21 | 购物篮推荐场景太复杂?没有商品相关性标签?对比学习去噪解决(一)

简介: SIGIR21 | 购物篮推荐场景太复杂?没有商品相关性标签?对比学习去噪解决(一)

一、背景介绍


1.png

下一个购物篮推荐旨在通过考虑用户之前购买的一系列购物篮来推断用户将在下次访问时购买的一组商品。现有的解决方案主要侧重于对其历史交互的顺序建模。然而,由于用户行为的多样性和随机性,并非所有购物篮都有助于识别用户的下一步行为。有必要对购物篮去噪并提取可信的相关Item以提高推荐性能。不幸的是,这个维度在当前的文献中通常被忽视。


2.png


为此,在本文中,我们提出了一种对比学习模型(命名为 CLEA)来自动提取与目标项目相关的项目以进行下一个购物篮推荐。具体来说,在 Gumbel Softmax 的支持下,我们设计了一个去噪生成器来自适应地识别历史篮子中的每个Item是否与目标Item相关。通过这个过程,我们可以为每个用户的每个篮子获得一个正子篮子和一个负子篮子。


然后,我们通过基于 GRU 的上下文编码器基于其组成Item导出每个子篮子的表示,该编码器表达与目标Item相关的偏好或不相关的噪声。之后,设计了一个新颖的两阶段引导对比学习过程,以同时指导进行相关性学习,而无需任何Item的相关性监督。


据我们所知,这是第一项以端到端的方式对购物篮进行Item级降噪以进行下一个购物篮推荐的工作。在具有不同特征的四个真实世界数据集上进行了广泛的实验。结果表明,我们提出的 CLEA 比现有的最先进的替代方案实现了显着更好的推荐性能。


此外,进一步的分析还表明,CLEA 可以成功地发现与推荐决策相关的真实Item。


二、CLEA


CLEA网络结构框架如图:


3.png


网络框架图


**‍‍‍‍‍‍整个框架分为三个部分:**‍‍‍‍‍‍


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是无关的。 公式如下:


4.png


2.2 上下文编码


上一步每个篮子不是得到了两个子篮子吗,然后用GRU对分出来的序列进行编码,最后一层的隐状态作为特征的表达,分别表示与目标项相关的偏好和无关的噪声。vij是item的embedding【注意跟xj不同,xj是one-hot,这里是embedding,怎么获取的??】


5.pnga60110904a60c95ee85fe324e8dea5b8.png


2.3 对比学习


作者用这postive隐状态进行预测,并且刚开始用这两个特征构建了loss,公式如下:


7.png

@$~UTC__J8(1WM[_TWQMN9R.png


但是这个loss只计算模型基于训练集估计用户偏好的准确性,在训练中表现的性能不稳定,所以采用对比学习来进行,改进后loss如下:


@$~UTC__J8(1WM[_TWQMN9R.png


从这个loss来看,希望pos篮子学习到的偏好估计是好于anchor【anchor就是用原始分被拆分的篮子序列进行GRU编码得到】的,而neg篮子学习到的偏好是低于anchor的。


2.4 训练过程


最终的训练步骤是个二阶段的,具体就是先训练anchor表征,再训练pos/neg表征,两个步骤迭代进行。


Y%T7GQWPR]OO`YT(NG0$UUU.png


在第二阶段,我们用已经训练好的 根据公式9去指导 和 的学习,迭代这两个步骤直到覆盖。







相关文章
|
2月前
|
自然语言处理 数据挖掘
数据特征包括分布特征、统计特征、对比特征、帕累托特征和文本特征
数据特征包括分布特征、统计特征、对比特征、帕累托特征和文本特征
95 4
|
6月前
|
算法 vr&ar Python
R语言隐马尔可夫模型HMM连续序列重要性重抽样CSIR估计随机波动率模型SV分析股票收益率时间序列
R语言隐马尔可夫模型HMM连续序列重要性重抽样CSIR估计随机波动率模型SV分析股票收益率时间序列
|
6月前
Stata广义矩量法GMM面板向量自回归 VAR模型选择、估计、Granger因果检验分析投资、收入和消费数据
Stata广义矩量法GMM面板向量自回归 VAR模型选择、估计、Granger因果检验分析投资、收入和消费数据
|
6月前
|
机器学习/深度学习 算法 数据可视化
【视频】R语言LDA线性判别、QDA二次判别分析分类葡萄酒品质数据|数据分享(上)
【视频】R语言LDA线性判别、QDA二次判别分析分类葡萄酒品质数据|数据分享
|
6月前
|
机器学习/深度学习
【视频】R语言LDA线性判别、QDA二次判别分析分类葡萄酒品质数据|数据分享(下)
【视频】R语言LDA线性判别、QDA二次判别分析分类葡萄酒品质数据|数据分享
|
6月前
|
机器学习/深度学习 算法
R语言隐马尔可夫模型HMM识别不断变化的股票市场条件
R语言隐马尔可夫模型HMM识别不断变化的股票市场条件
|
6月前
|
存储 Python
t-sne方法:观察类别区分度
背景:一个二分类任务。 目的:尝试使用t-sne方法,观察这两个类别是否是可分的。
52 0
|
6月前
|
机器学习/深度学习 XML 编解码
ENVI实现最小距离法、最大似然法、支持向量机遥感图像监督分类与分类后处理操作
ENVI实现最小距离法、最大似然法、支持向量机遥感图像监督分类与分类后处理操作
292 1
|
6月前
|
机器学习/深度学习 编解码 自动驾驶
【论文速递】WACV2022 - 基于小样本分割的多尺度Non-Novel片段消除方法
【论文速递】WACV2022 - 基于小样本分割的多尺度Non-Novel片段消除方法
|
机器学习/深度学习 自然语言处理 算法
【网安AIGC专题11.1】11 Coreset-C 主动学习:特征选择+11种采样方法+CodeBERT、GraphCodeBERT+多分类(问题分类)二元分类(克隆检测)非分类任务(代码总结)
【网安AIGC专题11.1】11 Coreset-C 主动学习:特征选择+11种采样方法+CodeBERT、GraphCodeBERT+多分类(问题分类)二元分类(克隆检测)非分类任务(代码总结)
201 0