第8章 构建推荐系统

如果让你选择一种算法来向公众展示数据科学,那么推荐系统肯定是一个很好的选择。如今,推荐系统随处可见。它们之所以受欢迎,是因为它们通用性好、实用性强、具有广泛的适用性。不论它们是被用来基于用户购物行为推荐产品,还是基于观看偏好推荐新电影,这在生活中都是常见的。甚至有可能将这本书推荐给你,就是某个营销公司知道你的相关信息,则如你的社交网络偏好、工作状态或者浏览历史。

在本章中,我们将演示如何使用原始音频推荐音乐内容。我们将介绍以下主题。

  • 使用Spark处理存储HDFS上的音频文件。
  • 学习用傅里叶变换进行音频信号变换。
  • 使用Cassandra作为在线层和离线层之间的缓存层。
  • 使用PageRank作为无监督推荐算法。
  • 将Spark作业服务器与Play框架集成构建端到端原型。

推荐系统的最终目标是根据用户的历史行为和偏好来推荐新的项目。基本的思路是对客户过去一直感兴趣的任何产品进行排名。这个排名可以是显式的(让用户将电影从1到5进行排名)或隐式的(用户访问这个页面的次数)。无论推荐的是一个要购买的产品,一首要听的歌,还是一篇要读的文章,数据科学家通常从两个不同的角度来解决这个问题:协同过滤和基于内容的过滤。

使用这种方法,我们通过收集更多人的行为信息来利用大数据。虽然个人的定义是独特的,但他们的购物行为通常并不独特,总能找到与他人的一些相似之处。推荐项目将针对特定的个体,但它们是通过组合用户的行为与类似用户的行为而获得的。以下是大多数零售网站上的推荐用语:

“买了这个的用户也买了这些……”。

当然,这需要事先了解客户,以及他们以往的订单,还必须有足够的信息与其他客户进行比较。因此,有一个主要的限制因素:项目必须至少被查看一次才能被列为潜在推荐项目。 ...

Get 精通Spark数据科学 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.