机器学习面试必知:推荐算法FM

FM(Factorization Machine)模型是一种用于处理高维稀疏数据的通用预测模型,尤其在推荐系统中表现出色。它不仅能够捕捉线性关系,还能有效学习特征间的非线性交互,即使在特征高度稀疏的情况下也能良好工作。FM模型的目标函数包含线性项和交叉项,通过引入向量化交叉参数,可以学习到特征间复杂的交互关系。

传统的线性模型如LR中,每个特征都是独立的,如果需要特征与特征直接的交互作用,需要人工对特征进行交叉组合,例如核方法。但是在特征高度稀疏的情况下,并不能很好地进行学习。
很多分解模型Factorization model如矩阵分解MF,SVD++等,这些模型可以学习到特征之间的交互隐藏关系,但是每个模型都只适用于特定的输入和场景。
因此,在高度稀疏的数据场景下推荐系统FM(Factorization Machine)出现了。

FM模型目标函数y(x)=w0+∑i=1nwixi+∑i=1n∑j=i+1n&lt;vi,vj&gt;xixjy(x)=w_{0}+\sum_{i=1}^{n}w_{i}x_{i}+\sum_{i=1}^{n}\sum_{j=i+1}^{n}&lt;v_{i},v_{j}&gt;x_{i}x_{j}y(x)=w0+i=1nwixi+i=1nj=i+1n<vi,vj>xixj&lt;vi,vj&gt;&lt;v_{i},v_{j}&gt;<vi,vj>是输入特征i,j之间的交叉参数,vi和vjv_{i}和v_{j}vivj都是k维向量。

模型的计算复杂度O(kn)∑i=1n∑j=i+1n&lt;vi,vj&gt;xixj\sum_{i=1}^{n}\sum_{j=i+1}^{n}&lt;v_{i},v_{j}&gt;x_{i}x_{j}i=1nj=i+1n<vi,vj>xixj=12∑i=1n∑j=1n&lt;vi,vj&gt;xixj−12∑i=1n&lt;vi,vi&gt;xixi=\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}&lt;v_{i},v_{j}&gt;x_{i}x_{j}-\frac{1}{2}\sum_{i=1}^{n}&lt;v_{i},v_{i}&gt;x_{i}x_{i}=21i=1nj=1n<vi,vj>xixj21i=1n<vi,vi>xixi=12(∑i=1n∑j=1n∑f=1kvi,fvj,fxixj−∑i=1n∑f=1kvi,fvi,fxixi)=\frac{1}{2}(\sum_{i=1}^{n}\sum_{j=1}^{n}\sum_{f=1}^{k}v_{i,f}v_{j,f}x_{i}x_{j}-\sum_{i=1}^{n}\sum_{f=1}^{k}v_{i,f}v_{i,f}x_{i}x_{i})=21(i=1nj=1nf=1kvi,fvj,fxixji=1nf=1kvi,fvi,fxixi)=12∑f=1k((∑i=1nvi,fxi)2−∑i=1nvi,f2xi2)=\frac{1}{2}\sum_{f=1}^{k}((\sum_{i=1}^{n}v_{i,f}x_{i})^{2}-\sum_{i=1}^{n}v_{i,f}^{2}x_{i}^{2})=21f=1k((i=1nvi,fxi)2i=1nvi,f2xi2)

模型的应用

  • 回归模型,损失函数可以采用最小均方误差
  • 分类模型,损失函数可以采用hinge loss或者logit loss 或者softmax loss
  • 排序模型, 损失函数可以采用维pairwise loss

模型的学习
FM模型的w和v更新可以通过随机梯度下降法SGD进行

与多项式核SVM的区别
多项式核SVMy(x)=w0+2∑i=1nwixi+∑i=1nwi,i2xi2+2∑i=1n∑j=i+1nwi,j2xixjy(x)=w_{0}+\sqrt{2}\sum_{i=1}^{n}w_{i}x_{i}+\sum_{i=1}^{n}w_{i,i}^{2}x_{i}^{2}+\sqrt{2}\sum_{i=1}^{n}\sum_{j=i+1}^{n}w_{i,j}^{2}x_{i}x_{j}y(x)=w0+2i=1nwixi+i=1nwi,i2xi2+2i=1nj=i+1nwi,j2xixj可以看到虽然和FM模型的表达式很相似。区别在于SVM的二元特征交叉参数是独立的(比如wi,jw_{i,j}wi,j),而FM中的&lt;vi,vj&gt;和&lt;vi,vk&gt;&lt;v_{i},v_{j}&gt;和&lt;v_{i},v_{k}&gt;<vi,vj><vi,vk>不是独立的,而是相互影响的。
多项式SVM,交叉的多个特征需要在训练集上共现才能被学习到,否则该对应的参数为0,这样的话对于测试集上的情况而言就失去了意义。因此在稀疏的条件下,共现很难,整体性能表现不佳。而FM通过向量化的交叉,可以学习到不同特征之间的交互,进而提取到更深层次的抽象意义。
另外的区别还体现在

  1. FM可以在原始形式下进行优化学习,而基于kernel的非线性SVM通常在对偶形式下进行
  2. FM的模型预测是与训练样本独立的,而SVM与部分训练样本有关即支持向量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值