使用者線上廣告點選行為預測的深度學習模型(含PPT下載)

周建丁發表於2016-07-26

本文來自英國倫敦大學學院博士張偉楠在攜程技術中心主辦的深度學習Meetup中的主題演講,介紹了深度學習在Multi-field Categorical(多欄位分類)資料集上的應用,涉及FM和FNN等演算法。

圖片描述

本次分享主要講的是深度學習在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。

圖片描述

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

FM、FNN以及PNN模型

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

圖片描述

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

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

圖片描述

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

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

圖片描述

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

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

圖片描述

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

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

圖片描述

可以看出對外積操作得到矩陣而言,如果該矩陣只有對角線上有值,就變成了內積操作的結果,所以內積操作可以看作是外積操作的一種特殊情況。通過這種方式,我們就可以衡量連個不同域之間的關係。

在此基礎之上我們搭建的神經網路如下所示:

圖片描述

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

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

圖片描述

模型效果評估

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

第一個資料集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:該值越小,說明點選率預估的準確度越高
    圖片描述

  3. Root mean squared error (RMSE):值越大模型效果越好,作為參考
    圖片描述
  4. Relative Information Gain (RIG):值越大模型效果越好
    圖片描述

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

圖片描述

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

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

圖片描述

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

圖片描述

圖片描述

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

圖片描述

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

圖片描述

我們還對比了不同隱層節點的Activation Functions的效果,結果發現tanh 和 relu明顯優於sigmoid:

圖片描述

圖片描述

小結

  1. 深度學習在多欄位分類資料集上也能取得顯著的應用效果;

  2. 通過內積和外積操作找到特徵之間的相關關係;

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

PPT下載:使用者線上廣告點選行為預測的深度學習模型 by 張偉楠

本分享涉及的研究工作由張偉楠與其在上海交通大學和倫敦大學學院的同事共同完成,文章由攜程技術中心(微信公號ctriptech)侯淑芳根據演講內容整理,並經過演講者本人確認和授權釋出。

責編:周建丁(zhoujd@csdn.net)


CCAI 2016中國人工智慧大會將於8月26-27日在京舉行,AAAI主席,多位院士,MIT、微軟、大疆、百度、滴滴專家領銜全球技術領袖和產業先鋒打造國內人工智慧前沿平臺,6+重磅大主題報告,4大專題論壇,1000+高質量參會嘉賓,探討人機互動、機器學習、模式識別及產業實戰。門票限時八折優惠中

圖片描述

相關文章