要构建一个实用的“智能”推荐系统,不仅需要有好的算法,还需要了解接收推荐的用户。本书分为两部分,第一部分侧重于基础架构,主要介绍推荐系统的工作原理,展示如何创建推荐系统,以及给应用程序增加推荐系统时,应该如何收集和应用数据 ;第二部分侧重于算法,介绍推荐系统算法,以及如何使用系统收集的数据来计算向用户推荐什么内容。作者还教授了如何使用***的推荐算法,并剖析它们在 Amazon 和 Netflix 等网站上的实际应用。
第1部分 推荐系统的准备工作
第1章 什么是推荐
1.1 现实生活中的推荐
1.1.1 推荐系统在互联网上大显身手
1.1.2 长尾
1.1.4 推荐系统的定义
1.2 推荐系统的分类
1.2.1 域
1.2.2 目的
1.2.3 上下文
1.2.4 个性化级别
1.2.5 专家意见
1.2.6 隐私与可信度
1.2.7 接口
1.2.8 算法
1.3 机器学习与Netflix Prize
1.4 MovieGEEKs网站
1.4.1 设计与规范
1.4.2 架构
1.5 构建一个推荐系统
小结
第2章 用户行为以及如何收集用户行为数据
2.1 在浏览网站时Netflix如何收集证据
2.1.1 Netflix 收集的证据
2.2 寻找有用的用户行为
2.2.1 捕获访客印象
2.2.2 可以从浏览者身上学到什么
2.2.3 购买行为
2.2.4 消费商品
2.2.5 访客评分
2.2.6 以(旧的)Netflix 方式了解你的用户
2.3 识别用户
2.4 从其他途径获取访客数据
2.5 收集器
2.5.1 构建项目文件
2.5.2 数据模型
2.5.3 告密者(snitch):客户端证据收集器
2.5.4 将收集器集成到 MovieGEEKs 中
2.6 系统中的用户是谁以及如何对其进行建模
小结
第3章 监控系统
3.1 为什么添加仪表盘是个好主意
3.1.1 回答“我们做得怎么样?”
3.2 执行分析
3.2.1 网站分析
3.2.2 基本统计数据
3.2.3 转化
3.2.4 分析转化路径
3.2.5 转化路径
3.3 角色
3.4 MovieGEEKs仪表盘
3.4.1 自动生成日志数据
3.4.2 分析仪表盘的规范和设计
3.4.3 分析仪表盘示意图
3.4.4 架构
小结
第4章 评分及其计算方法
4.1 用户-商品喜好
4.1.1 什么是评分
4.1.2 用户 - 商品矩阵
4.2 显式评分和隐式评分
4.2.1 如何选择可靠的推荐来源
4.3 重温显式评分
4.4 什么是隐式评分
4.4.1 与人相关的推荐
4.4.2 关于计算评分的思考
4.5 计算隐式评分
4.5.1 看看行为数据
4.5.2 一个有关机器学习的问题
4.6 如何计算隐式评分
4.6.1 添加时间因素
4.7 低频商品更有价值
小结
第5章 非个性化推荐
5.1 什么是非个性化推荐
5.1.1 什么是广告
5.1.2 推荐有什么作用
5.2 当没有数据的时候如何做推荐
5.2.1 商品的十大排行榜
5.3 榜单的实现以及推荐系统组件的准备工作
5.3.1 推荐系统组件
5.3.2 GitHub 上的 MovieGEEKs 网站代码
5.3.3 推荐系统
5.3.4 为 MovieGEEKs 网站添加一个榜单
5.3.5 使内容看起来更具吸引力
5.4 种子推荐
5.4.1 频繁购买的商品与你正在查看的商品很相似
5.4.2 关联规则
5.4.3 实现关联规则
5.4.4 在数据库中存储关联规则
5.4.5 计算关联规则
5.4.6 运用不同的事件来创建关联规则
小结
第6章 冷用户(冷商品)
6.1 什么是冷启动
6.1.1 冷商品
6.1.2 冷用户
6.1.3 灰羊
6.1.4 现实生活中的例子
6.1.5 面对冷启动你能做什么
6.2 追踪访客
6.2.1 执着于匿名用户
6.3 用算法来解决冷启动问题
6.3.1 使用关联规则为冷用户创建推荐信息
6.3.2 使用领域知识和业务规则
6.3.3 使用分组
6.3.4 使用类别来避免灰羊问题以及如何介绍冷商品
6.4 那些不询问就很难被发现的人
6.4.1 当访客数据不够新时
6.5 使用关联规则快速进行推荐
6.5.1 收集数据项
6.5.2 检索关联规则并根据置信度对其排序
6.5.3 显示推荐内容
6.5.4 评估
小结
第2部分 推荐算法
第7章 找出用户之间和商品之间的相似之处
7.1 什么是相似度
7.1.1 什么是相似度函数
7.2 基本的相似度函数
7.2.1 Jaccard 距离
7.2.2 使用 Lp-norm 测量距离
7.2.3 Cosine 相似度
7.2.4 通过 Pearson 相关系数查找相似度
7.2.5 运行 Pearson 相似度
7.2.6 Pearson 相关性系数与 Cosine 相似度类似
7.3 k-means聚类
7.3.1 k-means 聚类算法
7.3.2 使用 Python 实现 k-means 聚类算法
7.4 实现相似度
7.4.1 在 MovieGEEKs 网站上实现相似度
7.4.2 在 MovieGEEKs 网站上实现聚类
小结
第8章 邻域协同过滤
8.1 协同过滤:一节历史课
8.1.1 当信息被协同过滤时
8.1.2 互帮互助
8.1.3 评分矩阵
8.1.4 协同过滤管道
8.1.5 应该使用用户 - 用户还是物品 - 物品的协同过滤
8.1.6 数据要求
8.2 推荐的计算
8.3 相似度的计算
8.4 Amazon预测物品相似度的算法
8.5 选择邻域的方法
8.6 找到正确的邻域
8.7 计算预测评分的方法
8.8 使用基于物品的过滤进行预测
8.8.1 计算物品的预测评分
8.9 冷启动问题
8.10 机器学习术语简介
8.11 MovieGeeks网站上的协同过滤
8.11.1 基于物品的过滤
8.12 关联规则推荐和协同推荐之间有什么区别
8.13 用于协同过滤的工具
8.14 协同过滤的优缺点
小结
第9章 评估推荐系统
9.1 推荐系统的评估周期
9.2 为什么评估很重要
9.3 如何解释用户行为
9.4 测量什么
9.4.1 了解我的喜好,尽量减少预测错误
9.4.2 多样性
9.4.3 覆盖率
9.4.4 惊喜度
9.5 在实现推荐之前
9.5.1 验证算法
9.5.2 回归测试
9.6 评估的类型
9.7 离线评估
9.7.1 当算法不产生任何推荐时该怎么办
9.8 离线实验
9.8.1 准备实验数据
9.9 在MovieGEEKs中实现这个实验
9.9.1 待办任务清单
9.10 评估测试集
9.10.1 从基线预测器开始
9.10.2 找到正确的参数
9.11 在线评估
9.11.1 对照实验
9.11.2 A/B 测试
9.12 利用exploit/explore持续测试
9.12.1 反馈循环
小结
第10章 基于内容的过滤
10.1 举例说明
10.2 什么是基于内容的过滤
10.3 内容分析器
10.3.1 从物品配置文件提取特征
10.3.2 数量较少的分类数据
10.3.3 将年份转换为可比较的特征
10.4 从描述中提取元数据
10.4.1 准备描述
10.5 使用TF-IDF查找重要单词
10.6 使用LDA进行主题建模
10.6.1 有什么方法可以调整 LDA
10.7 查找相似内容
10.8 如何创建用户配置文件
10.8.1 使用 LDA 创建用户配置文件
10.8.2 使用 TF-IDF 创建用户配置文件
10.9 MovieGEEKs中基于内容的推荐
10.9.1 加载数据
10.9.2 训练模型
10.9.3 创建物品配置文件
10.9.4 创建用户配置文件
10.9.5 展示推荐
10.10 评估基于内容的推荐系统
10.11 基于内容过滤的优缺点
小结
第11章 用矩阵分解法寻找隐藏特征
11.1 有时减少数据量是好事
11.2 你想要解决的问题的例子
11.3 谈一点线性代数
11.3.1 矩阵
11.3.2 什么是因子分解
11.4 使用SVD构造因子分解
11.4.1 通过分组加入添加新用户
11.4.2 如何使用 SVD 进行推荐
11.4.3 基线预测
11.4.4 时间动态
11.5 使用Funk SVD构造因子分解
11.5.1 均方根误差
11.5.2 梯度下降
11.5.3 随机梯度下降
11.5.4 最后是因子分解
11.5.5 增加偏差
11.5.6 如何开始,何时结束
11.6 用Funk SVD进行推荐
11.7 MovieGEEKs中的Funk SVD实现
11.7.1 如何处理异常值
11.7.2 保持模型的更新
11.7.3 更快的实施方法
11.8 显式数据与隐式数据
11.9 评估
11.10 用于Funk SVD的参数
小结
第12章 运用最佳算法来实现混合推荐
12.1 混合推荐系统的困惑世界
12.2 单体
12.2.1 将基于内容的特征与行为数据混合,以改进协同过滤
推荐系统
12.3 掺杂式混合推荐
12.4 集成推荐
12.4.1 可切换的集成推荐
12.4.2 加权式集成推荐
12.4.3 线性回归
12.5 特征加权线性叠加(FWLS)
12.5.1 元特征 :权重作为函数
12.5.2 算法
12.6 实现
小结
第13章 排序和排序学习
13.1 Foursquare的排序学习例子
13.2 重新排序
13.3 什么是排序学习
13.3.1 三种类型的 LTR 算法
13.4 贝叶斯个性化排序
13.4.1 BPR 排序
13.4.2 数学魔术(高级巫术)
13.4.3 BPR 算法
13.4.4 具有矩阵分解的 BPR
13.5 BPR的实现
13.5.1 执行推荐
13.6 评估
13.7 用于BPR的参数
小结
第14章 推荐系统的未来
14.1 本书内容总结
14.2 接下来要学习的主题
14.2.1 延伸阅读
14.2.2 算法
14.2.3 所处环境
14.2.4 人机交互
14.2.5 选择一个好的架构
14.3 推荐系统的未来是什么
14.4 最后的想法
14.4 最后的想法