推薦系統算法實踐
內容描述
本書主要講解推薦系統中的召回算法和排序算法,以及各個算法在主流工具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