DeepFM學(xué)習(xí)筆記
引子
DeepFM是經(jīng)過工業(yè)界驗證的比較認(rèn)可的用于解決CTR(廣告點擊)預(yù)測的深度學(xué)習(xí)模型之一。
什么是廣告預(yù)測問題?以淘寶網(wǎng)舉例,在淘寶主頁以及我們搜索結(jié)果頁面中,都有作為廣告出現(xiàn)的商品推薦窗,如果這個窗口推薦的物品正好用戶感興趣,那么用戶就會點進(jìn)去看看啦,這樣這個商品的商家就要付錢給淘寶網(wǎng)站,因為這個點擊進(jìn)來的用戶是通過淘寶推薦來的,這樣淘寶就可以通過推薦廣告賺錢啦。問題就是,淘寶要怎么在大量的商品中選出幾個放到有限的展示窗口中呢?當(dāng)然是最可能被點擊的那些商品廣告啦,怎么預(yù)測商品被點擊的可能性?本文提到的Deep FM就是解決這個預(yù)測問題的方案之一。
概述
將CTR預(yù)測問題轉(zhuǎn)化成一個有監(jiān)督機器學(xué)習(xí)問題,首先要把訓(xùn)練樣本(用戶的點擊、沒有點擊行為)劃分為“特征”和“標(biāo)注”。
特征包括用戶的注冊信息,比如年齡,性別等,以及用戶的購買行為,比如買了一堆GPU的可能是個技術(shù)宅or 游戲宅等等;以及商品本身的特征信息,比如商品的介紹,分類、價格等等。
標(biāo)注就是0、1分別代表當(dāng)前的用戶沒有點擊或者有點擊這個商品的廣告。
這個CTR問題有個特性,相比于圖像識別問題或者語音識別問題,CTR的特征往往是高維而且稀疏的,比如我們把男、女這個類別特征通過1-hot 編碼成為01 和 10 兩個向量,這樣一個特征就變成了2維,同樣的道理,其他的類類別特征如果通過1-hot編碼也會大大增加特征的維度。對于連續(xù)的特征,我們可能會通過分桶,也把它們轉(zhuǎn)化成了高維的特征。
在很多情況下,我們用這些特征判斷用戶的點擊行為可能需要綜合多個特征來進(jìn)行,比如年齡在18-30歲的女生比較關(guān)注顏色比較時髦的唇膏商品,這個判斷就用了年齡和性別兩個特征來綜合決策最終的label。那么有很多前人提出了多種多樣的模型來解決這個特征交叉的問題。比如FM(Factorization Machines)就提出了先學(xué)一個特征的embedding(就是用一個低維的向量來表示高維稀疏的特征向量),然后通過不同特征組的embedding的乘積來實現(xiàn)這個“特征交叉“的操作。可惜的是,由于排列組合的數(shù)量幾乎是指數(shù)上升的,考慮到模型的復(fù)雜度,實際應(yīng)用中往往只能學(xué)習(xí)低階的特征交叉,也就是FM只能學(xué)習(xí)到利用了2~3個特征的判別用戶點擊行為的模式。當(dāng)我們需要判斷一個用了用戶年齡、性別、職業(yè)、收入、月度購買量等等比較多的特征的用戶行為模式的時候怎么辦呢?有人提出可以用DNN(深度神經(jīng)網(wǎng)絡(luò))來解決這個問題,用深層的神經(jīng)網(wǎng)絡(luò)來模擬高維的用戶特征融合模式。但是問題是,我們?nèi)绻瑫r需要判斷高維和低維的特征模式,這個時候怎么辦呢?本文介紹的Deep FM就派上用場了。
方法

如圖一所示,整個Deep FM的架構(gòu)分為左右兩個層次,左邊是FM,右邊是Deep。。哈哈估計名字就是這么來的。樣本的特征由下至上輸入,最下一層是上面提到過的高維稀疏特征。

由于輸入的高維稀疏特征向量是由更低維的特征向量(比如用戶性別的1-hot編碼向量,用戶年齡的分桶離散化的向量等)組合而成的,在第一層分別將這些向量編碼成同樣長度的embedding,這樣更方便表示每個低維向量組的信息,方便后續(xù)計算。入圖2所示。
在Deep FM的架構(gòu)的左邊FM中,這一層經(jīng)過embedding編碼的特征向量經(jīng)過了FM的乘積層獲得了低維的特征交叉組合,然后通過一個輸出層輸出。

圖中y代表FM層輸出,<w,x>代表權(quán)重w和原始feature層向量x的內(nèi)積,Vi表示原始特征向量x中第i個低維特征向量的embedding表示。

圖3代表Deep FM架構(gòu)中的DNN部分。由于和FM共用了第一層特征的embedding向量層,這樣在反向傳播算法的訓(xùn)練過程中,這個淺層特征embedding可以受到高維特征交叉和低維特征交叉的影響學(xué)的更好些(論文原話)。
這個DNN的層數(shù)根據(jù)原始論文中的實驗大概取3~5層,更多的層數(shù)會導(dǎo)致過擬合。
總結(jié)
這個Deep FM模型有幾個特點:
1. 它不需要預(yù)訓(xùn)練,可以直接端到端的訓(xùn)練
2. 它結(jié)合了深層和淺層的特征交叉信息
3. 通過共享embedding它省去了特征工程的工作,更方便使用。
Deep FM的工作據(jù)說擊敗了當(dāng)時的state of the art,但是目前又有很多新的paper出現(xiàn),比如阿里的DIN等,我們下次再說~
參考文獻(xiàn):
1. DeepFM:A Factorization-Machine based Neural Network for CTR Prediction