FM算法(二):工程实现

主要内容: python

  1. 实现方法
  2. Python实现FM算法
  3. libFM

     

1、实现方法

一、FM模型函数

变换为线性复杂度的计算公式: git

二、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。 github

无论采用哪一种损失函数,咱们均可以经过随机梯度降低的方法来求解,以下: 算法

三、实现步骤

主要超参数有:初始化参数、学习率、正则化稀疏 函数

2、    Python实现FM算法

一、简介

下面经过一个简单的数据集和基于随机梯度降低的方法来实现FM算法(不加正则化),采用python语言。 工具

二、代码

地址:https://github.com/jizhihui/fm_python 学习

3、    libFM

  1. 简介

libFM是FM算法的开源实现工具,包含SGD、ALS、MCMC等实现方法(具体参考论文《Factorization Machines with libFM》),能够应用于回归和分类等问题。 优化

  1. 使用

  2. 数据格式:

    libFM支持libsvm的数据格式,即 label index:value index:value的形式 ui

2)使用方法(命令行): spa

./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

4、参考文献

一、《Factorization Machines with libFM》

相关文章
相关标签/搜索