計(jì)算廣告中主要模塊、策略及其場(chǎng)景(下)
本文是我最近學(xué)習(xí)的一個(gè)總結(jié),之前的文章多是和功能特別是廣告主界面有關(guān),而本篇文章則是和策略有關(guān)。在文章會(huì)講述計(jì)算廣告(主要是DSP)中的主要模塊、用到的策略及其場(chǎng)景。希望大家能和我一樣,在了解廣告業(yè)務(wù)的同時(shí),還能對(duì)策略的設(shè)計(jì)有一定了解,總結(jié)出一些通用的方法。
本文分三個(gè)部分,功能和策略,主講功能型產(chǎn)品和策略型產(chǎn)品的區(qū)別;架構(gòu)綜述,主講廣告系統(tǒng)的流程、模塊和技術(shù)架構(gòu);算法和場(chǎng)景,主講各個(gè)模塊和場(chǎng)景中用到的算法。功能和策略、架構(gòu)綜述在上篇已經(jīng)講了,在此下篇中將接著講算法和場(chǎng)景。
GBDT模型
GBDT的全稱(chēng)是(Gradien Boosting Decision Trees),是一種決策樹(shù),屬于Boosting族,能將弱學(xué)習(xí)器提升為強(qiáng)學(xué)習(xí)器。GBDT中文叫梯度提升決策樹(shù),由多棵決策樹(shù)構(gòu)成,最終的預(yù)測(cè)結(jié)果是將所有決策樹(shù)的結(jié)果累加得到。
提升即迭代,是不斷縮小殘差(真實(shí)值-預(yù)測(cè)值)的過(guò)程,建立M個(gè)決策樹(shù)模型,每個(gè)模型都是弱分類(lèi)器,每次分類(lèi)后對(duì)分錯(cuò)的數(shù)據(jù)的權(quán)重增加后再分類(lèi),一直到訓(xùn)練和測(cè)試數(shù)據(jù)獲得較好結(jié)果。
訓(xùn)練一個(gè)提升樹(shù)模型來(lái)預(yù)測(cè)年齡:訓(xùn)練集是4個(gè)人,A,B,C,D年齡分別是14,16,24,26。樣本中有購(gòu)物金額、上網(wǎng)時(shí)長(zhǎng)、經(jīng)常到百度知道提問(wèn)等特征。
提升樹(shù)的過(guò)程如下:
該例子很直觀的能看到,預(yù)測(cè)值等于所有樹(shù)值得累加(GBDT是加權(quán)累加),如A的預(yù)測(cè)值=樹(shù)1左節(jié)點(diǎn)值15+ 樹(shù)2左節(jié)點(diǎn)-1=14??梢钥吹降诙w樹(shù)是對(duì)第一顆樹(shù)的補(bǔ)充,學(xué)術(shù)的描述就是每一次建立模型是在之前建立模型的損失函數(shù)的梯度下降方向,這就是梯度提升的過(guò)程,也用到了損失函數(shù)。
F0在這里是初始值,Ti是一棵棵的決策樹(shù),不同的問(wèn)題選擇不同的損失函數(shù)和初始值。損失函數(shù)可以用平方損失函數(shù)或者指數(shù)損失函數(shù)等。
此外,在使用特征或?qū)傩赃M(jìn)行分支時(shí),分支規(guī)則采用最小均方差的方式,即預(yù)測(cè)誤差的殘差的平方和去除以N,誤差越多錯(cuò)的越多,通過(guò)這種方式找到最好的分支依據(jù)。
GBDT的損失函數(shù)和邏輯回歸中的概念類(lèi)似,描述的是當(dāng)前模型偏差的程度,損失函數(shù)越大,偏差越大,模型出錯(cuò)程度越高。
訓(xùn)練目的就是讓損失函數(shù)的值不斷下降,每次修正的過(guò)程中按梯度下降的方向作為修正方向,步長(zhǎng)選擇不能過(guò)大,過(guò)大的逼近可能會(huì)導(dǎo)致過(guò)擬合,每次走一小步可以避免這種情況,但步長(zhǎng)范圍設(shè)置過(guò)小也會(huì)導(dǎo)致計(jì)算和預(yù)測(cè)時(shí)間大大增加。步長(zhǎng)等超參數(shù)的如何設(shè)置的問(wèn)題,幾乎在絕大部分模型中都會(huì)遇到。
在《在線(xiàn)廣告DSP平臺(tái)實(shí)時(shí)競(jìng)價(jià)算法的研究與實(shí)現(xiàn)》 中,運(yùn)用GBDT來(lái)預(yù)估CTR預(yù)估,是用開(kāi)源的xgboost實(shí)現(xiàn),設(shè)置樹(shù)深度為4,訓(xùn)練了300棵數(shù),學(xué)習(xí)速率設(shè)為0.1。
決策樹(shù)的個(gè)數(shù)越多學(xué)習(xí)越充分,但也會(huì)導(dǎo)致過(guò)擬合。學(xué)習(xí)速率可以稍微設(shè)快,可以減少樹(shù)的數(shù)量。
實(shí)驗(yàn)中特征變量選取的都是連續(xù)值變量,如不同地區(qū)的特征變量則計(jì)算出它的發(fā)生頻率和點(diǎn)擊率,并將其作為梯度提升決策樹(shù)的兩個(gè)特征。廣告的底價(jià)由于是連續(xù)值,可直接用于梯度提升決策樹(shù)的變量值。
并非所有變量都能對(duì)模型產(chǎn)生很大影響,因此在特征選取時(shí)不會(huì)像邏輯回歸那樣需要選擇很多特征,GBDT會(huì)放棄大多數(shù)特征而保留一小部分,學(xué)習(xí)過(guò)程中選用了72個(gè)特征作為訓(xùn)練和預(yù)測(cè)的變量。而邏輯回歸在實(shí)驗(yàn)中共選取了61萬(wàn)余個(gè)特征。
GBDT+LR模型
由于GBDT所需特征量遠(yuǎn)小于邏輯回歸的特征數(shù)量,自然想到利用GBDT來(lái)選擇特征。Facebook基于GBDT提出了GBDT+LR模型,這是一種利用GBDT自動(dòng)進(jìn)行特征篩選和組合,進(jìn)而生成新的離散特征向量,再把該特征向量當(dāng)作LR模型輸入,預(yù)估CTR的模型結(jié)構(gòu)。
模型結(jié)構(gòu)
其中用GBDT實(shí)現(xiàn)特征工程和用LR預(yù)估CTR兩步是獨(dú)立訓(xùn)練的,因此不存在如何將LR梯度會(huì)傳到GBDT這類(lèi)復(fù)雜問(wèn)題。
GBDT中每棵樹(shù)生成的過(guò)程是一棵標(biāo)準(zhǔn)的回歸樹(shù)生成過(guò)程,因此每個(gè)節(jié)點(diǎn)的分裂是一個(gè)自然的特征選擇的過(guò)程,而多層節(jié)點(diǎn)的結(jié)構(gòu)自然進(jìn)行了有效的特征組合,也就非常高效的解決了過(guò)去非常棘手的特征選擇和特征組合的問(wèn)題。
利用訓(xùn)練集訓(xùn)練好GBDT模型之后,就可以利用該模型完成從原始特征向量到新的離散型特征向量的轉(zhuǎn)化。
具體過(guò)程是這樣的,一個(gè)訓(xùn)練樣本在輸入GBDT的某一子樹(shù)后,會(huì)根據(jù)每個(gè)節(jié)點(diǎn)的規(guī)則最終落入某一葉子節(jié)點(diǎn),那么我們把該葉子節(jié)點(diǎn)置為1,其他葉子節(jié)點(diǎn)置為0,所有葉子節(jié)點(diǎn)組成的向量即形成了該棵樹(shù)的特征向量,把GBDT所有子樹(shù)的特征向量連接起來(lái),即形成了后續(xù)LR輸入的特征向量。
GBDT生成特征向量的過(guò)程
舉例來(lái)說(shuō),如上圖所示,GBDT由三顆子樹(shù)構(gòu)成,每個(gè)子樹(shù)有4個(gè)葉子節(jié)點(diǎn),一個(gè)訓(xùn)練樣本進(jìn)來(lái)后,先后落入“子樹(shù)1”的第3個(gè)葉節(jié)點(diǎn)中,那么特征向量就是[0,0,1,0],“子樹(shù)2”的第1個(gè)葉節(jié)點(diǎn),特征向量為[1,0,0,0],“子樹(shù)3”的第4個(gè)葉節(jié)點(diǎn),特征向量為[0,0,0,1],最后連接所有特征向量,形成最終的特征向量[0,0,1,0,1,0,0,0,0,0,0,1]。
由于決策樹(shù)的結(jié)構(gòu)特點(diǎn),決策樹(shù)的深度就決定了特征交叉的維度。如果決策樹(shù)的深度為4,通過(guò)三次節(jié)點(diǎn)分裂,最終的葉節(jié)點(diǎn)實(shí)際上是進(jìn)行了3階特征組合后的結(jié)果,如此強(qiáng)的特征組合能力顯然是FM系的模型不具備的。
但由于GBDT容易產(chǎn)生過(guò)擬合,以及GBDT這種特征轉(zhuǎn)換方式實(shí)際上丟失了大量特征的信息,因此我們不能簡(jiǎn)單說(shuō)GBDT由于特征交叉的能力更強(qiáng),效果就比FFM好,在模型的選擇和調(diào)試上,永遠(yuǎn)都是多種因素綜合作用的結(jié)果。GBDT+LR比FM重要的意義在于,它大大推進(jìn)了特征工程模型化這一重要趨勢(shì)。
POLY2、FM、FFM模型
由于LR模型的表達(dá)能力非常初級(jí),只能使用單一特征,無(wú)法利用高維信息。而針對(duì)這個(gè)問(wèn)題,工程師通常需要人工組合特征,但是人力畢竟有限,因此就有了POLY2模型。并從POLY2進(jìn)化到FM再到FFM,這其中體現(xiàn)出的方向、思維和方法論,比模型本身更值得我們學(xué)習(xí)。
POLY2
在上面POLY2二階部分的目標(biāo)函數(shù)中(上式省略一階部分和sigmoid函數(shù)的部分),可以看到POLY2對(duì)所有特征進(jìn)行了兩兩交叉,并對(duì)所有的特征組合賦予了權(quán)重。POLY2通過(guò)暴力組合特征的方式一定程度上解決了特征組合的問(wèn)題。并且由于本質(zhì)上仍是線(xiàn)性模型,其訓(xùn)練方法與LR并無(wú)區(qū)別,便于工程上的兼容。
而POLY2的缺陷在于是對(duì)特征組合賦予權(quán)重,特征組合會(huì)讓原本就很稀疏的特征向量更加稀疏,如果樣本中沒(méi)有出現(xiàn)這個(gè)組合特征就學(xué)習(xí)不到權(quán)重;同時(shí)權(quán)重參數(shù)的數(shù)量由n上升到n^2,極大增加了訓(xùn)練復(fù)雜度和收斂難度。
FM
相比POLY2,主要區(qū)別是用兩個(gè)向量的內(nèi)積(wj1·wj2)取代了單一的權(quán)重。FM為每個(gè)特征都學(xué)習(xí)一個(gè)隱向量(latent vector),在特征交叉時(shí),使用兩個(gè)特征隱向量的內(nèi)積作為交叉特征的權(quán)重。每一個(gè)隱向量都包含k個(gè)latent factors,k是人為設(shè)定的超參數(shù),例如上述的k就是2。
訓(xùn)練數(shù)據(jù)
以此訓(xùn)練數(shù)據(jù)為例,在ESPN廣告中,Adidas的樣本只有一個(gè),預(yù)測(cè)結(jié)果是-1,那么Poly2對(duì)于這個(gè)組合特征會(huì)學(xué)到一個(gè)非常大的負(fù)的權(quán)重。但是,F(xiàn)M對(duì)于樣本(ESPN,Adidas)的預(yù)測(cè),是由兩個(gè)向量決定的:W_espn * W_adidas 。 而這兩個(gè)向量,可以單獨(dú)的去從其他的樣本中學(xué)習(xí),比如:(ESPN,Nike),(BBC,Adidas)。 所以FM這樣學(xué)習(xí)的更加準(zhǔn)確。
通過(guò)引入特征隱向量的方式,直接把原先n^2級(jí)別的權(quán)重?cái)?shù)量減低到了n*k(k為隱向量維度,n>>k)。也許FM相比POLY2丟失了某些信息的記憶能力,但是泛化能力大大提高,這對(duì)于互聯(lián)網(wǎng)的數(shù)據(jù)特點(diǎn)是非常重要的。
FFM
FFM模型學(xué)習(xí)每個(gè)特征在f個(gè)域上的k維隱向量,交叉特征的權(quán)重由特征在對(duì)方特征域上的隱向量?jī)?nèi)積得到,權(quán)重?cái)?shù)量共n*k*f個(gè)??傊現(xiàn)FM引入了域的概念,為模型引入了更多的信息,模型建模更加準(zhǔn)確,但是計(jì)算復(fù)雜度較高達(dá)到kn^2。
損失函數(shù)
損失函數(shù)可以用logistic loss,加上L2懲罰項(xiàng),因此只能用于二分類(lèi)。其中,yi是-1,+1表示label,L是樣本數(shù)量,lambda是懲罰項(xiàng)系數(shù)。
CTR預(yù)估平臺(tái)
在實(shí)際業(yè)務(wù)中CTR預(yù)估的場(chǎng)景有很多,例如點(diǎn)評(píng)猜你喜歡、點(diǎn)評(píng)商品詳情頁(yè)推薦、美團(tuán)猜你喜歡等等多款應(yīng)用多個(gè)業(yè)務(wù),而CTR預(yù)估中模塊等都是一致的,這就涉及到造輪子的問(wèn)題。
廣告排序架構(gòu)圖
廣告架構(gòu)圖中最重要的就是精排,前文也有講,離線(xiàn)要為在線(xiàn)提供模型等等,離線(xiàn)訓(xùn)練和在線(xiàn)預(yù)估統(tǒng)稱(chēng)為CTR預(yù)估。
從多套流程到統(tǒng)一框架
而一開(kāi)始美團(tuán)使用的是【多套流程】方案,一方面是不同位置之間區(qū)別較大,點(diǎn)評(píng)和美團(tuán)是差異很大的兩個(gè)應(yīng)用,猜你喜歡和詳情頁(yè)推薦差異也很大;另一方面也是有很多隱藏的歷史原因,因此不能簡(jiǎn)單的把輪子組合到一起。
多套流程
如上圖所示,為了快速支持業(yè)務(wù),在不同位置上有不同的團(tuán)隊(duì)和人員負(fù)責(zé),但是存在以下幾個(gè)問(wèn)題:
- 分位置優(yōu)化成本高,對(duì)某個(gè)鏈路的優(yōu)化不能迅速的擴(kuò)大到其他位置;
- 對(duì)人員要求高,要求掌握全鏈路所有模塊,整個(gè)流程復(fù)雜;
- 在線(xiàn)還要做很多工作,很容易出錯(cuò),離線(xiàn)效果不等于在線(xiàn)效果。
要調(diào)整到【統(tǒng)一框架】方案,其中有三個(gè)問(wèn)題:
- 雙平臺(tái)多業(yè)務(wù),代碼如何統(tǒng)一合并;
- 如何保證線(xiàn)下線(xiàn)上效果一致;
- 復(fù)雜的離線(xiàn)回溯中涉及到半年的數(shù)據(jù)數(shù)百個(gè)任務(wù)如何調(diào)度。
市面上有在線(xiàn)到離線(xiàn)和離線(xiàn)到在線(xiàn)兩個(gè)流派,前者重在線(xiàn),在線(xiàn)做特征速度很快,而且能保證線(xiàn)上線(xiàn)下一致,但是對(duì)特征工程和海量數(shù)據(jù)不友好;后者重離線(xiàn),離線(xiàn)做歷史數(shù)據(jù)的拼接、樣本、模型訓(xùn)練等,更適合海量數(shù)據(jù)量,例如百度要用最近半年的數(shù)據(jù)。美團(tuán)用的是離線(xiàn)到在線(xiàn)。
統(tǒng)一框架
- Match是個(gè)基本的打分單元,在不同場(chǎng)景下打分單元不同,由業(yè)務(wù)定義,例如:在廣告推薦場(chǎng)景就是遇到某個(gè)廣告并對(duì)其打分。
- Cube則是CTR預(yù)估流程的抽象,所有的CTR預(yù)估都是這個(gè)流程,與業(yè)務(wù)無(wú)關(guān)。
- Tesla是業(yè)務(wù)插件,用來(lái)定義Match是什么、特征是什么等。
- Solar則是離線(xiàn)復(fù)雜邏輯調(diào)度以及基本算子,包括多天數(shù)據(jù)、user context ad如何構(gòu)建、怎么match等多天任務(wù)流,以及整個(gè)離線(xiàn)過(guò)程中的功能因子,例如:數(shù)據(jù)庫(kù)常見(jiàn)操作join,在千億樣本和千億特征中,join會(huì)傾斜,而抽象出來(lái)后只要用Solar中的算子即可無(wú)需考慮傾斜的情況。
解決離線(xiàn)在線(xiàn)一致的情況,要從數(shù)據(jù)一致和代碼一致兩個(gè)角度去考慮。由于離線(xiàn)在線(xiàn)用的Cube是同一套,代碼自然一致。此外,離線(xiàn)ETL加工數(shù)據(jù)并同步到線(xiàn)上,對(duì)于一個(gè)請(qǐng)求User Context Ad三元組,拼成一樣的Match,以此實(shí)現(xiàn)數(shù)據(jù)的一致。
統(tǒng)一框架中的分工
統(tǒng)一框架就是每個(gè)平臺(tái)+虛線(xiàn)框就有某個(gè)人負(fù)責(zé),大大提高開(kāi)發(fā)和部署效率。但是仍然存在幾個(gè)問(wèn)題,業(yè)務(wù)代碼接口較多,實(shí)現(xiàn)較難,美團(tuán)推薦接入要2周;仍舊要掌握全鏈路,離線(xiàn)在線(xiàn)都要做,容易出錯(cuò);數(shù)據(jù)、代碼共享復(fù)雜,管理也較為復(fù)雜。
從統(tǒng)一框架到框架平臺(tái)化
框架平臺(tái)化
上圖中不存在Cube和Tesla,可總結(jié)為一句話(huà):一份數(shù)據(jù)三個(gè)流程。
數(shù)據(jù)就是offline entity,之前的User Context Ad都是entity,是排序中的實(shí)體,實(shí)際用的時(shí)候可以選擇是在線(xiàn)entity還是離線(xiàn)回溯的entity。
- 第一個(gè)流程就是match joiner,指要把哪些entity join成match。
- 第二個(gè)流程是特征提取。
- 第三個(gè)流程是模型訓(xùn)練和預(yù)估。
全部都可以抽象出來(lái),通過(guò)配置實(shí)現(xiàn),在除了特征處理以外的流程,不同業(yè)務(wù)不一樣的參數(shù)較少,所以比較好做,但是特征處理有點(diǎn)麻煩。
特征抽取
element中是基本算子,operator、generator等都是定義好的,只需要配置即可使用。
框架平臺(tái)化的分工
根據(jù)上圖中的分工,可以很明顯看到,專(zhuān)人負(fù)責(zé)專(zhuān)模塊,數(shù)據(jù)、特征、模型、業(yè)務(wù)等都有人負(fù)責(zé),業(yè)務(wù)則是把數(shù)據(jù)定義好、把各個(gè)流程組裝好,無(wú)需寫(xiě)代碼直接配置即可。新業(yè)務(wù)通過(guò)復(fù)用已有entity只需要1天時(shí)間,模塊化流水線(xiàn)化效率大大提升,模塊專(zhuān)人優(yōu)化降低門(mén)檻做深做精。
總結(jié)美團(tuán)CTR預(yù)估平臺(tái)的特點(diǎn),能力強(qiáng)勁,支持千億樣本百億特征的海量數(shù)據(jù)處理,支持LR、XGB、DNN等多模型;使用簡(jiǎn)便,全流程可配置,拖拽可視化即可實(shí)現(xiàn)。
效果優(yōu)化
優(yōu)化目標(biāo)有兩點(diǎn),讓CTR預(yù)估更準(zhǔn)確或者是廣告樣式更吸引人點(diǎn)擊。優(yōu)化方向則有數(shù)據(jù)、特征、模型、策略和樣式。
優(yōu)化方向
從美團(tuán)上來(lái)說(shuō),模型經(jīng)過(guò)XGBoost→LR→FFM→DNN能力越來(lái)越強(qiáng),樣本量從億級(jí)→十億級(jí)→百億級(jí)→More越來(lái)越大,特征維度從百級(jí)→億級(jí)→千億級(jí)越來(lái)越高。樣本量、特征維度與模型之間并不是孤立的,模型并非簡(jiǎn)單的使用,而是要與合適量級(jí)的樣本量和特征維度相配合,才能發(fā)揮模型的能力。
從XBGoost到大規(guī)模稀疏模型LR,模型描述能力更強(qiáng),復(fù)雜低維特征到簡(jiǎn)單高維特征,從百萬(wàn)樣本到億級(jí)別樣本,CTR大約提升10%;從億級(jí)別樣本到百億樣本,從百萬(wàn)特征到億特征,CTR大約提升5%。
從LR到FFM,F(xiàn)FM能夠自動(dòng)學(xué)習(xí)特征交叉似的表達(dá)能力更強(qiáng),適用于未知場(chǎng)景的預(yù)估能力更強(qiáng),CTR大約提升3%。
總體來(lái)看,隨著樣本來(lái)那個(gè)增加,效果整體提升并趨于收斂;隨著特征規(guī)模增加,效果先變好后變差,前期特征變多模型表達(dá)能力變強(qiáng),稀疏特征變多,過(guò)擬合嚴(yán)重,泛化能力變?nèi)酢?/p>
樣本量特征維度和AUC
從提升CTR效果上來(lái)說(shuō),特征>樣式>模型>策略>數(shù)據(jù),模型要與合適量級(jí)的樣本量和特征維度相配合才能真正發(fā)揮能力,而非簡(jiǎn)單的更換模型。
數(shù)據(jù)和策略上的調(diào)整很多時(shí)候還不如一個(gè)標(biāo)紅的樣式,但是不可否認(rèn)數(shù)據(jù)和策略等的價(jià)值,要根據(jù)不同優(yōu)化方向的效果和當(dāng)前場(chǎng)景和瓶頸,排出不同優(yōu)先級(jí),選擇不同的資源投入。
Y>N>Z>M>X
出價(jià)
下圖中的Bidding Engine就是競(jìng)價(jià)模塊,其中包括實(shí)時(shí)的出價(jià)計(jì)算(Bid Calculation)、曝光價(jià)值評(píng)估(Impression Evaluation)和離線(xiàn)的競(jìng)價(jià)函數(shù)優(yōu)化(Bidding Function Optimisation)、CTR/CVR預(yù)估、勝出模型。出價(jià)計(jì)算和競(jìng)價(jià)函數(shù)優(yōu)化是核心,其他功能并非所有公司都會(huì)用到的。
競(jìng)價(jià)引擎
核心問(wèn)題
競(jìng)價(jià)的目的就是約束下最大化DSP利潤(rùn),考慮因素包括預(yù)算約束、曝光價(jià)值、競(jìng)價(jià)勝出率等。不同的競(jìng)價(jià)策略考慮的因素不同,并非每種策略都要考慮所有因素。
約束下最大化DSP利潤(rùn)模型
把流量、廣告分為供給節(jié)點(diǎn)、需求節(jié)點(diǎn),約束一是某個(gè)供給節(jié)點(diǎn)提供給某個(gè)需求節(jié)點(diǎn)的占比≤1,某個(gè)供給節(jié)點(diǎn)的總供給量就是1,約束二是某個(gè)需求節(jié)點(diǎn)購(gòu)買(mǎi)某個(gè)供給節(jié)點(diǎn)的總花費(fèi)≤需求節(jié)點(diǎn)預(yù)算,DSP利潤(rùn)則是所有供給節(jié)點(diǎn)與需求節(jié)點(diǎn)之間的每次分配的(收益r-成本m)之和。
流量節(jié)點(diǎn)往小了看,可以是每個(gè)曝光就是一個(gè)流量節(jié)點(diǎn)。收益r則是此次曝光的曝光價(jià)值,曝光價(jià)值=點(diǎn)擊率*點(diǎn)擊價(jià)值=點(diǎn)擊率*轉(zhuǎn)化率*轉(zhuǎn)化價(jià)值,成本m則是此次曝光的曝光成本,即此次曝光最后結(jié)算費(fèi)用,對(duì)于歷史曝光來(lái)說(shuō),成本是已知的,而對(duì)于此次曝光,成本是未知的,且不一定是出價(jià),勝率也是未知的。
曝光價(jià)值預(yù)估(收益r)
曝光價(jià)值=點(diǎn)擊率*點(diǎn)擊價(jià)值=點(diǎn)擊率*轉(zhuǎn)化率*轉(zhuǎn)化價(jià)值,如果廣告主是對(duì)每次曝光出價(jià),那么曝光價(jià)值直接用廣告主的出價(jià)價(jià)格即可;如果廣告主是對(duì)每次點(diǎn)擊出價(jià),那么點(diǎn)擊價(jià)值直接用廣告主的出價(jià)價(jià)格即可,點(diǎn)擊率仍然需要預(yù)估;如果廣告主是對(duì)每次安裝/購(gòu)物等轉(zhuǎn)化行為出價(jià),那么轉(zhuǎn)化價(jià)值直接用廣告主的出價(jià)價(jià)格即可,轉(zhuǎn)化率仍然需要預(yù)估。
其實(shí)除了轉(zhuǎn)化率之外,還有到達(dá)率也會(huì)影響點(diǎn)擊價(jià)值,點(diǎn)擊價(jià)值(a,u,c)=到達(dá)率(a,c)*轉(zhuǎn)化率(a,u)*轉(zhuǎn)化價(jià)值(a),a是廣告主,c是媒體,u是用戶(hù),但是達(dá)到率dsp控制不了,不在討論范圍內(nèi)。
點(diǎn)擊率預(yù)估方式上文已經(jīng)講過(guò)了,而轉(zhuǎn)化率的預(yù)估則大有不同。目標(biāo)、轉(zhuǎn)化行為、廣告主等多種多樣,不同目標(biāo)甚至用的模型都不同,而且轉(zhuǎn)化樣本少,數(shù)據(jù)很稀疏,同時(shí)廣告投放次數(shù)對(duì)轉(zhuǎn)化率影響很大。一定要注意廣告投放次數(shù)和轉(zhuǎn)化率冷啟動(dòng)兩個(gè)點(diǎn)。
同一個(gè)廣告針對(duì)同一個(gè)人群進(jìn)行連續(xù)投放,越到后面效果肯定越差,所以要把廣告投放次數(shù)放入模型中。以特定廣告與人群的歷史投放數(shù)據(jù)為基礎(chǔ),采用時(shí)間序列分析方法,訓(xùn)練出轉(zhuǎn)化率隨投放重復(fù)次數(shù)變化的曲線(xiàn)模型參數(shù)。該模型可以用來(lái)預(yù)測(cè)特定特定廣告、人群、重復(fù)投放次數(shù)下的轉(zhuǎn)化率。
轉(zhuǎn)化率預(yù)測(cè)時(shí),要特別注意是否有足夠的歷史數(shù)據(jù),此外預(yù)測(cè)不可貿(mào)然交給機(jī)器完成,要把統(tǒng)計(jì)、經(jīng)驗(yàn)等結(jié)合起來(lái)估算轉(zhuǎn)化率。當(dāng)然,如果是DSP廣告主類(lèi)型和轉(zhuǎn)化流程基本一致,例如專(zhuān)注于游戲客戶(hù)的DSP或者是專(zhuān)注于阿里體系內(nèi)電商的阿里媽媽?zhuān)敲丛谵D(zhuǎn)化數(shù)據(jù)充分情況下可采用機(jī)器學(xué)習(xí)建模方法預(yù)測(cè)。
若沒(méi)有足夠歷史數(shù)據(jù),則要引入基于規(guī)則的簡(jiǎn)單方法,核心思想就是以最相似廣告最近一次對(duì)該人群進(jìn)行投放的轉(zhuǎn)化率作為參考。
對(duì)應(yīng)的廣告與人群在最近1周內(nèi)有投放記錄時(shí),取最近一天投放時(shí)的轉(zhuǎn)化率;對(duì)應(yīng)的廣告與人群在歷史上有投放記錄時(shí),取歷史中選定的最近一段時(shí)間內(nèi)投放轉(zhuǎn)化率放入率平均值;若對(duì)應(yīng)的廣告與人群在歷史上沒(méi)投放記錄,但同類(lèi)廣告與該人群有投放記錄時(shí),取歷史中選定的最近一段時(shí)間內(nèi)投放轉(zhuǎn)化率放入平均值;若對(duì)應(yīng)的廣告或同類(lèi)廣告與該人群在歷史上都沒(méi)投放記錄,取平臺(tái)平均的投放轉(zhuǎn)化率值。
成本m和勝率函數(shù)
可直接把出價(jià)當(dāng)做成本m,但是多是采用第二高價(jià)競(jìng)價(jià),出價(jià)比成本要低,最好建立一個(gè)專(zhuān)門(mén)的市價(jià)預(yù)測(cè)模型來(lái)估計(jì)m,但遠(yuǎn)沒(méi)有曝光價(jià)值的預(yù)估可靠,不宜使用過(guò)于復(fù)雜的模型和算法,主要使用時(shí)間、地域、媒體屬性等影響明確的因素來(lái)進(jìn)行預(yù)估。
有些競(jìng)價(jià)策略還考慮了勝率函數(shù),勝率函數(shù)可根據(jù)歷史樣本得到,但是要注意針對(duì)每個(gè)廣告主進(jìn)行訂制,且ADX發(fā)來(lái)的競(jìng)價(jià)請(qǐng)求一般是有低價(jià)的,低于底價(jià)的競(jìng)價(jià)都是不成功,而高于一定價(jià)格,競(jìng)價(jià)一般都會(huì)成功,因此勝率函數(shù)兩端的曲率要高。此外,點(diǎn)擊率低于某個(gè)值,還可直接不出價(jià)。
在這個(gè)過(guò)程中,還存在幸存者偏差和刪失兩個(gè)問(wèn)題。幸存者偏差是指,作為DSP贏下了所有bidding請(qǐng)求,并可以觀察到所有bidding的市場(chǎng)價(jià)格。然而,在實(shí)際RTB中,各家DSP的策略不斷調(diào)整,導(dǎo)致每家DSP都無(wú)法得到競(jìng)標(biāo)失敗的數(shù)據(jù)的反饋,且這種數(shù)據(jù)缺失是非隨機(jī)的。
這會(huì)導(dǎo)致非常嚴(yán)重的后果:從ADX得到的反饋用于訓(xùn)練的數(shù)據(jù)和測(cè)試的數(shù)據(jù)分布不同。
競(jìng)價(jià)動(dòng)態(tài)數(shù)據(jù)過(guò)濾器
競(jìng)價(jià)過(guò)程等同于一個(gè)動(dòng)態(tài)的數(shù)據(jù)過(guò)濾器,隨bid value而不同。由于競(jìng)價(jià)失敗的請(qǐng)求無(wú)法得到曝光,不能出現(xiàn)在模型依賴(lài)的訓(xùn)練數(shù)據(jù)中,整個(gè)訓(xùn)練數(shù)據(jù)相對(duì)于full-volume data是有偏的。
訓(xùn)練數(shù)據(jù)與測(cè)試數(shù)據(jù)的總體分布相同是監(jiān)督學(xué)習(xí)(supervised learning)的理論基石。在常見(jiàn)的業(yè)務(wù)場(chǎng)景如推薦中,訓(xùn)練樣本與測(cè)試樣本存在采樣偏差,但總體分布是相同的;而在DSP中,樣本的總體分布都不相同。
在有偏分布下,任何監(jiān)督學(xué)習(xí)方法都是低效且過(guò)擬合的;需要的一種解決思路是將有偏的訓(xùn)練數(shù)據(jù)分布試圖重構(gòu)到整體分布上。例如用Kaplan-Meier Product-Limit可針對(duì)“存在非隨機(jī)數(shù)據(jù)缺失”的情況進(jìn)行分布估計(jì)。
在實(shí)時(shí)競(jìng)價(jià)廣告系統(tǒng)中普遍存在一個(gè)“軟地板價(jià)”的機(jī)制,若最高價(jià)低于軟地板價(jià)則采用第一高價(jià),此時(shí)無(wú)關(guān)DSP贏標(biāo)與否都只能觀測(cè)到第一高價(jià)(即支付價(jià)格)。也就是說(shuō),會(huì)出現(xiàn)贏標(biāo)后只得到自己出價(jià)的情況,只能作出估計(jì)第二高價(jià)最高不超過(guò)自己實(shí)際支付價(jià)格,因此這種得到的估價(jià)是估值過(guò)高的。這種就叫刪失??梢砸敫?jìng)價(jià)失敗價(jià)格因素。
競(jìng)價(jià)策略
前文雖然說(shuō)了很多因素,但是競(jìng)價(jià)策略有很多種,并非每種都會(huì)考慮上面所有因素。例如下圖中就是一些競(jìng)價(jià)策略考慮到的因素,當(dāng)然除了這些以外還有其他競(jìng)價(jià)策略。
幾種競(jìng)價(jià)策略
出價(jià)邏輯
定值出價(jià):對(duì)所有展示請(qǐng)求都出同一個(gè)價(jià)格,模型的唯一參數(shù)就是其價(jià)格。簡(jiǎn)單粗暴,但很多DSP在用。
隨機(jī)出價(jià):在一個(gè)給定價(jià)格區(qū)間中隨機(jī)出價(jià),唯一參數(shù)是競(jìng)價(jià)的區(qū)間上限,一般也給定,下限一般是0。
真實(shí)出價(jià):就是按照計(jì)算的曝光價(jià)值出價(jià),計(jì)算多少就出價(jià)多少,當(dāng)然轉(zhuǎn)化率預(yù)估的問(wèn)題之前也有提到。
受限點(diǎn)擊成本出價(jià):在CPC模式下,廣告主一般會(huì)設(shè)定可接受的最高點(diǎn)擊成本(mCPC),這時(shí)就可以通過(guò)計(jì)算mCPC*CTR來(lái)出價(jià)。如果點(diǎn)擊率預(yù)估準(zhǔn)確,該策略可以保證其支出小于收入。
線(xiàn)性出價(jià):出價(jià)與估計(jì)的點(diǎn)擊率成正比,但要設(shè)置基準(zhǔn)出價(jià),即:
b0是基準(zhǔn)出價(jià),θ0、θ分別是該廣告的平均點(diǎn)擊率以及該請(qǐng)求下預(yù)測(cè)的點(diǎn)擊率。此外,還可以引入其他邏輯,例如θ/θ0低于0.8不出價(jià),高于1.2出價(jià)翻倍等。
非線(xiàn)性出價(jià):出價(jià)模型在有預(yù)算限制的情況下最大化收益(點(diǎn)擊數(shù)或轉(zhuǎn)化數(shù))。假設(shè)某個(gè)廣告推廣在一定時(shí)期T內(nèi)總共符合其定向的廣告請(qǐng)求共NT個(gè),每個(gè)廣告請(qǐng)求特征向量為x,滿(mǎn)足定向條件的x先驗(yàn)為px(x)。給定收益函數(shù)θ(x),競(jìng)價(jià)函數(shù)b(θ(x)),競(jìng)價(jià)成功率函數(shù)w(b(θ(x))),假設(shè)該廣告的預(yù)算為B, 則優(yōu)化目標(biāo)可以寫(xiě)成:
由于x和θ(x)的關(guān)系是確定的
進(jìn)而可以把優(yōu)化目標(biāo)寫(xiě)成:
利用拉格朗日乘子法,目標(biāo)函數(shù)變?yōu)椋?/p>
其中λ為拉格朗日乘子。通過(guò)對(duì)b(θ)求偏導(dǎo)并令其等于零,可以得到:
競(jìng)價(jià)成功率與出價(jià)的函數(shù)可以表示為:
其中c是一個(gè)常量。將此函數(shù)代入上式,得到:
可以看出,最優(yōu)的出價(jià)是收益的一個(gè)非線(xiàn)性函數(shù)。
該策略的出價(jià)函數(shù)中有兩個(gè)參數(shù),分別是c和λ。其中c可以通過(guò)一段時(shí)間的盲投(比如利用隨機(jī)出價(jià)策略),得到多個(gè)出價(jià)與成功率的離散點(diǎn),再利用最小二乘法擬合曲線(xiàn)得到;λ可以通過(guò)網(wǎng)格遍歷的方法,利用歷史日志計(jì)算不同取值時(shí)的收益,從中選取最高的那個(gè)。
預(yù)算
預(yù)算也是另一個(gè)重要的策略點(diǎn),廣告主在投放廣告時(shí),會(huì)為每個(gè)廣告活動(dòng)(campaign或者adset)設(shè)置一個(gè)時(shí)間范圍內(nèi)的預(yù)算,預(yù)算就是上文提及的最大化DSP利潤(rùn)中的約束。
如果不對(duì)預(yù)算進(jìn)行合理管控,會(huì)出現(xiàn)三種情況:
- 預(yù)算迅速消耗完畢,但是贏得了很多價(jià)值不高的請(qǐng)求,更失去了贏得后續(xù)收益更高請(qǐng)求的機(jī)會(huì),導(dǎo)致最終廣告效果較差 ;
- 時(shí)間范圍結(jié)束后,預(yù)算仍有大量剩余,導(dǎo)致輸了很多高價(jià)值的請(qǐng)求;
- 由于市場(chǎng)競(jìng)爭(zhēng)變化及其他因素變化,導(dǎo)致市場(chǎng)波動(dòng),似的預(yù)算消耗速度忽高忽低,無(wú)法管控和預(yù)測(cè)預(yù)算消耗。這三種情況都會(huì)導(dǎo)致預(yù)算利用率下降,從而使得廣告整體的量級(jí)和ROI均下滑,可嘗試?yán)脛?dòng)態(tài)規(guī)劃算法來(lái)求解。
因此,控制預(yù)算消耗的主要目標(biāo)是:
- 同時(shí)得到廣告的投放和性能目標(biāo),效果類(lèi)廣告是根據(jù)廣告主所給出的優(yōu)化目標(biāo),提升活動(dòng)整體的ROI,品牌類(lèi)廣告則需要觸達(dá)更多人群,提高廣告回想度;
- 滿(mǎn)足廣告主設(shè)定的預(yù)算使用速率,勻速的預(yù)算使用速率能讓廣告在時(shí)間范圍內(nèi)勻速消耗預(yù)算,保證在更長(zhǎng)時(shí)間內(nèi)有曝光效果,每個(gè)時(shí)間段內(nèi)花費(fèi)相對(duì)平穩(wěn)。而加速的預(yù)算使用速率用于時(shí)效性更強(qiáng)的推廣,例如雙十一電商廣告投放等;
- 降低數(shù)據(jù)咨詢(xún)花費(fèi),DSP通常要用自有第一方數(shù)據(jù)和來(lái)自DMP第三方用戶(hù)數(shù)據(jù)來(lái)做出理想決策,除了性能以外,DMP還要收取額外費(fèi)用,降低數(shù)據(jù)咨詢(xún)次數(shù)能降低這方面的開(kāi)銷(xiāo)。
(a)預(yù)算過(guò)早耗盡 (b)預(yù)算波動(dòng)劇烈
主要目標(biāo)1可由效果預(yù)估和出價(jià)算法做較大提升,主要目標(biāo)2和3則極大依賴(lài)于預(yù)算步進(jìn)算法。所謂預(yù)算步進(jìn)算法(Budget Pacing)是指通過(guò)對(duì)歷史行為數(shù)據(jù)的分析,得出一個(gè)符合近期趨勢(shì)的廣告預(yù)算分配計(jì)劃,具體計(jì)劃是預(yù)算花費(fèi)與時(shí)間的變化趨勢(shì),且通過(guò)控制實(shí)際的花銷(xiāo)進(jìn)度去接近這個(gè)分配計(jì)劃,最終保證預(yù)算的按計(jì)劃分配。
結(jié)合實(shí)時(shí)競(jìng)價(jià)實(shí)際場(chǎng)景,給定一個(gè)廣告活動(dòng)(設(shè)置預(yù)算廣告級(jí)別)一天的預(yù)算限制(總預(yù)算則換算成每日預(yù)算),在設(shè)計(jì)一個(gè)依照時(shí)間變化的分配策略,保證實(shí)際花銷(xiāo)與理想進(jìn)度盡可能接近。
業(yè)界一開(kāi)始用簡(jiǎn)易的預(yù)算步進(jìn)算法,用于保證單位時(shí)間內(nèi)的花銷(xiāo)大約均等。但一天中廣告流量等都在變化,這種方案難以顧及這些問(wèn)題。Joaquin等人利用動(dòng)態(tài)規(guī)劃和變分法證明了理想的預(yù)算花費(fèi)并非線(xiàn)性也并非單位時(shí)間均等,而是正比于廣告交易量。
ipinyou數(shù)據(jù)集中03月11日的競(jìng)標(biāo)和曝光次數(shù)趨勢(shì)圖
分配計(jì)劃正比于廣告流量的變化趨勢(shì),廣告投放到一天內(nèi)任意一個(gè)用戶(hù)的幾率均等,從而保證廣告均勻的分配到受眾群體上,重點(diǎn)是分配機(jī)會(huì)的均等而非時(shí)間段均等。此外,廣告關(guān)鍵指標(biāo)(優(yōu)化目標(biāo))和廣告市場(chǎng)的競(jìng)爭(zhēng)程度也是需要考慮的點(diǎn)。不同時(shí)間段內(nèi)的點(diǎn)擊率、轉(zhuǎn)化率等關(guān)鍵指標(biāo)并非恒定,因此對(duì)于廣告主來(lái)說(shuō)價(jià)值不同。
關(guān)于廣告市場(chǎng)競(jìng)爭(zhēng)程度,根據(jù)Yuan Shuai等人研究RTB基本問(wèn)題時(shí),統(tǒng)計(jì)的數(shù)據(jù)圖(下圖)所示,0到5時(shí)由于激烈市場(chǎng)競(jìng)爭(zhēng)加上較少的用戶(hù)數(shù)會(huì)導(dǎo)致非常高的市場(chǎng)成交價(jià),此時(shí)廣告主投入較多預(yù)算得不償失,競(jìng)標(biāo)的廣告主數(shù)量的變化趨勢(shì)與廣告流量變化有很大出入。
競(jìng)標(biāo)廣告主、展示量與時(shí)間的變化趨勢(shì)
預(yù)算步進(jìn)算法示意圖
因此,要基于廣告流量、廣告質(zhì)量、市場(chǎng)競(jìng)爭(zhēng)程度確定分配計(jì)劃。步驟1用來(lái)計(jì)算分配計(jì)劃,對(duì)廣告請(qǐng)求進(jìn)行過(guò)濾,控制參與競(jìng)標(biāo)的廣告請(qǐng)求數(shù)量滿(mǎn)足預(yù)算等限制條件。當(dāng)贏得交易后扣除預(yù)算,步驟2根據(jù)實(shí)際花銷(xiāo)與預(yù)計(jì)花銷(xiāo)之間的差異來(lái)實(shí)時(shí)調(diào)整下一個(gè)時(shí)刻的分配計(jì)劃。
預(yù)算步進(jìn)定義
本文提出的預(yù)算步進(jìn)方案采用了概率過(guò)濾機(jī)制,概率過(guò)濾值成為步進(jìn)率(Pacing Rate),是一個(gè)隨時(shí)間t的函數(shù):
表示某個(gè)廣告主發(fā)起的廣告活動(dòng)adc(campaign或者adset,看預(yù)算設(shè)置層級(jí))在時(shí)段t參與投標(biāo)的概率。限定廣告活動(dòng)adc是因?yàn)椴煌瑥V告活動(dòng)設(shè)置不同行業(yè)、不同目標(biāo)、不同受眾群體等,導(dǎo)致不同廣告活動(dòng)之間差異極大,必須為不同類(lèi)廣告活動(dòng)設(shè)置不同的廣告分配計(jì)劃,可用目標(biāo)一致,受眾群體相似的廣告活動(dòng)作為冷啟動(dòng)時(shí)的歷史數(shù)據(jù)。
實(shí)際操作中難以將p(t)當(dāng)做連續(xù)函數(shù)處理,一般將一天時(shí)間分段。若一天時(shí)間分為T(mén)段,則在時(shí)段的預(yù)計(jì)預(yù)算花銷(xiāo)為:
一天總預(yù)算:
在時(shí)間段t內(nèi)從ADX到來(lái)的共n個(gè)廣告請(qǐng)求為:
定義時(shí)間段t的請(qǐng)求數(shù)函數(shù)為req(t),p(t)需要對(duì)廣告請(qǐng)求進(jìn)行第一次篩選,初步?jīng)Q定參與投標(biāo)的廣告請(qǐng)求為:
0表示未投標(biāo),1表示通過(guò)初次篩選。那么步進(jìn)率可表示為:
而若投標(biāo)后贏得競(jìng)標(biāo)的廣告請(qǐng)求序列為:
1表示贏得,則贏標(biāo)概率為:
這些廣告請(qǐng)求最終的花銷(xiāo)序列為:
未投標(biāo)和投標(biāo)失敗的花銷(xiāo)為0。時(shí)段t的實(shí)際花費(fèi)與預(yù)計(jì)花費(fèi)的差距越小越好,即:
在時(shí)段t中平均展示價(jià)格為:
此處的平均展示價(jià)格并非千次,且可根據(jù)經(jīng)驗(yàn)及歷史記錄統(tǒng)計(jì),線(xiàn)性回歸是一個(gè)業(yè)界常用解決方案。每個(gè)指標(biāo)函數(shù)都被指定到一個(gè)廣告活動(dòng)adc中,因?yàn)椴煌瑥V告活動(dòng)在個(gè)指標(biāo)函數(shù)中可能存在差異。
廣告質(zhì)量度
廣告展示質(zhì)量可通過(guò)不同時(shí)段的關(guān)鍵指標(biāo)變化體系,點(diǎn)擊、轉(zhuǎn)化等等均可作為變化趨勢(shì)。在質(zhì)量高的時(shí)段投入更多預(yù)算能夠提高廣告效果,應(yīng)當(dāng)照顧質(zhì)量較高的時(shí)段。本文定義廣告展示質(zhì)量度量應(yīng)該能夠反映當(dāng)前時(shí)段展示質(zhì)量與平均展示質(zhì)量的差距,為:
取值范圍再0到1之間,可利用一個(gè)映射函數(shù):
將其控制在所需要的范圍內(nèi),如logistic函數(shù)。定義某廣告活動(dòng)adc的廣告展示質(zhì)量系數(shù)函數(shù)為:
α控制其變化速度,建議取值范圍:當(dāng)某時(shí)段展示質(zhì)量接近平均水平是其取值在1附近。
市場(chǎng)競(jìng)爭(zhēng)程度
作為DSP本身是拿不到每次請(qǐng)求其他買(mǎi)家的數(shù)量,這個(gè)數(shù)量只有ADX掌握,且廣告流量與參與投標(biāo)的買(mǎi)家數(shù)量的變化趨勢(shì)不相同。然后思考贏標(biāo)價(jià)格或贏標(biāo)概率能否評(píng)價(jià)市場(chǎng)競(jìng)爭(zhēng)程度,是由市場(chǎng)交易機(jī)制、參與投標(biāo)賣(mài)家策略、自身出價(jià)策略變化而決定,總結(jié)出贏標(biāo)價(jià)的高低受廣告質(zhì)量與競(jìng)爭(zhēng)程度影響。刨除贏標(biāo)價(jià)中對(duì)廣告展示質(zhì)量的提現(xiàn),剩下能夠影響到贏標(biāo)價(jià)的因素即競(jìng)爭(zhēng)程度。
定義某時(shí)段成交價(jià)(記作cpm,注意此時(shí)是每次展示)與一天的平均成交價(jià)的差距為:
為了規(guī)范α(t)和β(t)量級(jí),以便能求差值,需要先求得兩數(shù)的平方平均數(shù):
能夠反映時(shí)段t的競(jìng)爭(zhēng)程度,當(dāng)kpi恒定情況下,cpm越高,這個(gè)值越大,同等質(zhì)量的曝光卻又更高的成交價(jià),說(shuō)明競(jìng)爭(zhēng)程度高;而另一方面,當(dāng)cpm穩(wěn)定而kpi更高時(shí),即用較低的花銷(xiāo)買(mǎi)到更好質(zhì)量的展示,競(jìng)爭(zhēng)程度低于正常水平。
同理經(jīng)過(guò)以平滑映射函數(shù),定義廣告活動(dòng)adc在時(shí)段t內(nèi)的競(jìng)爭(zhēng)程度系數(shù)為:
注意兩個(gè)系數(shù)函數(shù)的參數(shù)α和β控制函數(shù)變化速度,且當(dāng)競(jìng)爭(zhēng)程度較高時(shí),步進(jìn)算法應(yīng)當(dāng)降低出價(jià)時(shí)機(jī),即降低該因子系數(shù)從而最終降低該時(shí)刻出價(jià)概率,而映射函數(shù)
定義為單調(diào)遞增的平滑函數(shù),所以應(yīng)取負(fù)號(hào)。
預(yù)算分配計(jì)劃
根據(jù)Joaquin等人證明不考慮其他因素時(shí),最佳的分配計(jì)劃應(yīng)該完全正比于廣告流量,再加上本文提出的廣告質(zhì)量與競(jìng)爭(zhēng)程度度量,則定義廣告活動(dòng)adc在其t時(shí)段的分發(fā)概率為:
廣告活動(dòng)adc在一天的總預(yù)算為:
則與之前的個(gè)指標(biāo)有如下關(guān)系:
利用以上公式可輕易計(jì)算出分發(fā)概率基準(zhǔn)值:
并由此得到廣告活動(dòng)adc在各時(shí)段的理論下分發(fā)概率:
應(yīng)注意算法適用于目標(biāo)廣告庫(kù)存量遠(yuǎn)大于購(gòu)買(mǎi)量的廣告活動(dòng),對(duì)于本身存在欠交付風(fēng)險(xiǎn)買(mǎi)家的廣告活動(dòng),例如平均分發(fā)概率:
大于某閾值θ時(shí),表示可能出現(xiàn)欠交付(Under-Delivery)的可能,可能由于設(shè)置受眾定向目標(biāo)過(guò)于嚴(yán)苛,或是競(jìng)價(jià)算法出價(jià)太低導(dǎo)致競(jìng)標(biāo)成功率過(guò)低。這種情況極其常見(jiàn),強(qiáng)制使用可能由于數(shù)據(jù)量稀疏而導(dǎo)致較大的算法誤差。
預(yù)算步進(jìn)措施
實(shí)際情況中由于市場(chǎng)波動(dòng)或是預(yù)測(cè)精度等原因,實(shí)際花費(fèi)進(jìn)度可能與預(yù)定分配計(jì)劃有所偏差。為了對(duì)這種情況進(jìn)行調(diào)整,本文提出兩種措施。
第一種措施,是概率過(guò)濾方式,利用計(jì)算的理論分發(fā)概率,結(jié)合實(shí)際的花費(fèi)情況不斷地調(diào)整實(shí)際分發(fā)概率。定義在時(shí)段t實(shí)際花費(fèi)的預(yù)算為:
那么下一個(gè)時(shí)段應(yīng)該將fe分發(fā)比率調(diào)整為:
可見(jiàn),除t=1時(shí),系統(tǒng)在t+1時(shí)段使用校準(zhǔn)過(guò)的分發(fā)概率,并以此類(lèi)推保證預(yù)算分發(fā)進(jìn)度。而且,實(shí)際情況RTB出售的大多是媒體的剩余流量,用戶(hù)好感度不高,用戶(hù)點(diǎn)擊行為具有很大隨機(jī)性。這種方法保證每次曝光都有機(jī)會(huì)參與競(jìng)標(biāo),盡可能降低系統(tǒng)性能導(dǎo)致的分發(fā)風(fēng)險(xiǎn),是很實(shí)用的一種方案。
第二種措施,KPI閾值過(guò)濾方式,利用公式求出KPI閾值,根據(jù)所處KPI閾值范圍確定以何種預(yù)算策略參與此次投標(biāo)。
KPI閾值過(guò)濾廣告流量
如上圖所示,利用歷史數(shù)據(jù)得到時(shí)段長(zhǎng)度內(nèi)廣告流量在不同KPI的分布函數(shù):
找到KPI閾值:
使得:
同時(shí)注意到廣告點(diǎn)擊性能在某時(shí)段t的分布與在一整天的分布趨勢(shì)是相近的,只是絕對(duì)數(shù)量不同,從而可降低系統(tǒng)的統(tǒng)計(jì)復(fù)雜程度,只需在求出此時(shí)段的點(diǎn)擊次數(shù)clks(t)和一天中的點(diǎn)擊分布:
那么有:
運(yùn)用品友數(shù)據(jù)集測(cè)試后發(fā)現(xiàn),時(shí)間迭代模型的去進(jìn)行廣告流量這類(lèi)預(yù)測(cè)表現(xiàn)出了較好穩(wěn)定性,能夠反映出歷史數(shù)據(jù)的時(shí)效性因素。概率過(guò)濾模型在實(shí)驗(yàn)中表現(xiàn)出良好的穩(wěn)定性,受預(yù)測(cè)精度影響較?。欢阅苤笜?biāo)閾值過(guò)濾在某些時(shí)候可以獲得更佳的收益,但會(huì)略微增加計(jì)算難度。
本文終于結(jié)束了,希望讀者對(duì)計(jì)算廣告中主要模塊、策略及其場(chǎng)景有個(gè)較好的認(rèn)識(shí)和理解,本篇文章僅適合入門(mén)了解,不適合深度分析。想要深度分析的話(huà),建議去看國(guó)外論文,分享兩個(gè)GitHub上的論文集:
- https://github.com/wzhe06/Ad-papers
- https://github.com/wnzhang/rtb-papers
此外,閱讀也有局限性,還是得結(jié)合實(shí)踐,特別是我在復(fù)盤(pán)本篇文章中的一些思路時(shí),是發(fā)現(xiàn)了一些漏洞的,而作者好像故意忽略了這些漏洞。閱讀+實(shí)踐+思考,才是學(xué)習(xí)的良好方法,與君共勉。
參考文獻(xiàn)
- https://blog.csdn.net/taoqick/article/details/72822727GBDT:梯度提升決策樹(shù)
- https://zhuanlan.zhihu.com/p/61154299前深度學(xué)習(xí)時(shí)代CTR預(yù)估模型的演化之路
- https://daxue.qq.com/content/content/id/3682美團(tuán)點(diǎn)評(píng)柳明海:O2O推薦廣告CTR預(yù)估實(shí)踐
- http://www.huxmarket.com/detail/2966DSP的bidding算法
- 計(jì)算廣告 劉鵬、王超
- http://tech.youmi.net/2016/06/158883267.html淺析RTB中的競(jìng)價(jià)策略
- https://dolantinlist.github.ioRTB廣告競(jìng)價(jià)系統(tǒng)的算法介紹
- 韓靜. 在線(xiàn)廣告DSP平臺(tái)實(shí)時(shí)競(jìng)價(jià)算法的研究與實(shí)現(xiàn)[D].上海交通大學(xué),2015.
- 李佩倫. 實(shí)時(shí)競(jìng)價(jià)系統(tǒng)中出價(jià)算法的研究與實(shí)現(xiàn)[D].電子科技大學(xué),2017.
- 郭威. 針對(duì)在線(xiàn)廣告實(shí)時(shí)競(jìng)價(jià)系統(tǒng)的相關(guān)算法研究[D].電子科技大學(xué),2013.
相關(guān)閱讀
計(jì)算廣告中主要模塊、策略及其場(chǎng)景(上篇)
#專(zhuān)欄作家#
Vency,公眾號(hào):Vency不二,人人都是產(chǎn)品經(jīng)理專(zhuān)欄作家。海外商業(yè)產(chǎn)品經(jīng)理,關(guān)注海外、廣告、商業(yè)化、營(yíng)銷(xiāo)等領(lǐng)域,追求用戶(hù)、技術(shù)、商業(yè)、社會(huì)價(jià)值的統(tǒng)一,喜好看書(shū)、逛館。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來(lái)自 Unsplash,基于CC0協(xié)議。
求問(wèn)一下海外廣告投放策略的書(shū)籍推薦,比如谷歌,facebook各外企的投放策略歷史之類(lèi)的
這塊沒(méi)什么了解哎···應(yīng)該還是看論文吧
數(shù)學(xué)公式根本看不懂怎么辦,這個(gè)需要研究生才能完成嗎
nice!寫(xiě)的很不錯(cuò)~