概述
1. 廣告樣式與場景
上圖是微博廣告目前商業(yè)場景流,“一屏四大流”。“一屏”指打開微博的 Fashion,“四大流”指占據(jù)微博商業(yè)化的主體,包括關(guān)系信息流、熱門流、評論流和熱搜流。右圖為廣告投放的后臺。
2. 廣告參與方
如上圖,做計算廣告首先面臨這些概念,根據(jù)不同的廣告主的規(guī)模和對公司的重要程度分為 KA 類和中小類。KA 類往往是進行廣量式的購買。中小類,常規(guī)的客戶會進行競價。
常見的計費方式有:CPE,CPM,CPD。
目前在互聯(lián)網(wǎng)市場在大規(guī)模推廣 OCPX,OCPX 作為一種需要很高的技術(shù)含量,也是一種很好的降低廣告主投放風險的售賣方式。
3. 計算廣告核心問題
這是廣告涉及到的三方:平臺(站方)、用戶、廣告主,在計算廣告設(shè)計時的核心問題是如何追求三方之間均衡的、整體的利益最大化。
4. 廣告投放流程
以上是一般的廣告的投放流程。這是從廣告主的視角、平臺的視角以及從用戶的視角來公共完成三方“相向而行”的活動:
廣告營銷策劃的流程:創(chuàng)建推廣計劃 -> 選擇人群受眾定向 -> 設(shè)置廣告預算 -> 設(shè)定廣告創(chuàng)意 -> 啟動廣告投放 -> 查看廣告效果 -> 下一步營銷決策。
精準廣告投放:針對廣告庫存請求,會對用戶進行精準用戶畫像刻畫,然后做廣告的召回,對廣告進行粗排和精排,挑選廣告,根據(jù)不同平臺進行廣告創(chuàng)意渲染工作,最后展示給用戶。
用戶內(nèi)容消費,比較簡單請看圖中流程。
微博廣告策略工程架構(gòu)體系演進
1. 微博廣告工程架構(gòu)發(fā)展史
微博商業(yè)化進程不斷的發(fā)展,支撐商業(yè)化的工程架構(gòu)會隨著具體的業(yè)務(wù)需求做改變。
剛開始做的是非信息流的廣告,按照傳統(tǒng)的方式會試投一些 banner 在微博,目前 banner 在微博的移動端已經(jīng)沒有了。從1.0版本簡單彈窗式的廣告系統(tǒng),到2.0版本以粉絲通為代表的產(chǎn)品線陸續(xù)的孵化出來,這時候微博開始進行信息流廣告的研發(fā)。微博是國內(nèi)信息流廣告的第一家,在探索中孵化出一系列的廣告產(chǎn)品矩陣,為了產(chǎn)品的快速上線,復制了大量的廣告系統(tǒng),為了改變這一狀況,隨著17年底超級粉絲通的上線,對廣告系統(tǒng)進行了整體重構(gòu),從此微博廣告工程架構(gòu)進入了4.0時代。
2. 投放系統(tǒng)架構(gòu)4.0
上圖是17年的工程架構(gòu)圖,是隨著微博廣告產(chǎn)品線的探索演化出的工程架構(gòu)4.0版本,當時處于流量的藍海階段,所以通過配合廣告客戶和廣告預算的不斷增加,不斷提升廣告系統(tǒng)的穩(wěn)定性、高可用性、高并發(fā)來不斷的實現(xiàn)廣告收入的增長。因此我們也對系統(tǒng)進行了分層化的梳理,圖中藍色的區(qū)域是線上廣告投放系統(tǒng)最核心的鏈路。通過廣告請求,流量統(tǒng)一接入,接入包括微博多個產(chǎn)品矩陣,廣告的請求會對多個產(chǎn)品矩陣進行請求分發(fā),通過統(tǒng)一流量價格評估,對用戶的請求進行響應(yīng)。整體上這樣一個引擎結(jié)構(gòu)是為了不斷的滿足產(chǎn)品提出的面對客戶的需求來進行的架構(gòu)設(shè)定。
其基本流程是廣告請求,廣告庫存接入,到總體流量的分發(fā),請求用戶的畫像,經(jīng)過競價服務(wù),會進行廣告觸發(fā),會請求在線索引服務(wù),形成比較完善的行為定向體系,包括:
1. 用戶的行為定向。在微博上的行為定向,比如,對話題的互動,熱門微博的互動,熱搜人群的互動等。
2. 社交關(guān)系定向。比如關(guān)注的大 V 信息,如果在某個大 V 信息下用戶的群體能理解為自然形成的社會群體,那么這個大 V 信息下面的粉絲群是可以進行選擇投放的。
3. 精準人群定向。是由平臺方或第三方的數(shù)據(jù)加工,或廣告主根據(jù)一次投放效果進行的召回,或已有的客戶信息形成的用戶粒度聚合后的數(shù)據(jù)包,這個就是精準用戶的集合。
4. 用戶屬性定向。包括用戶畫像,年齡、地域等。
以上是整體的在線投放流程,但是投放流程僅僅有以上這些是不夠的,還包括個性化庫存策略,廣告的負反饋的策略,智能頻次控制策略等,以及配套的 A/B Test 系統(tǒng),這樣就形成了廣告投放的在線服務(wù)群。
由于流量來自于微博站方,所以微博廣告請求是無需流量反作弊的。存在的反作弊主要是針對互動回傳,也就是說廣告投后的后鏈路數(shù)據(jù)的回傳會有大規(guī)模的反作弊策略,當然也包括社交互動。然后會有一個實時的結(jié)算中心—結(jié)算系統(tǒng),提供給廣告主需要的報表,以及與廣告主密切相關(guān)的賬戶系統(tǒng),總體上形成了投后鏈路在線服務(wù)群。
之下是屬于近線的數(shù)據(jù)訪問,按照數(shù)據(jù)分類:用戶基礎(chǔ)數(shù)據(jù)、廣告定向數(shù)據(jù)、廣告實時流數(shù)據(jù)、算法模型訓練數(shù)據(jù)、廣告創(chuàng)意庫數(shù)據(jù)來制定線上這種實時訪問的需求。
最下面屬于線下的數(shù)據(jù)倉庫。線上投放完的數(shù)據(jù)會進入數(shù)據(jù)倉庫落地。
這就是廣告數(shù)據(jù)總線,實現(xiàn)數(shù)據(jù)流的方式一般通過 kafka 機制等實現(xiàn),然后匯聚到數(shù)據(jù)倉庫里,對數(shù)據(jù)進行分門別類。
圖中最左邊廣告的監(jiān)控系統(tǒng),會從系統(tǒng)的各個層面對系統(tǒng)進行業(yè)務(wù)運行狀況的監(jiān)控以及服務(wù)穩(wěn)定性的監(jiān)控、可用性的監(jiān)控。這些就是業(yè)務(wù)層面完整的一個工具鏈。原來多個產(chǎn)品線就逐漸聚合到這樣的一個系統(tǒng)當中。
4.0時代的架構(gòu)在整體上是為了“粗放式增長”而設(shè)定的工程架構(gòu)體系。這種粗放增長的客觀現(xiàn)實是,廣告預算供應(yīng)的持續(xù)提升和微博不斷供給的流量變現(xiàn)規(guī)模,以及不斷增加廣告主的數(shù)量、預算和規(guī)模,來實現(xiàn)廣告數(shù)的增長。這時對系統(tǒng)最大的考驗是系統(tǒng)的高可用性,以及做業(yè)務(wù)需求時,對研發(fā)效率的保證,這樣的架構(gòu)就是“粗放增長之下的產(chǎn)物”。
這個架構(gòu)體系是存在一些問題的(即紅框中的):相對來說對策略模型是相當?shù)?,也就是從功能架?gòu)層面對算法模型的迭代是比較簡單的。比如 A/B Test 使用的是非常原始的 A/B Test,在這種在人口紅利的情況下能夠快速支撐廣告業(yè)務(wù)的增長,但是隨著人口紅利的消失,已經(jīng)不能很好的支撐廣告業(yè)務(wù)的增長,這時系統(tǒng)對策略模型的支持顯得異常重要。
3. 系統(tǒng)如何支持廣告增長的轉(zhuǎn)型
如何支撐廣告增長的轉(zhuǎn)型,會通過粗放型增長(擴流、擴廣告主、擴預算)轉(zhuǎn)型到精細化的增長,不斷的提升投放效果來促進收入的增長。這時對應(yīng)的系統(tǒng)需要進行轉(zhuǎn)型,在系統(tǒng)不斷完善的基礎(chǔ)上,實現(xiàn)策略模型的良好驅(qū)動。在這種情況下隨著算法不斷引入新的深度學習模型,整體的工程架構(gòu)也不斷的深耕細作,從原來的業(yè)務(wù)劃分方式(Target、Filter、Rank)轉(zhuǎn)型成面向算法策略(召回、模型、機制、排序)的劃分方式。
4. 流量漏斗模型
廣告系統(tǒng)常用的模型:流量漏斗模型。對其重新進行思考和定義:開始是對廣告進行召回,完成基于精準的最大概率展現(xiàn),到相關(guān)性的挑選,再到以模型為核心的競價排序機制。
本文不會從算法角度去講解如何召回和相關(guān)性的機制等,主要是介紹工程是如何支持算法模型迭代的。
5. 面向策略的下一代投放架構(gòu)
在架構(gòu)系統(tǒng)4.0中的基礎(chǔ)上對在線投放引擎進行業(yè)務(wù)分級,以滿足新的流量漏斗模型。有以下關(guān)鍵點:
① 觸發(fā)、模型、策略機制向獨立縱深發(fā)展
系統(tǒng)在支持觸發(fā)、模型、策略迭代上能夠?qū)崿F(xiàn)很好的各自的獨立縱深發(fā)展,能夠做到各自的快速迭代,互不影響。
② 引入精益驅(qū)動思想,系統(tǒng)雙核驅(qū)動,釋放算法迭代效率
在做整體的精細化轉(zhuǎn)型的時候,系統(tǒng)需要不斷的進行嘗試,而嘗試要有一個很好的嘗試平臺,所以引入了精益驅(qū)動的思想。在線精益平臺包括:法拉第實驗平臺和法拉第精益洞察,這是一個比較好的促進業(yè)務(wù)模型迭代的工具鏈,更加注重數(shù)據(jù)的實時性和數(shù)據(jù)的密度。
系統(tǒng)架構(gòu)總體上分為:在線精益工具平臺、在線投放系統(tǒng)、近線數(shù)據(jù)訪問、數(shù)據(jù)模型加工(曝光機器學習平臺和在線實時流的機制)和離線數(shù)據(jù)平臺
③ 特征數(shù)據(jù)的實時性和密度,模型獨立化發(fā)展
重點說下在線投放服務(wù),在服務(wù)中,會有流量接入,會有流量的觸發(fā),會有觸發(fā)機制,包括多路觸發(fā),通過多路觸發(fā)體制后,會有機制策略,包括模型預估服務(wù),模型預估服務(wù)是聚合服務(wù),會進行粗排、對數(shù)據(jù)進行裁剪,會在大規(guī)模分布式預估服務(wù)中完成,Ranker 也會基于預估進行精排。
特別說明一下,為什么進行粗排和精排,粗排我的理解是為了精排的性能考慮的,因為精排會涉及到大規(guī)模的精細計算,性能有可能會扛不住,所以需要粗排,而且在保證效果的情況下,為了性能的保證會有多級粗排。
最上面是法拉第實驗平臺和法拉第精益洞察。整體上會形成雙核引擎:一個良好的工程架構(gòu)體系和精益驅(qū)動的工具平臺。
6. 如何支持廣告物料的精準召回
從微博廣告的召回機制來看會有用戶標簽觸發(fā)、社交傳播觸發(fā)、精準人群觸發(fā)、內(nèi)容觸發(fā)、DNN 向量式觸發(fā),經(jīng)過5路觸發(fā),會進行 MIXER 廣告召回級的匯總,匯總后會有粗排策略、精排策略。
這里用到的信息,包括流量側(cè)和廣告?zhèn)取?/p>
流量策:
用戶畫像、請求上下文、歷史互動行為
廣告?zhèn)龋?/strong>
廣告主信息、計劃信息、創(chuàng)意信息
7. DNN 向量觸發(fā)模型
這里介紹下深度向量觸發(fā)模型,用到的是雙塔模型,包括用戶側(cè)和廣告?zhèn)?。用戶?cè)根據(jù)用戶信息進行訓練生成用戶側(cè)的向量,用到了三層的神經(jīng)網(wǎng)絡(luò),廣告?zhèn)纫彩且粯樱w來說訓練都是采用離線的方式完成的,接下來會做實時的向量預估。進而在雙塔匯合點進行相關(guān)性的判定,使用了簡單的 cos 和 sigmoid 進行相關(guān)性的判定。
8. 觸發(fā)工程架構(gòu)
觸發(fā)工程體系在如何更好的支持觸發(fā)角度來說,研發(fā)了對應(yīng)的服務(wù)體系。請求在請求召回時會觸發(fā) Agent 進行五路召回,包括雙塔的召回、內(nèi)容定向的召回、用戶畫像的召回、精準人群的召回、微博社交關(guān)系的召回,召回之后進行 Mixer,會結(jié)合質(zhì)量預估服務(wù)進行裁剪。然后,線上會有實時的廣告計劃庫數(shù)據(jù)和離線數(shù)據(jù)會對線上的五路觸發(fā)分別根據(jù)需求進行訪問,這樣會形成一個整體的廣告觸發(fā)工程架構(gòu)。
精益渠道思想工具:“兩翼計劃”
隨著超級粉絲通在17年上線,考慮到微博廣告從粗放式增長到精細化增長的轉(zhuǎn)型,需要有一個比較好的實驗平臺和一種線上運行洞察的方式和思想,這樣就構(gòu)成了精益驅(qū)動思想的來源。包括兩部分:一是進行線上策略的實驗和調(diào)控,一個是用于線上策略運行的精益洞察,與在線投放系統(tǒng)一起,構(gòu)成一體兩翼策略工程架構(gòu)體系。
1. 法拉第實驗平臺
① 法拉第分層實驗?zāi)P?/strong>
法拉第實驗采用正交分層模型,這種模型在互聯(lián)網(wǎng)行業(yè)一般都會使用,包括百度的愛迪生、阿里的特斯拉等。微博法拉第模型思想來自于 Google 流量正交分解模型的經(jīng)典論文,為多層的獨立實驗提供了理論基礎(chǔ),當然實驗也結(jié)合了微博廣告的實際情況,包括剛開始解決從無到有的問題,對論文中的模型進行了簡化。最開始是沒有域的概念,整體上每一層都會使用 hash 函數(shù)。
② 實驗分桶
雖然每個實驗層共享 hash 函數(shù),但是 hash 函數(shù)參數(shù)不同,參數(shù)包括流量標識和實驗 id 標識,呈現(xiàn)出的是不同層的流量分桶劃分是正交的。另外,也引入 Google 論文中提到的分配條件,場景應(yīng)用很經(jīng)典,例如做一個實驗,會考慮流量的重用或者實驗的一些特征,包括實驗的地域、性別等,這樣的話,使用圈定或限定下的流量而不是使用全部的流量;如果使用全部流量的話會造成實驗效果不顯著,實驗效果被稀釋,容易引起不置信。這樣可以使流量重復復用,并且能很好的觀測到策略所產(chǎn)生的實驗效果。這就是流量分桶類型和進行流量圈定的分配條件。
③ 法拉第實驗平臺
這個是法拉第實驗平臺的整體架構(gòu)圖。采用全程自動化的機制。通過法拉第的 Web 入口,進行實驗信息的記錄,在線上流量入口處進行實驗的下發(fā)和解析,根據(jù)實驗的數(shù)據(jù)信息,進行線上策略的調(diào)控,會對實驗命中數(shù)據(jù)進行解析,進行實驗的埋點,然后進入實時的分析引擎,統(tǒng)計實驗效果。
實驗的下發(fā)和解析有兩種方式:
一種是在流量的總?cè)肟谔幗y(tǒng)一進行實驗的下發(fā)和解析,一步到位,然后請求信息一塊下發(fā),隨著請求鏈路走,最后返回,命中那些策略會有對應(yīng)的標識。如果實驗數(shù)比較少時,解析無壓力,實驗相關(guān)性解析比較小,實驗消耗帶寬不大,此時是合適的。但是隨著實驗規(guī)模的增大,由于現(xiàn)在的廣告系統(tǒng)是分布式的系統(tǒng),如果完整的實驗信息一直隨著請求下發(fā)的話帶寬消耗會非常嚴重,造成返回結(jié)果超時,可用性下降,實驗時間就會變得很長。因此出現(xiàn)了另一種方式,由對應(yīng)的服務(wù)分別對對應(yīng)策略的實驗情況進行解析,而其他策略的實驗情況則不需要解析,這樣就只獲取自己感興趣的信息,避免了信息的冗余。
為什么剛開始沒有進行這樣的設(shè)計,因為系統(tǒng)剛開始是解決從無到有的問題而不是一到多的問題。第一步是實驗平臺的創(chuàng)建,采用第一種方式比較簡單,可以很快的將實驗下發(fā)。
④ 廣告?zhèn)?A/B 實驗
常用的 A/B 實驗是關(guān)于流量側(cè)的分桶實驗,根據(jù)流量的不同配比進行不同實驗的對比。但是這種流量側(cè)的分桶實驗不能滿足廣告的一些需求。在實際的廣告系統(tǒng)中,會出現(xiàn)針對某些廣告行業(yè)或者廣告主,進行嘗試性的策略,關(guān)注的實驗效果也是被關(guān)注的廣告行業(yè)或者廣告主的效果。如果用流量側(cè)實驗的話也不是不行,但是在進行實驗效果分析時候,數(shù)據(jù)分析需要具體到廣告主粒度,會給統(tǒng)計分析引擎帶來極大的挑戰(zhàn);如果不這么做,仍然只看整體的效果,實驗分析效果必定是被稀釋的,無法準確的反映出策略的意義。這樣就需要進行廣告?zhèn)葘嶒灥臋C制設(shè)計:
首先會進行實驗對象的圈定,包括:廣告主 、廣告類別、廣告計劃、廣告創(chuàng)意等。
然后進行同質(zhì)或非同質(zhì)實驗:
同質(zhì)實驗(即對一個推廣計劃的受眾進行隨機的劃分,一分為二,在一分為二的基礎(chǔ)上作用不同的策略進行對比),一個計劃,可能會創(chuàng)建兩個類似于“偽計劃”的概念,然后對偽計劃同時進行系統(tǒng)投放。進入兩個人群的劃分當中,然后進行效果對比。
非同質(zhì)實驗,這個是嘗試性的圈定一波人去進行實驗,這種往往是沒有對照的是根據(jù)實驗效果進行縱向的對比判定,也就是當前的策略實驗效果與之前沒有進行的實驗的策略運行效果進行對比判斷。
⑤ 廣告預算獨立 A/B 實驗
廣告實驗平臺在具體的廣告實驗中會遇到的問題,這種問題在非廣告業(yè)務(wù)中是沒有的。因為在廣告領(lǐng)域涉及到 A、U、C 這三方,這三方是個有效的完整回路,一個簡單的回路就考慮到計劃的投放->花錢->廣告下線,這里會涉及預算,預算沒有了就會下線。這里會涉及個問題,如果在進行這種簡單的流量分桶實驗的話,一分為二,上不同的策略,這兩個策略的結(jié)果對廣告主預算的消耗速度是不一樣的,帶來的結(jié)果是,假如某個分桶(五五分),一段時間會發(fā)現(xiàn) A 桶消耗的快,如果沒有進行預算的獨立,會把 B 桶的預算拉過去,具體表現(xiàn)就是廣告主的錢,在 A 桶花費的更多,如果流量小的時候效果可能非常好,但是隨著流量的不斷的放大會發(fā)現(xiàn)策略的實驗效果會變的很小。所以廣告預算的獨立性會在廣告主側(cè)實驗的時候就考慮到,比如說計劃的一分為二,預算平均分配,各自獨立,互不影響。最后會考慮將預算獨立實驗應(yīng)用在流量側(cè)分桶,目前沒有做但是經(jīng)過論證是可行的。
⑥ 實驗檢驗與效果評估
實驗檢驗與效果評估,是實時的效果評估,能夠做到5分鐘(保守的)內(nèi)的數(shù)據(jù)延遲,如果1分鐘也可以,但是問題點在于涉及廣告效果衡量時,比如 ctr=互動/曝光,互動可能會有延遲,會造成計算出的結(jié)果飄忽不定,所以為了讓實驗效果趨于穩(wěn)定會5分鐘計算一次。
對于跨多天的實驗效果分析采取的機制是離線跨天+實時流分析引擎。由于實時流機制的效果不如離線的,這里又進行了優(yōu)化,比如幾個小時之前的,如果離線進行這種任務(wù)的調(diào)度都能跑出來的話,也會用離線的方式進行批量的處理來替換今天早些時候的實時流分析數(shù)據(jù),實時流會傾向于用最近比如一個小時或兩個小時的數(shù)據(jù)。在實驗決策角度來說,實時流主要是看實驗效果會不會帶來嚴重的缺陷,以便進行實驗的及時終止,離線的數(shù)據(jù)處理帶來的實時報表主要作為實驗效果的評定。
整體的實驗效果會有可用性的監(jiān)控(例如對流量分桶的監(jiān)控,不同策略對流量層面的可用性是不一樣的),保證兩個實驗分桶的可用性在同一個水平上的。
實驗平臺支持的業(yè)務(wù)指標將近4000萬~1億的規(guī)模,而且支持自定義指標的方式。同時實驗支持版本的跟蹤,也支持 nodiff 的對照實驗等。
2. 廣告精益洞察
精益洞察想解決的問題是:由于線上的策略很多,怎樣讓策略運行的時候,在系統(tǒng)之外能很好的看到系統(tǒng)的運行狀態(tài),使得策略運行的像水一樣透明,后來提出了精益矩陣的描述方法,整體上的業(yè)務(wù)分為多層次的業(yè)務(wù)階段,每個階段都會有完整的洞察。
上圖是系統(tǒng)的架構(gòu)圖。數(shù)據(jù)落地,進入到實時流機制,實時流機制中的數(shù)據(jù)類別是分類的,之間是通過 key 進行關(guān)聯(lián),將日志構(gòu)建組件化,包括線上的調(diào)試日志,用戶的信息日志、線上跑策略跑模型的日志、廣告日志等等,再往上會進行日志處理存儲,分為離線存儲和在線存儲,在線存儲會用到 PG 和 clickHouse 這種列式存儲,以便在線即時訪問。
整體的呈現(xiàn)效果是:每一層是一個業(yè)務(wù)策略階段;請求訪問或者廣告召回集的處理,整體看是一個漏斗,從廣告數(shù)量來看是二維的,一個廣告召回集的數(shù)量,隨著策略的運行,數(shù)量在不斷的減少。每個層面上都可以更細粒度看,例如不同的競價類型占比的分布情況以及整體的出價水平都可以細粒度的查看,分辨出在不同策略層之間的表現(xiàn)差異,洞察策略的具體影響效果。
本文圖片全部來源于:DataFunTalk