【论文阅读_序列推荐】Intent Contrastive Learning for Sequential Recommendation

news2024/11/20 6:28:48

【论文阅读_序列推荐】Intent Contrastive Learning for Sequential Recommendation

文章目录

  • 【论文阅读_序列推荐】Intent Contrastive Learning for Sequential Recommendation
    • 1. 来源
    • 2. 介绍
    • 3. 准备工作
      • 3.1 问题定义
      • 3.2 用于下一个项目预测的深度 SR 模型
      • 3.3 SR中的对比SSL (self-supervised learning)
      • 3.3.4 SR中的潜在因素建模
    • 4. 模型方法
      • 4.1 意图对比学习
        • 4.1.1 建模SR的潜在意图
        • 4.1.2 意图表示学习
        • 4.1.3 与FNM进行意图对比的SSL
      • 4.2 多任务学习
      • 4.3 讨论
        • 4.3.1 与SR中的对比性SSL的联系
        • 4.3.2 时间复杂性和收敛性分析
      • 5. 实验
        • 5.1 数据集
        • 5.2 结果
    • 6. 总结

1. 来源

在这里插入图片描述

  • 2022—WWW
  • 论文地址:Intent Contrastive Learning for Sequential Recommendation
  • code:ICLRec

2. 介绍

用户与物品的互动是由各种意图驱动的(例如,准备节日礼物,购买钓鱼设备等)。

  • 然而,用户的潜在意图往往是无法被观察到的/潜在的,这使得利用这些潜在的意图来进行序列推荐(SR)具有挑战性。

因此,为了研究潜在意图的好处并有效地利用它们进行推荐,作者提出了意图对比学习(ICL),这是一种将潜在意图变量利用到SR中的一般学习范式。

  • 其核心思想是从未标记的用户行为序列中学习用户的意图分布函数,并通过考虑学习到的意图,利用对比自监督学习(SSL)优化SR模型,以改进推荐。
  • 具体地说,作者引入了一个潜在变量来表示用户的意图,并通过聚类来学习潜在变量的分布函数。
  • 作者提出:通过对比SSL将学习到的意图利用到SR模型中,从而最大限度地提高序列视图与其相应意图之间的一致性。
  • 在广义期望最大化(EM)框架内,参数训练在意图表示学习和SR模型优化步骤之间交替进行。
  • 将用户意图信息融合到SR中也提高了模型的鲁棒性;并在四个真实数据集上进行的实验表明了所提出的学习范式的优越性,提高了性能,以及对数据稀疏性和噪声交互问题的鲁棒性。

3. 准备工作

3.1 问题定义

假设一个推荐系统有一组用户和物品,分别用 U 和 V表示。每个用户 𝑢∈U 都有一个按时间顺序排序的交互项目序列, S u = [ s 1 u , s t u , . . . , s ∣ S u ∣ u ] S^u = [s^u_1, s^u_t, ..., s^u_{|S^u|}] Su=[s1u,stu,...,sSuu],其中 ∣ S u ∣ |S^u| Su 是用户 u u u 交互项目的数量, s t u s^u_t stu是 用户 u u u 在步骤 𝑡 中交互的项目。

  • S u \mathbf{S}^u Su 表示为 S u S^u Su 的嵌入表示,其中 s t u \mathbf{s}^u_t stu 是项目 s t u s^u_t stu 的d维嵌入。
  • 在实践中,序列被截断为最大长度 𝑇。
    • 如果序列长度大于 𝑇,则考虑最近的 𝑇 动作。
    • 如果序列长度小于 𝑇,“填充”项目将被添加到左边,直到长度为 𝑇 [12,13,36]。
  • 对于每个用户 𝑢,在给定序列 S u S^u Su 以及项目集 V的情况下,下一个项目预测任务的目标是预测 在 ∣ S u ∣ |S^u| Su + 1步骤中最有可能交互的下一个项目。

3.2 用于下一个项目预测的深度 SR 模型

现代序列推荐模型通常用深度神经网络对用户行为序列进行编码,以从(截断的)用户历史行为序列中建模序列模式。在不失去一般性的情况下,我们定义了一个序列编码器 f θ ( ⋅ ) f_{\theta}(\cdot) fθ(),它对一个序列嵌入 S u \mathbf{S}^u Su 进行编码,并在所有位置步骤 H u \mathbf{H}^u Hu 上输出用户兴趣表示。特别是, h t u \mathbf{h}^u_t htu表示用户在位置 𝑡 的兴趣。目标可以表述为寻找最优编码器参数 𝜃,使所有位置步骤上给定𝑁序列的期望下一项的对数似然函数最大化:
在这里插入图片描述
这相当于最小化自适应的二元交叉熵损失,如下:
在这里插入图片描述
其中, s t u \mathbf{s}^u_t stu s n e g u \mathbf{s}^u_{neg} snegu表示目标项目 s t u s^u_t stu 和所有未被用户 u u u 交互的项目的嵌入。在等式中的求和运算符3的计算成本很高,由于|𝑉| 很大,因此,可以选择使用一个抽样的 softmax 技术来随机抽样每个序列中的每个时间步长的负项。𝜎 是s型函数。而 𝑁 是指小批量大小作为SR模型。

3.3 SR中的对比SSL (self-supervised learning)

对比SSL的最新进展启发了推荐社区利用对比SSL,按照互信息最大化(MIM)原则,来融合一个序列的不同视图之间的相关性。SR中现有的方法可以看作是优化 MIM 下界的实例识别任务,如InfoNCE。其目的是优化正对和负对的间隙比例。在这种实例识别任务中,需要序列增强,如“掩码”、“作物”或“重新排序”,以创建SR中未标记数据的不同视图。

  • 形式上,给定一个序列 s u s^u su 和一个预定义的数据转换函数集 G \mathcal{G} G,我们可以创建 s u s^u su 的两个正视图如下:
    在这里插入图片描述
    其中, g 1 u \mathcal{g}^u_1 g1u g 2 u \mathcal{g}^u_2 g2u 是从 G \mathcal{G} G 中采样的转换函数,以创建序列 s u s^u su 的不同视图。通常,从相同序列创建的视图被视为正对,而任何不同序列的视图都被视为负对。
  • 增广视图首先被序列编码器 f θ ( ⋅ ) f_{\theta}(\cdot) fθ() 编码到 H ~ 1 u \mathbf{\tilde{H}}^u_1 H~1u H ~ 2 u \mathbf{\tilde{H}}^u_2 H~2u,然后输入一个“聚合”层,得到序列的向量表示,记为 h ~ 1 u \mathbf{\tilde{h}}^u_1 h~1u h ~ 2 u \mathbf{\tilde{h}}^u_2 h~2u
  • 在本文中,为了简单起见,作者通过时间步长来“拼接”用户的兴趣表示。请注意,序列被预先拥有为具有相同的长度,因此它们在连接后的向量表示也有相同的长度。之后,我们可以通过InfoNCE损失来优化 𝜃:
    在这里插入图片描述
    其中,𝑠𝑖𝑚(·)为点积, h ~ n e g \mathbf{\tilde{h}}_{neg} h~neg 为负视图对序列 s u s^u su 的表示。

3.3.4 SR中的潜在因素建模

下一个项目预测任务的主要目标是优化等式 (1)。假设有 K 种不同的用户意图(例如,购买节日礼物,准备钓鱼活动等)。在形成意图变量 c = { c i } i = 1 K c=\{c_i\}^K_{i=1} c={ci}i=1K的推荐系统中,用户与某一项目交互的概率可以重写为:
在这里插入图片描述
然而,用户的意图根据定义是潜在的。由于缺少变量𝑐的观察,我们处于“鸡和蛋”的情况,没有 c c c,我们不能估计参数 𝜃,而没有 𝜃,我们也不能推断 𝑐 的值可能是什么。

稍后,我们将展示一个广义期望最大化框架为解决上述问题提供了一个方向。优化等式(7) 的基本思想通过EM是从对模型参数 𝜃 的初始猜测开始,并估计缺失变量𝑐的期望值,即 E 步。一旦我们有了值 𝑐,我们就可以最大化了等式(7) w.r.t 参数 𝜃,即 M 步。我们可以重复这个迭代过程,直到可能性不能再增加为止。

4. 模型方法

图2 (b) 显示了在EM框架内提出的ICL的概述它交替执行 e步 和 m步,以估计意图变量𝑐上的分布函数𝑄(𝑐),并对模型参数𝜃进行优化。

  • 在e步中,它通过聚类来估计𝑄(𝑐)。
  • 在m步中,它通过小批梯度下降考虑估计的𝑄(𝑐)来优化 𝜃。

在每次迭代中,𝑄(𝑐)和𝜃都会被更新。在接下来的章节中,我们首先推导出目标函数,以便将潜在的意图变量𝑐建模为一个SR模型,以及如何交替地优化目标函数,𝜃,并在第4.1节中的广义EM框架下估计𝑐的分布。然后,我们在第4.2节中描述了总体的培训策略。我们在第4.3节中提供了详细的分析,然后在第5节中提供了实验研究。
在这里插入图片描述

4.1 意图对比学习

4.1.1 建模SR的潜在意图

假设有𝐾个潜在的意图 c = { c i } i = 1 K c=\{c_i\}^K_{i=1} c={ci}i=1K,它会影响用户与项目交互的决定,然后基于等式(1)和(7),我们可以将目标改写如下:
在这里插入图片描述
然而,这个目标很难优化(因为我们很难去求积分)。相反,我们构造了一个等式的下界函数(8)并最大化了这个下限。形式上,假设意图 𝑐遵循分布𝑄(𝑐),其中 ∑ c Q ( c i ) = 1 \sum_c{Q(c_i)}=1 cQ(ci)=1 Q ( c i ) ≥ 0 Q(c_i) \geq 0 Q(ci)0。然后,
在这里插入图片描述
基于詹森不等式,对于等式(9),有,
在这里插入图片描述
其中,∝代表“成比例”(即达到一个乘法常数)。当𝑄(𝑐𝑖)=𝑃𝜃(𝑐𝑖|𝑠𝑢𝑡)时,不等式将相等。为简单起见,在优化下界时,我们只关注最后一个位置步骤,其定义为:
在这里插入图片描述
其中,𝑄(𝑐𝑖)=𝑃𝜃(𝑐𝑖|𝑆𝑢)

到目前为止,我们已经发现了等式(8)的一个下界。

  • 然而,我们不能直接优化等式(11),因为𝑄(𝑐)是未知的。
  • 相反,我们可以交替地优化了意图表示学习(E-step)和意图对比SSL与FNM(M-step)之间的模型,它遵循了一个广义的EM框架。我们将整个过程命名为意图对比学习(ICL)。
  • 在每次迭代中,都将更新𝑄(𝑐)和模型参数𝜃。

4.1.2 意图表示学习

为了学习意图分布函数𝑄(𝑐),我们用编码器 𝜃 对所有序列 { S u } u = 1 ∣ U ∣ \{S^u\}_{u=1}^{|U|} {Su}u=1U 进行编码,然后是一个“聚合层”,然后对所有序列表示 { h u } u = 1 ∣ U ∣ \{h^u\}_{u=1}^{|U|} {hu}u=1U进行𝐾-means聚类获取 𝐾 集群。然后,我们可以定义分布函数𝑄(𝑐𝑖)如下:
在这里插入图片描述
我们将 c i \mathbf{c}_i ci 表示为意图 c i c_i ci 的向量表示,它是 第 𝑖 簇的质心表示。在本文中,为了简单起见,我们使用“聚合层”来表示所有位置步骤上的平均池化操作。

4.1.3 与FNM进行意图对比的SSL

我们已经估计了分布函数𝑄(𝑐)。要最大化的等式(11),我们还需要定义 P θ ( S u , c i ) P_{\theta}(S^u, c_i) Pθ(Su,ci)。假设先验意图服从均匀分布,且给定 𝑐的 𝑆𝑢 的条件分布是具有𝐿2归一化的各向同性高斯分布,则可以将 P θ ( S u , c i ) P_{\theta}(S^u, c_i) Pθ(Su,ci) 重写如下:
在这里插入图片描述
其中, h u \mathbf{h}^u hu c i \mathbf{c}^i ci 分别为 S u S^u Su \ c i c_i ci的向量表示。基于等式的(11)、(12)、(13),使等式最大化(11)相当于最小化以下损失函数:
在这里插入图片描述
其中sim(·)是一个点积。我们可以看到,等式(14)与等式(6)的形式相似,其中,

  • 等式(6)试图最大化两个个体序列之间的互信息;
  • 而“等式”(14)最大化一个个体序列与其相应的意图之间的相互信息。

请注意,

  • 在SeqCL中需要进行序列增强来为等式创建正视图 (6)。
  • 而在ICL中,序列增强是可选的,因为给定序列的视图是它从原始数据集学习到的相应意图。

在本文中,我们应用序列增强来扩大训练集的目的,并基于等式(14)优化模型 𝜃。形式上,给定一批训练序列 { S u } u = 1 N \{S^u\}_{u=1}^N {Su}u=1N,我们首先通过等式(4)创建一个序列的两个正视图,然后优化以下损失函数:
在这里插入图片描述
其中 c n e g \mathbf{c}_{neg} cneg是给定批数据中的所有意图表示。然而,直接优化等式(16)会引入假阴性样本,因为一批处理中的用户可以有相同的意图。为了减轻假阴性样本的影响,作者提出了一个简单的策略来减轻影响:
在这里插入图片描述
其中,F是一组与小批处理中的 𝑢 具有相同意图的用户。我们称之为假阴性缓解(FNM)。

4.2 多任务学习

作者用多任务训练策略训练 SR 模型,通过等式(17)联合优化ICL,通过等式(2)进行的主要的下一个项目预测任务,一个通过等式(5)进行的序列级SSL任务。在形式上,我们共同训练SR模型 f θ f_{\theta} fθ 如下:
在这里插入图片描述
其中,𝜆 和 𝛽 分别控制了 ICL 任务和序列级 SSL 任务的强度。特别地,作者在Transformer编码器上建立了学习范式,形成了模型ICLRec。

ICL是一个与模型无关的目标,因此也可以将其应用于 S3 -Rec 模型,该模型使用几个 L_SeqCL目标进行预训练,以捕获项目、相关属性和子序列之间的相关性,并使用L_NextItem目标进行微调。

4.3 讨论

4.3.1 与SR中的对比性SSL的联系

最近的方法在SR中的遵循标准的对比SSL,以最大限度地提高序列的两个正视图之间的互信息。例如,CL4SRec使用变压器编码序列,并最大化从原始序列中增强(裁剪、屏蔽或重新排序)的两个序列之间的互信息。然而,如果一个序列的项关系容易受到随机扰动,那么这个序列的两个视图可能不能揭示原始的序列相关性。ICLRec最大化了序列与其相应的意图原型之间的互信息。由于意图原型可以被认为是一个给定序列的积极观点,通过考虑所有序列的语义结构来学习,这反映了真正的序列相关性,ICLRec可以始终优于CL4SRec。

4.3.2 时间复杂性和收敛性分析

在训练阶段的每一次迭代中,我们提出的方法的计算代价主要来自于𝑄(·)的 e步估计和基于多任务训练的𝜃 的 m步优化。

  • 对于e步,聚类的时间复杂度为𝑂(|𝑈|𝑚𝐾𝑑),其中𝑑为嵌入的维数,𝑚为聚类中的最大迭代次数(本文为𝑚=20)。
  • 对于m步,由于我们有三个目标来优化网络𝑓𝜃(·),因此时间复杂度为𝑂(3·(|𝑈|^2 𝑑+|𝑈|𝑑^2)。

因此,总体复杂性由术语𝑂(3·(|𝑈|^2 𝑑))主导,这是基于转换的SR的3倍,只有下一个项目预测目标,如SASRec。幸运的是,该模型可以有效地并行化,因为𝑓𝜃是变压器,我们把它留给未来的工作。在测试阶段,不再需要所提议的ICL和SeqCL目标,这使得模型具有相同的时间复杂度如SASRec(𝑂(𝑑|𝑉|))。

5. 实验

5.1 数据集

在这里插入图片描述

5.2 结果

在这里插入图片描述

6. 总结

在这项工作中,作者提出了一种新的学习范式ICL,它可以从用户交互中建模潜在的意图因素,并通过一个新的对比SSL目标将它们融合成一个顺序推荐模型。ICL是在一个EM框架内制定的,这保证了收敛性。详细的分析表明了ICL的优越性,并在四个数据集上进行的实验进一步证明了该方法的有效性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/428465.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于springboot和ajax的简单项目 06 日志界面的delete功能(根据选择的checkbox)

01.这次后台开始&#xff1b; 顺序依次是dao->xml->service->serviceimpl->controller->html 02.dao接口 public int doDeleteObjects(Param("ids") Integer... ids);03.xml文件 <update id"doDeleteObjects" >delete from sys_lo…

七项新发布,亚马逊云科技Amazon S3持续进化

17年前的3月14日&#xff0c;亚马逊云科技推出了一项“非常简单的”对象存储服务&#xff08;Amazon Simple Storage Service&#xff09;。该服务允许开发人员创建、列出和删除私有存储空间&#xff08;称为存储桶&#xff09;、上传和下载文件以及管理其访问权限。当时&#…

C++刷题--选择题1

文章目录选择题选择题 1&#xff0c; 以下for循环的执行次数是&#xff08;&#xff09; for(int x 0, y 0; (y 123) && (x < 4); x);A 是无限循环 B 循环次数不定 C 4次 D 3次 解析 &#xff1a; C&#xff0c;for循环y 123 是赋值语句&#xff0c; 也就是一…

PSO算法

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; 目录1.PSO算法主要步骤&#x1f331;2.PSO更新方法&#x1f33e;3.PSO求解TSP问题&#x1f334;粒子群算法&#xff08;Particle Swarm Optimization&#xff0c;简称PSO&#xff09;是一种优化算法&#xff0c;模拟…

美国全力打击币圈 “一套花式组合拳”,打得从业者透不过气

银行危机“平息”过后&#xff0c;美国监管机构对币圈接连出手&#xff0c;一套花式组合拳打得从业者透不过气&#xff0c;也使得加密行业在政府的拳头之下风声鹤唳。 首先&#xff0c;切断加密货币与传统金融机构的联系。美国金融体系陷入混乱之际&#xff0c;一系列历史性的银…

顺序表(数据结构)

目录 线性表 顺序表 1、顺序表创建 2、初始化 3、扩容 4、尾插 5、尾删 6、头插 7、头删 8、指定位置插入 9、指定位置删除 10、查询 11、打印 12、销毁 顺序表总代码 Leetcode编程题 1、移除元素 题目链接&#xff1a; 题目描述&#xff1a; 题目解析&#xff1a; 2、删除有序…

游戏内嵌社区服务开放,助力开发者提升玩家互动与留存

华为 HMS Core 游戏内嵌社区服务提供快速访问华为游戏中心论坛能力&#xff0c;支持玩家直接在游戏内浏览帖子和交流互动&#xff0c;助力开发者扩展内容生产和触达的场景。 一、为什么要游戏内嵌社区&#xff1f; 二、游戏内嵌社区的典型使用场景 1、游戏内打开论坛 您可以在…

[Linux]环境变量

目录 基本概念 常见的环境变量 PATH测试 HOME测试 SHELL测试 和环境变量相关的命令 main函数的三个参数 环境变量的组织方式 通过代码如何获取环境变量 通过系统调用获取或设置环境变量 基本概念 环境变量(environment variables)一般是指在操作系统中用来指定操作系…

FreeRTOS 系统内核控制函数

FreeRTOS 中有一些函数只供系统内核使用&#xff0c;用户应用程序一般不允许使用&#xff0c;这些 API 函数就是系统内核控制函数。 内核控制函数 顾名思义&#xff0c;内核控制函数就是 FreeRTOS 内核所使用的函数&#xff0c;一般情况下应用层程序不使用这些函数&#xff0…

6基于二阶锥规划的主动配电网最优潮流求解

matlab代码&#xff1a;基于二阶锥规划的主动配电网最优潮流求解 参考文献&#xff1a;主动配电网多源协同运行优化研究_乔珊 摘要&#xff1a;最优潮流研究在配 电网规划运行 中不可或缺 &#xff0c; 且在大量分布式能源接入 的主动配 电网环境下尤 为重要 。传统的启发式算…

设计师一定要知道这5个免费样机素材网

本期推荐5个设计师必备的样机素材网站&#xff0c;免费下载&#xff0c;建议收藏~ 1、菜鸟图库 https://www.sucai999.com/searchlist/3217----all-0-1.html?vNTYxMjky 网站有多种类型的设计素材&#xff0c;像平面、电商、UI、办公等素材这里面都能找到。样机素材分类清晰&…

GitHub“疯狂”求阿里内部开源这份10W字Java面试手册,竟遭拒绝

行业风向标&#xff0c;猎聘发布的数据报告显示&#xff1a; 相比以往&#xff0c;2023年企业招聘两大变化体现在&#xff1a;对人才各方面能力要求更高、对人岗的匹配性要求更细。不同规模的企业用人各有侧重&#xff0c;大中型企业更注重人的全面能力&#xff0c;小型企业更…

我写系列博客的缘由

我写系列博客的缘由 每个经历不是一帆风顺的人&#xff0c;都将深刻地体会到&#xff0c;少走弯路对一个人来说是多么重要。人的生存不是浪漫的幻想&#xff0c;而是建立在能立足于现实社会上&#xff0c;教育的真正意义&#xff0c;是培养你的认识水平、提升智慧&#xff0c;借…

JAVA语言-比较器Comparator

目录 一、什么是Comparator 二、Java compare方法和compareTo方法 三、java中Comparable和Comparator的区别 Comparator的例子 一、什么是Comparator Comparator 是javase中的接口&#xff0c;位于java.util包下。 数组工具类和集合工具类中提供的工具方法sort方法都给出…

Vector - CAPL - CAN x 总线信息获取

在CAN&CANFD测试中&#xff0c;我们经常需要获取到CAN总线的负载、错误帧、过载帧、发送错误等等CAN总线上面的信息&#xff0c;这些信息如此重要&#xff0c;但是如果真的要写代码去实现也是相当不易的&#xff0c;那我们该如何去获取到的呢&#xff1f;下面我们就来一起看…

系统集成作业——公司网络系统集成设计,总公司、分公司地跨两个不同城市。

一 实验需求 完成公司网络系统集成设计&#xff08;2000台电脑&#xff09;&#xff0c;总公司、分公司地跨两个不同城市 二实验分析 本次实验继续建立在实验三的基础之上&#xff0c;对其升级改造为地跨不同城市的总公司和分公司的大型局域网网建设。 实验三配置点击链接&…

经营软件公司五年,从外包到SaaS的踩坑笔记

文章目录摘要开公司的两个误区关于管理关于合作关于SaaS其他经验大和强是两码事。大不是目的&#xff0c;强才是。小步试错、慢慢迭代不要掉入流量陷阱摘要 经营公司已有五年&#xff0c;经历了三年的疫情停滞&#xff0c;现在正在转型为一家SaaS公司。虽然曾经迷茫过&#xf…

包装类,String,String的方法

针对八种基本数据类型相应的引用类型-----包装类。有了类的特点&#xff0c;就可以调用类中的方法 基本数据类型包装类booleanBoolean char CharacterbyteByteshortShortintIntegerlongLongfloatFloatdoubleDouble Byte---Double类的父类是Number 关系图 拆箱&#xff0c;装箱 …

如何微调Segment Anything Model

文章目录什么是SAM&#xff1f;什么是模型微调&#xff1f;为什么要微调模型&#xff1f;如何微调 Segment Anything 模型背景与架构创建自定义数据集输入数据预处理训练设置循环训练保存检查点并从中启动模型下游应用程序的微调随着 Meta 上周发布的 Segment Anything Model (…

DAY 33 shell编程 常用的文本命令

sort命令####排序 sort将文件的每一行作为一个单位相互比较&#xff0c;比较原则是从首字符向后依次按ASCII码进行比较&#xff0c;最后将它们按升序输出。&#xff08;以行为单位来排序输出&#xff09; sort [选项] 参数​cat file | sort 选项常用选项&#xff1a; 常用选…