Factorization Machines with libFM 论文阅读

Factorization Machines with libFM https://pan.baidu.com/s/1aAyhHGNSrZQFDfoz8VsHIQ

libFM网站:http://www.libfm.org/

libFM github地址:https://github.com/srendle/libfm

libFM manual中文版:http://d0evi1.com/libfm/

在MF的基础上,为了兼容MF模型不支持的非类别型(categorical)特征、自动组合线性模型的高阶特征,提出了FM:

  • 模型

 

目标label表示成各阶特征的线性组合。

文中也提到k<<p,因为FM为了用低维参数拟合高维稀疏数据。

等价表示为:

  •  快速预测

计算目标y时可简化二次项(参考FM初始论文https://pan.baidu.com/s/1MtqIJZSDa1WFJsMmrEua0g,符号略有变化):

时间复杂度O(kn^2) -> O(kn)

  • 参数学习

目标函数L2正则化

- SGD梯度下降算法:

向loss下降的方向每读一个样本走一小步。

 

- ALS/CD坐标下降算法:

每次读入所有样本并更新一个参数,令导数为0,结合公式6得到每步的最新取值:

cache策略:

ALS相对SGD:没有学习率,不做额外工作只能求解回归问题。

 

- MCMC马尔科夫链蒙特卡洛算法:

概率解释:

ALS和SGD都是参数的点估计。MCMC与ALS类似都是逐个维度优化参数,但是属Bayes派别,用采样方法(Gibbs采样)模拟出参数的分布。

超参数符号解释:

 

When comparing the conditional posterior of model parameters for MCMC (Eq. (30)) and the ALS solution (Eq. (22)), it can be seen that both are very similar, that is, θ ∗ = μ ̃ θ with α = 1 and μ· = 0. The difference is that MCMC samples from the posterior distribution, while ALS uses the expected value.

MCMC在后验分布上采样模拟后统计得到参数的估计值,而ALS是直接使用参数的数学期望求解。

MCMC方法有个优势是正则项可以作为超参数进入Bayes模型,用一个超先验参数决定超参数,从而避免对正则项调参。代价是引入了超先验参数及其分布。但是超先验参数少于正则项个数,而且最终效果受超先验参数的选择不敏感

参考文献 Bayesian Factorization Machines https://pan.baidu.com/s/1wkisL3VvzeY_7n2f3nDPwA

模型预测效果对超参数先验参数不敏感,经验较优值:

 

用MCMC在条件后验概率分布上采样:

 

 

 - 算法总结

三种算法比较:

新手建议先用最简单的MCMC。分解维度k初始设置低维,逐步调整初始方差init_stdev,分解维度k和迭代次数iter。

 

  • 试验评估

- Netflix challenge: rating prediction

 - recommendation

 

转载于:https://www.cnblogs.com/yaoyaohust/p/10225055.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值