gbdt 算法比随机森林容易_推荐算法Rerank二次重排序(基于LR、GBDT、随机森林、神经网络)...

3a125c10d21a6e3aa6579f8ce00c0006.png

推荐的Rerank排序有几种应用场景,一个是离线计算的时候为每个用户提前用Rerank排序算法算好推荐结果,另一个是在实时在线Web推荐引擎里做二次融合排序的时候。 但不管哪一种用到的算法是一样的。 比如用逻辑回归、GBDT、随机森林、神经网络等来预测这个商品被点击或者 被购买的可能性的概率,用的模型都是同一个,预测的时候是对特征转换做同样的处理。 一般封装一个通用方法供离线和在线场景调用。有三种做推荐的Rerank排序的思想:1.基于逻辑回归、GBDT、随机森林、神经网络的分类思想做二次排序2.基于Learning to rank排序学习思想做二次排序3.基于加权组合的公式规则做二次排序

1.基于逻辑回归、GBDT、随机森林、神经网络的分类思想做二次排序
做二次排序之前首先得有一个候选结果集合,简单来说,为某个用户预测哪个商品最可能被购买,不会把所有的商品都预测一遍,除非你的数据库所有商品总共就有几千个。实际上电商网站的商品一般都是多少万量级,甚至几百万SKU。都预测一遍的话,估计跑完都不知道什么时候。所以一般处理的方法都是在一个小的候选集合上产生的。这个候选集合你可以认为是一个粗筛选。当然这个粗筛选也不是你想象的那么粗,其实也是通过算法得到,精准度也是非常不错的。只是通过Rerank二次重排序算法把精准度再提高到一个台阶。至于推荐效果能提高多少,要看你在特征工程上、参数调优是不是做的好。但一般来说推荐效果能提升10%以上,就认为优化效果非常显著了。当然最高提升几倍也是有可能的。
更多内容和源码请听这个视频课...2.基于Learning to rank排序学习思想做二次排序
Learning to Rank排序学习是推荐、搜索、广告的核心方法。排序结果的好坏很大程度影响用户体验、广告收入等。排序学习可以理解为机器学习中用户排序的方法,是一个有监督的机器学习过程,对每一个给定的查询-文档对,抽取特征,通过日志挖掘或者人工标注的方法获得真实数据标注。然后通过排序模型,使得输入能够和实际的数据相似。
常用的排序学习分为三种类型:PointWise、PairWise和ListWise。
1)PointWise
单文档方法的处理对象是单独的一篇文档,将文档转换为特征向量后,机器学习系统根据从训练数据中学习到的分类或者回归函数对文档打分,打分结果即是搜索结果或推荐结果。
2)PairWise
对于搜索或推荐系统来说,系统接收到用户査询后,返回相关文档列表,所以问题的关键是确定文档之间的先后顺序关系。单文档方法完全从单个文档的分类得分角度计算,没有考虑文档之间的顺序关系。文档对方法则将重点转向量对文档顺序关系是否合理进行判断。之所以被称为文档对方法,是因为这种机器学习方法的训练过程和训练目标,是判断任意两个文档组成的文档对<D0C1,D0C2>是否满足顺序关系,即判断是否D0C1应该排在DOC2的前面。常用的PairWise实现有SVM Rank、RankNet、RankBoost。
3)ListWise
单文档方法将训练集里每一个文档当做一个训练实例,文档对方法将同一个査询的搜索结果里任意两个文档对作为一个训练实例,文档列表方法与上述两种方法都不同,ListWise方法直接考虑整体序列,针对Ranking评价指标进行优化。比如常用的MAP, NDCG。常用的ListWise方法有:LambdaRank、AdaRank、SoftRank、LambdaMART。
4)Learning to rank指标介绍
(1)MAP(Mean Average Precision):
假设有两个主题,主题1有4个相关网页,主题2有5个相关网页。某系统对于主题1检索出4个相关网页,其rank分别为1, 2, 4, 7;对于主题2检索出3个相关网页,其rank分别为1,3,5。对于主题1,平均准确率为(1/1+2/2+3/4+4/7)/4=0.83。对于主题2,平均准确率为(1/1+2/3+3/5+0+0)/5=0.45。则MAP= (0.83+0.45)/2=0.64。
(2)NDCG(Normalized Discounted Cumulative Gain):
一个推荐系统返回一些项并形成一个列表,我们想要计算这个列表有多好。每一项都有一个相关的评分值,通常这些评分值是一个非负数。这就是gain(增益)。此外,对于这些没有用户反馈的项,我们通常设置其增益为0。现在,我们把这些分数相加,也就是Cumulative Gain(累积增益)。我们更愿意看那些位于列表前面的最相关的项,因此,在把这些分数相加之前,我们将每项除以一个递增的数(通常是该项位置的对数值),也就是折损值,并得到DCG。
在用户与用户之间,DCGs没有直接的可比性,所以我们要对它们进行归一化处理。最糟糕的情况是,当使用非负相关评分时DCG为0。为了得到最好的,我们把测试集中所有的条目置放在理想的次序下,采取的是前K项并计算它们的DCG。然后将原DCG除以理想状态下的DCG并得到NDCG@K,它是一个0到1之间的数。你可能已经注意到,我们使用K表示推荐列表的长度。这个数由专业人员指定。你可以把它想像成是一个用户可能会注意到的多少个项的一个估计值,如10或50这些比较常见的值。
对于MAP和NDCG这两个指标来讲,NDCG更常用一些。Learning to Rank和基于监督分类的思想做Rerank二次排序总体效果是差不太多的,关键取决于特征工程和参数调优。3.基于加权组合的公式规则做二次排序
更多内容和源码...听课获取...
由于文章篇幅有限,更多详细内容与实战项目源代码在我们的免费公开课中跟大家分享,点击下方链接

https://ke.qq.com/course/981620?flowToken=1019668

就是我们的免费公开课啦~

今天的分享就到这里,祝大家生活愉快~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值