大規(guī)模推薦系統(tǒng)實戰(zhàn)
定 價:99.8 元
- 作者:阿星(本名:張友雷)
- 出版時間:2022/8/1
- ISBN:9787115593856
- 出 版 社:人民郵電出版社
- 中圖法分類:TP181
- 頁碼:368
- 紙張:
- 版次:01
- 開本:16開
作為機(jī)器學(xué)習(xí)領(lǐng)域應(yīng)用比較成熟、廣泛的業(yè)務(wù),個性化推薦在電商、短視頻等平臺發(fā)揮著重要作用,其背后的推薦系統(tǒng)已成為當(dāng)今越來越多應(yīng)用程序的標(biāo)配。關(guān)于推薦算法的論述有很多,而要將其很好地應(yīng)用到實際場景中,則需要大量的實踐經(jīng)驗。本書從實戰(zhàn)的角度介紹推薦系統(tǒng),主要包含三部分 :召回算法、排序算法和工程實踐。書中細(xì)致剖析了如何在工業(yè)中對海量數(shù)據(jù)應(yīng)用算法,涵蓋了從算法原理,到模型搭建、優(yōu)化以及最佳實踐等諸多內(nèi)容。
作者從實踐出發(fā),結(jié)合在推薦領(lǐng)域的多年經(jīng)驗,清晰直觀地介紹了推薦系統(tǒng)相關(guān)的算法原理、代碼實現(xiàn)、評估方法及調(diào)優(yōu)經(jīng)驗等內(nèi)容。本書融合了算法理論與實現(xiàn),兼顧技術(shù)廣度與深度。內(nèi)容通俗易懂,干貨十足,具實踐參考價值,適合不同階段的廣大讀者閱讀。
專業(yè)背景:一線互聯(lián)網(wǎng)大廠推薦系統(tǒng)專家經(jīng)驗總結(jié)
著眼實戰(zhàn):詳細(xì)剖析大規(guī)模推薦系統(tǒng)從0到1和從1到N
開箱即用:附帶可以直接用于生產(chǎn)環(huán)境的幾乎所有主流推薦算法的代碼實現(xiàn)
阿星
曾在字節(jié)跳動、蘇寧易購等企業(yè)負(fù)責(zé)推薦/廣告算法的設(shè)計、開發(fā)和優(yōu)化工作,在應(yīng)對海量數(shù)據(jù)下的算法建模以及點(diǎn)擊率/轉(zhuǎn)化率預(yù)估等任務(wù)中積累了大量實戰(zhàn)經(jīng)驗。目前就職于跨境電商巨頭SHEIN,負(fù)責(zé)提升全球核心業(yè)務(wù)場景的流量分發(fā)效率。
前言 iii
第 1章 推薦系統(tǒng) 1
1.1 推薦系統(tǒng)是什么 1
1.1.1 京東商城 3
1.1.2 亞馬遜 4
1.1.3 YouTube 6
1.2 推薦系統(tǒng)整體架構(gòu) 8
1.3 推薦系統(tǒng)算法概述 9
1.3.1 召回算法 10
1.3.2 排序算法 14
1.4 周邊配套系統(tǒng) 16
1.4.1 機(jī)器學(xué)習(xí)平臺 18
1.4.2 特征平臺 18
1.4.3 模型服務(wù)平臺 19
1.4.4 A/B測試平臺 19
1.5 總結(jié) 20
第 一部分 召回算法
第 2章 協(xié)同過濾 22
2.1 算法應(yīng)用 24
2.2 算法原理 25
2.2.1 打分機(jī)制 26
2.2.2 物品相似度 31
2.3 算法實現(xiàn) 33
2.3.1 步驟1:數(shù)據(jù)源讀取 34
2.3.2 步驟2:聚合用戶行為 34
2.3.3 步驟3:局部物品相似度 35
2.3.4 步驟4和步驟5:全局物品相似度 36
2.3.5 步驟6:Top N 37
2.4 算法優(yōu)化 37
2.4.1 無效用戶過濾 38
2.4.2 熱門懲罰 38
2.5 完整代碼 39
2.6 準(zhǔn)實時更新 42
2.6.1 數(shù)據(jù)準(zhǔn)備 43
2.6.2 實時數(shù)據(jù)取數(shù)邏輯 44
2.6.3 準(zhǔn)實時更新相似度 44
2.7 總結(jié) 45
第3章 關(guān)聯(lián)規(guī)則 47
3.1 關(guān)聯(lián)規(guī)則 48
3.1.1 定義 49
3.1.2 頻繁項集 50
3.2 Apriori算法 51
3.2.1 頻繁項集生成 51
3.2.2 關(guān)聯(lián)規(guī)則生成 53
3.3 FPGrowth 54
3.3.1 FP樹 54
3.3.2 邏輯 54
3.3.3 舉例 55
3.3.4 運(yùn)行 66
3.3.5 完整代碼 68
3.3.6 數(shù)據(jù)集 69
3.3.7 源碼分析 70
3.3.8 算法優(yōu)化 76
3.4 總結(jié) 77
第4章 Word2Vec 78
4.1 詞向量示例 80
4.2 數(shù)據(jù)準(zhǔn)備 81
4.2.1 詞匯表 82
4.2.2 訓(xùn)練數(shù)據(jù) 82
4.3 算法原理 83
4.3.1 模型結(jié)構(gòu) 85
4.3.2 前向傳播 86
4.3.3 反向傳播 88
4.3.4 算法優(yōu)化 89
4.4 源碼分析 91
4.4.1 負(fù)采樣概率表 91
4.4.2 sigmoid函數(shù)優(yōu)化 93
4.5 算法實戰(zhàn) 93
4.5.1 數(shù)據(jù)源 94
4.5.2 運(yùn)行 94
4.5.3 相似度計算 95
4.6 LSH 算法 96
4.6.1 散列 96
4.6.2 算法邏輯 98
4.6.3 時間復(fù)雜度分析 102
4.6.4 錯誤率分析 102
4.6.5 召回率分析 104
4.7 Word2Vec與LSH 106
4.8 總結(jié) 107
第5章 深度學(xué)習(xí)雙塔召回 108
5.1 向量化 109
5.2 雙塔模型 110
5.2.1 數(shù)據(jù)準(zhǔn)備 112
5.2.2 模型訓(xùn)練 112
5.2.3 模型對外服務(wù) 113
5.3 HNSW算法 115
5.3.1 二分查找 115
5.3.2 有序鏈表 117
5.3.3 跳表 118
5.3.4 HNSW算法 121
5.4 雙塔模型與HNSW算法 129
5.5 負(fù)樣本策略 131
5.6 總結(jié) 132
第6章 召回模型的離線評估 133
6.1 推薦任務(wù)類型 133
6.2 混淆矩陣 134
6.2.1 準(zhǔn)確率 135
6.2.2 精確率 136
6.2.3 召回率 136
6.2.4 F1分?jǐn)?shù) 137
6.2.5 @k 138
6.3 nDCG 139
6.3.1 CG 139
6.3.2 DCG 140
6.3.3 nDCG 140
6.3.4 @k 141
6.4 其他指標(biāo) 142
6.4.1 MRR 142
6.4.2 MAP 142
6.4.3 多樣性 143
6.4.4 覆蓋度 144
6.4.5 信息熵 144
6.5 代碼實現(xiàn) 144
6.5.1 實現(xiàn)邏輯 145
6.5.2 完整代碼 146
6.6 總結(jié) 149
第二部分 排序算法
第7章 特征工程和特征選擇 153
7.1 特征類型 155
7.1.1 類別特征 155
7.1.2 數(shù)值特征 155
7.1.3 序列特征 156
7.2 特征工程 156
7.2.1 特征樣例 156
7.2.2 特征工程 159
7.2.3 TensorFlow特征列 164
7.3 特征選擇 165
7.4 總結(jié) 167
第8章 傳統(tǒng)機(jī)器學(xué)習(xí)排序算法 168
8.1 數(shù)據(jù)和模型 168
8.1.1 極大似然估計 169
8.1.2 最大后驗概率估計 169
8.2 模型訓(xùn)練流程 170
8.3 手寫邏輯回歸 171
8.3.1 數(shù)據(jù)準(zhǔn)備 172
8.3.2 數(shù)據(jù)讀取 173
8.3.3 模型訓(xùn)練 173
8.3.4 完整代碼 174
8.3.5 算法優(yōu)缺點(diǎn) 177
8.4 手寫因式分解機(jī) 178
8.4.1 完整代碼 180
8.4.2 算法優(yōu)缺點(diǎn) 183
8.5 其他經(jīng)典排序算法 184
8.6 Q & A 185
8.7 總結(jié) 186
第9章 深度學(xué)習(xí)從訓(xùn)練到對外服務(wù) 188
9.1 深度學(xué)習(xí)簡介 188
9.2 經(jīng)典模型結(jié)構(gòu) 191
9.2.1 Wide & Deep 191
9.2.2 Deep Interest Network 192
9.2.3 Behavior Sequence Transformer 194
9.3 建模流程 195
9.3.1 數(shù)據(jù)準(zhǔn)備 197
9.3.2 特征工程 202
9.3.3 模型搭建 209
9.3.4 模型訓(xùn)練 213
9.3.5 模型導(dǎo)出 215
9.3.6 模型服務(wù) 216
9.4 再談雙塔模型 219
9.5 總結(jié) 220
第 10章 Listwise Learning To Rank從原理到實現(xiàn) 221
10.1 Listwise基本概念 222
10.1.1 page view 222
10.1.2 relevance 223
10.1.3 Listwise 223
10.2 損失函數(shù) 224
10.2.1 permutation probability 224
10.2.2 top one probability 226
10.2.3 交叉熵?fù)p失函數(shù) 227
10.3 ListNet 228
10.3.1 數(shù)據(jù)準(zhǔn)備 229
10.3.2 模型搭建 236
10.3.3 模型訓(xùn)練、導(dǎo)出和服務(wù) 243
10.3.4 優(yōu)化方向 244
10.4 總結(jié) 244
第 11章 排序算法的離線評估和在線評估 246
11.1 離線評估 246
11.1.1 ROC 曲線 247
11.1.2 ROC 曲線下的面積 249
11.1.3 PR 曲線 254
11.1.4 GAUC 256
11.2 在線評估 257
11.2.1 A/B測試簡介 257
11.2.2 樸素分流方案 258
11.2.3 分層分流方案 260
11.2.4 可信度評估 262
11.3 在線離線不一致 267
11.3.1 特征不一致 267
11.3.2 數(shù)據(jù)分布不一致 268
11.3.3 模型與業(yè)務(wù)目標(biāo)不一致 268
11.3.4 驗證集設(shè)計不合理 268
11.4 總結(jié) 270
第 12章 推薦算法建模最佳實踐 271
12.1 深度學(xué)習(xí)調(diào)參 272
12.1.1 學(xué)習(xí)率 272
12.1.2 batch size 279
12.1.3 epoch 279
12.1.4 隱藏層數(shù) 280
12.1.5 隱藏節(jié)點(diǎn)數(shù) 280
12.1.6 激活函數(shù) 280
12.1.7 權(quán)重初始化 280
12.1.8 優(yōu)化器 281
12.1.9 其他實踐 281
12.2 現(xiàn)實數(shù)據(jù)問題 281
12.2.1 類別失衡 282
12.2.2 位置偏差 286
12.2.3 海量數(shù)據(jù)下的調(diào)參 287
12.2.4 其他實踐 288
12.3 總結(jié) 288
第三部分 工程實踐
第 13章 冷啟動問題 290
13.1 冷啟動概述 291
13.2 用戶冷啟動 292
13.2.1 熱門排行榜 292
13.2.2 上下文信息 294
13.2.3 其他策略 295
13.3 物品冷啟動 296
13.3.1 基于內(nèi)容的過濾 296
13.3.2 推薦策略 299
13.4 系統(tǒng)冷啟動 301
13.5 總結(jié) 306
第 14章 增量更新和遷移學(xué)習(xí) 307
14.1 離線訓(xùn)練 307
14.1.1 數(shù)據(jù)流向 307
14.1.2 更新方式 308
14.2 在線訓(xùn)練 310
14.2.1 數(shù)據(jù)流向 310
14.2.2 樣本生成 312
14.2.3 延遲反饋 314
14.3 遷移學(xué)習(xí) 317
14.4 總結(jié) 320
第 15章 分布式TensorFlow 321
15.1 分布式的理由 321
15.2 并行方式 322
15.2.1 模型并行 323
15.2.2 數(shù)據(jù)并行 324
15.3 參數(shù)共享與更新 325
15.3.1 同步更新 326
15.3.2 異步更新 327
15.4 分布式訓(xùn)練架構(gòu) 329
15.4.1 Parameter Server架構(gòu) 329
15.4.2 Ring All Reduce架構(gòu) 331
15.5 單機(jī)代碼移植 334
15.5.1 數(shù)據(jù)準(zhǔn)備 334
15.5.2 模型搭建 337
15.5.3 模型訓(xùn)練 337
15.5.4 模型導(dǎo)出 340
15.6 分布式訓(xùn)練框架 340
15.6.1 基于Kubernetes的分布式訓(xùn)練框架 340
15.6.2 基于Flink的分布式訓(xùn)練框架 344
15.7 總結(jié) 345
第 16章 示例:推薦算法訓(xùn)練代碼框架設(shè)計 346
16.1 問題 347
16.2 解題思路 348
16.2.1 數(shù)據(jù)問題 348
16.2.2 訓(xùn)練問題 349
16.3 詳細(xì)設(shè)計 350
16.3.1 配置解析 351
16.3.2 數(shù)據(jù)讀取 352
16.3.3 模型搭建 352
16.3.4 完整流程 353
16.4 代碼實現(xiàn) 353
16.4.1 配置解析 354
16.4.2 特征處理 359
16.5 總結(jié) 362
第 17章 回顧和探索 363
17.1 回顧 363
17.2 探索 364
17.2.1 數(shù)據(jù) 364
17.2.2 算法 366
17.2.3 平臺 367
17.2.4 安全 367
17.3 總結(jié) 368