作者簡介
技術評審員簡介
前言
第1章 推薦引擎介紹 1
1.1推薦引擎定義 1
1.2推薦系統(tǒng)的必要性 3
1.3大數據對推薦系統(tǒng)的推動作用 4
1.4推薦系統(tǒng)類型 4
1.4.1協(xié)同過濾推薦系統(tǒng) 4
1.4.2基于內容的推薦系統(tǒng) 5
1.4.3混合推薦系統(tǒng) 6
1.4.4情境感知推薦系統(tǒng) 7
1.5推薦系統(tǒng)技術的發(fā)展 8
1.5.1Mahout在可擴展推薦系統(tǒng)中的應用 8
1.5.2Apache Spark在可擴展實時推薦系統(tǒng)中的應用 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推薦引擎的發(fā)展 26
3.2基于近鄰算法的推薦引擎 27
3.2.1基于用戶的協(xié)同過濾 29
3.2.2基于項目的協(xié)同過濾 30
3.2.3優(yōu)點 32
3.2.4缺點 32
3.3基于內容的推薦系統(tǒng) 32
3.3.1用戶畫像生成 35
3.3.2優(yōu)點 36
3.3.3缺點 36
3.4情境感知推薦系統(tǒng) 37
3.4.1情境定義 38
3.4.2前置過濾法 40
3.4.3后置過濾法 40
3.4.4優(yōu)點 41
3.4.5缺點 41
3.5混合推薦系統(tǒng) 41
3.5.1加權法 42
3.5.2混合法 42
3.5.3層疊法 42
3.5.4特征組合法 42
3.5.5優(yōu)點 43
3.6基于模型的推薦系統(tǒng) 43
3.6.1概率法 44
3.6.2機器學習法 44
3.6.3數學法 44
3.6.4優(yōu)點 45
3.7本章小結 45
第4章 數據挖掘技術在推薦引擎中的應用 46
4.1基于近鄰算法的技術 47
4.1.1歐氏距離 47
4.1.2余弦相似度 48
4.1.3Jaccard相似度 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章 構建協(xié)同過濾推薦引擎 83
5.1在RStudio上安裝recommenderlab 83
5.2recommenderlab包中可用的數據集 85
5.3探討數據集 88
5.4使用recommenderlab構建基于用戶的協(xié)同過濾 89
5.4.1準備訓練數據和測試數據 90
5.4.2創(chuàng)建一個基于用戶的協(xié)同模型 90
5.4.3在測試集上進行預測 92
5.4.4分析數據集 93
5.4.5使用k折交叉驗證評估推薦模型 95
5.4.6評估基于用戶的協(xié)同過濾 96
5.5構建基于項目的推薦模型 99
5.5.1構建IBCF推薦模型 100
5.5.2模型評估 103
5.5.3模型準確率度量 104
5.5.4模型準確率繪圖 105
5.5.5IBCF參數調優(yōu) 107
5.6使用Python構建協(xié)同過濾 110
5.6.1安裝必要包 110
5.6.2數據源 110
5.7數據探討 111
5.7.1表示評級矩陣 113
5.7.2創(chuàng)建訓練集和測試集 114
5.7.3構建UBCF的步驟 115
5.7.4基于用戶的相似度計算 115
5.7.5預測活躍用戶的未知評級 116
5.8使用KNN 進行基于用戶的協(xié)同過濾 117
5.9基于項目的推薦 118
5.9.1評估模型 119
5.9.2KNN訓練模型 120
5.9.3評估模型 120
5.10本章小結 120
第6章 構建個性化推薦引擎 121
6.1個性化推薦系統(tǒng) 122
6.2基于內容的推薦系統(tǒng) 122
6.2.1構建一個基于內容的推薦系統(tǒng) 123
6.2.2使用 R語言構建基于內容的推薦 123
6.2.3使用Python語言構建基于內容的推薦 133
6.3情境感知推薦系統(tǒng) 144
6.3.1構建情境感知推薦系統(tǒng) 144
6.3.2使用R語言構建情境感知推薦 145
6.4本章小結 150
第7章 使用Spark構建實時推薦引擎 151
7.1Spark 2.0介紹 152
7.1.1Spark架構 152
7.1.2Spark組件 154
7.1.3Spark Core 154
7.1.4Spark的優(yōu)點 156
7.1.5Spark設置 156
7.1.6SparkSession 157
7.1.7彈性分布式數據集 158
7.1.8關于ML流水線 158
7.2使用交替小二乘法進行協(xié)同過濾 160
7.3使用PySpark構建基于模型的推薦系統(tǒng) 162
7.4MLlib推薦引擎模塊 163
7.5推薦引擎方法 164
7.5.1實現(xiàn) 164
7.5.2基于用戶的協(xié)同過濾 172
7.5.3模型評估 173
7.5.4模型選擇和超參數調優(yōu) 174
7.6本章小結 179
第8章 通過Neo4j構建實時推薦 180
8.1圖數據庫種類 181
8.2Neo4j 183
8.2.1Cypher查詢語言 184
8.2.2節(jié)點語法 184
8.2.3關系語法 185
8.2.4構建個圖 185
8.3Neo4j Windows安裝 192
8.4Neo4j 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使用歐氏距離進行協(xié)同過濾 201
8.5.4使用余弦相似度進行協(xié)同過濾 206
8.6本章小結 209
第9章 使用Mahout構建可擴展的推薦引擎 210
9.1Mahout簡介 211
9.2配置Mahout 211
9.2.1Mahout單機模式 211
9.2.2Mahout分布式模式 218
9.3Mahout的核心構建模塊 220
9.3.1基于用戶的協(xié)同過濾推薦引擎組件 220
9.3.2使用Mahout構建推薦引擎 223
9.3.3數據描述 223
9.3.4基于用戶的協(xié)同過濾 225
9.4基于項目的協(xié)同過濾 228
9.5協(xié)同過濾評估 231
9.6基于用戶的推薦評估 231
9.7基于項目的推薦評估 232
9.8SVD推薦系統(tǒng) 235
9.9使用Mahout進行分布式推薦 236
9.10可擴展系統(tǒng)的架構 240
9.11本章小結 241
第10章 推薦引擎的未來 242
10.1推薦引擎的未來 242
10.2推薦系統(tǒng)的發(fā)展階段 243
10.2.1一般的推薦系統(tǒng) 243
10.2.2個性化推薦系統(tǒng) 244
10.2.3未來的推薦系統(tǒng) 245
10.2.4下一個舉措 249
10.2.5使用案例 249
10.3流行方法 251
10.4推薦引擎的時效性 252
10.4.1A/B測試 253
10.4.2反饋機制 254
10.5本章小結 255