ICSRec:交叉子序列意图对比学习用于序列推荐

论文题目:Intent Contrastive Learning with Cross Subsequences for Sequential Recommendation <math xmlns="http://www.w3.org/1998/Math/MathML"> [ 1 ] ^{[1]} </math>[1]

论文来源: WSDM2024

Code: ICSRec

一、Motivation

  • 推荐系统面临数据集稀疏和噪音的问题,这加大了对用户兴趣偏好建模的难度,如何在有限的数据集中对用户兴趣偏好更好地进行建模是一个挑战。先前的方法通过以下两种方法来缓解数据稀疏和噪音对用户建模的影响:
    • 第一种是通过引入一些辅助信息,例如利用用户侧的年龄信息、商品侧的类别信息、制造商、还有引入一些跨域信息等辅助信息来辅助用户兴趣建模;
    • 第二种主要是引入一些自监督任务,例如引入对比学习、年龄预测、类别预测等辅助任务来辅助模型对用户兴趣进行建模;
  • 先前的方法主要面临以下几个问题:
    • 第一种方法需要引入一些辅助信息,但是真实场景中这些辅助信息往往更加难以获取,并且是极其稀疏的,还存在噪音的问题(例如一个商品同时属于多种类别);
    • 第二种方法引入随机数据增强来构造正样本对,这很大概率会破坏原始序列所表达的语言信息,会改变原始序列的意图信息;
  • 针对上述难点,我们通过对原始数据进行分析之后发现,不同的用户交互的序列中存在相同的行为模式,这可以看作是一种粗粒度的意图监督信号,如下图所示:
  • 观察上图,我们可以发现以下几点现象:

    • 用户二和用户三都购买了书籍这一商品,可能是出于同一目的阅读和学习这一意图;
    • 用户一和用户二都购买了手表这一商品,可能是出于同一目的装饰这一意图;
    • 用户一二三都购买了领带,但观察可以发现用户一和用户二可能是为了装饰,用户三可能是为了送礼这一意图;
  • 通过上述观察现象可以表明不同用户可能出于同一目的购买了同一商品,另外购买同一商品也可能出于不同的意图,如果能够将这些信息用于建模用户的意图可以很好地缓解数据稀疏和噪音的问题;因此我们提出使用不同用户交互历史中的相同行为模式来构建意图监督信号,构建一个粗粒度的意图对比学习辅助任务,同时为了考虑全局的信息,我们进一步引入一个聚类,并通过聚类来获取用户的细粒度的意图表示,并通过构建一个细粒度意图对比学习任务来进行约束第一个任务引入的噪音问题(也即同一个商品在不同上下文中可能表示不同的意图);

二、Model

  • ICSRec的模型如上图所示,其主要包含三个模块,意图信号建立、意图表征学习和预测模块;
    • 首先是意图信号建立模块,这一模块首先会将所有训练序列切分成不同大小的子序列,然后将具有相同目标商品(最后一个item一样)的子序列归为一类,也即意图相似的子序列集合;
    • 在意图表征学习中主要包含两个模块,第一个是粗粒度的意图对比学习模块,这个模块直接通过对比学习将两个具有两个相同目标商品的子序列进行拉近,并且通过引入id监督信号过滤掉一些假的负样本(同一个batch内可能有多个子序列具有相同的目标商品);第二个是细粒度的意图对比学习模块,这个模块首先是对所有子序列得到的粗粒度的意图表示进行聚类,得到全局也即所有子序列的意图表示之后,通过查询操作(找每个子序列相近的细粒度的意图表示也即聚类中心)获取每个子序列的细粒度意图表示(可以看作是真实意图表示,考虑了全局的信息),然后让每个子序列的粗粒度的意图表示与其细粒度的意图表示进行拉近;
    • 第三个板块是推荐任务,使用的是交叉熵损失函数;

三、Data&Experiments

  • 数据集使用的是公开的数据集;

四、Performance

  • 从上表可以看出,提出的模型在三个数据集上所有指标都是明显优于现有模型的;

五、Ablation Study

  • 上表做的是关于提出模型模块的消融实验,观察上表可以发现:
    • 首先每一个模块都对于模型效果提升是有用的(比较A与其他所有的模块的结果可以发现)
    • 另外去掉细粒度意图对比学习,模型下降的效果比较明显,这表明了从全局出发对用户的兴趣进行建模比简单的从粗粒度的意图监督信号出发更加有效;
    • 另外去掉FNM模块也会对模型的效果有一定影响,这主要是因为在一个batch内出现具有相同目标商品的子序列的次数比较少,因此影响不会太大;
  • 上表做的是关于提出模型使用不同编码器的实验结果,观察上表可以发现:
    • 使用SASRec作为编码器效果会更好,这表明了transformer在建模序列任务上的优越性;
    • 另外使用GRU作为编码器也能提升模型的推荐表现,这表明了所提出框架的有效性;
    • 另外使用提出的框架可以弥补编码器带来的不足(比较B和C可以发现);

六、Conclusion

  • 综上所示,通过从用户的历史行为序列中捕捉用户的兴趣偏好可以极大地提高推荐的表现,另外还做了关于数据稀疏和噪音的实验,欢迎阅读论文;

七、References

[1] Qin, Xiuyuan, Huanhuan Yuan, Pengpeng Zhao, Guanfeng Liu, Fuzhen Zhuang, and Victor S. Sheng. "Intent Contrastive Learning with Cross Subsequences for Sequential Recommendation." arXiv preprint arXiv:2310.14318 (2023).

相关推荐
-Nemophilist-16 分钟前
机器学习与深度学习-1-线性回归从零开始实现
深度学习·机器学习·线性回归
九圣残炎30 分钟前
【从零开始的LeetCode-算法】1456. 定长子串中元音的最大数目
java·算法·leetcode
lulu_gh_yu35 分钟前
数据结构之排序补充
c语言·开发语言·数据结构·c++·学习·算法·排序算法
丫头,冲鸭!!!1 小时前
B树(B-Tree)和B+树(B+ Tree)
笔记·算法
Re.不晚1 小时前
Java入门15——抽象类
java·开发语言·学习·算法·intellij-idea
为什么这亚子2 小时前
九、Go语言快速入门之map
运维·开发语言·后端·算法·云原生·golang·云计算
2 小时前
开源竞争-数据驱动成长-11/05-大专生的思考
人工智能·笔记·学习·算法·机器学习
~yY…s<#>2 小时前
【刷题17】最小栈、栈的压入弹出、逆波兰表达式
c语言·数据结构·c++·算法·leetcode
幸运超级加倍~3 小时前
软件设计师-上午题-16 算法(4-5分)
笔记·算法
yannan201903133 小时前
【算法】(Python)动态规划
python·算法·动态规划