寬深學習 是什麼?
Wide and Deep Learning:寬深學習 的完整解釋
結合寬線性模型和深度神經網絡的混合機器學習架構,寬部分用於學習特徵組合,深部分用於學習高階特徵交互,常用於推薦系統和分類任務
核心概念
寬深學習解決了機器學習中的一個古老難題:線性模型與非線性模型的權衡。傳統方法需要進行二選一:要麼使用線性模型(易於理解、計算快速但表達能力有限),要麼使用深度神經網絡(表達能力強但難以解釋、容易過擬合)。寬深學習的創新之處在於「同時使用兩者」,讓兩種模型各司其職。
寬部分使用廣義線性模型(GLM),特別是帶特徵交叉的邏輯迴歸。它的優勢在於能有效記憶訓練資料中出現過的特定特徵組合。例如,在推薦系統中,「用戶 ID = 123 且應用類別 = 遊戲」這個特徵組合可以直接學到其權重。深部分使用多層全連接網絡或卷積網絡,通過多層非線性變換學習高階特徵表示。
運作原理
寬部分(Memorization Layer)
寬部分通常是一個邏輯迴歸模型,輸入為原始特徵和人工設計的特徵交叉(feature cross)。例如,對於用戶年齡、性別和興趣類別,寬部分可能會包括「年齡 AND 興趣」、「性別 AND 興趣」等交叉特徵。輸出為原始特徵和交叉特徵的加權和,經過 sigmoid 函數得到預測。
寬部分的特徵交叉必須手工設計。在推薦系統中,工程師需要根據業務知識判斷哪些特徵組合重要。寬部分對這些已知的、高頻的特徵組合有很強的記憶能力。
深部分(Generalization Layer)
深部分是多層前饋神經網絡。輸入為原始特徵和/或嵌入向量。例如,用戶 ID、應用 ID 等高維稀疏特徵先通過嵌入層轉換為稠密向量,再輸入深度網絡。深度網絡通過多層非線性變換自動學習複雜的特徵交互。
深部分沒有特徵交叉的限制,理論上能學習任意複雜的特徵組合。深部分對訓練資料中未出現過的特徵組合具有泛化能力。
融合層(Joint Training)
寬部分和深部分的輸出各自經過激活函數(如 sigmoid),然後相加或拼接後進入最終的輸出層。在二分類任務中,常見的融合方式是將兩部分的輸出相加,再經過 sigmoid:
output = sigmoid(wide_output + deep_output)
在訓練階段,寬部分和深部分的參數同時更新。寬部分使用 L1 或 L2 正則化防止過擬合。深部分使用 Dropout、批歸一化等技巧。
實際應用
Google Play 推薦:Google Play 商店用寬深學習預測用戶是否會安裝某個應用。寬部分記憶用戶過去安裝過的應用類別、安裝時間等特徵組合。深部分學習應用隱藏特徵(如應用品質、評分、下載量)與用戶隱藏興趣的交互。
廣告點擊率預測:線上廣告平台需要預測用戶是否會點擊廣告。寬部分記憶「特定用戶點擊特定廣告類型」的歷史模式。深部分學習用戶和廣告的隱藏表示,發現新的點擊機會。
電商推薦:寬部分記憶「購買過 A 類商品的用戶傾向於購買 B 類商品」等規律。深部分學習商品特徵(如材質、顏色、價格)與用戶隱藏偏好的關係。
搜尋引擎排名:搜尋結果排名結合了匹配信號(寬部分)和相關性信號(深部分)。寬部分確保查詢詞和文檔的完整匹配,深部分識別語義相關的文檔。
常見誤區
誤區 1:深度學習已經夠強大,寬部分是多餘的。深度網絡確實表達能力強,但在實務中,直接讓深度網絡學習已知的特徵組合往往不如寬部分高效。寬部分的線性組合方式是一種有效的歸納偏差(inductive bias)。
誤區 2:寬部分必須手工設計特徵交叉。雖然傳統做法需要手工設計,但現代系統可以自動生成候選交叉特徵,或用深度網絡學習的特徵重要性指導特徵交叉設計。
誤區 3:寬深學習適用於所有場景。寬深學習在推薦系統、分類任務上表現優異,但對於純迴歸、時間序列等問題,簡單模型可能足夠。寬深學習增加了模型複雜度和訓練成本。
誤區 4:寬和深可以獨立訓練後融合。寬深學習的關鍵是「聯合訓練」。如果分別訓練再融合,會失去梯度信息流通帶來的優化效果。
與相關技術的比較
寬深學習 vs. 純線性模型:純線性模型計算快速、易於解釋,但表達能力有限。寬深學習保留線性模型的優勢(記憶能力、可解釋性),補充深度網絡的泛化能力。
寬深學習 vs. 純深度網絡:純深度網絡表達能力強,但在訓練樣本有限、特徵交叉清晰的場景,可能不如寬深學習高效。深度網絡需要更多資料和計算資源才能達到相同性能。
寬深學習 vs. Gradient Boosting(如 XGBoost):兩者都是混合方法。Gradient Boosting 逐步訓練決策樹,寬深學習並行訓練線性和非線性模型。寬深學習更適合超大規模資料和分散訓練,Gradient Boosting 更適合中等規模資料和快速迭代。
寬深學習 vs. 因子分解機(Factorization Machines):因子分解機是一種線性模型的擴展,能自動學習特徵交叉。寬深學習同時使用顯式交叉(寬部分)和隱式交叉(深部分),更加靈活。寬深學習在大規模應用中計算效率更高。