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

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

FM模型目标函数 y ( x ) = w 0 + ∑ i = 1 n w i x i + ∑ i = 1 n ∑ j = i + 1 n &lt; v i , v j &gt; x i x j y(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; v i , v j &gt; &lt;v_{i},v_{j}&gt; <vi,vj>是输入特征i,j之间的交叉参数, v i 和 v j v_{i}和v_{j} vivj都是k维向量。

模型的计算复杂度O(kn) ∑ i = 1 n ∑ j = i + 1 n &lt; v i , v j &gt; x i x j \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 = 1 2 ∑ i = 1 n ∑ j = 1 n &lt; v i , v j &gt; x i x j − 1 2 ∑ i = 1 n &lt; v i , v i &gt; x i x i =\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 = 1 2 ( ∑ i = 1 n ∑ j = 1 n ∑ f = 1 k v i , f v j , f x i x j − ∑ i = 1 n ∑ f = 1 k v i , f v i , f x i x i ) =\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) = 1 2 ∑ f = 1 k ( ( ∑ i = 1 n v i , f x i ) 2 − ∑ i = 1 n v i , f 2 x i 2 ) =\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的区别
多项式核SVM y ( x ) = w 0 + 2 ∑ i = 1 n w i x i + ∑ i = 1 n w i , i 2 x i 2 + 2 ∑ i = 1 n ∑ j = i + 1 n w i , j 2 x i x j y(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+2 i=1nwixi+i=1nwi,i2xi2+2 i=1nj=i+1nwi,j2xixj可以看到虽然和FM模型的表达式很相似。区别在于SVM的二元特征交叉参数是独立的(比如 w i , j w_{i,j} wi,j),而FM中的 &lt; v i , v j &gt; 和 &lt; v i , v k &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与部分训练样本有关即支持向量
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
国信证券通过机器学习技术,研究了SVM(支持向量机)算法在选股方面的应用,以及Adaboost(自适应增强)算法在股票预测中的增强效果。 首先,SVM算法在选股中发挥了重要作用。SVM是一种监督学习算法,通过将样本映射到高维空间来构建一个最优的超平面,从而实现对未知样本的分类。在选股方面,SVM可以使用历史股票数据作为输入,通过对不同特征的权重进行学习和调整,找到最佳投资组合。通过对大量数据进行分析和训练,SVM算法能够提供准确的选股建议,并在实际投资中取得不错的效果。 其次,Adaboost算法在股票预测中的增强效果显著。Adaboost是一种集成学习算法,它通过串行训练多个弱分类器,并根据前一个分类器的错误率来调整下一个分类器的权重。这样,每个分类器都专注于之前分类器未正确分类的数据,从而提高整体预测的准确性。在股票预测中,Adaboost可以通过选择适当的特征和调整分类器的权重,对市场走势进行有效的预测。通过多层次的学习和调整,Adaboost能够提高选股策略的稳定性和盈利能力。 综上所述,国信证券利用机器学习中的SVM算法和Adaboost算法,实现了在选股和股票预测中的研究和应用。这些算法通过对数据的分析和学习,为投资者提供了准确的选股策略和市场走势预测,有望为投资者带来更好的投资回报。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值