大規(guī)模推薦系統(tǒng)實(shí)戰(zhàn)
定 價(jià):99.8 元
- 作者:阿星(本名:張友雷)
- 出版時(shí)間:2022/8/1
- ISBN:9787115593856
- 出 版 社:人民郵電出版社
- 中圖法分類:TP181
- 頁(yè)碼:368
- 紙張:
- 版次:01
- 開本:16開
作為機(jī)器學(xué)習(xí)領(lǐng)域應(yīng)用比較成熟、廣泛的業(yè)務(wù),個(gè)性化推薦在電商、短視頻等平臺(tái)發(fā)揮著重要作用,其背后的推薦系統(tǒng)已成為當(dāng)今越來(lái)越多應(yīng)用程序的標(biāo)配。關(guān)于推薦算法的論述有很多,而要將其很好地應(yīng)用到實(shí)際場(chǎng)景中,則需要大量的實(shí)踐經(jīng)驗(yàn)。本書從實(shí)戰(zhàn)的角度介紹推薦系統(tǒng),主要包含三部分 :召回算法、排序算法和工程實(shí)踐。書中細(xì)致剖析了如何在工業(yè)中對(duì)海量數(shù)據(jù)應(yīng)用算法,涵蓋了從算法原理,到模型搭建、優(yōu)化以及最佳實(shí)踐等諸多內(nèi)容。
作者從實(shí)踐出發(fā),結(jié)合在推薦領(lǐng)域的多年經(jīng)驗(yàn),清晰直觀地介紹了推薦系統(tǒng)相關(guān)的算法原理、代碼實(shí)現(xiàn)、評(píng)估方法及調(diào)優(yōu)經(jīng)驗(yàn)等內(nèi)容。本書融合了算法理論與實(shí)現(xiàn),兼顧技術(shù)廣度與深度。內(nèi)容通俗易懂,干貨十足,具實(shí)踐參考價(jià)值,適合不同階段的廣大讀者閱讀。
專業(yè)背景:一線互聯(lián)網(wǎng)大廠推薦系統(tǒng)專家經(jīng)驗(yàn)總結(jié)
著眼實(shí)戰(zhàn):詳細(xì)剖析大規(guī)模推薦系統(tǒng)從0到1和從1到N
開箱即用:附帶可以直接用于生產(chǎn)環(huán)境的幾乎所有主流推薦算法的代碼實(shí)現(xiàn)
阿星
曾在字節(jié)跳動(dòng)、蘇寧易購(gòu)等企業(yè)負(fù)責(zé)推薦/廣告算法的設(shè)計(jì)、開發(fā)和優(yōu)化工作,在應(yīng)對(duì)海量數(shù)據(jù)下的算法建模以及點(diǎn)擊率/轉(zhuǎn)化率預(yù)估等任務(wù)中積累了大量實(shí)戰(zhàn)經(jīng)驗(yàn)。目前就職于跨境電商巨頭SHEIN,負(fù)責(zé)提升全球核心業(yè)務(wù)場(chǎng)景的流量分發(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í)平臺(tái) 18
1.4.2 特征平臺(tái) 18
1.4.3 模型服務(wù)平臺(tái) 19
1.4.4 A/B測(cè)試平臺(tái) 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 算法實(shí)現(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 無(wú)效用戶過濾 38
2.4.2 熱門懲罰 38
2.5 完整代碼 39
2.6 準(zhǔn)實(shí)時(shí)更新 42
2.6.1 數(shù)據(jù)準(zhǔn)備 43
2.6.2 實(shí)時(shí)數(shù)據(jù)取數(shù)邏輯 44
2.6.3 準(zhǔn)實(shí)時(shí)更新相似度 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 頻繁項(xiàng)集 50
3.2 Apriori算法 51
3.2.1 頻繁項(xiàng)集生成 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 算法實(shí)戰(zhàn) 93
4.5.1 數(shù)據(jù)源 94
4.5.2 運(yùn)行 94
4.5.3 相似度計(jì)算 95
4.6 LSH 算法 96
4.6.1 散列 96
4.6.2 算法邏輯 98
4.6.3 時(shí)間復(fù)雜度分析 102
4.6.4 錯(cuò)誤率分析 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 模型對(duì)外服務(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章 召回模型的離線評(píng)估 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 代碼實(shí)現(xiàn) 144
6.5.1 實(shí)現(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 極大似然估計(jì) 169
8.1.2 最大后驗(yàn)概率估計(jì) 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)練到對(duì)外服務(wù) 188
9.1 深度學(xué)習(xí)簡(jiǎn)介 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從原理到實(shí)現(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章 排序算法的離線評(píng)估和在線評(píng)估 246
11.1 離線評(píng)估 246
11.1.1 ROC 曲線 247
11.1.2 ROC 曲線下的面積 249
11.1.3 PR 曲線 254
11.1.4 GAUC 256
11.2 在線評(píng)估 257
11.2.1 A/B測(cè)試簡(jiǎn)介 257
11.2.2 樸素分流方案 258
11.2.3 分層分流方案 260
11.2.4 可信度評(píng)估 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 驗(yàn)證集設(shè)計(jì)不合理 268
11.4 總結(jié) 270
第 12章 推薦算法建模最佳實(shí)踐 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 其他實(shí)踐 281
12.2 現(xiàn)實(shí)數(shù)據(jù)問題 281
12.2.1 類別失衡 282
12.2.2 位置偏差 286
12.2.3 海量數(shù)據(jù)下的調(diào)參 287
12.2.4 其他實(shí)踐 288
12.3 總結(jié) 288
第三部分 工程實(shí)踐
第 13章 冷啟動(dòng)問題 290
13.1 冷啟動(dòng)概述 291
13.2 用戶冷啟動(dòng) 292
13.2.1 熱門排行榜 292
13.2.2 上下文信息 294
13.2.3 其他策略 295
13.3 物品冷啟動(dòng) 296
13.3.1 基于內(nèi)容的過濾 296
13.3.2 推薦策略 299
13.4 系統(tǒng)冷啟動(dò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è)計(jì) 346
16.1 問題 347
16.2 解題思路 348
16.2.1 數(shù)據(jù)問題 348
16.2.2 訓(xùn)練問題 349
16.3 詳細(xì)設(shè)計(jì) 350
16.3.1 配置解析 351
16.3.2 數(shù)據(jù)讀取 352
16.3.3 模型搭建 352
16.3.4 完整流程 353
16.4 代碼實(shí)現(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 平臺(tái) 367
17.2.4 安全 367
17.3 總結(jié) 368