《Sampling-Bias-Corrected Neural Modeling for Large Corpus Item Recommendations》翻译

发布于 10 天前  16 次阅读


摘要

许多推荐系统从一个非常大的语料库中召回和评分项目。处理数据稀疏和幂律项目分布(长尾分布)的一个常见方法是,从其内容特征中学习项目表征。除了许多基于矩阵分解的内容感知系统,我们考虑使用双塔神经网的建模框架,其中一个塔(项目塔)编码各种项目内容特征。训练这种双塔模型的一般秘诀是优化从批内负样本计算出来的损失函数,这些负样本是从随机小批次中抽出的项目。然而,批内损失会受到抽样偏差的影响,可能会损害模型的性能,尤其是在高度倾斜分布的情况下。在本文中,我们提出了一种新的算法,用于估计流数据中的项目频率。通过理论分析和模拟,我们表明所提出的算法可以在不需要固定项目词汇表的情况下工作,并且能够产生无偏的估计,对项目分布的变化具有适应性。然后,我们应用抽样偏差校正的建模方法,建立了一个大规模的YouTube推荐的神经召回系统。该系统被部署为从一个拥有数千万视频的语料库中召回个性化建议。我们通过在两个真实世界的数据集上进行离线实验,证明了采样偏差校正的有效性。我们还进行了现场A/B测试,表明神经召回系统导致了YouTube推荐质量的提高。

引言

推荐系统帮助用户在许多互联网服务中发现感兴趣的内容,包括视频推荐[12, 18]、应用程序建议[9]和在线广告定位[38]。在许多情况下,这些系统在严格的延迟要求下,将数十亿用户与来自极其庞大的内容语料库的项目连接起来,其规模通常为数百万至数十亿。一个常见的做法是把推荐当作一个召回和排序的问题,并设计一个两阶段的系统[9, 12]。也就是说,一个可扩展的召回模型首先从一个大的语料库中召回出一小部分相关的项目,然后一个全面的排名模型根据一个或多个目标(如点击率或用户评价)重新排列召回的项目。在这项工作中,我们专注于建立一个现实世界中的学习型召回系统,用于个性化推荐,可扩展到数百万个项目。

给定一个{用户、上下文、项目}的三联体,建立一个可扩展的召回模型的常见解决方案是。1)分别学习{用户、上下文}和{项目}的查询和项目表示;2)在查询和项目表示之间使用一个简单的评分函数(如点积)来获得为查询量身定做的推荐。上下文通常表示具有动态性质的变量,如一天中的时间,以及用户使用的设备。表征学习问题通常在两个方面具有挑战性。1)对于许多工业规模的应用来说,项目的语料库可能非常大;2)从用户的反馈中收集的训练数据对于大多数项目来说是非常稀少的,因此导致模型预测对于长尾内容有很大的差异。面对广为报道的冷启动问题,现实世界的系统需要对数据分布变化进行自适应,以更好地浮现新鲜内容。

受Netflix奖[32]的启发,基于矩阵分解(MF)的建模已被广泛用于学习查询和项目的隐因子,以构建召回系统。在MF框架下,大量的推荐研究(如[21,34])解决了上述从大型语料库中学习的挑战。其共同的想法是利用查询和项目的内容特征。内容特征可以被粗略地定义为描述项目的各种特征,而不是项目ID。例如,视频的内容特征可以是从视频帧中提取的视觉和音频特征。基于MF的模型通常只能捕捉到特征的二阶互动,因此在表示具有各种格式的特征集合时能力有限。

image-20221124095600215

近年来,在计算机视觉和自然语言处理中深度学习的成功激励下,有大量的工作将深度神经网络(DNNs)应用于推荐。深度表征很适合在低维嵌入空间中编码复杂的用户状态和物品内容特征。在本文中,我们探讨了双塔DNNs在构建召回模型中的应用。图1提供了一个双塔模型架构的说明,其中左塔和右塔分别编码{用户,上下文}和{项目}。双塔DNN是从多类分类神经网络[19]中概括出来的,是一个多层感知器(MLP)模型,图1中的右塔被简化为带有项目嵌入的单层。因此,双塔模型架构能够对标签具有结构或内容特征的情况进行建模。MLP模型通常是用固定的项目词汇中的许多采样的负样本来训练。相比之下,对于深层物品塔,由于物品内容特征和计算所有物品嵌入的共享网络参数,通常对许多负样本进行采样和训练的效率很低。

我们认为批量softmax优化,即项目概率在随机批次的所有项目上计算,是训练双塔DNN的一般秘诀。然而,正如我们的实验所显示的那样,批量softmax受到采样偏差的影响,如果不进行任何修正,可能会严重限制模型的性能。在MLP模型中已经研究了重要性抽样和相应的偏差减少[4, 5]。在这些工作的启发下,我们提出使用估计的项目频率来纠正批量softmax的采样偏差。与MLP模型相比,输出的项目字典是固定的,我们针对的是词汇和分布随时间变化的流数据情况。我们提出了一种新的算法,通过梯度下降来勾画和估计项目频率。此外,我们还应用了偏差校正建模,并将其用于建立一个个性化的YouTube推荐召回系统。我们还介绍了一种连续的训练策略,旨在将流媒体数据与系统的索引和服务组件一起纳入。

本文的主要贡献包括:

  • 流媒体频率估计:我们提出了一种新的算法来估计数据流中的项目频率,受词汇和分布变化的影响。我们提供分析结果,以显示估计的方差和偏差。我们还提供了模拟,证明了我们的方法在捕捉数据动态方面的功效。
  • 建模框架:我们为构建大规模召回系统提供了一个通用的建模框架。特别是,我们将估计的项目频率纳入批处理softmax的交叉熵损失中,以减少批处理项目的采样偏差。
  • YouTube推荐:我们描述了我们如何应用建模框架来建立一个大规模的YouTube推荐召回系统。我们介绍了端到端的系统,包括训练、索引和服务组件。
  • 离线和线上实验:我们在两个真实世界的数据集上进行了离线实验,证明了采样偏差校正的有效性。我们还表明,我们为YouTube建立的召回系统在线上实验中带来了改进的参与度指标。

相关工作

内容感知和神经网络推荐器

利用用户和项目的内容特征对于提高泛化性和减轻冷启动问题至关重要。有一系列的研究专注于将内容特征纳入经典的矩阵分解框架中[23]。例如,广义的矩阵因式分解模型,如SVDFeature[8]和Factorization Machine[33],可以应用于纳入项目内容特征。这些模型能够捕捉到特征之间的双线性,即二阶相互作用。近年来,深度神经网络(DNNs)已被证明能有效提高推荐的准确性。由于高度非线性的性质,DNNs提供了更大的能力来捕捉复杂的特征互动[6, 35],与传统的因子化方法相比。He等人[21]直接应用协同过滤(CF)的直觉,并提供了一个神经CF(NCF)架构来模拟用户-项目的相互作用。在NCF框架中,用户和项目的嵌入被串联起来,并通过多层神经网络得到最终的预测结果。我们的工作在两个方面与NCF不同。1)我们利用双塔神经网络对用户-项目互动进行建模,这样就可以在亚线性时间内对大量的项目语料库进行推理;2)学习NCF依赖于点式损失(如平方或对数损失),而我们引入了多类softmax损失并明确地对项目频率进行建模。

在另一条工作线上,深度和循环神经网络模型如LSTM被应用于将时间信息和历史事件纳入推荐中,例如,[12,14]。除了学习独立的用户和项目表征,还有一组工作侧重于设计神经网络,特别是用于学习排名系统。值得注意的是,多任务学习一直是优化复杂推荐器的多个目标的核心技术[27, 28]。Cheng等人[9]用联合训练的宽线形模型和深度神经网络引入了一个wide-n-deep框架。

超大规模分类

Softmax是最常用的函数之一,用于设计预测多达数百万标签的大型输出空间的模型。很多研究都集中在训练大量类的softmax分类模型上,从语言任务[5, 29]到推荐系统[12]。当类的数量非常大时,一个广泛使用的技术是对类的子集进行采样,以加快训练速度。Bengio等人[5]的研究表明,一个好的采样分布应该是对模型的输出分布有适应性的。为了避免计算抽样分布的复杂性,许多现实世界的模型应用了一个简单的分布,如unigram或uniform作为代理。最近,Blanc等人[7]设计了一种高效且自适应的基于核的采样方法。尽管采样的softmax在各个领域都很成功,但它并不适用于标签具有内容特征的情况。在这种情况下,自适应采样也仍然是一个开放的问题。多项工作表明,基于树的标签结构,如分层softmax[30],对于建立大规模的分类模型非常有用,同时大大减少了推理时间。这些方法通常需要一个基于某些分类属性的预定义树状结构。因此,它们不适合纳入各种各样的输入特征。

双塔模型

构建具有双塔的神经网络最近在一些自然语言任务中成为一种流行的方法,包括为句子相似性建模[31]、响应建议[24]和基于文本的信息召回[17, 37]。我们的工作对这一研究方向做出了贡献,特别是证明了双塔模型在构建大规模推荐者方面的有效性。与上述文献中的许多语言任务相比,值得注意的是,我们专注于具有更大语料库规模的问题,这在我们的目标应用中很常见,如YouTube。通过现场实验,我们发现明确地对项目频率进行建模对于提高这种环境下的召回准确性至关重要。然而,这个问题在现有的工作中没有得到很好的解决

模型框架

image-20221124191805362

我们考虑推荐问题的一个常见设置,即我们有一组查询和项目。查询和项目分别由特征向量 表示。这里都是各种特征(如稀疏的ID和密集的特征)的混合物,而且可能是在一个非常高的维度空间。我们的目标是召回出一个给定查询的项目子集。在个性化场景中,我们假设用户和背景完全被记录在中。请注意,我们从有限数量的查询和项目开始,以解释这个直觉。我们的建模框架不需要这样的假设就可以工作。

我们的目标是建立一个具有两个参数化嵌入函数的模型

将模型参数及查询和候选物品的特征映射到维的嵌入空间。我们关注的是由两个深度神经网络表示的情况,如图1所示,即该模型的输出两个嵌入的内积。

我们的目标是从一个由个样本组成的训练数据集中学习模型参数,表示为:

表示一对查询与项目, 是每对查询与项目的奖励。

直观地说,召回问题可以被看作是一个具有连续奖励的多类分类问题。在每个标签同等重要的分类任务中,对于所有的正数对,。在推荐器中,可以被扩展以捕捉用户与某个候选项目的不同程度的接触。例如,在新闻推荐中,可以是用户花在某篇文章上的时间。给定一个查询,从项目中挑选候选物品的概率分布的一个常见选择是基于softmax函数,即:

通过进一步纳入奖励,我们考虑将以下加权对数似然作为损失函数:

非常大时,在计算分区函数,即方程(3)中的分母时,包括所有的候选样本是不可行的。一个常见的想法是在构建分区函数时使用项目的一个子集。我们专注于处理流数据。因此,与训练MLP模型时从固定的语料库中抽取否定词不同,我们只考虑使用批内项目[22]作为同一批次的所有查询的负样本。准确地说,给定一个由对组成的小型批次 ,对于每个,批次softmax为

在我们的目标应用中,批量内的项目通常是从幂律分布中取样的。因此,方程(5)引入了对完全softmax的巨大bias:由于被纳入一个批次的概率很高,受欢迎的项目被过度地惩罚为负样本。受采样softmax模型中使用的校正的启发[5],我们通过以下公式校正每个logit

这里表示随机批次中项目的抽样概率。我们将的估计推迟到下一节。

通过修正,我们有

然后将上述公式带入方程(4)中,可以得出

这是批损失函数。以 的学习率运行SGD,得到的模型参数更新为

img

请注意,并不要求固定的查询或候选者集合。因此,方程(9)可以应用于其分布随时间变化的流式训练数据。关于我们提出的方法的完整描述,见算法1。

例如,[2,10,25],用于近似的最大内积搜索(MIPS)问题。具体来说,高维嵌入的紧凑表示是通过量化[20]和粗量化器和积量化器的端到端学习[36]建立的。

归一化和温度。从经验上看,我们发现增加嵌入归一化,即,提高模型可训练性,从而使召回质量更高。此外,在每个Logit中加入一个温度,以使预测更加清晰,即。

在实践中,是一个超参数,被调整为最大化召回指标,如召回率或精确度。

流媒体频率估计

在这一节中,我们详细说明算法1中使用的流媒体频率估计。

考虑一个随机批次的流,其中每个批次包含一组项目。问题是要估计在一个批次中击中每个项目的概率。一个关键的设计标准是要有一个完全分布式的估计,以便在有多个训练工作(即workers)时支持分布式训练

在单机或分布式训练中,一个唯一的全局步骤,代表训练器消耗的数据批次的数量,与每个采样批次相关。在分布式设置中,全局步骤通常通过参数服务器在多个工作者之间进行同步。我们可以利用全局步骤,将一个项目的频率的估计转换为的估计,它表示该项目连续两次点击之间的平均步骤数。例如,如果每隔50步对一个项目进行采样,那么我们就有。全局步骤的使用为我们提供了两个好处。1)通过读取和修改全局步长,多个工作者在频率估计中隐式同步;2)估计可以通过一个简单的移动平均数更新来实现,它对分布变化具有适应性。

由于使用固定的项目字典并不实用,我们应用哈希数组来记录流媒体ID的采样信息。注意,引入散列可能会导致潜在的散列碰撞。我们将重新审视这个问题,并在本节的最后提出一个改进的算法。如算法2所示,我们保留两个大小为的数组。假设是一个哈希函数,将任何项目映射到中的一个整数,该映射可以基于ID或任何其他缩略图特征值。那么对于一个给定的项目记录了被采样的最新步骤,而包含的估计。我们使用数组来帮助更新数组。一旦项目在步骤中出现,我们就通过以下方式更新数组

被更新后,我们把分配给

对于每个项目,假设两个连续命中之间的步骤数遵循随机变量的分布,其平均值为。在这里,我们的目标是从样本流中估计。每当在步骤的批次中出现一个项目,就是的一个新样本。因此,上述更新可以理解为以固定的学习率运行SGD来学习这个随机变量的平均值。从形式上看,在没有碰撞的情况下,接下来的结果显示了这种在线估计的偏差和方差。

命题4.1。假设 是随机变量的一连串独立样本。让。考虑一个在线估计,对于

估计偏差由以下公式给出

对于方差我们有如下证明

通过取期望值,我们有

通过对的归纳,我们有(13)。对于方差,我们有

对于最后一项,我们有

image-20221124195212078

由于 是独立的,最后一项是零。那么通过对的归纳,我们有

方程(13)表明,当时,偏差 。此外,一个理想的初始化可以导致每一步的无偏估计。方程(14)给出了一个估计方差的上限。学习率对方差有两方面的影响。1)较高的速率会使取决于初始化误差的第一项快速减少;2)较低的速率会减少取决于 方差的第二项,并且不随时间而减少。

为了得到的估计抽样概率,我们可以简单地进行

分布式更新。我们考虑[13]中提出的分布式训练框架,其中模型参数分布在一组称为参数服务器的服务器上,多个工作者独立处理训练数据并与参数服务器通信以获取和更新模型参数。算法2可以扩展到这种设置。数组和全局步骤参数分布在参数服务器上。每个工作者通过对一个小批量的项目进行采样来执行第4行。详细地说,在步骤被从参数服务器中获取。然后如图所示被更新并送回。因此, gorithm 2中的更新可以与神经网络的非同步随机梯度下降训练一起执行。

多重散列。受count-min sketch[11]中类似想法的启发,我们对算法2进行了扩展,利用多个哈希函数来减轻由于碰撞造成的项目频率的过度估计。改进后的估计结果在算法3中提出。更新每个数组遵循算法2的相应步骤。中的每个桶都可能是对真实步距的预测不足,因为它可能代表了因碰撞而产生的多个项目的联合。因此,在推理中,我们取我们的估计值的最大值,代表两个连续命中之间的步骤数。

youtube神经网络召回系统

我们应用所提出的建模框架,并将其扩展到为YouTube的一个特定产品建立一个大规模的神经召回系统。这个产品根据用户正在观看的视频(称为种子视频)来生成视频推荐。该推荐系统包括两个阶段:召回(又称召回)和排名。在召回阶段,我们有多个召回器,每个召回都会根据用户和种子视频的约束条件产生数百个视频推荐。这些视频随后被一个完全成熟的神经网络排名模型打分并重新排名。在这一节中,我们重点讨论在召回阶段建立一个额外的召回,特别是在数据、模型结构、训练和服务等方面。

模型概览

image-20221124200931912

我们建立的YouTube神经召回模型由查询和候选网络组成。图2说明了一般的模型结构。在任何时间点,用户正在观看的视频,即种子视频,提供了一个关于用户当前兴趣的强烈信号。因此,我们利用了大量的种子视频特征和用户的观看历史。候选塔的建立是为了从候选视频特征中学习。

训练标签。视频点击量被用作正标签。此外,对于每次点击,我们构建一个奖励来反映用户对视频的不同参与程度。例如,表示点击的视频观看时间少。另一方面,表示整个视频都被观看了。奖励被用作样本的权重,如公式(8)所示。

视频特征。我们使用的视频特征包括分类的和密集的特征。分类特征的例子包括视频,和频道ID。对于这些实体中的每一个,都会创建一个嵌入层,将每个分类特征映射到密集向量。通常情况下,我们要处理两种分类特征。一些特征(例如,视频ID)在每个视频中都有一个严格的分类值,所以我们有一个嵌入向量代表它。或者,一个特征(例如,视频主题)可能是一个分类值的稀疏向量,代表该特征的最终嵌入将是稀疏向量中每个值的嵌入的加权和。为了处理字典外的实体,我们将它们随机分配到一组固定的哈希桶中,并为每个哈希桶学习一个嵌入。哈希桶对于模型捕捉YouTube上的新实体非常重要,特别是在使用第5.2节所述的顺序训练时。

用户特征。我们使用用户的观看历史来捕捉用户对种子视频以外的兴趣。一个例子是用户最近观看的 个视频ID的序列。我们将观看历史视为一个词袋(BOW),并通过视频ID嵌入的平均值来表示它。在查询塔中,用户和种子视频特征在输入层被融合,然后通过前馈神经网络。

对于同一类型的ID,嵌入参数在相关的特征中是共享的。例如,同一组视频ID嵌入被用于种子、候选和用户的过去观看。我们确实做过非共享嵌入的实验,但没有观察到明显的模型质量改进。

顺序渐进式训练

我们的模型在Tensorflow[1]中实现,并在许多worker和参数服务器上用分布式梯度下降法进行训练。在YouTube上,每天都有新的训练数据产生,训练数据集也相应地按天组织。模型训练以如下方式利用了这种顺序结构。训练器从最古老的训练实例到最近的训练实例依次消耗数据。一旦训练器赶上了最近一天的训练数据,它就等待第二天的训练数据到来。通过这种方式,模型能够跟上最新的数据分布转变。训练数据基本上是由训练器以流的方式消耗的。我们应用算法2(或算法3,如果使用多个哈希值)来估计项目频率。方程(6)的在线更新使模型能够适应新的频率分布。

索引和模型服务

召回系统中的索引管道会定期创建一个Tensorflow SavedModel用于在线服务。索引管道分为三个阶段:候选实例生成、嵌入推理和嵌入索引,如图3所示。在第一阶段,根据某些标准从YouTube语料库中选择一组视频。它们的特征被提取出来并添加到候选例子中。在第二阶段,图2的右塔被用于计算候选例子的嵌入。在第三阶段,我们基于树状和量化散列技术,训练一个基于Tensorflow的嵌入指数模型。我们略过这些细节,因为它们不是本文的重点。最后,服务中使用的SavedModel是由图2的查询塔和索引模型拼接而成的。

image-20221124210453237

实验结果

在这一部分,我们展示了实验结果,以证明所提出的项目频率估计和建模框架的有效性。

关于频率估计的模拟

image-20221124211026572

为了评估算法的有效性,我们首先进行了模拟研究,我们首先应用每个提议的算法来适应一个固定的项目分布,然后在某一步骤后改变分布。更准确地说,在我们的设定中,我们使用一个固定的项目集,每个项目根据概率独立采样 ,其中,i在[M]中。我们在一个输入流上进行模拟,每一步都对一批项目进行采样。在这里,中的每个项目都是从中不加替换地取样。因此,我们要适应的项目抽样概率是。在最初的步骤中,我们保持采样分布的静态。然后我们将其转换为用于其余步骤。为了评估估计的准确性,我们使用了重新标定的估计概率集之间的距离,正是,作为估计误差。它也可以理解为估计值 之间的总差异。

具体来说,我们报告了。1)学习率的影响,以及2)多次哈希的影响。

学习率的影响。我们设定,并对使用数组大小。此外,我们用所有的零来初始化数组,用值100来初始化的每个条目。分布在步骤时进行切换。我们使用一个哈希函数并运行算法2。图4显示了一组学习率的全局步骤数上的估计误差。我们观察到,所有三条曲线都收敛到一个误差水平,这个误差来自散列碰撞和估计差异。随着学习率的提高,算法对分布变化的适应性更强,但如命题4.1所示,最终方差更高。

多个哈希值的影响。在第二次模拟中,我们运行算法3,用不同数量的哈希函数进行实验。图5显示了时的估计误差曲线。我们为选择了不同的数组大小,这样在这三种设置下,哈希桶的总数保持不变。图5显示了即使在相同的参数数量下,使用多个哈希函数来减少估计误差的有效性。

维基百科页面召回

在本节中,我们在维基百科数据集[16]上进行了页面召回实验,以显示采样偏差校正的批量损失4的功效。

数据集。我们考虑的任务是预测维基百科页面之间的站内链接。对于一对给定的源页和目的页,如果有一个从的链接,则标签为1,否则为0。每个页面由一组内容特征表示,包括页面URL、标题中的n-grams集合的词包表示,以及页面类别的词包表示。我们用英语图进行实验,它包括的页面, 的链接,的标题-grams,和的独特类别。

模型。我们将链接预测视为一个召回问题,即给定一个源页面,任务是从页面语料库中召回出目标页面。因此,我们训练了一个双塔神经网络,其中左塔和右塔分别映射源特征和目的特征。输入的特征嵌入在两个塔之间共享。每个塔有两个全连接的ReLU层,尺寸为[512, 128]。

基线。我们将提议的抽样偏差修正的批量软算法(correct-sfx)与没有任何修正的批量软算法(plain-sfx)进行比较,如公式(3)所示,以证明偏差修正的功效。此外,我们还考虑了平均平方损失,它被广泛用于推荐中的隐性反馈建模。该损失是观察到的配对的MSE和将所有未见过的配对推向常数先验的正则化项的组合,通常选择为0。在第3节介绍的框架下,该损失为

其中表示观察到的对的集合及其补充,是一个正超参数。在矩阵分解中,这种损失通常使用交替最小二乘法[23]或坐标下降法[3]进行训练,将正则化项写成两个格拉曼的矩阵内积,对于线性嵌入可以有效计算。最近,Krichene等人[26]通过SGD估计将格拉米亚计算扩展到非线性情况下。我们把这种方法称为mse-gramian。

训练和评估。对于所有的方法,我们使用批次大小1024,模型用Adagrad[15]和学习率训练,步骤为。对于频率估计,我们使用。我们保留了的链接进行评估。我们通过Recall@K来评估模型的性能,这主要是指在全页面语料库中,前 候选项目中包含真实标签的平均概率。mse-gramian中的参数是通过直线搜索来调整的,我们在此报告最佳结果。我们发现,输出层的归一化总是能提高模型的性能和训练的稳定性。我们只展示了归一化的结果。我们对plain-sfx和correct-sfx的多个温度值进行了实验。

image-20221124211814904

结果总结在表1中。对于每个温度值,correct-sfx都比相应的plain-sfx要好很多。看到温度对性能的影响是很有趣的,这表明在应用规范化时有必要仔细调整这个参数。我们还注意到,基于批量softmax的方法导致了比mse-gramian更好的性能。

youtube实验

我们基于第5节介绍的神经召回系统,在YouTube上进行离线和实时实验。我们使用的YouTube训练数据包括每天数十亿的点击视频,横跨许多天。

设置。回顾一下,我们使用的模型结构如图2所示。如前所述,如果输入的特征嵌入对查询塔和候选塔都可用,那么这两个塔就共享。我们对两个塔使用三层DNN,隐藏层大小为[1024, 512, 128]。我们使用Adagrad训练模型,学习率为0.2,批次大小为8192。对于频率估计,我们设定H=50M,m=1,α=0.01。回顾一下,我们采用了第5.2节中介绍的顺序训练。在本节的实验中,从YouTube语料库中选择的大约1000万个视频的索引每隔几小时就会定期建立。索引语料库会随着时间的推移而发生变化,例如,由于新鲜视频的上传。但它通常涵盖90%以上的训练实例。

离线实验。我们为所有被点击的视频指定 ,并通过召回被点击的视频时的召回率来评估模型的性能。我们简化了离线实验的奖励函数,因为为连续奖励定义一个适当的离线指标并不明显。为了纳入连续训练,我们在第 天后评估模型的性能,当时训练者完成了追赶阶段(设置为15天),并开始等待新的数据。对于 之后的每一天,我们保留10%的数据进行评估。为了说明每周的模式,我们报告7天的平均离线结果,即从。结果列于表2。我们再次看到,与mse-gramian相比,使用批量softmax有明显的改进。另外,在不同的设置中,项目频率校正的softmax的表现明显好于普通softmax。

image-20221124212135668

image-20221124212142796

线上实验。我们还在YouTube的A/B测试框架中进行现场实验。对于对照组的用户,视频是由生产系统推荐的。对于处理组,在将图2所示的神经召回系统的候选项目加入到提名阶段后,用户会被推荐。由于推荐用户喜欢点击的视频并不理想,对于现场实验,我们用奖励的方式训练模型,以反映用户对点击视频的真实参与度。我们报告与这个标签相一致的参与度指标。结果显示在表3中。可以看出,加入神经召回系统后,以前的制作系统有了很大程度的改善。此外,带有correct-sfx的模型比使用plain-sfx的基线要好很多,证明了采样偏差校正的有效性。

结论

在本文中,我们提出了一个通用的建模框架,用于为工业规模的应用建立大规模的内容感知的召回模型。我们提出了一种估计项目频率的新算法。理论分析和模拟证明了其正确性和有效性。我们应用所提出的建模框架,建立了一个用于YouTube推荐的神经召回系统。特别是,为了捕捉YouTube的数据动态,我们提出了一种顺序训练策略,流媒体频率估计算法可以很容易地与之结合。对维基百科链接预测和YouTube视频召回的离线实验显示,使用采样偏差校正法有明显的改善。在YouTube的现场实验也显示了用户对我们的神经召回系统所召回的候选物品的参与度有所提高。


面向ACG编程