零售購買預測:又要記住舊規律,又要推測新組合,用哪個模型?
某零售企業在建置機器學習模型預測顧客購買機率時,資料同時包含大量稀疏類別特徵與數值型特徵。團隊希望模型既能學習過去已出現的特徵組合規律,也能對未出現的特徵組合作出合理預測。下列哪一種模型架構最適合此類需求?
某零售企業建置機器學習模型預測顧客購買機率,資料裡同時有大量稀疏類別特徵和數值型特徵。團隊有兩個需求:一是能學習過去已出現的特徵組合規律,二是對從沒出現過的特徵組合也能做出合理預測。
問你:同時滿足「學習過去規律」和「對未出現組合合理預測」這兩個需求,最適合用哪種模型架構?
一句話總結
同時要「記住已知特徵組合規律」和「推測未知組合」,寬深模型(Wide and Deep)是為此而生的:Wide 層負責記憶,Deep 層負責泛化,兩個能力合在一個架構裡。
先感受問題:舊顧客有規律,新組合要推測
假設你是「好物選」電商平台的 AI 工程師,正在建立購買預測模型。平台有 500 萬個商品、1000 萬個顧客。
業務問了你兩個問題:
「我們的老顧客有很固定的購買習慣,例如每次買了 A 品牌咖啡豆,三天後就會買濾紙。這種規律記得到嗎?」這是「記憶已知規律」的需求。
「但我們每個月都有新商品上架,沒有歷史購買組合。新顧客也有沒見過的行為模式。對這些從沒在訓練資料出現過的組合,模型能合理預測嗎?」這是「泛化推測未知」的需求。
這兩個需求在技術上是衝突的:只靠記憶(線性模型)就無法泛化;只靠深度學習泛化,又容易把老顧客的固定規律淡化掉。Wide and Deep 的設計,正是要同時解決這兩個問題。
單一模型的局限
「好物選」在採用 Wide and Deep 之前,嘗試過各種單一模型,每種都有明顯缺口:
- 線性模型(邏輯迴歸):擅長記憶特定特徵組合規律,但無法推測從未見過的組合,遇到新商品就束手無策
- 深度神經網路:泛化能力強,能對新組合作出合理預測,但容易把稀疏的老顧客固定規律「稀釋」,淡化了重要的記憶性規律
- 決策樹:對稀疏類別特徵效果差,樹的深度增加容易過擬合,無法有效處理百萬級稀疏特徵
- SVM:在高維稀疏特徵上計算成本極高,擴展到百萬級商品數量幾乎不可行
- 協同過濾:純粹依賴歷史互動,冷啟動問題(新商品、新用戶沒有歷史)無法解決
Wide and Deep:兩個分工,一個架構
「好物選」採用 Wide and Deep 模型後,兩個問題同時解決:
Wide 層(寬層):負責記憶。Wide 層是一個線性模型,接收已知的特徵組合(例如「咖啡豆 × 濾紙」這個特徵交叉)。對於歷史上反覆出現的固定規律,Wide 層能精確記住,不會因為訓練過深而淡化。
Deep 層(深層):負責泛化。Deep 層是一個多層神經網路,把稀疏類別特徵轉成低維 Embedding,再通過多層網路學習特徵之間的複雜關係。對於從未見過的新商品、新用戶組合,Deep 層能根據相似的 Embedding 做出合理預測。
聯合訓練:Wide 和 Deep 兩個部分同時訓練,最終輸出是兩者加權合併的結果,各自貢獻自己的強項。
這個架構由 Google 在 2016 年提出,廣泛應用於 Google Play 商店的 App 推薦,後來成為推薦系統和購買預測的標準架構之一。
這就是選項 D 為什麼正確:寬深模型(Wide and Deep)同時具備記憶已知規律和泛化推測未知組合的能力。
技術版:Wide and Deep 的設計哲學與應用場景
Wide and Deep 模型由 Google 在 2016 年提出(論文:Wide & Deep Learning for Recommender Systems),核心思想是「記憶(Memorization)和泛化(Generalization)的聯合學習」。
Wide 部分(記憶):本質是廣義線性模型,輸入是原始特徵和手工設計的特徵交叉(Cross Product Transformation)。優點:對於歷史上頻繁出現的特徵組合,能精確記憶其效應。
Deep 部分(泛化):本質是前饋神經網路(Feedforward Neural Network),輸入是類別特徵的 Embedding 向量和數值特徵。優點:通過低維 Embedding 把相似的特徵映射到相近的空間,對未見過的組合也能做合理推測。
聯合訓練(Joint Training):Wide 和 Deep 的輸出同時送進 Sigmoid 函數,聯合訓練意味著兩部分的梯度同時更新,不是分開訓練再合併。
適用場景:稀疏類別特徵多(商品 ID、用戶 ID)+ 需要同時記憶和泛化的推薦/預測任務,例如 App 推薦、商品推薦、廣告點擊率預測。
為什麼出題者要考這題:Wide and Deep 是現代推薦系統架構的代表,考驗考生能否根據業務需求(記憶 + 泛化)選擇合適的模型架構,而不是只靠名字猜測。
為什麼其他選項是錯的
A線性迴歸(Linear Regression)
找出特徵和目標之間的線性關係,預測連續型數值。用於分類時通常是邏輯迴歸(Logistic Regression)的形式。
線性模型擅長記憶已知規律(Wide 部分就是線性模型),但對「從未出現的特徵組合」無法合理泛化,無法學習特徵之間的非線性複雜關係。只解決了一半的需求。
知道線性模型可以處理稀疏特徵的人,但忽略了泛化能力這個需求。Wide and Deep 的 Wide 部分正是線性模型,但它只是整個架構的一半。
B決策樹(Decision Tree)
透過一連串的條件分支做預測,每個節點是一個判斷條件,葉節點是預測結果。
決策樹在高維稀疏類別特徵(百萬級商品 ID)上效果差,且難以對未見過的特徵組合泛化(只能預測訓練時見過的路徑)。雖然直觀,但不適合本題的需求規模。
覺得決策樹簡單好理解、什麼場景都能用的人。決策樹在結構化數值特徵上很好用,但對超高維稀疏類別特徵是弱點。
C支援向量機(Support Vector Machine, SVM)
找到能最大化分類邊距的超平面,對小樣本、高維空間的分類任務有很好的效果。
SVM 在訓練樣本數超過百萬時計算成本極高(O(n²) 到 O(n³)),不適合大規模電商數據。而且面對百萬級稀疏類別特徵,SVM 的效率遠不如神經網路。
記得「SVM 適合高維空間」的人。SVM 確實適合高維特徵,但前提是樣本數不能太多。百萬級樣本 + 百萬級特徵的場景,SVM 不是正確選擇。
同個考點下次怎麼變形
Wide and Deep 模型主要被 Google 用在什麼場景?
Wide and Deep 是誰發明的、用在哪裡?
Google 在 2016 年提出,最初應用於 Google Play 商店的 App 推薦系統。要解決的問題正是本題描述的:數百萬個 App(稀疏類別特徵)、需要同時記憶用戶的歷史偏好(記憶)和推薦用戶沒看過的新 App(泛化)。
Wide and Deep 的 Deep 部分為什麼要用 Embedding?
Deep 層直接接 One-hot 編碼的稀疏特徵不行嗎?
One-hot 編碼的稀疏向量(100 萬個商品 = 100 萬維向量)維度太高,直接輸入深層網路計算量爆炸且容易過擬合。Embedding 把高維稀疏向量壓縮成低維稠密向量(例如 64 維),相似商品的 Embedding 距離近,讓深層網路能有效學習關係,也能對未見過的商品泛化。
「記憶(Memorization)」和「泛化(Generalization)」在推薦系統中各指什麼?
這兩個詞是 Wide and Deep 論文的核心概念,要能解釋。
記憶:學習歷史數據中頻繁出現的特徵組合及其效應,例如「買了咖啡豆就會買濾紙」。泛化:透過特徵的低維表示,對訓練時未見過的新特徵組合做出合理預測,例如對新上架商品的推薦。兩者的平衡是推薦系統設計的核心挑戰。
稀疏類別特徵(Sparse Categorical Features)是什麼意思?
題目特別提到「稀疏類別特徵」,為什麼「稀疏」很重要?
稀疏的意思是:類別數量很多,但每筆資料實際用到的類別很少。例如電商有 100 萬個商品(100 萬個類別),但一個用戶只購買過其中幾十個(大部分是 0)。用 One-hot 表示的話,向量裡大部分是 0,只有少數幾個是 1,這就是「稀疏」。稀疏特徵對普通神經網路很難處理,Embedding 是標準解法。
如果只需要「泛化」不需要「記憶」,應該用哪種模型?
需求簡化了,Wide and Deep 還是最佳選擇嗎?
如果只需要泛化(對新組合預測),純深度神經網路(DNN)加 Embedding 就足夠,不需要 Wide 部分。Wide and Deep 的優勢在於「同時需要記憶和泛化」的場景。過度複雜的架構對只需要泛化的問題是多餘的工程成本。
想再往下看,這 5 個
- 推薦系統(Recommender System)本題情境的應用領域,Wide and Deep 模型正是為零售、電商推薦場景設計的架構
- 嵌入表示(Embedding)把高維稀疏類別特徵映射到低維稠密向量,是 Wide and Deep 深層(Deep 部分)的核心技術
- 協同過濾(Collaborative Filtering)基於用戶行為相似性的推薦方法,與 Wide and Deep 同為推薦系統主流,容易混淆
- 深度學習(Deep Learning)Wide and Deep 的 Deep 部分使用深度神經網路進行泛化,從嵌入向量學習複雜特徵交互
- 特徵工程(Feature Engineering)稀疏類別特徵的處理方式(如 One-hot、Embedding)屬於特徵工程,是推薦模型成效的關鍵前置步驟