推荐系统论文阅读总结:ICDE 2023 IMSR 基于增量学习的多兴趣序列推荐

 代码:https://github.com/Scofield666/MBSSLhttps://github.com/Cloudcatcher888/IMSRhttps://github.com/Scofield666/MBSSL

论文:https://cloudcatcher888.github.io/files/icde.pdf

这篇论文的代码阅读推荐系统代码阅读:ICDE 2023 IMSR 基于增量学习的多兴趣序列推荐_推荐系统YYDS的博客-CSDN博客(这篇论文是ICDE的bestpaper,写的一级好,我也是花了时间才初步看明白一些东西,帖子先发出来帮助我更清楚的看代码,最后还会对这个帖子进行精简的)

1 摘要

近年来,顺序推荐得到了广泛的研究,其目的是根据用户之前交互的物品顺序来预测下一个感兴趣的物品。现有的研究利用胶囊网络和自关注方法从用户交互序列中明确捕获多个潜在兴趣,实现了最先进的序列推荐性能。在实践中,用户交互序列的长度不断增加,用户可能会从新的交互中产生新的兴趣,因此需要不断更新甚至扩展模型以捕获新的用户兴趣。我们将这个问题称为增量多兴趣序列推荐,在现有文献中尚未得到很好的研究。本文提出了一种有效的多兴趣序列推荐增量学习框架——IMSR,该框架在传统的微调策略基础上增加了现有兴趣保留器(EIR)新兴趣检测器(NID)基于投影的兴趣修剪器(PIT),以自适应扩展模型以适应用户的新兴趣,并防止其忘记用户的现有兴趣。


2 以往研究存在的问题

2.1 用户的动态兴趣

在真实的推荐系统中,用户交互序列的长度是不断增加的,用户可能会从新的交互中产生新的兴趣。现有的和新的兴趣都可能在未来的互动中重新出现。然而,我们不知道哪些现有的或新的利益将重新出现。模型更新的一个简单策略是使用每个时间跨度(例如,一个小时或一天)的整个用户交互序列来重新训练模型。然而,对整个用户交互序列进行训练非常耗时,并且在无法获得所有历史交互或在训练和推理期间维护整个序列的内存空间受限的情况下,该策略不实用。

基于用户动态兴趣所使用微调技术

一种更具成本效益的策略是使用当前时间范围内的新交互对模型进行微调,并从以前的时间范围继承模型参数作为初始值。在这种策略中,用户从以前的交互中提取的现有兴趣不会被完全抛弃,而是会在当前的时间范围内进行更新。然而用户的现有兴趣不是固定的,可能会随着时间的推移而逐渐漂移。新开发的兴趣的数量可能在不同的时间跨度内动态变化。

(1)当只将新收集的交互用于模型训练时,可能会忘记现有的兴趣,这将导致与现有兴趣相关的项目的性能下降。在我们的实验中,我们发现仅对模型进行微调,性能就会迅速下降。

(2)由于模型复杂性的固定,在当前时间跨度内新的交互传递的新兴趣可能会覆盖现有的兴趣,即在时间跨度内固定数量的兴趣向量。同样,现有的兴趣可能反过来影响新兴趣的学习。因此,重要的是要防止学习现有的和新的兴趣相互干扰。

(3)不同的用户会在一个新的时间段内产生不同数量的新兴趣。需要在每个时间段内自适应地确定每个用户的新兴趣的数量。

2.2 增量学习

一般增量学习的文献包括基于储存的方法、基于正则化的方法和模型扩展方法。基于储存的方法侧重于保存过去的知识,方法是从储层中选择样本,并基于优先级近代性或被遗忘程度来更新模型。然而,它们需要存储在增量MSR中可能无法获得的历史交互。基于正则化的方法提出通过强制正则化条款来保留过去时间跨度内学习到的知识,这有规律地限制了模型参数,而不是用户潜在表示。此外,这些方法不随时间变化模型的复杂度,也不能产生需要额外模型参数的新兴趣向量。模型扩展方法旨在扩展模型在增量学习过程中应对新知识的能力。

虽然模型扩展可以用来捕获新的兴趣,防止兴趣之间的相互干扰,但现有的工作需要提前知道每个时间跨度的扩展模型容量。由于每个用户的新兴趣数量是动态变化的,因此对增量多兴趣顺序推荐进行模型扩展是一项非常重要的任务。因此,现有的增量学习方法在解决增量MSR中的挑战方面作用有限。


3 贡献

设计了一个增量多兴趣顺序推荐(IMSR)的端到端框架,该框架包括现有兴趣保留器、新兴趣检测器和基于投影的兴趣修剪器,该框架可以在保留现有兴趣的同时,从每个用户最近的交互中动态捕获新的兴趣,并在两种多兴趣序列推荐模型上实现了我们的框架,即基于动态路由和基于自关注的模型。

1:现有兴趣保留器使用蒸馏损失[Distilling the Knowledge in a Neural Network]来确保现有利益向量离其原始位置不远,可以保护现有兴趣免受严重漂移。

2:提出了新兴趣检测器来解决第二个挑战,即根据被分类为不同兴趣的项目编号的分布变化来确定何时创建新兴趣。

3:提出了基于投影的兴趣修剪器,首先分配相对大量的新兴趣,然后修改学习到的兴趣向量的大小和方向,去除冗余的兴趣,自适应学习新兴趣。


 4 方法

4.1 问题定义:用户U,项目I,行为K

输入部分为u的历史交互序列,该序列是u以前的交互项的长期序列,记为。输出部分是用户最后与之交互的目标项目。多兴趣序列推荐(MSR)旨在学习一种功能融合器,该功能融合器可以将用户的交互序列Su映射为多兴趣用户表示Hu用户u的新交互和时间跨度内的目标项目。在之前的时间跨度上训练了一个MSR模型,并尝试使用新收集的序列将模型更新为

4.2 基本的微调方法

4.2.1基于动态路由(DR)

DR利用动态路由机制从用户交互序列中提取多个兴趣向量。对于每个用户u,使用表示用户交互序列中涉及的项目嵌入集,并使用Eta表示目标项目嵌入。采用行为到兴趣(behavior -to - interest, B2I)动态路由从用户的交互序列中学习一组兴趣。嵌入ei∈Etu的每一项首先使用共享仿射变换矩阵W t∈Rd×d将其变换为低层胶囊的平面:

 然后,动态路由过程将应用于L迭代转换的低级胶囊。初始化为0。高级胶囊在]迭代计算为:

上述公式将低级胶囊软性聚类为个不同的高级胶囊,可视为从用户交互序列中提取的个不同的兴趣。对于不同的用户,Ktu的值可能不同。在进行多兴趣提取后,我们得到代表用户不同兴趣的向量。在每个时间范围内,嵌入Eta的目标项是评估每个用户兴趣重要性的查询。然后,在时间跨度t上推导出目标项敏感的用户表示vtu∈Rd×1:

最后在目标项敏感的用户表示和目标项目嵌入eta的目标项目之间进行点积来产生偏好得分,即: 

。时间跨度t的目标函数为:

DR利用上述公式中损失函数的反向传播来更新wt,在时间跨度t+1内,wt +1将以wt为初值进行微调。这样,用户现有的兴趣就不会被完全抛弃,可以通过增量交互序列进行细化。 

4.2.2 基于自注意力(SA)

给定用户交互嵌入,SA使用自关注机制得到的权重向量为

将权重与用户嵌入相乘生成反映用户特定兴趣的嵌入, 为了捕获用户的整体兴趣,我们需要从用户交互中获得多个关注不同兴趣的hu。因此,将Wtu扩展为一个da × k的矩阵Wtu,那么注意力向量就变成了一个注意力矩阵

 不同的用户有不同的Wu,以计算他们的专属兴趣向量。最终的用户兴趣矩阵Htu计算如下:。然后,SA在DR中执行相同的聚合器计算目标函数,并使用反向传播更新。在时间跨度t+1中,将根据进行微调,以保持现有兴趣。

使用微调方法可能会忘记现有的兴趣,这将导致与现有兴趣相关的项的性能下降。此外,新的兴趣可能会在新的互动中出现。如果模型能力是固定的,则新的兴趣的出现可能会干扰现有的兴趣。因此,需要自适应地增加兴趣的数量以适应新的兴趣。

 4.3 IMSR

IMSR是一个用于多兴趣顺序推荐的增量学习框架,可以在保留现有兴趣的同时从新的交互中动态捕获新的兴趣。描述了由两个组件组成的IMSR的总体体系结构。第一个组件是基本模型,一个动态路由或基于自关注的多兴趣推荐模型。第二个组件包含三个模块,分别称为现有兴趣保留器(EIR)、新兴趣检测器(NID)和基于投影的新兴趣修剪器(PIT)。EIR的目的是防止基础模型在以前的时间跨度中学习到的现有兴趣发生严重漂移。新兴趣检测器创建新兴趣,以防止对现有兴趣和新兴趣的学习相互干扰。提出了基于投影的兴趣修剪器,用于自适应地确定每个用户在每个时间范围内的新兴趣数量

4.3.1 现有兴趣保留器(EIR)

在未来的互动中,现有的和新的兴趣可能会重新出现,不知道现有的或新的兴趣中哪些会重新出现。因此,重要的是要保持以前时间跨度的所有现存兴趣,防止它们发生大的变化或被新的兴趣所取代。同时,可以将属于现有兴趣的事项吸收到这些兴趣中,以调整其表述。最直接的想法是在新的时间跨度内执行多兴趣提取器后,配置基于距离的正则化项,如欧几里得距离,以防止现有的兴趣向量偏离其原始表示。然而,这种方法不够灵活。更具体地说,两个完全不同兴趣的向量之间的距离可以很小,这意味着即使欧几里得空间的微小变化也可能改变兴趣向量的语义。因此,在更糟糕的情况下,基于距离的正则化项会阻止项目被相应的兴趣所推荐,但不能阻止现有兴趣的完全改变。

知识蒸馏不约束表示向量本身,而是专注于约束输出逻辑,是一种更灵活的克服遗忘问题的方法。将兴趣胶囊视为多个项目类别,则目标项目偏好评分也可以视为基于匹配的分类模型。与原有的知识蒸馏思想类似,现有的兴趣向量可以看作是教师模型的参数,新的兴趣向量可以看作是学生模型的参数。因此,保留现有知识的蒸馏损失需要鼓励学生模型的输出接近教师模型的输出:

\alpha采用点积作为匹配函数f,用sigmoid函数代替softmax函数,计算效率高。这样,即使新的兴趣向量在高级兴趣向量空间中远离原始位置,也能保持与现有兴趣向量相似的语义。我们把现有兴趣保留的这部分称为利益保留

 4.3.2新兴趣检测器(NID)

前一节提出了一种在MSR增量学习过程中保持现有兴趣的方法。然而,对于增量情景,共享的预定义利益数缺乏足够的多样性和可调节性,现有利益和新的利益会相互干扰,例如,现有利益可能被新的利益覆盖,或者由于固定的利益容量而阻止新的利益被捕获。因此,在本节中引入了一个新兴趣检测器,它根据分类到所有兴趣的项目数量的分布来确定何时创建新兴趣。

定义了一个项目的puzzlement,只有当大多数项目具有一定程度的puzzlement时,才提供新的兴趣向量。我们使用查询稀疏度度量,它使用查询的注意概率分布和均匀分布之间的KL散度来选择最主要的点积对来表示puzzlement。在MSR模型中没有查询机制。然而,我们可以从概率的角度将项目嵌入ei与兴趣向量hk的点积取为:

其中是第i个项目被分类到第k个兴趣的后验概率,如果接近均匀分布 ,这意味着该项目不能很好地分类到任何现有的兴趣中,需要新的兴趣封装。自然地,两个分布p和q之间的距离可以用来决定何时创建新的兴趣。这里通过KL散度测量距离如下 

 puzzlement给定第i项的嵌入和所有兴趣表示,定义第i项的puzzlement为:

表示时间跨度t内的兴趣数,表示第i项的嵌入,表示第k项兴趣的表示,如果用户u的所有项目的puzzlement平均值大于c1,将创建预定义数量的新兴趣向量:

 4.3.3新兴趣修剪器(PIT)

前一节使用puzzlement来检测用户是否产生了新的兴趣。然而,这是不够的,因为我们不知道有多少新的兴趣已经发展。

直觉上,有几种方法来决定新兴趣的数量。第一个想法是,如果每次都检测到新的兴趣,则只创建一个兴趣胶囊。这种方法易于实现,但在开发多个兴趣时不适用。一个改进的想法是创造δK新的兴趣。这种方式易于实现,也更适用,但可能在以后的时间跨度中产生太多不必要的兴趣,成为内存的巨大负担。此外,一些新的兴趣向量学习冗余既有兴趣甚至什么也学不到。

设计了一种基于投影的修剪机制,使模型能够为每个用户可调地保留正确数量的新兴趣向量,这些向量对应于新交互序列中开发的新兴趣。主要思想是我们只保留新兴趣向量与现有兴趣向量平面的正交部分,并用过小的l2范数修剪新兴趣向量。原因有两方面。首先,如果一个新的兴趣向量接近现有兴趣向量的平面,那么从直观上来说,它代表了一个实际上是现有兴趣的组合的兴趣,我们不需要为它创建新的向量。其次,向量的l2范数代表了MSR文献中这个兴趣所包含的语义的存在性,这意味着我们可以修剪l2范数太小的向量,因为它们只学习了琐碎的兴趣或对现有的兴趣学习了相似的兴趣。

首先为每个用户u在时间跨度t上创建个新的随机初始化的新兴趣向量。提取器学习到的冗余多兴趣用户表示变为:

是所有用户在所有时间跨度内共享的超参数,它控制兴趣扩展数。因此,我们在Htu上使用了一个投影动作。具体来说,我们将所有新的兴趣向量投影到现有兴趣向量的平面张成上:

为串联操作,在多兴趣提取后,最终的新兴趣向量htk中只保留与现有兴趣正交的分量。最后一步,将使用以下公式去除具有的新兴趣向量:

这样,基于投影的裁剪只保留正交的。c2是一个超参数,用于控制琐碎兴趣修剪的严格程度。我们称这种对冗余利益进行修剪的组件为利益修剪器。在4.4中给出了整个兴趣扩展算法。 

 4.4兴趣扩展算法

 输入的是初始模型参数,用户在t-1时刻的兴趣以及增量数据集,输出是用户下一时刻的兴趣。

2  首先计算当前是否需要创建新兴趣,如果所有项目的puzzlement平均值大于c1,创建新兴趣。

3   为用户在时间跨度t-1上创建个新的随机初始化的新兴趣向量

4   将新兴趣向量与t-1时刻的兴趣向量使用胶囊网络或注意力去生成t-1时刻的兴趣向量

5   在生成新的兴趣向量后,使用新兴趣检测器(NID)去除冗余向量。

 4.5模型训练

1初始化兴趣向量。在所有用户的历史交互序列上预训练一个基本的MSR模型。得到了每个用户的兴趣向量,所有的历史数据都可以被丢弃。

2在时间跨度2,基于每个用户的新的交互序列。然后重新训练模型r个epoch。

3 在这些新的交互上使用兴趣检测器来确定哪些用户有新的兴趣,并为每个用户随机初始化兴趣向量。

4 将用户的新交互分为历史序列和按时间顺序设置的目标项目两部分。

5 对于所有未检测到新兴趣的用户,直接使用多兴趣提取器计算用户兴趣向量。

6 对于检测到新兴趣的部分,我们在新兴趣提取器之后使用兴趣修剪器来保留新兴趣的正交部分,并用平凡的l2范数对新兴趣进行修剪,  获得每个用户u的兴趣。

7通过Eq.(6)计算样本softmax损失L2SS,并使用兴趣保留器计算知识蒸馏损失L2KD。然后使用反向传播来更新参数。对于下一个时间跨度,过程是相同的。

 5 效果

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值