特徵組合之因子分解機 FM

2021-09-01 11:39:11 字數 1502 閱讀 8210

1. 為什麼需要因子分解機?

核心:對於因子分解機fm來說,最大的特點是對於稀疏的資料具有很好的學習能力。

2.什麼是fm因子分解機?

fm因式分解機是一種基於lr模型的高效的學習特徵間相互關係的模型。

一般的線性回歸模型:

度為2的因子分解機,這裡的度指的是特徵組合的度

與線性模型相比,因子分解機多了後面的特徵組合項

3.fm的推導

fm是將簡單的線性模型加上特徵組合項,增強學習模型的複雜度和學習能力。所以引入交叉項後如下:

因為兩兩之間作組合,所以特徵組合部分一共 (n-1)+(n-2)+…+1=(n-1)n/2項。

但是在資料很稀疏的情況下,滿足xi, xj都不為0的情況非常少,這樣將導致ωij無法通過訓練得出,無法對相應的引數進行估計。

核心思想: wij的稀疏導致訓練效率極其低下,用來逼近擬合wij。

這裡採用的方式是:對每乙個特徵分量xi引入輔助向量vi,vj進行估計。

注:這裡的v是隱向量

因子機分解模型中,作者通過借鑑了矩陣分解的思想,對權值矩陣進行低秩約束表達: ,將每一維特徵分解為k維隱向量,這裡的k是超引數,是需要使用者自己訓練調參的,k實踐中,也是去看特徵隱向量相乘後看交叉項引數的大小,來看交叉項特徵對模型的貢獻這樣帶來的好處有:1、訓練的交叉項引數從n*(n-1)/2降低到了n*k個,提高了模型訓練效率;另外,也降低了模型交叉項學習不充分的影響;

2、交叉項的引數將分別通過對應兩個特徵的隱向量的內積得到,一些在新資料中出現的交叉項特徵也能進行**,提公升了模型**能力。

所以求解交叉項:

對於最終的fm運用sgd可以得到;

fm介紹2

fm,ffm,deepfm

因子分解機 FM

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

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

目錄 背景模型 用途交叉項係數 sgd求解引數 steffen rendle於2010年提出factorization machines 下面簡稱fm 並發布開源工具libfm。fm的提出主要對比物件是svm,與svm相比,有如下幾個優勢 1 對於輸入資料是非常稀疏 比如自動推薦系統 fm可以,而s...

機器學習之特徵組合 特徵交叉

特徵交叉是資料特徵的一種處理方式,通過特徵組合的方式增加特徵的維度,以求得更好的訓練效果。在實際場景中,我們常常遇到這要的情況,線性分類起無法在如下樣本中 無法畫一條直線將下列黃點和藍點分開 所以特徵組合是一種讓線性模型學習到非線性特徵的方式 例如在廣告模型中用到了大量的特徵組合,因為lr是廣告推廣...