MetaSelector: Meta-Learning for Recommendation with User-Level Adaptive Model Selection 走读

摘要

推荐系统经常面对包含高度个性化的用户历史数据的异构数据集,在这些数据集中,没有哪个模型可以为每个用户提供最佳建议。我们在公共和私有数据集上都观察到了这种普遍存在的现象,并在追求优化每个用户的推荐质量的过程中解决了模型选择问题。我们提出了一个元学习框架,以促进推荐系统中对用户类型的自适应模型选择。在此框架中,将使用来自所有用户的数据来训练推荐系统集合,然后通过元学习对模型选择器进行训练,以使用用户特定的历史数据为每个用户选择最佳的单个模型。我们在两个公共数据集和一个真实世界的生产数据集上进行了广泛的实验,证明了我们提出的框架在AUC和LogLoss方面实现了对单个模型基线和样本级别模型选择器的改进。特别是,当将这些改进部署在在线推荐系统中时,可能会带来巨大的利润增长。

Intro

在推荐系统中,深度学习技术从大量用户数据中发现有用的行为模式,并在各种场景下提供精确且具有个性化的推荐。来自一个用户的数据可能稀疏且不足以支持有效的模型训练。在实践中,深度神经网络在大量用户上进行协作训练,因此区分特定用户进行个性化推荐非常重要。因此,某些用户识别过程通常会与模型训练过程保持一致,例如为每个用户编码唯一的ID或用户历史信息,或者在提出建议之前对用户本地数据进行微调。

尽管某些推荐模型可以实现比其他模型更好的总体性能,但是对于每个用户而言,不可能有一个模型比其他模型具有更好的性能。换句话说,可以通过不同的推荐模型来实现对不同用户的最佳性能。我们在线上环境和公共数据集上都观察到了这种现象。例如,在一个在线广告系统中,同时部署了多个点击率预测模型。我们发现,没有任何一个模型对所有用户都表现最佳。此外,就平均评估而言,没有哪个模型能达到历史最佳性能。这意味着推荐模型的性能对特定的用户数据敏感。因此,深度推荐系统中的用户级模型设计具有研究兴趣和实用价值。

在这项工作中,我们解决了用户级模型选择问题,以提高个性化推荐质量。 给定一个深层模型集合,目标是从中为每个用户选择最佳模型,或将这些模型组合起来以发挥最大优势。 我们在特定推荐模型的上方引入模型选择器,以决定要为用户使用哪种模型。 考虑到元学习的快速适应能力,我们制定了元学习设置下的模型选择问题,并提出了元选择器,该方法通过元学习方法来训练模型选择器和推荐模型。

元学习算法通过从许多相关任务中学习,最终模型能有效地解决新任务。特别令人感兴趣的是基于优化的方法,例如MAML算法,该方法适用于参数由随机梯度下降(SGD)更新的各种模型。 MAML涉及两级元学习过程。外循环位于任务级别,在该级别,算法维护参数的初始化。目的是优化初始化,以便在应用于新任务时,在对训练集进行一次或几次渐变更新后,初始化会导致测试集的最佳性能。内部循环在任务内执行。接收到外部循环中维护的初始化后,该算法将调整训练集上的参数,并根据测试集评估模型。测试装置上的评估结果将损失信号返回到外部环路。经过元训练之后,在元测试或部署阶段,学习到的初始化可以快速适应新任务。

如果我们将每项任务视为学习预测用户选择偏好的模型,那么Mete-Learning非常适合模型选择。如图1所示,在我们的方法中,我们使用基于优化的元学习方法来构造MetaSelector,该MetaSelector学习从多个任务中进行模型选择,其中一个任务由一个用户的数据组成。给定推荐请求作为输入,MetaSelector在推荐模型上输出概率分布。在元训练阶段,学习优化MetaSelector的初始化[14]。

在每个轮次中,都会抽样一批任务,每个任务都有一个支持集和一个查询集。在每个任务的支持集上,根据MetaSelector的输出进行软模型选择。使用通过将最终预测与真实情况进行比较而获得的训练损失来更新MetaSelector的参数。然后,对查询集评估适配的MetaSelector,并类似地计算测试损失以更新外循环中的初始化。推荐模型在外循环中一起更新,可以在元训练过程之前进行预训练。在部署阶段,通过学习到的初始化,MetaSelector使用个性化的历史数据(支持集)适应单个用户,并汇总新查询的推荐模型结果。

我们通过实验证明了我们提出的方法在两个公共数据集和一个生产数据集上的有效性。在所有实验中,MetaSelector在AUC和LogLoss方面均明显优于baseline。我们还观察到,对推荐模型进行预训练对于实现MetaSelector的功能至关重要。

本文贡献:
总而言之,我们的贡献是三方面的。首先,我们解决了推荐系统的模型选择问题,这是由于观察了公开和实际生产数据集上用户之间不同模型的性能变化所致。其次,我们提出了一种新颖的框架MetaSelector,该框架引入了元学习,从而在涉及两个或多个推荐模型的混合推荐系统中制定了用户级模型选择模块。 该框架可以进行端到端的培训,不需要手动定义元功能。据我们所知,这是从基于优化的元学习角度研究推荐模型选择问题的第一项工作。第三,我们在公共和实际生产数据集上进行了广泛的实验,以提供有关在模型选择中优化哪个级别的见解。结果表明,MetaSelector可以提高单个基准模型和样本级别选择器的性能,显示出MetaSelector在实际推荐系统中的潜力。

相关工作

由于我们研究了如何在混合推荐系统中将元学习应用于模型选择,因此我们首先调查了有关元学习和模型选择的相关工作。 此外,我们最初观察到了推荐模型在现实世界中工业CTR预测问题中的不同表现。 因此,我们还将回顾一些经典的点击率预测模型。

基于优化的元学习算法

在元学习中,目标是在一组任务上学习一个模型,以使其能够快速适应新任务。一种研究方向是基于度量的元学习,旨在学习任务中样本之间的相似性。诸如匹配网络和原型网络。另一个方向是基于优化的元学习,该元学习最近通过实验证明了,方法针对few-show分类问题的有效性。在各种方法中,有些专注于学习优化器,例如基于LSTM的元学习器和带有外部记忆memory的元网络。另一个研究部门旨在学习良好的模型初始化参数,以使模型在少量梯度更新后具有在有限样本的新任务上具有最佳性能。在我们的工作中,我们认为MAML 和Meta-SGD 是与模型和任务无关的。这些基于优化的元学习算法有望提取和共享先前任务集中可传递的特征。如果我们将每项任务视为学习预测用户选择偏好的推荐模型,那么每个用户不仅会收到个性化的选择建议,还将受益于具有相似潜在功能的其他用户的选择。

推荐系统的模型选择

在推荐系统中,由于用户之间的数据分布不均,因此没有一个的最佳模型可以为每个用户提供最佳推荐结果。这意味着不同用户之间的推荐质量差异很大,并且某些用户可能收到的推荐不令人满意。解决此问题的一种方法是赋予用户选择或切换推荐系统的权利。结果,可以从用户子集收集显式反馈,为新用户生成初始状态。

另一个解决方案是混合推荐系统,它结合了多个模型以形成一个完整的推荐模型集。这种推荐模型集可以融合不同推荐模型的优势。混合推荐系统的设计有两种方法。一种是软选择,即计算不同推荐系统的单个评分函数的线性组合。一项著名的工作是特征加权线性叠加(FWLS),它可以通过线性回归来学习模型预测的系数。研究的另一方向训练一个针对每个用户或针对每个样本,或针对整个数据集选择最佳的推荐模型。但是,上面提到的大多数工作都限于协同过滤算法,并且需要手动定义的元功能,这非常耗时。此外,尽管性能有相当大的提高,但FWLS之类的方法主要集中在样本级优化上,该方法缺乏可解释性,无法解释为什么某些模型对特定用户有效,而对其他用户却不适用。相反,我们提出的MetaSelector可以进行端到端训练,而无需额外的元功能。据我们所知,我们提出的框架是第一个探索不利用协同过滤完成CTR预测的模型选择问题。通过对样本级别和用户级别的模型选择进行广泛的实验,我们还提出论文对模型选择最优化级别的见解。

CTR预测

点击率(CTR)预测是(CPC)广告系统中的一项重要任务。 CTR预测的模型架构已经从浅到深发展。 作为一种简单但有效的模型,逻辑回归已在广告行业中广泛使用。 考虑到特征合取,Rendel提出了因式分解机(FMs),通过将特征合取为两个潜在矢量的乘积来学习特征合取的权重。 作为FM的一种变体,已经证明现场感知分解机(FFM)在某些CTR预测竞赛中是有效的。 为了捕获高阶特征交互,随后开发了基于深度网络的模型架构。 例子包括Deep Crossing [35],Wide&Deep [6],PNN [30],DeepFM [15]和DIN [42]。

性能分析

在本节中,我们首先介绍我们对真实工业广告系统中推荐模性能的观察。接下来,我们通过两个公共数据集进行了一些先导实验以量化此现象。

在线上测试中的模型性能

为了比较不同模型的性能,我们实施了四种最新的CTR预测模型,包括浅层模型和深层模型。 然后,我们将这些模型部署到大型广告系统中,以通过在线A / B测试来验证它们的不同性能。

实验设定用户已分为四个组,每个组至少包含一百万个用户。 每个用户组都从四个模型之一接收推荐结果。 我们的广告系统使用第一价格排名方法,这意味着候选广告将按bid * pCTR进行排名,并以降序显示。 出价由广告客户提供,而点击率则由我们的点击率预测模型生成。 每千有效成本(eCPM)用作评估指标。

在线实验中的观察我们在图2中显示了24小时内四个模型的eCPM值趋势。由于商业机密,eCPM的绝对值被隐藏了。 我们看到,在在线A / B测试期间,没有哪个模型可以达到历史最佳性能。 例如,通常,模型I和模型III在白天的效果很差。 但是,模型I和模型III分别在上午7点至晚上8点以及下午5点到下午6点 达到了领先的性能 。 我们还注意到,尽管Model IV平均表现最佳,但在特定时间段内的eCPM低于其他某些模型。

在公共数据集上的模型性能

我们对MovieLens和Amazon Review数据集进行了一些试验性实验,以量化模型在不同用户上的不同性能。 我们考虑了四个模型(LR,FM ,FFM 和DeepFM)。 我们通过比较LogLoss为每个用户选择最佳模型。
如表1所示,通常,DeepFM的性能要优于其他模型:DeepFM是MovieLens中近40%用户的最佳模型,而Amazon中52%以上用户的最佳模型。 尽管是两种数据集中最受欢迎的模型,但在MoviesLens中仍然有18.49%的用户和Amazon中有13.61%的用户选择FM。

方法

在本节中,我们将详细介绍建议的模型选择框架MetaSelector的技术细节。 假设有一组用户,其中每个用户u∈U具有可用于模型训练的数据集Du。 数据点(x,y)∈Du由特征x和标签y组成。 请注意,我们提出的框架为推荐模型提供了通用的训练方式,并且与特定的模型结构和数据格式无关。

框架

MetaSelector包含两个主要模块:基本模型模块和模型选择模块。 接下来,我们描述工作流程的细节。

基本模型模块:基本模型M是指参数化推荐模型,例如LR或DeepFM。 具有参数θ的模型M用M(·;θ)表示,这样,给定特征x时,该模型输出M(x;θ)作为真实标签y的预测。 假设在基本模型模块中有K个模型M1,M2,…,MK,其中Mk由θk参数化。请注意,M可能具有不同的结构,因此包含不同的参数θk。 通常,该模块允许不同的基础模型使用不同的输入,而在下文中,我们假设所有模型都具有相同的输入形式,以便于说明。

模型选择模块:该模块包含一个在基本模型模块之上运行的模型选择器S。 模型选择器S将数据特征x和基础模型M(x;θ)的输出作为输入:=(M(x;θ1),M(x;θ2),…,M(x;θK)) θ:=(θ1,θ2,…,θK),并输出基本模型的分布。 假设S由φ设置参数,则选择结果为S(x,M(x;θ);φ)。 在实践中,S可以是多层感知器(MLP),仅将x作为输入(没有M(x;θ)),并在基本模型和最终预测上生成分布λ= S(x;φ)。 是相应的加权平均值⟨λ,M(x;θ)⟩。

元训练MetaSelector

将MetaSelector与以前的模型选择方法区分开的关键因素是,我们使用元学习来学习模型选择器S,如算法1所示。我们的算法将MAML扩展到MetaSelector框架中。 原始MAML应用于单个预测模型,而在本例中,MAML用于联合学习模型选择器和基础模型。
MetaSelector: Meta-Learning for Recommendation with User-Level Adaptive Model Selection 走读
Episodic Meta-training
元训练过程以轮次方式进行。 在每轮中,从大量训练人群中抽取一批用户作为任务(第5行)。 对于每个用户u,从Du采样一个支持集DuS和一个查询集DuQ,它们分别被视为对应于用户u的任务中的“训练”集和“测试”集(第7行)。 我们采用元学习文献中的通用做法,即保证DuS和DuQ之间不相交以提高泛化能力。 在对每个任务task执行任务内适应过程后(第8-18行),在轮次结束时,根据从任务中接收到的损耗函数更新模型选择器的初始化参数φ和基础模型的参数θ(第20行)。 此处将保留初始化,并将在部署后使其适应新用户。 接下来,我们描述任务中的适应过程。

In-task Adaptation
给定当前固定的参数θ和φ,MetaSelector首先迭代支持集DuS以在基本模型上生成每项分布λ(第9行),然后得到最终预测p(x;θ,φ)是输出M(x;θ)的凸组合(第10行)。训练损耗LDu(θu,φ)是通过对Dsu(第12行)中数据点上的l(p(x;θ,φ),y)进行平均来计算的,其中L是预定义的损耗函数。在这项工作中,我们专注于点击率预测问题,并使用LogLoss作为损失函数:
MetaSelector: Meta-Learning for Recommendation with User-Level Adaptive Model Selection 走读
其中y∈{0,1}指示数据样本是否为正样本。然后,对基础模型和模型选择器的参数执行梯度更新步骤,从而得出适用于特定任务的一组新参数θu和φu(第13行)。然后,使用更新后的基本模型参数和模型选择器(第14-18行),以与计算训练损失类似的方式,在查询集上计算出测试损失LDQu(θu,φu)。请注意,通过保持任务内自适应的路径(从(θ,φ)到(θu,φu)),可以将测试损失LDQu(θu,φu)表示为θ和φ的函数,并传递到外循环以更新θ和使用诸如SGD或Adam的梯度下降方法。

Jointly Meta-training θ and φ.
我们进一步注意到,θ和φ在外部循环(第20行)中一起更新,分别用作基础模型和模型选择器的初始化。 更新参数以适应每个用户(第13行)。 这一步对于MetaSelector在用户级别进行操作(即通过基本模型和适用于特定用户的模型选择器模块执行用户级别的模型选择)至关重要。 情节式元学习过程在获取MetaSelector的可学习初始化以实现对用户的快速适应方面起着重要作用。 元训练的目标可以表述为:
MetaSelector: Meta-Learning for Recommendation with User-Level Adaptive Model Selection 走读
Learning Inner Learning Rate α
内部学习率α在正常模型训练过程中通常是一个超参数,也可以通过将损失函数也视为α的函数,在元学习方法中进行学习。结果表明,每参数学习的内部学习率α(与θ长度相同的向量)相对于MAML在回归和图像分类方面取得了一致的提高。 可以对算法1进行相应的修改:在第13行中,内部更新步骤变为:MetaSelector: Meta-Learning for Recommendation with User-Level Adaptive Model Selection 走读
其中◦表示Hadamard积。 考虑θu,φu作为α的函数,第20行的外部更新步骤变为:
MetaSelector: Meta-Learning for Recommendation with User-Level Adaptive Model Selection 走读
梯度通过θu和φu流向α。 目标函数可以这样写:
MetaSelector: Meta-Learning for Recommendation with User-Level Adaptive Model Selection 走读
在实践中,我们发现学习向量α可以显着提高MetaSelector推荐任务的性能。

Meta-testing/Deployment.
对新任务的元测试MetaSelector遵循与元训练中相同的任务适应过程(第7-17行),此后计算评估指标,例如AUC和LogLoss。 可以考虑单独的一组元测试用户(与元训练用户没有交集)来证明元学习对新任务的概括能力。

Simplifying
我们为MetaSelector提出了元训练的简化版本,其中不需要针对基本模型进行任务内调整。**基本模型在元训练之前被预先训练,然后被固定。**对模型选择器进行了总体训练。我们注意到,此过程也属于元学习范式,因为使用用户mnbz更新了φ,其中,对于每个用户u,使用支持集DuS生成分布λ,并通过计算单独的测试损失进行评估查询集DuQ。这使MetaSelector能够在用户级别学习并有效地推广到新用户。在元测试阶段,基础模型以及模型选择器是固定的,训练集仅用于模型选择器以在基础模型上生成分布。简化的MetaSelector可能在实用的推荐系统中特别受关注,在这些系统中,由于计算和时间成本而限制了任务内自适应,例如,使用设备上模型向移动用户推荐新闻。

实验

在本节中,我们评估提出的方法的经验性能,并且主要关注于CTR预测任务,其中预测质量起着非常重要的作用,并直接影响业务收入。 我们使用两个公共数据集和一个实际生产数据集进行实验。 表2总结了所选数据集的统计数据。我们提出并尝试解决两个主要的研究问题:

  • 模型选择可以帮助CTR预测吗?
  • MetaSelector可以为个性化模型选择带来哪些好处?

数据集

  • Movielens-1m:包含来自6040个用户的100万个电影评分,每个用户至少具有20个分级。 我们将5星和4星评级作为正面反馈,并用1标记,其余标记用0标记。我们选择以下功能:user_id,年龄,性别,职业,user_history_genre,user_history_movie,movie_id,movie_genre,拍摄日期和季节。
  • Amazon-Electronics:包含来自亚马逊的用户评论和元数据,已被广泛用于产品推荐。 我们从集合中选择一个名为Amazon-Electronics的子集,并将其成形为二进制分类问题,例如Movielens-1m。 我们保留至少5个评分的用户。 所选功能包括user_id,item_id,item_category,季节,user_history_item(包括5个最近评级的产品),user_histor
  • Production Dataset:为了证明我们提出的方法在实际应用中的有效性以及用户上的自然数据分布,我们还根据工业推荐任务在大型生产数据集上评估了我们的方法。 我们的目标是根据用户的历史行为来预测用户点击推荐的移动服务的可能性。 在此数据集中,每个用户至少有203条历史记录。

baseline

我们所提议的方法与两种竞争者进行比较:单一模型和具有模型选择器的混合推荐器。