
推薦系統
📘 深度概覽
資料來源與整理脈絡#
本筆記整合推薦系統領域的經典書籍與專欄內容,主要參考項亮《推薦系統實踐》、王喆《深度學習推薦系統》、以及極客時間《推薦系統三十六式》一類專欄,並補充 BPR、Wide & Deep、DeepFM、DIN、YouTube DNN 等代表性論文與業界部落格的工程實踐。切入角度刻意把「演算法原理(algorithm)—工程實踐(engineering)—系統架構(system architecture)」三條軸線並排處理:每章既講模型怎麼推導、也談線上怎麼跑、為什麼選這個方案。相較於偏教科書或偏面試題庫的資源,本倉庫補上的是從召回到重排、從離線到線上的 end-to-end 鏈路取捨脈絡。
完整摘要#
全書十章、約 2800 行筆記,按「基礎—進階模型—系統與工程」三段式鋪陳。概論(01) 先定義推薦系統的本質(在用戶與物品之間建立連接)、漏斗式核心流程(召回 ➡️ 粗排 ➡️ 精排 ➡️ 重排)以及冷啟動、探索利用、解釋性三大常見問題,奠定後續章節的共同詞彙。使用者建模(02) 處理用戶畫像(user profile)、隱式回饋為主的行為資料、從標籤到 Embedding 的演進,以及基於內容的推薦冷啟動策略。協同過濾(03) 與矩陣分解(04) 是召回層的兩大基礎:前者比較 User-Based 與 Item-Based 的取捨、相似度計算與工程挑戰;後者從 SVD、隱因子模型、隱式回饋處理(ALS)一路推到 BPR(面向排序的損失)與 ANN 向量檢索(FAISS、HNSW)。Bandit(05) 切入探索與利用的權衡,從 ε-greedy、UCB、Thompson Sampling 到 LinUCB 等 Contextual Bandit,解決冷啟動與資訊繭房問題。排序模型(06) 與深度學習推薦(07) 對應精排層的演進:從 LR、GBDT、LR+GBDT、FM、FFM 到 Wide & Deep、DeepFM、雙塔模型(Two-Tower)、YouTube DNN、序列建模(DIN、Transformer 推薦),完整呈現工業界十年的模型演進史。系統架構(08) 整合前述模型成三層架構(線上 / 近線 / 離線),討論搜尋、推薦、廣告的架構統一與儲存選型;工程實踐(09) 補上資料採集、去重、即時推薦、實驗平台、服務化等落地細節;品質與安全(10) 收尾於評估指標、A/B 測試、推薦攻防、公平性與商業價值。各章透過「下一章」連結與交叉引用串接,例如 02 章的隱式回饋分類直接決定 03、04 章的模型選型,05 章的冷啟動方案回扣 01 章提出的問題。
適用情境與閱讀路徑#
主要讀者是具備機器學習(machine learning)基礎、想系統性建立推薦系統 end-to-end 視角的 ML 工程師、後端工程師與研究生,以及準備推薦系統面試或正要啟動推薦專案的團隊。建議路徑:新手依序讀 01 ➡️ 02 ➡️ 03 建立直覺;演算法工程師聚焦 03–07,理解模型演進與適用場景;系統工程師重點放在 08–09,理解召回 / 粗排 / 精排的分層落地與實驗平台;產品與評估視角則直接讀 10,掌握指標體系與風險。讀完應能在面對「為什麼選這個模型」「線上效果不如離線怎麼辦」「冷啟動怎麼破」等真實問題時,有結構化的判斷骨架。
知識架構總覽#
| 模組 | 說明 | 章節數 |
|---|---|---|
| 概論 | 推薦系統的角色與商業價值 | 1 |
| 使用者建模 | 行為日誌、特徵工程、使用者畫像 | 1 |
| 協同過濾 | User-based / Item-based / 矩陣分解前置 | 1 |
| 矩陣分解 | SVD、隱因子模型 | 1 |
| Bandit 演算法 | 探索 vs 利用、ε-greedy、UCB、Thompson | 1 |
| 排序模型 | LR / GBDT / Wide & Deep / DIN | 1 |
| 深度學習推薦 | 嵌入向量、Two-Tower、Transformer 推薦 | 1 |
| 系統架構 | 召回 / 粗排 / 精排 / 重排,線上服務化 | 1 |
| 工程實踐 | 特徵平台、A/B 測試、即時運算 | 1 |
| 品質與安全 | 評估指標、公平性、反作弊、隱私 | 1 |
閱讀建議#
- 新手:先讀 01-introduction、02-user-modeling、03-collaborative-filtering 建立直覺
- 演算法工程師:聚焦 03–07,理解模型演進與適用場景
- 系統工程師:聚焦 08-system-architecture、09-engineering,理解推薦系統的工程化挑戰
- 產品/評估:閱讀 10-quality-security,理解指標與風險
關聯倉庫#
- 演算法理論基礎 ➡️
algorithms-data-structures↗ - 系統設計脈絡 ➡️
infrastructure-architecture↗