python编写推荐引擎学习笔记(一)

来源:互联网 发布:素手浣花 知乎 编辑:程序博客网 时间:2024/05/22 10:36

推荐引擎可以说是一个自动化的“商店销售员”。你可以咨询他某件东西。他不仅向你介绍询问的产品,还向你推荐其他你可能购买的商品。

一、推荐引擎的类型

case1:推荐最受欢迎的项目

一个简单的方法是把大部分用户喜欢的项目作为推荐项目。这是一个快捷且卑鄙的做法,他有很大的缺点。就是这种方法并没有使用个性化。

基本上,每个用户最受欢迎的项目是相同的,因为在整个用户池上定义了流行度。 所以每个人都会看到相同的结果,这看起来就像,一个网站推荐你购买微波炉只是因为其他用户喜欢而不在意你是否有兴趣购买或者不买。

特别地,这些方法一直在像新闻门户网站中使用,当你登录bbcnews时,已将看到一列“热门新闻”,他被细分为几个部分,并显示每个部分最多阅读的文章。在这个案例中这个方法能起作用是因为:

  • 热门新闻是有分区的,所以用户可以查看他感兴趣的部门
  • 在某个时候只有几个热门话题,用户有很高的可能性想要阅读大部分其他人阅读的消息。

case2:使用分类器来推荐

我们有很多已知的分类算法。让我们看看我们如何使用相同的技术来提出推荐。分类器是参数化解决方案,因此我们只需要定义用户和项目的一些参数(特征)。如果用户喜欢,结果可以为1,否则为0。 在某些情况下可能会出现以下优点:

  • 包含个性化
  • 即使用户的历史记录非常短或者不可用也能使用

但也有一些主要的缺点,因为它在实践中并没有太多的用处:

  • 这些特征可能实际上不可用,或者即使是有一些特征,它们可能不足以制作一个好的分类器
  • 随着用户和项目数量的增长,作出一个好的分类器的困难程度将呈指数性增长

case3:推荐算法

现在让我们来到针对解决推荐问题而量身定制的特殊类算法。 通常有两种类型的算法 - 基于内容和协同过滤。 可以参考这一文章,以了解其工作原理。

1.基于内容的算法:

  • 思想:如果你喜欢一个项目那么你可能喜欢相似的项目
  • 基于项目相似度进行推荐
  • 当它容易确定每个项目的内容/属性时,它通常工作得很好。 例如,当我们推荐类似电影推荐或歌曲推荐的类似项目时。

2.协同过滤算法:

  • 思想:如果A喜欢项目1,2,3并且B喜欢2,3,4那么他们有相似的兴趣并且A应该会喜欢项目4、B应该会喜欢项目1.
  • 该算法完全基于过去的行为,而不是基于上下文。 这使得它是最常用的算法之一,因为它不依赖于任何附加信息。
  • 例如:像亚马逊这样的电子商务玩家的产品推荐,以及美国运通等银行的商家推荐。

此外,有几种类型的协同过滤算法:

1.用户-用户协同过滤:在这里,我们找到相似的客户(基于相似性),并提供了最相似客户过去所选择的产品。 这个算法非常有效,但需要大量的时间和资源。 它需要时间计算每个客户对信息。 因此,对于大基础平台,如果没有非常强大的可并行化系统,该算法难以实现。

2.项目-项目协同过滤:它与以前的算法非常相似,我们尝试寻找项目偏好,而不是找到客户的偏好。一旦我们拥有项目的相似矩阵,我们可以轻松地向从商店购买任何商品的顾客推荐相同的商品。

3.其他更简单算法:还有其他方法,如市场篮子分析,其通常不具有比上述算法高的预测能力。

                                                                                                                                                                                                                                       to be continue……
总结翻译自https://www.analyticsvidhya.com/blog/2016/06/quick-guide-build-recommendation-engine-python/

0 0
原创粉丝点击