自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

廣告點擊率預估是怎么回事?

企業(yè)動態(tài)
點擊率預估是廣告技術的核心算法之一,它是很多廣告算法工程師喜愛的戰(zhàn)場。一直想介紹一下點擊率預估,但是涉及公式和模型理論太多,怕說不清楚,讀者也不明白。所以,這段時間花了一些時間整理點擊率預估的知識,希望在盡量不使用數(shù)據(jù)公式的情況下,把大道理講清楚,給一些不愿意看公式的同學一個Cook Book。

[[176886]]

點擊率預估是廣告技術的核心算法之一,它是很多廣告算法工程師喜愛的戰(zhàn)場。一直想介紹一下點擊率預估,但是涉及公式和模型理論太多,怕說不清楚,讀者也不明白。所以,這段時間花了一些時間整理點擊率預估的知識,希望在盡量不使用數(shù)據(jù)公式的情況下,把大道理講清楚,給一些不愿意看公式的同學一個Cook Book。

點擊率預測是什么?

  • 點擊率預測是對每次廣告的點擊情況做出預測,可以判定這次為點擊或不點擊,也可以給出點擊的概率,有時也稱作pClick。

點擊率預測和推薦算法的不同?

  • 廣告中點擊率預估需要給出精準的點擊概率,A點擊率0.3% , B點擊率0.13%等,需要結合出價用于排序使用;推薦算法很多時候只需要得出一個最優(yōu)的次序A>B>C即可;

搜索和非搜索廣告點擊率預測的區(qū)別

  • 搜索中有強搜索信號-“查詢詞(Query)”,查詢詞和廣告內容的匹配程度很大程度影響了點擊概率; 點擊率也高,PC搜索能到達百分之幾的點擊率。
  • 非搜索廣告(例如展示廣告,信息流廣告),點擊率的計算很多來源于用戶的興趣和廣告特征,上下文環(huán)境;移動信息流廣告的屏幕比較大,用戶關注度也比較集中,好位置也能到百分之幾的點擊率。對于很多文章底部的廣告,點擊率非常低,用戶關注度也不高,常常是千分之幾,甚至更低;

如何衡量點擊率預測的準確性?

AUC是常常被用于衡量點擊率預估的準確性的方法;理解AUC之前,需要理解一下Precision/Recall;對于一個分類器,我們通常將結果分為:TP,TN,FP,FN。

評估點擊率算法

本來用Precision=TP/(TP+FP),Recall=TP/P,也可以用于評估點擊率算法的好壞,畢竟這是一種監(jiān)督學習,每一次預測都有正確答案。但是,這種方法對于測試數(shù)據(jù)樣本的依賴性非常大,稍微不同的測試數(shù)據(jù)集合,結果差異非常大。那么,既然無法使用簡單的單點Precision/Recall來描述,我們可以考慮使用一系列的點來描述準確性。做法如下:

1.找到一系列的測試數(shù)據(jù),點擊率預估分別會對每個測試數(shù)據(jù)給出點擊/不點擊,和Confidence Score。

2.按照給出的Score進行排序,那么考慮如果將Score作為一個Thresholds的話,考慮這個時候所有數(shù)據(jù)的 TP Rate 和 FP Rate; 當Thresholds分數(shù)非常高時,例如0.9,TP數(shù)很小,NP數(shù)很大,因此TP率不會太高;

Confidence Score

3.

將Score作為一個Thresholds

4.當選用不同Threshold時候,畫出來的ROC曲線,以及下方AUC面積。

選用不同Threshold畫出來的ROC曲線

5.我們計算這個曲線下面的面積就是所謂的AUC值;AUC值越大,預測約準確。

為什么要使用AUC曲線

既然已經這么多評價標準,為什么還要使用ROC和AUC呢?因為ROC曲線有個很好的特性:當測試集中的正負樣本的分布變化的時候,ROC曲線能夠保持不變。在實際的數(shù)據(jù)集中經常會出現(xiàn)類不平衡(class imbalance)現(xiàn)象,即負樣本比正樣本多很多(或者相反),而且測試數(shù)據(jù)中的正負樣本的分布也可能隨著時間變化。AUC對樣本的比例變化有一定的容忍性。AUC的值通常在0.6-0.85之間。

如何來進行點擊率預測?

點擊率預測可以考慮為一個黑盒,輸入一堆信號,輸出點擊的概率。這些信號就包括如下信號

廣告:歷史點擊率,文字,格式,圖片等等

環(huán)境:手機型號,時間媒體,位置,尺寸,曝光時間,網絡IP,上網方式,代理等

用戶:基礎屬性(男女,年齡等),興趣屬性(游戲,旅游等),歷史瀏覽,點擊行為,電商行為

信號的粒度:

Low Level : 數(shù)據(jù)來自一些原始訪問行為的記錄,例如用戶是否點擊過Landing Page,流量IP等。這些特征可以用于粗選,模型簡單,

High Level: 特征來自一些可解釋的數(shù)據(jù),例如興趣標簽,性別等

特征編碼Feature Encoding:

1.特征離散化:把連續(xù)的數(shù)字,變成離散化,例如溫度值可以辦成多個溫度區(qū)間。

2.特征交叉: 把多個特征進行叫交叉的出的值,用于訓練,這種值可以表示一些非線性的關系。例如,點擊率預估中應用最多的就是廣告跟用戶的交叉特征、廣告跟性別的交叉特征,廣告跟年齡的交叉特征,廣告跟手機平臺的交叉特征,廣告跟地域的交叉特征等等。

特征選取(Feature Selection):

特征選擇就是選擇那些靠譜的Feature,去掉冗余的Feature,對于搜索廣告Query和廣告的匹配程度很關鍵;對于展示廣告,廣告本身的歷史表現(xiàn),往往是最重要的Feature。

獨熱編碼(One-Hot encoding)

假設有三組特征,分別表示年齡,城市,設備;

["男", "女"]

["北京", "上海", "廣州"]

["蘋果", "小米", "華為", "微軟"]

傳統(tǒng)變化: 對每一組特征,使用枚舉類型,從0開始;

["男“,”上海“,”小米“]=[ 0,1,1]

["女“,”北京“,”蘋果“] =[1,0,0]

傳統(tǒng)變化后的數(shù)據(jù)不是連續(xù)的,而是隨機分配的,不容易應用在分類器中。

熱獨編碼是一種經典編碼,是使用N位狀態(tài)寄存器來對N個狀態(tài)進行編碼,每個狀態(tài)都由他獨立的寄存器位,并且在任意時候,其中只有一位有效。

["男“,”上海“,”小米“]=[ 1,0,0,1,0,0,1,0,0]

["女“,”北京“,”蘋果“] =[0,1,1,0,0,1,0,0,0]

經過熱獨編碼,數(shù)據(jù)會變成稀疏的,方便分類器處理。

點擊率預估整理過程:

三個基本過程:特征工程,模型訓練,線上服務

點擊率預估整理過程

特征工程:準備各種特征,編碼,去掉冗余特征(用PCA等)

模型訓練:選定訓練,測試等數(shù)據(jù)集,計算AUC,如果AUC有提升,通常可以在進一步在線上分流實驗。

線上服務:線上服務,需要實時計算CTR,實時計算相關特征和利用模型計算CTR,對于不同來源的CTR,可能需要一個Calibration的服務。

點擊率預測的算法

-邏輯回歸(Logic Regression):

Logistic回歸是點擊率預估必須入門的一種方法,使用簡單,理論容易理解,甚至有些問題可以進行Debug,了解問題原因。它的核心想法就是通過Sigmooid函數(shù),將Y值轉化成0-1;其基本公式如下:

邏輯回歸(Logic Regression)

LR_SGD(隨機梯度下降):

LR的模型有了,在訓練過程中,為了提高訓練的速度,常用的是SGD的優(yōu)化方法。 SGD解決了梯度下降的兩個問題: 收斂速度慢和陷入局部最優(yōu)。梯度下降是一種常規(guī)的優(yōu)化方法,但是SGD的S表示一定的隨機性;梯度下降是每次都朝著全局優(yōu)化方向前進,而SGD卻由于隨機性,有一定的曲折后,可能達到全局最優(yōu),也可能深陷于局部最優(yōu),但SGD的運行性能確實出色。

LR_SGD(隨機梯度下降)

LR-FTRL

谷歌點擊率預估在在線學習(Online Learning)積累好多年的經驗,所謂在線學習就是通過線上實時處理數(shù)據(jù)而進行模型訓練,而不是傳統(tǒng)模式,把所有數(shù)據(jù)都放到一起處理(Batch Learning),得到離線的最優(yōu)解。

LR-FTRL (Follow-the-regularized-Leader),Google在10年就提出了一些理論基礎,在13年給出了Paper,并且?guī)в蠪TRL的實現(xiàn)偽代碼,在此之后,F(xiàn)TRL才大規(guī)模應用在工業(yè)界。

LR_SGD(隨機梯度下降)

-FM(Factorization Machines):

Steffen Rendle于2010年提出Factorization Machines(FM),并發(fā)布開源工具libFM。憑借這單個模型,他在KDD Cup 2012上,取得Track1的第2名和Track2的第3名。在Kaggle的主流的點擊率比賽中和實際廣告系統(tǒng)的經驗,factorization machine的效果完勝LR。FM的內核和LR也非常類似,但是多增加了一部分引入特征之間的交互因素,所以FM是非線性函數(shù)內核,它非常類似我們在特征工程中采用的特征交叉,但是FM是通過訓練找到那些有用的特征叉值。

-FM(Factorization Machines)

深度學習DNN

深度學習采用神經網絡技術也在不斷影響點擊率技術的發(fā)展。特別是DNN的開發(fā)平臺,更多的廣告和用戶數(shù)據(jù),更大的計算資源(包括GPU),這都給深度學習解決點擊率預估的問題,奠定了好的基礎。

Google、百度等搜索引擎公司以 Logistic Regression(LR)作為預估模型。而從 2012 年開始,百度開始意識到模型的結構對廣告 CTR 預估的重要性:使用扁平結構的 LR 嚴重限制了模型學習與抽象特征的能力。為了突破這樣的限制,百度嘗試將 DNN 作用于搜索廣告,而這其中最大的挑戰(zhàn)在于當前的計算能力還無法接受 10^11 級別的原始廣告特征作為輸入。作為解決,在百度的 DNN 系統(tǒng)里,特征數(shù)從10^11 數(shù)量級被降到了10^3,從而能被 DNN 正常地學習。這套深度學習系統(tǒng)已于 2013 年 5 月開始上線服務于百度搜索廣告系統(tǒng),初期與LR并存,后期通過組合方法共同提升點擊準確率。

現(xiàn)在越來越多的深度學習的平臺,例如谷歌的TensorFlow,使用起來也非常方便,大部分工程師1-2星期就可以上手實驗,對于特征工程的要求沒有LR高,DNN能夠對特征進行自主的優(yōu)取,但是對于大規(guī)模的計算,能夠直接匹敵LR算法的,還需要一段長長的時間。

集成學習(Ensemble Learning)

集成學習通過訓練多個分類器,然后把這些分類器組合起來使用,以達到更好效果。集成學習算法主要有Boosting和Bagging兩種類型。

Boosting:通過迭代地訓練一系列的分類器,每個分類器采用的樣本的選擇方式都和上一輪的學習結果有關。比如在一個年齡的預測器,第一個分類器的結果和真正答案間的距離(殘差),這個殘差的預測可以訓練一個新的預測器進行預測。XGBoost是非常出色的Boosting工具,支持DT的快速實現(xiàn)。

Bagging:每個分類器的樣本按這樣的方式產生,每個分類器都隨機從原樣本中做有放回的采樣,然后分別在這些采樣后的樣本上訓練分類器,然后再把這些分類器組合起來。簡單的多數(shù)投票一般就可以。這個類別有個非常著名的算法叫Random Forest,它的每個基分類器都是一棵決策樹,最后用組合投票的方法獲得最后的結果。

各大公司的一些點擊率預估的算法:

1.微軟 :微軟在2010年曾經有一篇文章是關于使用《Web-Scale Bayesian Click-Through Rate Prediction for Sponsored Search Advertising in Microsoft’s Bing Search Engine 》,但這并不代表這是微軟現(xiàn)在的技術,據(jù)說現(xiàn)在的技術也是Online-learning和一些組合技術的融合,另外也在嘗試DNN的解決方案。

2.谷歌:谷歌是比較開放的公司,LR-FTRL對整個行業(yè)的online-learning都有整體的促進作用?!禔d Click Prediction: a View from the Trenches》,谷歌內部也在不斷嘗試引入深度學習方法解決點擊率問題,也包括展示廣告的點擊率預估。

3.Facebook:

Facebook廣告大部分情況下是沒有關鍵詞的,因此Facebook的點擊率預估,其實是非常更難的問題。Facebook有一篇文章,《Practical Lessons from Predicting Clicks on Ads at Facebook》,其中介紹Facebook結合GBDT訓練出一些feature,然后再傳入LR進行分類;

《Practical Lessons from Predicting Clicks on Ads at Facebook》

4.百度:基本全面使用DNN的訓練和之前的一些LR;

5.小米:小米使用過多種方法,包括LR-SGD, LR-FTRL, FM等,同時也在通過組合的方式提升綜合效果,另外也在積極探索DNN的解決方案。

點擊率預測的成功要素

點擊率預估的成功來源于兩面:一面是實力,一面是運氣,加油和好運!

【本文為51CTO專欄作者“歐陽辰”的原創(chuàng)稿件,轉載請聯(lián)系作者本人獲取授權】

責任編輯:趙寧寧 來源: 互聯(lián)居
相關推薦

2013-10-30 10:39:25

Banner

2023-03-29 08:24:30

2021-06-04 11:10:04

JavaScript開發(fā)代碼

2020-02-18 11:19:36

物聯(lián)網病毒物聯(lián)網IOT

2018-03-26 20:28:24

深度學習

2023-10-12 08:54:20

Spring事務設置

2024-01-08 08:35:28

閉包陷阱ReactHooks

2021-05-11 11:51:15

飛機Wi-Fi通信

2013-04-18 09:56:05

2023-03-05 15:41:58

MySQL日志暴漲

2022-06-28 09:19:54

京東平臺推薦廣告算法

2021-07-30 07:28:16

偽類偽元素CSS

2017-11-24 11:10:38

區(qū)塊鏈礦工分叉

2022-12-13 08:36:42

D-SMARTOracle數(shù)據(jù)庫

2021-10-15 21:16:00

手機內存漏洞

2011-06-20 15:55:14

SEO

2021-08-10 09:28:10

ViteES Modules Dev Server

2018-05-08 08:46:47

Linux內存釋放

2018-03-15 15:40:39

廣告點擊率PaddlePaddlTensorflow

2021-07-31 19:21:34

Python下劃線數(shù)值
點贊
收藏

51CTO技術棧公眾號