手把手带你搭建推荐系统
黄鸿波
谷歌开发者专家,知名游戏公司技术专家
3441 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 36 讲
手把手带你搭建推荐系统
15
15
1.0x
00:00/00:00
登录|注册

24|GBDT+LR:排序算法经典中的经典

你好,我是黄鸿波。
在前面的课程中,我们讲了推荐系统中的数据处理、接口实现和一些召回算法和模型,从本章开始,我们就会进入一个新的篇章:推荐系统中的排序算法。
我一共设计了三节课,分别是 GBDT+LR、DeepFM 和重排序。这三节课的内容代表了基于算法的排序、基于模型的排序和基于人工的排序。
在本节课先聚焦在 GBDT+LR 上,你将会学到下面四个部分的知识。
逻辑回归(LR)模型。
GBDT 算法概述。
GBDT 与 LR 的结合。
实现一个 GBDT+LR 算法。

什么是逻辑回归(LR)模型

逻辑回归(LR,Logistic Regression)是一种传统机器学习分类模型,也是一种比较重要的非线性回归模型,其本质上是在线性回归模型的基础上,加了一个 Sigmoid 函数(也就是非线性映射),由于其简单、高效、易于并行计算的特点,在工业界受到了广泛的应用。
一般来讲,我们使用 LR 模型主要是用于分类任务,且大多以二分类为主。在推荐系统的实际业务中,LR 常用来作为 Baseline 模型,实现快速上线的目的。
从本质上来讲,逻辑回归和线性回归一样同属于广义线性模型。虽然说逻辑回归可以实现回归预测,但是在推荐算法中(或者说在大多数的业务场景中),我们都将其看作是线性模型并把它应用在分类任务中。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

推荐系统中的排序算法是本文的重点,主要介绍了逻辑回归(LR)模型和GBDT算法在推荐系统中的应用。逻辑回归通过Sigmoid函数实现非线性映射,常用于预估点击率和处理特征,具有模型可解释性和处理异常值的能力。而GBDT算法是基于决策树的集成学习算法,可用于优化个性化推荐的准确性和提高用户满意度。文章还介绍了GBDT+LR模型的结合应用于点击率预估,以及如何实现一个GBDT+LR算法。总的来说,本文通过实例和技术特点,为读者提供了排序算法在推荐系统中的应用场景和实现方法。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《手把手带你搭建推荐系统》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • 麦克范儿
    老师您好,感谢这讲非常详细的解释。有个关于算法使用的问题想请教一下,GBDT + LR 这类机器学习算法和协同过滤这类的传统算法的区别在于说机器学习将推荐问题从相似度计算和后续的用户 - 物品匹配问题转化为传统的机器学习的二分类问题吗?另外我看有些网站上面没有将这些算法按照召回和排序进行分类,而是都进行了平行分类,因此想了解下是否咱们介绍过的协同过滤和GBDT + LR这些算法都有召回和排序并推荐的作用呢?谢谢您指点!

    作者回复: GBDT + LR和协同过滤是推荐系统中常用的两种算法,它们在推荐问题的建模和解决方式上有一些区别。 GBDT + LR:这种方法将GBDT和LR结合起来,首先利用GBDT对用户和物品的特征进行建模和学习,得到一组高维稀疏特征的表示,然后将这些特征作为LR模型的输入,通过二分类问题来进行推荐。GBDT负责提取特征,LR负责做预测。这种方法可以更好地捕捉复杂的非线性关系和用户行为模式,提高模型的预测性能。 协同过滤:协同过滤是一种基于用户行为数据的推荐算法,主要利用用户之间的行为相似性或者物品之间的关联性来进行推荐。协同过滤不需要依赖特征工程,直接根据用户与物品之间的交互信息进行计算。最常见的协同过滤方法有基于用户的协同过滤和基于物品的协同过滤。 至于召回和排序的分类,召回是指从海量候选物品中快速筛选出一小部分潜在的推荐物品,而排序是在召回的物品中通过打分或排名来确定最终推荐的物品顺序。GBDT + LR和协同过滤算法都可以用于召回和排序的阶段。 在召回阶段,GBDT + LR可以用于构建精确且高效的召回模型,通过学习用户和物品的关系来筛选出潜在的推荐候选集。协同过滤也可以用于召回,例如基于用户的协同过滤可以通过计算用户之间的相似度来找到相似用户喜欢的物品。实际上,召回阶段的算法种类很多,可以根据具体的需求和场景选择合适的方法。 在排序阶段,GBDT + LR可以利用丰富的特征信息和模型的非线性能力,对召回的候选物品进行打分或排序,推荐给用户。协同过滤也可以用于排序,例如基于物品的协同过滤可以通过计算物品之间的相似度来给推荐物品排序。 需要根据实际情况来选择适合的算法和阶段,以实现准确和个性化的推荐效果。

    2023-06-11归属地:加拿大
  • peter
    Q1:模型训练的时候需要大量机器,模型确定以后用于计算则并不需要大量机器,是这样吗? Q2:GBDT+LR,这种算法用的多吗?实际效果怎么样?其消耗的硬件资源多吗?

    作者回复: Q1:一般情况下,模型的训练确实需要大量的计算资源和时间。模型的训练通常涉及大规模的数据集和复杂的计算过程,因此通常需要使用高性能的计算机或者分布式计算集群来进行训练。一旦模型训练完成后,用于计算阶段的资源需求可能会相对较少,因为计算阶段通常只需加载模型和输入数据,然后执行预测或推理操作。但需要注意的是,模型计算的资源需求仍然取决于模型的大小、复杂度以及输入数据的规模。 Q2:GBDT+LR(Gradient Boosting Decision Tree + Logistic Regression)是一种常用的集成学习方法,它将GBDT的输出作为LR的输入,用于进一步提升模型的性能。GBDT+LR的方法在实际应用中是比较常见的,尤其在点击率预测、推荐系统等场景中取得了很好的效果。 相对于单独使用GBDT或LR,GBDT+LR通过结合两种模型的优势,可以更好地处理非线性特征和高维稀疏特征,具有较强的表达能力和泛化性能。此外,由于GBDT和LR的计算都是可并行化的,所以在消耗硬件资源方面并不会太多,通常可以在普通的计算机或者少量节点的分布式环境中运行。当然,具体的资源消耗还取决于数据集的大小、特征的维度等因素。

    2023-06-10归属地:北京
  • Geek_3003b4
    老师你好,您代码中数据特征的提取那一部分是不是写错了呀,pd.cut可以这样用吗 data = pd.read_csv('../../data/trainningset.csv', header=None) for _file in ['../../data/trainningset_10', '../../data/trainningset_11', '../../data/trainningset_12']: temp = pd.cut(_file, header=None) data = pd.concat([data, temp], axis=0, ignore_index=True)
    2023-12-04归属地:广东
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部