DeepFM學(xué)習(xí)筆記
引子
DeepFM是經(jīng)過工業(yè)界驗證的比較認可的用于解決CTR(廣告點擊)預(yù)測的深度學(xué)習(xí)模型之一柿隙。
什么是廣告預(yù)測問題顶滩?以淘寶網(wǎng)舉例响迂,在淘寶主頁以及我們搜索結(jié)果頁面中姐赡,都有作為廣告出現(xiàn)的商品推薦窗,如果這個窗口推薦的物品正好用戶感興趣,那么用戶就會點進去看看啦丢早,這樣這個商品的商家就要付錢給淘寶網(wǎng)站醇蝴,因為這個點擊進來的用戶是通過淘寶推薦來的诈火,這樣淘寶就可以通過推薦廣告賺錢啦昼钻。問題就是,淘寶要怎么在大量的商品中選出幾個放到有限的展示窗口中呢析二?當然是最可能被點擊的那些商品廣告啦粉洼,怎么預(yù)測商品被點擊的可能性?本文提到的Deep FM就是解決這個預(yù)測問題的方案之一。
概述
將CTR預(yù)測問題轉(zhuǎn)化成一個有監(jiān)督機器學(xué)習(xí)問題属韧,首先要把訓(xùn)練樣本(用戶的點擊安拟、沒有點擊行為)劃分為“特征”和“標注”。
特征包括用戶的注冊信息挫剑,比如年齡,性別等柱衔,以及用戶的購買行為樊破,比如買了一堆GPU的可能是個技術(shù)宅or 游戲宅等等;以及商品本身的特征信息唆铐,比如商品的介紹哲戚,分類、價格等等艾岂。
標注就是0顺少、1分別代表當前的用戶沒有點擊或者有點擊這個商品的廣告。
這個CTR問題有個特性王浴,相比于圖像識別問題或者語音識別問題脆炎,CTR的特征往往是高維而且稀疏的,比如我們把男氓辣、女這個類別特征通過1-hot 編碼成為01 和 10 兩個向量秒裕,這樣一個特征就變成了2維,同樣的道理钞啸,其他的類類別特征如果通過1-hot編碼也會大大增加特征的維度几蜻。對于連續(xù)的特征,我們可能會通過分桶体斩,也把它們轉(zhuǎ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個特征的判別用戶點擊行為的模式。當我們需要判斷一個用了用戶年齡、性別赏寇、職業(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ù)說擊敗了當時的state of the art,但是目前又有很多新的paper出現(xiàn)逼争,比如阿里的DIN等优床,我們下次再說~
參考文獻:
1. DeepFM:A Factorization-Machine based Neural Network for CTR Prediction