天天看點

喜馬廣告算法優化實踐(四):廣告系統漏鬥優化

作者:閃念基因
喜馬廣告算法優化實踐(四):廣告系統漏鬥優化

(莫愁前路無知己,天下誰人不識君,祝大家勞動節快樂!)

一、業務背景

廣告引擎是效果廣告變現的核心。其功能是對于每一次廣告檢索,從百萬量級的廣告庫中找出價值最高的一個(或多個)廣告用來展示,并給出精準預估eCPM用來扣費。直接對百萬級以上廣告庫計算排序在算力和時延性能上是不可行的。為了平衡性能和效果,廣告引擎常采用級聯架構形成漏鬥。内容通過漏鬥逐層篩選,量級逐漸下降,算法逐漸複雜,精度越來越準。

喜馬廣告算法優化實踐(四):廣告系統漏鬥優化

二、各層漏鬥的介紹

喜馬廣告引擎的漏鬥結構分為五級,從上到下依次是,檢索、召回、粗排、精排和重排。

第一級漏鬥是檢索。它以廣告全庫為候選集,篩選出滿足定向且價值相對較高的集合。因為是第一層初篩面對百萬級的候選,是以隻能使用計算複雜度低、并行化高的比對算法。算法通常為布爾運算,例如流量畫像與廣告定向的比對、計劃生命周期的冷熱索引。

第二級漏鬥是召回。其候選集為檢索漏鬥的輸出,量級約為十萬級。實踐中召回的目标是提高輸出廣告集合與流量的相關性,常使用I2I,U2I等算法。相關性高的廣告後續能有更好的點選、轉化使得廣告收入高,使用者體驗能更好。由于相關性目标較豐富,例如場景上下文相關性,曆史内容消費與廣告相關性等,通常在漏鬥中采用多個召回通道來承載不同的相關性目标。很多先驗知識和使用者的非廣告行為都可以通過增加召回通道的方式直接引入到廣告系統中優化效果。可解釋性強的政策通常放在這一層來做。

第三級漏鬥是粗排。它的目标是對召回進行統一篩選,輸出固定上限的廣告集合以減少下一個精排漏鬥的計算量。理想情況下粗排應該提供與精排一緻的排序,且保留相對豐富的候選集合。從算力看,進入粗排的廣告量級在萬級已經可以支援模型來預估和排序。在實踐中粗排模型常采用簡單線性邏輯回歸或雙塔緩存深度模型。

第四級漏鬥是精排。在給定流量請求下,精排的目标是篩選出價值最高的廣告并給出預估eCPM。因為扣費依賴,對于eCPM不僅需要排序能力還要盡量保證絕對值的準确。價值最高的廣告是平衡媒體與廣告主雙方的利益、平衡短期與長期利益的結果。這些會在eCPM預估和競價政策上得到展現。精排首先用深度學習對點選率、轉化率進行預估。這是算法優化最複雜且發力最多的地方。其次,設計競價政策綜合多方位資訊給出最終的競價排序分。競價排序分不僅受eCPM影響,還會考慮召回相關性、人群先驗資訊、商業價值準入、負回報準入、冷啟動長期價值等。

第五級漏鬥是重排,在資訊流等多廣告位場景下打散相似内容以保證多樣性。

如同在一片汪洋大海中尋找一顆明珠,五級漏鬥通過層層篩選得到價值最高的Chosen One。

三、橫縱結合的漏鬥優化實踐

對于漏鬥優化的實踐,首先從橫向角度介紹漏鬥每一層獨立做的優化,包括多目标統一粗排、系統優選、冷熱索引等。然後從縱向角度,以冷啟動為例子講述如何貫穿漏鬥多層進行業務效果優化。

喜馬廣告算法優化實踐(四):廣告系統漏鬥優化

檢索漏鬥優化實踐:簡單政策也有收益

檢索漏鬥面對全庫候選集通常較難支援稍複雜的效果政策。但隻要對業務了解透徹,即使簡單的政策也能取得較好的收益。冷熱索引就是這樣一個例子。

在喜馬廣告中能觀察到廣告的生命周期現象。冷啟學習時轉化率低但需要給予流量探索。随着廣告學習成熟、轉化率提升,持續給廣告主帶來線索,給媒體帶來收入。再然後廣告曝光次數增加,閱聽人内容疲勞使得廣告逐漸出現有曝光無轉化的空耗情況。廣告開始進入衰退狀态。針對這一業務現象我們設計了冷熱索引政策。政策上将單一索引更新為新、熱、冷、零4個索引,不同索引召回機率不同,計算資源配置不同。使得學習成長計劃優先占用計算資源和過漏鬥,衰退計劃減少計算資源和少過漏鬥。政策上線後,對于自營廣告整體eCPM+3.0%。檢索性能端到端99線延遲降低-7.5%。

喜馬廣告算法優化實踐(四):廣告系統漏鬥優化

在冷熱索引中,首先我們抽取廣告狀态特征。其次根據特征和配置的規則計算廣告的生命周期和應該放置的索引。從業務實踐中我們得出計劃生命周期的關鍵特征包括:投放類型(拉新/拉活/線索),轉化數。拉新拉活廣告因為目标偏淺層、專業化素材制作快,是以生命周期輪轉較快。線索廣告最終投放目标常是付費,需經曆線索擷取、私域營運等較長後鍊路,是以生命周期輪轉會慢一些。

召回漏鬥優化:解釋性強&拓展度高的多路召回

進入漏鬥的第二層召回,開始重點關注廣告與流量的相關性。通常相關性與使用者點選等效果行為成正比。是以相關性越高,廣告變現能力越強。同時相關性高也能增加使用者體驗,使得廣告内容不至于與使用者興趣或場景上下文太突兀。

召回漏鬥使用多路召回的架構優化相關性。多路召回是指針對不同的召回目标設計不同的通道,每個通道僅關注一個目标。這樣的分散召回方式,通道與通道之間形成了查缺補漏的效應,能最大程度上把最優廣告篩選出來。此外,多通道召回也具有可解釋性,友善業務分析和疊代更新。最後,多路召回擴充性好,可以根據業務觀察和先驗知識及時添加召回通路。

如下圖所示,目前多通道召回中包括:冷啟動召回關注廣告的探索價值、與目前播放專輯的相關性召回關注場景相關性價值、基于使用者播放行為ItemCF召回關注使用者曆史行為與廣告的相關性價值等。

喜馬廣告算法優化實踐(四):廣告系統漏鬥優化

粗排漏鬥優化:作為精排的影子進行統一集合排序。

粗排漏鬥有承上啟下的作用。經過前幾層漏鬥廣告候選集合已篩選到萬級别,但數量還是太多。直接用精排的複雜模型計算仍不太現實。算力無法應對此量級的計算請求,即便使用更多算力并行計算,也會造成算力開銷遠大于流量收益。是以需要通過粗排漏鬥進一步将萬級别的物料縮減到百級别。從定位看粗排最理想的情況就是成為精排的影子,與其保持一緻的排序并提供盡可能豐富的候選集。

多合一,多業務目标廣告的粗排政策

喜馬效果廣告還面臨着特有的不同目标的廣告統一排序。在一次漏鬥中會存在三個目标有差異的廣告業務,分别是外循環效果廣告、内循環原生廣告、時間限制的主播廣告。外循環效果廣告目标是單純最大化eCPM。内循環原生廣告由于其廣告内容是内部主播的專輯需要兼顧eCPM和上下文等體驗相關性。時間限制的主播廣告需要考慮投放完成度目标。此外,冷啟動廣告的生态價值目标也需要考慮。

針對這個背景廣告算法設計了多目标的統一粗排政策。政策使用“獨占+優選”的思路,既保證每個通道都有廣告進入精排,又能最大化整個隊列的商業價值。政策上線後,從AB資料看,自營廣告整體ecpm+5%

喜馬廣告算法優化實踐(四):廣告系統漏鬥優化

具體上,統一粗排由4個業務目标隊列和1個公共隊列構成,分别是1)冷啟動,2)外循環效果、3)内循環原生、4)時間限制主播廣告、5)共用隊列。在業務目标隊列裡按照獨立的粗排分計算并排序。

業務引領,成長中的粗排模型

粗排政策的基礎是模型預估值。對于粗排模型,在業務場景的驅動下,廣告算法也做了3輪的疊代。模型從簡單線性邏輯回歸到LTR單一目标雙塔模型、再到解釋性更強和目标更聚焦的多個目标多個雙塔。

喜馬廣告算法優化實踐(四):廣告系統漏鬥優化

線性邏輯回歸模組化和推理簡單适用于業務初期快速生效。随着廣告業務發展,廣告位增多流量複雜後,算法設計了單目标LTR的雙塔模型。此時深度學習拟合能力強、雙塔物料向量緩存省算力、單目标好維護的特點能很好解決業務問題。随着業務場景中進一步出現内循環原生、時間限制主播廣告等新形态業務,單一目标LTR漸漸不能比對業務需求。此時就需要更加細緻的CTR、CVR獨立目标雙塔模型。

精排漏鬥優化:效果最直接算法最複雜

精排漏鬥最貼近廣告曝光,是以所做的優化也最能影響廣告效果。其中既包括常見的CTR/CVR預估模型,也包括喜馬特色的系統優選等工作。總的說精排是圍繞二個方面優化,更精準的eCPM預估,更平衡的競價排序政策。二者互相協同,從媒體視角提高eCPM和生态健康以長期收入增長,從廣告主角度保證成本并盡可能拿量。

模型優化在之前的文章已經有介紹。在此介紹競價排序政策上的優化,包括準入、排序、最優化預算配置設定。首先在準入方面,由于喜馬對使用者體驗的重視,有獨立的負回報準入實時攔截潛在高風險廣告。此外,還有商業價值準入篩選,提升大盤流量價值,降低廣告主無轉化空耗的比例。其次對于降價排序,在核心CTR、CVR預估值的基礎上,通過雙出價、人群溢價等政策進行競價排序。最後是頗具喜馬特色的系統優選,其幫助廣告主動态進行廣告位的預算配置設定和投放選擇。下面對系統優選稍微展開講解下。

系統優選是面向B端廣告主的功能。由于喜馬有幾十個廣告位,個體間差異大(點選率、觸達人群等),廣告主手動選擇廣告位難度大、成本高。在保成本的條件下,系統優選将代替廣告主自動選擇廣告位。功能上線後,幫助廣告主消耗提高了+33%。同時提高了媒體競價填充進而帶動eCPM增長,單次競價中賬戶數+133.3%。

喜馬廣告算法優化實踐(四):廣告系統漏鬥優化

政策如上圖所示,最大投放集合由廣告素材決定。日常通過營運政策激勵廣告主補齊。ROI是核心回報信号,定義為:ROI = (計劃轉化出價*廣告位轉化數)/(實際扣費)。ROI越高超成本風險越低。先将廣告位按ROI拆分為2個子集合:主投S,ROI大于1,探索A,ROI小于1。并計算對應周期消耗上限,使得S和A能夠互相勻成本達成整體計劃ROI>1。

縱向貫穿多層漏鬥的協同優化--冷啟動

漏鬥優化的實踐中除以上層内橫向疊代外,我們也在冷啟動中進行了多層漏鬥協同優化。冷啟動是指廣告引擎通過一定的扶持手段幫助新的廣告内容進行流量探索E&E。對于媒體帶來新的廣告收入增量,豐富廣告多樣性進而提高eCPM。對廣告主,新廣告投放起量得加速,減少了探索資金成本和時間成本。

在喜馬媒體流量的特點下,冷啟動的功能定位使得其面臨着以下挑戰。首先由于新廣告曝光不充分,基于後驗曝光資料的模型和統計政策都不太準确,容易造成其更難通過層層漏鬥得到曝光機會。其次是E&E效率問題,冷啟動探索時不可避免的有流量價值的短期損失。探索有成本但需要保證可控。最後由于喜馬廣告體量相對較小,廣告主對流量品質要求更高,冷啟動期間廣告的深度效果(如付費、授信等)影響着廣告主後續的預算增加。可以看出冷啟動問題是系統性的,并非單獨一層漏鬥能夠解決。在實踐中我們根據梳理的問題,進行了多層漏鬥聯合優化。

喜馬廣告算法優化實踐(四):廣告系統漏鬥優化

首先,在第一層檢索漏鬥中設計了“新索引”,圖示1,滿足規則的冷啟動廣告放置于此。從該索引檢索的廣告會進入一條串聯多層的單獨通道,不與其他廣告互相競争, 圖示2,進而保證有一定數量的冷啟動廣告進入精排漏鬥。

然後,為了控制探索的成本,我們為廣告主預配置設定計劃和曝光兩級額度,圖示3。單賬戶内有多個新計劃時,則會計算計劃的先驗品質分優選出TopN标記為冷啟動計劃。單個冷啟計劃有曝光額度,隻有當曝光數小于配置設定的額度時,廣告才會放置到新索引裡。引入額度控制後,流量使用率得到提升,自營廣告整體ecpm+6%。

接下來在召回漏鬥,我們利用平台投放資料和收集的外部合作資料,根據廣告的SKU從離線挖掘好的優質人群中優先召回,圖示4。這使得冷啟動廣告曝光中目标人群濃度提升,深度效果優化。離線人群在持續挖掘和疊代中。優質人群召回使得冷啟動計劃CTCVR+16.7%。

最後,在精排漏鬥會進行預排序并對top1的廣告進行扶持權重,圖示5。在預排序中算法會執行pCVR的準入確定冷啟動流量的品質。同時預排序排序分會将配額的使用速度以流量緊缺因子引入,使得曝光過慢的計劃排序靠前、曝光過快的冷啟計劃排序靠後,保持冷啟動的勻速。最後權重系數綜合廣告的投放類型、預估CTR、CVR和召回情況計算得來,圖示6。保證與流量更比對的廣告優先探索,實作E&E平衡。

後記

回顧以上的漏鬥優化,可以看出在廣告請求的高QPS、低延遲時間的場景下,面對百萬量級的廣告庫,層級漏鬥的架構是平衡算力使用和業務效果的最優方案。從複雜系統優化的角度來看,漏鬥優化将廣告引擎進行了合理的拆分,提供了更多的優化抓手。這樣使得算法能有更多的切入點進行優化。

雖然在精排漏鬥的優化對于廣告效果提升最直接有效,但廣告算法的優化工作并不止于此。從精排想要什麼出發,合理進行業務梳理,優化前幾級漏鬥也能帶來業務效果的提升。

漏鬥優化實踐中也觀察到局部最優與全局最優不一緻的情況。每一層漏鬥在優化時都是按照其設定的局部目标去疊代。但由于資訊的局部性,算力限制,單個模型的誤差等因素,如果完全以局部最優為目标,整體的eCPM效果出現持平甚至負向的例子。一般保持一定多樣性是解決方法之一。例如,在粗排漏鬥始終選擇粗排分最高的廣告就造成了同一個廣告主占據了大半精排競價隊列。通過增加多樣性後,這個問題得到解決,eCPM有了提升。

作者:bei.liu

來源-微信公衆号:喜馬拉雅技術團隊

出處:https://mp.weixin.qq.com/s/txQZj1crDigg3d9Jlf_wQw

繼續閱讀