FM(因子分解機系列)
FM(Factorization Machine)
引子
機器學習的通常模式為學習輸入到輸出的變換,比如最常見的線性迴歸模型,輸入為X,輸出為Y,通常輸入為高維資料,X是一個向量,形式如下:
線性迴歸是最簡單的線性模型,只能捕捉最簡單的一階線性關係,而且基於各特徵獨立同分布的假設。
實際中,各特徵
一般為了簡單,會只捕捉二階的關係,即特徵間兩兩相互影響的關係,如下:
這裡每兩個特徵有一個引數w要學習。
這裡仍有問題,對於二項式迴歸來說,如果有n個特徵,那麼要學習到兩兩之間的關係,有
同時,又由於實際資料會有稀疏性問題,有些特徵兩兩同時不為0的情況很少,當一個數據中任何一個特徵值為0的時候,那麼其他特徵與此特徵的相互關係將沒有辦法學習。
FM原理
受到矩陣分解的啟發,為了解決上述兩個問題,引入了因子分解機。
如果訓練的輸入資料有n個特徵,設i,j兩個特徵的相互關係用引數
none
…
缺失了對角線的矩陣,正因為如此,我們可以通過給對角線任意設定值來保證矩陣為半正定矩陣,自然想到了矩陣分解。
基於矩陣分解的思想,將以上矩陣分解為兩個低階矩陣的乘積,那麼在分解過程中,不僅僅減少了資料儲存的複雜度,而且多了一個特別神奇的功能,預測功能。
矩陣分解基於一個假設,即矩陣中的值等於學習到的兩個隱向量的乘積,即
這裡
那麼因子分解機的形式為:
其中,
通常,由於資料稀疏,本來
而且,一般隱向量維度k遠遠小於特徵數量n,那麼分解後要學習的引數數量為: