本來想寫一些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 --