推薦系統概述#

什麼是推薦系統#

推薦系統的本質是在用戶物品之間建立連接:

  • 用戶點擊了某個商品
  • 用戶收藏了某篇文章
  • 用戶購買了某個產品
  • 用戶關注了某個人

推薦系統的核心目標:利用已有的「用戶 - 物品」連接,預測未來可能產生的連接。

是否需要推薦系統#

不是每個產品都該做推薦系統。粗略的判斷標準:

價值 = ΔConnection / (ΔUser × ΔItem)
  • ΔConnection:新增的「用戶 - 物品」連接數
  • ΔUser、ΔItem:新增用戶數與新增物品數

當這個比值夠大、且用戶與物品數量都已成長到「人工編輯排不過來」的規模,推薦系統才會帶來實質回報。小規模平台靠人工精選往往更有效。

三種資訊取得方式#

方式特點代表產品
搜尋用戶主動,目標明確Google、Bing
推薦系統主動,發現興趣今日頭條、抖音
廣告為資訊找人,商業目標Facebook Ads

三者都在解決資訊過載問題,技術棧高度重疊(特徵工程、排序模型、A/B 測試),但目標和約束不同。

推薦系統的核心流程#

用戶請求 → 召回 → 粗排 → 精排 → 重排 → 展示

為什麼要分這麼多層? 因為候選集規模相差三到四個數量級。直接對百萬物品跑深度模型會撐爆延遲,所以用「便宜的方法快速縮小範圍 ➡️ 昂貴的方法精細排序」這種漏斗結構。

層次目標常用方法規模變化
召回高 recall,快速縮小候選協同過濾、向量召回、多路召回百萬 ➡️ 數千
粗排用輕量模型再篩一輪LR、輕量 DNN數千 ➡️ 數百
精排高 precision,預估 CTR/CVRGBDT、深度模型(DIN、DeepFM)數百 ➡️ 數十
重排滿足業務規則與多樣性MMR、規則打散、去重數十 ➡️ 數十

召回是「不要漏」,排序是「排得準」,重排是「整體看起來合理」。三者目標不同,所以模型也不同。

召回的三類訊號#

「多路召回」不是隨便堆演算法,而是用互相獨立的訊號去覆蓋不同的物品,彼此補盲:

訊號類型直覺代表方法解決什麼
行為訊號「人」的相似協同過濾、向量召回興趣發現
內容訊號「物」的相似TF-IDF、餘弦相似度新物品冷啟動
圖訊號「結構」的權威PageRank、熱度傳播高品質、趨勢
  • 內容訊號:對標題、標籤、描述算 TF-IDF(詞頻 × 逆文件頻率,凸顯有區辨力的詞),再用餘弦相似度(兩向量夾角的 cos 值,越接近 1 越像)找相似物品。新物品還沒有任何互動時,內容訊號是唯一能立刻用的召回路。
  • 圖訊號:把「用戶 ➡️ 物品」互動看成一張圖,重要性會沿著連結傳播(被越多高品質節點指到的物品越重要),這正是 PageRank 的核心思想,可用來召回「正在紅」「被權威背書」的物品。

兩大推薦範式#

幾乎所有召回與排序方法,骨子裡都落在兩種範式之一,兩者的強弱剛好互補:

範式依據強項弱點
協同過濾(Collaborative)用戶與物品的互動行為跨品類發現新興趣冷啟動差、無法處理新物品
內容式(Content-based)物品本身的特徵與元資料新物品立刻可推容易把用戶困在已知興趣

實務上幾乎都是混合:用協同過濾在召回層大量發現(覆蓋廣),用內容特徵在排序層精細化(處理新物品、補上下文)。後面章節的 CF(第 3 章)、矩陣分解(第 4 章)屬協同範式,用戶建模(第 2 章)的內容特徵屬內容範式。

從業務目標到 ML 目標#

推薦不是「把模型練準」就好,而是一條翻譯鏈:先把模糊的業務目標翻成可優化的 ML 目標,再翻成具體的損失函數。

業務目標(提升留存)→ ML 目標(最大化什麼?)→ 損失函數(優化什麼信號)

「最大化什麼」這一步決定了系統的行為,且代價昂貴:

  • 最大化 CTR ➡️ 容易養出標題黨
  • 最大化 觀看時長 ➡️ 偏向長內容、可能犧牲輕量內容
  • 最大化 明確定義的相關性(例如「點擊且看完 50% 或按讚」)➡️ 需要先把「相關」講清楚

所以第一件事是把目標信號定義成可量測的事件,再讓模型去學它。定義錯了,模型練得再準也是錯方向。

推薦系統的常見問題#

1. 冷啟動#

新用戶或新物品缺乏歷史資料,難以個人化。

類型解決方案
用戶冷啟動利用人口統計學特徵、引導用戶選擇興趣標籤
物品冷啟動基於內容的推薦、利用物品元資料

2. 探索與利用(Exploration vs Exploitation)#

只推薦用戶已知喜歡的內容會導致「資訊繭房」,需要平衡已知興趣(利用)和發現新興趣(探索)。

推薦策略 = α × 利用(已知興趣)+ (1-α) × 探索(潛在興趣)

詳細演算法見 第 5 章 Bandit

3. 推薦解釋性#

用戶需要知道「為什麼推薦這個給我」,增強信任感與接受度(例如「因為你看過 X」「你關注的人也按讚」)。

推薦系統的思維模式#

不確定性思維#

推薦系統處理的是機率問題:

  • 推薦結果不可能 100% 準確
  • 同樣的輸入可能產生不同的輸出(受時間、context、隨機探索影響)
  • 一切假設都要靠資料驗證

資料驅動#

核心原則:不要相信直覺,要相信資料。

  • 用戶說喜歡什麼不重要,用戶做了什麼才重要
  • A/B 測試是驗證改進效果的黃金準則

系統工程思維#

推薦系統不只是演算法,是一條從資料到變現的完整管線:

推薦系統 = 資料採集 + 特徵工程 + 模型訓練 + 線上服務 + 效果評估

任何一環的瓶頸都會卡住整體效果。

評估指標#

線下指標(離線評估模型)#

指標衡量
AUC排序能力
Logloss預估校準
Recall@K召回層覆蓋率
NDCG@K排序質量(考慮位置)

指標要對齊階段,否則會選錯模型。 召回層的目標是「不要漏」,用 Recall@K 評估(漏掉相關物品的代價最高);排序層的目標是「排得準」,用 NDCG@K 評估(位置越前、權重越高)。拿 AUC 去評召回、或拿 Recall 去評排序,離線分數會誤導線上決策。

線上指標(A/B 測試衡量真實效果)#

指標衡量
CTR點擊率
CVR轉換率(購買、訂閱)
人均停留時長用戶投入度
留存率是否會回來
GMV / Revenue商業價值

線下指標漲不代表線上指標漲。最終決策永遠看 A/B 測試。

推薦系統的產品形式#

形式說明範例
猜你喜歡首頁個人化推薦Amazon 首頁
相關推薦物品詳情頁的「看了又看」「買了又買」YouTube 影片右側列表
資訊流(Feed)社交動態流、資訊流、短影片流Facebook、抖音
排行榜熱門、新品、編輯精選App Store 排行榜

推薦系統的商業價值#

推薦系統是注意力的存儲與分配機制

  • 在資訊過載的時代,用戶的注意力是稀缺資源
  • 推薦系統用「投其所好」延長用戶停留
  • 再透過廣告、訂閱、電商佣金變現

對平台而言,推薦系統的商業價值來自三件事:提升留存、提升活躍、提升變現效率。後續所有技術選型都應該對應到這三件事其中之一。

總結#

要點說明
本質在用戶和物品之間建立連接
核心流程召回 ➡️ 粗排 ➡️ 精排 ➡️ 重排(漏斗結構)
常見問題冷啟動、探索利用、解釋性
思維模式不確定性、資料驅動、系統工程
評估線下看 AUC,線上看 CTR/留存/GMV,以 A/B 為準
商業價值留存、活躍、變現效率

下一章:用戶建模