各大廠商CTR廣告預估模型的優缺點對比

        筆者對各大廠商CTR預估模型的優缺點進行對比,并結合自身的使用和理解,梳理出一條CTR預估模型的發展脈絡,希望幫助到有需要的同學。



        1. 背景


        2. LR 海量高緯離散特征 (廣點通精排)


        3. GBDT 少量低緯連續特征 (Yahoo & Bing)


        4. GBDT+LR (FaceBook)


        5. FM+DNN (百度鳳巢)


        6. MLR (阿里媽媽)


        7. FTRL_Proximal (Google)



        1. 背景


        眾所周知,廣告平臺的最終目標是追求收益最大化,以 CPC 廣告為例,平臺收益既與 CPC 單價有關,又與預測 CTR 有關。在排序的時候,CPC 可以認為是一個確定的值,所以這里的關鍵是預測用戶的點擊率 pCTR。


        各大廠商CTR廣告預估模型的優缺點對比


        各大廠商CTR廣告預估模型的優缺點對比



        2.1 正則化

        為了防止過擬合,通常會在損失函數后面增加懲罰項 L1 正則或者 L2 正則:


        L1 正則化是指權值向量 w 中各個元素的絕對值之和,通常表示為||w||1;

        L2 正則化是指權值向量 w 中各個元素的平方和然后再求平方根,通常表示為||w||2。


        其中,L1 正則可以產生稀疏性,即讓模型部分特征的系數為 0。這樣做有幾個好處:首先可以讓模型簡單,防止過擬合;還能選擇有效特征,提高性能。


        各大廠商CTR廣告預估模型的優缺點對比


        如上圖:最優解出現在損失函數的等值線和約束函數 L1 相切的地方,即凸點,而菱形的凸點往往出現在坐標軸上(系數 w1 或 w2 為 0),最終產生了稀疏性。


        L2 正則通過構造一個所有參數都比較小的模型,防止過擬合。但 L2 正則不具有稀疏性,原因如下圖,約束函數 L2 在二維平面下為一個圓,與等值線相切在坐標軸的可能性就小了很多。


        各大廠商CTR廣告預估模型的優缺點對比


        2.2 離散化

        LR 處理離散特征可以得心應手,但處理連續特征的時候需要進行離散化。通常連續特征會包含:大量的反饋 CTR 特征、表示語義相似的值特征、年齡價格等屬性特征。


        以年齡為例,可以用業務知識分桶:用小學、初中、高中、大學、工作的平均年齡區間做分桶;也可以通過統計量分桶,使各個分桶內的數據均勻分布。


        反饋 CTR 特征的離散化,一般通過統計量分桶,但在桶的邊界往往會出現突變的問題,比如兩個桶分別為 0.013~0.015、0.015~0.018,在邊界左右的值 0.01499 和 0.01501 會帶來完全不同的效果。(這里給 GBDT LR 埋下一個伏筆)。


        2.3 特征組合

        LR 由于是線性模型,不能自動進行非線性變換,需要大量的人工特征組合。以 id 類特征為例,用戶 id 往往有上億維(one-hot),廣告 id 往往有上百萬維,特征組合會產生維度爆炸。


        廣告特征里往往有三類維度(a,u,c),分別是廣告類特征、用戶類特征、上下文類特征。這三類特征內部兩兩組合、三三組合,外部再兩兩組合、三三組合就產生了無限多種可能性。所以在 CTR 預估模型的早期,主要工作就是在做人工特征工程。人工特征工程不但極為繁瑣,還需要大量的領域知識和試錯。


        2.4 優缺點

        優點:由于 LR 模型簡單,訓練時便于并行化,在預測時只需要對特征進行線性加權,所以性能比較好,往往適合處理海量 id 類特征,用 id 類特征有一個很重要的好處,就是防止信息損失(相對于范化的 CTR 特征),對于頭部資源會有更細致的描述。


        缺點:LR 的缺點也很明顯,首先對連續特征的處理需要先進行離散化,如上文所說,人工分桶的方式會引入多種問題。另外 LR 需要進行人工特征組合,這就需要開發者有非常豐富的領域經驗,才能不走彎路。這樣的模型遷移起來比較困難,換一個領域又需要重新進行大量的特征工程。


        3. GBDT 少量低緯連續特征 (Yahoo & Bing)

        GBDT(Gradient Boosting Decision Tree)[2]是一種典型的基于回歸樹的 boosting 算法。學習 GBDT,只需要理解兩方面:


        a. 梯度提升(Gradient Boosting):每次建樹是在之前建樹損失函數的梯度下降方向上進行優化,因為梯度方向(求導) 是函數變化最陡的方向。不斷優化之前的弱分類器,得到更強的分類器。每一棵樹學的是之前所有樹結論和的殘差。


        b. 回歸樹(Regression Tree):注意,這里使用的是回歸樹而非決策樹,通過最小化 log 損失函數找到最靠譜的分支,直到葉子節點上所有值唯一 (殘差為 0),或者達到預設條件(樹的深度)。若葉子節點上的值不唯一,則以該節點上的平均值作為預測值。



        各大廠商CTR廣告預估模型的優缺點對比



        核心問題 1:回歸樹怎么才能越來越好?


        最直觀的想法,如果前一輪有分錯的樣本,那邊在后面新的分支只需提高這些分錯樣本的權重,讓沒學好的地方多學一學。這種方法在數學上可以用殘差來很好的解決,比如上圖中,第一輪訓練后殘差向量為(-1, 1, -1, 1),第二輪訓練就是為了消除殘差,即這些分錯的樣本,當殘差為 0 或者達到停止條件才停止。


        那么哪里體現了Gradient呢?其實回到第一棵樹結束時想一想,無論此時的 cost function 是什么,是均方差還是均差,只要它以誤差作為衡量標準,殘差向量(-1, 1, -1, 1) 都是它的全局最優方向,這就是 Gradient。


        核心問題 2:如何將多個弱分類器組合成一個強分類器?


        通過加大分類誤差率較小的弱分類器的權重,通過多棵權重不同的樹(能者多勞)進行打分,最終輸出回歸預測值。


        3.1 特征工程

        由于 GBDT 不善于處理大量 id 類離散特征(后文會講到),但是卻善于處理連續的特征,一般的做法是用各種 CTR 反饋特征來做交叉,來范化的表達信息。在這種情況下,信息會大量存在于動態特征中,而少量存在于模型中(對比 LR,信息幾乎都存在于模型中)。下圖是作者為搜索廣告的 GBDT 模型設計的特征,讀者可供參考。


        各大廠商CTR廣告預估模型的優缺點對比



        3.2 優缺點

        優點:我們可以把樹的生成過程理解成自動進行多維度的特征組合的過程,從根結點到葉子節點上的整個路徑(多個特征值判斷),才能最終決定一棵樹的預測值。另外,對于連續型特征的處理,GBDT 可以拆分出一個臨界閾值,比如大于 0.027 走左子樹,小于等于 0.027(或者 default 值)走右子樹,這樣很好的規避了人工離散化的問題。


        缺點:對于海量的 id 類特征,GBDT 由于樹的深度和棵樹限制(防止過擬合),不能有效的存儲;另外海量特征在也會存在性能瓶頸,經筆者測試,當 GBDT 的 one hot 特征大于 10 萬維時,就必須做分布式的訓練才能保證不爆內存。所以 GBDT 通常配合少量的反饋 CTR 特征來表達,這樣雖然具有一定的范化能力,但是同時會有信息損失,對于頭部資源不能有效的表達。


        4. GBDT LR (FaceBook)

        Facebook 在 2014 年發表文章介紹了通過 GBDT 解決 LR 的特征組合問題[3],其主要實現原理是:


        訓練時,GBDT 建樹的過程相當于自動進行的特征組合和離散化,然后從根結點到葉子節點的這條路徑就可以看成是不同特征進行的特征組合,用葉子節點可以唯一的表示這條路徑,并作為一個離散特征傳入 LR 進行二次訓練。


        預測時,會先走 GBDT 的每棵樹,得到某個葉子節點對應的一個離散特征(即一組特征組合),然后把該特征以 one-hot 形式傳入 LR 進行線性加權預測。



        各大廠商CTR廣告預估模型的優缺點對比


        4.1 改進

        Facebook 的方案在實際使用中,發現并不可行,因為廣告系統往往存在上億維的 id 類特征(用戶 guid10 億維,廣告 aid 上百萬維),而 GBDT 由于樹的深度和棵樹的限制,無法存儲這么多 id 類特征,導致信息的損失。有如下改進方案供讀者參考:


        方案一:GBDT 訓練除 id 類特征以外的所有特征,其他 id 類特征在 LR 階段再加入。這樣的好處很明顯,既利用了 GBDT 對連續特征的自動離散化和特征組合,同時 LR 又有效利用了 id 類離散特征,防止信息損失。



        各大廠商CTR廣告預估模型的優缺點對比


        方案二:GBDT 分別訓練 id 類樹和非 id 類樹,并把組合特征傳入 LR 進行二次訓練。對于 id 類樹可以有效保留頭部資源的信息不受損失;對于非 id 類樹,長尾資源可以利用其范化信息(反饋 CTR 等)。但這樣做有一個缺點是,介于頭部資源和長尾資源中間的一部分資源,其有效信息即包含在范化信息(反饋 CTR) 中,又包含在 id 類特征中,而 GBDT 的非 id 類樹只存的下頭部的資源信息,所以還是會有部分信息損失。



        各大廠商CTR廣告預估模型的優缺點對比


        4.2 優缺點

        優點:GBDT 可以自動進行特征組合和離散化,LR 可以有效利用海量 id 類離散特征,保持信息的完整性。


        缺點:LR 預測的時候需要等待 GBDT 的輸出,一方面 GBDT在線預測慢于單 LR,另一方面 GBDT 目前不支持在線算法,只能以離線方式進行更新。


        5. FM DNN (百度鳳巢)

        隨著深度學習的逐漸成熟,越來越多的人希望把深度學習引入 CTR 預估領域,然而由于廣告系統包含海量 id 類離散特征,如果全用 one-hot 表示,會產生維度爆炸,DNN 不支持這么多維的特征。目前工業界方案是 FNN[4],即用 FM 做 Embedding,DNN 做訓練。


        FM(factorization machines)[5]的目標函數如下:


        各大廠商CTR廣告預估模型的優缺點對比


        FM DNN 的具體做法是:


        各大廠商CTR廣告預估模型的優缺點對比



        對于離散特征,先找到其對應的 category field,并用 FM 做 embedding,把該 category field 下的所有特征分別投影到這個低維空間中。以用戶 query 為例,如果用 one-hot 可能有數十億維,但是如果我們用 FM 編碼,就可以把所有的 query 都映射到一個 200 維的向量連續空間里,這就大大縮小了 DNN 模型的輸入。


        而對于連續特征,由于其特征維度本來就不多,可以和 FM 的輸出一同輸入到 DNN 模型里進行訓練。


        6.1 優缺點

        優點:FM 可以自動進行特征組合,并能把同一 category field 下的海量離散特征投影到一個低緯的向量空間里,大大減少了 DNN 的輸入。而 DNN 不但可以做非線性變換,還可以做特征提取。


        缺點:由于 2 階FM 只支持 2 維的特征交叉(考慮性能的因素常用 2 階 FM),所以不能像 GBDT 那樣做到 10 維的特征組合。另外 DNN 模型出于調參復雜和性能不高的原因,并不適用于中小型業務。所以在工業界使用的不多。


        6. MLR (阿里媽媽)

        前一陣子阿里巴巴的廣告部阿里媽媽公布了其 MLR(mixed logistic regression) 模型 [7],MLR 是 LR 的一個改進, 它采用分而治之的思想,用分片線性的模式來擬合高維空間的非線性分類面。


        簡單來說,MLR 就是聚類 LR,先對樣本空間進行分割,這里有一個超參數 m,用來代表分片的個數,當 m=1 時自動淪為普通的 LR;當 m 越大,擬合能力越強;當然隨著 m 增大,其所需要的訓練樣本數也不斷增大,性能損耗也不斷增加。阿里的實驗表明,當 m=12 時,表現最好。



        各大廠商CTR廣告預估模型的優缺點對比


        上圖可以看到,對于這種高緯空間的非線性分類面,用 MLR 的效果比 LR 好。


        6.1 優缺點

        優點:MLR 通過先驗知識對樣本空間的劃分可以有效提升 LR 對非線性的擬合能力,比較適合于電商場景,如 3C 類和服裝類不需要分別訓練各自不同的 LR 模型,學生人群和上班族也不需要單獨訓練各自的 LR,在一個 LR 模型中可以搞定。模型的遷移能力比較強。


        缺點:MLR 中超參數 m需要人工去調,另外還是有 LR 共性的缺點,如需要人工特征組合和人工離散化分桶等。


        7. FTRL_Proximal (Google)

        對于 LR 靜態特征這種模型,信息主要存儲在模型中(相比 GBDT 動態特征,信息既存儲在模型中又存儲在動態特征里),所以為了讓模型更加快速的適應線上數據的變化,google 率先把在線算法 FTRL 引入 CTR 預估模型 [8]。


        online 算法其實并不復雜,batch 算法需要遍歷所有樣本才能進行一輪參數的迭代求解(如隨機梯度下降),而 online 算法可以每取一個訓練樣本,就對參數進行一次更新,大大提升了效率。但這樣做也引入了一個問題,模型迭代不是沿著全局的梯度下降,而是沿著某個樣本的梯度進行下降,這樣即使用 L1 正則也不一定能達到稀疏解。


        FTRL 是在傳統的在線算法如 FOBOS 和 RDA 的基礎上做了優化,它采用和 RDA 一樣的 L1 正則,同時和 FOBOS 一樣會限制每次更新的距離不能太遠。所以它在稀疏性和精確度上要優于 RDA 和 FOBOS[9]。



        各大廠商CTR廣告預估模型的優缺點對比


        7.1 優缺點

        優點:FTRL 可以在線訓練,這樣使 LR 存儲于模型中的信息可以得到快速的更新。另外 FTRL 也具有不錯的稀疏性和精確度,可以減少內存占用防止過擬合。最后 FTRL_Proximal 還支持動態的學習率,可以對不同完整性的特征采用不同的步長進行梯度下降。


        缺點:FTRL 同樣具有 LR 的缺點,需要人工特征工程和人工離散化分桶。

        作者:Alan船長 來源:Alan船長

        本文為作者獨立觀點,不代表出海筆記立場,如若轉載請聯系原作者。
        (0)
        Alan船長的頭像Alan船長
        上一篇 2020年5月8日
        下一篇 2020年5月8日

        相關推薦