英语原文共 4 页,剩余内容已隐藏,支付完成后下载完整资料
广泛和深度学习在推荐系统中的应用
摘要:
广义的线性模型的非线性转换被广泛应用于离散输入的深度回归和分类问题上。通过广泛的跨产品功能记忆功能交互转换是有效且可解释的,而一般化则需要更多的特征工程支持。用更少特征工程,深度神经网络可以通过选择低维特征推广到看不见的特征组合,为稀疏特征而学习的密集嵌入。然而,带嵌入的深层神经网络可能会过度拟合,当用户项目互动少且排名靠前时,建议相关性较低的项目。在本文中,我们介绍广泛和深度学习-联合训练的广泛线性模型和深度神经网络-结合内存和泛化推荐系统的优势。我们在Google Play上生产并评估了该系统,拥有超过十亿活跃用户的商业移动应用商店用户和超过一百万个应用。在线实验结果结果表明,与“仅宽版”和“仅深层”模型相比,“宽和深”应用的获取量显着增加。我们还已在TensorFlow中开源了我们的实现。
关键词:广泛和深度学习, 推荐系统.
注: 这里的广泛在文中应该指的是高复用的意思
简介
推荐系统可以视为搜索排名系统,其中输入查询是一组用户和上下文信息,并且输出是项目的排名列表。 给定一个查询,推荐任务是找到相关的数据库中的项目,然后根据某些项目对项目进行排名目标,例如点击或购买。与一般搜索排名问题类似,推荐系统中的一项挑战是实现两者的记忆和概括。 记忆可以大致定义为学习项目或特征的经常同时出现,以及利用历史数据中可用的相关性。另一方面,泛化基于可传递性相关性,并探索过去从未或很少发生过的新特征组合。 基于记忆的建议通常比较主题化和与用户已经拥有的商品直接相关执行的动作。 与记忆相比,一般化倾向于提高推荐内容的多样性项目。 在本文中,我们重点介绍应用程序推荐Google Play商店出现问题,但该方法应该适用于通用推荐系统。
对于工业环境中的大规模在线推荐和排名系统,可以使用广义线性模型,由于逻辑回归简单,可扩展且可解释,因此被广泛使用。模型训练时经常使用二值化离散特征。例如,如果用户安装了Netflix,二值化特征“ user_installed_app = netflix”的值为1。可以实现记忆有效地在稀疏上使用跨产品转换特征(例如AND(user_installed_app = netflix,impres sion_app = pandora”),如果用户已安装,则其值为1、Netflix,然后再显示pandora。这说明了特征对的共现与目标相关标签。可以使用以下功能添加泛化功能:较小的粒度,例如AND(user_installed_category = video,impression_category = music),但通常需要手动进行功能设计。跨产品转换的一个局限性在于,它们不能推广到训练数据中未出现的查询项特征对。
基于嵌入的模型,例如分解机或深度神经网络可以通过学习低维数来推广到以前看不见的查询项特征对每个查询和商品功能的密集嵌入向量,减轻了特征工程的负担。 但是,这是不同的善于学习有效的低维表示当基础查询项矩阵为离散和高维度,例如具有特定偏好的用户或吸引人的利基产品。 在这种情况下,大多数查询项对之间应该没有交互,但是密集的嵌入将导致所有预测的非零查询-项目对,因此可以过度拟合,减少查询量相关建议。 另一方面,具有跨产品特征变换的线性模型可以记住这些“例外规则”的参数要少得多。
在本文中,我们提出了广泛和深度学习框架的工作,以同时实现记忆和拟合。通过联合训练线性模型组件和神经网络组件如图1所示。
该论文的主要贡献包括:
广泛和深度学习框架,用于联合训练带有嵌入的前馈神经网络和具有特征转换的线性模型,用于离散输入的通用推荐系统。
广域网的实施和评估。在Google Pla上生产的深度推荐系统,拥有超过十亿活跃用户的移动应用商店用户和超过一百万个应用。
我们已经开源的TensorFlow中的高级API。
虽然想法很简单,但我们证明了框架大大提高了应用程序的下载率。在移动应用商店中,同时满足训练模型和服务速度要求。
推荐系统概述
在图2中,显示了应用推荐系统的概述。查询,可以包括各种用户和用户访问应用程序时生成上下文功能商店。 推荐系统返回应用列表(也称为展示次数),用户可以在其上执行某些操作,例如点击或购买。 这些用户操作,连同查询和印象一起记录在记录为学习者的训练数据。
由于数据库中有超过一百万个应用程序,因此难以为每个查询详尽地评分每个应用程序
在服务等待时间要求内(通常为O(10)毫秒)。 因此,接收到查询的第一步是检索。 检索系统返回项目的简短列表最适合使用各种信号查询的查询,通常是机器学习模型和人工定义的结合规则。 减少候选库后,排名系统将所有项目按其得分进行排名。 分数通常是P(y | x),用户动作标签y的概率,特征值x,包括用户功能(例如,国家/地区,语言,受众特征),上下文特征(例如设备,日期,星期几)和展示功能(例如,应用年龄,应用的历史统计数据)。 在本文中,我们专注于使用广泛和深度学习框架的排名模型。
广泛和深度的学习
3.1广泛的组成部分
宽分量是模型的广义线性模型形式y = wT x b,如图1所示(左)。 y是预测,x = [x1,x2,...,xd]是d个特征的向量,w = [w1,w2,...,wd]是模型参数,b是偏差。特征集包括原始输入功能和转换后的特征。最重要的转变之一是跨产品转换,定义为:
其中Cki是布尔变量,如果第i个功能是第k个转换phi;k的一部分,则为1,否则为0。
对于二进制功能,请进行跨乘积转换(例如,当且仅当“ AND(gender = female,language = en)”)为1构成特征(“性别=女性”和“语言= en”)全部为1,否则为0。 这捕获了交互之间的二元特征,并增加了非线性广义线性模型。
3.2 深度的组成部分
深入的组成部分是前馈神经网络,如图1所示(右)。 对于分类要素,原始输入是要素字符串(例如,“ language = en”)。 每这些离散的高维分类特征是首先转换为低维且密集的实值向量,通常称为嵌入向量。 嵌入的尺寸通常约为O(10)至O(100)。 随机初始化入向量,然后训练值以最小化最终向量。模型训练中的损失函数。然后将这些低维的特征密集的嵌入向量馈入隐藏层前向神经网络的特征中。 具体来说,每个隐藏层执行以下计算:
其中l是层号,f是激活函数,通常是整流线性单位(ReLU)。 a(l),b(l),和W(l)是第l层的激活,偏差和模型权重。
3.3 联合训练
宽分量和深分量相结合。使用其输出对数几率的加权总和作为预测,然后将其馈入一种常见的对数损失函数以进行联合训练。请注意,联合训练和集成学习之间是有区别的。在集成学习中,单独的模型在不知道每个模型的情况下分别进行训练其他,并且它们的预测仅在已有的时间进行组合。而不是训练时间。相反,联合训练同时采用以及它们的总和的权重在训练时记录。对模型有影响大小也是如此:对于集成学习而言,由于训练是不相交的,因此每个单个模型的大小通常需要更大(例如,更多特征和变量)以实现集成学习合理的准确性。相比之下,对于联合训练宽分量只需要用少量交叉乘积来补充深层部分的弱点特征转换,而不是全尺寸的模型。
宽和深模型的联合训练是通过反向传播从输出到宽边的梯度来完成的。同时使用颗粒化批处理的模型的深层部分随机优化。 在实验中,我们使用了L1规则化的遵循正规领导(FTRL)算法作为模型大部分的优化程序,而AdaGrad 是最深的部分。
组合模型如图1所示(中心)。对于逻辑回归问题,模型的预测为:
其中Y是二元类标签,sigma;(·)是S型函数,phi;(x)是原始特征x的叉积变换,b是偏差项。 Wwide是所有较宽的模型权重,Wdeep是所应用的权重在最终激活a(lf)上。
系统实现
应用程序推荐系统的实施包括三个阶段:数据生成,模型训练,和模型,如图3所示。
数据生成
在此阶段,一段时间内的用户和应用印象数据时间用于生成训练数据。 每个例子
对应一个对象。 标签是应用程序获取:如果安装了标记的对象应用程序,则为1;否则为0。
在此阶段还会生成词汇表,这些表是将分类功能字符串映射到整数ID的表。系统为所有字符串功能计算ID空间发生次数超过最小次数。 通过将特征值x映射到其累积分布函数,可以将连续的实值特征标准化为[0,1]。P(Xle;x),分为nq个分位数。 归一化值是第i个分位数中的值。在数据生成期间计算分位数边界。
模型训练
我们在实验中使用的模型结构如下所示。图4.在培训期间,我们的输入层将接受培训数据和词汇,并生成带有标签的稀疏和密集特征。 广泛的组成部分包括用户安装的应用的跨产品转换的过程和展示应用。 对于模型的深层部分,A 32-为每个类别学习维嵌入向量特征。 我们将所有嵌入与密集特征,从而产生约1200个维的密集向量。 然后将连接的向量输入3个ReLU层,最后是逻辑输出单元。
广泛和深度模型的培训规模超过5000亿例子。 每次收到一组新的培训数据时,该模型需要重新训练。 但是,从每次从头开始计算量很大,而且会延迟从数据到达到提供更新模型的时间。为了应对这一挑战,我们实施了热启动用嵌入初始化新模型的系统以及先前模型的线性模型权重。
将模型加载到模型服务器之前,请先热启动运行模型,以确保它不会导致服务实时交通方面的问题。 我们凭经验验证相对于先前模型的模型质量进行完整性检查。
模型服务
模型经过训练和验证后,我们将其加载到模型服务器。 对于每个请求,服务器都会收到一组应用检索系统和用户中的应用候选列表为每个应用评分的功能。 然后,对应用进行排名从最高分到最低分,我们将应用显示给用户按此顺序。 分数通过跑步计算宽和深模型的正向推理传递。为了满足10毫秒量级的每个请求,我们使用多线程并行性优化性能。通过并行运行较小的批处理,而不是对全部进行评分单个批处理推断步骤中的候选应用程序。
5 实验结果
评估广泛和深度学习的有效性一个真实的推荐系统,我们进行了现场实验并从两个方面对系统进行了评估:应用获取和服务性能。
5.1应用程序获取
我们在A / B测试框架中进行了3周的在线实时实验。 对于对照组,随机选择了1%的用户,并提供了由先前版本的排名模型生成的建议,该排名模型是高度优化的全范围物流模型,具有丰富的跨产品特征转换。对于实验组,向1%的用户展示了宽和深模型产生的建议,
具有相同特征集的训练。 如表1所示,宽和深模型提高了应用的下载率。应用商店的主要目标网页相对于 3.9%对照组(具有统计学意义)。 结果是也与仅使用深度具有相同特征和神经网络的模型的一部分结构,宽和深模式的增益为 1%,仅限深度模型(具有统计意义)。
(表一)
除了在线实验,我们还展示了保持上的接收器操作员特征曲线(AUC)设为离线。 宽和深层的离线状态略高AUC,对在线流量的影响更大。 一可能的原因是离线状态下的展示次数和标签数据集是固定的,而在线系统可以生成通过将归纳与记忆相结合,提出新的探索性建议,并从新用户的反馈中学习。
5.2服务绩效
高吞吐量和低延迟的服务挑战着我们商业广告所面临的高流量移动应用商店。 在流量高峰时,我们的推荐服务器每秒超过1000万个应用程序。 使用单线程在一个批次中对所有候选者进行评分需要31毫秒。 我们实施了多线程,并将每批分成较小的大小,这大大减少了客户端延迟14毫秒(包括服务开销),如表2所示。
(表二)
6 相关工作
将宽线性模型与跨产品特征变换和深度神经网络相结合的想法具有密集嵌入的设计是受先前工作启发的,例如因式分解机,它为线性添加了泛化通过分解两个变量之间的相互作用来建立模型作为两个低维嵌入之间的点积向量。 在本文中,我们通过学习嵌入之间的高度非线性相互作用通过神经网络而不是点积。
在语言模型中,使用n-gram联合训练递归神经网络(RNN)和最大熵模型已提出功能以显着降低RNN通过学习直接权重来实现复杂性(例如隐藏层大小)在输入和输出之间。 在计算机视觉方面,深入残差学习已被用来减少难度使用捷径训练更深的模型并提高准确性
跳过一层或多层的连接。 联合训练具有图形模型的神经网络也已被应用根据图像对人体姿势进行估计。 在这项工作中,我们探索了前馈神经网络和线性模型的联合训练,稀疏之间的直接联系功能部件和输出单元,用于通用推荐以及离散输入数据的排序问题。
在推荐系统文献中,深入合作通过结合深度学习来探索学习内容信息和协作过滤(CF)评分矩阵。 以前也有关于移动应用推荐系统,例如AppJoy在用户的应用使用记录中使用CF。 与在先前的工作中基于CF或基于内容的方法不同,我们共同针对用户和印象训练了广泛和深度模型应用推荐系统的数据。
7 结论
记忆和拟合对于推荐系统。 宽线性模型可以有效地使用跨积特征变换来存储稀疏特征交互,而深度神经网络可以通过低维嵌入生成以前看不见的特征交互。 我们介绍了宽而深
结合两种类型优势的学习框架模型。 我们制作并评估了框架在Google Play的推荐系统上的商业应用商店。 在线实验结果显示宽和深模型带来了重大改进在仅限广泛和深度模式下进行的应用购买。
8. 参考文献
<p
剩余内容已隐藏,支付完成后下载完整资料</p
资料编号:[238582],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。