论文Meta-Learning for User Cold-Start Recommendation走读

文章把MAML算法中分任务的学习率也作为元学习的一个目标。文章讨论了推荐系统对于冷启动用户,非冷启动用户,常规用户和折衷用户的推荐性能。
场景:线下数据集。

摘要

推荐系统中的最新研究强调了应对冷启动问题的重要性,即在推荐系统中建模新用户或新商品的重要性。元学习方法最近在机器学习中变得越来越流行,用于学习对各种任务有用的表示形式。受与模型无关的通用建模的元学习启发,我们设计了一个推荐框架,该推荐框架经过训练,足以满足广大用户的需求。在测试期间,为了适应特定用户,模型参数会通过一些步骤进行更新。我们对来自Movielens,Netflix和MyFitnessPal的三个不同的数据集上评估了我们的方法。通过详细的仿真研究,实验结果表明本文提出的框架比当下最先进的通用推荐系统更好地处理用户冷启动模型。我们还表明,所提出的方法在对非冷启动用户的一般推荐任务上也表现良好,并有效地照顾了用户的日常偏好趋势。

Intro

推荐系统现在无处不在,向用户推荐商品的问题在众多Web平台中相当普遍。 基于内容的过滤和协同过滤(CF)是大多数推荐系统中采用的两种广泛方法。 基于内容的过滤依赖于每个商品的属性(例如,对于电影,属性可以包括其类型,发行年份,演员姓名,剧情简介,广告图像等。 协同过滤是基于推断用户与商品之间的相关性,即相似的用户更喜欢相似的项目,反之亦然。 大多数现代的推荐系统都基于协同过滤,部分原因是它具有更高的准确性,也因为基于内容的方法需要很多关于商品的特设属性,而这些属性可能不容易获得。

最受欢迎的协同过滤的方法称为矩阵分解,它通过(学习特征的)单个矢量对每个用户和商品建模,并计算相似度得分(例如点积),以推断用户对商品的偏好。这些方法通常在存在大数据的情况下效果很好,但因在冷启动建议中执行不佳而臭名昭著。用户冷启动问题是指向新用户推荐商品的任务,该用户的消费记录在系统中不存在。这是推荐系统中最重要的挑战之一,已经提出了几种解决方法。但是,他们不能成功地稳健地解决它,尤其是在反馈稀少的情况下,即当用户和项目数量众多并且只有很少的用户对每个项目进行评分(或消费)时。

在本文中,我们通过应用模型(MAML)解决了推荐系统中用户冷启动的问题。 MAML是为深度神经网络的元学习而提出的一种通用且非常强大的技术,通过这项工作,我们证明了其在缓解冷启动问题上的适用性。已有一些关于将元学习应用于推荐者系统的工作,即[8]和[12]。 [8]考虑了商品冷启动的问题,它仅具有非常特定的应用,例如在tweet / facebook post推荐的情况下。在大多数情况下,例如电影,音乐,产品推荐,用户冷启动的问题更加严重,因为有许多用户非常快速地对新商品进行评分/消费,从而提供了一些推荐信号。而且,他们的方法不能保证测试阶段的计算速度。我们根据[8]对模型进行了基准测试,结果表明我们的方法在测试期间仅需要进行几次梯度更新,即可快速适应新用户。 [12]没有考虑冷启动问题,而是关注分布式训练和隐私保护的问题。我们的方法从某种意义上说是该技术的超集,它可以缓解冷启动问题,同时又保持[12]中所述的隐私保护主张。

我们框架设计背后的关键见解是离线训练适合于广泛用户的推荐模型。当一个新用户仅对几项商品进行评级/消费时,我们的模型几乎不需要对其参数进行渐变更新,因此它适合向新用户推荐商品。我们通过一系列任务来制定元学习问题,从而特别避免在新用户上过度拟合,其中,每个任务都涉及推断一组项目中的哪些项目与特定用户有关。通过对标准Movielens ,Netflix 和MyFitnessPal 数据集的详细模拟,我们证明了我们的方法在处理冷启动问题上的功效,同时保持了较高的推荐精度。

相关工作

基于深度学习模型的推荐系统在最近变得非常流行。几种深度学习技术,例如递归神经网络,变分自动编码器,去噪自动编码器,受限玻尔兹曼机,生成对抗网络和卷积神经网络已被用来构建推荐系统,并在实践中产生可靠的建议。但是,这些方法都没有明确解决冷启动问题,这在实际的推荐系统中非常重要,推荐系统将不断见证着新用户加入系统以及新商品被添加到数据库中。

最近有一些尝试解决建议中的冷启动问题:[8]通过使用元学习策略专注于商品冷启动问题,[27]也解决了商品冷启动问题,但采用了主动学习框架来平衡勘探与开发之间的权衡,[10]使用doc2vec来缓解新商品的冷启动问题,而[28]使用用户的人口统计信息来解决用户的冷启动问题。

然而,这些工作有许多弊端:[8]在计算上非常昂贵,因为它需要训练两个单独的神经网络,第一个网络学习所有商品的通用表示,而第二个网络学习每个类的单独表示。而且,测试时间的预测非常耗时,因为该模型与最近的基于梯度的元学习方法[11]不兼容,后者仅需要几个梯度更新即可快速适应。[27]为解决冷启动问题需要大量的附加属性,因此存在基于内容的过滤的类似缺点。在项目属性不可用的稀疏反馈情况下,不能使用此方法。 [10]专注于特定的推荐任务,不能推广到其他推荐情况。文献[28]中的方法依赖于用户的敏感人口统计信息,这可能并不总是可用于解决冷启动问题。此外,预测模型基于简单的手工特征,不能推广到不同的任务。根据经验,在RecGAN [9]中基于RNN-GAN的方法在冷启动建议问题中表现良好,但没有理论上的依据。

元学习是最近流行的一种范式,用于训练易于学习的能够泛化的机器学习模型。虽然元学习背后的基本理解已经在人工智能和机器学习社区中存在了很长时间,但深度学习的最新进展已大大推动了这一领域的研究。它已在从机器人技术到语音识别的众多领域中使用。通过训练模型以适应一组任务,用于元学习的旧方法可以在许多任务上训练记忆增强模型。然而,基于递归架构的模型非常庞大,现代元学习研究的主要方向已转向基于低成本梯度的方法[35]。这些方法可以更好地初始化元学习器的参数,以便可以通过一些梯度下降步骤轻松地更新它们,以适应任何任务。

在本文中,我们利用基于梯度下降的元学习的最新进展来快速预测测试时间。除了用户ID,商品ID和用户对商品的评分(或消费信息)以外,我们的方法不需要任何其他信息。我们的方法与任务无关,在某种意义上说,它可以用于任何推荐任务,而不依赖于从用户那里收集敏感信息。

本文的方法

受到推荐系统中其他算法公式的启发,我们认为建议任务是每个用户的二分类问题。 每个项目都是用户偏爱的(标签1)或不偏爱的(标签0)。 对于推荐情况,其中每个用户按标度(例如0到10标度)对项目进行评分,然后通过阈值确定(例如,评级值<6被认为不喜欢,而评级值> 6被认为是喜欢),则二分类方案可以可靠地应用。 在反馈机制未通过等级明确显示的情况下,可以通过测量参与度来激发偏好,例如在音乐推荐中,参与度可以定义为用户收听特定歌曲。

让U代表所有用户的集合,I代表所有商品的集合。 此模型中的预测任务是推断用户ui偏好项vj的概率:P(rij | ui,vj)

这里,rij∈{0,1}表示用户ui在项目vj上的评分。 使用此功能,可以向用户推荐其被用户偏爱的可能性最高的项目。 对于元学习,我们需要根据我们的问题来制定每个“任务”的定义。 由于我们的元学习策略的目的是学习一种对所有用户都足够通用的推荐模型,之后通过微调可以适应特定用户,因此我们将每个任务Tu定义为在给定一些用户的情况下向一个用户推荐项目的问题。 正例和负例为用户喜欢的某些商品和用户不喜欢的一些商品。

我们用φ参数化推荐算法,并用Fφ(·)表示。 我们使用它来建模用户ui项vj的偏好概率:P(rij | ui,vj) = Fφ(ui,vj)

Fφ(·)通常可以是任何函数逼近。 在“实验”部分中,我们将Fφ(·)视为线性模型,单层前馈神经网络和深层前馈神经网络,并对它们的性能进行比较分析。

任务定义

令p(T)表示所有任务的概率分布。 每个任务Ti 生成K1(从数据集D中提取的正负样本,作为Ti任务的训练集),生成K2(从数据集D中提取的正负样本,作为Ti任务的测试集)。数据集D由每个用户商品user-item对的(用户ID,项目ID,评分)元组组成。 任务Ti对应于用户ui。 新用户(用户冷启动)由新任务T表示。

每个任务Ti的问题描述是为用户ui推断测试集中每个K2项的评分。 当推荐模型适合任务Ti时,模型的参数φ变为φ’i。 与MAML相似,基于任务Ti的损失函数值,通过一些梯度更新从φ计算φ’i。

每个任务的优化

在这里,我们描述算法1的内循环优化。我们首先从p(T)采样一批任务,然后针对每个任务Ti,通过一个或多个梯度更新来更新推荐模型Fφ(·)。 这个想法是训练后的模型Fφ(·)对于所有任务来说都通用。这样,仅通过几个梯度更新,就可以使它适合于与新用户相对应的新任务Ti。任务Ti的梯度更新可以描述如下:

φi’ = φ − β1∇φLoss(Fφ)

以上表示一个梯度更新,但实际上我们发现10到20个更新效果最佳。 在实验部分中提到了这些实现细节。 步长β是一个超参数,我们将在下一个小节中描述的优化的外循环中对它进行元学习。

由于我们已将推荐问题表述为二分类,因此我们将损失函数Loss定义为交叉熵损失。

如第III-A小节所述,我们对数据集D采样K1用于训练时计算损失函数、K2完成下一个小节中所述的元更新(对应于特定任务的测试)。

在这里插入图片描述

元优化Meta-optimization

基于所有任务Ti〜p(T)的测试损失,元优化对应于参数φ的更新。 按照像MAML这样基于梯度的元学习技术的标准,元目标的形式化为:
在这里插入图片描述
重要的是要注意以下事实:对推荐模型的参数执行了元优化,而上述目标函数是使用每个任务Ti的各个参数φ’i计算的。 我们基于ADAM 或SGD 方法执行元优化,这是基于这些方法可产生良好性能。 在此也可以使用任何其他基于梯度下降的优化方案。 如果使用SGD,则可以描述梯度更新步骤
如下:(注意红框参数)
在这里插入图片描述
除了θ,我们还对β1的值进行元更新,β1是用于更新每个任务的梯度的步长。
在这里插入图片描述以这种方式从数据中学习β1的值使我们的方法更健壮,并且由于其值的初始化不正确而更不容易陷入局部最优。

推荐的整体元学习方案。 前向传播用于通过一些梯度更新来更新特定于任务的参数。 反向传播用于基于每个任务的测试损失来更新算法的参数。 在向新用户(冷启动用户)推荐期间,只需对算法的总体参数进行一些梯度更新,以使模型适合向新用户推荐项目。

实验

为了符号上的方便,我们将模型命名为MetaCS(基于元学习的简短冷启动推荐系统)。
我们通过对三个基准数据集(Movielens 100k,Netflix Challenge,和MyFitness Pal)进行实验来评估我们在电影推荐和食物推荐任务上的方法。 通过我们的实验,我们试图回答三个主要的研究问题(RQ):

  • 基于元学习的方法在推荐系统中能减轻用户多少冷启动问题(定量)?
  • 推荐系统是否还有助于改善非冷启动用户(长期使用该系统的用户)的推荐性能?
  • 对于具有常规偏好的用户,所提出的模型与baseline相比的概括性如何?

为了回答这些问题,我们对所有三个数据集上的方法与最新的基线推荐模型进行了比较分析。

Baseline

为了进行比较分析,我们考虑了不同的baseline以及我们提出的方法的变体。 对于我们的模型,我们专门考虑Fφ的以下变化:

  • 线性模型:Fφ(ui,vj)=σ(W0ui + W1vj + b)。 在此,φ= {W0,W1,b}表示线性回归模型的可训练权重。 Sigmoid函数σ(·)确保最终输出在(0,1)范围内,以表示概率值P(rij = 1 | ui,vj)。 将这类模型设为MetaCS-L。
  • 非线性SVM:这是一个非常简单的非线性模型。 我们使用高斯径向基函数(RBF)作为SVM中非线性分类的内核。 该内核的具体形式为:k(ui,vj)=exp(−γ|ui −vj|2)
    此处,γ> 0是通过网格搜索调整的超参数。将这类模型设为MetaCS-NN。
  • DNNL:对不同深度的DNN进行性能分析,以了解网络深度与推荐准确性之间的权衡。 将这类模型设为MetaCS-DNN。

除了这些变化之外,我们考虑其他baseline,即概率矩阵分解(PMF),RecGAN ,IRGAN ,MetaNeurIPS和T-SVD ++。 尽管所有结果都报告在测试数据上,但是对于网络配置的选择,仅使用了训练数据。 特别是,我们采用k = 5的k倍交叉验证。

数据集

在这里,我们讨论了三个数据集的统计信息以及用于实验的相关预处理。

  • Movielens:总数为100k数据集包含1997年9月至1998年4月的七个月内,来自943位用户的1682部电影的100,000个评分。此处,每个用户对至少20部电影进行了评分。 其中,随机选择了85%的用户数据作为训练集,其余用户的数据仅在测试期间使用。
  • Netflix:Netflix数据集包含1998年10月至2005年12月之间收集的来自4.8万名匿名Netflix用户的1万个电影标题的1亿个评级。这些评级是整数值,范围为1到5。我们表示评级值> 3 表示喜欢(即二进制标签1),而<3对应二进制标签为0。 随机选择了85%的用户作为训练集,其余用户的数据仅在测试期间使用。
  • MyFitnessPal(MFP):MFP数据集包含从2014年9月到2015年4月由9,900名MFP用户记录的587,187天的食物日记记录。如果用户消费了某个商品,我们将其分配为1,而对于未消费的商品,我们将其分配为0。在我们的评估中,随机选择了85%的用户作为训练集,其余用户的数据仅在测试期间使用。

评价指标

  • Precision@k:模型推荐的前k个建议中正确的数量。
  • AUC
  • 平均倒数排名(MRR):定义为第一个相关建议的排名的乘积倒数,在所有建议任务中平均。

实验设置

我们通过在Python 3中使用Pytorch库[45]来实现本文提出的方法,并使用ADAM优化器完成算法1中的训练。 该模型中唯一的超参数是β2,它通过对训练集进行k倍(其中k = 5)交叉验证的网格搜索在(0,1)范围内的10个点进行调整。 对于MetaCS-L,MetaCS-NN和MetaCS-DNN,β2的最佳值分别为0.5、0.6和0.4。 我们应用dropout rate = 0.6 的策略来有效地训练MetaCS-DNN模型。

我们基于开源代码和相应论文中提供的详细信息,实现了基线模型PMF,MetaNeurIPS,IRGAN,RRN,T-SVD ++和RecGAN。 我们在三个数据集上评估这些模型,并对每个模型的超参数进行微调,以评估它们在每个数据集上的最佳性能。

推荐系统应用于新用户

在训练期间,我们从数据中排除了15%的用户。然后,我们对15%的用户(实际上是系统的“新用户”)评估经过训练的模型。表一说明了新用户(冷启动)测试集上不同模型的性能。显然,MetaCS-DNN即我们提出的以深度神经网络作为推荐算法的方法比所有其他基准模型的性能要好得多。有趣的是,即使是单层神经网络MetaCS-NN,其性能也比其他基准模型好得多。这表明我们的整体元学习框架可以有效地处理冷启动问题,而与所使用函数逼近器的深度无关。因此,所提出的方法是健壮的。

图2显示了Precision @ 1随梯度下降次数变化的变化,以便在测试过程中获得最佳性能。这对应于第三节中描述的测试算法2。显然,仅需要几个梯度更新(小于30)就可以微调训练后的模型(算法1),以适应测试期间的新冷启动用户。这表明所提出的方法足够快,可以部署在在线交互式推荐系统中,以减轻用户的冷启动问题。
在这里插入图片描述

推荐系统应用于非新用户

在本节中,我们旨在确定提出的MetaCS方法在一般推荐设置中也有效,即在向长期使用该系统的非冷启动用户推荐商品时。为了进行训练,我们考虑了每个数据集中85%的数据,因此每个用户的某些商品在训练期间被保留。推荐系统的任务是推断用户对这些被保留的商品的评分。

表二说明了与基准模型的性能相比,本文所提出模型的性能。显然,在所有指标中,MetaCS-DNN优于所有其他基线模型。**这有力地表明,提出的方法不会以非冷启动用户行为为代价优化冷启动推荐。**因此,所提出的方法在冷启动场景中以及在一般推荐设置中均表现良好。

推荐系统应用于常规和折衷用户

在本节中,我们将针对不同的用户行为对推荐准确性进行分析。公认的是,一些用户在他们的偏好方面更加常规,而另一些用户倾向于偏好各种各样的项目,因此在选择时折衷。为此,我们分析了推荐的准确度,相对于用户评分(或消费)的唯一商品数与该用户评分(或消费)总数之比。 然后,我们对每个数据集的用户进行平均。该分析类似于在推荐系统上的基准文件中进行的类似分析。

图3显示“被评估的唯一项目数与被评估的项目总数之比”呈明显的下降趋势。应当预料到这是由于潜在消耗品的大量组合导致的搜索空间爆炸。在此图中,x轴上的小比例表示了常规行为,因为它代表了相对不变的用户偏好。相比之下,折衷行为是由各种物品的消耗所指示的,因此在x轴上的比率很大。从图3可以明显看出,MetaCS-DNN在图的低比率区域和高比率区域中都具有Precision @ 1的高值。这表明所提出的模型能够对用户的常规偏好趋势和多样化偏好趋势进行建模。

MetaCS-DNN规模分析

在本节中,我们将分析MetaCS-DNN框架的深度和宽度在推荐准确性方面的变化。如果推荐的方法确实可靠,那么将深度增加到一个点以上不应导致推荐准确性的显着提高。我们进行实验以推断该假设是否确实正确。

图4显示了本文所提出的方法MetaCS-DNN在Precision @ 1下随网络深度(高度)和任何层的最大宽度的变化。显然,当网络的深度和最大宽度都在大约2000到3000范围内时,就会出现最大推荐精度(以Precision @ 1表示)。当网络变得越来越深时,精度会下降。 。这是因为,由于推荐数据集本质上是稀疏的(用户仅消耗整个消耗品集中的一小部分),因此较大的网络在训练过程中容易过拟合,而在测试过程中表现较差。当网络较浅时,不能准确地捕获用户对项目的潜在偏好趋势。

总结

在本文中,我们描述了一种基于元学习的强大推荐模型的设计,该模型可有效解决冷启动问题。具体来说,我们设计了一个推荐模型,该模型足够通用,足以合理地满足广泛用户的需求。通过在测试阶段执行少量梯度更新,可以轻松地将训练后的模型用于特定用户。通过详细的仿真研究,结果表明,训练后的模型适合于冷启动(新)用户,所需的梯度更新就非常少,并且针对这些用户的推荐准确性大大优于现有的基线模型。此外,也表明,对于非冷启动用户来说,这种上述收益并不以牺牲一般推荐性能为代价。未来工作是,是设计一个交互式平台,以实现我们的算法并在向物理用户的实时建议中测试其有效性。

附录

常规用户VS折衷用户
常规用户:只喜欢特定类型的商品。
折衷用户:倾向于偏好各种各样的项目,因此在选择时折衷。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值