微博廣告策略工程架構體系演進

  • 2019 年 11 月 22 日
  • 筆記

分享嘉賓:李鐵牛 新浪微博

編輯整理:崔媛媛

內容來源:DataFun AI Talk

出品社區:DataFun

註:歡迎轉載,轉載請留言

導讀:本次分享的主題為微博廣告策略工程架構體系演進,將介紹微博廣告在從0到1,從1到 N 的過程中,微博廣告架構是如何支援策略、演算法、模型迭代的,包括以下幾部分:

  • 概述
  • 微博廣告策略工程架構體系演進
  • 精益驅動思想工具:「兩翼計劃」

▌概述

1. 廣告樣式與場景

上圖是微博廣告目前商業場景流,「一屏四大流」。「一屏」指打開微博的 Fashion,「四大流」指佔據微博商業化的主體,包括關係資訊流、熱門流、評論流和熱搜流。右圖為廣告投放的後台。

2. 廣告參與方

如上圖,做計算廣告首先面臨這些概念,根據不同的廣告主的規模和對公司的重要程度分為 KA 類和中小類。KA 類往往是進行廣量式的購買。中小類,常規的客戶會進行競價。

常見的計費方式有:CPE,CPM,CPD。

目前在互聯網市場在大規模推廣 OCPX,OCPX 作為一種需要很高的技術含量,也是一種很好的降低廣告主投放風險的售賣方式。

3. 計算廣告核心問題

這是廣告涉及到的三方:平台(站方)、用戶、廣告主,在計算廣告設計時的核心問題是如何追求三方之間均衡的、整體的利益最大化。

4. 廣告投放流程

以上是一般的廣告的投放流程。這是從廣告主的視角、平台的視角以及從用戶的視角來公共完成三方「相向而行」的活動:

廣告營銷策劃的流程:創建推廣計劃 -> 選擇人群受眾定向 -> 設置廣告預算 -> 設定廣告創意 -> 啟動廣告投放 -> 查看廣告效果 -> 下一步營銷決策。

精準廣告投放:針對廣告庫存請求,會對用戶進行精準用戶畫像刻畫,然後做廣告的召回,對廣告進行粗排和精排,挑選廣告,根據不同平台進行廣告創意渲染工作,最後展示給用戶。

用戶內容消費,比較簡單請看圖中流程。

▌微博廣告策略工程架構體系演進

1. 微博廣告工程架構發展史

微博商業化進程不斷的發展,支撐商業化的工程架構會隨著具體的業務需求做改變。

剛開始做的是非資訊流的廣告,按照傳統的方式會試投一些 banner 在微博,目前 banner 在微博的移動端已經沒有了。從1.0版本簡單彈窗式的廣告系統,到2.0版本以粉絲通為代表的產品線陸續的孵化出來,這時候微博開始進行資訊流廣告的研發。微博是中國資訊流廣告的第一家,在探索中孵化出一系列的廣告產品矩陣,為了產品的快速上線,複製了大量的廣告系統,為了改變這一狀況,隨著17年底超級粉絲通的上線,對廣告系統進行了整體重構,從此微博廣告工程架構進入了4.0時代。

2. 投放系統架構4.0

上圖是17年的工程架構圖,是隨著微博廣告產品線的探索演化出的工程架構4.0版本,當時處於流量的藍海階段,所以通過配合廣告客戶和廣告預算的不斷增加,不斷提升廣告系統的穩定性、高可用性、高並發來不斷的實現廣告收入的增長。因此我們也對系統進行了分層化的梳理,圖中藍色的區域是線上廣告投放系統最核心的鏈路。通過廣告請求,流量統一接入,接入包括微博多個產品矩陣,廣告的請求會對多個產品矩陣進行請求分發,通過統一流量價格評估,對用戶的請求進行響應。整體上這樣一個引擎結構是為了不斷的滿足產品提出的面對客戶的需求來進行的架構設定。

其基本流程是廣告請求,廣告庫存接入,到總體流量的分發,請求用戶的畫像,經過競價服務,會進行廣告觸發,會請求在線索引服務,形成比較完善的行為定向體系,包括:

1. 用戶的行為定向。在微博上的行為定向,比如,對話題的互動,熱門微博的互動,熱搜人群的互動等。

2. 社交關係定向。比如關注的大 V 資訊,如果在某個大 V 資訊下用戶的群體能理解為自然形成的社會群體,那麼這個大 V 資訊下面的粉絲群是可以進行選擇投放的。

3. 精準人群定向。是由平台方或第三方的數據加工,或廣告主根據一次投放效果進行的召回,或已有的客戶資訊形成的用戶粒度聚合後的數據包,這個就是精準用戶的集合。

4. 用戶屬性定向。包括用戶畫像,年齡、地域等。

以上是整體的在線投放流程,但是投放流程僅僅有以上這些是不夠的,還包括個性化庫存策略,廣告的負回饋的策略,智慧頻次控制策略等,以及配套的 A/B Test 系統,這樣就形成了廣告投放的在線服務群。

由於流量來自於微博站方,所以微博廣告請求是無需流量反作弊的。存在的反作弊主要是針對互動回傳,也就是說廣告投後的後鏈路數據的回傳會有大規模的反作弊策略,當然也包括社交互動。然後會有一個實時的結算中心—結算系統,提供給廣告主需要的報表,以及與廣告主密切相關的賬戶系統,總體上形成了投後鏈路在線服務群。

之下是屬於近線的數據訪問,按照數據分類:用戶基礎數據、廣告定向數據、廣告實時流數據、演算法模型訓練數據、廣告創意庫數據來制定線上這種實時訪問的需求。

最下面屬於線下的數據倉庫。線上投放完的數據會進入數據倉庫落地。

這就是廣告數據匯流排,實現數據流的方式一般通過 kafka 機制等實現,然後匯聚到數據倉庫里,對數據進行分門別類。

圖中最左邊廣告的監控系統,會從系統的各個層面對系統進行業務運行狀況的監控以及服務穩定性的監控、可用性的監控。這些就是業務層面完整的一個工具鏈。原來多個產品線就逐漸聚合到這樣的一個系統當中。

4.0時代的架構在整體上是為了「粗放式增長」而設定的工程架構體系。這種粗放增長的客觀現實是,廣告預算供應的持續提升和微博不斷供給的流量變現規模,以及不斷增加廣告主的數量、預算和規模,來實現廣告數的增長。這時對系統最大的考驗是系統的高可用性,以及做業務需求時,對研發效率的保證,這樣的架構就是「粗放增長之下的產物」。

這個架構體系是存在一些問題的(即紅框中的):相對來說對策略模型是相當淡化的,也就是從功能架構層面對演算法模型的迭代是比較簡單的。比如 A/B Test 使用的是非常原始的 A/B Test,在這種在人口紅利的情況下能夠快速支撐廣告業務的增長,但是隨著人口紅利的消失,已經不能很好的支撐廣告業務的增長,這時系統對策略模型的支援顯得異常重要。

3. 系統如何支援廣告增長的轉型

如何支撐廣告增長的轉型,會通過粗放型增長(擴流、擴廣告主、擴預算)轉型到精細化的增長,不斷的提升投放效果來促進收入的增長。這時對應的系統需要進行轉型,在系統不斷完善的基礎上,實現策略模型的良好驅動。在這種情況下隨著演算法不斷引入新的深度學習模型,整體的工程架構也不斷的深耕細作,從原來的業務劃分方式(Target、Filter、Rank)轉型成面向演算法策略(召回、模型、機制、排序)的劃分方式。

4. 流量漏斗模型+

廣告系統常用的模型:流量漏斗模型。對其重新進行思考和定義:開始是對廣告進行召回,完成基於精準的最大概率展現,到相關性的挑選,再到以模型為核心的競價排序機制。

本文不會從演算法角度去講解如何召回和相關性的機制等,主要是介紹工程是如何支援演算法模型迭代的。

5. 面向策略的下一代投放架構

在架構系統4.0中的基礎上對在線投放引擎進行業務分級,以滿足新的流量漏斗模型。有以下關鍵點:

① 觸發、模型、策略機制向獨立縱深發展

系統在支援觸發、模型、策略迭代上能夠實現很好的各自的獨立縱深發展,能夠做到各自的快速迭代,互不影響。

② 引入精益驅動思想,系統雙核驅動,釋放演算法迭代效率

在做整體的精細化轉型的時候,系統需要不斷的進行嘗試,而嘗試要有一個很好的嘗試平台,所以引入了精益驅動的思想。在線精益平台包括:法拉第實驗平台和法拉第精益洞察,這是一個比較好的促進業務模型迭代的工具鏈,更加註重數據的實時性和數據的密度。

系統架構總體上分為:在線精益工具平台、在線投放系統、近線數據訪問、數據模型加工(曝光機器學習平台和在線實時流的機制)和離線數據平台

③ 特徵數據的實時性和密度,模型獨立化發展

重點說下在線投放服務,在服務中,會有流量接入,會有流量的觸發,會有觸發機制,包括多路觸發,通過多路觸發體制後,會有機制策略,包括模型預估服務,模型預估服務是聚合服務,會進行粗排、對數據進行裁剪,會在大規模分散式預估服務中完成,Ranker 也會基於預估進行精排。

特別說明一下,為什麼進行粗排和精排,粗排我的理解是為了精排的性能考慮的,因為精排會涉及到大規模的精細計算,性能有可能會扛不住,所以需要粗排,而且在保證效果的情況下,為了性能的保證會有多級粗排。

最上面是法拉第實驗平台和法拉第精益洞察。整體上會形成雙核引擎:一個良好的工程架構體系和精益驅動的工具平台。

6. 如何支援廣告物料的精準召回

從微博廣告的召回機制來看會有用戶標籤觸發、社交傳播觸發、精準人群觸發、內容觸發、DNN 向量式觸發,經過5路觸發,會進行 MIXER 廣告召回級的匯總,匯總後會有粗排策略、精排策略。

這裡用到的資訊,包括流量側和廣告側。

  • 流量策:

用戶畫像、請求上下文、歷史互動行為

  • 廣告側:

廣告主資訊、計劃資訊、創意資訊

7. DNN 向量觸發模型

這裡介紹下深度向量觸發模型,用到的是雙塔模型,包括用戶側和廣告側。用戶側根據用戶資訊進行訓練生成用戶側的向量,用到了三層的神經網路,廣告側也是一樣,整體來說訓練都是採用離線的方式完成的,接下來會做實時的向量預估。進而在雙塔匯合點進行相關性的判定,使用了簡單的 cos 和 sigmoid 進行相關性的判定。

8. 觸發工程架構

觸發工程體系在如何更好的支援觸發角度來說,研發了對應的服務體系。請求在請求召回時會觸發 Agent 進行五路召回,包括雙塔的召回、內容定向的召回、用戶畫像的召回、精準人群的召回、微博社交關係的召回,召回之後進行 Mixer,會結合品質預估服務進行裁剪。然後,線上會有實時的廣告計劃庫數據和離線數據會對線上的五路觸發分別根據需求進行訪問,這樣會形成一個整體的廣告觸發工程架構。

▌精益渠道思想工具:「兩翼計劃」

隨著超級粉絲通在17年上線,考慮到微博廣告從粗放式增長到精細化增長的轉型,需要有一個比較好的實驗平台和一種線上運行洞察的方式和思想,這樣就構成了精益驅動思想的來源。包括兩部分:一是進行線上策略的實驗和調控,一個是用於線上策略運行的精益洞察,與在線投放系統一起,構成一體兩翼策略工程架構體系。

1. 法拉第實驗平台

① 法拉第分層實驗模型

法拉第實驗採用正交分層模型,這種模型在互聯網行業一般都會使用,包括百度的愛迪生、阿里的特斯拉等。微博法拉第模型思想來自於 Google 流量正交分解模型的經典論文,為多層的獨立實驗提供了理論基礎,當然實驗也結合了微博廣告的實際情況,包括剛開始解決從無到有的問題,對論文中的模型進行了簡化。最開始是沒有域的概念,整體上每一層都會使用 hash 函數。

② 實驗分桶

雖然每個實驗層共享 hash 函數,但是 hash 函數參數不同,參數包括流量標識和實驗 id 標識,呈現出的是不同層的流量分桶劃分是正交的。另外,也引入 Google 論文中提到的分配條件,場景應用很經典,例如做一個實驗,會考慮流量的重用或者實驗的一些特徵,包括實驗的地域、性別等,這樣的話,使用圈定或限定下的流量而不是使用全部的流量;如果使用全部流量的話會造成實驗效果不顯著,實驗效果被稀釋,容易引起不置信。這樣可以使流量重複復用,並且能很好的觀測到策略所產生的實驗效果。這就是流量分桶類型和進行流量圈定的分配條件。

③ 法拉第實驗平台

這個是法拉第實驗平台的整體架構圖。採用全程自動化的機制。通過法拉第的 Web 入口,進行實驗資訊的記錄,在線上流量入口處進行實驗的下發和解析,根據實驗的數據資訊,進行線上策略的調控,會對實驗命中數據進行解析,進行實驗的埋點,然後進入實時的分析引擎,統計實驗效果。

實驗的下發和解析有兩種方式:

一種是在流量的總入口處統一進行實驗的下發和解析,一步到位,然後請求資訊一塊下發,隨著請求鏈路走,最後返回,命中那些策略會有對應的標識。如果實驗數比較少時,解析無壓力,實驗相關性解析比較小,實驗消耗頻寬不大,此時是合適的。但是隨著實驗規模的增大,由於現在的廣告系統是分散式的系統,如果完整的實驗資訊一直隨著請求下發的話頻寬消耗會非常嚴重,造成返回結果超時,可用性下降,實驗時間就會變得很長。因此出現了另一種方式,由對應的服務分別對對應策略的實驗情況進行解析,而其他策略的實驗情況則不需要解析,這樣就只獲取自己感興趣的資訊,避免了資訊的冗餘。

為什麼剛開始沒有進行這樣的設計,因為系統剛開始是解決從無到有的問題而不是一到多的問題。第一步是實驗平台的創建,採用第一種方式比較簡單,可以很快的將實驗下發。

④ 廣告側 A/B 實驗

常用的 A/B 實驗是關於流量側的分桶實驗,根據流量的不同配比進行不同實驗的對比。但是這種流量側的分桶實驗不能滿足廣告的一些需求。在實際的廣告系統中,會出現針對某些廣告行業或者廣告主,進行嘗試性的策略,關注的實驗效果也是被關注的廣告行業或者廣告主的效果。如果用流量側實驗的話也不是不行,但是在進行實驗效果分析時候,數據分析需要具體到廣告主粒度,會給統計分析引擎帶來極大的挑戰;如果不這麼做,仍然只看整體的效果,實驗分析效果必定是被稀釋的,無法準確的反映出策略的意義。這樣就需要進行廣告側實驗的機制設計:

首先會進行實驗對象的圈定,包括:廣告主 、廣告類別、廣告計劃、廣告創意等。

然後進行同質或非同質實驗:

同質實驗(即對一個推廣計劃的受眾進行隨機的劃分,一分為二,在一分為二的基礎上作用不同的策略進行對比),一個計劃,可能會創建兩個類似於「偽計劃」的概念,然後對偽計劃同時進行系統投放。進入兩個人群的劃分當中,然後進行效果對比。

非同質實驗,這個是嘗試性的圈定一波人去進行實驗,這種往往是沒有對照的是根據實驗效果進行縱向的對比判定,也就是當前的策略實驗效果與之前沒有進行的實驗的策略運行效果進行對比判斷。

⑤ 廣告預算獨立 A/B 實驗

廣告實驗平台在具體的廣告實驗中會遇到的問題,這種問題在非廣告業務中是沒有的。因為在廣告領域涉及到 A、U、C 這三方,這三方是個有效的完整迴路,一個簡單的迴路就考慮到計劃的投放->花錢->廣告下線,這裡會涉及預算,預算沒有了就會下線。這裡會涉及個問題,如果在進行這種簡單的流量分桶實驗的話,一分為二,上不同的策略,這兩個策略的結果對廣告主預算的消耗速度是不一樣的,帶來的結果是,假如某個分桶(五五分),一段時間會發現 A 桶消耗的快,如果沒有進行預算的獨立,會把 B 桶的預算拉過去,具體表現就是廣告主的錢,在 A 桶花費的更多,如果流量小的時候效果可能非常好,但是隨著流量的不斷的放大會發現策略的實驗效果會變的很小。所以廣告預算的獨立性會在廣告主側實驗的時候就考慮到,比如說計劃的一分為二,預算平均分配,各自獨立,互不影響。最後會考慮將預算獨立實驗應用在流量側分桶,目前沒有做但是經過論證是可行的。

⑥ 實驗檢驗與效果評估

實驗檢驗與效果評估,是實時的效果評估,能夠做到5分鐘(保守的)內的數據延遲,如果1分鐘也可以,但是問題點在於涉及廣告效果衡量時,比如 ctr=互動/曝光,互動可能會有延遲,會造成計算出的結果飄忽不定,所以為了讓實驗效果趨於穩定會5分鐘計算一次。

對於跨多天的實驗效果分析採取的機制是離線跨天+實時流分析引擎。由於實時流機制的效果不如離線的,這裡又進行了優化,比如幾個小時之前的,如果離線進行這種任務的調度都能跑出來的話,也會用離線的方式進行批量的處理來替換今天早些時候的實時流分析數據,實時流會傾向於用最近比如一個小時或兩個小時的數據。在實驗決策角度來說,實時流主要是看實驗效果會不會帶來嚴重的缺陷,以便進行實驗的及時終止,離線的數據處理帶來的實時報表主要作為實驗效果的評定。

整體的實驗效果會有可用性的監控(例如對流量分桶的監控,不同策略對流量層面的可用性是不一樣的),保證兩個實驗分桶的可用性在同一個水平上的。

實驗平台支援的業務指標將近4000萬~1億的規模,而且支援自定義指標的方式。同時實驗支援版本的跟蹤,也支援 nodiff 的對照實驗等。

2. 廣告精益洞察

精益洞察想解決的問題是:由於線上的策略很多,怎樣讓策略運行的時候,在系統之外能很好的看到系統的運行狀態,使得策略運行的像水一樣透明,後來提出了精益矩陣的描述方法,整體上的業務分為多層次的業務階段,每個階段都會有完整的洞察。

上圖是系統的架構圖。數據落地,進入到實時流機制,實時流機制中的數據類別是分類的,之間是通過 key 進行關聯,將日誌構建組件化,包括線上的調試日誌,用戶的資訊日誌、線上跑策略跑模型的日誌、廣告日誌等等,再往上會進行日誌處理存儲,分為離線存儲和在線存儲,在線存儲會用到 PG 和 clickHouse 這種列式存儲,以便在線即時訪問。

整體的呈現效果是:每一層是一個業務策略階段;請求訪問或者廣告召回集的處理,整體看是一個漏斗,從廣告數量來看是二維的,一個廣告召回集的數量,隨著策略的運行,數量在不斷的減少。每個層面上都可以更細粒度看,例如不同的競價類型佔比的分布情況以及整體的出價水平都可以細粒度的查看,分辨出在不同策略層之間的表現差異,洞察策略的具體影響效果。

精益洞察提供了不同的視角:

流量側:看總體的流量的漏斗運行情況;

用戶粒度:實現 debug 功能,對單個用戶的請求在策略漏斗中的表現情況;

計劃粒度:商業側,比如某廣告主計劃的推廣運行情況都可以洞察到。

本次的分享就到這裡,謝謝大家。

------

PS:微博廣告研發中心,招募廣告引擎高級工程師/技術專家(廣告策略方向、分散式架構方向)中,團隊技術氛圍濃厚,技術至上,技術偏執狂,開放,自由,優秀者有股票,有意者請發送簡歷至:

[email protected]

廣告策略方向:參與廣告投放體系的實現,基於大規模用戶行為數據,優化在線廣告策略與模型,提高在線廣告的相關度,優化廣告投放效果。

分散式架構方向:負責微博廣告引擎設計、重構、優化,支援大數據、高並發和高性能要求; 負責廣告數據服務的研發,支援億級用戶的廣告動態實時計算和匹配,以及數據分散式存儲和訪問; 對現有系統的不足進行分析,找到目前系統的瓶頸,改進廣告系統的架構,提高系統性能以及效果。

嘉賓介紹

李鐵牛,微博廣告引擎技術專家,微博廣告投放系統負責人。2012年加入微博廣告團隊,微博廣告創始團隊核心成員,微博廣告法拉第 A/B 分層實驗系統設計者。對廣告觸發機制,廣告智慧頻控,市場機制設計,精準受眾定向技術, 廣告策略實驗框架等計算廣告技術有深入研究,對廣告服務模型建模和百億級高並發廣告系統有豐富的設計經驗。

——END——

Tags: