計算廣告訓練與平滑思想(上)

簡介

目前主流的互聯網廣告有CPT,CPC,CPM這幾種計價方式,其中CPT是按時間計價,比如:在某一個廣告位投放廣告以投放天數計費,這種廣告投放方式是比較簡單的。而CPC和CPM這兩種方式則不同,CPC是按照效果計價,也就是按照用戶點擊數進行計價,那麼理所當然的,相同的曝光量下,廣告的CTR與廣告的點擊單價乘積越高,廣告的收益就越大。CPM是按照曝光次數計價,相同的曝光量下,廣告的曝光單價越高廣告的收益就越大。

註:互聯網廣告投放活動至少有兩個主體,一是擁有廣告位的媒體方,另一個是擁有投放預算的廣告主,有一些廣告系統還有類似於中介的第三方。本文是站在媒體方的角度,討論如何在廣告位資源一定的情況下,獲得儘可能多的廣告收益。所以,對廣告主來說,本文的討論的策略是不適用的。

而工業界最主流的廣告形式是由媒體方來預估CTR,由廣告主來對每一次點擊出價的CPC模式。因為媒體方擁有全部的投放和點擊數據,可以準確的評價各個廣告的CTR,而廣告主擁有通過廣告而產生的用戶消費,可以準確的評價每一次廣告點擊他所能獲得的商業價值,從而能確定商業價值最大化的廣告出價策略。在CPC模式下,雙方都具有達成自己利益最大化的數據條件,所以雙方都會對這樣的合作模式感到滿意。那麼,從媒體的角度講,應該如何使自己的收益最大化呢?

如何達到利益最大化

比如某一個APP有4個廣告位,每個廣告位可產生的曝光數都是不一樣的,為了充分利用每一個廣告位的價值,在不考慮個性化展示的情況下,媒體肯定希望把最賺錢的廣告放在曝光數最多的廣告位(基於的假設是:一個廣告同時放在多個不同的廣告位的效率會低於僅把它放在其中曝光量最大的廣告位上,其餘廣告位放其他的廣告)。

圖1:某一個有四個廣告位的廣告系統展現規則。

評價一個廣告的收益預期,通常使用ECPM。

公式:

其中pi,即:單次點擊價格是由廣告主設定的,那麼ECPM計算的準確與否就直接取決於媒體對於廣告CTR的預測是否準確。如果能夠把每一個廣告的ECPM都算準,那麼接下來要做的事情就非常簡單了,即:把ECPM最高的廣告放在曝光量最大的廣告位上,把ECPM次高的廣告放在曝光量次高的廣告位上,以此類推(如下面公式的含義)。所以,在非個性化展示(個性化展示在後面的文章做討論)的情況下,計算廣告媒體端的核心問題就轉化為了如何把每一個廣告的CTR預估準確。

因此,我們希望得到如下系統:

實際業務中,不能使收益最大化的因素是CTR通常估計不準,特別是對於一個剛加入廣告系統的廣告來說,沒有任何先驗知識,也缺少實驗數據,很難對其CTR做一個合理的估計。接下來我們討論一下該如何思考和解決這樣的問題。

如何預測ECPM

首先,任何一個新廣告加入到已有的廣告系統中,都會破壞廣告系統的平衡。如之前所說,新廣告的ECPM通常是算不準的,如果把新廣告的ECPM預測高了會影響廣告系統的收入,如果把新廣告的ECPM預測低了會導致新廣告很難和其他廣告競爭,從而再也沒有機會被展現在廣告位,比如:在剛才的圖1的廣告系統中,如果把廣告5的ECPM預測為10元以下,那麼它將無法出現在任何一個廣告位上。

為了規避這兩種問題的發生,一種可行的做法是為新廣告開闢專有的訓練位,也就是新的廣告進入系統後,只會出現在一些特定的廣告位,通過在這些訓練位產生足夠的曝光和點擊數據後,對這些新的廣告CTR進行預估,然後再讓其加入穩定的廣告系統中計算ECPM及分配廣告位。比如:在圖1的廣告系統中,可以把位置4設定位訓練位,一旦有新的廣告進入廣告系統,那麼無論它的ECPM被預測為多少,它都將出現在位置4上,直到完成訓練(訓練完成的標誌是廣告被展示的次數達到預先設定的數量)。

但是這種方法有一個嚴重的弊端,就是需要單獨開闢訓練位,而這些訓練位所產生的廣告收益往往非常低,而且不是每一個廣告環境都可以開闢出獨立的訓練位,一個極端的例子是只有一個廣告位的情況,根本沒有其他的位置可以專門用於訓練。因此,為了保證系統的強適應性,最好的方式是不區分新廣告和成熟廣告,在很短的時間內給新廣告一個靠譜的CTR預估,讓其與訓練完成的成熟廣告具有可比性。

短時間內預測CTR?

於是,第二個問題隨之而來,如何在短時間內給新廣告做一個靠譜的CTR預估?能不能直接用短時間內的點擊數據除以曝光數據得到CTR的預估呢?答案是不行。通常根據廣告和媒體的不同,點擊率CTR一般在0.1%到1%之間浮動,那麼假如一個廣告在1000次曝光中產生了3次點擊,估計它的點擊率是0.3%顯然是有很大犯錯的可能性,就好比拋硬幣,為了使得實驗預測的正面可能性儘可能接近真實,需要重複大量的試驗,比如:10000次,才能保證足夠的精確度。廣告和拋硬幣最大的不同在於,廣告的曝光是需要成本的,不可能投入過多的曝光來做CTR預估,否則浪費大量的曝光資源。

CTR預測誤差的影響

至此,我們遇到了第三個問題,即:在曝光數很少的情況下,如何儘可能降低CTR預測不準帶來的負面影響。那我們就分析一下把CTR估計高和估計低分別有哪些負面影響。

如果把CTR估計的過高,那麼ECPM也會被計算的偏高,所以這個廣告就會出現在它原本無法佔有的很好的廣告位上,造成曝光數的浪費。但這種情況並不會持續很久,因為處於較好的廣告位會讓該廣告短時間內積累更多的曝光,隨著曝光數的增加對該廣告的CTR估計會越來越准,直到之前預估的較高的CTR被慢慢修正趨近於其真實CTR。

那麼,如果把CTR估計的過低會有什麼負面影響呢?很容易推斷該廣告的ECPM會偏低,它會被放在更差的位置上,導致起積累曝光數據的速度變慢,甚至無法出現在任何廣告位上。因為廣告是具有時效性的,在起步階段對CTR較低的預估很可能會導致該條廣告永久的沉溺,無法創造任何價值。綜上所述,結論一目了然,在CTR無法準確預估的情況下,把CTR估計高的負面影響遠小於把CTR估計低產生的負面影響。

解決方案

問題的分析先告一段落,我們來討論下如何解決這些問題。接著剛才的問題,既然把CTR估計的高一些負面影響更小,那麼我們就需要在訓練初期給預估的CTR做一定的加成,以降低把CTR預估偏低的可能性。簡單的加一個因子或者乘以一個放大因子不合理的地方在於對所有廣告的CTR預估都一視同仁,但是每個廣告獲得的曝光都不同,其真實CTR也不同,用一個通用的放大方法一定不是最優解。

讓我們換一個角度,把廣告在某一次曝光中是否被點擊看作一個伯努利實驗,我們重複進行很多次這樣的試驗可以得到一個對CTR的估計,同樣的我們也可以得到它在某一個置信水平上的置信區間,如果我們希望把CTR估計的盡量大一些,我們為什麼不能用它的置信區間上界作為它的估計值呢?

表1:三個點擊率相差極大的新廣告,經過置信區間轉化後的CTR差距表

我們假定有三個新廣告,他們的真實轉化率都是0.1%,但廣告1運氣很好,曝光10次,產生了1個點擊;廣告2表現正常,100次曝光產生了1個點擊;廣告3運氣很差,曝光了1000次產生了一個點擊,數據如上表。可以看出,原本預測CTR差距有100倍的廣告1和廣告3,在99.7%置信水平下置信區間上界的轉化後,CTR的差距縮小到10倍左右。因此,使用置信區間上界代替CTR可以降低新廣告間的CTR差距,有助於讓所有的廣告公平的完成訓練。

有了這個思路後,剩下的就只需要考慮怎麼確定置信水平了。因為置信區間上界=CTR+n*標準差,當廣告所獲得的曝光數越小時,CTR可能估計的越不準,也就有可能估計值比真實值小很多,為了使估計值不至於太小,需要讓n更大一些。故當曝光數特別少時,不妨取置信度為99.7%,也就是n=3,當曝光數特別大時,因為預估CTR會趨近於真實CTR,也就不需要用置信區間上界代替CTR的估計值了,可以令n趨近於0。至此,我們只需要設計一個函數,讓其在曝光趨於0時,值趨於3,在曝光趨於無窮大時,值趨於0,然後用該函數的值(因變數)代替n即可。但用曝光數來計算n是最合理的嗎?

顯然不是,因為不同的廣告訓練需要的曝光數是不一樣的。還是用拋硬幣舉例,可能試驗100次就能大致測出其正面出現的概率,不會有多少偏差,但對一個點擊率千分之幾的廣告來說,試驗1000次可能都不會有一個點擊,無法估計其CTR。所以CTR越高的廣告訓練所需的曝光數越少。

表2:不同預測CTR的廣告,預測準確度的差異。

根據上表可以看出,在同樣置信區間下,對於預估CTR較高的廣告1來說,它的標準差只有其預測CTR的3倍,而對於廣告3來說,其標準差是其CTR的31倍,這充分說明了CTR絕對值越小的廣告,越難預測准。因此為了得到準確的預測CTR,訓練需要的曝光數也就越多。

既然每個廣告訓練所需的曝光數不同,那我們就用廣告訓練完成的百分比代替曝光數,來計算n的大小。也就是說訓練完成百分比越低的廣告,n越大,從而得到一個更大的CTR估計值;對於訓練接近完成的廣告來說,因為其在訓練中積累了足夠的數據,CTR預測的相對較準確,所以n會接近0,只能得到一個稍稍高於試驗數據的CTR。

至於如何計算每個廣告訓練所需的曝光數,請聽下回分解。下面給出一個置信水平和訓練完成度的函數曲線圖,當然讀者可以根據自己所處的業務環境自行設計這個函數,下面的圖僅供參考:

圖2:訓練完成度和置信水平的曲線圖,訓練完成度越低,置信水平越高,n也就越大,置信區間上界從而越大,CTR預估得到的加成幅度就越大。

總結

讓我們來做一個總結,為了不需要設置獨立的訓練位,我們需要在很少的曝光中估計新廣告的CTR,因此在不可能準確估計的情況下,需要儘可能減少估計錯誤造成的負面影響。其中一種比較巧妙的方法是用置信區間的上界作為CTR的估計值,同時根據其訓練完成的比例,動態的調整其置信水平。這樣CTR被預測低的廣告也可以有不錯的ECPM,而CTR被預測高的廣告可以快速通過訓練使預估CTR回歸到合理的水平。這樣整個廣告系統可以通過自身的訓練機制靈活調整,較好的保持平衡和保證收益。

本文作者:Ivan Cui,更多內容,請訪問:BitTiger.io, 掃描下面二維碼,關注微信公眾賬號「論碼農的自我修養」

推薦閱讀:

2017年度15個最好的數據科學領域Python庫
2017年安全數據科學領域的4個趨勢:機器人、威脅情報、對抗機器學習以及深度學習是如何影響安全領域的
9個不錯的數據可視化工具
直播 | Facebook Analytics Manager如何運用300PB海量資料庫?
沒用過TF,沒摸過GPU,我算不算是真正的數據科學家?

TAG:数据科学家 | 大数据 | 计算广告学 |