展示廣告的實時競價算法淺析

在傳統媒體的廣告投放平臺中,用戶和廣告主都是被動的:一旦用戶接觸到媒體,廣告就會展現出來。 而在實時競價的廣告體系,廣告主會通過第三方平臺(DSP)的協助合理地評估每個用戶在當前廣告位曝光某個商品所產生的收益,從而決定是否要對該用戶點位進行競價。在這樣的背景下誕生了新興的計算廣告學。 

作爲第三方平臺,DSP公司需要一套完善的算法框架去達成互聯網用戶的價值評估和點擊率(轉化率)預測,從而對每個曝光合理地競價(當一個用戶訪問了一個有廣告位的頁面時,DSP公司通過合理評估來選擇是否去競價以及該出多少錢去競價)。根據不同廣告主的KPI需求(比如CPC, CPM, CPA等不同的結算方式),一般的DSP公司還會對算法框架進行調整,爲每個廣告主生成量身定製的策略。下文詳細記錄整個算法流程中的兩個重要環節。

1.選人

不少DSP公司將選人作爲算法流程的第一步,即針對某個廣告主公司(或行業)挑選出一批對其來說頗具價值的互聯網用戶。其本質是用戶與廣告主的交叉打分。在這種做法下,選人和後續的點擊率預測是分離的,但人的價值得分可以作爲點擊率預測的一個feature(具體在第2部分闡述)。那麼該怎麼打分?一個常規做法是根據用戶的瀏覽歷史,來總結這個用戶對某個特定廣告主的價值。舉個例子,新東方在線的潛在用戶顯然是平常對英語類網站關注較多的。如果我們知道了這些網站以及他們的權重,就可以根據某個互聯網用戶的瀏覽行爲對這個人進行打分。這個打分也是一門很有學問的東西,需要針對不同類型的廣告主,考慮不同窗口時段的用戶瀏覽行爲。這句話什麼意思?意思就是用戶對不同廣告商品的興趣時長是不同的,如果有人想買車或者報英語班,可能在很長一段時間都會瀏覽與汽車或英語相關的頁面。但如果只是想買些吃的或者生活用品,可能在網上瀏覽幾分鐘的頁面就買了,所以打分的時候要具體這些因素。如果上面的文字理解了,那麼選人的問題已經被轉化成了如何提取代表性的網頁(url)以及給他們賦予權重的問題。

選取代表性url的方式有兩種。第一種是行爲廣告,即根據用戶的瀏覽歷史以及最後的廣告轉化情況訓練一個機器學習的模型,計算每個url的lift值, ctr以及分類器的權重等指標,綜合起來給每個url打分,然後選取得分高的url作爲代表性的url特徵。 第二種是上下文廣告,這裏我們不直接分析用戶的瀏覽歷史,而是通過NLP的方法獲取用戶理論上可能訪問的相關網站作爲url特徵。比如說爲廣告主新東方在線選人時的url特徵應該都是與英語相關的。如過我們能用爬蟲獲取一批與英語相關的頁面,獲取可以把它們作爲url特徵。換個角度,如果我們能獲取各個頁面之間的相似性(具體做法不在這裏延伸了),我們可以找一批與頁面新東方在線空間距離相近的url作爲特徵。有了url特徵,我們可以用它們來選人了,當一個人在某個時間區間內訪問了這些url,那麼他應該有了一個相應的得分。而且但他訪問的次數越頻繁,他的得分應該越高,且這個得分應該是隨時間衰減的。至此,我們大致完成了整個工程的第一步,選取某個廣告主的相關用戶。關於選人的更多細節就不在這裏透漏了,具體可參考M6D這個DSP公司發的論文。

選人是否是必須的?其實個人認爲,選人完全可以和出價結合在一起,只要我們有辦法把用戶這個維度合理地加入點擊率預估時的特徵空間。畢竟,即使完成了選人這一步,我們仍舊需要在廣告主,展現等多個維度進行點擊率的預估,然後通過點擊率來決定出價。舉個例子,如果DSP公司能準確的給每個用戶打上標籤,比如用戶對某個行業的關注度等,那麼可以直接用人的屬性與其他維度進行交叉預測點擊率,不需要選人,這樣也能保證將一部分流量分配作爲探測(未被選中的用戶的)流量。 

2.出價

出價是決定DSP公司命運的一個環節,DSP代理的廣告主之間存在一個競價過程——這是一個博弈過程,營銷平臺以此逼近媒體流量價值的最大值。廣告主在競價過程中,除了要提供給用戶最符合其需求的廣告外,這一商業競價過程也是廣告投放的一個核心內容。從機器學習的角度上分析,這是一個有多個constrain的optimization問題。如果出價高了會賠錢,出價低了又會競不到流量。再加上競得價是第二高出價這一競價機制,DSP公司之間的博弈會變得更爲有趣。

傳統的計算廣告出價公式爲CTR(點擊率)*CPC(cost per click),然後還可以引入到達率,轉化率等調整因子。CPC往往是廣告主(或DSP優化師)設定的期望值,或是實時的CPC反饋。因此,出價問題轉化成了一個CTR預估的問題(暫不考慮預算等其他constrain)。CTR的預估是一個典型的機器學習問題。在這個問題裏,每條輸入數據包含多個維度:廣告主,展現(媒體),用戶等。廣告主維度包含了廣告的商品信息,展現維度包含了域名.廣告位.廣告類型等等,用戶維度不僅包含用戶的瀏覽器.設備等信息,還包括用戶本身的人羣屬性(性別,興趣等)。爲了準確的預測CTR,往往需要多個特徵維度的交叉。舉個例子,某個性別的用戶在某個類型商品上的轉化率可以作爲一個很好的特徵。在實際預測中,算法工程師有很多模型可以選擇,常用的如樸素貝葉斯,邏輯迴歸,隨即森林等。若採用迴歸模型,則需要用one-hot encoding將categorical variable 轉化爲 numerical variable,使輸入變爲很高維度的向量,這裏可以採用各種特徵工程以及特徵交叉。另外,用soft的貝葉斯轉化率代替hard的0,1作爲特徵值往往會有不錯的效果。多個模型ensemble也可以在工業上直接應用。得出了預估的CTR,往往之後還有一個校準的過程,使出價函數變得更爲平滑,具體細節就不在這裏闡述了。

實時的CTR是否比預估(校準後)的CTR更準? 不少DSP公司優先採用(比如域名和廣告位的)實時CTR計算出價。事實上這樣做考慮的維度信息是非常少的。在我看來,當訓練數據足夠的情況下,預估的CTR更能反應通過長期積累的經驗反映出的CTR情況,同時也支持多個維度非常flexible的交叉。而實時的CTR則更能反映某個廣告主或某個點位的CTR在短期內的波動情況,但多維度交叉比較困難。將二者按一定比例加權是合理的處理方式。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章