第1章 推荐引擎介绍 1
1.1推荐引擎定义 1
1.2推荐系统的必要性 3
1.3大数据对推荐系统的推动作用 4
1.4推荐系统类型 4
1.4.1协同过滤推荐系统 4
1.4.2基于内容的推荐系统 5
1.4.3混合推荐系统 6
1.4.4情境感知推荐系统 7
1.5推荐系统技术的发展 8
1.5.1 Mahout在可扩展推荐系统中的应用 8
1.5.2 Apache Spark在可扩展实时推荐系统中的应用 9
1.6本章小结 12
第2章 构建第一个推荐引擎 13
2.1构建基础推荐引擎 14
2.1.1载入并格式化数据 15
2.1.2计算用户相似度 17
2.1.3为用户预测未知评级 18
2.2本章小结 24
第3章 推荐引擎详解 25
3.1推荐引擎的发展 26
3.2基于近邻算法的推荐引擎 27
3.2.1基于用户的协同过滤 29
3.2.2基于项目的协同过滤 30
3.2.3优点 32
3.2.4缺点 32
3.3基于内容的推荐系统 32
3.3.1用户画像生成 35
3.3.2优点 36
3.3.3缺点 36
3.4情境感知推荐系统 37
3.4.1情境定义 38
3.4.2前置过滤法 40
3.4.3后置过滤法 40
3.4.4优点 41
3.4.5缺点 41
3.5混合推荐系统 41
3.5.1加权法 42
3.5.2混合法 42
3.5.3层叠法 42
3.5.4特征组合法 42
3.5.5优点 43
3.6基于模型的推荐系统 43
3.6.1概率法 44
3.6.2机器学习法 44
3.6.3数学法 44
3.6.4优点 45
3.7本章小结 45
第4章 数据挖掘技术在推荐引擎中的应用 46
4.1基于近邻算法的技术 47
4.1.1欧氏距离 47
4.1.2余弦相似度 48
4.1.3 Jaccard相似度 51
4.1.4皮尔逊相关系数 51
4.2数学建模技术 53
4.2.1矩阵分解 53
4.2.2交替最小二乘法 55
4.2.3奇异值分解 55
4.3机器学习技术 57
4.3.1线性回归 57
4.3.2分类模型 59
4.4聚类技术 69
4.5降维 71
4.6向量空间模型 75
4.6.1词频 75
4.6.2词频-逆文档频率 76
4.7评估技术 78
4.7.1交叉验证 79
4.7.2正则化 80
4.8本章小结 82
第5章 构建协同过滤推荐引擎 83
5.1在RStudio上安装recommenderlab 83
5.2 recommenderlab包中可用的数据集 85
5.3探讨数据集 88
5.4使用recommenderlab构建基于用户的协同过滤 89
5.4.1准备训练数据和测试数据 90
5.4.2创建一个基于用户的协同模型 90
5.4.3在测试集上进行预测 92
5.4.4分析数据集 93
5.4.5使用k折交叉验证评估推荐模型 95
5.4.6评估基于用户的协同过滤 96
5.5构建基于项目的推荐模型 99
5.5.1构建IBCF推荐模型 100
5.5.2模型评估 103
5.5.3模型准确率度量 104
5.5.4模型准确率绘图 105
5.5.5 IBCF参数调优 107
5.6使用Python构建协同过滤 110
5.6.1安装必要包 110
5.6.2数据源 110
5.7数据探讨 111
5.7.1表示评级矩阵 113
5.7.2创建训练集和测试集 114
5.7.3构建UBCF的步骤 115
5.7.4基于用户的相似度计算 115
5.7.5预测活跃用户的未知评级 116
5.8使用KNN进行基于用户的协同过滤 117
5.9基于项目的推荐 118
5.9.1评估模型 119
5.9.2 KNN训练模型 120
5.9.3评估模型 120
5.10本章小结 120
第6章 构建个性化推荐引擎 121
6.1个性化推荐系统 122
6.2基于内容的推荐系统 122
6.2.1构建一个基于内容的推荐系统 123
6.2.2使用R语言构建基于内容的推荐 123
6.2.3使用Python语言构建基于内容的推荐 133
6.3情境感知推荐系统 144
6.3.1构建情境感知推荐系统 144
6.3.2使用R语言构建情境感知推荐 145
6.4本章小结 150
第7章 使用Spark构建实时推荐引擎 151
7.1 Spark 2.0介绍 152
7.1.1 Spark架构 152
7.1.2 Spark组件 154
7.1.3 Spark Core 154
7.1.4 Spark的优点 156
7.1.5 Spark设置 156
7.1.6 SparkSession 157
7.1.7弹性分布式数据集 158
7.1.8关于ML流水线 158
7.2使用交替最小二乘法进行协同过滤 160
7.3使用PySpark构建基于模型的推荐系统 162
7.4 MLlib推荐引擎模块 163
7.5推荐引擎方法 164
7.5.1实现 164
7.5.2基于用户的协同过滤 172
7.5.3模型评估 173
7.5.4模型选择和超参数调优 174
7.6本章小结 179
第8章 通过Neo4j构建实时推荐 180
8.1图数据库种类 181
8.2 Neo4j 183
8.2.1 Cypher查询语言 184
8.2.2节点语法 184
8.2.3关系语法 185
8.2.4构建第一个图 185
8.3 Neo4j Windows安装 192
8.4 Neo4j Linux安装 194
8.4.1下载Neo4j 194
8.4.2设置Neo4j 195
8.4.3命令行启动Neo4j 195
8.5构建推荐引擎 197
8.5.1将数据加载到Neo4j 197
8.5.2使用Neo4j生成推荐 200
8.5.3使用欧氏距离进行协同过滤 201
8.5.4使用余弦相似度进行协同过滤 206
8.6本章小结 209
第9章 使用Mahout构建可扩展的推荐引擎 210
9.1 Mahout简介 211
9.2配置Mahout 211
9.2.1 Mahout单机模式 211
9.2.2 Mahout分布式模式 218
9.3 Mahout的核心构建模块 220
9.3.1基于用户的协同过滤推荐引擎组件 220
9.3.2使用Mahout构建推荐引擎 223
9.3.3数据描述 223
9.3.4基于用户的协同过滤 225
9.4基于项目的协同过滤 228
9.5协同过滤评估 231
9.6基于用户的推荐评估 231
9.7基于项目的推荐评估 232
9.8 SVD推荐系统 235
9.9使用Mahout进行分布式推荐 236
9.10可扩展系统的架构 240
9.11本章小结 241
第10章 推荐引擎的未来 242
10.1推荐引擎的未来 242
10.2推荐系统的发展阶段 243
10.2.1一般的推荐系统 243
10.2.2个性化推荐系统 244
10.2.3未来的推荐系统 245
10.2.4下一个最佳举措 249
10.2.5使用案例 249
10.3流行方法 251
10.4推荐引擎的时效性 252
10.4.1 A/B测试 253
10.4.2反馈机制 254
10.5本章小结 255