美团“猜你喜欢”深度学习排序模型实践一. 引言推荐作为解决信息过载和挖掘用户潜在需求的技术手段,在美团点评这样业务富厚的生活服务电子商务平台,发挥着重要的作用。在美团App里,首页的“猜你喜欢”、运营区、旅店旅游推荐等重要的业务场景,都是推荐的用武之地。图1 美团首页“猜你喜欢”场景现在,深度学习模型凭借其强大的表达能力和灵活的网络结构在诸多领域取得了重大突破,美团平台拥有海量的用户与商家数据,以及富厚的产物使用场景,也为深度学习的应用提供了须要的条件。本文将主要先容深度学习模型在美团平台推荐排序场景下的应用和探索。
二. 深度学习模型的应用与探索美团推荐场景中天天活跃着千万级此外用户,这些用户与产物交互发生了海量的真实行为数据,天天能够提供十亿级此外有效训练样本。为处置惩罚大规模的训练样本和提高训练效率,我们基于PS-Lite研发了漫衍式训练的DNN模型,并基于该框架举行了许多的优化实验,在排序场景下取得了显著的效果提升。
图2 模型排序流程图如上图所示,模型排序流程包罗日志收集、训练数据生成、模型训练和线上打分等阶段。当推荐系统对浏览推荐场景的用户举行推荐时,会记载其时的商品特征、用户状态与上下文信息,并收集本次推荐的用户行为反馈。
在经由标签匹配和特征处置惩罚流程后生成最终的训练数据。我们在离线运用PS-Lite框架对Multi-task DNN模型举行漫衍式训练,通过离线评测指标选出效果较好的模型并加载到线上,用于线上排序服务。下面将着重先容我们在特征处置惩罚和模型结构方面所做的优化与实验。特征处置惩罚美团“猜你喜欢”场景接入了包罗美食、旅店、旅游、外卖、民宿、交通等多种业务,这些业务各自有着富厚的内在和特点,同时各业务的供应、需求与天气、时间、地理位置等条件交织,组成了O2O生活服务场景下特有的多样性和庞大性,这就给如何更高效地组织排序效果提出了更高的要求。
结构更全面的特征、更准确高效地使用样本一直是我们优化的重点偏向。特征种类User特征:用户年事,性别,婚否,有无孩子等Item特征:价钱,折扣,品类和品牌相关特征,短期和恒久统计类特征等Context特征:天气,时间,地理位置,温度等用户行为:用户点击Item序列,下单Item序列等除上述枚举的几类特征外,我们还凭据O2O领域的知识积累,对部门特征举行交织,并针对学习效果对特征举行了进一步处置惩罚。详细的样本和特征处置惩罚流程如下:图3 训练数据处置惩罚流程标签匹配推荐后台日志会记载当前样本对应的User特征、Item特征与Context特征,Label日志会捕捉用户对于推荐项的行为反馈。
我们把两份数据根据唯一ID拼接到一起,生成原始的训练日志。等频归一化通过对训练数据的分析,我们发现差别维度特征的取值漫衍、相同维度下特征值的差异都很大。
例如距离、价钱等特征的数据听从长尾漫衍,体现为大部门样本的特征值都比力小,存在少量样本的特征值很是大。通例的归一化方法(例如 min-max, z-score)都只是对数据的漫衍举行平移和拉伸,最后特征的漫衍仍然是长尾漫衍,这就导致大部门样本的特征值都集中在很是小的取值规模内,使得样本特征的区分度减小;与此同时,少量的大值特征可能造成训练时的颠簸,减缓收敛速度。
此外也可以对特征值做对数转化,但由于差别维度间特征的漫衍差别,这种特征值处置惩罚的方式并纷歧定适用于其他维度的特征。在实践中,我们参考了Google的Wide & Deep Model[6]中对于一连特征的处置惩罚方式,凭据特征值在累计漫衍函数中的位置举行归一化。
即将特征举行等频分桶,保证每个桶里的样本量基底细等,假设总共分了n个桶,而特征**xi属于其中的第bi(bi ∈ {0, ..., n - 1})个桶,则特征xi**最终会归一化成 bi/n。这种方法保证对于差别漫衍的特征都可以映射到近似匀称漫衍,从而保证样本间特征的区分度和数值的稳定性。
低频过滤过多的极为稀疏的离散特征会在训练历程中造成过拟合问题,同时增加参数的储存数量。为制止该问题,我们对离散特征举行了低频过滤处置惩罚,丢掉小于泛起频次阈值的特征。经由上述特征抽取、标签匹配、特征处置惩罚后,我们会给特征分配对应的域,并对离散特征举行Hash处置惩罚,最终生成LIBFFM花样的数据,作为Multi-task DNN的训练样本。
下面先容针对业务目的所做的模型方面的优化实验。模型优化与实验在模型方面,我们借鉴工业界的乐成履历,在MLP模型的基础上,针对推荐场景举行模型结构方面的优化。在深度学习中,许多方法和机制都具有通用性,好比Attention机制在机械翻译,图像标注等偏向上取得了显著的效果提升,但并不是所有详细的模型结构都能够直接迁移,这就需要联合实际业务问题,对引入的模型网络结构举行了针对性调整,从而提高模型在详细场景中的效果。
Multi-task DNN推荐场景上的优化目的要综合思量用户的点击率和下单率。在已往我们使用XGBoost举行单目的训练的时候,通过把点击的样本和下单的样本都作为正样本,并对下单的样本举行上采样或者加权,来平衡点击率和下单率。但这种样本的加权方式也会有一些缺点,例如调整下单权重或者采样率的成本较高,每次调整都需要重新训练,而且对于模型来说较难用同一套参数来表达这两种混淆的样天职布。
针对上述问题,我们使用DNN灵活的网络结构引入了Multi-task训练。凭据业务目的,我们把点击率和下单率拆分出来,形成两个独立的训练目的,划分建设各自的Loss Function,作为对模型训练的监视和指导。DNN网络的前几层作为共享层,点击任务和下单任务共享其表达,并在BP阶段凭据两个任务算出的梯度配合举行参数更新。
网络在最后一个全毗连层举行拆分,单独学习对应Loss的参数,从而更好地专注于拟合各自Label的漫衍。图4 点击与下单多目的学习Multi-task DNN的网络结构如上图所示。线上预测时,我们将Click-output和Pay-output做一个线性融合。
在此结构的基础上,我们联合数据漫衍特点和业务目的举行了进一步的优化:针对特征缺失普遍存在的情况我们提出Missing Value Layer,以用更合理的方式拟合线上数据漫衍;思量将差别task的物理意义关联起来,我们提出KL-divergence Bound,以减轻某单一目的的Noise的影响。下面我们就这两块事情做详细先容。Missing Value Layer通常在训练样本中难以制止地有部门一连特征存在缺失值,更好地处置惩罚缺失值会对训练的收敛和最终效果都有一定资助。通常处置惩罚一连特征缺失值的方式有:取零值,或者取该维特征的平均值。
取零值会导致相应权重无法举行更新,收敛速度减慢。而取平均值也略显武断,究竟差别的特征缺失所表现的寄义可能不尽相同。一些非神经网络的模型能比力合理的处置惩罚缺失值,好比XGBoost会通过Loss的盘算历程自适应地判断特征缺失的样本被划分到左子树还是右子树更优。
受此启发,我们希望神经网络也可以通过学习的方式自适应地处置惩罚缺失值,而不是人为设置默认值。因此设计了如下的Layer来自适应的学习缺失值的权重:图5 Miss Value Layer通过上述的Layer,缺失的特征可以凭据对应特征的漫衍去自适应的学习出一个合理的取值。
通过离线调研,对于提升模型的训练效果,自适应学习特征缺失值的方法要远优于取零值、取均值的方式,模型离线AUC随训练轮数的变化如下图所示:图6 自适应学习特征缺失值与取0值和均值效果对比AUC相对值提升如下表所示:图7 自适应学习特征缺失值AUC相对值提升KL-divergence Bound我们同时思量到,差别的标签会带有差别的Noise,如果能通过物理意义将有关系的Label关联起来,一定水平上可以提高模型学习的鲁棒性,淘汰单独标签的Noise对训练的影响。例如,可以通过MTL同时学习样本的点击率,下单率和转化率(下单/点击),三者满足p(点击) * p(转化) = p(下单)的意义。因此我们又加入了一个KL散度的Bound,使得预测出来的p(点击) * p(转化)更靠近于 p(下单)。
但由于KL散度是非对称的,即KL(p||q) != KL(q||p),因此真正使用的时候,优化的是 KL(p||q) + KL(q||p)。图8 KL-divergence Bound经由上述事情,Multi-tast DNN模型效果稳定凌驾XGBoost模型,现在已经在美团首页“猜你喜欢”场景全量上线,在线上也取得了点击率的提升:图9 线上CTR效果与基线对比图线上CTR相对值提升如下表所示:图10 线上CTR效果相对值提升除了线上效果的提升,Multi-task训练方式也很好的提高了DNN模型的扩展性,模型训练时可以同时思量多个业务目的,利便我们加入业务约束。
更多探索在Multi-task DNN模型上线后,为了进一步提升效果,我们使用DNN网络结构的灵活性,又做了多方面的优化实验。下面就NFM和用户兴趣向量的探索做详细先容。
NFM为了引入Low-order特征组合,我们在Multi-task DNN的基础上举行了加入NFM的实验。各个域的离散特征首先通过Embedding层学习获得相应的向量表达,作为NFM的输入,NFM通过Bi-Interaction Pooling的方式对输入向量对应的每一维举行2-order的特征组合,最终输出一个跟输入维度相同的向量。我们把NFM学出的向量与DNN的隐层拼接在一起,作为样本的表达,举行后续的学习。图11 NFM + DNNNFM的输出效果为向量形式,很利便和DNN的隐层举行融合。
而且从调研的历程中发现,NFM能够加速训练的收敛速度,从而更有利于Embedding层的学习。因为DNN部门的层数较多,在训练的BP阶段,当梯度传到最底层的Embedding层时很容易泛起梯度消失的问题,但NFM与DNN相比层数较浅,有利于梯度的通报,从而加速Embedding层的学习。通过离线调研,加入NFM后,虽然训练的收敛速度加速,但AUC并没有显着提升。
分析原因是由于现在加入NFM模型部门的特征还比力有限,限制了学习的效果。后续会实验加入更多的特征域,以提供足够的信息资助NFM学出有用的表达,深挖NFM的潜力。
用户兴趣向量用户兴趣作为重要的特征,通常体现在用户的历史行为中。通过引入用户历史行为序列,我们实验了多种方式对用户兴趣举行向量化表达。Item的向量化表达:线上打印的用户行为序列中的Item是以ID的形式存在,所以首先需要对Item举行Embedding获取其向量化的表达。
最初我们实验通过随机初始化Item Embedding向量,并在训练历程中更新其参数的方式举行学习。但由于Item ID的稀疏性,上述随机初始化的方式很容易泛起过拟合。厥后接纳先生成item Embedding向量,用该向量举行初始化,并在训练历程中举行fine tuning的方式举行训练。
用户兴趣的向量化表达:为生成用户兴趣向量,我们对用户行为序列中的Item向量举行了包罗Average Pooling、 Max Pooling与Weighted Pooling三种方式的融合。其中Weighted Pooling参考了DIN的实现,首先获取用户的行为序列,通过一层非线性网络(Attention Net)学出每个行为Item对于当前要预测Item的权重(Align Vector),凭据学出的权重,对行为序列举行Weighted Pooling,最终生成用户的兴趣向量。
盘算历程如下图所示:图12 Weighted Pooling通过离线AUC对比,针对现在的训练数据,Average Pooling的效果为最优的。效果对好比下图所示:图13 差别Pooling方式点击AUC对比以上是我们在模型结构方面的优化履历和实验,下面我们将先容针对提高模型训练效率所做的框架性能优化事情。
训练效率优化经由对开源框架的广泛调研和选型,我们选择了PS-Lite作为DNN模型的训练框架。PS-Lite是DMLC开源的Parameter Server实现,主要包罗Server和Worker两种角色,其中Server端卖力模型参数的存储与更新,Worker端卖力读取训练数据、构建网络结构和举行梯度盘算。相较于其他开源框架,其显著优点在于:PS框架:PS-Lite的设计中可以更好的使用特征的稀疏性,适用于推荐这种有大量离散特征的场景。封装合理:通信框架和算法解耦,API强大且清晰,集成比力利便。
图14 Parameter Server在开发历程中,我们也遇到并解决了一些性能优化问题:为了节约Worker的内存,通常不会将所有的数据储存在内存中,而是分Batch从硬盘中Pre-fetch数据,但这个历程中存在大量的数据剖析历程,一些元数据的重复盘算(大量的key排序去重等),累计起来也是比力可观的消耗。针对这个问题我们修改了数据的读取方式,将盘算过的元数据也序列化到硬盘中,并通过多线程提前将数据Pre-fetch到对应的数据结构里,制止了在此处浪费大量的时间来举行重复盘算。
在训练历程中Worker的盘算效率受到宿主机实时负载和硬件条件的影响,差别的Worker之间的执行进度可能存在差异(如下图所示,对于实验测试数据,大部门Worker会在700秒完成一轮训练,而最慢的Worker会耗时900秒)。而通常每当训练完一个Epoch之后,需要举行模型的Checkpoint、评测指标盘算等需要同步的流程,因此最慢的节点会拖慢整个训练的流程。
思量到Worker的执行效率是大致听从高斯漫衍的,只有小部门的Worker是效率极低的,因此我们在训练流程中添加了一其中断机制:当大部门的机械已经执行完当前Epoch的时候,剩余的Worker举行中断,牺牲少量Worker上的部门训练数据来防止训练流程长时间的阻塞。而中断的Worker在下个Epoch开始时,会从中断时的Batch开始继续训练,保证慢节点也能使用所有的训练数据。图15 Worker耗时漫衍三. 总结与展望深度学习模型落地到推荐场景后,对业务指标有了显着的提升,以后我们还将深化对业务场景的明白,做进一步优化实验。
在业务方面,我们将实验对更多的业务规则举行抽象,以学习目的的方式加入到模型中。业务规则一般是我们短期解决业务问题时提出的,但解决问题的方式一般不够平滑,规则也不会随着场景的变化举行自适应。通过Multi-task方式,把业务的Bias抽象成学习目的,在训练历程中对模型的学习举行指导,从而可以比力优雅的通过模型解决业务问题。在特征方面,我们会继续对特征的挖掘和使用举行深入调研。
差别于其他推荐场景,对于O2O业务,Context特征的作用很是显著,时间,所在,天气等因素都市影响用户的决议。以后会继续实验挖掘多样的Context特征,并使用特征工程或者模型举行特征的组合,用于优化对样本的表达。
在模型方面,我们将连续举行网络结构的探索,实验新的模型特性,并针对场景的特点举行契合。学术界和工业界的乐成履历都很有价值,给我们提供了新的思路和方法,但由于面临的业务问题和场景积累的数据差别,还是需要举行针对场景的适配,以到达业务目的的提升。
参考文献[1] Mu Li, David G. Andersen, Alexander Smola, and Kai Yu. Communication Efficient Distributed Machine Learning with the Parameter Server. NIPS, 2014b. [2] Rich Caruana. Multitask Learning. Betascript Publishing, 1997. [3] Xiangnan He and Tat-Seng Chua. Neural Factorization Machines for Sparse Predictive Analytics. Proceedings of the 40th International ACM SIGIR conference on Research and Development in Information Retrieval(2017). [4] Guorui Zhou, Chengru Song, et al. Deep Interest Network for Click-Through Rate Prediction.arXiv preprint arXiv:1706.06978,2017. [5] Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. Neural Machine Translation by Jointly Learning to Align and Translate. ICLR ’15, May 2015. [6] H.-T. Cheng, L. Koc, J. Harmsen, T. Shaked, T. Chandra, H. Aradhye, G. Anderson, G. Corrado, W. Chai, M. Ispir, et al. Wide & deep learning for recommender systems. arXiv preprint arXiv:1606.07792, 2016.作者简先容哲,2015年校招入职原美团, 主要从事推荐排序模型相关的事情。刘锐,先后在百度、阿里巴巴从事推荐业务相关事情,现就职于美团平台推荐技术中心,专注深度学习模型的研发事情。对我们团队感兴趣,可以关注我们的专栏。
美团平台推荐技术中心,接待各路英才加入。简历请投递至:caohao#meituan.com原文地址:tech.meituan.com/recommend_d…。
本文来源:亚博全站APP官网登录-www.wtctf.com
Copyright © 2000-2021 www.wtctf.com. 亚博全站APP官网登录科技 版权所有 备案号:ICP备96609476号-9