网站建设价格差异多少wordpress月亮花园
web/
2025/9/29 2:35:50/
文章来源:
网站建设价格差异多少,wordpress月亮花园,内蒙建设厅网站,建设网站龙华文 | 水哥源 | 知乎Saying1. 小的性能差异在容易实现面前一文不值#xff0c;这一点是XGBoost和LightGBM的最大优势2. 没能与embedding很好地结合无疑是树模型的灾难#xff0c;吃不下巨量的新数据#xff0c;也打不过DNN#xff0c;除了一些规模比较小的公司#xff0c;树… 文 | 水哥源 | 知乎Saying1. 小的性能差异在容易实现面前一文不值这一点是XGBoost和LightGBM的最大优势2. 没能与embedding很好地结合无疑是树模型的灾难吃不下巨量的新数据也打不过DNN除了一些规模比较小的公司树模型在精排中已经灭绝了3. 但没能与embedding很好地结合却带给树模型无限生机在每一个需要模型但又不能上太重模型的场合树模型都可以灵活的存在。以这种方式树模型在推荐系统中获得了永生4. 想要成为精排模型的必要不充分条件是新出现的特征/取值不会对训练部署流程有任何中断或者形式上的改变这是【从零单排推荐系统】系列的第15讲。树模型在推荐中应用算法上的发展比较简单从决策树到基于树的Gradient Boosting Machine包括上一讲的GBDT都是抓小点和缝合为主。虽然XGBoost和LightGBM在GBDT的基础上各自还做了一些改进但都是属于修补性质的。这两个工作更加为人熟知的是工具上的发展越来越好开源的实现是很多人打比赛刷榜的利器。在实践中好用的框架/工具就是算法长盛不衰的秘诀。本讲的重点是一个很有意思的别的地方没有讨论过的问题在kaggle等比赛中树模型非常强势但是在实际业务中树模型几乎不会成为精排的选择为什么会出现这样一头热一头冷的情况其本质原因是要成为不断接受新数据新特征的门神模型必须拥有形式上的不变性。XGBoost[1]更加精致的GBM我们先延续上一讲的GBDT的推导来介绍XGBoost正如上一讲所说GBM的核心是级联很多模型后面的模型学习的都是前面模型综合后剩下的残差这里的公式含义都和上一讲完全保持一致。在这里我们可以做一个二阶的近似也就是按照泰勒展开到二阶项为止其中 分别表示在上一步对于 的一阶二阶偏导。由于的结果基本之前都已经算过了设现在这步需要拟合的目标是 的话就有为了能让这个式子继续简化可以假设模型结构 是一个回归树即样本对所有树都做一次预测而每棵树的叶子节点都有权重最后样本的概率是这些落入节点的权重的和可以换个方式来理解经过一些非线性操作也就是决策树决策的过程最后得到的仍然是一个binary的向量。1的点就是落入的叶子节点其他则是0然后相当于用一个LR来做分类。那么这个模型可以表示为若 还是一个二范数的正则化那么把这个代入到上面的式子中得到的就是一个二次项其中的按照维度拆解找对称轴和 《水哥推荐系统精排之锋2工业LR的稀疏要求挑战全网最好懂推导(https://zhuanlan.zhihu.com/p/408205665)》都是一样的就可以直接求解了。算法上XGBoost对寻找切割点的贪心做了效率上的优化不是遍历每一个点而是先通过特征分布寻找可能成为切割点的候选在遍历这些候选的点。在工程上XGBoost事先把排序结果存在Compressed Sparse Columns Format中并且用块压缩和块分区来优化IO速度。但工程优化不是这个专栏的重点主要是我也不会就不展开讲了。总结来说相对于GBDTXGBoost的主要优点有1.使用了二阶项作为更细的近似精度更高2. 使用正则项并且把叶子结点个数加入到正则项中可以控制模型的复杂度3. 在特征排序上和寻找切割点的过程中都做了并行化处理。LightGBM[1]极大加速的GBDTLightGBM是GBDT的另一种改进版本它的出发点是从样本角度和特征角度来简化GBDT的运算过程样本角度GBDT对于每一个样本都要参与运算而在LightGBM中给出了一个假设只有梯度大的哪些样本才会影响学习的过程梯度小的样本是一定程度上可以忽略的。基于这个假设我们要做的就是把梯度大的放回去继续优化梯度小的丢弃。但是还不是这么简单的如果梯度小的全丢了那么可能会引入bias所以我们可以选择梯度大的也就是排序前top a%全要后面的部分中采样出b%。采样后的部分要乘以一个系数 为啥是这个系数呢假如采样后和采样前均值 没发生变化乘完系数之后两类样本的比值没变这样可以尽量不让分布发生变化有没有注意到和之前说过的样本负采样很像还记得是哪一讲的吗。特征角度特征中有很多特征是不会同时为1的比如有一些one-hot特征性别年龄这样的一个用户只会有其中一个值不为0.那么遍历这样的所有取值是不太合理的。LightGBM提出把这些不会同时取1的特征合并在一起行成一个“束”这样寻找切割点的时候遍历起来会更快这个就叫做互斥特征捆绑Exclusive Feature Bundling。不过在实现上还有两个小问题第一个问题是选择谁和谁拼成一个新的特征第二个问题是具体怎么操作对于第一个问题lightGBM给出的做法是以特征为顶点以冲突同时为1有多大为边建图。每个节点的度是与其他节点冲突的大小由大到小挨个开始如果加入一个“束”会导致总的冲突数超过既定阈值 就新开一个“束”反之则加入。对于第二个问题其实就是把值域合并一下文章中举得例子是 的值域是 的值域是 那么给 加一个10的偏置再合起来新的特征值域就是。上面虽然介绍了现在树模型比较好用的两种算法/工具但是本讲的重点其实不是他们的原理而是在实践中我们如何选择是否使用树模型如果用的话用在哪些场合是比较理想的因为没有embedding树模型绝迹于精排我们这两讲提到了很多树模型的优点比如它的非线性是非常非线性的。但是大家如果对业界有所了解就会发现很少在实际业务的精排中看到树模型的身影这是为什么先抛出结论因为树模型不能很好的处理在线学习过程中源源不断的出现的ID类型的特征。虽然XGBoost和LightGBM都谈了对于未训练的值如何处理但在实际场景中这个数字可能会非常夸张。从冷启动这个角度来想如果我们希望我们的平台是富有活力的平台就理应会源源不断的出现新的item那么冷启动的规模就更大。现在的大平台上新item的比例应该远远超过50%在这么大的未出现样本面前树模型就显得捉襟见肘了。不能很好的解决这个问题树模型就不能负担得起精排的重任。当然树模型不是完全没有想过应对方案。前一讲的Facebook那篇文章其实就说了他们的树模型是一天一更新的如果不更新就会失去树模型强化分桶的作用。这个方案当然体现了他们对问题的深入思考但你也能看得出来这中间的勉强。如果树模型后面接的环节是一天重新训练不能收敛的这个方案还能用吗那么现在的精排模型怎么解决这个问题答案就是embedding每当新出现了ID我可以开辟一段新的空间来存储让这段embedding保留该特征的信息。一个新的embedding的加入虽然会引发冷启动问题但是对于训练部署的流程没有任何改动。因此基于embedding的embeddingDNN无往不利。有的同学可能会说那LR也没有embedding呀为什么它可以我们可以认为LR是有embedding的但是只有1维就是之前所说的特征的权重 。在未来还可能有新的形式或者模型出现但是我认为不管哪种模型来做精排新的特征出现时都不能在训练部署上出现中断或者形式的改变。目前为止还没有看到树模型和embedding很好地结合的例子或者准确地说是树模型没什么加embedding的必要和意义。embedding本质上是把低维的ID映射到一个更高的空间中记录更细致的信息我个人也有一些相关的经验比如把所有特征的embedding长度都翻倍基本上涨幅有大有小但是从来不会掉点。这表明更大的embedding拥有更多的存储空间而决策树是按照特征本身的信息划分的。因为没有embedding树模型得以长生上面明明说没有embedding树模型都快灭绝了这里怎么又说长生了乍一看这和上面的说法不是反着的吗可能这就是所谓的塞翁失马焉知非福了。embedding是很强很暴力但是embedding需要大量的空间Parameter Server来存。想想看如果一个特征的embedding维度是64原来LR中一台机器能存下的特征现在就需要64台机器来存这是非常可怕的空间消耗。而且推荐系统也不是除了召回粗排精排就没东西了还有许许多多小的环节需要模型来预估难道各个都用embeddingDNN的模型结构吗除了占用空间太大可能其中有的模型ROI也不太高不如就找个简单点的模型抗住呗这个时候树模型就可以大展身手了。既然它不需要embedding那它就很省空间。一些边边角角的地方需要模型时都可以考虑用它。不要小看这些边边角角的场合有些是发挥很大作用的举两个例子判断一个item处于生命周期中的哪个阶段在后面会讲讲这个概念现在可以简单理解为一个item有刚开始起量稳定膨胀流量下滑和死亡这么几个阶段根据这个阶段可以做不同的针对性决策此时Item ID做特征显然是没有意义的而是item现在总的曝光量已经投放了多久每个阶段的曝光转化等等。预测一个用户第二天是不是还会来有各种行为特征比如在某个类别下观看了多少视频用户已经用了多长时间今天的总播放时长是多少等等。这两个例子都是实践中使用树模型的典型场景也是非常重要的应用场景。第一个场景关系到在线广告系统中怎样为广告主分配流量。而第二个例子与留存-DAU这个漏斗的优化有关联。从这两个例子中归纳一下当触发以下两个条件时树模型自动进化为不二选择特征中没有不断新增的ID类特征categorical特征可以穷举比如年龄城市等。当输入的特征混有各种各样的categoricalnumeric等等类型的特征时尤其对于像counter计数类特征比如用户在APP上的时间类很有效果。经过上面的分析我们就能理解为什么在工业界树模型从精排模型中绝迹了但在kaggle等比赛中经常出现树模型的身影。因为kaggle的比赛大部分是闭集而且对特征设计要求较高这种情况很适合树模型发挥强大的非线性分类能力。开集与闭集以人脸识别为例闭集的含义是测试集的人你都见过只是现在给你的图片你没见过。而开集则指的是测试集中会出现新的人要判断这些没见过的人的图片之间是否相似。所以在公开数据集里面基本都是固定的人闭集而如果是产品则要面对开集场景。下期预告推荐系统精排之锋10DNN与两大门派往期回顾1.召回 粗排 精排如何各司其职2.拍不完的脑袋推荐系统打压保送重排策略3.简单复读机LR如何成为推荐系统精排之锋4.召回粗排精排-级联漏斗上5.召回粗排精排-级联漏斗下6.推荐系统精排看阿里妈妈再试线性模型7.推荐精排之锋FM的一小步泛化的一大步8.推荐中使用FNN/PNN/ONN/NFM优化特征交叉9.聊聊推荐系统的高阶特征交叉问题10.真正的高阶特征交叉xDeepFM与DCN-V211.GBDT是如何成为推荐系统顶级工具人的后台回复关键词【入群】加入卖萌屋NLP/IR/Rec与求职讨论群后台回复关键词【顶会】获取ACL、CIKM等各大顶会论文集 [1] XGBoost: A Scalable Tree Boosting SystemKDD2016 (https://www.kdd.org/kdd2016/papers/files/rfp0697-chenAemb.pdf)[2] LightGBM: A Highly Efficient Gradient Boosting Decision TreeNIPS2017 (https://proceedings.neurips.cc/paper/2017/file/6449f44a102fde848669bdd9eb6b76fa-Paper.pdf)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83645.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!