背景
有時系統中用戶的行爲比較稀少,採集到的樣本很稀疏,這樣直接導致常用的擬合方法學到的模型存在嚴重的過擬合問題,即特徵之間存在嚴重的依賴和隔離關係,使得模型無法進一步學習到精準的內在規律。爲了解決這一問題,FM模型應運而生,其基本原理是學到特徵與特徵之間的關係,從而達到更加精準的預測的目的。
遞進
引用論文原文的圖示,圖中的一條樣本描述了當前用戶的id特徵、當前物品的id特徵、當前用戶對其他物品的打分、時間、當前用戶上次對物品的打分,這條樣本的label是當前用戶對當前物品的打分。
可以看出,整個矩陣比較稀疏,通常意義下LR模型都會爲每一維特徵分配一個權重,公式如下所示:
y^(x)=w0+i=1∑nwixi
FM 模型與上述公式不同的地方在於其添加了一個V(n×k)矩陣,V的每一行代表的是x的某個特徵本身的"特徵",具體公式如下所示:
y^(x)=w0+i=1∑nwixi+i=1∑nj=i+1∑n⟨vi,vj⟩xixj
示意圖如下所示:
這裏⟨vi,vj⟩=∑f=1kvi,fvj,f,代表的是xi和xj之間的相互關係。而上述紅色公式這樣設定的原因我個人理解是因爲其描述的是兩個不同特徵之間的關係,同一個特徵之間的關係沒有學習的意義,即學習的關係如下所示(藍色爲需要學習的領域,白色爲不需要學習的領域):
可以看出上述公式的時間複雜度爲O(kn2),但是這個時間複雜度可以優化到O(kn),公式推導如下所示:
上述公式的梯度下降計算公式如下:
∂θ∂y^(x)=⎩⎨⎧1 θ=w0xi θ=wixi∑j=1nvj,fxj−vi,fxi2 θ=vi,f
代碼實現
未完待續
參考文獻
- FM paper