返回顶部
首页 > 资讯 > 前端开发 > VUE >如何理解LR模型
  • 908
分享到

如何理解LR模型

2024-04-02 19:04:59 908人浏览 泡泡鱼
摘要

本篇文章给大家分享的是有关如何理解LR模型,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。为什么是LR什么是LR大家已经知道了,但还有一个问题却

本篇文章给大家分享的是有关如何理解LR模型,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

为什么是LR

什么是LR大家已经知道了,但还有一个问题却没有回答。那就是为什么早年的时候LR模型如此受欢迎呢?难道就不能使用其他一些看起来高级一些的模型吗,比如决策树、随机森林、GBDT?不是说XGBoost在各种比赛的效果都非常好吗?为什么业内不用来做推荐呢?

尤其是当我读到2014年Facebook推出的GBDT+LR的paper的时候,这种困惑更是明显。

这篇论文非常经典,在业内地位很重,甚至可以说是推荐领域必读的paper之一。深度学习兴起之前很多公司和厂商都沿用了这个做法,论文当中的做法倒是不难,说是创新的做法,其实本质上就是将GBDT预测的时候样本落到的节点作为multi-hot编码,然后将这个编码之后的01的数组看成是新的特征,然后用这个转换过的特征来训练LR。可以说它的本质仍然是训练LR,所谓的GBDT只不过是一个编码器。

我当时看这篇paper的时候,里面的意思都已经理解了,但是有一个问题怎么也没想明白。既然都用GBDT了,结合其他模型不香吗,非得结合LR?

我估计这个问题很多在推荐领域的从业者可能也未必答得上来,我先卖个关子,把问题记在这里,等会晚点来回答。

推荐领域的特征有什么特点?

算法领域,提及效果,特征和模型两者是一体两面,很难剥离。好的模型也需要好的特征支撑,好的特征需要好的模型才能充分表达。所以我们先把模型的问题放一放,来思考一下特征。

推荐领域主要的特征只有三块,以电商为例,分别是item,user和context。也就是商品,用户以及环境信息,比如时间,地点,展示位置等等。context特征比较少,来来回回就那么几样,我们也先放一放。剩下的就是用户和商品,围绕用户和商品我们形成的特征主要又可以分成两个部分,一个是基础特征,另外一个是统计特征。

以商品举例,基础特征就是品牌、价格、类目、评价,统计特征就是最近点击率、最近销售额、最近转化率等等。这些特征按照类别分又可以分为两种,一种是浮点型的连续型特征,一种是类别特征,比如商品的类目,品牌等等。到这里都很正常,没有什么难理解,或者是不可思议的部分。

我们接着往下,再来看看模型要预测的目标——点击率。我们结合一下模型预测的目标再来观察一下前面列举的特征,你会发现,除了历史点击率、历史转化率等少数几个指标和最终的结果是强正相关之外,其他的浮点型的特征没有特别明显的正相关或者是负相关。可以说商品的价格和点击率负相关吗?其实不太行,商品越便宜可能质量越差,反而不会有人点。用户的购买力呢?越有钱点的商品越多吗?也不成立。

正是因为上面说的这个原因,所以在推荐领域,效果很好的浮点型特征很少,大部分都是类别特征,也就是01特征。

所以你说GBDT、随机森林、XGboost这些模型的效果会很好吗?很难说,因为这些模型的长处往往都在浮点型特征,也就是连续型特征。这些树模型会设计规则对这些连续特征进行分段,如果大部分特征都是01特征,那还怎么分段呢?

所以,到这里也就回答了,为什么在深度学习模型兴起之前,推荐领域普遍都使用LR,而不是那些看着很牛的树模型。

LR模型的原理

LR模型也就是纯线性模型,它可以简单理解成若干个特征的加权和。每个特征的权重或大或小,最后累加在一起,得到一个预测的概率。这毫无毛病,也是学过的人都知道。

但我们往下一层,有没有想过这一点在推荐领域意味着什么呢?

意味着模型其实是”记住“了每个特征和最终结果的关系,我们把模型拟人化,把它看成一个机器人的话。机器人看到样本有特征A并且点击了,于是特征A的权重提升一点,样本有特征B但是没点击,于是把特征B的权重降低一些。模型就是在这样一个策略当中找到一个最佳的平衡。

这就意味着,一些容易被记忆的特征往往会发挥比较好的效果。比如男士通常会买烟,女士通常买口红,那么我们就可以设计男士_烟和女士_口红的组合特征。当模型看到大部分男士看到烟都点击了之后,它就能学到这个组合是一个强特征并给与一个比较高的权重。这样只要我们尽可能地找出这些特征的组合,那么模型就可以得到很好的效果。

所以到这里大家就明白了,LR模型在推荐领域发挥作用,本质上就是靠的“记性”。因为它可以记住那些类别特征以及类别特征的组合,所以它往往比那些看起来更高端的树模型效果要好。这也是为什么到了LR时代的后期,算法工程师们的工作就是整天挖掘一些类别特征的组合,以期望模型达到很好的效果。

LR模型的优缺点

到这里,关于LR模型在推荐领域的应用就差不多说完了,我们做一个简单的总结,首先从它的优点开始说起。

LR模型的优点教科书上已经说了很多了,比如训练速度快,由于参数空间比较小,LR模型可以迅速收敛,它的训练速度要比那些树模型以及后面的深度学习模型快得多。其次是可解释性强,由于我们可以查阅得到所有特征的权重,所以我们很容易解释究竟是什么特征发挥了作用,或者是什么特征拖了后腿。

但是LR在推荐领域也有一个很大的缺点,是什么呢,就是脏活累活很多。

因为几乎所有的特征组合都需要人工挖取,需要人工遍历很多特征组合,甚至是一一尝试找到最佳的组合。这个过程当中需要花费大量的人力,几乎可以说是纯堆人工。所以对于LR时代的算法工程师来说可能螺丝的感觉比现在还要严重得多,什么优化模型基本上是不用想了,LR这么简单的模型也没什么优化的空间,剩下的事情基本上就只有做特征做实验了。

以上就是如何理解LR模型,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网VUE频道。

--结束END--

本文标题: 如何理解LR模型

本文链接: https://lsjlt.com/news/83420.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何理解LR模型
    本篇文章给大家分享的是有关如何理解LR模型,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。为什么是LR什么是LR大家已经知道了,但还有一个问题却...
    99+
    2024-04-02
  • 如何理解css3弹性盒模型
    本篇内容介绍了“如何理解css3弹性盒模型”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Flexbox是布...
    99+
    2024-04-02
  • 如何理解W3C DOM模型用法
    这篇文章将为大家详细讲解有关如何理解W3C DOM模型用法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。这里和大家重点讨论一下DOM模型,DOM模型实际上是...
    99+
    2024-04-02
  • 如何理解DOM文档对象模型
    如何理解DOM文档对象模型,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。向大家描述一下DOM文档对象模型,文档对象模型(DocumentO...
    99+
    2024-04-02
  • 如何理解Kubernetes 网络模型进阶
    本篇文章为大家展示了如何理解Kubernetes 网络模型进阶,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Kubernetes 网络模型来龙去脉容器网络发端于 Docker 的网络。Docker ...
    99+
    2023-06-04
  • 如何深入理解Pytorch微调torchvision模型
    如何深入理解Pytorch微调torchvision模型,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、简介在本小节,深入探讨如何对torchvision进行微调和特征提...
    99+
    2023-06-25
  • Java内存模型技术该如何理解
    Java内存模型技术该如何理解,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。  因为Java内存模型不仅是Java重点要学习的技术知识,还是面试的时候经典面试题,希望引起同...
    99+
    2023-06-02
  • 如何理解TiDB的分布式事务模型
    本篇内容介绍了“如何理解TiDB的分布式事务模型”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在传统关系型...
    99+
    2024-04-02
  • 如何理解系统经典模型Wide与Deep
    这篇文章主要介绍“如何理解系统经典模型Wide与Deep”,在日常操作中,相信很多人在如何理解系统经典模型Wide与Deep问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何...
    99+
    2024-04-02
  • 如何理解C++对象模型和this指针
    本篇内容主要讲解“如何理解C++对象模型和this指针”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解C++对象模型和this指针”吧!对象模型成员变量和成员函数分开存储一、只有非静态成员...
    99+
    2023-06-25
  • ONNX模型如何进行推理
    ONNX模型可以通过使用ONNX Runtime库进行推理。ONNX Runtime是一个高性能的推理引擎,支持在多种硬件平台上进行...
    99+
    2024-04-02
  • 如何解析Apache Spark 统一内存管理模型
    今天就跟大家聊聊有关如何解析Apache Spark 统一内存管理模型,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Apache Spark 统一内存管理模型详解下面将对 Spark...
    99+
    2023-06-02
  • 如何理解 C++ 函数模板的类型推断?
    类型推断是 c++++ 函数模板中编译器自动推断函数模板参数类型的重要特性,根据函数参数类型或最合适类型推断模板参数类型。如 max() 函数模板可使用不同类型数组,因为编译器从数组元素...
    99+
    2024-04-24
    c++ 函数模板
  • Keras中如何进行模型解释
    在Keras中,可以使用一些工具来解释模型,如下所示: 使用Grad-CAM(Gradient-weighted Class A...
    99+
    2024-03-08
    Keras
  • JAVA + LR如何实现apache流媒体的性能测试
    这篇文章给大家分享的是有关JAVA + LR如何实现apache流媒体的性能测试的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。多客户端的模拟无外乎3种方法:1.全公司总动员,一起看。2.一台机器开多个播放页面(或...
    99+
    2023-06-02
  • pytorch_pretrained_bert如何将tensorflow模型转化为pytorch模型
    pytorch_pretrained_bert将tensorflow模型转化为pytorch模型 BERT仓库里的模型是TensorFlow版本的,需要进行相应的转换才能在pytor...
    99+
    2024-04-02
  • CSS盒子模型怎么理解
    本篇内容主要讲解“CSS盒子模型怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS盒子模型怎么理解”吧!理解CSS盒子模型如果你想实现不需要很多奇巧淫...
    99+
    2024-04-02
  • 怎么理解Java内存模型
    本篇内容主要讲解“怎么理解Java内存模型”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解Java内存模型”吧!内存模型的由来 计算机在执行程序的时候每条指令都是由CPU来执行的。而CPU...
    99+
    2023-06-16
  • ADO.NET对象模型怎么理解
    这篇文章主要讲解了“ADO.NET对象模型怎么理解”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ADO.NET对象模型怎么理解”吧!许多VS开发人员似乎都这么想,认为所有的Oracle的东西...
    99+
    2023-06-17
  • 如何理解Mysql debug模式
    如何理解Mysql debug模式,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 以debug模式编译 -D...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作