Introduction
在類似協同過濾的場景下,SVM的作用不如一些如PARAFA等直接進行矩陣因子分解的模型。
Why:
因爲在含有大量稀疏數據的場景下,SVM不能從複雜的核空間中學到可靠的超平面。
FM的優點:
- 能在高維稀疏數據的場景下進行參數估計(SVM並不擅長)。
- 能關聯變量間的相互作用。
- 線性的計算時間,線性的參數量
- 可以使用任意實數域的特徵向量進行預測(其他因子分解模型對輸入數據非常嚴格)
Prediction under sparsity
最普遍的CTR場景是通過訓練集
D={(x(1),y(1)),(x(2),y(2)),...}
估計一個函數:
y:Rn→T
從x∈Rn特徵向量映射到目標域T
Factorization Machine Model
定義
y^(x):=w0+i=1∑nwixi+w^i,jxixj
可轉化爲:
y^(x):=w0+i=1∑nwixi+i=1∑nj=i+1∑n<vi,vj>xixj
其中:
(1)
w0∈R,w∈Rn,V∈Rn×k
(2)<·,·> 爲兩個K維向量的點乘(K爲超參數)
<vi,vj>:=f=1∑kvi,j⋅vj,f
因爲實踐中通常沒有足夠數據去預估W^因此K值選擇數值較小的值。
(3)
w^i,j:=<vi,vj>
代表第i個變量和第j個變量的相互關係(interaction),因爲任意正定矩陣存在一個矩陣V令W=V⋅VT,因此使用因子分解後的V進行轉化。
推導
在數據非常稀疏的場景下,由於大部分特徵xi,xj的值爲0,因此很難直接求解出W^,因此通過引入輔助變量Vi=(vi1,vi2,...,vik)。
V=⎝⎜⎜⎜⎛v11v21⋮vn1v12v22⋮vn2.........v1kv2k⋮vnk⎠⎟⎟⎟⎞n×k=⎝⎜⎜⎜⎛v1v2⋮vn⎠⎟⎟⎟⎞
因此:
W^=V⋅VT=⎝⎜⎜⎜⎛v1v2⋮vn⎠⎟⎟⎟⎞⋅(v1Tv2T...vnT)
求解i=1∑nj=i+1∑n<vi,vj>xixj
由於
i=1∑nj=i+1∑n<vi,vj>xixj=⎝⎜⎜⎜⎛<v1,v1>x1x1<v2,v1>x2x1⋮<vn,v1>xnx1<v1,v2>x1x2<v2,v2>x2x2⋮<vn,v2>xnx2<v1,v3>x1x3<v2,v3>x2x3⋮<vn,v3>xnx3.........<v1,vk>x1xk<v2,vk>x2xk⋮<vn,vk>xnxk⎠⎟⎟⎟⎞n×k
即∑i=1n∑j=i+1n<vi,vj>xixj爲上述實對稱矩陣去除主對角線的上三角(紅色部分)。
設該上三角爲A=i=1∑nj=i+1∑n<vi,vj>xixj
2A+i=1∑n<vi,vj>xixi=i=1∑nj=1∑n<vi,vj>xixj
2A=i=1∑nj=1∑n<vi,vj>xixj−i=1∑n<vi,vj>xixi
A=21i=1∑nj=1∑n<vi,vj>xixj−21i=1∑n<vi,vj>xixi
因此
i=1∑nj=i+1∑n<vi,vj>xixj=21i=1∑nj=1∑n<vi,vj>xixj−21i=1∑n<vi,vj>xixi=21(i=1∑nj=1∑nf=1∑kvi,fvj,fxixj−i=1∑nf=1∑kvi,f,vj,fxixi=21f=1∑k((i=1∑nvi,fxi)(j=1∑nvj,fxj)−i=1∑nvi,f2xi2)=21f=1∑k((i=1∑nvi,fxi)2−i=1∑nvi,f2xi2)
使用SGD對模型進行訓練,梯度如下:
∂θ∂y^(x)=⎩⎪⎨⎪⎧1xixi∑j=1nvj,fxj−vi,fxi2 if θ=w0 if θ=wi if θ=vi,f