一文梳理主流的排序模型,浅谈深度学习在花椒直播排序算法中的应用

      最后更新:2020-03-25 12:55:12 手机定位技术交流文章

      本文授权转载自公开号:花椒科技

      关于作者

      汪洋,毕业于南洋理工大学硕士学位。目前,他在花椒智能工程组担任算法工程师主要负责实时推荐算法和实时图像识别算法的研发对推荐排序算法有深刻的理解

      排序算法概述现代推荐系统一般分为两个阶段:召回和排序在召回阶段,一些低成本和高速度的模型将被用于最初筛选100,000或1,000,000数量级的候选者,留下1,000或100个候选者。然后,在排序阶段,使用更精细的特征和复杂的模型进行精细排序,最后留下topK。

      在过去的十年里,行业排名模型的发展可以说是每天一千英里,从2010年的同一个LR到FM,再到2014年的GBDT,可以说是现代推荐系统的前半部分。

      和2015年可视为快速发展的后半年。几年后,以DNN和其他模型为代表的深度学习网络如雨后春笋般涌现,各种模型架构和交叉特性层出不穷。各种新的想法和技巧令人眼花缭乱,深度学习逐渐成为点击率和推荐领域的主流方法。

      本文将沿着这条路线介绍、整理和总结这些排名模型。

      1。在深度学习兴起之前,传统模式

      1。LR

      以其简单、快速、可解释性强的优势几乎垄断了早期的CTR和推荐领域。

      直观地说,LR模型目标函数的形式是所有特征的加权和,然后通过sigmoid函数将结果映射到0-1以表示用户点击项目的概率。它简单易懂,并且可以高速并行实现。

      此外,通过观察每个特征的学习权重,我们可以很容易地知道哪些特征是“重要的”。当预测有偏差时,我们也可以很容易地看到哪些因素影响结果,这就是为什么它是高度可解释的。

      但是,LR也有明显的缺点:由于它是一个简单的线性模型,它不能处理特征和目标之间的非线性关系,并且特征不是完全独立的,一些特征的交叉使用会有特殊的效果因此,为了使模型具有一定程度的非线性,当时的数据科学家需要手工做大量的特征工程,如连续特征的离散化、特征间的相交等。然而,为了提取高效的交叉特征,需要充分了解数据和场景,并且人工成本相对较高。此外,经验丰富的工程师很难穷尽所有功能的交叉组合。由于

      很难手动操作,您能自动找到特征的交叉组合还是借助模型来完成?在接下来的几年里,出现了以调频和GBDT为代表的两种自动特征交叉方法

      2。对于LR中的特征相交问题,有人提出了以下多项式模型:

      从公式中可以看出,该模型对所有特征进行两个或两个相交,并对所有特征组合赋予权重

      但这种暴力方法存在以下两个问题:

      现代推荐系统往往包含大量稀疏特征(如id类),交叉特征的维数是原始特征维数的乘积,只有当两个特征值都非零时,相应的组合权重才会更新,这将使大多数交叉特征的权重缺乏有效的训练数据,无法收敛,权重参数的数量直接增加,大大增加了训练的复杂度在训练样本中没有出现的特征组合中,

      不能推广到

      。为了解决上述两个问题,德国康斯坦茨大学的斯蒂芬·伦德尔提出了FM(因式分解机)

      类似于矩阵因式分解(MF)的思想。调频学习每个特征的潜在向量。当特征相交时,两个潜在向量的内积被用作相交特征的权重,而不是单个权重。

      通过引入特征隐藏向量直接将

      的权重降低到nk(k是隐藏向量维数,

      )在训练过程中,通过优化二阶项的计算过程,可以将调频训练复杂度进一步降低到nk级,从而大大降低训练成本此外,调频还解决了上述多项式模型中的数据稀疏问题。从公式中可以看出,所有包含“

      非零组合特征”(有一定的

      ,使得

      )的样本都可以用来学习隐藏向量

      ,这在很大程度上避免了数据稀疏性的影响

      和隐藏向量的引入也使得模型可以推广到以前没有出现过的特征组合,考虑到模型的记忆和推广。在

      项目中,调频还可以使用梯度下降来学习,而不会失去实时性和灵活性。与后期深度学习模型的复杂网络结构相比,FM的推理过程相对容易实现,也使其摆脱了服务的问题,并且直到现在还经常应用于召回阶段。虽然

      3。GBDT+LR

      FM综合效果好,只能进行二阶特征交叉。如果要不断提高特征交叉的维数,组合爆炸和高计算复杂度将不可避免地发生。有没有其他方法可以有效地处理高维特征组合和筛选的问题?在

      2014年,脸谱提出了一个级联树模型来解决这个问题。

      的想法很简单:

      首先训练一个GBDT模型。从每棵树的顶部到底部,每个节点的划分是一个自然的特征选择过程,并且有效的特征组合自然地在多个层中进行,使得每个叶节点对应于树的一条路径,并且还代表不同的特征交叉组合。这样,所有的叶节点都可以被编号为新特征,然后与原始特征结合,输入LR来训练最终的模型。

      树模型的特征组合可能不限于像FM这样的二阶交集:例如,如果每个树的深度为5,则最终的叶节点实际上是通过4个节点拆分的四阶特征组合的结果然而,不能说GBDT优于调频,因为树模型也有其自身的缺点,如高维稀疏数据容易过拟合、并行速度慢、泛化能力差等。

      ,但GBDT+LR的重要意义在于

      提出了自动特征工程和特征与模型交叉的思想。从某种意义上说,深度学习的兴起、嵌入式的广泛应用和各种网络结构是这一思想的延续和继承。

      它还提出了一个级联结构,并且每个模型都可以逐步更新树模型训练速度慢,大规模训练可以一天进行一次,甚至一周进行一次,而LR模型可以在分钟级甚至第二级实时在线更新这也提供了一种服务理念,可为以下模型提供参考。总结

      从最早的人工规则排序发展到人工特征组合的LR模型,再到自动二阶特征组合的FM模型,最后到后来的高阶特征自动组合的LR+GBDT。这基本上是早期推荐系统排序模型的主线

      之后,DNN模型的引入标志着基于深度学习的排名模型的兴起。本质上,纯简单DNN模型是在特征嵌入的基础上增加MLP隐层的调频模型,用于隐式和非线性特征的自动组合。

      接下来,我们将关注近年来占据主导地位的深度学习模式。继

      2和深度模型

      2015之后,以DNN为代表的一系列深度学习模型逐渐出现。就个人而言,他们可以分为两类:

      与宽和;Deep是一系列模型的代表。它们的共同特征是从原始特征中自动学习新的高阶特征。他们的不同之处在于,宽或深做了一些改变。基于多任务学习的联合训练模式以ESMM、MMOE等模式为代表

      1年。宽和。深度模型

      的特点是双塔结构,即一边用LR表示的浅模型(宽部分)用来学习低阶特征的表达,强调“记忆”;另一方面是以MLP为代表的深层模式(深层部分),强调“泛化”。深层部分的结构也可分为以下模块:

      原始输入->;嵌入:将稀疏特征映射到低维密集嵌入向量的过程。

      input_layer:在该层中,通常会对每个要素的嵌入执行一些聚合操作。

      input_layer->;输出:通常使用MLP的几个层的完整连接框架连接到softmax作为输出层。

      大多数型号的区别仅在于输入层模块的深层部分。不同的模型在交集模式(隐式/显式、元素级/向量级)或特征之间的连接模式(连接/加权和/乘积/双向交互/注意等)方面有所不同。)或显示特征相交的顺序(二阶/高阶),具有宽和;深度,(x)深度调频,DCN,德国,例如,下面将简要介绍这些模型

      这里简要介绍以下特征交互方法:

      类似于MLP,由于其特殊的结构,自然具有学习高阶特征组合的能力,并引入一定的非线性;然而,不清楚交互组合是如何发生的以及发生了多少个相交级别,并且这种建模是逐位进行的,也就是说,对应于相同域的嵌入向量中的元素也将相互影响。因此,我们说这个特征交叉方法是“隐式的和元素级的”

      是与DeepFM、xDeepFM类似的另一种方式。在模型结构中,一些子网络或子结构被明确设计来表征任何高阶特征组合。以FM为例,我们以向量级的方式显式地建模特征的二阶组合,我们称之为“显式向量级”

      宽及深度

      模型的宽部分的优点在于学习样本的高频部分,其具有良好的“记忆”,并且可以通过样本中出现的高频和低阶特征的几个参数来学习。但是,由于是LR模型,仍然需要手工进行特征交叉组合。

      模型的深层部分用于学习特征之间的高阶交叉组合关系,并引入“泛化”。这是一个隐式的元素级要素交集双塔框架结构

      的提出,极大地促进了后续型号

      深fm

      宽的开发&虽然深框架功能强大,但因为宽部分是LR模型,所以仍然需要人工特征工程。深度调频模型用调频代替宽部,可以自动进行特征的二阶相交。然而,它的局限性是只有二阶交而没有高阶交。

      FM和deep共享嵌入层并共同更新权重矩阵。这种“共享底部”的想法在后来的模型中也很常见。

      DCN

      想要获得任何高阶特征的交叉组合,不仅是二阶,也是为了避免组合爆炸的维数灾难,这将导致网络参数太大而无法学习,并且还会产生许多无效的交叉特征。因此,有必要设计一种具有“压缩”能力和足够效率的网络结构。DCN就是其中之一:

      矢量交叉法如下:

      在保留MLP结构的基础上,增加了跨层网络,理论上可以表示任何高阶组合,而每层保留低阶组合,参数的矢量化和独特的网络结构也控制了模型的复杂度线性增加,以免随着交叉阶数的增加而引起维数爆炸

      ,但在xDeepFM论文中,指出DCN的特征交集仅限于一种特殊形式,并且也是以逐位方式构造的

      xDeepFM

      xDeepFM模型是自动交叉特征构建和端到端学习的大师。它有效地解决了DCN提出的问题,实现了显式高阶特征交互的自动学习,并使交互同时发生在向量级

      模型设计了独特的CIN结构,通过外积和卷积等运算提取特征交集

      和特征交叉的顺序可以通过控制CIN层数来明确控制,并且计算的时空复杂度线性增加,而不会出现不能训练由组合爆炸引起的参数爆炸的情况。

      的集成CIN和DNN模块可以帮助模型以显式和隐式、元素级和向量级的方式学习任何高阶特征交互,同时保持线性复杂度。

      DIN

      的特征在于嵌入用户的当前项目和所有交互项目,然后通过注意网络对每个兴趣表达赋予不同的权重,然后进行加权求和得到当前项目的用户兴趣表达的概括嵌入,相当于增加一步自动特征选择。

      也反映了模型服务于场景的思想。首先观察用户兴趣的多峰值分布和一些相应的数据特征,然后根据当地条件提出合适的模型进行拟合。

      摘要

      2。多任务类多目标优化模型

      推荐系统是行业主流之一,也是许多公司的研发现状。以花椒直播为例,可以优化的目标包括点击、观看、赠送礼物、评论、关注、转发等。

      多任务模式旨在平衡不同目标的相互影响,并努力实现所有指标的同步上升。即使不能,也应在优化目标上升的情况下,尽量不降低或尽量少降低其他指标,以达到全局最优效果。

      这里主要介绍ESMM和MMOE车型

      ESM

      论文指出完整的日志过程应该包括:

      样本空间如下图所示:

      传统CVR任务,只考虑从浏览到转换的过程,即

      。该模型还考虑了点击过程,并引入了浏览转换率的概念。这是在浏览条件下点击和转换的概率,即

      ,它是以下公式:

      根据该公式设计的模型如下:

      使用两个任务来共享底层嵌入,然后将它们的logit相乘以适应pCTCVR过程

      样本的构造如下:

      模型特征:

      模型在全样本空间,避免了“样本选择偏差”问题,充分利用了业务数据

      共享底层嵌入向量,因为推荐中的转化率很低,相应的数据也很少。这种共享特征表示的机制使得CVR网络能够从暴露但未点击的样本中更新嵌入向量,这有助于缓解稀疏CVR训练数据的问题

      ESMM中的子网不仅仅限于本文中的MLP,还可以随意替换为其他模型,也就是说,本文为我们提供了一个可扩展的多任务模型架构。阿里之后是一篇

      的论文,遵循了类似的模式。

      MOE

      论文指出:一般的多任务模型结构如上图(a)所示,即对于不同的任务,底层参数和网络结构是共享的,上层通过不同的神经网络得到相应任务的输出。缺点是模型效应依赖于任务的相关性。如果多个任务之间的相关性很小,采用这种结构甚至会导致相互拖拉。

      因此,本文提出了基于图(B)的OMOE和基于图(C)的MMOE两种结构。主要思想是每个任务都有一个独立的专家中间网络,类似于“切换”功能。通过模型学习,不同的任务可以从同一个底层嵌入中提取不同侧重点的特征,而不是完全共享底层,从而达到“得到你需要的东西”的效果,有点类似于上面提到的注意网络在

      之后,每个任务被连接到它自己的塔模型以获得logit,然后los与标签一起被计算。那么多目标损失可以以加权求和的方式直接组合以形成总损失

      推荐系统的

      多任务模型综述尽管这是排序模型的主要发展趋势,但多目标学习的难点在于每个目标的样本比例不同。如何整合损失,何时停止训练,如何组合在线目标的得分,如何通过A/B测试来衡量整体效果等等都需要经过更复杂的衡量和考虑。这些还有很大的发展空间,需要我们去尝试。

      3。花椒

      直播分选模式的实践近两年来,花椒直播顺应产业发展趋势,在分选阶段进行了多种尝试,如(GBDT+)LR、Wide & amp深度,(x)深度调频,DIN,ESMM,MMOE等。下面,使用宽和;以Deep模型为例,简要介绍我们的整个分拣系统。

      首先是离线部分。我们主要使用spark/hdfs来处理和存储数据主要包括用户数据、锚数据、实时数据、行为序列等。下面是我们使用的一些特性:在

      已经产生了用户和锚的肖像之后,它还将产生基于用户和锚的交互数据的标签集,该标签集可以是多标签的,以便于多任务模型的使用,例如用户已经浏览了哪些锚,是否有诸如观看、观看、评论、注意等行为。如果是这样的话,它还可以使用诸如查看持续时间之类的度数据作为权重,以供以后在加权训练中使用。在

      之后,标签集和肖像被连接以形成一天的数据集,并且多天的训练集可以用于形成最终的整体数据集,以满足数据量和覆盖的要求。这里必须小心不要造成数据渗透。最终数据集为T级,存储在HDFS在训练阶段,单机多卡的配置不能满足速度要求,因此我们采用360私有云hbox分布式训练平台来完成日常深度模型的训练下面

      是我们的模型结构图:下面

      是我们的一些模型的效果:

      离线:

      在线:在流行频道连接到个性化推荐> 80%之后人均观看时间增加

      Postscript

      这篇文章只是对近年来行业中常用模型的简单介绍和总结。事实上,除了它们的典型结构外,每个模型都有许多非常珍贵的细节,如公式推导、参数选择、工程技巧等。这些建议建议每个人都应该仔细阅读相关的模型文件。

      而且应该注意的是,没有“最佳模型”,只有“最合适的模型”,并不是说模型越花哨越复杂,在线效果就越好。例如,阿里提出了DIN模型,因为工程师首先发现了数据中的现象:

      个用户对浏览电子商务网站表现出了很大的兴趣,只有一些历史数据会影响到推荐的项目是否被点击,而不是所有的历史记录,即“多模式分布”和“部分激活”

      正是这一特定场景的需要,这使得阿里开发DIN模型来捕捉用户兴趣的演变,达到突破效果。

      ,因此,正确的推荐顺序应该是首先有一个特定的“场景”,然后根据用户行为和数据的特征开发一个适合这个场景的模型。我们不是先决定一个模型,然后在数据中测试它,而是本末倒置。

      关于我们的门

      Doors是一家新的风险投资机构,专注于探索、加速和投资技术驱动的初创公司。它包括门创新服务,门技术社区和门风险投资基金成立于2015年底,创始团队由微软风险投资在中国的原始团队组成。它为微软挑选并孵化了126家创新科技初创公司。

      专注于将创新技术引入实际应用场景,激活和实现全新的商业价值,服务行业领先企业和技术创新初创公司。

      致力于帮助以技术创新为导向的初创企业提供技术共享,并向生产、学习、研究和创新领域的核心技术专家学习内容,从而使创新成为持续的核心竞争力。

      风险投资基金专注于投资于通过技术创新激活商业场景并实现商业价值的初创企业,专注于包括机器智能、物联网、自然人机交互和企业计算在内的技术领域在过去的四年里,蒙门风险投资基金已经投资了数十家高增长潜力的科技初创企业,包括量化集团、马龙科技、胡赛科技、博通科技、苏吉科技和迪能科技

      如果你是一个技术领域的创业企业,不仅想获得投资,还想获得一系列持续的、有价值的投资后服务,请给我发邮件或推荐项目:BP @ Jiangmen . com

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/2799.html

          热门文章

          文章分类