美团DSP广告策略实践
近年來,在線廣告在整個廣告行業的比重越來越高。在線廣告中實時競價的廣告由于其良好的轉化效果,占有的比重逐年升高。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. 競價成功之后用戶點擊進入二跳頁、瀏覽、點擊、最后轉化。
我們分別看一下這兩個步驟中策略的支持。
圖1 競價廣告示意圖
圖1給出了每一次競價廣告的粗略示意圖,競價Gateway在收到競價請求之后,會識別出美團點評用戶的流量,根據網站歷史CTR、網站品類屬性等因素進行簡單的流量過濾,把流量分發到后端的AdServer。AdServer作為后端廣告的總控模塊,首先向RecServer(定向召回服務)獲取站外展示廣告召回結果,然后根據獲取的廣告結果向PredictorServer(CTR/點擊價值預測服務)請求每個廣告的站外點擊率和點擊價值。最后AdServer根據獲取的點擊價值*v*和*ctr*,根據\(v*ctr^t\)進行排序,從而挑選出top的廣告進行展示。
圖2 二跳頁廣告流程圖
圖2給出了競價成功后,用戶從站外展示的廣告點擊后,所經歷的流程示意圖。用戶點擊站外廣告后,到達二跳頁Gateway,二跳頁Gateway向AdServer請求廣告列表。AdServer從RecServer獲取站內二跳頁廣告召回結果,然后根據獲取的廣告結果向PredictorServer請求每個廣告的二跳頁點擊率并進行排序。排序后的結果返回給二跳頁Gateway進行廣告填充。
在上述兩個步驟中,美團DSP策略端的支持由RecServer和PredictorServer提供,在圖1和圖2分別用紅色的箭頭和AdServer交互。其中RecServer主要負責站外廣告和二跳頁的廣告召回策略,而PredictorServer主要負責站外流量的CTR預估,點擊價值預估和二跳頁內的CTR預估。整個策略的閉環如下圖:
圖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模型來進行建模,建模的特征包括季節、時間(工作日/周末,一天之內的時段)、地點、天氣等。這個策略的目的是希望召回用戶實時的基于場景化的需求。
上文提到在實時競價階段,AdServer會跟PredictorServer請求每個廣告的站外點擊率和點擊價值,最后AdServer根據獲取的點擊價值*v*和*ctr*,根據\(v*ctr^t\)進行站外廣告排序,挑選top的廣告。最終的報價公式如下: \[a*\sum_{i=1}^k v_i * ctr{_i^t}+b\tag{1}\]
*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=\frac{p}{\left(p+\frac{1-p}{w} \right)} \tag{2}\]
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=\frac{-\frac{1}{N} \sum_{i=1}^n \left(\frac{1+y_i}{2}\log(p_i)+\frac{1-y_i}{2}\log(1-p_i) \right)}{-(p*\log(p)+(1-p)*\log(1-p) )} \tag{3}\] > 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設備下載等業務,致力于推動全網設備的精準觸達。
** 因團隊業務急劇發展,誠招廣告算法工程師,級別不限,歡迎郵件wuhongjie#meituan.com咨詢。**
總結
以上是生活随笔為你收集整理的美团DSP广告策略实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 直通BAT JVM必考题:Minor G
- 下一篇: 【青柠】一封信