【机器学习】因子分解机(Factorization Machine)原理与java实现


因子分解机(Factorization Machine)与 Logistic Regression算法Softmax Regression算法一样,都是基于概率的机器学习算法。不同的是,LR算法适用于线性二分类问题,SR算法适用于线性多分类问题,FM算法适用于非线性二分类问题。因为在因子分解机模型中,不仅包含了每个特征的线性权重,也包含了非线性的交叉项,利用矩阵分解的方法构造两个不同特征之间的相互关系(参考资料1)。

1、因子分解机原理

1.1、分离超平面

如上所述,因子分解机的分离超平面是非线性的,分离超平面公式有两部分组成,第一部分与Logistic Regression算法相同,第二部分是非线性的交叉项与对应的两个不同样本特征乘积的和。假设样本( { ( X 1 , y 1 ) , ( X 2 , y 2 ) , ⋯   , ( X n , y n ) } \left\{ {\left( { {X_1},{y_1}} \right),\left( { {X_2},{y_2}} \right), \cdots ,\left( { {X_n},{y_n}} \right)} \right\} { (X1,y1),(X2,y2),,(Xn,yn)})个数为 n n n,样本的特征个数为 m m m,则分离超平面为:

b + ∑ i = 1 m w i x i + ∑ i = 1 m − 1 ∑ j = i + 1 m ⟨ V i , V j ⟩ x i x j = 0 b + \sum\limits_{i = 1}^m { {w_i}{x_i} + \sum\limits_{i = 1}^{m - 1} {\sum\limits_{j = i + 1}^m {\left\langle { {V_i},{V_j}} \right\rangle {x_i}{x_j}} } } = 0 b+i=1mwixi+i=1m1j=i+1mVi,Vjxixj=0

假设系数矩阵为 V V V,其维度为 m × k m \times k m×k k k k是需要提前设定的模型超参数。系数矩阵中的每一行对应着一个样本特征, ⟨ V i , V j ⟩ {\left\langle { {V_i},{V_j}} \right\rangle } Vi,Vj表示特征 x i x_i xi x j x_j xj之间的相互关系。

对于每一个特征 X i X_i Xi引入一个系数向量 V i = ( v i , 1 , v i , 2 , ⋯   , v i , k ) {V_i} = \left( { {v_{i,1}},{v_{i,2}}, \cdots ,{v_{i,k}}} \right) Vi=(vi,1,vi,2,,vi,k)
系数矩阵为: V = [ v 1 , 1 v 2 , 1 ⋮ v m , 1 v 1 , 2 v 2 , 2 ⋮ v m , 2 ⋯ ⋯ ⋱ ⋯ v 1 , k v 2 , k ⋮ v m . k ] V = \left[ {\begin{array}{} {\begin{array}{} { {v_{1,1}}} \\ { {v_{2,1}}} \\ \vdots \\ { {v_{m,1}}} \end{array}}&{\begin{array}{} { {v_{1,2}}} \\ { {v_{2,2}}} \\ \vdots \\ { {v_{m,2}}} \end{array}}&{\begin{array}{} {\begin{array}{} \cdots \\ \cdots \\ \ddots \\ \cdots \end{array}}&{\begin{array}{} { {v_{1,k}}} \\ { {v_{2,k}}} \\ \vdots \\ { {v_{m.k}}} \end{array}} \end{array}} \end{array}} \right] V=v1,1v2,1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值