1.本書(shū)主要講解推薦系統中的推薦算法——召回算法和排序算法,以及各個(gè)算法在主流工具Sklearn、Spark、TensorFlow等中的實(shí)現和應用。
2.本書(shū)本著(zhù)循序漸進(jìn)的原則進(jìn)行講解,配有豐富的工程案例和源代碼,可以幫助讀者進(jìn)行工程實(shí)踐并在實(shí)際工作中應用。
3.本書(shū)適合 AI、數據挖掘、大數據等領(lǐng)域的從業(yè)人員閱讀,書(shū)中為開(kāi)發(fā)者展現了推薦算法的原理、實(shí)現與應用案例。
本書(shū)主要講解推薦系統中的召回算法和排序算法,以及各個(gè)算法在主流工具Sklearn、Spark、TensorFlow等中的實(shí)現和應用。
書(shū)中本著(zhù)循序漸進(jìn)的原則進(jìn)行講解。首先,介紹推薦系統中推薦算法的數學(xué)基礎,推薦算法的平臺、工具基礎,以及具體的推薦系統。其次,講解推薦系統中的召回算法,主要包括基于行為相似的協(xié)同過(guò)濾召回和基于內容相似的Word2vec召回,并且介紹其在Spark、TensorFlow主流工具中的實(shí)現與應用。再次,講解推薦系統中的排序算法,包括線(xiàn)性模型、樹(shù)模型和深度學(xué)習模型,分別介紹邏輯回歸、FM、決策樹(shù)、隨機森林、GBDT、GBDT+LR、集成學(xué)習、深度森林、DNN、Wide & Deep、DeepFM、YouTube推薦等模型的原理,以及其在Sklearn、Spark、TensorFlow主流工具中的實(shí)現與應用。最后,介紹推薦算法的4個(gè)實(shí)踐案例,幫助讀者進(jìn)行工程實(shí)踐和應用,并且介紹如何在Notebook上進(jìn)行代碼開(kāi)發(fā)和算法調試,以幫助讀者提升工作效率。
黃美靈 現任一線(xiàn)互聯(lián)網(wǎng)公司的高級工程師,擁有多年大型互聯(lián)網(wǎng)公司推薦系統和機器學(xué)習實(shí)戰經(jīng)驗,現從事廣告推薦、應用分發(fā)和資訊Feeds流推薦相關(guān)工作。
目 錄
第1部分 推薦系統的算法基礎
第1章 數學(xué)基礎 2
1.1 線(xiàn)性代數 2
1.2 概率與統計 5
1.3 損失函數 7
1.4 優(yōu)化方法 8
1.4.1 SGD 8
1.4.2 動(dòng)量 8
1.4.3 Nesterov動(dòng)量 9
1.4.4 AdaGrad 9
1.4.5 Adam 10
1.4.6 L-BFGS 10
1.4.7 梯度法和牛頓法的比較 11
1.5 評價(jià)方法 11
1.5.1 混淆矩陣 11
1.5.2 ROC曲線(xiàn) 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機器學(xué)習庫 26
3.1.1 Sklearn介紹 26
3.1.2 Sklearn建模流程 27
3.2 Spark MLlib機器學(xué)習庫 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章 協(xié)同過(guò)濾――基于行為相似的召回 40
4.1 協(xié)同過(guò)濾算法 40
4.1.1 協(xié)同過(guò)濾推薦概述 40
4.1.2 用戶(hù)評分 41
4.1.3 相似度計算 41
4.1.4 推薦計算 43
4.2 協(xié)同過(guò)濾推薦算法實(shí)現 44
4.2.1 相似度計算及推薦計算 47
4.2.2 協(xié)同推薦 54
4.2.3 運行結果 59
第5章 Word2vec――基于內容相似的召回 65
5.1 Word2vec算法 65
5.1.1 語(yǔ)言模型 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實(shí)例 75
5.2.1 Spark實(shí)現 75
5.2.2 TensorFlow實(shí)現 80
第3部分 推薦系統的排序算法――線(xiàn)性模型
第6章 邏輯回歸 86
6.1 邏輯回歸算法 86
6.1.1 二元邏輯回歸模型 86
6.1.2 模型參數估計 88
6.1.3 多元邏輯回歸模型(Softmax回歸) 88
6.1.4 邏輯回歸的網(wǎng)絡(luò )結構 89
6.1.5 梯度下降算法 90
6.1.6 正則化 91
6.2 邏輯回歸實(shí)現 93
6.2.1 Sklearn實(shí)現 93
6.2.2 Spark實(shí)現 98
6.2.3 TensorFlow實(shí)現 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模型的網(wǎng)絡(luò )結構 119
7.2 FM實(shí)現 120
7.2.1 Sklearn實(shí)現 120
7.2.2 TensorFlow實(shí)現 122
7.2.3 效果總結 128
第4部分 推薦系統的排序算法――樹(shù)模型
第8章 決策樹(shù) 130
8.1 決策樹(shù)算法 130
8.1.1 決策樹(shù)模型 130
8.1.2 特征選擇 131
8.1.3 決策樹(shù)的生成 133
8.1.4 決策樹(shù)的生成實(shí)例 134
8.1.5 決策樹(shù)的剪枝 135
8.2 決策樹(shù)的集成算法 136
8.2.1 集成分類(lèi)器 136
8.2.2 隨機森林 137
8.2.3 GBDT 137
8.3 決策樹(shù)集成算法實(shí)例 139
8.3.1 Spark實(shí)現 139
8.3.2 Sklearn實(shí)現 149
8.3.3 效果總結 154
第9章 集成學(xué)習 155
9.1 GBDT+LR算法 155
9.1.1 背景 155
9.1.2 GBDT+LR網(wǎng)絡(luò )結構 156
9.2 深度森林算法 159
9.2.1 深度森林介紹 159
9.2.2 級聯(lián)森林 160
9.2.3 多粒度掃描 161
9.3 決策樹(shù)集成分類(lèi)器 162
9.4 集成學(xué)習實(shí)例 164
9.4.1 GBDT+LR實(shí)現 164
9.4.2 深度森林實(shí)現 167
9.4.3 效果總結 175
第5部分 推薦系統的排序算法――深度學(xué)習模型
第10章 深度學(xué)習在推薦算法中的應用 178
10.1 推薦模型的特點(diǎn) 178
10.2 基于深度學(xué)習的推薦模型 179
10.2.1 DNN優(yōu)化高階特征 179
10.2.2 高階特征交叉與低階特征交叉 181
10.2.3 特征交叉優(yōu)化 183
10.2.4 特征連接優(yōu)化 184
10.2.5 高階特征交叉優(yōu)化 185
10.2.6 多樣性的深度興趣特征優(yōu)化 186
第11章 DNN算法 189
11.1 人工神經(jīng)網(wǎng)絡(luò )算法 189
11.1.1 神經(jīng)元 189
11.1.2 神經(jīng)網(wǎng)絡(luò )模型 191
11.1.3 信號的前向傳播 191
11.1.4 誤差的反向傳播 193
11.2 DNN優(yōu)化方法 195
11.2.1 優(yōu)化參數 196
11.2.2 Attention機制 197
11.3 DNN實(shí)例 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 模型聯(lián)合訓練 210
12.2 Wide & Deep系統實(shí)現 211
12.2.1 推薦系統介紹 211
12.2.2 系統流程 212
12.2.3 訓練數據的生成 213
12.2.4 模型訓練 213
12.2.5 線(xiàn)上應用 214
12.3 Wide & Deep實(shí)例 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模型實(shí)例 231
13.3 運行結果 241
第14章 YouTube的深度神經(jīng)網(wǎng)絡(luò )模型 243
14.1 YouTube推薦模型 243
14.1.1 背景介紹 243
14.1.2 召回模型設計 245
14.1.3 排序模型設計 250
14.2 YouTube實(shí)例 252
14.3 運行結果 256
第6部分 推薦系統的算法實(shí)踐
第15章 實(shí)踐――基于電商平臺的商品召回 260
15.1 背景介紹 260
15.2 模型選擇 261
15.3 算法開(kāi)發(fā) 261
第16章 實(shí)踐――基于邏輯回歸的音樂(lè )評分預測 266
16.1 背景介紹 266
16.2 數據準備 266
16.3 特征處理 268
16.4 模型選擇 270
16.5 算法開(kāi)發(fā) 271
第17章 實(shí)踐――Kaggle競賽之Outbrain點(diǎn)擊率預估 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 集成學(xué)習 292
17.5 算法開(kāi)發(fā) 292
第18章 實(shí)踐――基于深度學(xué)習的電商商品點(diǎn)擊率預估 297
18.1 背景介紹 297
18.2 數據準備 298
18.3 特征處理 302
18.4 模型選擇 303
18.5 算法開(kāi)發(fā) 304
18.6 運行結果 309
第19章 Notebook實(shí)踐 312
19.1 Sklearn中的LR實(shí)踐 312
19.2 TensorFlow中的LR實(shí)踐 316
19.3 Spark中的LR實(shí)踐 321
19.4 TensorFlow中的FM調試實(shí)踐 327
19.5 Spark中的協(xié)同過(guò)濾調試實(shí)踐 331