首页/生活百态/正文
美团点评深度学习实践:优化推荐算法提升用户体验与精准度

 2025年02月20日  阅读 8

摘要:作者|潘·韦编辑|小近年来,深度学习已成为机器学习和人工智能领域中最关心的技术。互联网上有许多关于深度学习理论的文章,​​但是很少有人谈论实际应用。这是技术团队的深入学习实践,供您参考。在前面写作为中国最大的生活服务平台,的业务类型涵盖了食品,住房...

作者|潘·韦

编辑|小

近年来,深度学习已成为机器学习和人工智能领域中最关心的技术。互联网上有许多关于深度学习理论的文章,​​但是很少有人谈论实际应用。这是 技术团队的深入学习实践,供您参考。

在前面写

作为中国最大的生活服务平台, 的业务类型涵盖了食品,住房,运输,游戏和有趣的领域,具有数亿用户和丰富的用户行为。随着业务的迅速发展, 的用户和商人数量正在迅速增长。在这种情况下,通过优化推荐算法,用户可以更好地为他们提供感兴趣的内容,从而帮助用户更快,更方便地找到他们想要的东西。我们的目标是根据用户的兴趣和行为向用户感兴趣的内容,并创建一个高度准确,丰富和满足用户的推荐系统。为了实现这一目标,我们一直在尝试将新算法和新技术引入现有框架。

背景简介

自2012年竞争以来,深度学习已成为近年来机器学习和人工智能领域中最关注的技术。在深度学习的出现之前,人们使用诸如SIFT和HOG之类的算法来提取具有良好区别的特征,并与机器学习算法(例如SVM)相结合以识别图像。但是,诸如SIFT之类的算法提取的特征受到限制,从而导致游戏中最佳结果的错误率超过26%。卷积神经网络(CNN)的首次出现将错误率从26%降低到15%。微软团队在同年发表的论文表明,深度学习可以将2012年数据集的错误率降低到4.94%。

在接下来的几年中,深度学习在许多应用领域(例如语音识别,图像识别,自然语言处理等)取得了显着进步。鉴于深度学习的潜力,主要的互联网公司还将资源投资于科学研究和应用。因为人们意识到,在大数据时代,更复杂,更强大的深层模型可以深深地揭示大量数据带来的复杂而丰富的信息,并对未来或未知事件做出更准确的预测。

在深度学习方面也进行了一些探索。在自然语言处理领域,我们将深度学习技术应用于文本分析,语义匹配,搜索引擎分类模型等。在计算机视觉领域,我们将其应用于文本识别,图像分类,图像质量排序等。本文是作者的团队。基于2016年提出的广泛和深刻的思想,它根据其业务的某些特征在建议系统上创造了一些思想和实践经验。

评论推荐系统简介

与大多数推荐系统不同,由于其业务的多样性,我们很难准确捕获用户的兴趣或用户的实时意图。此外,我们建议的方案还将随着用户兴趣,位置,环境,时间等的变化而发生变化。评论建议系统主要面临以下挑战:

为了应对上述问题,我们定制了一个完整的推荐系统框架,包括基于机器学习的多选择产品回忆和分类策略,以及从大量大数据到高电平在线服务的脱机计算的推荐引擎。推荐系统的策略主要分为两个过程:召回和分类。召回主要负责生成推荐的候选集合,分类负责个性化多种算法策略的结果。

回想层

我们通过用户行为,场景等做出实时判断,并通过多种召回策略召回不同的候选人。然后将召回的候选人组合融合。候选融合和过滤层具有两个功能:一个是提高推荐策略的覆盖范围和准确性;此外,它还必须承担某些过滤责任,从产品和操作的角度制定一些手动规则,并过滤掉不符合条件的项目。以下是我们经常使用的一些召回策略:

用户协作过滤:找出与当前用户x最相似的n个用户,并根据某个项目的n个用户的分数估算x的分数。就相似性算法而言,我们采用了:

- 协作过滤:使用一组隐式因素与用户和产品联系。每种用户和每个产品都由向量表示,并且用户U对产品I的评估是通过计算这两个向量的内部产品来获得的。该算法的关键是根据已知的用户行为数据估算用户和产品的隐藏因子向量。

ITEM-CO滤波:我们首先将其隐藏空间的向量用于每个项目,然后使用它来计算用户U和未使用项目i的每个项目之间的相似性。最后,召回了顶部N的结果。

- :这是一种基于其中包含的实时信息(例如地理位置信息,WiFi店内,关键字搜索,导航搜索等)来抽象用户意图的策略。

- :移动设备的位置经常更改。不同的地理位置反映了不同的用户场景,并且可以在特定业务中充分利用。在建议的候选人召回中,我们还将根据用户的实时地理位置,工作场所,居住地和其他地理位置触发相应的政策。

排序层

每种类型的召回策略都会召回某些结果,这些结果需要在重复数据删除后均匀分类。分类评论和建议的框架可以大致分为三个部分:

具体推荐的流程图如下:

从总体框架的角度来看,每次用户请求时,系统都会将当前请求的数据写入日志中,并使用各种数据处理工具清洁,格式化和将原始日志降落到不同类型的存储系统中。中间。在培训期间,我们使用功能工程从处理后的数据集中选择培训和测试样品集,并使用它来训练和估计离线模型。我们使用各种机器学习算法,并通过离线AUC,NDCG和其他指标评估其性能。经过培训和评估,如果在测试集中显着改善了离线模型,则将启动用于在线AB测试。同时,我们还拥有多个维度的报告来支持模型数据。

在审核推荐排序系统中的应用

对于由不同的召回策略产生的候选集合,如果根据算法的历史效果确定算法的位置,则似乎有些简单而粗糙。同时,在每种算法中,不同项目的顺序仅来自由单个因素确定的一个或几个,这些排序方法只能在主要选择过程的第一步中使用。最终排序结果需要使用机器学习方法,使用相关排序模型并结合多个因素来确定。

现有排序框架简介

到目前为止,评论建议排序系统已经尝试了各种机器学习方法,例如线性,非线性和混合模型,例如逻辑回归,GBDT,GBDT+LR等。通过在线实验,发现与线性相比模型,传统的非线性模型(例如GBDT)可能不一定会在在线AB测试中显着改善CTR估计。线性模型(例如逻辑回归),因为它们的非线性性能相对较弱,所以它们无法区分现实生活中的非线性场景,并且经常过度地对历史数据中出现的数据进行过度修复。下图是一个线性模型,该模型根据内存对一些历史上单击的列表进行排名:

从图片来看,我们可以看到该系统建议在非常前部位置的一些长途商人。由于这些商人已被用户点击并具有很高的点击率,因此系统再次推荐。但是,此建议并未根据当前情况向用户推荐一些新颖的项目。为了解决此问题,需要考虑越来越复杂的功能,例如结合功能以替换简单的“距离”功能。如何定义和组合功能非常昂贵,并且更多地取决于手动体验。

深层神经网络可以学习一些项目和特征之间没有通过低维和密集的功能出现的功能之间的关系,并显着降低了与线性模型相比的功能工程需求,从而吸引了我们进行探索和研究。

在实际应用中,基于2016年提出的广泛和深层模型,并结合我们业务的需求和特征,我们合并了线性模型组件和深度神经网络,以形成一种在一种模型广泛深度学习中实现记忆和概括的方法框架。在以下各章中,我们将讨论如何执行样本筛选,功能处理,深度学习算法实现等。

样本选择

数据和功能是整个机器学习中最重要的两个链接,因为它们本身决定了整个模型的上限。评论和建议由于其自身的多个业务特征(包括外卖,商人,集体购买,酒店和旅行等)以及多种情况(商店中的用户,用户在家,异地请求等),我们的样品集比其他产品更多样化。改变。我们的目标是预测用户点击行为。点击的是正样本,单击的样本是负样本。同时,在培训期间,购买的样品在一定程度上加权。此外,为了防止过度拟合/不足,我们将正样本和负样本的比例控制在10%。最后,我们需要清洁训练样本并去除样品(当特征值相似或相同时,它们分别对应于正和负样品)。

同时,作为整个应用主页的核心模块,推荐的业务对新颖性和多样性的需求很高。在实施建议系统中,首先要做的就是确定应用程序方案的数据。 的数据可以分为以下类别:

深度学习中的功能处理

机器学习的另一个核心领域是功能工程,包括数据预处理,功能提取,功能选择等。

特征提取:基于原始数据构建新功能的过程。这些方法包括计算各种简单的统计数据,主成分分析和无监督的聚类。确定施工方法后,可以将其变成自动数据处理过程,但是功能构建过程的核心仍然是手动的。

功能选择:从许多功能中选择一些有用的功能。需要消除与学习目标无关的功能和冗余功能。如果计算资源不足或对模型的复杂性有限制,则需要丢弃一些不重要的功能。以下通常用于特征选择方法:

外卖通用评价标准_外卖通用评价模板_外卖通用评价

特征选择昂贵,功能构建成本很高。在推荐业务的早期阶段,我们对此并不强烈。但是,随着业务的开发,对点击率估算模型的要求越来越高,并且对功能工程的巨额投资不再满足我们的需求,因此我们希望找到一个新的解决方案。

深度学习可以自动结合和转换输入低阶功能,以获得高阶特征的特征,这也促使我们转向深度学习进行探索。深度学习的“特征自动提取”的优点在不同领域具有不同的性能。例如,对于图像处理,像素点可以用作低阶功能输入,并且通过卷积层自动获得的高阶特征具有相对良好的效果。在自然语言处理中,一些语义不是来自数据,而是来自人们的先验知识。使用先验知识构建的特征是有帮助的。

因此,我们希望使用深度学习来节省功能工程的巨额投资,并允许点击率估算模型和每个辅助模型自动完成功能构建和功能选择的工作,并始终与业务目标一致。这是我们在深度学习中使用的一些功能处理方法:

组合功能

对于功能的处理,我们遵循了行业中当前的常见方法,例如归一化,标准化,离散化等。但是值得一提的是,我们将许多组合功能引入模型培训。因为不同特征之间的组合非常有效,并且具有良好的解释,例如“商人是否在用户的永久居住中”,是否在用户处于永久居住地”,以及“商人和商人之间的当前距离“结合数据,然后离散数据。通过结合功能,我们可以很好地掌握离散功能中的固有连接,并在线性模型中添加更多非线性表达式。组合特性定义为:

正常化

归一化是根据特征矩阵的行处理数据。目的是在计算样品向量和其他内核函数之间的相似性时具有统一的标准,也就是说,它们都被转换为“单位向量”。在实际工程中,我们使用两种归一化方法:

Min-Max:

最小值是此功能的最小值,最大值是此功能的最大值。

(CDF):CDF也称为累积分布函数。数学含义是表示随机变量小于或等于其值x之一的概率。公式是:

在我们的离线实验中,在通过CDF处理连续特性后,与Min-Max相比,CDF的离线AUC增加了不到0.1%。我们猜测,由于某些连续功能不满足在(0,1)上均匀分布的随机函数,因此在这种情况下,CDF不如Min-Max那么直观和有效,因此我们在线采用了Min-Max方法。

快速聚合

为了使模型汇总更快并为网络提供更好的表示形式,我们将其设置为原始特征的每个连续特征,也就是说,对于每个功能X,派生了2个子功能:

实验结果表明,通过向每个连续变量引入2个子功能,将提高离线AUC的性能,但是考虑到在线计算的问题,在线实验中未添加这2个子功能。

选择优化器()

在深度学习中,选择正确的优化器不仅会加快整个神经网络训练过程,而且还可以避免在训练过程中陷入鞍点。本文将根据您自己的用法提供您对使用的优化器的一些理解。

(SGD)

SGD是一种常见的优化方法,它是在每次迭代中计算微型梯度,然后更新参数。公式是:

缺点是,对于损耗方程式存在相对严重的振荡,并且很容易收敛到局部最低限度。

为了克服严重的SGD振荡问题,将物理动量的概念引入了SGD中,并通过积累以前的动量来取代梯度。现在:

与SGD相比,这相当于从山坡向下行走。当没有电阻时,它的动量将变得越来越大,但是如果它遇到阻力,它的速度将会变小。也就是说,在训练过程中,训练速度在梯度方向保持不变的维度上变得更快,并且更新速度在梯度方向变化的尺寸上变慢,以便可以加速收敛并降低振荡。

与SGD相比,它等同于对学习率的额外约束,也就是说:

优势在于,在训练的早期阶段,由于GT很小,因此约束术语可以加速培训。在后期,随着GT的变化,分母将继续增长,培训最终将尽早结束。

亚当

亚当是一种与使用动量术语相结合的产品,以加快训练过程,并考虑到学习率的限制。每个参数的学习率使用梯度的一阶和二阶矩估计进行动态调整。亚当的主要优点是,在偏见校正后,每种迭代的学习率都有一定范围,从而使参数相对稳定。公式是:

在:

概括

通过练习,亚当结合了善于应对稀疏梯度和善于处理非平稳目标的优势,这比其他几个优化者更好。同时,我们还注意到许多论文将SGD作为优化函数。但是,与其他方法相比,在实践中,SGD需要更多的训练时间,而被困在马鞍点中的缺点都限制了其在许多真实数据上的性能。

损失功能的选择

深度学习还具有许多损失函数可供选择,例如平方方差函数(平均),绝对平方方差函数(平均),跨熵函数()等。在理论和实践中,我们发现正方形差异功能显而易见与线性模型相比,优势。主要原因是,尽管深度学习通过会更新W和B,但在获取大多数值时,激活函数的导数将落在左和右饱和间隔中,从而导致参数更新非常缓慢。特定的推导公式如下:

一般MSE定义为:

y是我们期望的输出,而a是神经元a =σ(WX+b)的实际输出。由于深度学习的后退转移机制,重量W和偏移B的校正公式定义为:

外卖通用评价标准_外卖通用评价_外卖通用评价模板

由于函数的属性,σ'(z)将在z获取大多数值时导致饱和。

公式是:

如果有多个样本,则整个样品集的平均横向熵为:

其中n表示样本号,而i表示类别号。如果用于分类,则可以简化上述公式:

与平方损耗函数相比,横熵函数具有非常好的特征:

可以看出,由于σ'术语不可用,因此W和B的更新不会受到饱和的影响。当错误很大时,重量会很快更新,并且当错误很小时,重量会缓慢更新。

宽深度模型框架

在实验的早期阶段,我们仅将单独的5层DNN模型与线性模型进行了比较。通过离线/在线AUC比较,我们发现简单的DNN模型对于CTR的改进而言并不明显。此外,单个DNN模型本身具有一些瓶颈。例如,当用户是不活动的用户时,由于自身和项目之间的相对互动相对较少,因此所得的特征向量将非常稀疏,并且深度学习模型正在处理这种情况。可能会有过多的概括,从而建议对用户本身的相关项目提出建议。

因此,我们将广泛的线性模型与深度学习模型相结合,同时包括一些组合特征,以便更好地掌握项目之间的共同关系 - 三个。我们希望,宽深度模型中的宽线性部分可以使用交叉功能来有效地记住稀疏特征之间的相互作用,而深度神经网络部分通过挖掘功能之间的相互作用来提高模型之间的概括能力。 。下图是我们广泛的深度学习模型框架:

在离线阶段,我们采用基于模型引擎。在培训期间,我们分别清洁并提高了样本数据。在功能方面,对于连续功能,我们使用Min-Max方法将其归一化。就跨字符特征而言,我们结合了业务需要提取多个在业务方案中具有重要意义的跨字符特征。就模型而言,我们将ADAM用作优化器和损失函数。在训练过程中,与宽和深纸不同,我们分别将作为输入层的组合特征输入到相应的深层和宽的组件中。然后,在深层部分中,所有输入数据都发送到3个relu层,并在末尾通过图层进行了评分。我们的广泛和深层模型经过超过7000万个培训数据的培训,并具有超过3000万个测试数据的离线估计。我们的尺寸设置为20。

深度学习离线/在线效果

在实验阶段,分别比较了深度学习,广泛的深度学习和逻辑回归,并将具有更好性能的宽深度模型在线进行,以使用原始基础模型进行AB实验。从结果来看,广泛的深度学习模型可以更好地离线/在线。具体结论如下:

随着隐藏层的宽度增加,离线训练的效果将逐渐改善。但是,考虑到在线实时预测的性能问题,我们目前采用256-> 128-> 64的框架结构。

下图是宽深度模型的在线实验结果和包含组合特征的基本模型的比较:

从在线效果的角度来看,广泛的深度学习模型解决了历史上单击的小组订单将在一定程度上长途召回的问题。同时,宽深度模型还将根据当前情况推荐一些新颖的项目。

最后写

排序是一个非常经典的机器学习问题,在推荐系统中,实施模型的内存和概括功能是一个挑战。内存可以定义为在建议中复制历史数据,而概括是基于数据相关性的传统,探索从未发生过或很少过去的项目。宽深度模型中的宽线性部分可以使用交叉功能来有效地记住稀疏特征之间的相互作用,而深层神经网络可以通过挖掘功能之间的相互作用来提高模型之间的概括能力。在线实验结果表明,宽深度模型在CTR中具有显着改善。同时,我们还试图通过一系列方式发展模型:

将RNN集成到现有框架中。现有的深层和宽模型仅将DNN与线性模型集成在一起,并且不会在时间序列中建模更改。样品的时间顺序似乎对于建议排序也很重要。例如,当用户根据时间在不同地方浏览一些酒店和景点时,用户再次请求城市在其他地方,并且应推出景点周围的食物。

引入加强学习使模型可以根据用户所处的方案动态推荐内容。

深度学习和逻辑回归的融合使我们能够具有两者的优势,并为进一步的点击率预测模型设计和优化奠定了坚实的基础。

参考

H.,L。Koc,J。等,宽而深,ACM 2016,

P.,J.,E.

H. Wang,N。Wang,D。,深处。

本文是 技术团队的原始文章:ID:,并已被官方帐户被授权转发和传播。

作者的介绍

的高级算法工程师Pan Hui。从2015年毕业后,他加入了微软,主要从事自然语言处理的研究和发展。 2016年12月加入 ,现在负责的分类业务,致力于使用大数据和机器学习技术来解决业务问题并改善用户体验。

今天推荐的文章

单击下面的图片以阅读

我们应该做什么来优化代码级别的系统性能?

版权声明:本文为 “博览广文网” 原创文章,转载请附上原文出处链接及本声明;

原文链接:http://wen.bjhwtx.com/post/5153.html

标签:

博览广文网

博览广文网为所有文学爱好者、新闻爱好者、关注生活多方面内容的观众朋友提供多方位的内容呈现、提升阅读空间、填充碎片时间,开阔读者的视野、增长见识、了解民生、一个让您不出户尽知天下事的网站平台!
热门标签
关于我们
广文舒阅网—让天下读者有家可归!这里汇聚了各类优质文化信息,无论是全球热点、历史故事,还是实用百科、趣味探索,您都能轻松获取。我们希望用阅读点亮您的世界,让每一次浏览都充满收获和乐趣。
导航栏A标题
广文舒阅网
扫码关注
联系方式
全国服务热线:0755-88186625
Q Q:8705332
Email:admin@lanyu.com
地址:深圳市福田区海雅缤纷国际大厦5层501
Copyright 深圳市蓝宇科技有限公司 版权所有 备案号:京ICP备20013102号-1