第1章 推荐系统概述 1
1.1 引言 1
1.2 推荐系统的目标 2
1.2.1 推荐系统应用范围 5
1.3 推荐系统的基本模型 5
1.3.1 协同过滤模型 5
1.3.2 基于内容的推荐系统 10
1.3.3 基于知识的推荐系统 11
1.3.4 人口统计推荐系统 13
1.3.5 混合集成的推荐系统 14
1.3.6 对推荐系统的评价 14
1.4 推荐系统领域特有的挑战 14
1.4.1 基于上下文的推荐系统 14
1.4.2 时间敏感的推荐系统 15
1.4.3 基于位置的推荐系统 15
1.4.4 社交信息系统 15
1.5 高级论题和应用 16
1.5.1 推荐系统中的冷启动问题 17
1.5.2 抗攻击推荐系统 17
1.5.3 组推荐系统 17
1.5.4 多标准推荐系统 17
1.5.5 推荐系统中的主动学习 18
1.5.6 推荐系统中的隐私问题 18
1.5.7 应用领域 18
1.6 小结 18
1.7 相关工作 19
1.8 习题 20
第2章 基于近邻的协同过滤 21
2.1 引言 21
2.2 评分矩阵的关键性质 22
2.3 通过基于近邻的方法预测评分 24
2.3.1 基于用户的近邻模型 24
2.3.2 基于物品的近邻模型 29
2.3.3 高效的实现和计算复杂度 30
2.3.4 基于用户的方法和基于物品的方法的比较 31
2.3.5 基于近邻方法的优劣势 32
2.3.6 基于用户的方法和基于物品的方法的联合 33
2.4 聚类和基于近邻的方法 33
2.5 降维与近邻方法 34
2.5.1 处理偏差 35
2.6 近邻方法的回归模型视角 38
2.6.1 基于用户的最近邻回归 39
2.6.2 基于物品的最近邻回归 41
2.6.3 基于用户的方法和基于物品的方法的结合 42
2.6.4 具有相似度权重的联合插值 42
2.6.5 稀疏线性模型 43
2.7 基于近邻方法的图模型 45
2.7.1 用户-物品图 45
2.7.2 用户-用户图 47
2.7.3 物品-物品图 49
2.8 小结 50
2.9 相关工作 50
2.10 习题 51
第3章 基于模型的协同过滤 53
3.1 引言 53
3.2 决策和回归树 55
3.2.1 将决策树扩展到协同过滤 56
3.3 基于规则的协同过滤 57
3.3.1 将关联规则用于协同过滤 59
3.3.2 面向物品的模型与面向用户的模型 60
3.4 朴素贝叶斯协同过滤 61
3.4.1 处理过拟合 63
3.4.2 示例:使用贝叶斯方法处理二元评分 63
3.5 将任意分类模型当作黑盒来处理 64
3.5.1 示例:使用神经网络作为黑盒分类器 65
3.6 潜在因子模型 67
3.6.1 潜在因子模型的几何解释 68
3.6.2 潜在因子模型的低秩解释 69
3.6.3 基本矩阵分解原理 70
3.6.4 无约束矩阵分解 71
3.6.5 奇异值分解 84
3.6.6 非负矩阵分解 88
3.6.7 理解矩阵因子分解方法族 93
3.7 集成因子分解和近邻模型 95
3.7.1 基准估计:非个性化偏倚中心模型 95
3.7.2 模型的近邻部分 96
3.7.3 模型的潜在因子部分 97
3.7.4 集成近邻和潜在因子部分 97
3.7.5 求解优化模型 98
3.7.6 关于精度的一些观察 98
3.7.7 将潜在因子模型集成到任意模型 99
3.8 小结 99
3.9 相关工作 100
3.10 习题 101
第4章 基于内容的推荐系统 103
4.1 引言 103
4.2 基于内容的系统的基本组件 104
4.3 预处理和特征提取 105
4.3.1 特征提取 105
4.3.2 特征表示和清洗 107
4.3.3 收集用户的偏好 108
4.3.4 监督特征选择和加权 108
4.4 学习用户画像和过滤 111
4.4.1 最近邻分类 111
4.4.2 与基于案例的推荐系统的关联性 112
4.4.3 贝叶斯分类器 113
4.4.4 基于规则的分类器 115
4.4.5 基于回归的模型 117
4.4.6 其他学习模型和比较概述 118
4.4.7 基于内容的系统的解释 118
4.5 基于内容的推荐与协同推荐 119
4.6 将基于内容的模型用于协同过滤 120
4.6.1 利用用户画像 120
4.7 小结 121
4.8 相关工作 121
4.9 习题 122
第5章 基于知识的推荐系统 123
5.1 引言 123
5.2 基于约束的推荐系统 127
5.2.1 返回相关结果 128
5.2.2 交互方法 129
5.2.3 排序匹配的物品 131
5.2.4 处理不可接受的结果或空集 131
5.2.5 添加约束 132
5.3 基于案例的推荐系统 132
5.3.1 相似性度量 134
5.3.2 批评方法 138
5.3.3 批评的解释 142
5.4 基于知识的系统的持久个性化 143
5.5 小结 143
5.6 相关工作 144
5.7 习题 145
第6章 基于集成的混合推荐系统 146
6.1 引言 146
6.2 从分类角度看集成方法 149
6.3 加权型混合系统 151
6.3.1 几种模型组合的方法 153
6.3.2 对分类中的bagging算法的调整 153
6.3.3 随机性注入算法 155
6.4 切换型混合系统 155
6.4.1 为解决冷启动问题的切换机制 156
6.4.2 桶模型 156
6.5 级联型混合系统 156
6.5.1 推荐结果的逐步优化 157
6.5.2 boosting算法 157
6.6 特征放大型混合系统 159
6.7 元级型混合系统 159
6.8 特征组合型混合系统 160
6.8.1 回归分析和矩阵分解 161
6.8.2 元级特征 161
6.9 交叉型混合系统 163
6.10 小结 164
6.11 相关工作 164
6.12 习题 166
第7章 推荐系统评估 167
7.1 引言 167
7.2 评估范例 168
7.2.1 用户调查 168
7.2.2 在线评估 169
7.2.3 使用历史数据集进行离线评估 170
7.3 评估设计的总体目标 170
7.3.1 精确性 170
7.3.2 覆盖率 171
7.3.3 置信度和信任度 172
7.3.4 新颖度 173
7.3.5 惊喜度 173
7.3.6 多样性 174
7.3.7 健壮性和稳定性 174
7.3.8 可扩展性 174
7.4 离线推荐评估的设计要点 175
7.4.1 Netflix Prize数据集的案例研究 175
7.4.2 为训练和测试分解评分 177
7.4.3 与分类设计的比较 178
7.5 离线评估的精确性指标 178
7.5.1 度量预测评分的精确性 178
7.5.2 通过相关性评估排名 180
7.5.3 通过效用评估排名 181
7.5.4 通过ROC曲线评估排名 184
7.5.5 哪种排名方式最好 186
7.6 评估指标的局限性 186
7.6.1 避免评估游戏 188
7.7 小结 188
7.8 相关工作 188
7.9 习题 189
第8章 上下文敏感的推荐系统 191
8.1 引言 191
8.2 多维方法 192
8.2.1 层级的重要性 194
8.3 上下文预过滤:一种基于降维的方法 196
8.3.1 基于集成的改进 198
8.3.2 多级别的估计 199
8.4 后过滤方法 199
8.5 上下文建模 200
8.5.1 基于近邻的方法 201
8.5.2 潜在因子模型 202
8.5.3 基于内容的模型 207
8.6 小结 209
8.7 相关工作 209
8.8 习题 210
第9章 时间与位置敏感的推荐系统 211
9.1 引言 211
9.2 时间协同过滤 212
9.2.1 基于新近的模型 213
9.2.2 处理周期性上下文 215
9.2.3 将评分建模为时间的函数 216
9.3 离散时间模型 220
9.3.1 马尔可夫模型 220
9.3.2 序列模式挖掘 223
9.4 位置感知推荐系统 224
9.4.1 偏好位置 225
9.4.2 旅行位置 227
9.4.3 结合偏好位置与旅行位置 227
9.5 小结 227
9.6 相关工作 227
9.7 习题 229
第10章 网络中的结构化推荐 230
10.1 引言 230
10.2 排序算法 231
10.2.1 PageRank 231
10.2.2 个性化PageRank 234
10.2.3 基于近邻的方法应用 235
10.2.4 SimRank 239
10.2.5 搜索与推荐的关系 240
10.3 使用集合分类的推荐 240
10.3.1 迭代分类算法 241
10.3.2 使用随机游走的标签传播 242
10.3.3 社交网络中协同过滤的适用性 243
10.4 推荐好友:链接预测 243
10.4.1 基于近邻的方法 243
10.4.2 Katz度量 244
10.4.3 基于随机游走的度量 245
10.4.4 作为分类问题的链接预测 245
10.4.5 链接预测的矩阵分解 246
10.4.6 链接预测和协同过滤的关联 249
10.5 社会影响力分析和病毒式营销 251
10.5.1 线性阈值模型 253
10.5.2 独立级联模型 253
10.5.3 影响力函数评估 253
10.5.4 社交流中的目标影响力分析模型 254
10.6 小结 255
10.7 相关工作 255
10.8 习题 256
第11章 社交和以信任为中心的推荐系统 257
11.1 引言 257
11.2 社交上下文的多维模型 258
11.3 以网络为中心的方法和以信任为中心的方法 259
11.3.1 收集数据来建立信任网络 260
11.3.2 信任的传播和聚合 261
11.3.3 没有信任传播的简单推荐 262
11.3.4 TidalTrust算法 262
11.3.5 MoleTrust算法 264
11.3.6 信任游走算法 265
11.3.7 链接预测法 266
11.3.8 矩阵分解法 268
11.3.9 社交推荐系统的优点 271
11.4 社交推荐系统中的用户交互 272
11.4.1 大众分类法的代表 273
11.4.2 社会性标签系统中的协同过滤 275
11.4.3 选择有价值的标签 276
11.4.4 无评分矩阵的社会性标签推荐 276
11.4.5 使用评分矩阵的社会性标签推荐 281
11.5 小结 285
11.6 相关工作 285
11.7 习题 287
第12章 抵抗攻击的推荐系统 288
12.1 引言 288
12.2 对攻击模型中的权衡的理解 289
12.2.1 量化攻击的影响 292
12.3 攻击类型 293
12.3.1 随机攻击 294
12.3.2 均值攻击 294
12.3.3 bandwagon攻击 295
12.3.4 流行攻击 295
12.3.5 爱/憎攻击 296
12.3.6 反向bandwagon攻击 296
12.3.7 探测攻击 296
12.3.8 分段攻击 296
12.3.9 基本推荐算法的效果 297
12.4 探测推荐系统中的攻击 298
12.4.1 单体攻击画像的探测 299
12.4.2 群体攻击画像的探测 300
12.5 健壮推荐设计策略 301
12.5.1 用CAPTCHA防止自动攻击 302
12.5.2 使用社会信任 302
12.5.3 设计健壮的推荐算法 302
12.6 小结 305
12.7 相关工作 305
12.8 习题 306
第13章 推荐系统高级主题 307
13.1 引言 307
13.2 排名学习 308
13.2.1 成对排名学习 309
13.2.2 列表排名学习 310
13.2.3 与其他领域中排名学习方法的比较 311
13.3 多臂赌博机算法 311
13.3.1 朴素算法 313
13.3.2 ε贪心算法 313
13.3.3 上限方法 314
13.4 组推荐系统 315
13.4.1 协同和基于内容的系统 316
13.4.2 基于知识的系统 317
13.5 多标准推荐系统 317
13.5.1 基于近邻的方法 318
13.5.2 基于集成的方法 319
13.5.3 无整体评分的多标准系统 320
13.6 推荐系统中的主动学习 320
13.6.1 基于异质性的模型 321
13.6.2 基于性能的模型 322
13.7 推荐系统中的隐私 322
13.7.1 基于冷凝的隐私 323
13.7.2 高维数据的挑战 323
13.8 一些有趣的应用领域 324
13.8.1 门户内容个性化 324
13.8.2 计算广告与推荐系统 326
13.8.3 互惠推荐系统 329
13.9 小结 331
13.10 相关工作 332
参考文献 334
索引 368