英语原文共 8 页
适用于YouTube推荐的深度神经网络
摘要
YouTube代表了现存规模最大,最复杂的工业推荐系统之一。 在本文中,我们将对系统和深度学习带来的显着性能改进进行描述进行高级描述。本文根据类别的阶段信息检索二分法进行划分:首先,我们详细介绍了一个深度候选生成模型,然后描述了一个独立的深度排序模型。 我们还提供实践经验和见解,这些经验教训和见解来自于设计,迭代和维护一个具有巨大面向用户的影响的大型推荐系统。
关键词 推荐系统; 深度学习;可扩展性
1.引言
YouTube是世界上最大的创建,共享和发现视频内容的平台。 YouTube推荐活动有助于帮助超过10亿用户从不断增长的视频集中发现个性化内容。 在本文中,我们将重点关注最近在YouTube视频推荐系统上进行的巨大的深度学习。 图1显示了YouTube移动应用主页上的推荐。从三个主要方面来看,推荐YouTube视频极具挑战性:
bull;规模:许多现有的推荐算法证明在小问题上运行良好,无法在我们的规模上运行。 高度专业化的分布式学习算法和高效的服务系统对于处理YouTube的庞大用户群和语料库至关重要。
bull;新鲜度:YouTube拥有非常动态的语料库,每秒上传大量视频。 推荐系统应该足够响应以模拟新上传的内容以及用户采取的最新动作。 从探索/开发角度来看,可以理解将新内容与完善的视频进行平衡。
bull;噪声:由于稀疏性和各种不可观察的外部因素,YouTube上的历史用户行为很难预测。 我们很少获得用户满意度的基本事实,而是模拟有噪声的隐式反馈信号。 此外,与内容相关联的元数据结构不良而没有明确定义的本体。 我们的算法需要对这些特定的数据特征具有鲁棒性。
与谷歌其他产品领域的结合,YouTube已经经历了一种基本的范式转变,使用深度学习作为通用解决方案,适用于所有学习问题。我们的系统建立在GoogleBrain [4]上,最近开源为TensorFlow [1] .TensorFlow提供了一个灵活的框架,用于使用大规模分布式培训来试验各种深度神经网络架构。我们的模型学习了大约十亿个参数,并接受了数百个例子的培训。
与矩阵分解方法[19]中的大量研究相比,使用深度神经网络进行推荐系统的工作相对较少。神经网络用于推荐[17]中的新闻,[8]中的引用和[20]中的评论等级。协同过滤被用作深度神经网络。
本文的结构如下:第2节介绍了简要的系统概述。第3节更详细地描述了候选生成模型,包括它如何经过培训并用于提供建议。实验结果将显示该模型如何从深层隐藏单元和其他异构信号中获益。第4节详细介绍了排名模型,包括如何修改经典逻辑回归以训练预测观察时间(而非点击概率)的模型。实验结果表明隐藏层深度在这种情况下也是有帮助的。最后,第5节介绍了我们的结论和经验教训。
2.系统概述
我们的推荐系统的整体结构如图2所示。该系统由两个神经网络组成:一个用于候选生成,一个用于排名。候选生成网络将用户的YouTube活动历史中的事件作为输入,并检索小的子集(数百个)来自大型语料库的视频。这些候选者通常与用户通常具有高精度相关。候选生成网络仅通过协同过滤提供广泛的个性化。用户之间的相似性以粗略特征表示,例如视频观察的ID,搜索查询标记和人口统计。
在列表中呈现一些“最佳”推荐需要精细级别表示区分高召回候选人的相对重要性。排名网络通过使用描述视频和用户的丰富功能集根据期望的目标函数为每个视频分配分数来完成该任务。最高得分视频呈现给用户,按其得分排列。
推荐的两阶段方法允许我们从非常大的语料库(数百万)视频制作推荐,同时仍然确定设备上出现的少量视频是个性化的并为用户参与。此外,这种设计可以实现其他来源产生的混合候选,例如早期作品中描述的那些[3]。在开发过程中,我们广泛使用离线理论(精确度,召回率,排名损失等)来指导迭代改进我们的系统。然而,为了最终确定算法或模型的有效性,通过实时实验进行A / B测试。
在现场实验中,我们可以衡量点击率,观看时间以及衡量用户参与度的许多其他指标的细微变化。这很重要,因为实时A / B结果并不总是与离线实验相关联。
3.候选生成
在候选人生成中,巨大的YouTube语料库可能被淘汰数百个与用户相关的视频。这里描述的推荐器的前身是训练的矩阵分解方法在等级损失[23]。我们的神经网络的早期迭代模型用浅层模仿这种因式分解行为仅嵌入用户之前观看的网络。从这个角度来看,我们的方法可以被视为非线性的分解技术的推广。
3.1作为分类的推荐
我们将推荐视为很多类别分类预测问题令分类的地方变得准确数百万的特定视频观看时间t基于用户U和来自语料库V的视频i(类)上下文C,其中u代表一个高维\嵌入“用户,上下文对和RN表示嵌入每个候选视频。 在此设置中,嵌入是简单地映射稀疏实体(单个视频,用户等)成为RN中的密集矢量。 深层神经的任务网络是学习用户嵌入你的功能用户的历史记录和上下文,可用于区分在使用softmax分类器的视频中。
高效的极端多类
为了有效地训练这样一个拥有数百万课程的模型,我们依靠一种技术从背景中抽取负面类分发(\候选抽样),然后纠正通过重要性加权进行抽样[10]。 对于每个例子对于真正的标签,交叉熵损失最小化和抽样的负面类。在实践中几千对负数进行抽样,相当于100多倍于传统softmax的加速。 一种流行的替代品方法是分层softmax [15],但我们无法达到相当的准确度。 在分层softmax中,遍历树中的每个节点涉及区分通常不相关的类集,使得分类问题更加困难并且降低性能。
在服务时,我们需要计算最可能的N类(视频),以便选择要呈现给用户的前N个。 在数十毫秒的严格服务延迟下对数百万项进行评分需要在类的数量上具有次线性的近似评分方案。 YouTube以前的系统依赖于散列[24],这里描述的分类器使用类似的方法。 由于在服务时不需要来自softmax输出层的校准似然,因此评分问题减少到可以使用通用点积空间中的最近邻搜索[12]。 我们发现A / B结果对最近邻搜索算法的选择不是特别敏感。
3.2模型架构
受连续词汇语言模型[14]的启发,我们在固定词汇表中为每个视频学习高维嵌入,并将这些嵌入提供给前馈神经网络。用户的观察历史由可变长度的稀疏视频ID序列表示,其通过嵌入映射到密集矢量表示。网络需要固定大小的密集输入,并且简单地平均嵌入在几种策略(总和,分量最大等)中执行得最好。重要的是,嵌入通过正常梯度下降反向传播更新与所有其他模型参数一起学习。特征被连接成一个宽的第一层,然后是几层完全连接的Recti_ed线性单元(ReLU)[6]。图3显示了具有下面描述的其他非视频监视功能的一般网络架构。
3.3异构信号
使用深度神经网络作为矩阵分解的推广的一个关键优势是可以轻松地将任意连续和分类特征添加到模型中。搜索历史记录的处理方式与监视历史记录类似 - 每个查询都被标记为unigrams和bigrams,并且每个标记都是嵌入的。平均后,用户的标记化嵌入式查询表示汇总的密集搜索历史记录。人口统计功能对于提供先行设备非常重要,因此建议可以为新用户提供合理的建议。用户的地理区域和设备是嵌入和连接的。简单的二进制和连续特征(例如用户的性别,登录状态和年龄)直接输入到网络中,因为实际值归一化为[0; 1]。
“示例年龄”功能
每秒都会将数小时的视频上传到YouTube。推荐这个最近上传的(\ fresh“)内容对于YouTube作为产品非常重要。我们始终注意到用户更喜欢新鲜内容,但不以牺牲相关性为代价。除了简单推荐新视频的一阶效果用户希望观看,有一个关键的次要现象,即引导和传播病毒内容[11]。
机器学习系统通常表现出对过去的隐含偏见,因为它们经过训练以从历史实例中预测未来行为。视频流行度的分布是非常不稳定的,但是我们的推荐者产生的语料库上的多项分布将反映几周培训窗口中的平均观察可能性。为了纠正这个问题,我们在训练期间将训练样例的年龄作为特征。在服务时,此功能设置为零(或略微为负),以反映模型在培训窗口的最后进行预测。图4展示了这种方法对任意选择的视频的效果[26]。
3.4标签和上下文选择
强调该建议通常涉及解决代理问题并将结果转移到特定背景很重要。一个典型的例子就是假设准确地预测评级会导致有效的电影推荐[2]。我们发现,这种替代学习问题的选择对于A / B测试的性能具有极大的重要性,但是很难用先实验进行测量。所有YouTube视频(甚至是嵌入在其他网站上的视频)都会生成培训示例,而不仅仅是观察我们制作的建议。否则,新内容的出现将非常困难,而推荐者将过度偏向于剥削。如果用户通过我们的建议以外的方式发现视频,我们希望能够通过协同过滤快速将此发现传播给其他人。改进实时指标的另一个关键见解是为每个用户生成训练样例,在损失函数中同等地对我们的用户进行加权。这阻止了一小群高度活跃的用户主导损失。有点违反直觉,必须非常小心地保留来自分类的信息,以防止模型利用网站的结构并覆盖替代问题。以用户刚taylor swift发布搜索查询的情况为例。由于我们的问题是预测下一个观看的视频,给定此信息的分类器将预测最有可能观看的视频是那些出现在taylor swift的相应搜索结果页面上的那些“。毫无疑问,再现用户的最后一个搜索页面作为主页推荐表现非常糟糕。通过丢弃序列信息并用无序的令牌包表示搜索查询,分类不再直接知道标签的来源。视频的自然消费模式通常会导致非常不对称的共同观看概率。剧情系列通常是按顺序观看的,用户经常会发现一种类型的艺术家,从最广泛的流行开始,然后再关注较小的利基。因此,我们发现预测用户下一个手表的性能要好得多,而不是预测随机保持的手表(图5)。许多协同过滤系统通过提取随机项并从用户历史记录中的其他项预测它来隐式地选择标签和上下文(5a)。这会泄漏未来的信息并忽略任何不对称的消费模式。相反,我们通过选择随机监视来回滚“用户的历史记录”,并且仅输出用户在保持标签监视(5b)之前所采取的动作。
3.5特征和深度的实验
如图6所示,添加特征和深度显着提高了保持数据的精确度。在这些实验中,包含1M视频和1M搜索标记的词汇表,每个包含256个燕麦,最大包含50个近期手表和50个最近搜索。 softmax层在相同的1M视频类上输出多项分布,其尺寸为256(可以将其视为单独的输出视频嵌入)。 这些模型经过培训,直到与所有YouTube用户融合,对应于数据的几个时代。 网络结构遵循一个共同的“塔”模式,其中网络底部最宽,每个连续隐藏层的单元数量减半(类似于图3)。深度网络实际上是一个线性分解方案,其执行方式与 前一个系统。增加了宽度和深度,直到增量收益减少并且收敛变得困难。
4 排名
排名的主要作用是使用印象数据来专门化和校准特定用户界面的候选预测。例如,用户通常可能以高概率观看给定视频,但由于缩略图图像的选择,不太可能点击主页印象。在排名期间,我们可以访问更多描述视频的功能以及用户与视频的关系,因为只有几百个视频得分,而不是候选人一代的数百万。排名对于对不能直接比较的不同候选人来说也是至关重要的。我们使用具有类似架构的深度神经网络作为候选生成,使用逻辑回归为每个视频印象分配独立分数(图7)。然后按该分数对视频列表进行排序并返回给用户。我们的排名目标是根据实时A / B测试结果不断调整,但通常是每次展示的预期观看时间的简单函数。按点击率排名通常会促使用户无法完成的欺骗性视频,而观看时间更能捕捉参与度[13,25]。
4.1特征表示
我们的特征与传统的分类和连续/序数特征分类相隔离。我们使用的分类特征在其基数上变化很大:一些是二进制的(例如,用户是否登录)而其他人具有数百万个可能的值(例如用户的最后一个搜索查询)。根据功能是仅贡献单个值还是一组值进一步划分功能。单价分类特征的示例是正被评分的印象的视频ID,而相应的多价特征可以是用户已观看的最后N个视频ID的包。我们还根据功能是描述项目的属性还是用户/上下文的属性来对功能进行分类。每个请求计算一次查询功能,同时为每个评分项目计算展示功能。特征工程我们通常在排名模型中使用数百个特征,大致在分类和连续之间平均分配。尽管有望深入学习手工减轻工程特征的负担,但我们的原始数据的本质并不容易直接输入到前馈神经网络中。我们仍然花费大量的工程资源将用户和视频数据转换为有用的功能。主要挑战在于表示用户操作的时间顺序以及这些操作如何与正在评分的视频印象相关。我们观察到最重要的信号是描述用户之前与项目本身和其他类似项目的交互的信号,与其他人在排名广告中的经验相匹配[7]。例如,考虑用户过去使用上传视频得分的频道的历史记录 - 用户在此频道观看的视频数量是多少?用户最后一次观看有关此主题的视频是什么时候?描述过去用户对相关项目的操作的这些连续功能特别强大,因为它们可以在不同的项目中很好地概括。我们还发现将候选代的信息以特征的形式传播到排名中是至关重要的,例如,哪些消息来源提名这个视频候选人?他们分配了什么分数?描述过去视频展示频率的功能对于在推荐中引入也是至关重要的(连续请求不会返回相同的列表)。如果用户最近推荐了一个视频但没有观看它,那么模型自然会降低这种印象下一页加载。提供最新的印象和观看历史是本文范围之外的工程专长,但对于生成响应式建议至关重要。嵌入分类特征与候选生成类似,我们使用嵌入到将稀疏分类特征映射到适合于神经网络的密集表示。每个唯一ID空间(\词汇表)具有单独的学习嵌入,其维度大致与唯一值的数量的对数成比例增加。这些词汇表是通过在训练之前传递一次数据而构建的简单查找表。非常大的基数ID空间(例如视频ID或搜索查询术语)通过在排序后仅基于其在点击的展示中的频率仅包括前N来截断。词典外值简单地映射到零嵌入。与候选生成一样,多价分类特征嵌入在被馈送到网络之前被平均。重要的是,同一ID空间中的分类特征也共享底层的嵌入。例如,存在许多不同功能使用的视频ID的单一全局嵌入(用户观看的视频ID,用户观看的最后视频ID,
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。