實時競價廣告整體鏈路中,媒體側發(fā)起請求,經ADX發(fā)向各DSP,DSP在對流量評估的基礎上返回廣告參與競價,ADX比價后返回勝出廣告,媒體展示并上報完成一次廣告全流程。其中DSP在接收到廣告請求后,需要在100-200ms內找出符合的廣告返回給ADX,廣告庫中的候選數量龐大,一般在幾十萬-幾百萬之間,要在極短時間內完成對海量廣告的打分評估,業(yè)界普遍的做法與推薦系統類似分為兩個主要環(huán)節(jié):召回+排序。
召回
召回的目的在于減少候選的數量(盡量控制在1000以內),方便后續(xù)排序環(huán)節(jié)使用復雜模型精準排序。因為在短時間內評估海量候選,所以召回的關鍵點是個快字,受限與此與排序相比,召回的算法模型相對簡單,使用的特征比較少。業(yè)界普遍采用的方式是多路召回,即從多個維度出發(fā)在海量庫里把相關度高的候選盡可能找出來。多路同時召回是出于多方面的考慮:
多樣性,從不同維度出發(fā)去找到相關的候選;
魯棒性,即使一路召回出現問題,其他召回通路也會正常運行不至于阻塞主流程;
可解釋與靈活性,每一路從單獨維度出發(fā)可以很好解釋召回的邏輯,如果效果不理想調整起來復雜度低更加靈活。
在某一路召回時選好方向確定對應的打分函數,之后進行打分、排序、截斷召回topN,各路召回之間彼此獨立,勝出的候選之間不具有可比性。召回主要從用戶(U)、上下文(C)、搜索詞(Q)、廣告(A)幾個大方向出發(fā),細化維度可以結合實際業(yè)務場景,可以基于上下文標題/描述/分類/標簽/圖片、用戶基礎統計信息/興趣標簽/歷史行為、檢索詞、基于物品的協同過濾,處理的信息是多模態(tài)的包括文字、圖片、視頻等。具體召回匹配時有兩種思路:
基于標簽/關鍵詞的文本硬匹配,如廣告定向中的地域、性別,要么匹配,要么不匹配,擴展性及靈活度差一些;
基于向量的語義軟匹配。選擇有效的原始特征進行embedding嵌入向量空間,通過雙塔模型學習獲得用戶、廣告的向量表示,利用點積、余弦相似度或者歐氏距離等方式計算向量相關度,類似Youtube的推薦雙塔和微軟的DSSM。既可以改變閾值調整召回數量又能滿足性能需求,是當前召回的主流形式。
召回不像排序階段直接影響業(yè)務指標,經過粗排精排等環(huán)節(jié)作用后對最終結果的影響已經很小,對質量衡量難度相對較大,可以從兩個方面出發(fā)嘗試評估:
獨特性,某路召回結果的不可替代或者與其他通路的重復度,重復度越高該路召回的價值越小;
轉化效果,召回結果的后續(xù)表現,如精排后的排名或者被曝光后用戶是否點擊,效果越好價值越高。
排序
如果說召回是提供可能性,則排序是提供確定性:把最合適的候選找出來推給用戶。排序細化可以分為粗排、精排、重排。粗排是召回階段返回的候選數量還是太多,精排直接處理性能上不能滿足,粗排用簡單模型再做一次過濾減少數量,是個可選環(huán)節(jié);重排則是出于業(yè)務考慮,對精排后的結果進行處理:多樣性、頻控、類別控制、特定結果提權等;精排是整個排序的關鍵,是各路模型的主戰(zhàn)場,也是我們討論的主角。
與召回相比,排序面對的候選在數量上急劇減少:只需要處理在召回階段勝出的候選(如果整個創(chuàng)意庫的量級在千級左右(如開屏廣告/商店原生等)則可以全部召回直接用于排序),這為排序的發(fā)揮奠定了很好的基礎:使用更多的特征與特征組合、復雜的模型對多路召回的結果統一評判打分、排序、截斷topN輸出。
為了更細致的刻畫與擬合實際場景,排序階段對模型的要求不斷提高,伴隨著技術的發(fā)展,從線性到非線性、從原始特征到低階特征組合、高階特征組合,到低高階并存。如果說召回是基于表示的學習,其重點在學習用戶和廣告的向量表征,那么排序則是基于特征與特征組合的學習,尤其是高階特征組合,整個排序模型發(fā)展的主方向就是對有效特征及特征組合的發(fā)現與使用。
召回與排序對整個廣告有重要影響,其結果的好壞很大程度上決定了廣告的質量和變現效果。它是廣告鏈路上的一顆明珠,值得花精力精雕細琢。
上面介紹了召回與排序在整個廣告鏈路中所屬環(huán)節(jié)及各自作用,接下來主要介紹二者的異同及目標一致性問題。
相同點
召回與排序都是通過特征選取、模型構造,對候選集進行打分/排序/截斷,將不符合的候選過濾,符合條件的候選進入下一環(huán)節(jié),總體來講召回排序環(huán)節(jié)選出了合適的候選。
差異點
1)、數據環(huán)境的差異
業(yè)界有句話,數據/特征決定了模型的上限,模型只是不斷的去逼近它。因為模型學習的就是數據的內在規(guī)律和分布結構,為保證上線效果,訓練數據要盡可能接近線上數據。
召回階段處理的是全量候選,魚龍混雜,其中絕大多數都與當前請求不相關;排序階段面對的是已經通過了一次篩選,相關度已經有了很好的保障?;诙攮h(huán)境的差異,在訓練數據/樣本的選擇上需要注意,正樣本的選擇相對明確,重點在于負樣本的選取,對于排序而言,曝光未點擊的數據與線上環(huán)境基本接近(完全一致需要選取召回勝出的候選集,但此時的數據沒有標記);對于召回而言,一種有效的做法是通過全局隨機抽樣來產生不相關的負樣本。
2)、模型處理的差異
針對新的影響因素/特征,召回出于多樣性和可解釋等多方面考慮,一般會新增一路召回,導致了各路之間彼此獨立,結果不可比;
排序是將新因素作為特征融入現有模型進行相關的特這組合交互,所有候選按照統一的標準打分評估。
召回與排序目標一致性
推薦和廣告在很多方面有相似性,包括召回和排序面對的場景、處理思路、技術和實現,前面文章中提到廣告對召回排序的處理借鑒推薦系統的做法,在一定程度上包含在目標的處理上,其實二者之間是有本質區(qū)別的。
推薦:推薦系統產生的背景是因為商品/內容量級太大,用戶想找到感興趣的內容需要花費一定成本/時間,基于此提出推薦系統幫助用戶快速找到感興趣的內容,在相關性的基礎上需要同時考慮內容的多樣性、新穎和時效性,不能只根據用戶行為歷史生成推薦內容,否則容易造成用戶審美疲勞,所以既要利用已知又要探索新的內容。從根本上講屬于用戶體驗問題,服務于用戶滿意度,最終提升用戶活躍和留存,所以推薦的整體目標是:把用戶喜歡的東西推薦給用戶。
廣告:廣告是從商業(yè)化角度出發(fā),為了變現獲取收益,與推薦相比廣告的目標/訴求更加純粹:收益最大化。在實時競價廣告中拍賣的商品是曝光,所以具化為曝光收益最大化。實際場景中考慮了收益最大化以外的因素一般都是廣告和其他業(yè)務/場景在折中妥協后的結果(搜索場景的相關性/展示場景的類別/次數限制等),換個角度看也是為了廣告走的更長遠。
基于上述差異二者在召回與排序的目標和具體指標上會有所不同。
推薦在兩階段的總體目標基本一致:找出來用戶喜歡的/相關的,具體操作上會有細微差別,召回一般用雙塔衡量相關度,排序根據實際場景指標有所調整如點擊率/觀看時長/分享等。
廣告兩階段的目標是基本分開的:
召回:在全部候選中召回相關的候選集;
排序:排序對最終結果直接產生影響,因此從商業(yè)化角度出發(fā)將收益最大的候選推出去。
召回與排序是前后相連的兩個環(huán)節(jié),如果二者目標不一致會影響商業(yè)化效率:召回的優(yōu)質候選在排序階段的排名可能比較靠后,排序階段的優(yōu)質候選在召回環(huán)節(jié)被過濾掉掉,百度在莫比烏斯的論文中也提到:召回階段勝出相關性高的候選因為cpm不夠高最終推出不去無法曝光。從廣告的根本目標出發(fā),為有效解決上述耗損問題,百度提出把排序的目標前移至召回階段:召回就需要考慮商業(yè)化目標(ECPM),這對召回模型的復雜度提出了很高的要求,因為召回場景的特殊性需要同時兼顧性能和效果兩個方面,關于這個點,阿里在深度樹(TDM)的論文中提供了一種解決性能問題的方向:利用樹結構進行高效的全局檢索,這為解放召回階段使用復雜模型點燃了星星之火,與百度提出的排序目標前移堪稱廣告的兩大福音。
下一篇主要介紹召回排序在具體處理時采用的思路和方法。