1. 程式人生 > >點選率預估演算法:FM與FFM

點選率預估演算法:FM與FFM

點選率預估演算法:FFM

@(計算廣告)[計算廣告]

1、FM

1.1 背景

1.1.1 線性模型

常見的線性模型,比如線性迴歸、邏輯迴歸等,它只考慮了每個特徵對結果的單獨影響,而沒有考慮特徵間的組合對結果的影響。

對於一個有n維特徵的模型,線性迴歸的形式如下:

f(x)=ω0+ω1x1+ω2x2+...+ωnxn=ω0+i=1nωixi(1)
其中(ω0,ω1...ωn)為模型引數,(x1,x2...xn)為特徵。
從(1)式可以看出來,模型的最終計算結果是各個特徵的獨立計算結果,並沒有考慮特徵之間的相互關係。

舉個例子,我們“USA”與”Thanksgiving”,”China”與“Chinese new year”這樣的組合特徵是很有意義的,在這樣的組合特徵下,會對某些商品表現出更強的購買意願,而單獨考慮國家及節日都是沒有意義的。

1.1.2 二項式模型

我們在(1)式的基礎上,考慮任意2個特徵分量之間的關係,得出以下模型:

f(x)=ω0+i=1nωixi+i=1n1j=i+1nωijxixj(2)

這個模型考慮了任意2個特徵分量之間的關係,但並未考慮更高階的關係。
模型涉及的引數數量為:

1+n+n(n1)2=12(n2+n+2)(3)

對於引數ωi的訓練,只要這個樣本中對應的xi不為0,則可以完成一次訓練。
但對於引數ωij的訓練,需要這個樣本中的xixj同時不為0,才可以完成一次訓練。
在資料稀疏的實際應用場景中,二次項ωij的訓練是非常困難的。因為每個ωij都需要大量xixj都不為0的樣本。但在資料稀疏性比較明顯的樣本中,x

ixj都不為0的樣本會非常稀少,這會導致ωij不能得到足夠的訓練,從而不準確。

1.2 FM

1.2.1 FM基本原理

為了解決上述由於資料稀疏引起的訓練不足的問題,我們為每個特徵維度xi引入一個輔助向量:

Vi=(vi1,vi2,vi3,...,vik)Tk,i=1,2,3,...,n(4)
其中k為輔助變數的維度,依經驗而定,一般而言,對於特徵維度足夠多的樣本,k<

1.2.2 資料分析

我們的目標是要求得以下互動矩陣W:

W=ω11ω21ωn1ω12ω22