點擊率預估用來判斷一條廣告被用戶點擊的概率,對每次廣告的點擊做出預測,把用戶最有可能點擊的廣告找出來,是廣告技術最重要的演算法之一,主要有兩個層面的指標:

  • 排序指標。排序指標是最基本的指標,它決定了我們有沒有能力把最合適的廣告找出來去呈現給最合適的用戶。這個是變現的基礎,從技術上,我們用AUC來度量。
  • 數值指標。數值指標是進一步的指標,是競價環節進一步優化的基礎,一般DSP比較看中這個指標。如果對CTR普遍低估,出價會相對保守,從而使得預算花不出去或是花得太慢;如果對CTR普遍高估,出價會相對激進,從而導致CPC太高。從技術上,我們有Facebook的NE(Normalized Entropy)還可以用OE(Observation Over Expectation)。

CTR預估模塊@架構

CTR預估模型@架構

CTR預估@特徵工程

CTR預估一般採用監督學習演算法,其訓練數據主要來自日誌系統。日誌系統中的每一行都是一次廣告展示的完整記錄,往往包含這次廣告展示所對應的廣告、用戶、上下文三類特徵,以及用戶對這次廣告展示的行為反饋,即用戶是否點擊。

在日誌處理完之後,需要通過特徵工程來將文本形式的信息轉換成數字形式的信息。傳統特徵的構建往往沒有固定的模式,而驗證特徵的方法很多,例如卡方檢驗,單特徵AUC等。實際使用的特徵一般是通過一些特徵策略和特徵組合獲得高階特徵達到更好的模型效果。

由於廣告的點擊率一般是顯著低於50%的,會存在樣本不平衡的問題,因此在構建訓練集的時候通常採用負例欠採樣的處理方式。通過觀察不同欠採樣比例下的模型預測性能,可以獲取最佳的採樣比例。欠採樣方法有可能導致丟失一些負例的信息,對於這個問題,可以嘗試所Easy Ensemble,就是對負例進行N次不重複的隨機採樣,並分別與所有正例組成N個訓練集,分別訓練出N個模型,然後對預測值做平均。這個做法簡單有效,不過對於在線服務來說,N個模型就意味著N倍的計算量,需要權衡這個做法的收益。

CTR預估@在線模型

  • 模型指標

CTR預估的通用模型中,最經典的莫過於LR(Logistic Regression,邏輯回歸),作為一個線性模型,它的特點是易實現,易解釋,還有Google提出的FTRL優化演算法,近年來的趨勢是FM(FactorizationMachine) / FFM(Field-aware Factorization Machine),DNN(深度神經網路)。FM演算法為各個特徵生成一個Embedding Vector,並且通過不同特徵對應的Embedding的內積來表達交叉特徵,這對於訓練樣本稀疏的交叉特徵有明顯更好的學習能力。FFM則是對FM的一小步改進,他為每個特徵生成的Embedding不只有一個,而是根據不同的互作用field生成不同的Embedding,這裡的field指的是一個特徵在one-hot編碼之前所屬的分類類型特徵。實際使用的模型往往是多個模型的集成,常用的集成方法有stacking、cascading、boosting。

模型訓練最常用的指標是AUC(Area Under ROC Curve),指的是ROC(Receiver Operating Characteristic)曲線下的面積,衡量的是對於不同廣告的排序質量,這也恰恰是大多廣告點擊率系統最關心的。除此之外還有LogLoss、RIG(衡量點擊率預估值的準確率)、Utility(衡量模型帶來的收益提升)等等指標,可以根據業務需求酌情選取。不同的模型都有各自的超參數需要去做調優。

  • 在線服務

在線服務有三個關鍵環節,分別是分流實驗、特徵轉換和pCTR(predicted click through rate,預估點擊率)計算。

點擊率預估系統往往需要做線上實驗來驗證模型的效果,所以在線服務首先需要一個實驗層來對流量進行配置,將流量分發給不同的模型,並且跟蹤不同模型的實時效果。良好的離線效果並不意味著線上效果就一定好。

特徵轉換對應的是離線處理時的特徵工程環節,是為了將廣告請求的數據轉換成模型的輸入特徵。在特徵轉換的過程中,往往從廣告請求中拿到的特徵並不全,還需要去做進一步的關聯。互聯網廣告一般對實時性要求比較高,而pCTR計算環節已經是計算密集的,為了提高響應速度,在特徵轉換環節應該減少甚至避免IO帶來的延遲,所以這些關聯信息最好提前載入到應用內存或者緩存中,並通過定時任務進行更新。

通過特徵轉換得到的輸入特徵,會交給pCTR計算模塊去做最後的計算,這個模塊載入了訓練好的模型。模型的訓練都會以一定的頻率進行(甚至是一直在進行,即所謂在線學習),而訓練好的模型也都會以一定的頻率更新到線上,以便計算模塊及時利用到較新的信息。那麼計算模塊應該妥當設計,使其能夠對模型進行熱更新而不影響服務。模型本身由於採樣的問題,或是模型自身的局限,還會帶來預測值的整體偏差,這個偏差對於需要進行競價的業務會產生影響,這種情況下計算模塊還需要對預測值進行校準。

與點擊率預估類似的還有轉化率預估,這兩者是相通的,區別在於預測目標不一樣。

推薦閱讀:

相关文章