因子分解機(Factorization Machines)是什麼?

用低秩因子向量建模特徵間的二階交互作用,兼具線性模型的效率和特徵交互學習的能力。|本頁含完整原理、應用場景、iPAS 考試重點與 3 個常見問答。

英文
Factorization Machines
主題標籤
推薦系統、機器學習、深度學習
考點定位
非 iPAS 核心術語
最後更新
2026/07/30
因子分解機(Factorization Machines)是什麼? 推薦系統機器學習
術語快查

搜尋意圖: 如果你在找「因子分解機 是什麼」或「因子分解機 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。

TL;DR: 用低秩因子向量建模特徵間的二階交互作用,兼具線性模型的效率和特徵交互學習的能力。

實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。

下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。

用低秩因子向量建模特徵間的二階交互作用,兼具線性模型的效率和特徵交互學習的能力。

核心概念

因子分解機(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 架構)

常見問題

為什麼因子分解機能在稀疏高維特徵空間中有效學習特徵交互,而普通的二階多項式模型則不行?

普通二階多項式模型為每個特徵對 (i,j) 分配獨立的交互參數 w_ij,總數達到 O(n^2)。在稀疏數據中,大多數特徵對幾乎不會同時出現,導致對應參數無法有效學習,參數值隨機波動。FM 則為每個特徵分配因子向量 v_i,交互通過 <v_i, v_j> 計算。關鍵是參數共享:即使特徵 i 和 j 無共同樣本,它們分別與其他特徵 k 的交互信號(<v_i, v_k>、<v_j, v_k>)也能幫助估計 v_i 和 v_j,進而推斷 <v_i, v_j>。這是低秩近似的威力:高維交互矩陣可由低秩因子乘積逼近,參數複雜度從 O(n^2) 降至 O(nk),使稀疏數據也能有效訓練。

因子分解機的因子維度 k 如何選擇?維度太小或太大會有什麼後果?

k 的選擇是 FM 的關鍵超參數,直接影響特徵交互建模的精度。k 過小時,因子向量表達能力不足,無法充分捕捉特徵間的複雜交互,導致模型欠擬合,預測精度低。k 過大時,模型參數增多(O(nk)),在稀疏數據上易過擬合,學習到噪聲而非真實交互模式。選擇 k 通常透過交叉驗證進行,在小範圍(如 2-128)內測試,選擇測試集精度最高的值。實務經驗表明:k 取值範圍通常為 4-16(用於文本、稀疏特徵),或 20-100(用於密集特徵或大規模數據)。此外,可根據特徵維度和數據量調整,特徵數多或數據量大時適當提高 k。監測驗證集精度,當 k 增加不再改善時停止,避免不必要的計算開銷。

深度因子分解機(DeepFM)相比普通 FM 有什麼改進,為什麼需要結合深度學習?

普通 FM 顯式學習二階特徵交互,難以捕捉更高階的複雜非線性互動。例如,用戶偏好可能取決於多個特徵(年齡、地點、時間、設備類型)的共同作用,不僅是兩兩交互。DeepFM 結合 FM 和深度神經網路:FM 部分保留對淺層二階交互的建模,神經網路部分則通過多層隱藏層學習高階交互。兩部分共享底層特徵嵌入,聯合訓練。這樣既保留了 FM 對二階交互的顯式建模和計算高效性,又獲得了深度網路對複雜非線性互動的學習能力。實驗表明 DeepFM 在 CTR 預測上明顯優於單純 FM 或單純深度模型,代表了淺層和深層方法的有機結合。