因子分解機FM原理及SGD訓練

2021-08-07 18:34:44 字數 1435 閱讀 3017

目錄(?)

[-]

背景模型

用途交叉項係數

sgd求解引數

steffen rendle於2023年提出factorization machines(下面簡稱fm),並發布開源工具libfm。fm的提出主要對比物件是svm,與svm相比,有如下幾個優勢 

(1)對於輸入資料是非常稀疏(比如自動推薦系統),fm可以,而svm會效果很差,因為訓出的svm模型會面臨較高的bias。 

(2)fms擁有線性的複雜度, 可以通過 primal 來優化而不依賴於像svm的支援向量機。

2-way fm(degree = 2)是fm中具有代表性,且比較簡單的一種。就以其為例展開介紹。其對輸出值是如下建模

其中,k是定義factorization維度的超引數,是正整數

因子分解機fm也可以推廣到高階的形式,即將更多互異特徵分量之間的相互關係考慮進來。

(1)回歸問題(regression):可以採用最小均方誤差作為優化的標準(深入理解可以從高斯分布、極大似然估計入手) 

(2)二分類問題(binary classification):利用sigmoid函式。詳細原因見 位址

(3)排序(ranking)

(1)示例

樣本資料 

fm交叉項係數 

(2)求解

表面上看fm模型的第3項的計算複雜度為o(kn^2),但其實可以經過簡單的數學處理,計算複雜度降為o(kn)。

數學原理:主要是採用了如公式((a+b+c)2−a2−b2−c2求出交叉項

隨機梯度下降與梯度下降主要差別在於batch size不一樣

注:大家可以根據自己需要定義loss function,通過梯度下降得到引數更新的公式

最初的v通過正態分佈的形式給出 

所示**是通過簡單的似然估計進行二分類從而進行引數更新 

後續會更新利用ftrl訓練fm

參考文獻 

(1)steffen rendle.factorization machines 

(2)steffen rendle.factorization machines with libfm 

(3)

因子分解機 FM

人工方式的特徵工程,通常有兩個問題 針對上述兩個問題,廣度模型和深度模型提供了不同的解決思路。廣度模型包括fm ffm等大規模低秩 low rank 模型,fm ffm通過對特徵的低秩展開,為每個特徵構建隱式向量,並通過隱式向量的點乘結果來建模兩個特徵的組合關係實現對二階特徵組合的自動學習。作為另外...

特徵組合之因子分解機 FM

1.為什麼需要因子分解機?核心 對於因子分解機fm來說,最大的特點是對於稀疏的資料具有很好的學習能力。2.什麼是fm因子分解機?fm因式分解機是一種基於lr模型的高效的學習特徵間相互關係的模型。一般的線性回歸模型 度為2的因子分解機,這裡的度指的是特徵組合的度 與線性模型相比,因子分解機多了後面的特...

N 分解素因子及若干問題

將n!表示成 n p1 t1 p2 t2 pi ti pk tk 其中p1,p2 pk是素數,1顯然很容易通過素數篩選求出pi,因為1我們先來看一下對於2這個素因子,把n!分成兩部分,即奇偶兩部分 假設n是偶數 n!1 2 3 4 5 n 2 4 6 1 3 5 因為有n 2個偶數,所以偶數部分可以...