FM算法


1.FM背景

在計算廣告中,CTR預估(click-through rate)是非常重要的一個環節,因為DSP后面的出價要依賴於CTR預估的結果。在前面的相關博文中,我們已經提到了CTR中相關特征工程的做法。對於特征組合來說,業界現在通用的做法主要有兩大類:FM系列與Tree系列。今天,我們就來講講FM算法。

2.one-hote編碼帶來的問題

FM(Factorization Machine)主要是為了解決數據稀疏的情況下,特征怎樣組合的問題。已一個廣告分類的問題為例,根據用戶與廣告位的一些特征,來預測用戶是否會點擊廣告。數據如下:(本例來自美團技術團隊分享的paper) 
這里寫圖片描述 
clicked是分類值,表明用戶有沒有點擊該廣告。1表示點擊,0表示未點擊。而country,day,ad_type則是對應的特征。前面我們在http://blog.csdn.net/bitcarmanlee/article/details/51472816一文中專門提到過,對於這種categorical特征,一般都是進行one-hot編碼處理。

將上面的數據進行one-hot編碼以后,就變成了下面這樣 
這里寫圖片描述

因為是categorical特征,所以經過one-hot編碼以后,不可避免的樣本的數據就變得很稀疏。舉個非常簡單的例子,假設淘寶或者京東上的item為100萬,如果對item這個維度進行one-hot編碼,光這一個維度數據的稀疏度就是百萬分之一。由此可見,數據的稀疏性,是我們在實際應用場景中面臨的一個非常常見的挑戰與問題。

one-hot編碼帶來的另一個問題是特征空間變大。同樣以上面淘寶上的item為例,將item進行one-hot編碼以后,樣本空間有一個categorical變為了百萬維的數值特征,特征空間一下子暴增一百萬。所以大廠動不動上億維度,就是這么來的。

3.對特征進行組合

普通的線性模型,我們都是將各個特征獨立考慮的,並沒有考慮到特征與特征之間的相互關系。但實際上,大量的特征之間是有關聯的。最簡單的以電商為例,一般女性用戶看化妝品服裝之類的廣告比較多,而男性更青睞各種球類裝備。那很明顯,女性這個特征與化妝品類服裝類商品有很大的關聯性,男性這個特征與球類裝備的關聯性更為密切。如果我們能將這些有關聯的特征找出來,顯然是很有意義的。

一般的線性模型為: 

y=ω0+i=1nωixi

 

從上面的式子很容易看出,一般的線性模型壓根沒有考慮特征間的關聯。為了表述特征間的相關性,我們采用多項式模型。在多項式模型中,特征xixj的組合用xixj。為了簡單起見,我們討論二階多項式模型。具體的模型表達式如下:

 

y=ω0+i=1nωixi+i=1n1j=i+1nωijxixj

 

上式中,n表示樣本的特征數量,xi表示第i個特征。 
與線性模型相比,FM的模型就多了后面特征組合的部分。

4.FM求解

從上面的式子可以很容易看出,組合部分的特征相關參數共有n(n1)2個。但是如第二部分所分析,在數據很稀疏的情況下,滿足xi,xj都不為0的情況非常少,這樣將導致ωij無法通過訓練得出。

為了求出ωij,我們對每一個特征分量xi引入輔助向量Vi=(vi1,vi2,,vik)。然后,利用vivTjωij進行求解。

這里寫圖片描述

那么ωij組成的矩陣可以表示為: 
這里寫圖片描述 
上面的表達形式,就對應了一種矩陣的分解。對k值的限定,就反應了FM模型的表達能力。

要求出<vi,vj>,主要是采用了如公式((a+b+c)2a2b2c2求出交叉項。具體過程如下:這里寫圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM