geekdoc-python-zh/docs/askpython/theory-intro-recommendation...

5.8 KiB
Raw Permalink Blame History

Python 中推荐系统的理论介绍

原文:https://www.askpython.com/python/examples/theory-intro-recommendation-systems

读者你好!今天,我们将学习 Python 中的推荐系统。

到本文结束时,您会知道:

它是什么,它们如何工作,需求是什么,它们的分类,需要哪些 python 模块,等等。所以,读完这篇文章,了解推荐系统的所有基础知识。我们开始吧

1.什么是推荐系统?

推荐系统,或称推荐系统,顾名思义,是向用户推荐某样东西的系统。这些工具可以提供一些建议,比如买什么东西,听什么歌,看什么电影。

这是我们每个人都在某个平台上经历过的事情。你有没有注意到,你今天在社交媒体上看到的广告,无论是 Instagram、脸书还是 YouTube都是你今天早上搜索的同一件商品如果没有现在就观察。比方说如果你在谷歌上搜索运动鞋下次你打开 YouTube你首先看到的将是运动鞋的广告。这是推荐系统的一个很好的例子。

因此,推荐系统是一个信息过滤系统,它预测用户可能喜欢看什么、买什么或读什么。

2.推荐系统是如何工作的?

现在我们已经了解了什么是推荐系统,让我们更进一步,看看它们是如何工作的。

推荐系统是数据科学和机器学习最重要的应用之一。这些系统的主要目标是为用户提供个性化的体验。

几乎每个主要的科技公司都在使用它。亚马逊使用这个系统向用户推荐他们的产品youtube 使用它根据你的历史向你推荐视频(类似于你看过的视频),网飞,亚马逊 PrimeHotstar 使用它根据不同的算法向你推荐电影Spotify 使用它进行音乐推荐。

这些平台大多根据你的历史,或者你通常喜欢和选择观看的类型等向你推荐项目。

但是如果你是一个新用户,那么这些平台也会显示一些推荐。这些推荐是基于他们的畅销书或歌曲,可能是前 20 名。

2.1.推荐系统的机制

让推荐系统发挥作用的步骤包括:

  • 数据收集

这一步包括从用户或不同来源收集数据,以便系统可以根据获得的数据个性化用户的体验。

有两种方法可以做到:

首先,明确地说。该数据由用户以电影评论、评级等形式有意提供。

第二,含蓄。这些数据仅从用户处收集,但并非有意收集。它是从其他可用的数据流中收集的,如搜索历史、订单历史、点击等。

  • 数据存储

收集完数据后,我们需要高效、有序地存储这些数据。数据量大得多,要妥善管理。数据量越多,推荐系统越好。

收集的数据类型决定其存储。它可能是一个标准的 SQL 数据库,也可能没有 SQL 数据库。

  • 数据过滤

存储数据后,下一步是过滤数据。我们需要过滤数据以提取相关信息,这将有助于做出最终建议。

使用现有的几种算法之一来过滤数据。我们将在下一节讨论过滤数据的不同算法。

2.2 数据分类

推荐系统在不同的基础上推荐项目,要理解,它们主要分为 3 类:

  1. 简单的推荐系统
  2. 基于内容的推荐系统
  3. 协同过滤推荐系统

2.2.1 简单推荐系统

这些系统以概括的方式推荐一个项目。即,不管用户的历史如何,这些推荐对于每个用户都是相同的。推荐是基于流行度的,比如 IMDb 排名前 10 的电影,或者可能是流派,比如某个特定流派的前 5 首歌曲,诸如此类。

2.2.2 基于内容的推荐系统

这些系统根据你的历史向你推荐一件商品。它使用元数据向您推荐一个与您过去观看或喜欢的项目相似的项目。一个最有经验的例子就是你的 YouTube feed。它显示的视频与你已经看过的视频相似。此外网飞、Hotstar 等 OTT 平台也使用这一系统。

2.2.3 协同过滤推荐系统

该算法不使用特定用户的偏好。它被广泛使用。它根据具有相似品味的其他用户对某个项目的评分,向特定用户推荐他/她可能喜欢的项目。

比方说,存在两个用户 A 和 B。两者都使用书籍推荐系统并且都被要求给几本书打分。他们给出了相似的评级。喜欢都给了一个虚构的小说 5 星,给了一个非虚构的 3 星。然后,该算法将识别用户 A 阅读但 B 未阅读的书籍,然后将这些书籍推荐给用户 B。这就是该过滤的工作方式并且它不需要任何项目元数据。

3.用 python 实现推荐系统所需的库

既然你已经了解了关于推荐系统的几乎所有东西。让我们学习一些 python 基础知识。在这一节中,我们将讨论实现基本推荐系统所需的 python 库。

  • Scikit learn :它是 python 中的一个开源机器学习库,提供了预测数据分析的简单工具。
  • Pandas :是 python 中的一个开源库,主要用于数据的分析和操作。
  • Numpy:这是一个 python 库,有助于线性代数、矩阵和数组领域的工作。

4.为什么需要推荐系统?

推荐系统被广泛用于增加收入。科技公司投入大量资金让他们的推荐引擎变得有效。帮助用户购买更相关的产品。电影或歌曲推荐系统不断推荐电影,以便用户保持对其平台的关注。

推荐系统帮助组织有效地做出商业决策。

这些系统对用户也很有帮助。用户不必浪费时间来做出选择。系统会为他们做这件事。

结论

恭喜你,你坚持到了最后。你已经学习了推荐系统的基本理论。

我希望这篇文章对你有帮助。