FM和FFM模型是最近幾年提出的模型,憑借其在數據量比較大並且特征稀疏的情況下,仍然能夠得到優秀的性能和效果的特性
FM原理
經過One-Hot編碼之后,大部分樣本數據特征是比較稀疏的。例如,CTR/CVR預測時,用戶的性特征具有非零值。實際上,這種情況並不是此例獨有的,在真實應用場景中這種情況普遍存在。例如,CTR/CVR預測時,用戶的性別、職業、教育水平、品類偏好,商品的品類等,經過One-Hot編碼轉換后都會導致樣本數據的稀疏性。特別是商品品類這種類型的特征,如商品的末級品類約有550個,采用One-Hot編碼生成550個數值特征,但每個樣本的這550個特征,有且僅有一個是有效的(非零)。由此可見,數據稀疏性是實際問題中不可避免的挑戰。
One-Hot編碼的另一個特點就是導致特征空間大。例如,商品品類有550維特征,一個categorical特征轉換為550維數值特征,特征空間劇增。
同時通過觀察大量的樣本數據可以發現,某些特征經過關聯之后,與label之間的相關性就會提高。例如,“USA”與“Thanksgiving”、“China”與“Chinese New Year”這樣的關聯特征,對用戶的點擊有着正向的影響。換句話說,來自“China”的用戶很可能會在“Chinese New Year”有大量的瀏覽、購買行為,而在“Thanksgiving”卻不會有特別的消費行為。這種關聯特征與label的正向相關性在實際問題中是普遍存在的,如“化妝品”類商品與“女”性,“球類運動配件”的商品與“男”性,“電影票”的商品與“電影”品類偏好等。因此,引入兩個特征的組合是非常有意義的。
多項式模型是包含特征組合的最直觀的模型。在多項式模型中,特征xi和xj的組合采用xixj表示,即xi和xj都非零時,組合特征xixj才有意義。從對比的角度,本文只討論二階多項式模型。模型的表達式如下
其中,n代表樣本的特征數量,xi是第i個特征的值, w0、w1 、wij是模型參數。
然而,在數據稀疏性普遍存在的實際應用場景中,二次項參數的訓練是很困難的。其原因是,每個參數wij的訓練需要大量xi和xj都非零的樣本;由於樣本數據本來就比較稀疏,滿足“xi和xj都非零”的樣本將會非常少。訓練樣本的不足,很容易導致參數wij不准確,最終將嚴重影響模型的性能。
那么,如何解決二次項參數的訓練問題呢?矩陣分解
所有二次項參數wij可以組成一個對稱陣W(為了方便說明FM的由來,對角元素可以設置為正實數),那么這個矩陣就可
以分解為 W = VTV,V的第 j列便是第 j維特征的隱向量。換句話說,每個參數 wij = <vi, vj>,這就是FM模型的核心思想。因
此,FM的模型方程為(本文不討論FM的高階形式)
其中,vi是第 i維特征的隱向量,< , >代表向量點積。隱向量的長度為 k(k << n),包含 k個描述特征的因子。根據公式 ,
二次項的參數數量減少為kn個,遠少於多項式模型的參數數量。另外,參數因子化使得xhxi的參數和xixj的參數不再是相互獨立的,因此我們可以在樣本稀疏的情況下相對合理地估計FM的二次項參數。
具體來說,xhxi和 xixj的系數分別為 <xh, vi>和<vi, vj>,它們之間有共同項vi。也就是說,所有包含“ xi的非零組合特征”(存在某個j != i ,使得 xixj != 0)的樣本都可以用來學習隱向量 vi,這很大程度上避免了數據稀疏性造成的影響。而在多項式模型中,whi和 wij是相互獨立的
顯而易見,公式 是一個通用的擬合方程,可以采用不同的損失函數用於解決回歸、二元分類等問題,比如可以采用MSE(Mean
Square Error)損失函數來求解回歸問題,也可以采用Hinge/Cross-Entropy損失來求解分類問題。當然,在進行二元分類時,FM
的輸出需要經過sigmoid變換,這與Logistic回歸是一樣的。
直觀上看,FM的復雜度是 O(kn2) 。
但是通過下面的變換可以優化到O(kn)
FFM原理
通過引入field的概念,FFM把相同性質的特征歸於同一個field。
例,“Day=26/11/15”、“Day=1/7/14”、“Day=19/2/15”這三個特征都是代表日期的,可以放到同一個field中。
簡單來說,同一個categorical特征經過One-Hot編碼生成的數值特征都可以放到同一個field,包括用戶性別、職業、品類偏好等。
假設樣本的 n個特征屬於 f個field,那么FFM的二次項有nf個隱向量。而在FM模型中,每一維特征的隱向量只有一個。FM可以看作FFM的特例,是把所有特征都歸屬到一個field時的FFM模型。根據FFM的field敏感特性,可以導出其模型方程。
其中,fj是第 j個特征所屬的field。如果隱向量的長度為k ,那么FFM的二次參數有 nfk個,遠多於FM模型的 nk個。此外,由於隱向量與field相關,FFM二次項並不能夠化簡,其預測復雜度是O(kn2)。