甚麼是推薦系統?召回、排序、重排三層架構解析
推薦系統是一套從海量候選中挑選用戶最可能消費的少量內容之決策系統。業界主流方案是把召回、排序、重排三層串連:先把百萬級候選縮減至千級,再精確計算至百級,最後按照業務規則決定最終展示位置。
推薦系統的定義:從「人找資訊」到「資訊找人」
推薦系統(Recommender System)是一類資訊過濾系統:它綜合用戶行為、物品屬性及情境訊號,預測用戶對尚未消費內容的偏好程度,並按照預測值排序輸出。根據 Google 官方機器學習課程的說明,推薦模型透過分析物品之間的相似程度與用戶過往互動來預測偏好,常見的兩種形式是首頁個人化推薦及相關物品推薦(推薦系統總覽)。
它與搜尋的分界線在於「有沒有明確查詢詞」。搜尋是人找資訊:用戶以關鍵字表達意圖,系統進行相關性配對;推薦是資訊找人:沒有查詢詞,系統只能從過往行為推斷意圖。兩者底層共用相關性計算、索引結構及排序模型,在工程上經常採用同一套技術架構(電商搜尋與推薦一體化:從數據打通到協同優化)。
三類輸入決定推薦質素的上限:
- 行為訊號:曝光、點擊、加入購物車、收藏、購買、觀看時長、跳出——最密集,亦最接近真實偏好。
- 物品屬性:類別、價格帶、標題與圖文向量——決定冷啟動階段仍可推薦甚麼。
- 情境:時段、裝置、地區、工作階段內的先前行為——決定同一個人在首頁與詳情頁看到不同結果。
為甚麼必須分為三層:規模與延遲之間的矛盾
理論上,最佳做法是以最複雜的模型為整個資料庫內每個候選評分。現實中並不可行:候選規模與回應延遲是硬性限制。2003 年發表於 IEEE Internet Computing 的經典論文,其作者來自某全球電商企業,當中提供的數字至今仍具代表性——大型零售商往往有數千萬名客戶及數百萬件在售商品,而推薦結果必須在 0.5 秒內返回,同時確保推薦質素(Item-to-Item Collaborative Filtering 論文,2003)。
在 0.5 秒預算內,可以支援精確計算的候選量通常由千級至萬級,而候選庫則達百萬級。這正是三層架構存在的唯一原因:以低成本演算法快速縮小範圍,把昂貴運算資源留給少量高價值候選。
第一層:召回(Recall / Candidate Generation)
召回層的目標不是「準確」,而是「全面」:以低成本方法從百萬級候選中選出數百至數千件可能與用戶相關的物品,寧願多選,也不要遺漏用戶真正想要的物品。
主流召回方法分為四類:
- 協同過濾:包括 user-based 及 item-based。item-to-item 協同過濾是其中最經典的工程方案——離線計算物品相似度表,在線上按照用戶近期行為取得相似物品,複雜度與用戶數目無關,自然適合大型 catalog。
- 向量召回(雙塔/Embedding):把用戶及物品分別編碼成向量,以近似最近鄰檢索(ANN)在線上取得 Top-K。它解決協同過濾無法泛化至長尾及新物品的問題,是目前的主流方法。
- 矩陣分解與圖模型:ALS、BPR 等處理隱式回饋;圖神經網絡處理高階關係。
- 規則與後備方案:熱門榜、地區熱銷、新品庫、營運允許清單,用於確保覆蓋及可控性。
業界系統通常同時執行 5–20 路召回再加以融合。Google 課程明確指出,候選可以來自用戶特徵、熱門物品、社交圖譜等不同來源,隨後交由獨立模型統一評分(Retrieval(召回))。
召回層的考核指標是召回率@K,即真正被消費的物品有多少進入候選集,另加覆蓋率及回應延遲。
第二層:排序(Ranking / Scoring)
排序層取得千級候選後,以複雜模型預計每個候選的目標概率——點擊率(pCTR)、轉化率(pCVR)、觀看時長、GMV,再按照業務目標加權排序,輸出百級結果。
關鍵工程要點有三個:
- 特徵體系:用戶端(畫像標籤、長期/短期興趣)、物品端(價格、銷量、質素評分)、情境端(時段、裝置、工作階段),以及三者的交叉特徵。標籤體系的設計直接決定模型上限,詳見用戶標籤體系設計指南。
- 統一評分模型:Google 課程強調,以單一模型為不同召回來源評分,比直接比較各召回來源本身的分數更具可比性,亦更容易引入情境(Scoring(評分排序))。
- 位置偏差校正:展示位置本身會污染訓練樣本——較前的物品自然較容易獲點擊。正確做法是追求與位置無關的排序,例如把所有候選都視作處於第一位來評分。
模型演進路徑大致是:邏輯迴歸 → 梯度提升樹 + 邏輯迴歸 → 深度模型(DeepFM、DIN 等)→ 多目標學習(同時優化點擊與轉化)。考核指標包括 AUC、GAUC、NDCG。
第三層:重排(Re-ranking)
重排層處理的是「清單整體最佳」,而非「單項最佳」。它取得百級候選,在業務限制下生成最終展示次序。
常見方法:
- 硬性過濾:已購買項目去重、庫存為 0、類別不合規、地區不可銷售、內容安全審核不通過。
- 多樣性分散:限制同一類別/同一價格帶連續出現的次數,避免首頁被單一類別佔滿。
- 新鮮度與探索:為新品、低曝光物品提供探索流量,防止推薦系統陷入「越推越窄」的回饋循環。
- 分數轉換:Google 課程建議按照影片年齡、標題黨識別等標準轉換或過濾分數,並透過定期重新訓練及加入新數據來保持新鮮度(Re-ranking(重排))。
- 公平性與合規:監察不同群體的曝光分佈,避免模型放大既有偏差。
重排後的考核指標屬於清單層級:多樣性、新穎性、每名用戶平均停留時長、退貨率及長尾曝光比例。
三層架構比較表
| 維度 | 召回(Recall) | 排序(Ranking) | 重排(Re-ranking) |
|---|---|---|---|
| 輸入規模 | 百萬級整庫候選 | 千級候選 | 百級候選 |
| 輸出規模 | 千級 | 百級 | 展示位置(10–50) |
| 核心目標 | 覆蓋率、不遺漏 | 準確預計 | 清單整體價值最大化 |
| 延遲預算 | 10–30 ms | 30–80 ms | 5–20 ms |
| 典型方法 | itemCF、雙塔向量 ANN、熱門規則 | LR / GBDT+LR / DeepFM / 多目標 | 規則分散、分數轉換、DPP、序列重排 |
| 核心指標 | 召回率@K、覆蓋率 | AUC、GAUC、NDCG | 多樣性、停留時長、退貨率 |
| 常見失敗 | 多路召回高度重疊,覆蓋率下降 | 位置偏差未校正,推薦越來越偏 | 只優化單項 CTR,清單內容同質化 |
端對端延遲的硬性限制同樣來自 2003 年的論文:面對數千萬名客戶及數百萬件商品,推薦結果需要在 0.5 秒內返回。
案例:某家居用品跨境電商的三層改造
背景:某家居用品跨境電商平台,在售 SKU 約 120 萬,月活躍用戶約 300 萬,首頁及詳情頁均設有推薦位置。
問題:推薦位置 CTR 長期維持在 1.8%,推薦帶來的 GMV 佔比為 12%;首頁首 10 位經常出現 6 個以上同一類別的物品;P95 回應時間為 480 ms,接近逾時。
方案:重建為三層架構。召回路徑擴展為 itemCF、雙塔向量、地區熱銷三路融合;排序層以深度模型同時預計點擊及轉化;重排層加入類別分散、價格帶分層及庫存過濾。
階段行動:第 1–2 週補充追蹤點並清理樣本;第 3–5 週上線三路召回並驗收覆蓋率;第 6–8 週訓練排序模型並接入位置偏差校正;第 9–10 週上線重排策略;第 11–12 週進行 A/B 實驗及擴大流量。
結果(12 週後):推薦位置 CTR 從 1.8% 提升至 3.1%(+72%);推薦 GMV 佔比從 12% 提升至 19%;首頁首 10 位的平均類別數目從 2.1 提升至 3.4;P95 回應時間從 480 ms 降至 310 ms。
投資回報:3 人團隊投入 12 週,主要新增成本為向量檢索資料庫及訓練運算資源;增量收益在上線後第 2 個月已足以抵銷投入。
實施檢查清單與常見誤解
誤解一:一開始便更換大型模型。 當召回覆蓋率不足時,改用更深的排序模型收益極小。先量度召回率@K,再決定投入方向。
誤解二:只觀察 CTR。 單項 CTR 最佳化會導致清單同質化及長尾內容枯竭。必須同時監察多樣性與新穎性。
誤解三:忽略位置偏差。 如果不校正位置偏差,模型會把「放在較前位置」錯誤學習成「用戶喜歡」,上線後的推薦會越來越偏。
實施檢查清單:
- 建立召回率@K 基準,確認多路召回的重疊程度低於 40%
- 排序模型訓練樣本已進行位置偏差校正
- 重排層支援類別/價格帶分散,以及庫存與合規硬性過濾
- 端對端 P95 延遲維持在 500 ms 以內
- 新用戶與新物品均有獨立的冷啟動策略
- 指標儀表板同時包含單項指標(CTR/CVR)及清單指標(多樣性、長尾曝光)
常見問題
問:推薦系統與搜尋引擎的核心分別是甚麼?
答:核心分別在於是否有明確查詢詞。搜尋由用戶以關鍵字表達意圖,系統進行相關性配對,評核標準是「結果是否配合查詢」;推薦沒有查詢詞,只能從行為與情境推斷意圖,評核標準是「用戶是否會消費」。兩者底層共用索引及排序技術,因此經常以一體化方式建設。
問:召回與排序可以合併成一層嗎?
答:候選量較小,在萬級以下時可以合併,以單一模型為整個資料庫評分。但在百萬級候選及 0.5 秒延遲預算下並不可行:複雜模型的單次推理成本決定它只能處理千級候選,必須先以召回縮小範圍。這亦是 2003 年那篇經典論文已確立的工程限制。
問:SKU 只有數萬的小型團隊需要三層架構嗎?
答:需要保留分層概念,但可以簡化實現方式。召回層可以直接採用 itemCF 加熱門榜兩路;排序層使用梯度提升樹即可,毋須採用深度模型;重排層以規則分散作為起點。真正的分層界線應由「候選規模 ÷ 延遲預算」決定,而非團隊規模。
問:重排分散會否降低點擊率?
答:短期內,單項 CTR 通常會輕微下降,因為分散會犧牲熱門物品的連續曝光。但清單層級指標——每名用戶平均停留時間、瀏覽深度、長尾曝光、再次瀏覽率——往往會改善,長期 GMV 亦較高。正確做法是把重排視為多目標權衡,以 A/B 實驗決定分散強度,而非直接套用至所有流量。
問:冷啟動應在哪一層處理?
答:三層各有分工。召回層依靠內容相似度及規則庫(新品庫、地區熱銷),確保新物品有曝光機會;排序層以物品屬性特徵而非行為特徵作後備,避免新物品因缺乏過往數據而被評為低分;重排層為新物品保留固定探索配額。新用戶亦採用相同原則,先按情境及人口屬性作粗略推薦,再隨行為累積快速收斂。
參考來源
- Google 官方機器學習課程:推薦系統總覽——推薦模型的定義與兩種常見形式
- Google 官方機器學習課程:Retrieval(召回)——多路召回來源及統一評分
- Google 官方機器學習課程:Scoring(評分排序)——單一評分模型及位置偏差校正
- Google 官方機器學習課程:Re-ranking(重排)——重排階段的限制、新鮮度及公平性
- Item-to-Item Collaborative Filtering 論文,IEEE Internet Computing,2003——數千萬名客戶、數百萬件商品、0.5 秒返回限制
- ACM RecSys 2024 國際推薦系統大會——推薦系統領域的年度學術會議
關於通智雲
推薦系統是承接公域流量、提升私域轉化效率的關鍵技術,屬於通智雲關注的增長技術領域。通智雲(TENGENCE)是 AI 時代的企業增長引擎,專注公域引流獲客與私域轉化成交。
相關閱讀
立即行動