程序化广告交易中的点击率预估
程序化廣告交易中的點(diǎn)擊率預(yù)估
指標(biāo)
? 廣告點(diǎn)擊率預(yù)估是程序化廣告交易框架的非常重要的組件,點(diǎn)擊率預(yù)估主要有兩個(gè)層次的指標(biāo):
? ? ?1. 排序指標(biāo)。排序指標(biāo)是最基本的指標(biāo),它決定了我們有沒有能力把最合適的廣告找出來去呈現(xiàn)給最合適的用戶。這個(gè)是變現(xiàn)的基礎(chǔ),從技術(shù)上,我們用AUC來度量。
? ? ?2. 數(shù)值指標(biāo)。數(shù)值指標(biāo)是進(jìn)一步的指標(biāo),是競價(jià)環(huán)節(jié)進(jìn)一步優(yōu)化的基礎(chǔ),一般DSP比較看中這個(gè)指標(biāo)。如果我們對(duì)CTR普遍低估,我們出價(jià)會(huì)相對(duì)保守,從而使得預(yù)算花不出去或是花得太慢;如果我們對(duì)CTR普遍高估,我們的出價(jià)會(huì)相對(duì)激進(jìn),從而導(dǎo)致CPC太高。從技術(shù)上,我們有Facebook的NE(Normalized Entropy)還可以用OE(Observation Over Expectation)。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
框架
? 工業(yè)界用得比較多的是基于LR的點(diǎn)擊率預(yù)估策略,我覺得這其中一個(gè)重要的原因是可解釋性,當(dāng)出現(xiàn)bad case時(shí)越簡單的模型越好debug,越可解釋,也就越可以有針對(duì)性地對(duì)這種bad case做改善。但雖然如此,我見到的做廣告的算法工程師,很少有利用LR的這種好處做模型改善的,遺憾….. 最近DNN很熱,百度宣布DNN做CTR預(yù)估相比LR產(chǎn)生了20%的benefit,我不知道比較的benchmark,但就機(jī)理上來講如果說DNN比原本傳統(tǒng)的人工feature engineering的LR高20%,我一點(diǎn)也不奇怪。但如果跟現(xiàn)在增加了FM和GBDT的自動(dòng)高階特征生成的LR相比,我覺得DNN未必有什么優(yōu)勢。畢竟看透了,DNN用線性組合+非線性函數(shù)(tanh/sigmoid etc.)來做高階特征生成,GBDT + FM用樹和FM來做高階特征生成,最后一層都是非線性變換。從場景上來講,可能在擬生物的應(yīng)用上(如視、聽覺)上DNN這種高階特征生成更好,在廣告這種情境下,我更傾向于GBDT + FM的方法。
??整個(gè)CTR預(yù)估模塊的框架,包含了exploit/explore的邏輯。
? ? ? ??
? 單純點(diǎn)擊率預(yù)估算法的框圖如下;
? ? ? ? ? ?
Step-by-step
1. 數(shù)據(jù)探索(data exploration)
? 主要是基礎(chǔ)特征(raw feature/fundamental feature)的粗篩和規(guī)整。
??展示廣告的場景可以表述為”在某場景下,通過某媒體向某用戶展示某廣告”,因此基礎(chǔ)特征就在這四個(gè)范圍內(nèi)尋找:
? ?場景 – 當(dāng)時(shí)場景,如何時(shí)何地,使用何種設(shè)備,使用什么瀏覽器等
? ?廣告 – 包括廣告主特征,廣告自身的特征如campaign、創(chuàng)意、類型,是否重定向等
? ?媒體 – 包括媒體(網(wǎng)頁、app等)的特征、廣告位的特征等
? ?用戶 – 包括用戶畫像,用戶瀏覽歷史等
? 單特征選擇的方法有下面幾種:
? ? 1. 簡單統(tǒng)計(jì)方法,統(tǒng)計(jì)特征取值的覆蓋面和平衡度,對(duì)dominant取值現(xiàn)象很顯著的特征,要選擇性地舍棄該特征或者是歸并某些取值集到一個(gè)新的值,從而達(dá)到平衡的目的。
? ? 2. 特征選擇指標(biāo),特征選擇主要有兩個(gè)目的,一是去除冗余的特征,也就是特征之間可能是互相冗余的;二是去無用,有些特征對(duì)CTR預(yù)估這個(gè)任務(wù)貢獻(xiàn)度很小或沒有,對(duì)于這類特征選擇,要小小地做,寧不足而不過分,因?yàn)閱翁卣鲗?duì)任務(wù)貢獻(xiàn)度小,很有可能后面再組合特征生成時(shí)與其他特征組合生成很有效的組合特征,所以做得不能太過。
? ? ? a) 去冗余。主要是特征間的相關(guān)性,如Pearson相關(guān)性,或者指數(shù)回歸(從泰勒定理的角度它可以模擬高階的多項(xiàng)式特征)。
? ? ? b) 去無用。主要是信息增益比。
2. 特征組合
? 兩派方法:
? ? FM系列 ?-?對(duì)于categorical feature,一般把他們encode成one hot的形式,特征組合適合用FM。
? ?Tree系列 -?對(duì)于numerical feature和ordinal feature, 特征組合可以使用決策樹類的,一般用random forest或GBDT。其中GBDT的效果應(yīng)該更好,因?yàn)閎oosting方法會(huì)不斷增強(qiáng)對(duì)錯(cuò)判樣本的區(qū)分能力。
?
? 對(duì)于廣告點(diǎn)擊率預(yù)估,同時(shí)擁有這三類特征。所以一個(gè)簡單的方法就是級(jí)聯(lián)地使用這兩個(gè)方法,更好地進(jìn)行特征組合。
? ? ? ? ?
3. LR
? a. OWL-QN
? ? ? 這個(gè)是batch訓(xùn)練的方法,主要用于處理L1正則下的LR最優(yōu)化。
? b. Online learning(FTRL and Facebook enhancement)
? ? ? 在線學(xué)習(xí),及時(shí)反饋點(diǎn)擊信息,不斷演化LR模型,從而為新廣告更快收斂。
4. 預(yù)測CTR可信嗎?
? 任何一個(gè)特征向量輸入到這個(gè)CTR預(yù)測算法,算法都會(huì)像模像樣地給你輸出一個(gè)預(yù)測CTR。但這個(gè)CTR真的可信嗎?我們知道機(jī)器學(xué)習(xí)是典型data driven的,當(dāng)訓(xùn)練數(shù)據(jù)中某種情況的數(shù)據(jù)不足時(shí),這種情況下的預(yù)測值很有可能被其他數(shù)據(jù)拉偏。所以,肯定會(huì)有預(yù)測值不可信的情況,那我們?cè)趺磁袛喈?dāng)前的預(yù)測CTR的可信度呢?
? Google在提出FTRL算法的同時(shí)伴隨提出了一個(gè)預(yù)測CTR可信度的方法,想法很簡單:訓(xùn)練數(shù)據(jù)越多則可信度越高。下圖公式中指訓(xùn)練集中第i維feature非零的訓(xùn)練向量的個(gè)數(shù)。normalization到[0, 1]的方法很多,需要根據(jù)總業(yè)務(wù)數(shù)據(jù)量以及先驗(yàn)CTR來最終確定。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
5. 修修補(bǔ)補(bǔ)
? 后面的事情就是在前述的框架的基礎(chǔ)上,根據(jù)bad case修修補(bǔ)補(bǔ)了。比如說,現(xiàn)在認(rèn)為在不同的點(diǎn)擊率區(qū)段,影響點(diǎn)擊率的特征的權(quán)重是一致的,但實(shí)際發(fā)現(xiàn)是不一樣的,就可以按照點(diǎn)擊率的區(qū)間劃分,做分區(qū)間模型(據(jù)說阿里用的MLR就是這個(gè)東東)。這些都不出上面的框架,是在分析數(shù)據(jù)之后做的細(xì)化,逃不脫“分段逼近”這個(gè)大圈。
總結(jié)
以上是生活随笔為你收集整理的程序化广告交易中的点击率预估的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Gradient Boost 算法流程分
- 下一篇: Loss Function view