从逻辑回归到深度学习,点击率预测技术面面观上海数据分析网

我们可以有很多种不同的方式来定义点击问题,本文会列举两种方式。

从分类角度出发,我们有很多算法可以用,比如贝叶斯分类器、svm、最大熵等等,我们也可以使用回归算法通过阈值来处理。

另一种看法假设每个我们可以预测一个ctr(0-1之间的值),这时候就变成了一个回归问题,可以使用lr、fm、神经网络等模型。

将用户是否点击一个物品看成回归问题以后,使用最广泛的模型当属逻辑回归LogisticRegression,[1]是一篇很不错的关于逻辑回归的综述,这里不打算展开讲逻辑回归的细节,简单做个介绍并说明实际使用中的一些注意点。

首先逻辑回归使用sigmoid函数来建模,函数如下:

该函数对应的图像如下所示:

LR的优点很明确,首先sigmoid函数的取值范围是0-1,刚好可以解释为点击概率,而输入的范围却可以很宽广。所以LR是历史最悠久、使用最广泛的点击率、转化率模型。

除了训练算法之外,LR模型最需要注意的是特征的呈现方式,从sigmoid的解析式可以看到LR其实是广义线性模型的一种(GLM),所以LR既不能很好地处理连续型特征,也无法对特征进行组合。相反,对于categoricalfeature反而处理得很好。因此,使用LR模型的时候往往伴随着大量特征工程方面的工作,包括但不限于连续特征离散化、特征组合等。

对于continousfeature,如年龄、薪水、阅读数、身高等特征,如果要添加到lr模型中,则最好先进行离散处理,也叫one-hot编码;离散化处理的方式有几种,等值分桶、等频分桶等;或者直接根据对业务的理解分桶。例如对于电商类,可能20岁以下的没有什么经济能力,20-40的经济能力差不多,这时候可以人工划分。

等值分桶是指每个区间同样大小,比如年龄每隔5岁为一个桶,则年龄特征变成一个20个区间(假设上限是100岁)的编码,如15岁对应(0、0、1、0、0、0…)。

等频分桶则是需要先对样本做一个分布统计,还是以年龄为例,首先我们要基于统计得到一个年龄分布直方图,通常这类特征都会大致符合正态分布,这时候对于中间阶段就需要多拆分几个桶,而对于两边的部分可以少一点;如0-16一个区间,16-18一个区间,18-20一个区间,20-30一个区间。目标是使得每个区间里的人数分布基本持平。

特征离散化的好处我理解是风险均摊,不把鸡蛋放在一个篮子里。举个例子,如果年龄特征对最终的预测结果很重要,则可能在LR模型中获得一个比较大的权重w,这时候如果有一个异常数据,某个人年龄写的是200岁,就会一下子将函数值推到接近1的区域。这明显不是我们想要的,相反如果通过离散化,年龄特征的权重会分散到各个桶对应的特征里,这时候单个特征的异常就不会造成很大的影响。

假设模型里有年龄、性别、身高三个特征,这时候就会出现特征组合的问题。比如年龄+性别可以作为一个新的特征,可能某类物品对于这种组合特征有偏好,如16岁以下的小男孩对变形金刚很感兴趣(我实在想不到什么例子)。这种需求LR是没有办法自动完成的,只能人工来添加。

从我自己阅读的一些paper里,我总结了两个所谓的"套路"。

另一个套路是使用数据不同方面的信息,这个策略更加隐晦。举个例子,我们可以根据用户的资讯阅读历史计算一个兴趣画像,但是这个画像我们可以分成几个画像,比如拿一周的历史算一个,一个月的历史算一个,然后通过实践decay算一个历史全量的。这样场中短期分开的画像可以作为独立的特征放到模型中去。另一个例子是cf论文中一个很有意思的做法,在Netflix的数据集里,user-item矩阵嵌入了一个隐藏信息是user-打分item的对应关系,所以我们可以从user-rating矩阵里提取一个二元取值的user-item关联矩阵,如果u对i打分了,则这个矩阵对应ui的位置为1,否则为0。把这个矩阵作为一个implicitfeedback加入到cf里,会有进一步的效果提升,这就是数据信息的不同facet。

这一小节是后补的,主要介绍几种常用的评价指标以及他们各自的优缺点,主要取材于[21]。这里选取AUC、RIG、MSE三个来重点说下,其他的指标有需要的请参考原文。

AUC是ROC曲线下的面积,是一个[0,1]之间的值。他的优点是用一个值概括出模型的整体performance,不依赖于阈值的选取。因此AUC使用很广泛,既可以用来衡量不同模型,也可以用来调参。比如

这是用AUC用来调超参的一个例子,横坐标是GBDT的树的棵数,纵坐标是对应模型收敛后在test集和train集上的AUC值,从图中可以看到在120棵树附近GBDT就开始出现过拟合情况了,不过两个集合的AUC都还在持续上升。除此之外,AUC还可以作为一个在线监测的指标,用来时刻监测在线模型的表现。

AUC指标的不足之处有两点:一是只反映了模型的整体性能,看不出在不同点击率区间上的误差情况;二是只反映了排序能力,没有反映预测精度。简单说,如果对一个模型的点击率统一乘以2,AUC不会变化,但显然模型预测的值和真实值之间的offset扩大了。

Netflix比赛用的RMSE指标可以衡量预测的精度,与之类似的指标有MSE、MAE,以MSE为例,计算公式如下

如果我们要对比不同的算法的模型的精度怎么办呢?除了MSE有没有其他选择?这里提供一个RIG:

这张图直接取自[21],表达式有点问题,我先留给大家来发现吧,正确的表达式在本文另一篇参考文献里有,先留个悬念:)

这里要强调的一点是RIG指标不仅和模型的质量有关,还和数据集的分布情况有关;因此千万注意不可以使用RIG来对比不同数据集上生成的模型,但可以用来对比相同数据集上不同模型的质量差异。这一点尤为重要。

[3]是微软内部竞赛推出的一个算法,也被后续很多算法作为对比的baseline。

这个算法的细节可以直接去看原文,这里只对优劣做一个简单介绍。该算法的基本思想是参数w是一个先验分布为正态分布的分布,参数为u、ó;在贝叶斯框架下,每一个样本都是在修正对应的分布参数u、ó;对应的更新公式为

该模型的优点是基于贝叶斯模型,因此可以做到在线学习,每个样本都可以对参数进行微调,同时onlinelearning带来了在线学习的能力,可以及时应对用户兴趣的变化。

不足之处在于每个feature对应权重都需要两个参数来描述,模型的尺寸是LR的两倍,在复杂模型场景下这个成本可能比较难接受。

从文末的评测来看,BOPR和朴素贝叶斯相比,BOPR能在比较宽的pctr维度很好地拟合经验点击率的情况。

[4]是14年facebook出的一篇ctr领域非常经典的论文,15年去北京参加QCon大会时,机器学习方向的演讲几乎都提到了这篇论文,可见该方法的成功。

前文提到,随着特征的增加,特征组合这件事将变得尤为困难,人力很难应付。假如一个点击率预测的系统涉及到100个特征,则熟悉二项式定理的同学可以心算出来所有可能的组合特征接近2100;这个数据有多恐怖呢?一张纸对折50次对应250,出来的高度是1125899906米,大约是几十万个珠穆朗玛峰那么高。而特征组合是在特征离散化以后做的,稍微几个特征分桶可能就不止100了,再组合,特征就会爆炸掉。

[4]就是尝试提出一种解决特征组合问题的方案,基本思路是利用树模型的组合特性来自动做特征组合,具体一点是使用了GBDT的特征组合能力。整体架构如下:

先在样本集上训练一个GBDT的树模型,然后使用这个树模型对特征进行编码,将原始特征x对应的叶子节点按照01编码,作为新的特征,叠加到LR模型里再训练一个LR模型。预测的时候也是类似的流程,先对原始特征x通过GBDT计算一遍,得到叶子节点情况,以图中为例,如果x落到第一棵树的第二个节点,第二棵树的第一个节点,则转换后的输入特征为(0、1、0、1、0);

GBDT+LR模型确实明显优于单独的LR模型,我们在浏览器多个场景做了测试,AUC都有非常明显的提升,接近10个百分点。从训练来看,GBDT也确实像[5]所说那样,很容易过拟合,但叠加LR以后却能取得很不错的性能。GBDT因为是在函数空间对残差进行连续逼近,所以优点和缺点一样明显:优点是可以逼近几乎任何函数的任何精度,缺点就是很容易过拟合,需要根据业务场景注意在树的棵数和深度上做一定的裁剪,才能平衡精度和过拟合。详细的推导请参看论文,我也只大概看明白原理,因为对泛函还不熟悉,以后有机会再来细讲这个模型的原理。

FTRL是从RDA、FOBOS等针对LR的在线学习算法改进而来,主要是工业界强烈的在线学习的需求驱动而来。有意思的是前面提到的微软的BOPR也是一种天然支持在线学习的算法。为什么要做在线学习?有哪些注意点呢?

从今日头条披露的资料来看,在模型更新方面他们采用了增量更新+定时校准的策略;类似于在线学习+定时离线校准。这种策略应该也可以用到点击率的场景。

这里也顺带提一下FTRL和GBDT+LR的关系,FTRL主要是针对LR部分的onlinelearning;GBDT+LR是两种不同模型的级联,这两个方案是可以很方便的糅合在一起的变成GBDT+FTRL-LR;但这里GBDT的更新没法做到onlinelearning;可以做定期更新。理论上这种做法可能会效果更好一点。

[7]提出的FM是一种可以自有设置特征组合度数的回归算法,通常d=2的FM拟合公式如下:

选择一种损失函数后很容易用sgd之类的优化算法来计算w和v;原文这块的论述有点模糊,没有指明目标函数的情况下对拟合公式使用了sgd,有兴趣的同学可以一起探讨。

FM的优势是可以自动进行特征间的组合,这解决了两个问题:一个是系数数据因为特征组合而能得到不错的backgroudmodel效果;另一个是特征组合解决了人工组合的尴尬,GBDT+LR与此有异曲同工之妙,因此FM常常和GBDT+LR一起讨论。从应用范围来看,业界GBDT+LR的使用范围应该是比FM要广的,国内我所知只有世纪佳缘[8]是使用FM替代了GBDT+LR。

FM的另一个优点是会算出每个feature对应的向量v;这个向量可以看做对feature的一种embeding,例如后面WDL的场景,或者是GBDT+LR里对categoricalfeature做embeding,后者我们正在计划尝试;前者因为可以通过jointlearning直接学习最佳的embedding向量,所以一般不会单独使用FM来对feature做embeding。

FM的不足之处是在dense数据集情况下,反而可能表现不佳,鱼与熊掌不可兼得啊!

[9]介绍了FFM在美团的一些应用,个人理解是FM的一个小改版,不多说。

对于系统的新用户,在没有历史消费数据的情况下,想要预测用户的点击率是一件比较困难的事。这里提供一种按照数据丰富度划分阶段的思路,一共划分为四个阶段:1.全新用户;2.少量消费数据用户;3.一般消费数据用户;4.充分消费数据用户。每一个新用户和系统的交互分为这四个阶段,分段的标准可以根据具体场景的实验数据来拍一下脑袋,在不同的阶段,我们用不同的策略来进行用户数据的获取。

在少量消费数据阶段,我们可以使用CB[12],CB的核心思想是给用户展示他消费过的物品最相似的物品,比如一个用户消费了盗梦空间,则他有可能想继续观看泰坦尼克号。CB的难点在于对物品向量化。

对于第三个阶段的用户,有一定的数据又不是很多,此时可以采用[13]这种降级的ctr模型,并且对其中的一些特征使用smoothing技术,如贝叶斯平滑、指数平滑等;可以参看后面部分的介绍。

第四个阶段就是常规用户,使用我们前面提到的各种点击率模型就好了。

[16]中使用了指数decay和beta分布平滑两种技巧,这两个技巧也可以一起使用。对于decay,既可以将历史信息融入到特征里,又保持了对历史信息的遗忘速度,是一个不错的平衡,从各个实践来看,使用平滑对模型性能都会有显著的提升。

从这张图可以看出,在最上层还是使用了LR模型,和GBDT+LR对比可以看出两个模型的相似性和区别:前者使用GBDT来做特征的组合,后者使用两项不同的技术来处理,首先是对categoricalfeature进行embedding,然后和continousfeature一起concatenate成一个向量,通过三层ReLU网络来做特征的表示学习;另一方面对于categoricalfeature还可以进行人工交叉组合,与左边网络自己学习到的特征一起加入到顶层LR模型里作为最终特征。

这里需要提到的一点是对于categoricalfeature的embedding,没有使用独立的FM之类的方法,而是通过jointlearning直接学习出来的,具体做法是对最embedding层使用类似EM的做法,固定W后使用bp训练向量,交替进行。和FM之类独立训练的embedding向量相比,为什么联合训练的向量可能会更好呢?这个思想起源是哪里呢?

第一个问题我认为联合训练的embedding向量确实会比FM单独embedding出来的要好,原因比较细微,熟悉CF发展流程的同学应该知道,对传统Item-basedCF和User-basedCF的一个改进就是将pearson系数替换为可以联合训练的wij,以capture到数据之间interpolation信息。详细的介绍可以参考我下一篇关于CF的综述。

使用了类似jointlearning以同时获得embedding向量和权重矩阵的还有[18]。有兴趣的可以参考。

关于WDL的性能,普遍认为会比传统LR高两位数百分点,浏览器正在尝试在app推荐场景下做一个横屏,从目前初步结论来看,GBDT+LR相比于纯LR大约是两位数的提升,而WDL还没有看到明显效果,不过我们会进一步在参数调优上下些功夫,以期取得更好的效果。

WDL的缺陷主要体现在两方面,一方面是在线predict时的性能瓶颈决定不能使用太宽、太深的网络,另一方面是如果做onlinelearning,这个问题据说百度凤巢是有做过,具体方案不得而知。

是否可以直接使用强化学习来做点击率或者推荐呢?答案我觉得是肯定的。这方面阿里应该是走在前沿,[20]中提到因为采用深度强化学习和自适应学习的技术,阿里的双十一销量有10%-20%的提升。这是一个非常恐怖的数字,尤其是在阿里这样的体量下。请允许我引用其中一段文字来做个简单说明:

"2014年双11通过排序特征实时,引入商品实时转化率,实时售罄率模型进入搜索match和rank,让售罄商品额无效曝光大幅减少,并实现了成交转化的大幅提升;2015年双11推出双链路实时计算体系,在特征实时的基础上,引入排序因子的在线学习,预测,以及基于多臂机学习的排序策略决策模型,在预热期和双11大幅提升了搜索流量的成交转化效率;2016年实时学习和决策能力进一步升级,实现了排序因子的在线深度学习,和基于强化学习的排序策略决策模型,从而使得淘宝搜索的智能化进化至新的高度,并在今年的双11,分桶测试效果表明,成交金额取得了近20%的大幅提升。"

[1]PredictingClicks:EstimatingtheClick-ThroughRateforNewAds;

[2]Web-ScaleBayesianClick-ThroughRatePredictionforSponsoredSearchAdvertisinginMicrosoft’sBingSearchEngine;

[3]PracticalLessonsfromPredictingClicksonAdsatFacebook;

[4]greedyfunctionapproximation:agradientboostingmachine

[5]AdClickPrediction:aViewfromtheTrenches

[6]FactorizationMachines.SteffenRendle

[10]AnEmpiricalEvaluationofThompsonSampling

[11]Content-basedRecommendationSystems;

[12]PredictingClicks:EstimatingtheClick-ThroughRateforNewAds

[13]Click-ThroughRateEstimationforRareEventsinOnlineAdvertising

[14]Wide&DeepLearningforRecommenderSystems;

[15]DeepNeuralNetworksforYouTubeRecommendations

[16]ReinforcementLearning:AnIntroduction

[18]PredictiveModelPerformance:OfflineandOnlineEvaluations

THE END
1.学习!机器学习算法优缺点综述机器学习算法优缺点综述 正则化算法(Regularization Algorithms) 集成算法(Ensemble Algorithms) 决策树算法(Decision Tree Algorithm) 回归(Regression) 人工神经网络(Artificial Neural Network) 深度学习(Deep Learning) 支持向量机(Support Vector Machine) 降维算法(Dimensionality Reduction Algorithms)http://528045.com/article/b55eb7a0c4.html
2.人工智能三大算法机器学习深度学习与强化学习的融合与应用前景在当今信息技术高速发展的时代,人工智能(AI)已经成为全球科技界关注的焦点。其中,机器学习、深度学习和强化学习被认为是人工智能领域中最重要的三大算法,它们分别代表了不同的研究方向和解决问题的手段。本文旨在探讨这三个关键算法,以及它们如何相互融合,并对未来的人工智能发展产生何种影响。 https://www.2gadecbu9.cn/xing-ye-dong-tai/433419.html
3.人工智能三大算法机器学习深度学习与强化学习的融合与应用前景人工智能三大算法的概述 人工智能(AI)作为一个多学科交叉领域,其核心在于模拟人类智能行为。随着技术的发展,人们提出了许多不同类型的人工智能方法,其中机器学习、深度学习和强化学习是其中最为重要的三个子集,它们分别代表了从基础到高级别的人工智能技术。 机器学习https://www.xstkmqmgl.cn/zhi-neng/481943.html
4.Transformer模型,深度学习领域的革命性突破软硬件引人注目 在软硬件发布了:Transformer模型,深度学习领域的革命性突破,Transformer模型是深度学习领域的一项革命性进展。该模型通过自注意力机制实现对输入数据的全局依赖性建模,大大提高了语言处理和语音识别等领域的性能表现。其独特的架构设计和创新机制为深度学习领https://www.xachuangcai.cn/post/90.html
5.解析人工智能三大算法机器学习深度学习与强化学习的核心之旅解析人工智能三大算法:机器学习、深度学习与强化学习的核心之旅 人工智能三大算法是现代计算机科学领域中的重要组成部分,它们分别是机器学习、深度学习和强化学习。每种算法都有其独特的特点和应用场景,共同推动了人工智能技术的发展。 机器学习:数据驱动的革命 机器学https://www.fmovhaqkz.com/shou-ji/530948.html
6.学习笔记在线强化学习与离线强化学习的异同(3)- 离线强化学习:状态是从历史数据集中提取的特征表示,它用于训练智能体以学习最优策略。这些状态可能包括历史数据中的所有相关信息,但不一定是实时环境中的当前状态。 在线强化学习和离线强化学习在奖励获取方式、评估侧重点、动作选择和状态表示上有所不同,这些区别反映了它们在实际应用中的不同需求和挑战。 https://blog.csdn.net/hzlalb/article/details/136797191
7.强化学习离线模型离线模型和在线模型强化学习离线模型 离线模型和在线模型 在推荐算法领域,时常会出现模型离线评测效果好,比如AUC、准召等指标大涨,但上线后业务指标效果不佳,甚至下降的情况,比如线上CTR或CVR下跌。 本文尝试列举一些常见的原因,为大家排查问题提供一点思路。 1. 离线、在线特征不一致https://blog.51cto.com/u_14499/11815202
8.强化学习的基本概念在线学习和离线学习针对的是在强化学习模型在训练过程中交互数据的使用方式。在线学习的强化学习模型,会在一个交互之后,立即用本次交互得到的经验进行训练。而离线学习的强化学习模型,往往是先将多个交互的经验存储起来,然后在学习的时候,从存储的经验中取出一批交互经验来学习。 https://www.jianshu.com/p/28625d3a60e6
9.人工智能团队研究成果在TKDE发表:样本高效的离线转在线强化学习算法图一:离线转在线强化学习算法框架:(a)乐观探索策略;(b)缓冲回放区;(c)策略评估;(d)基于元适应的策略提升 离线强化学习,即智能体从先前收集的数据集中学习的过程,已被广泛研究并在机器人控制、推荐系统、智慧医疗等领域取得了巨大成功。然而,由于受到离线数据集质量的限制,离线强化学习智能体的性能通常是次优的。http://icfs.jlu.edu.cn/info/1007/3101.htm
10.科学网—[转载]强化学习在资源优化领域的应用随着强化学习在围棋、游戏等序列化决策领域大放异彩、在多智能体协作等领域取得较好表现,它的一些优秀特性也得到了资源优化领域的关注。首先,基于强化学习的解决方案决策非常高效。虽然强化学习策略的训练非常耗时,但是这些训练工作可以离线进行,实际中只需要利用训练好的模型进行推理,因而在绝大部分情况下可以做到近似实时https://blog.sciencenet.cn/blog-3472670-1312677.html
11.仙启仙启,面向行业专家、企业及研发运营人员的智能决策开发平台。通过数据驱动环境虚拟技术,将复杂的决策过程梳理成可操作的业务流程,并依托云计算资源和深度强化学习算法库,为用户提供智能决策全流程一站式服务.https://www.revive.cn/
12.生成式AI与LangCHain(二)(3)离线方法通过直接利用人类反馈来绕过在线强化学习的复杂性。我们可以区分基于排名和基于语言的方法: 基于排名的:人类对语言模型输出进行排名,用于定义微调的优化目标,完全避免了强化学习。这包括 Preference Ranking Optimization (PRO; Song 等人,2023)和 Direct Preference Optimization (DPO; Rafailov 等人,2023)等方法。https://developer.aliyun.com/article/1511477
13.班组建设工作总结(通用15篇)总结是指社会团体、企业单位和个人对某一阶段的学习、工作或其完成情况加以回顾和分析,得出教训和一些规律性认识的一种书面材料,通过它可以正确认识以往学习和工作中的优缺点,让我们抽出时间写写总结吧。总结怎么写才不会千篇一律呢?下面是小编精心整理的班组建设工作总结,欢迎大家分享。 https://www.gdyjs.com/shiyongwen/gongzuozongjie/305233.html
14.强化学习求解组合最优化问题的研究综述计算机科学与探索 Journal of Frontiers of Computer Science and Technology 1673-9418/2022/16(02)-0261-19 doi: 10.3778/j.issn.1673-9418.2107040 强化学习求解组合最优化问题的研究综述 王扬,陈智斌+,吴兆蕊,高远 昆明理工大学 理学院,昆明 650000 + 通信作者 E-mail: chenzhibin311@126.com 摘要:组合最https://engine.scichina.com/doi/pdf/E2EC56036ABD430FAC17BA13DB04FD51
15.离线强化学习(ASurveyonOfflineReinforcementLearning)通过阅读《A Survey on Offline Reinforcement Learning: Taxonomy, Review, and Open Problems》与《Offline Reinforcement Learning: Tutorial, Review, and Perspectives on Open Problems》这两篇关于离线强化学习的综述论文,初步认识离线强化学习,了解离线强化学习的概念、挑战、相关方法(仅粗略介绍,未详细展开)及未来可https://www.cnblogs.com/kailugaji/p/16040339.html
16.英语组教研工作总结(通用21篇)小学英语教育的关键在于激发学生的学习兴趣。本学期,我们教研组开展了英语书法比赛、英语口语比赛等活动。通过活动,不仅激发了学生的学习热情,让他们体验到了英语学习的乐趣。同时也培养了他们英语语言的综合运用能力和表达能力,实现了英语学习生活化,为学生提供了语言实践的机会和平台,深受学生欢迎。 https://www.yjbys.com/zongjie/gerenzongjie/1482365.html
17.无人机避障算法综述常见的基于势场和导航函数的避障算法适用场景与优缺点如表4所示。 2.3 基于機器学习的避障方法 机器学习算法是将无人机避障问题转化为一个决策问题, 通过与复杂动态环境的信息反复交互, 选择最优或近最优策略, 以实现其长期目标。 随着智能化水平的不断提升, 机器学习算法在无人机避障领域得到广泛应用, 常见方法有https://www.fx361.com/page/2021/1112/9098710.shtml
18.活动工作总结范文(精选21篇)2. 对某一阶段的工作、学习或思想中的经验或情况进行分析研究,做出带有规律性的结论。 3. 指概括出来的结论。 活动工作总结范文(精选21篇) 快乐有趣的活动已经告一段落了,我们会积累一些相应的经验,是时候静下心来好好写写活动总结了。那么我们该怎么去写活动总结呢?以下是小编整理的活动工作总结范文(精选21篇https://www.ruiwen.com/word/huodonggongzuozongjiefanwen.html