FM以及DeepFM
1.FM
在計算廣告和推薦系統(tǒng)中,CTR預(yù)估(click-through rate)是非常重要的一個環(huán)節(jié),判斷一個商品的是否進行推薦需要根據(jù)CTR預(yù)估的點擊率來進行。在進行CTR預(yù)估時,除了單特征外,往往要對特征進行組合。
1.1 FM要解決的問題。
FM(Factorization Machine, 因子分解機)主要用來解決,數(shù)據(jù)系數(shù)的情況下,特征怎樣組合的問題。
下面舉個例子:

clicked是分類值,表明用戶有沒有點擊該廣告。1表示點擊,0表示未點擊。而country,day,ad_type則是對應(yīng)的特征。對于這種categorical特征,一般都是進行one-hot編碼處理。
進行onehot編碼的結(jié)果如下所示:

因為是cateforical特征,經(jīng)過onehot編碼后,樣本的數(shù)據(jù)會變得十分稀疏,并且會導(dǎo)致特征空間擴大很多倍。
1.2 特征組合
為了表示特征間的相關(guān)性,我們采用了多項式模型,這里我們只考慮二階特征的組合,那么我們可以用下面這個式子作為模型的表達式:
n表示樣本的特征數(shù)量,表示第i個特征。
1.3 FM求解
從上面的表達式我們可以看出,在組合部分的特征相關(guān)參數(shù)共有n(n-1)/2個。在矩陣很稀疏的情況下,矩陣中為0的值特別多,這將導(dǎo)致無法直接訓(xùn)練出來。
為了求出,我們對每一個特征分量
引入輔助向量
。然后利用
對
進行求解。

那么

然后我們再利用公式:

具體推導(dǎo)如下:

最后我們對

2. DeepFM
DeepFM主要包括兩個部分,神經(jīng)網(wǎng)絡(luò)部分和因子分解機部分,分別負責提取低階特征和高階特征。并且這兩部分共享權(quán)重矩陣,即共享Embedding層。DeepFM的預(yù)測結(jié)果可以寫為:

2.1 FM部分

2.2 Deep部分

Deep部分主要用來處理高階特征(2階以上)。
2.3 注意事項
Dense Embedding層最開始是隨機初始化的,后面經(jīng)過FM的訓(xùn)練,成為圖中所示的Dense Embedding層,Dense Embedding層的權(quán)重同時輸入到FM部分和deep部分,并且由兩者共同訓(xùn)練。
在最后進行求和時,y的值為FM的一階部分加上偏置再加上deep部分得到的高階部分。
參考資料
1.http://www.itdecent.cn/p/152ae633fb00
2.http://www.itdecent.cn/p/6f1c2643d31b