因子分解機 是什麼?
Factorization Machines:因子分解機 的完整解釋
用低秩因子向量建模特徵間的二階交互作用,兼具線性模型的效率和特徵交互學習的能力。
核心概念
因子分解機(Factorization Machines)是一種通用的預測模型,既保留了線性模型的簡潔性和可解釋性,又引入了特徵交互學習的能力。其核心創新在於用因子向量表示特徵交互:不同於多項式特徵工程(例如 polynomial features)需要手工列舉或使用決策樹自動發現交互項,FM 透過因子分解自動學習。
FM 的關鍵優勢是參數共享。在高維稀疏特徵空間中,兩個特徵間的交互次數往往很少或為零。普通的二階多項式模型會產生數百萬個交互參數,但數據稀疏導致大多數參數無法有效學習。FM 則為每個特徵分配一個 k 維因子向量,交互強度由因子向量內積決定。這樣,即使特徵 i 和 j 無共同訓練樣本,系統也能透過它們各自因子向量與其他特徵的交互信號推斷出 <v_i, v_j>,實現了參數高效共享。
運作原理
FM 的預測函數包括三部分:全局偏差 w_0、線性項 Σ w_i × x_i,以及二階交互項 Σ_{i<j} <v_i, v_j> × x_i × x_j。其中 w_0 和 w_i 是標量,v_i 和 v_j 是 k 維向量。
計算的巧妙之處在於交互項的化簡。直接計算需要 O(n^2k) 時間,但通過代數技巧可改寫為:
Σ_{i<j} <v_i, v_j> × x_i × x_j = 1/2 × (||Σ_i v_i × x_i||^2 - Σ_i ||v_i||^2 × x_i^2)
這個化簡將複雜度降至 O(nk),使 FM 可高效處理高維數據。訓練時採用隨機梯度下降或牛頓法,參數更新涉及特徵值 x_i、因子向量 v_i 和已計算的統計量。
FM 易於擴展。為捕捉更高階交互,有高階 FM(FFM)對不同場景使用不同因子向量;還有 FM 結合神經網路的混合模型,如 Neural FM、DeepFM 等。
實際應用
因子分解機在推薦系統和點擊率預測中應用廣泛。騰訊的社交推薦使用 FM 預測用戶對內容的興趣。阿里巴巴的淘寶推薦同樣依賴 FM 進行 CTR 預測,其稀疏高維特徵集合正是 FM 的理想應用場景。
Facebook 的廣告系統使用 FM 變體進行廣告點擊預測,處理數百個特徵及其交互。Criteo 的 CTR 預測模型採用 FFM 和神經網路混合,在多個公開數據集上取得領先成績。電影、音樂、新聞推薦平台也廣泛採用 FM,因為其能高效處理類別、時間、上下文等多維特徵的組合。
常見誤區
許多人認為 FM 只能學習二階交互,但實際上高階 FM 可學習三階、四階交互,雖然計算複雜度相應增加。此外,FM 並未自動選擇哪些交互是有意義的,所有特徵對都被一視同仁,無關特徵間的交互同樣被建模,可能導致噪聲。
另一個誤區是認為 FM 消除了特徵工程的必要性。實際上,FM 只減少了特徵交互的人工組合工作,原始特徵的選擇、預處理、標準化仍需精心設計。高質量的特徵集合依然是 FM 性能的基石。此外,FM 對因子維度 k 敏感,k 過小無法充分捕捉交互,k 過大則過擬合,選擇 k 需要驗證集調優。
與相關技術的比較
- 與多項式特徵:多項式特徵手工列舉交互項,FM 自動學習;前者對特定交互建模精細,後者對稀疏特徵更高效
- 與決策樹:決策樹自動發現特徵交互但模型複雜,FM 提供簡潔的參數化交互建模
- 與深度神經網路:FM 顯式建模二階交互且計算高效,深度神經網路隱式學習多階非線性互動但參數眾多
- 與 FFM:FFM 為特徵對配置多組因子向量提升精度,代價是計算複雜度提升;FM 是計算效率與精度的經典權衡
- 與梯度提升決策樹:GBDT 通過樹的組合自動發現複雜互動,FM 顯式參數化交互,兩者常組合使用(GBDT+LR 架構)