美團DSP廣告策略實踐

美團雲發表於2017-09-11
  • 本文轉自美團點評技術學院,未經作者許可,不允許私自轉載。
  • 美團雲知乎機構賬號每日分享雲端計算產品,技術內容。 歡迎關注!
  • 加入美團雲技術交流群(QQ群:469243579),每日分享更多精彩技術文章。

前言

近年來,線上廣告在整個廣告行業的比重越來越高。線上廣告中實時競價的廣告由於其良好的轉化效果,佔有的比重逐年升高。DSP(Demand-Side Platform)[1]作為需求方平臺,通過廣告交易平臺(AdExchange)[2]對每次曝光進行競價嘗試。對於AdExchange的每次競價請求,DSP根據Cookie Mapping [3]或者裝置資訊,嘗試把正在瀏覽媒體網站、App的使用者對映到DSP能夠識別的使用者,然後根據DSP從使用者歷史行為中挖掘的使用者畫像,進行流量篩選、點選率/轉化率預估等,致力於ROI [4]的最大化。

美團點評的使用者量越來越大,積累了大量的使用者在站內的行為資訊,我們基於這些行為構造了精準的使用者畫像,並在此基礎上針對美團App和網站的使用者搭建了美團DSP平臺,致力於獲取站外優質的流量,為公司帶來效益。本文從策略角度描述一下在搭建DSP過程中的考慮、權衡及對未來的思考。
  • 在DSP實時競價過程中,策略端都在哪些步驟起作用;
  • 對每一個步驟的嘗試和優化方向做出詳細介紹;
  • 總結DSP如何通過AB測試、使用者行為反饋收集、模型迭代、指匯出價/排序等步驟來打通整個DSP實時競價廣告閉環。

競價展示流程

美團DSP在一次完整的競價展示過程中可能涉及到兩個大的步驟:
  1. 對AdExchange的競價請求實時競價;
  2. 競價成功之後使用者點選進入二跳頁、瀏覽、點選、最後轉化。
我們分別看一下這兩個步驟中策略的支援。

美團DSP廣告策略實踐

圖1 競價廣告示意圖

圖1給出了每一次競價廣告的粗略示意圖,競價Gateway在收到競價請求之後,會識別出美團點評使用者的流量,根據網站歷史CTR、網站品類屬性等因素進行簡單的流量過濾,把流量分發到後端的AdServer。AdServer作為後端廣告的總控模組,首先向RecServer(定向召回服務)獲取站外展示廣告召回結果,然後根據獲取的廣告結果向PredictorServer(CTR/點選價值預測服務)請求每個廣告的站外點選率和點選價值。最後AdServer根據獲取的點選價值v和ctr,根據v∗ctr^t進行排序,從而挑選出top的廣告進行展示。

美團DSP廣告策略實踐

圖2 二跳頁廣告流程圖

圖2給出了競價成功後,使用者從站外展示的廣告點選後,所經歷的流程示意圖。使用者點選站外廣告後,到達二跳頁Gateway,二跳頁Gateway向AdServer請求廣告列表。AdServer從RecServer獲取站內二跳頁廣告召回結果,然後根據獲取的廣告結果向PredictorServer請求每個廣告的二跳頁點選率並進行排序。排序後的結果返回給二跳頁Gateway進行廣告填充。

在上述兩個步驟中,美團DSP策略端的支援由RecServer和PredictorServer提供,在圖1和圖2分別用紅色的箭頭和AdServer互動。其中RecServer主要負責站外廣告和二跳頁的廣告召回策略,而PredictorServer主要負責站外流量的CTR預估,點選價值預估和二跳頁內的CTR預估。整個策略的閉環如下圖:

美團DSP廣告策略實踐

圖3 策略閉環圖

接下來詳細介紹下美團DSP的召回、CTR預估、點選價值預估相關的策略。

定向召回

從上一小節的介紹可以看到,定向召回服務分別在實時競價過程中提供了站外廣告的召回服務,在競價完成之後提供了二跳頁的廣告召回服務。站外召回和站內二跳頁召回沒有本質的區別,比較常見的做法是二跳頁會根據使用者點選商品的品類進行品類過濾。下面我們具體看一下目前定向召回相關的具體策略。

基於實時行為召回

通過實時日誌流平臺準確的跟蹤使用者的實時點選瀏覽/收藏/購買行為,對於相應的使用者重新投放使用者近一段時間內發生過瀏覽/收藏/購買行為的商品。需要注意的是這個策略需要考慮召回概率按時間進行衰減,使用者的實時行為能夠比較強反映使用者的近期興趣,距離當前時間比較長的使用者行為對於使用者近期興趣的定向偏弱。

基於位置召回

O2O的業務特點與傳統的電商有明顯的區別,傳統電商是線上上達成交易意向,然後通過快遞送貨的方式完成交易。O2O業務絕大部分消費者是線上上買入電子券,然後要到店進行消費,所以使用者的位置資訊在廣告召回中起著舉足輕重的作用。我們在基於位置的廣告召回中嘗試了以下三種策略:

1. 實時地理位置召回

根據使用者所在的實時地理位置召回距離比較近的廣告。

對於移動端的廣告流量,可以比較準確的獲得使用者的實時地理位置,從而進行比較精準的投放;
對於PC端的流量,地理位置是通過使用者訪問的IP地址進行推算的,所以地理位置是有偏移的,但是考慮到PC端瀏覽廣告的流量使用者位置一般都比較固定,比如使用者一般是在上班或者在家休息,我們仍然使用了這個策略。
2. 實時商圈熱單召回

根據使用者所在的實時地理位置推斷出使用者目前所在商圈,給使用者投放當前商圈的熱門消費單。商圈的範圍一般在幾公里範圍之內,對於使用者到店消費是一個合理的距離範圍,所以我們離線挖掘出每一個商圈的熱門消費單,作為使用者召回的候選。

可以看到策略1和策略2是不需要userid的,所以這兩個策略也是我們在識別不到userid的時候一個比較好的冷啟動召回策略。

3. 偏好商圈熱單召回

通過離線分析使用者歷史的瀏覽/點選/購買行為,分析出使用者的歷史商圈偏好,召回使用者偏好的商圈消費熱單作為廣告候選集。這個策略需要使用者的userid,僅對於能夠識別並能對映到userid的使用者適用。

基於協同過濾召回

基於協同過濾的召回策略我們融合了user-based和item-based兩種。

基於item-based的協同過濾,我們首先通過使用者的購買行為計算item之間的相似度,比如通過計算髮現item A和item B之間的相似度比較高,我們把item A作為候選推薦給購買item B的使用者,作為item B的使用者的召回候選集之一;同樣也把item B作為候選推薦給購買item A的使用者,作為購買item A的使用者的召回候選集之一。因為item-based協同過濾的特徵,這一部分召回基本能夠把熱門爆款單都拉到候選集中。

基於user-based的協同過濾,我們同樣需要先計算使用者之間的相似度。計算使用者相似度時,除了考慮使用者購買的商品,還可以把使用者所消費過的商家及商家所在的商圈作為相似度權重考慮進來。這麼做是因為,很多商品是在全國多個城市都可以購買的,如果只採用使用者購買的商品來計算相似度,可能把兩個不同城市使用者的相似度計算的比較高,加入商家和商圈的權重,可以大大降低這種情況的可能性。

基於矩陣分解的場景化召回

對於O2O消費的某些場景,比如美食和外賣,使用者是否發生購買與使用者目前所處的場景有很大關係,這裡的場景包含時間、地點、季節、天氣等。舉個例子來說,工作日的中午,如果還在下雨,這個時候外賣的購買概率一般是比其他商品高的。

基於此,我們開發了基於矩陣分解的場景化召回策略。我們採用了FM模型來進行建模,建模的特徵包括季節、時間(工作日/週末,一天之內的時段)、地點、天氣等。這個策略的目的是希望召回使用者實時的基於場景化的需求。

CTR預估

上文提到在實時競價階段,AdServer會跟PredictorServer請求每個廣告的站外點選率和點選價值,最後AdServer根據獲取的點選價值v和ctr,根據v∗ctr^t

進行站外廣告排序,挑選top的廣告。最終的報價公式如下:

a∗∑i=1kvi∗ctrti+b

k是本次競價要展示的廣告數,t,a,b都是根據實際流量情況進行調整。其中t為擠壓因子,為了控制ctr在排序和報價中起作用的比重,t越大,ctr在排序和報價中的比重越高;a,b需要根據DSP需要獲取的流量和需要達到的ROI之間的權衡進行調整,a,b越大,出價越高,獲取的流量越多,成本越高,ROI就減少。

公式1中CTR直接作為一個引子進行出價計算,所以這裡的CTR必須是一個真實的點選率。因為在站外廣告點選日誌中,正樣本是非常稀疏的,為了保證模型的準確度,我們一般都會採用負樣本抽樣。這樣模型估計出來的CTR相對大小是沒有問題的,可以作為排序依據,但是用來計算出價的時候,必須把負樣本取樣過程還原回去,我們在下面的小節中詳細解釋。

站外CTR預估

該模型目標是,對於RecServer召回的廣告,預測出廣告的相對點選率和真實點選率,相對點選率用於排序, 真實點選率用於流量報價。對於每個流量,AdExchange會下發給多個DSP,報價最高的DSP會勝出,獲取在這個流量上展示廣告的機會。為了能夠引入更多的優質流量,減少流量成本,提高ROI、CTR預估模型需要充分考慮站點、廣告、使用者等維度的資訊。

廣告的點選與轉化主要與使用者、廣告、媒體(user,ad,publisher)這三個因素相關。我們的特徵也主要從這三個方向去構建,並衍生出一些特徵[5]。

特徵選擇

1. 使用者特徵

使用者瀏覽,購買的品類,使用者畫像,瀏覽器,作業系統等特徵。

2. 廣告特徵

廣告deal的屬性特徵,如商家、品類、價格、創意型別等特徵。

廣告deal的統計特徵,如歷史CTR、CVR、PV、UV、訂單量、評分等。

3. 媒體特徵

網站類別,網站域名,廣告位,尺寸等特徵。

4. 匹配特徵(主要是使用者與廣告維度的匹配)

使用者瀏覽、購買的品類與廣告品類的match, 商家的match。

使用者瀏覽廣告的不同時間粒度的頻次特徵,比如使用者瀏覽當前廣告的次數、使用者上次點選廣告距離當前的時間差。

5. 組合特徵

在LR+人工特徵的實現過程中,需要人工構造一些組合特徵,比如,網站+廣告、使用者消費水平+價格、廣告主+廣告品類等,對於FM和FFM能都自動進行特徵的組合。

6. 環境特徵

廣告的效果往往與使用者所處的外部環境相關。比如 時段、工作日/節假日、移動端的經緯度等。

特徵處理

最後再看我們具體如何構建模型。

1. 模型選擇

由於站外的站點數量巨大、廣告位較多、廣告的品類較多,造成訓練樣本的特徵數較大,需要選擇合適的模型來處理,這裡我們選用了LR+人工特徵的方式,確保訓練的效能。

2. 特徵降維

點選率模型需要考慮使用者維度的資料,由於美團的使用者量巨大,如果直接用使用者id作為特徵會造成特徵數急劇增大,而且one-hot encoding後的樣本會非常稀疏,從而影響模型的效能和效果。所以我們這裡採用了使用者的行為和畫像資料來表徵一個使用者,從而降低使用者維度的大小。

3. 負樣本選擇

對於站外廣告,有很多廣告位比較靠近頁面的下方,沒有被使用者看到,這樣的廣告作為負樣本是不合理的。我們在負樣本選擇的時候需要考慮廣告的位置資訊,由於我們作為DSP無法獲取廣告是否真實被使用者看到的資訊。這裡通過適當減少點選率較低的展位負樣本數量,來減輕不合理的負樣本的情況。

對於二跳頁廣告,只取點選的位置之前的負樣本,而未點選的則只取top20的廣告作為負樣本。

4. 負樣本取樣

由於廣告點選的正負樣本分佈極其不均,站外廣告的點選率普遍較低,絕大多數樣本是負樣本,為了保證模型對正樣本的召回,需要對負樣本按照一定比例抽樣。

5. 真實CTR校準

由於負樣本抽樣後,會造成點選率偏高的假象,需要將預測值還原成真實的值。調整的公式如下:

q=p(p+1−pw)

  • q: 調整後的實際點選率。
  • p: 負樣本抽樣下預估的點選率。
  • w: 負樣本抽樣的比例。
二跳頁CTR預估

當使用者點選了廣告後,會跳轉到廣告中間頁,因為站外流量轉化非常不容易,所以對於吸引進來的流量,我們希望通過比較精細化的排序給使用者投放盡可能感興趣的廣告。

由於進入二跳頁的流量大概比站外流量少兩個數量級,我們可以使用比較複雜的模型,同時因為使用比較多的使用者/廣告特徵,所以這裡我們選擇了效果比較好的FFM[6]模型(詳情可以參考之前的部落格文章《深入FFM原理與實踐》)。

特徵和樣本處理方面的流程基本類似CTR預估模組中的樣本處理流程。差別在於廣告在展示列表中的位置,對廣告的點選概率和下單概率是有非常大影響的,排名越靠前的廣告,越容易被點選和下單,這就是position bias的含義。在抽取特徵和訓練模型的時候,就需要很好去除這種position bias。

我們在兩個地方做這種處理:

  • 在計算廣告的歷史CTR和歷史CVR的時候,首先要計算出每個位置的歷史平均點選率ctr_p,和歷史平均下單率cvr_p,然後再計算i廣告的每次點選和下單的時候,都根據這個item被展示的位置,計算為ctr_0/ctr_p及cvr_0/ctr_p。
  • 在產生訓練樣本的時候,把展示位置作為特徵放在樣本里面,並且在使用模型的時候,把展示位置特徵統一置為0。

點選價值預估

上文提到廣告是根據v∗ctr^t進行排序,並通過公式1進行報價。這裡面的v就是點選價值(點選價值是指使用者發生一次點選之後會帶來的轉化價值)。

廣告業務的根本在於提高展示廣告的eCPM[7],eCPM的公式可以寫為v∗ctr∗1000,準確的預估點選價值是為了準確預估當前流量對於每一個廣告的eCPM。劉鵬在《計算廣告》[8]中提到,只要準確的估計出點選價值,通過點選價值計算和CTR計算得到的eCPM進行報價,就始終會有利潤,這是因為AdExchange是按照廣義第二齣價進行收費的。

在實際投放過程中,出價公式可以隨著業務目標的不同進行適當的調整,比如我們的出價公式中包含了擠壓因子t,和a ,b兩個引數。出價越高帶回來的流量越大,可能帶來質量參差不齊的流量,一般在一段時間之內會引起CTR的降低,這樣會帶來CPC點選成本的提高,所以ROI會降低。反之出價比較低的情況下,帶來的流量越少,經過比較細緻的流量過濾,CTR能長期保持在一個較高的水平,點選成本CPC比較低,ROI就會比較高。

美團DSP在點選價值預估上經歷了兩個階段:

  • 第一階段是站外廣告的落地頁是廣告的詳情頁面時,廣告的點選價值預估比較簡單,只需要預估出站外流量到達廣告詳情頁之後的CVR即可。正負樣本的選擇也比較簡單,採集轉化樣本為正樣本,採集瀏覽未轉化樣本作為負樣本。我們也進行了適當的負樣本取樣和真實CVR校準,這裡採用的方法跟上一節類似,不再贅述。模型方面,在控制特徵複雜度的基礎上,我們選擇了效果不錯的二次模型FFM,複雜度和效能都能夠滿足線上的效能。特徵方面,我們使用了站外實時特徵+部分離線挖掘特徵,由於FFM預測複雜度是(k*n*n),k是隱向量長度,n是特徵的個數,特徵的選擇上需要挑選貢獻度比較大的特徵。
  • 第一階段投放之後,經過統計,詳情頁的使用者流失率非常高,為了降低流失率,我們開發了廣告二跳頁,在二跳頁裡面,使用者在站外點選的廣告排在第一位,剩下的是根據我們的召回策略和排序策略決定的。根據公式1,點選價值是由二跳頁的k個廣告共同決定的。但是在站外廣告排序和報價的過程中,我們無法獲取中間頁的召回結果,所以在實際情況中是無法適用的。目前我們的策略是直接對當前使用者和當前商品的特徵建立一個迴歸模型,使用使用者在二跳頁上成交的金額作為label進行訓練,模型分別嘗試了GBDT和FM,最終採用了效果稍好些的GBDT模型。

效果評估和監控


離線評估

業內常用的量化指標是AUC,就是ROC曲線下的面積。AUC數值越大,模型的分別能力越強。

Facebook提出了NE(Normalized Entropy)[9]來衡量模型,NE越小,模型越好。

NE=−1N∑ni=1(1+yi2log(pi)+1−yi2log(1−pi))−(p∗log(p)+(1−p)∗log(1−p))
  • N:訓練的樣本的數量。
  • yi:第i個樣本的lable,點選為+1, 未點選為-1。
  • pi:第i個樣本預估的點選率。
  • P:所有樣本的實際點選率。
離線我們主要使用的是AUC和NE的評估方法。

線上AB測試

通過線上ABtest,確保每次上線的效果都是正向的,多次迭代後,站外CTR提升30%,廣告二跳頁CTR提升13%,二跳頁CVR提升10%。

線上監控

1. 線上AUC監控

線上預估的CTR和CVR,建立小時級流程,計算每個小時的線上AUC。發現AUC異常的情況,會報警,確保模型線上應用是正常的。

2. 線上預估均值監控

線上預估的值會計算出平均值,確保均值在合理的範圍之內。均值過高會導致報價偏高,獲取流量的成本增加。均值過低,造成報價偏低,獲取的流量就偏少,對於估值異常的情況能及時響應。

結束語


本文介紹了美團DSP在站外投放過程中的策略實踐。很多細節都是在業務摸索過程中摸索出來的。後續有些工作還可以更細緻深入下去:

1. 流量篩選

流量篩選目前還是比較粗暴的根據網站歷史的CTR等直接進行過濾,後續會基於使用者的站內外的行為,對流量進行精細化的篩選,提升有效流量,提高轉換。

2. 動態調整報價

在DSP的報價環節,點選率預估模型會對每一個流量預估出一個CTR,為了適應adx市場的需要,會加上指數和係數項進行調整。但是通過這種報價方式獲取的流量,由於外部競爭環境的變化,流量天然在不同時段的差異,經常會出現CPC不穩定。該報價的係數對於所有的媒體都是一致的,而一般的優質媒體都是有底價的,且不同媒體的底價不一致,造成該報價方式無法適用所有的媒體,出現部分優質媒體無法獲取足夠的流量。
我們的目標是在CPC一定的情況下,在優質媒體、優質時段儘可能多的獲取流量,這裡我們需要根據實時的反饋和期望穩定的CPC來動態調整線上的報價[10]。從而在競價環境、時段、媒體變化時,CPC保持穩定,進一步保證我們的收益最大化(同樣的營銷費用,獲取的流量最多)。
3. 位置召回

基於位置的召回策略中,我們對使用者的商圈屬性沒有作區分,比較粗粒度的統一召回,這樣其實容易把使用者當前時間/位置真正有興趣的商品拍的比較靠後;比較好的辦法是通過精準的使用者畫像和使用者消費時間/位置上下文挖掘,根據使用者競價時的位置和時間,分析出使用者轉化率高的商圈,從而進行更加精準的投放。

在業務上,美團DSP會逐步接入市場上主流的AdExchange和自有媒體的流量。技術上,會持續探索機器學習、深度學習在DSP業務上的應用,從而提升美團DSP的效果。

作者簡介

鴻傑,美團平臺與酒旅事業群使用者增長策略負責人,曾就職於阿里,2015年加入美團點評。主要致力於通過機器學習提升美團點評平臺的活躍使用者數,作為技術負責人,主導了站外渠道投放、站內新客運營等專案的演算法工作,提升營銷效率,有效降低營銷成本。

李樂,美團點評美團平臺與酒旅事業群使用者增長組DSP業務基礎召回和裝置下載的負責人,2014年7月從浙江大學碩士畢業後加入美團。負責過CPS搜尋廣告、新客運營、DSP基礎召回、DSP裝置下載等業務,致力於推動全網裝置的精準觸達。


相關文章