大規模推薦系統實戰

阿星(本名:張友雷)

  • 出版商: 人民郵電
  • 出版日期: 2022-08-01
  • 售價: $599
  • 貴賓價: 9.5$569
  • 語言: 簡體中文
  • 頁數: 368
  • ISBN: 711559385X
  • ISBN-13: 9787115593856
  • 相關分類: 推薦系統
  • 立即出貨 (庫存 < 4)

  • 大規模推薦系統實戰-preview-1
  • 大規模推薦系統實戰-preview-2
大規模推薦系統實戰-preview-1

買這商品的人也買了...

商品描述

作為機器學習領域應用比較成熟、廣泛的業務,個性化推薦在電商、短視頻等平臺發揮著重要作用,其背後的推薦系統已成為當今越來越多應用程序的標配。關於推薦算法的論述有很多,而要將其很好地應用到實際場景中,則需要大量的實踐經驗。本書從實戰的角度介紹推薦系統,主要包含三部分 :召回算法、排序算法和工程實踐。書中細致剖析瞭如何在工業中對海量數據應用算法,涵蓋了從算法原理,到模型搭建、優化以及最佳實踐等諸多內容。

作者簡介

阿星

曾在字节跳动、苏宁易购等企业负责推荐/广告算法的设计、开发和优化工作,在应对海量数据下的算法建模以及点击率/转化率预估等任务中积累了大量实战经验。目前就职于跨境电商巨头SHEIN,负责提升全球核心业务场景的流量分发效率。

目錄大綱

前言 iii

第 1章 推薦系統 1

1.1 推薦系統是什麽 1

1.1.1 京東商城 3

1.1.2 亞馬遜 4

1.1.3 YouTube 6

1.2 推薦系統整體架構 8

1.3 推薦系統算法概述 9

1.3.1 召回算法 10

1.3.2 排序算法 14

1.4 周邊配套系統 16

1.4.1 機器學習平臺 18

1.4.2 特徵平臺 18

1.4.3 模型服務平臺 19

1.4.4 A/B測試平臺 19

1.5 總結 20

第 一部分 召回算法

第 2章 協同過濾 22

2.1 算法應用 24

2.2 算法原理 25

2.2.1 打分機制 26

2.2.2 物品相似度 31

2.3 算法實現 33

2.3.1 步驟1:數據源讀取 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 算法優化 37

2.4.1 無效用戶過濾 38

2.4.2 熱門懲罰 38

2.5 完整代碼 39

2.6 準實時更新 42

2.6.1 數據準備 43

2.6.2 實時數據取數邏輯 44

2.6.3 準實時更新相似度 44

2.7 總結 45

第3章 關聯規則 47

3.1 關聯規則 48

3.1.1 定義 49

3.1.2 頻繁項集 50

3.2 Apriori算法 51

3.2.1 頻繁項集生成 51

3.2.2 關聯規則生成 53

3.3 FPGrowth 54

3.3.1 FP樹 54

3.3.2 邏輯 54

3.3.3 舉例 55

3.3.4 運行 66

3.3.5 完整代碼 68

3.3.6 數據集 69

3.3.7 源碼分析 70

3.3.8 算法優化 76

3.4 總結 77

第4章 Word2Vec 78

4.1 詞向量示例 80

4.2 數據準備 81

4.2.1 詞匯表 82

4.2.2 訓練數據 82

4.3 算法原理 83

4.3.1 模型結構 85

4.3.2 前向傳播 86

4.3.3 反向傳播 88

4.3.4 算法優化 89

4.4 源碼分析 91

4.4.1 負採樣概率表 91

4.4.2 sigmoid函數優化 93

4.5 算法實戰 93

4.5.1 數據源 94

4.5.2 運行 94

4.5.3 相似度計算 95

4.6 LSH 算法 96

4.6.1 散列 96

4.6.2 算法邏輯 98

4.6.3 時間復雜度分析 102

4.6.4 錯誤率分析 102

4.6.5 召回率分析 104

4.7 Word2Vec與LSH 106

4.8 總結 107

第5章 深度學習雙塔召回 108

5.1 向量化 109

5.2 雙塔模型 110

5.2.1 數據準備 112

5.2.2 模型訓練 112

5.2.3 模型對外服務 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 負樣本策略 131

5.6 總結 132

第6章 召回模型的離線評估 133

6.1 推薦任務類型 133

6.2 混淆矩陣 134

6.2.1 準確率 135

6.2.2 精確率 136

6.2.3 召回率 136

6.2.4 F1分數 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 其他指標 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 代碼實現 144

6.5.1 實現邏輯 145

6.5.2 完整代碼 146

6.6 總結 149

第二部分 排序算法

第7章 特徵工程和特徵選擇 153

7.1 特徵類型 155

7.1.1 類別特徵 155

7.1.2 數值特徵 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 總結 167

第8章 傳統機器學習排序算法 168

8.1 數據和模型 168

8.1.1 極大似然估計 169

8.1.2 最大後驗概率估計 169

8.2 模型訓練流程 170

8.3 手寫邏輯回歸 171

8.3.1 數據準備 172

8.3.2 數據讀取 173

8.3.3 模型訓練 173

8.3.4 完整代碼 174

8.3.5 算法優缺點 177

8.4 手寫因式分解機 178

8.4.1 完整代碼 180

8.4.2 算法優缺點 183

8.5 其他經典排序算法 184

8.6 Q & A 185

8.7 總結 186

第9章 深度學習從訓練到對外服務 188

9.1 深度學習簡介 188

9.2 經典模型結構 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 數據準備 197

9.3.2 特徵工程 202

9.3.3 模型搭建 209

9.3.4 模型訓練 213

9.3.5 模型導出 215

9.3.6 模型服務 216

9.4 再談雙塔模型 219

9.5 總結 220

第 10章 Listwise Learning To Rank從原理到實現 221

10.1 Listwise基本概念 222

10.1.1 page view 222

10.1.2 relevance 223

10.1.3 Listwise 223

10.2 損失函數 224

10.2.1 permutation probability 224

10.2.2 top one probability 226

10.2.3 交叉熵損失函數 227

10.3 ListNet 228

10.3.1 數據準備 229

10.3.2 模型搭建 236

10.3.3 模型訓練、導出和服務 243

10.3.4 優化方向 244

10.4 總結 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 數據分佈不一致 268

11.3.3 模型與業務目標不一致 268

11.3.4 驗證集設計不合理 268

11.4 總結 270

第 12章 推薦算法建模最佳實踐 271

12.1 深度學習調參 272

12.1.1 學習率 272

12.1.2 batch size 279

12.1.3 epoch 279

12.1.4 隱藏層數 280

12.1.5 隱藏節點數 280

12.1.6 激活函數 280

12.1.7 權重初始化 280

12.1.8 優化器 281

12.1.9 其他實踐 281

12.2 現實數據問題 281

12.2.1 類別失衡 282

12.2.2 位置偏差 286

12.2.3 海量數據下的調參 287

12.2.4 其他實踐 288

12.3 總結 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 基於內容的過濾 296

13.3.2 推薦策略 299

13.4 系統冷啟動 301

13.5 總結 306

第 14章 增量更新和遷移學習 307

14.1 離線訓練 307

14.1.1 數據流向 307

14.1.2 更新方式 308

14.2 在線訓練 310

14.2.1 數據流向 310

14.2.2 樣本生成 312

14.2.3 延遲反饋 314

14.3 遷移學習 317

14.4 總結 320

第 15章 分佈式TensorFlow 321

15.1 分佈式的理由 321

15.2 並行方式 322

15.2.1 模型並行 323

15.2.2 數據並行 324

15.3 參數共享與更新 325

15.3.1 同步更新 326

15.3.2 異步更新 327

15.4 分佈式訓練架構 329

15.4.1 Parameter Server架構 329

15.4.2 Ring All Reduce架構 331

15.5 單機代碼移植 334

15.5.1 數據準備 334

15.5.2 模型搭建 337

15.5.3 模型訓練 337

15.5.4 模型導出 340

15.6 分佈式訓練框架 340

15.6.1 基於Kubernetes的分佈式訓練框架 340

15.6.2 基於Flink的分佈式訓練框架 344

15.7 總結 345

第 16章 示例:推薦算法訓練代碼框架設計 346

16.1 問題 347

16.2 解題思路 348

16.2.1 數據問題 348

16.2.2 訓練問題 349

16.3 詳細設計 350

16.3.1 配置解析 351

16.3.2 數據讀取 352

16.3.3 模型搭建 352

16.3.4 完整流程 353

16.4 代碼實現 353

16.4.1 配置解析 354

16.4.2 特徵處理 359

16.5 總結 362

第 17章 回顧和探索 363

17.1 回顧 363

17.2 探索 364

17.2.1 數據 364

17.2.2 算法 366

17.2.3 平臺 367

17.2.4 安全 367

17.3 總結 368