第8章 大规模电影推荐(基于Python)
本章包含以下主要内容。
- 对偏好建模。
- 理解数据。
- 提取电影评分数据。
- 寻找高评分电影。
- 改善电影评分系统。
- 计算用户在偏好空间中的距离。
- 计算用户之间的相关性。
- 为用户寻找最佳影评人。
- 预测用户电影评分。
- 基于物品的协同过滤。
- 建立非负矩阵分解模型。
- 将数据集载入内存。
- 导出SVD模型到硬盘。
- 训练SVD模型。
- 测试SVD模型。
8.1 简介
从图书到电影再到Twitter上的关注,推荐系统把我们从洪水般泛滥的信息中解放出来,为我们定制了个性化的信息流。电子商务、网络以及社交应用都从推荐系统中获益颇多。鉴于亚马逊推荐系统以及Netfix Prize所带来的成功,没有人会对在个性化以及基于数据的预测中需要一个推荐系统而感到吃惊。令人感到惊奇的是,推荐系统的实现是如此简单,然而在数据量稀疏时这却很容易产生怪异的结果和过拟合。
首先,让我们考虑一下不用算法该如何提供推荐。一种最简单的方法是看一下所信赖的人有哪些偏好,从中得到推荐。潜意识中我们会将自己的偏好与他人进行对比,如果彼此之间已有的共同偏好越多,那么彼此之间就越有可能发现更多新的共同偏好。然而,每个人都是独特的,我们的偏好也是各种各样的,并且可能分布在多个不同的领域。如果能够将所信赖人之外的其他大量人的偏好和我们的偏好进行比较,那么又会怎样呢?汇总的结果是,你可能会发现一些模式,在这些模式中不只是发现那些与你相似的人,还会发现那些与你偏好相反的人。你能从这些人中找到那些最好不要推荐的物品,还有可能从那些拥有共同偏好的人身上发现你们有着共同的特殊经历。
协同过滤是这类推荐系统技术的基础。简单来说,它基于这样一个假设:那些与你有共同偏好的人将来也会与你拥有共同的偏好。当然,这是从人的角度来看的,而从这个假设出发的另一个推论是基于物品的角度——那些被同一个人所喜爱的物品有可能同时出现在另一个人喜爱的物品中。这就是在文献中通常所说的基于人的协同过滤和基于物品的协同过滤。 ...
Get 数据科学实战手册(R+Python)(第2版) 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.