【每周一文】Factorization Machines

概述

在使用线性模型,例如LR模型时,特征工程是很大一块工作,有时为了产生较好的效果需要人工进行一些特征的二维或者三维交叉。FM(Factorization machines)提供了一种思路可以自动进行特征交叉,同时能够处理非常稀疏数据,线性时间复杂度,计算简单。
由于FM实现简单效果非常好,而且应用范围非常广,FM是近期非常火的技术,在比赛或者大公司都非常常见。

FM

FM优势

在正式介绍FM之前,首先介绍一下FM能够解决问题以及优点:
1. FM能够解决分类和回归问题
2. FM能够代替SVD、SVD++等进行矩阵分解
3. FM可以处理非常稀疏数据,此时SVM等模型会失效
4. FM线性时间复杂度,计算简单
5. FM可表示性较强,FM将模型参数表示为K维向量,向量之间可以交叉运算,即使两个交叉特征没有对应训练数据,也能表示出权重。

2维-FM模型

模型表示

对于2次特征交叉的FM模型可以表示为

y(x)=w0+i=1n(wixi)+i=1nj=i+1n(<vi,vj>xixj)
其中模型参数有 w0 为截距, wi 为一维特征权重, vi 为每一维度特征的分布式表示。
其中特征交叉权重计算为
<vi,vj>=f=1kvi,fvj,f
<script type="math/tex; mode=display" id="MathJax-Element-5"> =\sum_{f=1}^k v_{i,f}v_{j,f}</script>

模型计算优化

在整个模型中,计算复杂度比较高的是最后一项,优化如下

i=1nj=i+1n(<vi,vj>xixj)=12i=1nj=1n(<vi,vj>xixj)12i=1n<vi,vi>xixi=12(i=1nj=1nf=1k(vi,fvjfxixj)i=1nf=1k(vi,fvi,fxixi))=12f=1k((i=1nvi,fxi)(j=1nvj,fxj)i=1nv2i,fx2i)=12f=1k((i=1nvi,fxi)2i=1nv2i,fx2i)

相当于特征分布式表示中每一维度和特征进行求和平方和平方求和相减。

模型计算

采用SGD进行模型计算

θy(x)=1,xi,xinj=1vj,fxjvi,fx2i,if θ is w_0if θ is w_iif θ is vi,f

d-way FM

FM 还可以进行扩展d维特征交叉,计算相对比较复杂,而且多维交叉应用比较少。

FM应用

在很多应用中,FM可以取代常用模型并且能够取得不错效果,例如
1. FM - SVM,能够处理稀疏特征
2. FM - MF
3. FM - SVD++
4. FM - PITF
5. FM - FPMC
具体可以参考论文介绍。

总结

通过该论文学习,能够了解FM模型的基本形式以及FM能够解决那些问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值