這是一本介紹推薦系統(tǒng)前沿技術(shù)的技術(shù)書。本書前幾章著重介紹深度學(xué)習排序模型的技術(shù)演化趨勢,然后依次介紹推薦系統(tǒng)其他模塊的技術(shù)細節(jié)和工程實現(xiàn),通過業(yè)界前沿的推薦系統(tǒng)實例將所有知識融會貫通。本書著重討論的是推薦系統(tǒng)相關(guān)的經(jīng)典和前沿技術(shù)內(nèi)容,尤其是深度學(xué)習在推薦系統(tǒng)業(yè)界的應(yīng)用。
王喆 ,畢業(yè)于清華大學(xué)計算機科學(xué)與技術(shù)系,美國知名流媒體公司Roku資深機器學(xué)習工程師,推薦系統(tǒng)架構(gòu)負責人。曾任Hulu高級研究工程師,品友互動廣告效果算法組負責人。清華大學(xué)KEG實驗室學(xué)術(shù)搜索引擎AMiner早期發(fā)起人之一。主要研究方向為推薦系統(tǒng)、計算廣告、個性化搜索,發(fā)表相關(guān)領(lǐng)域?qū)W術(shù)論文7篇,擁有專利3項,是《百面機器學(xué)習》等口碑技術(shù)書的聯(lián)合作者。曾擔任KDD、CIKM等國際會議審稿人。
第1章 互聯(lián)網(wǎng)的增長引擎——推薦系統(tǒng)
1.1 為什么推薦系統(tǒng)是互聯(lián)網(wǎng)的增長引擎
1.1.1 推薦系統(tǒng)的作用和意義
1.1.2 推薦系統(tǒng)與YouTube的觀看時長增長
1.1.3 推薦系統(tǒng)與電商網(wǎng)站的收入增長
1.2 推薦系統(tǒng)的架構(gòu)
1.2.1 推薦系統(tǒng)的邏輯框架
1.2.2 推薦系統(tǒng)的技術(shù)架構(gòu)
1.2.3 推薦系統(tǒng)的數(shù)據(jù)部分
1.2.4 推薦系統(tǒng)的模型部分
1.2.5 深度學(xué)習對推薦系統(tǒng)的革命性貢獻
1.2.6 把握整體,補充細節(jié)
1.3 本書的整體結(jié)構(gòu)
第2章 前深度學(xué)習時代——推薦系統(tǒng)的進化之路
2.1 傳統(tǒng)推薦模型的演化關(guān)系圖
2.2 協(xié)同過濾——經(jīng)典的推薦算法
2.2.1 什么是協(xié)同過濾
2.2.2 用戶相似度計算
2.2.3 終結(jié)果的排序
2.2.4 ItemCF
2.2.5 UserCF與ItemCF的應(yīng)用場景
2.2.6 協(xié)同過濾的下一步發(fā)展
2.3 矩陣分解算法——協(xié)同過濾的進化
2.3.1 矩陣分解算法的原理
2.3.2 矩陣分解的求解過程
2.3.3 消除用戶和物品打分的偏差
2.3.4 矩陣分解的優(yōu)點和局限性
2.4 邏輯回歸——融合多種特征的推薦模型
2.4.1 基于邏輯回歸模型的推薦流程
2.4.2 邏輯回歸模型的數(shù)學(xué)形式
2.4.3 邏輯回歸模型的訓(xùn)練方法
2.4.4 邏輯回歸模型的優(yōu)勢
2.4.5 邏輯回歸模型的局限性
2.5 從FM到FFM——自動特征交叉的解決方案
2.5.1 POLY2模型——特征交叉的開始
2.5.2 FM模型——隱向量特征交叉
2.5.3 FFM模型——引入特征域的概念
2.5.4 從POLY2到FFM的模型演化過程
2.6 GBDT+LR——特征工程模型化的開端
2.6.1 GBDT+LR組合模型的結(jié)構(gòu)
2.6.2 GBDT進行特征轉(zhuǎn)換的過程
2.6.3 GBDT+LR 組合模型開啟的特征工程新趨勢
2.7 LS-PLM——阿里巴巴曾經(jīng)的主流推薦模型
2.7.1 LS-PLM 模型的主要結(jié)構(gòu)
2.7.2 LS-PLM模型的優(yōu)點
2.7.3 從深度學(xué)習的角度重新審視LS-PLM模型
2.8 總結(jié)——深度學(xué)習推薦系統(tǒng)的前夜
第3章 浪潮之巔——深度學(xué)習在推薦系統(tǒng)中的應(yīng)用
3.1 深度學(xué)習推薦模型的演化關(guān)系圖
3.2 AutoRec——單隱層神經(jīng)網(wǎng)絡(luò)推薦模型
3.2.1 AutoRec模型的基本原理
3.2.2 AutoRec模型的結(jié)構(gòu)
3.2.3 基于AutoRec模型的推薦過程
3.2.4 AutoRec模型的特點和局限性
3.3 Deep Crossing模型——經(jīng)典的深度學(xué)習架構(gòu)
3.3.1 Deep Crossing模型的應(yīng)用場景
3.3.2 Deep Crossing模型的網(wǎng)絡(luò)結(jié)構(gòu)
3.3.3 Deep Crossing模型對特征交叉方法的革命
3.4 NeuralCF模型——CF與深度學(xué)習的結(jié)合
3.4.1 從深度學(xué)習的視角重新審視矩陣分解模型
3.4.2 NeuralCF模型的結(jié)構(gòu)
3.4.3 NeuralCF模型的優(yōu)勢和局限性
3.5 PNN模型——加強特征交叉能力
3.5.1 PNN模型的網(wǎng)絡(luò)架構(gòu)
3.5.2 Product層的多種特征交叉方式
3.5.3 PNN模型的優(yōu)勢和局限性
3.6 Wide&Deep 模型——記憶能力和泛化能力的綜合
3.6.1 模型的記憶能力與泛化能力
3.6.2 Wide&Deep模型的結(jié)構(gòu)
3.6.3 Wide&Deep模型的進化——Deep&Cross模型
3.6.4 Wide&Deep模型的影響力
3.7 FM與深度學(xué)習模型的結(jié)合
3.7.1 FNN——用FM的隱向量完成Embedding層初始化
3.7.2 DeepFM——用FM代替Wide部分
3.7.3 NFM——FM的神經(jīng)網(wǎng)絡(luò)化嘗試
3.7.4 基于FM的深度學(xué)習模型的優(yōu)點和局限性
3.8 注意力機制在推薦模型中的應(yīng)用
3.8.1 AFM——引入注意力機制的FM
3.8.2 DIN——引入注意力機制的深度學(xué)習網(wǎng)絡(luò)
3.8.3 注意力機制對推薦系統(tǒng)的啟發(fā)
3.9 DIEN——序列模型與推薦系統(tǒng)的結(jié)合
3.9.1 DIEN的“進化”動機
3.9.2 DIEN模型的架構(gòu)
3.9.3 興趣抽取層的結(jié)構(gòu)
3.9.4 興趣進化層的結(jié)構(gòu)
3.9.5 序列模型對推薦系統(tǒng)的啟發(fā)
3.10 強化學(xué)習與推薦系統(tǒng)的結(jié)合
3.10.1 深度強化學(xué)習推薦系統(tǒng)框架
3.10.2 深度強化學(xué)習推薦模型
3.10.3 DRN的學(xué)習過程
3.10.4 DRN的在線學(xué)習方法——競爭梯度下降算法
3.10.5 強化學(xué)習對推薦系統(tǒng)的啟發(fā)
3.11 總結(jié)——推薦系統(tǒng)的深度學(xué)習時代
第4章 Embedding技術(shù)在推薦系統(tǒng)中的應(yīng)用
4.1 什么是Embedding
4.1.1 詞向量的例子
4.1.2 Embedding 技術(shù)在其他領(lǐng)域的擴展
4.1.3 Embedding 技術(shù)對于深度學(xué)習推薦系統(tǒng)的重要性
4.2 Word2vec——經(jīng)典的Embedding方法
4.2.1 什么是Word2vec
4.2.2 Word2vec模型的訓(xùn)練過程
4.2.3 Word2vec的“負采樣”訓(xùn)練方法
4.2.4 Word2vec對Embedding技術(shù)的奠基性意義
4.3 Item2vec——Word2vec 在推薦系統(tǒng)領(lǐng)域的推廣
4.3.1 Item2vec的基本原理
4.3.2 “廣義”的Item2vec
4.3.3 Item2vec方法的特點和局限性
4.4 Graph Embedding——引入更多結(jié)構(gòu)信息的圖嵌入技術(shù)
4.4.1 DeepWalk——基礎(chǔ)的Graph Embedding方法
4.4.2 Node2vec——同質(zhì)性和結(jié)構(gòu)性的權(quán)衡
4.4.3 EGES——阿里巴巴的綜合性Graph Embedding方法
4.5 Embedding與深度學(xué)習推薦系統(tǒng)的結(jié)合
4.5.1 深度學(xué)習網(wǎng)絡(luò)中的Embedding層
4.5.2 Embedding的預(yù)訓(xùn)練方法
4.5.3 Embedding作為推薦系統(tǒng)召回層的方法
4.6 局部敏感哈!孍mbedding插上翅膀的快速搜索方法
4.6.1 “快速”Embedding近鄰搜索
4.6.2 局部敏感哈希的基本原理
4.6.3 局部敏感哈希多桶策略
4.7 總結(jié)——深度學(xué)習推薦系統(tǒng)的核心操作
第5章 多角度審視推薦系統(tǒng)
5.1 推薦系統(tǒng)的特征工程
5.1.1 構(gòu)建推薦系統(tǒng)特征工程的原則
5.1.2 推薦系統(tǒng)中的常用特征
5.1.3 常用的特征處理方法
5.1.4 特征工程與業(yè)務(wù)理解
5.2 推薦系統(tǒng)召回層的主要策略
5.2.1 召回層和排序?qū)拥墓δ芴攸c
5.2.2 多路召回策略
5.2.3 基于Embedding的召回方法
5.3 推薦系統(tǒng)的實時性
5.3.1 為什么說推薦系統(tǒng)的實時性是重要的
5.3.2 推薦系統(tǒng)“特征”的實時性
5.3.3 推薦系統(tǒng)“模型”的實時性
5.3.4 用“木桶理論”看待推薦系統(tǒng)的迭代升級
5.4 如何合理設(shè)定推薦系統(tǒng)中的優(yōu)化目標
5.4.1 YouTube以觀看時長為優(yōu)化目標的合理性
5.4.2 模型優(yōu)化和應(yīng)用場景的統(tǒng)一性
5.4.3 優(yōu)化目標是和其他團隊的接口性工作
5.5 推薦系統(tǒng)中比模型結(jié)構(gòu)更重要的是什么
5.5.1 有解決推薦問題的“銀彈”嗎
5.5.2 Netflix對用戶行為的觀察
5.5.3 觀察用戶行為,在模型中加入有價值的用戶信息
5.5.4 DIN模型的改進動機
5.5.5 算法工程師不能只是一個“煉金術(shù)士”
5.6 冷啟動的解決辦法
5.6.1 基于規(guī)則的冷啟動過程
5.6.2 豐富冷啟動過程中可獲得的用戶和物品特征
5.6.3 利用主動學(xué)習、遷移學(xué)習和“探索與利用”機制
5.6.4 “巧婦難為無米之炊”的困境
5.7 探索與利用
5.7.1 傳統(tǒng)的探索與利用方法
5.7.2 個性化的探索與利用方法
5.7.3 基于模型的探索與利用方法
5.7.4 “探索與利用”機制在推薦系統(tǒng)中的應(yīng)用
第6章 深度學(xué)習推薦系統(tǒng)的工程實現(xiàn)
6.1 推薦系統(tǒng)的數(shù)據(jù)流
6.1.1 批處理大數(shù)據(jù)架構(gòu)
6.1.2 流計算大數(shù)據(jù)架構(gòu)
6.1.3 Lambda架構(gòu)
6.1.4 Kappa架構(gòu)
6.1.5 大數(shù)據(jù)平臺與推薦系統(tǒng)的整合
6.2 推薦模型離線訓(xùn)練之Spark MLlib
6.2.1 Spark的分布式計算原理
6.2.2 Spark MLlib的模型并行訓(xùn)練原理
6.2.3 Spark MLlib并行訓(xùn)練的局限性
6.3 推薦模型離線訓(xùn)練之Parameter Server
6.3.1 Parameter Server的分布式訓(xùn)練原理
6.3.2 一致性與并行效率之間的取舍
6.3.3 多server節(jié)點的協(xié)同和效率問題
6.3.4 Parameter Server技術(shù)要點總結(jié)
6.4 推薦模型離線訓(xùn)練之TensorFlow
6.4.1 TensorFlow的基本原理
6.4.2 TensorFlow基于任務(wù)關(guān)系圖的并行訓(xùn)練過程
6.4.3 TensorFlow的單機訓(xùn)練與分布式訓(xùn)練模式
6.4.4 TensorFlow技術(shù)要點總結(jié)
6.5 深度學(xué)習推薦模型的上線部署
6.5.1 預(yù)存推薦結(jié)果或Embedding結(jié)果
6.5.2 自研模型線上服務(wù)平臺
6.5.3 預(yù)訓(xùn)練Embedding+輕量級線上模型
6.5.4 利用PMML轉(zhuǎn)換并部署模型
6.5.5 TensorFlow Serving
6.5.6 靈活選擇模型服務(wù)方法
6.6 工程與理論之間的權(quán)衡
6.6.1 工程師職責的本質(zhì)
6.6.2 Redis容量和模型上線方式之間的權(quán)衡
6.6.3 研發(fā)周期限制和技術(shù)選型的權(quán)衡
6.6.4 硬件平臺環(huán)境和模型結(jié)構(gòu)間的權(quán)衡
6.6.5 處理好整體和局部的關(guān)系
第7章 推薦系統(tǒng)的評估
7.1 離線評估方法與基本評價指標
7.1.1 離線評估的主要方法
7.1.2 離線評估的指標
7.2 直接評估推薦序列的離線指標
7.2.1 P-R曲線
7.2.2 ROC曲線
7.2.3 平均精度均值
7.2.4 合理選擇評估指標
7.3 更接近線上環(huán)境的離線評估方法——Replay
7.3.1 模型評估的邏輯閉環(huán)
7.3.2 動態(tài)離線評估方法
7.3.3 Netflix的Replay評估方法實踐
7.4 A/B測試與線上評估指標
7.4.1 什么是A/B測試
7.4.2 A/B測試的“分桶”原則
7.4.3 線上A/B測試的評估指標
7.5 快速線上評估方法——Interleaving
7.5.1 傳統(tǒng)A/B測試存在的統(tǒng)計學(xué)問題
7.5.2 Interleaving方法的實現(xiàn)
7.5.3 Interleaving方法與傳統(tǒng)A/B測試的靈敏度比較
7.5.4 Interleaving方法指標與A/B測試指標的相關(guān)性
7.5.5 Interleaving方法的優(yōu)點與缺點
7.6 推薦系統(tǒng)的評估體系
第8章 深度學(xué)習推薦系統(tǒng)的前沿實踐
8.1 Facebook的深度學(xué)習推薦系統(tǒng)
8.1.1 推薦系統(tǒng)應(yīng)用場景
8.1.2 以GBDT+LR組合模型為基礎(chǔ)的CTR預(yù)估模型
8.1.3 實時數(shù)據(jù)流架構(gòu)
8.1.4 降采樣和模型校正
8.1.5 Facebook GBDT+LR組合模型的工程實踐
8.1.6 Facebook的深度學(xué)習模型DLRM
8.1.7 DLRM模型并行訓(xùn)練方法
8.1.8 DLRM模型的效果
8.1.9 Facebook深度學(xué)習推薦系統(tǒng)總結(jié)
8.2 Airbnb基于Embedding的實時搜索推薦系統(tǒng)
8.2.1 推薦系統(tǒng)應(yīng)用場景
8.2.2 基于短期興趣的房源Embedding方法
8.2.3 基于長期興趣的用戶Embedding和房源Embedding
8.2.4 Airbnb搜索詞的Embedding
8.2.5 Airbnb的實時搜索排序模型及其特征工程
8.2.6 Airbnb實時搜索推薦系統(tǒng)總結(jié)
8.3 YouTube深度學(xué)習視頻推薦系統(tǒng)
8.3.1 推薦系統(tǒng)應(yīng)用場景
8.3.2 YouTube推薦系統(tǒng)架構(gòu)
8.3.3 候選集生成模型
8.3.4 候選集生成模型獨特的線上服務(wù)方法
8.3.5 排序模型
8.3.6 訓(xùn)練和測試樣本的處理
8.3.7 如何處理用戶對新視頻的偏好
8.3.8 YouTube深度學(xué)習視頻推薦系統(tǒng)總結(jié)
8.4 阿里巴巴深度學(xué)習推薦系統(tǒng)的進化
8.4.1 推薦系統(tǒng)應(yīng)用場景
8.4.2 阿里巴巴的推薦模型體系
8.4.3 阿里巴巴深度學(xué)習推薦模型的進化過程
8.4.4 模型服務(wù)模塊的技術(shù)架構(gòu)
8.4.5 阿里巴巴推薦技術(shù)架構(gòu)總結(jié)
第9章 構(gòu)建屬于你的推薦系統(tǒng)知識框架
9.1 推薦系統(tǒng)的整體知識架構(gòu)圖
9.2 推薦模型發(fā)展的時間線
9.3 如何成為一名優(yōu)秀的推薦工程師
9.3.1 推薦工程師的4項能力
9.3.2 能力的深度和廣度
9.3.3 推薦工程師的能力總結(jié)
后記