本書主要講解推薦系統中的召回算法和排序算法,以及各個算法在主流工具Sklearn、Spark、TensorFlow等中的實現和應用。 書中本著循序漸進的原則進行講解。首先,介紹推薦系統中推薦算法的數學基礎,推薦算法的平臺、工具基礎,以及具體的推薦系統。其次,對推薦系統中的召回算法進行講解,主要包括基於行為相似的協同過濾召回和基於內容相似的Word2vec 召回,並且介紹其在Spark、TensorFlow 主流工具中的實現與應用。
再次,講解推薦系統中的排序算法,包括線性模型、樹模型和深度學習模型,分別介紹邏輯回歸、FM、決策樹、隨機森林、GBDT、GBDT+LR、集成學習、深度森林、DNN、Wide & Deep、DeepFM、YouTube推薦等模型的原理,以及其在Sklearn、Spark、TensorFlow 主流工具中的實現與應用。最後,介紹推薦算法的4 個實踐案例,説明讀者進行工程實踐和應用,並且介紹如何在Notebook 上進行代碼開發和算法調試,以説明讀者提升工作效率。
目錄
第1部分 推薦系統的演算法基礎
第1章 數學基礎 2
1.1 線性代數 2
1.2 概率與統計 5
1.3 損失函數 7
1.4 優化方法 8
1.4.1 SGD 8
1.4.2 動量 8
1.4.3 Nesterov動量 9
1.4.4 AdaGrad 9
1.4.5 Adam 10
1.4.6 L-BFGS 10
1.4.7 梯度法和牛頓法的比較 11
1.5 評價方法 11
1.5.1 混淆矩陣 11
1.5.2 ROC曲線 13
第2章 推薦系統介紹 17
2.1 推薦系統背景 17
2.2 推薦系統的典型案例 18
2.2.1 Amazon推薦 19
2.2.2 Facebook推薦 21
2.2.3 YouTube推薦 22
2.3 推薦系統原理 23
第3章 推薦演算法工具 26
3.1 Python Sklearn機器學習庫 26
3.1.1 Sklearn介紹 26
3.1.2 Sklearn建模流程 27
3.2 Spark MLlib機器學習庫 28
3.2.1 MLlib介紹 28
3.2.2 MLlib建模流程 29
3.3 TensorFlow 31
3.3.1 TensorFlow介紹 31
3.3.2 TensorFlow建模流程 31
3.4 Notebook介紹 32
3.4.1 Zeppelin Notebook介紹 32
3.4.2 Jupyter Notebook介紹 36
第2部分 推薦系統的召回演算法
第4章 協同過濾——基於行為相似的召回 40
4.1 協同過濾演算法 40
4.1.1 協同過濾推薦概述 40
4.1.2 用戶評分 41
4.1.3 相似度計算 41
4.1.4 推薦計算 43
4.2 協同過濾推薦演算法實現 44
4.2.1 相似度計算及推薦計算 47
4.2.2 協同推薦 54
4.2.3 運行結果 59
第5章 Word2vec——基於內容相似的召回 65
5.1 Word2vec演算法 65
5.1.1 語言模型 65
5.1.2 CBOW One-Word Context模型 66
5.1.3 CBOW Multi-Word Context 模型 71
5.1.4 Skip-Gram模型 72
5.1.5 Hierarchical Softmax 74
5.1.6 Negative Sampling 74
5.2 Word2vec實例 75
5.2.1 Spark實現 75
5.2.2 TensorFlow實現 80
第3部分 推薦系統的排序演算法——線性模型
第6章 邏輯回歸 86
6.1 邏輯回歸演算法 86
6.1.1 二元邏輯回歸模型 86
6.1.2 模型參數估計 88
6.1.3 多元邏輯回歸模型(Softmax回歸) 88
6.1.4 邏輯回歸的網路結構 89
6.1.5 梯度下降演算法 90
6.1.6 正則化 91
6.2 邏輯回歸實現 93
6.2.1 Sklearn實現 93
6.2.2 Spark實現 98
6.2.3 TensorFlow實現 108
6.2.4 效果總結 114
第7章 因數分解機(FM) 115
7.1 FM演算法 115
7.1.1 FM模型 115
7.1.2 FFM模型 118
7.1.3 FM模型的網路結構 119
7.2 FM實現 120
7.2.1 Sklearn實現 120
7.2.2 TensorFlow實現 122
7.2.3 效果總結 128
第4部分 推薦系統的排序演算法——樹模型
第8章 決策樹 130
8.1 決策樹演算法 130
8.1.1 決策樹模型 130
8.1.2 特徵選擇 131
8.1.3 決策樹的生成 133
8.1.4 決策樹的生成實例 134
8.1.5 決策樹的剪枝 135
8.2 決策樹的集成演算法 136
8.2.1 集成分類器 136
8.2.2 隨機森林 137
8.2.3 GBDT 137
8.3 決策樹集成演算法實例 139
8.3.1 Spark實現 139
8.3.2 Sklearn實現 149
8.3.3 效果總結 154
第9章 集成學習 155
9.1 GBDT LR演算法 155
9.1.1 背景 155
9.1.2 GBDT LR網路結構 156
9.2 深度森林演算法 159
9.2.1 深度森林介紹 159
9.2.2 級聯森林 160
9.2.3 多細微性掃描 161
9.3 決策樹集成分類器 162
9.4 集成學習實例 164
9.4.1 GBDT LR實現 164
9.4.2 深度森林實現 167
9.4.3 效果總結 175
第5部分 推薦系統的排序演算法——深度學習模型
第10章 深度學習在推薦演算法中的應用 178
10.1 推薦模型的特點 178
10.2 基於深度學習的推薦模型 179
10.2.1 DNN優化高階特徵 179
10.2.2 高階特徵交叉與低階特徵交叉 181
10.2.3 特徵交叉優化 183
10.2.4 特徵連接優化 184
10.2.5 高階特徵交叉優化 185
10.2.6 多樣性的深度興趣特徵優化 186
第11章 DNN演算法 189
11.1 人工神經網路演算法 189
11.1.1 神經元 189
11.1.2 神經網路模型 191
11.1.3 信號的前向傳播 191
11.1.4 誤差的反向傳播 193
11.2 DNN優化方法 195
11.2.1 優化參數 196
11.2.2 Attention機制 197
11.3 DNN實例 198
11.4 運行結果 205
第12章 Wide & Deep模型 206
12.1 Wide & Deep模型概述 206
12.1.1 Wide模型 208
12.1.2 Deep模型 209
12.1.3 模型聯合訓練 210
12.2 Wide & Deep系統實現 211
12.2.1 推薦系統介紹 211
12.2.2 系統流程 212
12.2.3 訓練資料的生成 213
12.2.4 模型訓練 213
12.2.5 線上應用 214
12.3 Wide & Deep實例 214
12.4 運行結果 219
第13章 DeepFM模型 225
13.1 DeepFM模型概述 225
13.1.1 FM組件 226
13.1.2 Deep組件 228
13.1.3 模型對比 229
13.2 DeepFM模型實例 231
13.3 運行結果 241
第14章 YouTube的深度神經網路模型 243
14.1 YouTube推薦模型 243
14.1.1 背景介紹 243
14.1.2 召回模型設計 245
14.1.3 排序模型設計 250
14.2 YouTube實例 252
14.3 運行結果 256
第6部分 推薦系統的演算法實踐
第15章 實踐——基於電商平臺的商品召回 260
15.1 背景介紹 260
15.2 模型選擇 261
15.3 演算法開發 261
第16章 實踐——基於邏輯回歸的音樂評分預測 266
16.1 背景介紹 266
16.2 數據準備 266
16.3 特徵處理 268
16.4 模型選擇 270
16.5 演算法開發 271
第17章 實踐——Kaggle競賽之Outbrain點擊率預估 275
17.1 背景介紹 275
17.2 數據準備 277
17.3 特徵處理 283
17.4 模型選擇 284
17.4.1 FFM 285
17.4.2 XGBoost 288
17.4.3 集成學習 292
17.5 演算法開發 292
第18章 實踐——基於深度學習的電商商品點擊率預估 297
18.1 背景介紹 297
18.2 數據準備 298
18.3 特徵處理 302
18.4 模型選擇 303
18.5 演算法開發 304
18.6 運行結果 309
第19章 Notebook實踐 312
19.1 Sklearn中的LR實踐 312
19.2 TensorFlow中的LR實踐 316
19.3 Spark中的LR實踐 321
19.4 TensorFlow中的FM調試實踐 327
19.5 Spark中的協同過濾調試實踐 331
作者介紹
黃美靈
現任一線互聯網公司的高級工程師,擁有多年大型互聯網公司推薦系統和機器學習實戰經驗,現從事廣告推薦、應用分發和資訊Feeds流推薦相關工作。