廣告算法在阿里文娛用戶增長中的實踐

從2019年開始,優酷使用DSP在今日頭條、阿里媽媽等平臺投放視頻廣告,實現用戶的穩定增長。我們將

用戶增長領域與廣告競價領域結合,借鑑推薦領域的實踐,基於特有的業務背景,開發落地了一系列算法。在成本及預算可控的條件下,最終實現了數百萬DAU引流能力。本文主要介紹外投廣告算法在用戶增長領域的設計及優化,解決存在約束的條件下,實現最大化DAU量的問題。

下面將圍繞四點展開:

  • 優酷用戶增長業務介紹
  • 廣告排序算法及優化
  • 自動化報價算法
  • 總結及後續規劃
廣告算法在阿里文娛用戶增長中的實踐

1. 用戶增長業務背景


廣告算法在阿里文娛用戶增長中的實踐

在用戶增長的過程中,首先需要把用戶增長劃為不同的用戶態,不同的用戶態存在不同價值。新用戶會變為低活用戶、中活用戶直至高活用戶,在整體過程中,也會隨時變成沉默用戶。對用戶增長而言,新用戶、低活用戶和沉默用戶是非常有價值的,他們的到訪能有效提高APP的活躍度。

RTB是實現用戶增長的主要方式之一。它的主要流程是:首先DSP參與廣告競價,在競價成功之後,廣告會展現在外部平臺上,用戶在點擊之後會切換至優酷APP上,如果感興趣的話會有視頻消費和次日回訪。整個流程分為兩部分,前半部分歸屬於RTB競價,後半部分屬於用戶增長。

用戶增長的主要業務目標是在成本可控的條件下,最大化高價值的DAU量,即讓更多的新用戶、低活用戶以及沉默用戶來到平臺進行消費,增加平臺活躍度。

2. 廣告競價RTB概述

廣告算法在阿里文娛用戶增長中的實踐

RTB有兩個比較重要的組件:廣告主競價代理DSP和提供競價接入、判定競價成功與否的平臺ADX ( 例如頭條ADX,阿里的TanX )。

RTB過程如下:當用戶訪問的Web頁面或APP應用時,請求發送至ADX,由ADX轉發至多個DSP,DSP根據從用戶需求平臺 ( DMP ) 上取得的用戶特徵進行預估,在100ms之內將廣告和出價返回至ADX,之後ADX根據多個DSP返回的結果,根據一定的排序規則和計費規則,選擇一個合適的廣告投放給用戶,之後又將用戶是否點擊這條廣告的信息返回給成功獲得了該次競價的DSP代理。

RTB中的主要關注點是成交機制和計費模式,其中成交機制包括:GFP ( 最高價格成交 ), GSP ( 第二價成交,通用的方式 ), VCG ( 通過效用計算成交價格,存在算法上,理解上的難度,用的較少 )。計費模式主要有CPM,CPC,CPA和OCPX,其中CPM是由廣告主承擔預估風險,由DSP預估用戶對廣告主的價值,CPC和CPA是由平臺來預估用戶對於各個DSP的價值,OCPX是由平臺自動調整出價,由平臺預估價值,用戶承擔風險。

在我們的業務場景中,使用的是GSP成交機制,CPM的計費模式。並且優酷業務場景有鮮明的特點:

  • 使用CPM計費,需要我們自身建模預估,但可利用站內數據;
  • 對於不同用戶態的拉活,引流成本是不一樣的,需要針對不同人群提供成本控制;
  • 作為只有一個用戶的DSP代理,可以接入不同的ADX平臺,需要針對多渠道多平臺做模型融合。

雖然現有的ADX平臺能夠支持直接在上面投放廣告,但是存在很多問題:不支持定向用戶分層,不支持個性化,數據屬於平臺方,無法進行後續優化,接入平臺過多也會增加消耗等等,因此我們自建DSP,滿足業務場景需求。

廣告算法在阿里文娛用戶增長中的實踐

1. 算法流程

廣告算法在阿里文娛用戶增長中的實踐

離線產生數百萬的廣告,第一步通過人工精選或者算法選擇來保證廣告池的動態進出,例如刪除投放時間過長,點擊率過低的廣告,通過算法選擇高質量的廣告;第二步通過個性化多路召回適合用戶的千百個廣告;第三步將經過召回的廣告通過規則過濾,例如會過濾重複廣告,或者會根據曝光頻率來控制;第四步將這些廣告通過預估模型,選擇價值最高的廣告通過報價算法產生報價,最後將廣告和報價結果返回至ADX。

與推薦系統相比,流程借鑑了推薦系統的多路個性化召回,區別在於推薦系統關注Rank順序,而廣告還關注CTR偏差,推薦系統一般最後的組件是重排 ( ReRank ),而廣告系統在預估之後需要進行報價計算。

2. 算法實現方案

廣告算法在阿里文娛用戶增長中的實踐

我們面對的業務場景的主要特點是:

  • RT限制比較嚴格,要在100ms內返回;
  • 存在多渠道多平臺;
  • 接入量大,機器資源比較緊張。

常用的排序模型有LR,GBDT,DNN ( DCN/WDL/MMOE ) 等,LR需要大量的特徵工程工作來提高模型精度,GBDT的訓練和預估都很快,能有效緩解RT問題,但是類別特徵的處理上容易使模型過擬合,DNN的embedding技術能夠處理各種特徵,但是由於需要存儲包含每個特徵對應的embedding的大矩陣,線上內存消耗很大,而且DNN類的模型雖然能達到很高的精度,但訓練和預估都很耗資源並且打分時的RT很高。

在多渠道多平臺統一模型方面,主要存在兩個問題:

  • 不同渠道之間有差異。例如汽車相關廣告,在母嬰社區和汽車之家論壇點擊率之間會有不同;
  • 渠道平臺相關沒有現成的特徵。在實際中,我們以平臺本身作為特徵,通過根據歷史數據構建不同平臺的統計特徵,使模型感知到渠道平臺的差異,最後基於不同平臺不同分層的Match特徵,實現了由LR單渠道模型到GBDT統一模型的升級,帶來了業務上的明顯收益。

3. 遇到的問題和思考

廣告算法在阿里文娛用戶增長中的實踐

推薦中常用召回都是Item-based,通過用戶觀看的視頻來尋找相似的視頻,認為這些相似視頻是用戶喜歡的視頻,這導致推薦系統有以下缺陷:

  • 用戶觀看的視頻未必是用戶喜歡;
  • 相似視頻的相似之處未必是用戶觀看視頻的真正原因;
  • 低頻用戶觀看的視頻非常少,推薦結果缺乏多樣性。

從因果推斷的角度思考上述問題的話,我們認為用戶變沉默的原因是對之前推薦的內容不滿意,而用戶留存的原因是因為推薦的視頻他比較喜歡,因此,我們利用無偏信息構建相似度量,構造低活用戶到高活用戶的匹配,找到他的反事實鏡像人,然後進行相關推薦,在業務上也取得了很大收益。

廣告算法在阿里文娛用戶增長中的實踐

1. 業務背景及問題的形式化定義

廣告算法在阿里文娛用戶增長中的實踐

不同的場景下,廣告投放的報價算法存在不同的約束,主要場景包括日常投放和衝量投放,本質上都是多渠道多分層的投放。對於日常投放而言,會存在預算約束,首活成本約束,用戶價值約束 ( 需要去高活,要更多的高質量沉默用戶 );當運營有衝量需求時為衝量投放,這時預算充足,有首活成本約束,用戶價值約束。

2. 單PID解決衝量投放

廣告算法在阿里文娛用戶增長中的實踐

根據衝量投放的條件:預算充足、有首活成本約束、用戶價值約束,可以解出報價公式,即報價為預估的CTR/CVR與報價係數alpha之積。我們通過單控制器的方法來控制報價係數alpha,使其再能夠滿足成本約束的同時提升轉化率。

控制器根據Feedback數據和控制函數計算公式,可以計算出一個信號,再將其傳入執行器中通過執行器函數計算,從而給出報價。常見的控制器有PID和水波控制器,PID通過振幅,累積誤差和波動來調節,而水波控制器僅僅通過累計誤差來進行調節,能力相對弱一些。執行器是將控制信號進行指數變換,對初始值進行放大或者縮小,實現最後的出價。

3. 日常投放解決方案

廣告算法在阿里文娛用戶增長中的實踐

對於日常投放而言,會存在預算約束,首活成本約束,用戶價值約束 ( 需要去高活,要更多的高質量沉默用戶 ),我們採用多目標約束下的最大化問題來建模,用拉格朗日對偶法解決,能解出一個出價公式 ( 可參考KDD2018對應論文 )。計算所得的出價公式中有兩個參數p、q,我們通過兩個PID對這兩個參數進行控制來實現報價。不同於單PID的解決方案,一是在q控制器中增加了修正信號,使其以最終CPC為控制目標,二是利用線性插值的方法建模兩個PID之間的耦合影響 ( 具體方法可以參考KDD2018 )。

4. 報價工程化

廣告算法在阿里文娛用戶增長中的實踐

用戶的請求通過DSP接入管理後臺,請求在進入系統之後,有以下流程:

  • 接入後臺產生競價、曝光、點擊等日誌,通過Blink解析統計得到誤差數據,將誤差數據實施寫入內存數據庫,並保存歷史誤差數據;
  • 報價算法核心 ( 為了保證最大化利用流量,M分鐘定時調度一次,一次即為一個時間步 ) 通過離線平臺得到投放計劃,成本、預算、算法參數等,然後從內存數據庫中讀取誤差數據,計算當前報價參數並寫入內存數據庫;
  • 數據在TPP平臺進行廣告召回,點擊率預估等,最後讀取內存數據庫中的報價參數並返回廣告和出價。
廣告算法在阿里文娛用戶增長中的實踐

廣告算法在阿里文娛用戶增長中的實踐

整個實踐過程中,在技術選型方面,除了理論上的支持,我們必須考慮機器資源,人力等方面的約束,並考慮到各種可用資源 ( 公司內部,開源等 ),將整個目標進行體系化,分層拆分優化,通過算法AB系統驅動效率提升;針對業務特點建模,具體問題具體分析,技術為業務服務。

後續,我們可以在實現CTR預估的基礎上,實現用戶價值的預估,實現多目標預估;在報價算法上,可以嘗試基於強化學習進行報價;業務上,可以由促活擴展至拉新,熱劇宣發,會員等方面,這些都可以依託已建立的預估系統和報價技術框架進行發展。

作者:程源 阿里文娛 | 高級算法工程師


分享到:


相關文章: