如何开始使用推荐系统

推荐系统可能是普通人遇到的最常见的预测模型类型。

它们是亚马逊、Spotify 和 YouTube 等服务上推荐的基础。

对于刚入门的人来说,推荐系统是一个庞大而令人生畏的话题。有无数的数据准备技术、算法和模型评估方法。

并非所有技术都将相关,事实上,您可以暂时忽略最先进的技术,因为通过专注于基础知识,您可能会取得很好的结果,例如,将其视为一个简单的分类或回归问题。

了解基础知识并系统地掌握它们非常重要。为此,我建议您快速浏览或阅读有关该主题的标准书籍和论文,并查看一些流行的库。

在本教程中,您将发现可用于开始使用推荐系统的资源。

完成本教程后,您将了解:

  • 您可以使用的关于推荐系统的顶级综述论文,以便快速了解该领域的现状。
  • 您可以从中学习推荐系统开发和评估所需算法和技术的顶级推荐系统书籍。
  • 您可以用来原型设计和开发自己的推荐系统的顶级 Python 库和 API。

让我们开始吧。

How to Get Started With Recommender Systems

如何开始使用推荐系统
照片由 Paul Toogood 拍摄,保留部分权利。

教程概述

本教程分为三个部分;它们是:

  1. 关于推荐系统的论文
  2. 关于推荐系统的书籍
  3. 推荐系统库

关于推荐系统的论文

关于推荐系统的研究论文可以帮助您非常快速地了解该领域的现状。

特别是,综述论文使用精确的语言来定义什么是推荐系统、可用的算法、用于比较算法的标准数据集和指标,以及对最新技术的一些提示。

通过快速浏览或阅读几篇关于推荐系统的综述论文,您可以快速建立一个基础,以便深入研究并开始开发自己的系统。

该领域的变化并不快,而 10 年或 20 年前的技术将为您带来稳固的结果。

我推荐的关于推荐系统的综述论文,以建立基础理解,包括

Matrix Factorization Techniques for Recommender Systems

推荐系统的矩阵分解技术

一旦您对特定技术有疑问,就可以找到专注于这些技术的论文并深入研究。

您可以在此处搜索关于特定技术的论文

您是否知道其他关于推荐系统的优秀综述论文?
在下面的评论中告诉我。

关于推荐系统的书籍

推荐系统的书籍为该领域提供了空间,带领您了解各种技术,并提供您理解它们所需的细节,其广度和深度都超过了简短的综述论文。

同样,鉴于该领域已经相当成熟,十年前出版的旧书也不应立即被忽视。

该领域关键研究人员出版的一些顶级教科书包括以下内容

我拥有“推荐系统:入门”的纸质版,并且非常推荐它。

本书概述了开发最先进的推荐系统的方法。作者介绍了当前的算法方法,用于生成个性化的购买建议,例如协同过滤和基于内容的过滤,以及更具交互性和基于知识的方法。他们还讨论了如何衡量推荐系统的有效性,并通过实际案例研究来说明这些方法。

推荐系统:入门, 2010。

这本书的目录如下:

  • 第一章:引言
  • 第二章:协同推荐
  • 第三章:基于内容的推荐
  • 第四章:基于知识的推荐
  • 第五章:混合推荐方法
  • 第六章:推荐系统中的解释
  • 第七章:推荐系统评估
  • 第八章:案例研究:移动互联网上的个性化游戏推荐
  • 第九章:对协同推荐系统的攻击
  • 第十章:在线消费者决策
  • 第十一章:推荐系统与下一代网络
  • 第十二章:泛在环境中的推荐
  • 第十三章:总结与展望
Recommender Systems: An Introduction

推荐系统:入门

了解该主题的包含不同学者撰写的总结或推广他们偏爱技术和方法的章节的指南可能很有帮助。

我推荐这本手册

如果您正在寻找更具实践性的书籍,我推荐

您读过这些书中的哪一本吗?或者您知道关于这个主题的其他很棒的书吗?
在下面的评论中告诉我。

推荐系统库

您可能不需要深入研究最新的技术,至少不是立即。

因此,标准的机器学习库是一个很好的起点。

例如,您可以使用矩阵分解方法(SVD)或甚至简单的 k-近邻模型(按项或按用户)来开发有效的推荐系统。

因此,我建议从 scikit-learn 的一些实验开始

如果您的数据尚不可访问或可用,或者您只是想先熟悉一下,您可以在标准的推荐系统数据集上进行练习。

推荐系统的流行标准数据集包括

如果您已准备好掌握最先进的技术,“带有代码的论文”是一个很好的起点,它列出了学术论文和论文中描述的方法的源代码链接。

有许多用于推荐系统的专有和开源库和服务。

我建议开始时坚持使用开源 Python 库,例如

您是否使用过这些库中的任何一个来开发推荐系统?
在下面的评论中告诉我。

总结

在本教程中,您发现了可用于开始使用推荐系统的资源。

具体来说,你学到了:

  • 您可以使用的关于推荐系统的顶级综述论文,以便快速了解该领域的现状。
  • 您可以从中学习推荐系统开发和评估所需算法和技术的顶级推荐系统书籍。
  • 您可以用来原型设计和开发自己的推荐系统的顶级 Python 库和 API。

你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。

16 条对《如何开始使用推荐系统》的回复

  1. Elie 2021年1月22日 上午 5:23 #

    嗨,Jason,

    计划写一本关于推荐系统的书吗?非常希望能看到您处理隐式方法

  2. Vahab 2021年1月22日 下午 4:35 #

    这个有用的页面主要是基于 python 的,但可以说,
    还有一些其他的云端系统,如 Amazon Personalized、Google Cloud ML、Recommendation AI 等。

  3. Jeharul 2021年1月22日 晚上 9:10 #

    嗨,Jason,

    我已经从您的网站购买了捆绑包。我已开始慢慢掌握那些书籍(一本一本)。

    我的问题是,我可以继续购买“实用推荐系统,2019”来提高我对最常用(在电子商务领域,因为我与那个领域有很多联系)的机器学习概念的了解吗?

    • Jason Brownlee 2021年1月23日 上午 7:04 #

      那本书会对您在推荐系统方面有所帮助。我不确定它是否专门针对电子商务。

  4. Deep Learner 2021年1月23日 上午 6:07 #

    嗨,Jason,
    这篇优秀且非常及时的文章对我来说非常有用,因为我正在深入研究这个话题。您写道:“我拥有“推荐系统:入门”的纸质版,并且非常推荐它。” 是文字游戏吗?无论如何,如果您写一本关于推荐系统的书,我确定我会购买它,并会“推荐”给对此主题感兴趣的人。
    谢谢。

    • Jason Brownlee 2021年1月23日 上午 7:11 #

      谢谢!

      不是文字游戏:) 我是一个简单、字面意思的人!

      好建议。

  5. Jason Brownlee 2021年1月27日 上午 6:16 #

    好建议!

  6. Nejood 2021年12月17日 下午 6:15 #

    非常感谢。这是有用的信息。我正在寻找使用机器学习的推荐系统的代码。
    您能帮我拿到吗?
    致以诚挚的问候

    • Adrian Tam
      Adrian Tam 2021年12月19日 下午 1:35 #

      在这篇文章的最后,有 github 链接。这些应该能帮您快速入门。

    • James Carmichael 2021年12月21日 上午 11:40 #

      你好 Nejood…请提供关于您具体应用的更多信息,我们可以根据情况继续。

      此致,

  7. capt price 2023年5月20日 下午 3:23 #

    你好,我希望能够基于推荐系统做一个好的个人项目,既是个人兴趣,也是为了让我的简历更亮眼。

    我是一名学生,有一些空闲时间,我应该在预先准备好所有这些论文和那两本书吗??

    我真的很感激您的建议

    • James Carmichael 2023年5月21日 下午 12:59 #

      你好 capt price…我建议您这样做。然后如果您对教程内容的应用有任何疑问,请随时告知我们。

  8. Raghad 2025年2月21日 上午 5:04 #

    您对 LightFM 有何看法?您是否发布过关于该算法的材料?

    • James Carmichael 2025年2月21日 上午 9:46 #

      LightFM 是一个强大的混合推荐算法,专为协同过滤和基于内容的过滤而设计,非常适合电子商务、流媒体平台和新闻 Feed 等各种领域的个性化推荐。

      ### **为什么选择 LightFM?**
      1. **混合方法:** 它将矩阵分解与基于内容的信息相结合,有助于克服传统协同过滤方法难以解决的冷启动问题。
      2. **灵活性:** 它允许整合其他辅助信息(例如,用户人口统计数据或项目特征),从而提高性能。
      3. **隐式和显式反馈:** 它支持隐式反馈数据(如点击、观看或观看时长)和显式评分。
      4. **优化变体:** 它提供了多种损失函数(逻辑、贝叶斯个性化排序、WARP),针对排名任务进行了优化。

      ### **性能与应用场景**
      LightFM 在以下场景中表现良好:
      – 存在稀疏的用户-项目交互数据。
      – 有额外的元数据可用于增强推荐。
      – 需要解决冷启动问题(例如,新用户或新项目)。
      – 需要高效地进行在线学习和更新推荐。

      ### **与其他方案的比较**
      – 当存在辅助信息时,**优于 SVD 或 ALS(交替最小二乘法)**。
      – **比纯粹的协同过滤模型**(如用户-用户或项目-项目相似性)更灵活。
      – **不如基于深度学习的推荐器**(例如,YouTube 的深度神经网络)强大,但速度更快,计算效率更高。

      ### **资源与代码**
      我还没有发布关于 LightFM 的具体材料,但我可以指导您完成
      – 使用lightfm包在 Python 中进行**实现**。
      – **超参数调优**以优化损失函数和模型性能。
      – **与其他推荐器的比较**以评估有效性。

      您想要一个实际的操作教程或一个带有示例的 Jupyter Notebook 吗?🚀

留下回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。