Introduction
在类似协同过滤的场景下,SVM的作用不如一些如PARAFA等直接进行矩阵因子分解的模型。
Why:
因为在含有大量稀疏数据的场景下,SVM不能从复杂的核空间中学到可靠的超平面。
FM的优点:
- 能在高维稀疏数据的场景下进行参数估计(SVM并不擅长)。
- 能关联变量间的相互作用。
- 线性的计算时间,线性的参数量
- 可以使用任意实数域的特征向量进行预测(其他因子分解模型对输入数据非常严格)
Prediction under sparsity
最普遍的CTR场景是通过训练集
D = { ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , . . . } D=\{(x^{(1)} ,y^{(1)}),(x^{(2)} ,y^{(2)}),...\} D={
(x(1),y(1)),(x(2),y(2)),...}
估计一个函数:
y : R n → T y:R^n \to T y:Rn→T
从 x ∈ R n x \in R^n x∈Rn特征向量映射到目标域 T T T
Factorization Machine Model
定义
y ^ ( x ) : = w 0 + ∑ i = 1 n w i x i + w ^ i , j x i x j \hat{y}(\boldsymbol x) := w_0 + \sum_{i=1}^{n}w_ix_i+\hat w_{i,j}x_ix_j y^(x):=w0+i=1∑nwixi+w^i,jxixj
可转化为:
y ^ ( x ) : = w 0 + ∑ i = 1 n w i x i + ∑ i = 1 n ∑ j = i + 1 n < v i , v j > x i x j \hat{y}(\boldsymbol x) := w_0 + \sum_{i=1}^{n}w_ix_i+\sum_{i=1}^{n}\sum_{j=i+1}^{n}<v_i,v_j>x_ix_j y^(x):=w0+i=1∑nwixi+i=1∑nj=i+1∑n<vi,vj>xixj
其中:
(1)
w 0 ∈ R , w ∈ R n , V ∈ R n × k w_0 \in \mathbb{R} ,\boldsymbol w \in \mathbb{R}^n,\boldsymbol V \in \mathbb{R}^{n \times k} w0∈R,w∈Rn,V∈Rn×k
(2)<·,·> 为两个K维向量的点乘(K为超参数)
< v i , v j > : = ∑ f = 1 k v i , j ⋅ v j , f <v_i,v_j> := \sum_{f=1}^{k}v_{i,j}·v_{j,f} <vi,vj>:=f=1∑kvi,j⋅vj,f
因为实践中通常没有足够数据去预估 W ^ \hat W W^因此K值选择数值较小的值。
(3)
w ^ i , j : = < v i , v j > \hat \boldsymbol w_{i,j} := <v_i,v_j> w^i,j:=<vi,vj>
代表第i个变量和第j个变量的相互关系(interaction),因为任意正定矩阵存在一个矩阵 V \boldsymbol V V令 W = V ⋅ V T \boldsymbol W = \boldsymbol V · \boldsymbol V^\mathrm{T} W=V⋅VT,因此使用因子分解后的 V V V进行转化。
推导
在数据非常稀疏的场景下,由于大部分特征 x i , x j x_{i},x_{j} xi,xj的值为0,因此很难直接求解出 W ^ \hat W W^,因此通过引入辅助变量 V i = ( v i 1 , v i 2 , . . . , v i k ) V_{i}=(v_{i1},v_{i2},...,v_{ik}) Vi=(vi1,vi2,...,vik)。
V = ( v 11 v 12 . . . v 1 k v 21 v 22 . . . v 2 k ⋮ ⋮ ⋮ v n 1 v n 2 . .