FM的理解

本來想寫一些Factor Machine(FM)的理解,百度了下,發現有些帖子介紹的很詳細,所以只做一些總結。

1、FM可以說是LR的特徵組合的升級版本,LR只考慮了單個特徵的重要性,而FM考慮了兩兩特徵之間的重要性。

2、FM一般用於數據稀疏場景,比如分類變量0-1編碼(one-hot編碼)後的高度稀疏數據。

3、FM也是二項式多項式核的SVM版本的改進版本,SVM的多項式需要投影到高維空間,而FM直接在原空間計算。

4、FM可以求解稀疏數據兩兩特徵之間權重的原因:

(1)通過學習變量x_i的因向量v_i,進而學習到x_i和x_j之間w_ij的權重(v_i * v_j的點積求和).

(2)在優化算法求解參數v_i時,v_i的梯度和其他的所有特徵都有關聯,避免了x_i和x_j因稀疏直接相乘爲0的場景。

 

使用場景:

1、高維稀疏數據

2、變量交叉(組合)探索

 

時間複雜度:O(kn)

 

FM的完整函數形式(來自原始paper):

優化算法使用到的梯度形式:

 

可以使用的軟件:

1、fastFM:https://github.com/ibayer/fastFM

2、通過keras/tenforflow等神經網絡框架搭建指定優化器的梯度優化算法

 

-- over --

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章