數以萬計的廣告中,客戶為什麼會點擊你的這幅?
文/Byrant,Ton & Owen
廣告主每天都在頭疼的問題無非是:用戶究竟會不會點擊我的廣告?現在,紐約數據科學學院的學員試圖通過數據分析和機器學習來解決這個問題。
如何從數據角度看實時廣告競價問題
我們每天都會接觸大量廣告,但我們很可能低估了廣告的影響力。研究證明,僅僅是讓人們對產品、事件以及品牌有所察覺,就可以提高人民最終購買產品、參加活動或支持這個品牌的幾率。若一個廣告能夠足夠吸引人的注意力以至於讓他立刻做出積極的反應,那麼這幾率會進一步大幅提高。
移動廣告是出現在移動設備上的廣告。它通過實時競價(RTB)系統完成。一個移動設備用戶以及它移動設備上的可以顯示廣告的空間形成一個「競價標的」。廣告公司們在幾毫秒之內就完成對這一廣告位的競價,最終勝出的可以將自己客戶的廣告顯示出來。這個廣告被記做一次Impression(展示量,也有翻譯為廣告印象),而用戶也可以繼續點擊廣告鏈接了解更多信息,這個點擊即Click。每個Impression獲得的點擊通過率,即CTR(click
through rate ),可以衡量一個廣告是否成功。下圖描述了這一過程。我們的項目中,我們扮演了為廣告公司「AA」(
Ads Anonymous ,下稱AA,一家匿名廣告公司)提供諮詢服務的角色。它的主要目標是提高RTB過程中最終獲取的廣告印象數,並最終提高點擊通過率。我們的角色就是建立一個機器學習框架,可以用於幫助「AA」設計出能提高其精確點擊可能性的廣告策略。所以我們的項目基於兩個假設。
第一個假設是,一個特定廣告的點擊概率取決於:
- 這個廣告的具體細節(相關度,吸引力,品牌識別度等)
- 受眾、用戶的具體情況(年齡,性別,地域等)
要如何理解這個假設呢?具體請設想以下假設情景:
1、所有類型人群對於某一個一般廣告的點擊概率是0.15,但是對於德克薩斯州的用戶這一概率是0.08.也就是,得州人與總體人群相比,更不可能點擊這個廣告。
2、德州人點擊這個一般性廣告的概率是0.08,但點擊一個受歡迎的卡車廣告則是0.2。這就是說,與這個一般性廣告相比,得州人更可能點擊這個卡車廣告
3、所有類型的人群對於某一個一般廣告的點擊概率是0.15,但點擊一個受歡迎的卡車廣告的概率是0.2。也就是所有人都更可能點擊卡車廣告。
這三種情況如下所示:
(圖片說明:黃色=0.08,橙色=0.15,紅色=0.2)
由此引出的第二個假設是:只有當定製化的點擊率預測比普通預測更加精準時,「AA」的客戶會更喜歡為他們的廣告項目(一組廣告)量身定製的點擊率預測模型(下稱 campaign-specific模型)。因此,我們需要證明,我們的定製化模型更加有效。
總的來說,我們的方法就是使用具體項目的數據對兩個 campaign-specific模型和一個普通模型進行比較。下圖是工作流程。接下來我們會具體討論每個模塊。
數據處理
「AA」公司為我們提供了三組數據
1、360億個bid request,大約30 TB 的數據量
2、3億次Impression,這些是AA贏下的bid request
3、50萬次點擊, Impression的一個子集
不幸的是,AA無法獲得那些他們沒能贏下的bid
request的相應數據。因此我們決定去掉bid
request的數據,只用後兩組數據。由於點擊數據是Impression數據的一個子集,我們可以將兩者合併成一組數據。最終,鑒於AA的建議,我們僅留下美國地區的Impression和CTR不是0的廣告活動。因此最終用於訓練模型的數據是CTR為0.63%的7300萬次Impression數據。由於上面提到的缺陷,我們的模型內在地偏向AA贏得的那些bid requests。因此我們做了一個假設:我們用來訓練模型的Impression可以代表所有可能的Impression。
首先是數據清洗。
與每個Impression有關的數據維度包括:與用戶有關的變數,用戶設備,廣告,廣告出現的app,Impression來自的那個bid request。
我們拋棄了無用的數據,把容易給機器訓練模型造成混淆的數字轉換成字元,並進一步挖掘了一些新的變數。比如,我們假設人們在每周的不同日期有不同點擊偏好,因此我們將日期對應的星期提取出,形成新的變數。再比如,我們將每一天不同時間的數據和對應的星期結合,試圖發現是否人們在周五晚間的表現更像周六晚間的行為而非周日。其他例子還包括每天的時間和用戶年齡、用戶地域,操作系統和用戶地域,性別和用戶地域等。
另外,大量數據是分類數據(categorical),並且不少都包含了更多的分級。但其實這些分級往往包含了同樣的核心信息,因此可以被看作是同一個級別。我們減少了這樣的分級數,將級數限制在最重要,最核心的信息。比如下面這組關於廣告出現的app的數據中,左邊的三組都包含了同一個關鍵詞meetme,若不加處理,機器學習演算法會將他們視為不同級別進行處理,而實際上它們只是手機型號的不同。因此我們將這些Impression都統一歸為「meetme」這同一個維度的數據。
另外,有些數據有輕微缺失,比如地理坐標數據有4%的缺失,由於這些數據對於判斷人群特徵有幫助,我們決定留下,但同時機器學習演算法無法很好地處理缺失數據,我們的做法是將缺失這一維度的數據統統刪除。
但有的數據則出現大量缺失。一般處理這種情況有兩種方法,一是直接全部捨棄,二是進行估算補充。在我們的項目中,幾乎有一半數據缺失了性別這一維度。不少研究都證明性別在廣告行為中的重要性,比如有一個進行了30多年的研究指出,女性會購買那些同時針對男女的廣告產品,而男性則只會購買針對男性的廣告產品。有鑒於此,我們決定使用機器學習對缺失的性別數據進行預測。
我們使用了隨機森林,數據僅選擇了描述用戶和他們的設備的數據,排除了與廣告和點擊有關的數據。最終我們的模型包括了40個樹,和最高20的深度。每個分支有4個變數。這個模型預測性別的準確度達到85%。
對於一般模型,我們使用了約7300萬Impression數據。基於此,我們又分別拿出頭髮護理(HairCare)公司和運動酒吧公司的廣告數據用於兩個單獨模型。一般模型的CTR是0.63%,我們選擇的頭髮護理公司CTR為1.45%,運動酒吧為0.55%,正好在0.63%一上一下。
對於這兩組具體廣告項目的數據,我們又進一步按時間進行分割,形成訓練數據組、驗證數據組和測試數據組。所有的數據來自2016年9月1到22日,我將1到17日的數據作為訓練數,剩下作為測試數據,各自佔80%和20%。在訓練數據中我進一步劃分出驗證數據組。我使用了一個隨機分割,最終訓練數據佔60%,驗證數據佔20%。我希望用對這20%的驗證數據進行一次驗證的方式來替代對全部80%的訓練數據進行交叉驗證的過程。
定製化模型預測
預測CTR是一個二元分類問題,我們決定使用隨機梯度下降法的邏輯回歸。這樣做的好處包括:高緯度下的穩健性(robustness),訓練速度,可解釋度,適當性(appropriateness),對於類不平衡性的潛在的穩健性。
對於邏輯回歸下的類不平衡性問題,我們採取一個實驗嘗試解決。一個常用的方法是通過對主要的類(class)進行採樣過疏(Undersampling)處理。也就是將一定比例的主要的類的數據丟掉,從而降低模型訓練組類不平衡(
class imbalance)的問題。但風險是可能因此導致訓練的數據不夠。為了檢查採樣過疏對我們模型的影響,我們用不同程度的採樣過疏進行了訓練。一次對主要類別進行10%的採樣過疏處理,一次是1%。
評估指標的選擇。訓練完模型後我們可以給模型輸入新的bid request而模型會得出這個請求最終帶來一個可以被點擊的Impression的可能性。為了做出點擊與否的預測,我們需要確定一個閾值,為此我們則需要決定我們要如何評估預測的質量。
所有預測兩類結果的分類模型都會有四種情況:真陽性(TP),假陽性(FP),假陰性(FN)和真陰性(TN)。圖示如下:
在移動廣告的情境下這四種分別對應:
- TP:Impression得到點擊。也就是廣告花費產生了回報。
- FP:Impression未獲點擊。就是廣告花費沒有產生回報。
- FN:輸了的/沒有競價的request但得到了點擊。
- TN:輸了的/沒有競價的request最終也沒有得到點擊。也就是錢很好的省下來了。
假設TP,FP,FN,TN分別代表各自對應情況的總數。那麼他們就可以通過計算來衡量一個模型的準確度。
一個很明顯的方法是準確率。由 (TP + TN)/(TP +FN + FP + TN)定義。但由於我們數據的極度的類不平衡性,這個方法很快被否決。另一個被否定的是特異性,或TN比率,定義為TN/(TN + FP),因為我們的焦點更多是關於點擊而非未點擊。
因此,我們的兩個基本衡量方法是召回率(recall)和精準度(precision)。
召回率是由TP/(TP
+ FN)定義,也可以叫做TP比率。它回答了「你在所有的點擊中獲得了多少比例」的問題。高召回率可以被解釋為對相關的廣告機會利用的好。低召回率是抽象、假設層面的損失金錢;想做廣告的公司沒能將廣告展示給他所能觸及的儘可能多的受眾。理論上召回率可以靠簡單地買下所有bid request來最大化,但這樣並不現實。精準度是定義為TP/(TP + FP),回答了「所有買下的Impression中有多少比例轉化成了點擊」的問題。高的精度意味著錢花在了對的地方。反之則是花了大錢但只得到很少回報。
為了讓AA的客戶高興,我們意識到需要讓召回率和精準度有很好的平衡,從而最大化受眾範圍以及轉化來的點擊量。我想到兩個評估模型的衡量方法:Fβ 分數和Precision-Recall 曲線下面積(AUPR)。
總的來說,Fβ是召回率和精準度的調和平均。它總在兩者之間,但同時又更接近兩者中較小的一個。而算數平均則永遠居於兩者正中。Fβ的公式如下
如公式所示,β的不同導致精度或召回率的不同權重。當β = 1,兩者誰更小,就會更接近誰。當 0 ≤ β < 1,精準度被人為設置的更小,因此權重較召回率值大,當β > 1則相反。
鑒於我們希望優先考慮精準度,我們將β 定在0.5。我們需要在模型中找到最佳的F0.5值。
之前提到我們會進行採樣過疏的操作,1%的採樣過疏模型用於對頭髮護理公司的Impression數據進行訓練,來預測其測試數據,從中得出的F0.5的值。我們也用一般Impression的數據訓練的1%採樣過疏的模型來預測頭髮護理公司的測試數據,同樣得出一個F0.5分數。我們重複這種計算,得出如下數據:
兩組比較後,更好的F0.5值被加粗標註。有趣的是,隨著採樣過疏度減少,每個模型都有所提高。意味著邏輯回歸在一定情況下對於極端的類不均衡來說是穩健的(robust)。具體情況可以對每個案例進行具體分析來進一步了解。
我們的模型比較結果如下:在使用F0.5值作為選擇標準的情況下,鑒於所有模型都是使用擁有最低的樣本複雜率的數據進行的訓練,我們可以得出結論,為具體廣告活動量身定做的模型比一般模型在預測點擊概率上更加有效。
模型的商業應用
接下來我們想進一步研究我們的發現在商業應用上的潛力。我們想為每個模型計算以下值:
- 總花銷(total spent):若AA將模型預測的會帶來點擊的bid request都競價贏下,需要客戶花費多少錢。
- 總共省下多少(total saved):如果AA沒有競價任何模型預測出不會帶來點擊的bid request,可以為客戶省下多少錢?當然這個概念對於實際操作來說有點天真。
為了達到盈利,每個點擊所需的「下游回報」:不同的模型會有不同的購買策略,是否選擇更激進的策略需要更周全的思考,到底每個點擊需要對應獲得多少回報,才能實現盈利?這數字也與選擇的不同策略有關。
投資回報(ROI):如果AA按照模型預測的買下所有會帶來點擊的requests,避開所有不會帶來點擊的requests,那麼對於他的客戶來說,其ROI是多少?如上所說,更激進的策略會帶來更多的TP並因此提高毛利潤,然而它也會帶來更多FP。因此花出的錢和回報的錢的比例是更好的比較兩種模型的方式。
將每個點擊帶來的下游回報用x表示,另外再引入一個變數:每1000次Impression的平均價格,用price表示。
相應的概念的方程如下:
1. total spent
2. total saved
3. 為了達到盈利,每個點擊所需的「下游回報」:
4. ROI:
每個最佳模型的TP,FN,FP和TN以及上面四組值都列在下表中。其中ROI是在x等於兩個模型中較大值的情況下計算得出。我們假設一個真的,單一的x是可以獨立於任何模型存在的,而且為了便於比較,我們將它定在了這樣一個值,從而讓兩個模型都可以實現盈利。
可以看出, campaign-specific模型,從商業角度看相對更保守和風險較低。另外,由於 campaign-specific模型的x值更低,當x未知時,公司更加可能使用campaign-specific模型。
總的來說,這個商業角度出發的對各類模型的分析證實了我們學術角度的分析發現。
題圖 | 站酷海洛
▍關於DT×NYCDSA
DT×NYCDSA是DT財經與紐約數據科學學院合作專欄。紐約數據科學學院(NYC Data Science Academy)是由一批活躍在全球的數據科學、大數據專家和SupStat Inc. 的成員共同組建的教育集團。
▍數據俠門派
本文數據俠Kathryn Bryant 在布林茅爾學院取得數學專業博士學位。她是一個受過訓練的拓撲學家,在研究地理數據的範式的過程中激發起了對數據科學的興趣。她在科羅拉多學院使用R語言教授統計入門課程的過程中也加深了這一興趣。
Paul Ton 是一名受過專業訓練的軟體工程師。他敬畏數據科學的理論基礎,也欣賞用於解決實際問題的實踐技巧。他永遠樂於討論關於數據的一切!
M. Aaron Owen在紐約大學取得進化生物學的博士學位,是福布萊特計劃的成員。他對將自己的分析和科技能力用於行業內並對現實世界帶來有意義的影響感到十分興奮。
▍加入數據俠
「數據俠計劃」是由第一財經旗下DT財經發起的數據社群,包含數據俠專欄、數據俠實驗室系列活動和數據俠聯盟,旨在聚集大數據領域精英,共同挖掘數據價值。了解數據俠計劃詳情請回復「數據俠計劃」,投稿、合作請聯繫datahero@dtcj.com。
推薦閱讀:
※發布Compute.scala,多維數組上的科學計算庫
※Spotify的每周發現(Weekly Discovery):機器學習是如何找到你喜歡的音樂的
※【一起看論文】隨機特徵
※斯坦福機器學習筆記10密度分布估計の混合高斯模型
※Siamese network 孿生神經網路--一個簡單神奇的結構