用戶在線廣告點擊行為預測的深度學習模型


編者:本文來自英國倫敦大學學院博士張偉楠在攜程技術中心主辦的深度學習Meetup中的主題演講,介紹了深度學習在在Multi-field Categorical 這類數據集上的應用。關注攜程技術中心微信公號ctriptech,可獲知更多技術分享信息。文末可下載演講PPT。

41

本次分享主要講的是深度學習在Multi-field Categorical 這類數據集上的應用,這種類型的數據主要呈現以下特征:有多個域,每個域上的數據以ID格式呈現。本課題就是在信息檢索這一大類下的應用,它的應用主要體現在:網絡搜索、推薦系統、廣告展示這些領域。深度學習對連續數據和序列數據(比如:圖片像素、語音、自然語言等)有比較好的效果且目前已經有了比較成熟的應用,如:圖像識別、語音識別等。

而現實世界中又有很多現象需要多字段的分類數據來描述,那如果用深度學習來處理多字段的分類數據,效果又會是怎樣呢?接下來,我會通過用戶在線廣告點擊行為預測的應用實例來向大家展示深度學習在多字段分類數據的應用效果。

本次分享詳細介紹了FM和FNN算法在處理多值分類數據方面的優勢,並把這兩種算法與神經網絡在特征變量處理方面的差異做了對比,最后通過一個用戶在線廣告點擊行為預測的實例比較了LR、FM、FNN、CCPM、PNN-I等不同算法的實際預測效果;

一、深度學習目前的應用現狀

深度學習目前比較成熟的應用主要集中在:機器視覺、語音識別、自然語言處理這些課題上,這些應用領域的共同特點是它們的數據集是連續的。比如:圖形識別中每個圖層與它之后的圖層局部都有比較緊密的聯系;語音信息前后也有比較強的相關關系;在自然語言處理中每個WORD雖然是離散的,但是其前后的數據也是強相關的。對於這種類型的數據,人可以輕易理解這些數據,但是一般的機器學習算法處理這種數據卻是非常困難的,而深度學習卻可以很好的從底層逐層學習出高層的模式,這就是深度學習的優勢。

而今天我們要了解的數據 Multi-field Categorical Data與上述這些連續或是序列數據是有區別的,Multi-field Categorical Data會有多種不同的字段,比如:[Weekday=Wednesday, Gender=Male, City=London,…],那這樣我們就比較難識別這些特征之間的關系。給大家舉例一個直觀的場景:比如現在有一個鳳凰網站,網站上面有一個迪斯尼廣告,那我們現在想知道用戶進入這個網站之后會不會有興趣點擊這個廣告,類似這種用戶點擊率預測在信息檢索領域就是一個非常核心的問題。

那一般普遍的做法就是通過不同的域來描述這個事件然后預測用戶的點擊行為,而這個域可以有很多,比如:

Date: 20160320
Hour: 14
Weekday: 7
IP: 119.163.222.*
Region: England
City: London
Country: UK
Ad Exchange: Google
Domain: yahoo.co.uk
URL: http://www.yahoo.co.uk/abc/xyz.html
OS: Windows
Browser: Chrome
Ad size: 300*250
Ad ID: a1890
User tags: Sports, Electronics

可能我們還會有這些用戶的身份信息,比如該用戶是學生等,那我們可以通過這些多維度的取值來描述這個事件然后來預測用戶的點擊行為。回到剛才的那個場景,那么什么樣的用戶會點擊這個廣告呢?我們可能猜想:目前在上海的年輕的用戶可能會有需求,如果今天是周五,看到這個廣告,可能會點擊這個廣告為周末做活動參考。那可能的特征會是:[Weekday=Friday, occupation=Student, City=Shanghai],當這些特征同時出現時,我們認為這個用戶點擊這個迪斯尼廣告的概率會比較大。

這種場景在WEB Search、廣告展示、推薦系統領域會經常遇到,比如Google和百度在做廣告點擊率預測時,他們人工地把這種分類數據做四階或是五階的結合特征,最終在一個超級大的數據集上去學習特征,而這個過程需要耗費大量人力去做特征處理,本次要講的就是應用深度學習去直接學習這類數據特征。

傳統的做法是應用One-Hot Binary的編碼方式去處理這類數據,例如現在有三個域的數據X=[Weekday=Wednesday, Gender=Male, City=Shanghai],其中 Weekday有7個取值,我們就把它編譯為7維的二進制向量,其中只有Wednesday是1,其他都是0,因為它只有一個特征值;Gender有兩維,其中一維是1;如果有一萬個城市的話,那City就有一萬維,只有上海這個取值是1,其他是0

42

那最終就會得到一個高維稀疏向量。但是這個數據集不能直接用神經網絡訓練:如果直接用One-Hot Binary進行編碼,那輸入特征至少有一百萬,第一層至少需要500個節點,那么第一層我們就需要訓練5億個參數,那就需要20億或是50億的數據集,而要獲得如此大的數據集基本上是很困難的事情。

二、FM、FNN以及PNN模型

因此我們需要將非常大的特征向量嵌入到低維向量空間中來減小模型復雜度,而FM(Factorisation machine)無疑是被業內公認為最有效的embedding model:

43

第一部分仍然為Logistic Regression,第二部分是通過兩兩向量之間的點積來判斷特征向量之間和目標變量之間的關系。比如上述的迪斯尼廣告,occupation=Student和City=Shanghai這兩個向量之間的角度應該小於90,它們之間的點積應該大於0,說明和迪斯尼廣告的點擊率是正相關的。這種算法在推薦系統領域應用比較廣泛。

那我們就基於這個模型來考慮神經網絡模型,其實這個模型本質上就是一個三層網絡:

44

它在第二層對向量做了乘積處理(比如上圖藍色節點直接為兩個向量乘積,其連接邊上沒有參數需要學習),每個field都只會被映射到一個 low-dimensional vector,field和field之間沒有相互影響,那么第一層就被大量降維,之后就可以在此基礎上應用神經網絡模型。

我們用FM算法對底層field進行embeddding,在此基礎上面建模就是FNN(Factorisation-machine supported Neural Networks)模型:

45

模型底層先用FM對經過one-hot binary編碼的輸入數據進行embedding,把稀疏的二進制特征向量映射到 dense real 層,之后再把dense real 層作為輸入變量進行建模,這種做法成功避免了高維二進制輸入數據的計算復雜度。

那我們把這些模型應用到iPinYou數據集上,模型效果如下所示:

46

那我們可以看出FNN的效果優於LR和 FM 模型。我們進一步考慮FNN與一般的神經網絡的區別是什么?大部分的神經網絡模型對向量之間的處理都是采用加法操作,而FM 則是通過向量之間的乘法來衡量兩者之間的關系。我們知道乘法關系其實相當於邏輯“且”的關系,拿上述例子來說,只有特征是學生而且在上海的人才有更大的概率去點擊迪斯尼廣告。但是加法僅相當於邏輯中“或”的關系,顯然“且”比“或”更能嚴格區分目標變量。

所以我們接下來的工作就是對乘法關系建模。可以對兩個向量做內積和外積的乘法操作:

47

可以看出對外積操作得到矩陣而言,如果該矩陣只有對角線上有值,就變成了內積操作的結果,所以內積操作可以看作是外積操作的一種特殊情況。通過這種方式,我們就可以衡量連個不同域之間的關系。
在此基礎之上我們搭建的神經網絡如下所示:

48

首先對輸入數據進行embedding處理,得到一個low-dimensional vector層,對該層的任意兩個feature進行內積或是外積處理就得到上圖的藍色節點,另外一種處理方式是把這些Feature直接和1相乘復制到上一層的Z中,然后把Z和P接在一起就可以作為神經網絡的輸入層,在此基礎上我們就可以應用神經網絡去模型了。

那么對特征做內積或是外積處理就會產生一個復雜度的問題:假設有60個域,那么把這些feature做內積處理,就會產生將近1000多個元素的矩陣,如此就會產生一個很大的weight矩陣,那我們需要學習的參數就很多,那我們的數據集可能就滿足不了這個要求。那接下來的做法就是:由於weight矩陣是個對稱陣,我們可以用factorization來處理這個對稱陣,把它轉換為一個小矩陣乘以這個小矩陣的轉置,這樣就會大大減少我們所需要訓練的參數:

49

三、模型效果評估

接下來我們可以看一下模型在兩個不同數據集上面的應用效果:

第一個數據集Criteo Terabyte Dataset:這個數據集有13個數值變量,26個類別變量,我們節選了8天將近300GB的數據量,前7天作為訓練集,由於這個數據集正樣本過少,我們對負樣本做了欠抽樣的處理。

第二個數據集iPinYou Dataset:共有24個類別變量,我們截取了連續10天的數據量。

我們應用的比較算法有:LR (Logistic regression)、FM(Factorisation machine)、FNN(Factorisation machine supported neural network)、CCPM(Convolutional click prediction model)、PNN-I(Inner product neural network)、PNN-II(Outer product neural network)、PNN-III(Inner&outer product ensembled neural network)

評估模型我們主要看的是以下幾個指標:

1)Area under ROC curve (AUC):非常關鍵的指標

2)Log loss:該值越小,說明點擊率預估的准確度越高

410

3)Root mean squared error (RMSE):值越大模型效果越好,作為參考

411

4)Relative Information Gain (RIG):值越大模型效果越好

412

最終各個模型的效果如下:

413

我們主要看的是AUC這個指標,業內一般模型提升2個百分點就會帶來巨大收益,可以看到從LR到PNN,模型效果提升了近5個百分點,由此可見FM、FNN、PNN這幾類模型效果比LR顯著要好。

其他的實驗結果,比如dropout,業內認為0.5是比較好的值,我們PNN-II模型的實驗結果也證明了這一點:

414

我們還測試了最佳的隱層層數,隱層層數並不是越多越好,層數過多的模型會出現過擬合效應,這個隱層數是跟數據集大小相關,一般而言數據集越大所需要的隱層就越多,我們這里模型顯示的最佳隱層是3層:

415 416

我們同時在小數據集iPinYou Dataset上看了一下各模型的穩健性,發現PNN-1和PNN-2模型效果超過其他模型一直處在穩步上升的過程:

417

之后我們還學習了神經網絡不同層級節點數目的分布,一下有四種不同的層級節點分布形態,結果發現constant 和 diamond 這兩種形態的表現效果比較好,increasing形態效果最差,說明我們不應該在第一層就過度壓縮特征向量:

418

我們還對比了不同隱層節點的Activation Functions的效果,結果發現tanh 和 relu明顯優於sigmoid:
sigmoid(x)=1/(1+e^(-x) )
tanh⁡(x)=(1-e^(-2x))/(1+e^(-2x) )
relu(x)=max⁡(0,x)

419

四、小結

1、深度學習在多字段分類數據集上也能取得顯著的應用效果;

2、通過內積和外積操作找到特征之間的相關關系;

3、在廣告點擊率的預測中,PNN效果優於其他模型。

(本分享涉及的研究工作由張偉楠與其在上海交通大學和倫敦大學學院的同事共同完成。本文由攜程技術中心侯淑芳整理)

演講PPT下載:

用戶在線廣告點擊行為預測的深度學習模型-張偉楠

說明:本文由攜程技術中心原創,如需轉載請郵件niuq#ctrip.com(#改為@)。

深度學習Meetup系列:

深度學習在攜程攻略社區的應用

深度學習在搜狗無線搜索廣告中的應用

知識庫上的問答系統:實體、文本及系統觀點

用戶在線廣告點擊行為預測的深度學習模型

知識圖譜中的推理技術及其在高考機器人中的應用


免責聲明!

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



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