排序模型在工业界已经有了很长时间的历史,从基于策略规则的人工指定特征权值开始,发展到LR线性模型,LR+GBDT半自动特征组合模型,再到FM自动二阶特征组合模型及深度学习模型等不断发展。其中FM系列模型占据比较重要的位置,本篇文章就FM模型进行分析和总结。
FM系列模型2——DeepFM及python(DeepCTR)实现
1,概述
在机器学习中,预测是一项基本的任务,所谓预测就是估计一个函数,该函数将一个n维的特征向量x映射到一个目标域T:
D = { ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , . . . , ( x ( N ) , y ( N ) ) } D =\{(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(N)},y^{(N)})\} D={
(x(1),y(1)),(x(2),y(2)),...,(x(N),y(N))}
在传统的线性模型中,每个特征都是独立的,如果需要考虑特征与特征之间的相互作用,可能需要人工对特征进行交叉组合。非线性SVM可以对特征进行核变换,但是在特征高度稀疏的情况下,并不能很好的进行学习。由于推荐系统是一个高度系数的数据场景,由此产生了FM系列算法,包括FM,FFM,DeepFM等算法。
推荐系统中还有一个比较重要的因素就是速度,比如容易并行,可解释、可拓展,这就是LR在工业界比较流行的原因之一。我们先回顾下线性模型和逻辑回归模型。
线性回归
y ^ ( x ) = w 0 + w 1 x 1 + w 2 x 2 + . . . + w n x n = w 0 + ∑ j = 1 n w i x i \begin{aligned} \hat{y}(x) = & w_0 + w_1x_1 + w_2x_2 + ...+ w_nx_n\\ =&w_0 + \sum_{j=1}^nw_ix_i \end{aligned} y^(x)==w0+w1x1+w2x2+...+wnxnw0+j=1∑nwixi
逻辑回归
核心函数:
h θ ( x ) = 1 1 + e − θ x h_{\theta}(x) = \frac{1}{1+e^{-\theta x}} hθ(x)=1+e−θx1
对于一个样本:
P ( y = 1 ∣ x , θ ) = h θ ( x ) P ( y = 0 ∣ x , θ ) = 1 − h θ ( x ) \begin{aligned} P(y=1|x,\theta) =& h_{\theta}(x)\\ P(y=0|x,\theta) = &1-h_{\theta}(x) \end{aligned} P(y=1∣x,θ)=P(y=0∣x,θ)=hθ(x)1−hθ(x)
那么进一步,样本x的概率表示为:
P ( y ∣ x ; θ ) = ( h θ ( x ) ) y ( 1 − h θ ( x ) ) 1 − y P(y|x;\theta)=(h_{\theta}(x))^y(1-h_{\theta}(x))^{1-y} P(y∣x;θ)=(hθ(x))y(1−hθ

本文深入探讨了FM模型及其在工业界的广泛应用,从线性模型的局限性出发,介绍了FM模型如何通过引入辅助向量来解决特征交叉组合的问题,特别是在高度稀疏数据场景下的优势。同时,文章对比了FM与FFM模型的区别,详细讲解了FFM模型如何通过引入field概念来更细致地刻画特征关系,以及在Python环境下如何使用xlearn库实现FM和FFM模型。
最低0.47元/天 解锁文章
557





