FM演算法(Factorization Machine)
因子分解機(Factorization Machine, FM)是由Steffen Rendle提出的一種基於矩陣分解的機器學習演算法。目前,被廣泛的應用於廣告預估模型中,相比LR而言,效果強了不少。
一、FM背景
FM(Factorization Machine)主要目標是:解決資料稀疏的情況下,特徵怎樣組合的問題。以一個廣告分類的問題為例,根據使用者畫像、廣告位以及一些其他的特徵,來預測使用者是否會點選廣告(二分類問題)。資料如下:
Clicked?是分類值,表明使用者是否點選了此廣告。1表示點選,0表示未點選。而Country,Day,Ad_type則是Categorical特徵
將上面的離散特徵資料進行one-hot編碼以後(假設Country,Day,Ad_type類別只有圖中幾種),如下圖所示
顯然可以看出,特徵從最初的3個變成了現在的7個。而實際工程當中,由於有的Categorical特徵維度會非常大(比如地區等),如果採用One-Hot編碼,那麼網際網路公司的動輒上億個特徵的資料集就是這麼來的了。
因式分解機是一種基於LR模型的高效的學習特徵間相互關係,
對於因子分解機FM來說,最大的特點是對於稀疏的資料具有很好的學習能力。
二、FM優點
① FMs allow parameter estimation under very sparse data where SVMs fails.
② **FMs have linear complexity,**can be optimized in the primal and do not rely on support vectors like SVMs.
(在FM模型的複雜度是線性的,優化效果很好,而且不需要像SVM一樣依賴於支援向量。)③ FMs are a general predictor that can work with any real valued feature vector. In contrast to this, other state-of-the-art factorization models work only on very restricted input data.
(FM是一個通用模型
三、FM模型
在一般的線性模型中,是各個特徵獨立考慮的,沒有考慮到特徵與特徵之間的相互關係。但實際上,大量的特徵之間是有關聯的。最簡單的以電商為例,一般女性使用者看化妝品服裝之類的廣告比較多,而男性更青睞各種球類裝備。那很明顯,女性這個特徵與化妝品類服裝類商品有很大的關聯性,男性這個特徵與球類裝備的關聯性更為密切。如果我們能將這些有關聯的特徵找出來,顯然是很有意義的。
一般的線性模型為(
對於度為2的因子分解機(FM)的模型為:
其中,
與線性模型相比,FM的模型就多了後面特徵組合的部分。
四、FM求解
在基本線性迴歸模型的基礎上引入交叉項,如下:
組合部分的特徵相關引數共有
這裡,採用的方法是:對每一個特徵分量
令
則
這就對應了一種矩陣的分解。對
下面,求