FM算法(二):工程实现
主要內容:
實現方法
Python實現FM算法
libFM
?
一、實現方法
1、FM模型函數
變換為線性復雜度的計算公式:
2、FM優化目標
根據不同的應用,FM可以采用不同的損失函數loss function來作為優化目標,如回歸Regression:y^(x)直接作為預測值,損失函數可以采用least square error;二值分類Binary Classification:y^(x)需轉化為二值標簽,如0,1。損失函數可以采用hinge loss或logit loss;排序Rank:x可能需要轉化為pair-wise的形式如(X^a,X^b),損失函數可以采用pairwise loss。
不管采用哪種損失函數,我們都可以通過隨機梯度下降的方法來求解,如下:
3、實現步驟
主要超參數有:初始化參數、學習率、正則化稀疏
二、????Python實現FM算法
1、簡介
下面通過一個簡單的數據集和基于隨機梯度下降的方法來實現FM算法(不加正則化),采用python語言。
2、代碼
地址:https://github.com/jizhihui/fm_python
三、????libFM
簡介
libFM是FM算法的開源實現工具,包含SGD、ALS、MCMC等實現方法(具體參考論文《Factorization Machines with libFM》),可以應用于回歸和分類等問題。
使用
數據格式:
libFM支持libsvm的數據格式,即 label index:value index:value的形式
2)使用方法(命令行):
./libFM -method mcmc -task r -dim '1;1;8' -init_stdev 0.1 -iter 100 -test ml1m-test.libfm -train ml1m-train.libfm -out ml1m-test.pred
3)詳細
參考github上面的readme
四、參考文獻
1、《Factorization Machines with libFM》
總結
以上是生活随笔為你收集整理的FM算法(二):工程实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 挡风玻璃外面起雾怎么处理?
- 下一篇: 水稗草的功效与作用 水稗草的药用价值_中