廣告投放和排序效果如何進行多目標優化?

當前主流的廣告投放和排序技術是 CTR 預估。CTR 預估是一個單目標的優化,目標變數是廣告的點擊率,再使用預估 CTR * CPC 來作為最終的排序依據。但現實的業務場景中,常常會有多目標的優化,例如,在團購等場景下,廣告和非廣告商品混合排序,除了帶來直接收入的廣告要預估其點擊率之外,非廣告的商品也要優化 GMV;或者廣告除了 CTR 需要優化之外,還有保量展示的需求。這種場景下如何對廣告的投放和排序效果進行多目標優化?


謝邀,在阿里做廣告演算法也有六年了,說說我的理解。大家共同探討,希望對題主有用。

在直接回答問題之前,我先講一講,為什麼要有廣告。廣告本質上是給廣告主提供了一次「廣而告之」的機會。在大部分業務場景中,或者說一個生態中,都會有「先到優勢」的存在,也就是越早占坑的玩家就越享受到早期的發展紅利,而後期進來的玩家就不會有那麼容易了。這在微博早期、微信公眾號早期、淘寶商家早期都存在這樣的發展紅利。這就類似於社會階層,大家慢慢的找到了自己的位置,但是這個社會需要給每個人都提供一個上升的渠道。在很多系統裡面就是通過廣告這樣的渠道給玩家提供快速的上升渠道,只不過這個渠道是需要花錢的,天下沒有免費的午餐。

說了為什麼有廣告後,我們再來分解一下題主的問題,商業產品設計出來是為了給商家提供上升渠道,而這個遊戲是一個典型的多人博弈問題,通過對ecpm建模,ecpm=ectr*cpc,cpc是商家控制的,ectr是平台做流量分發可以控制的,所以系統需要對ctr做預估。簡單的一個公式,但是這裡面有很多可以挖的點,比如競價理論,ctr預估利潤,cpc優化理論等。

&> 廣告除了 CTR 需要優化之外,還有保量展示的需求。這種場景下如何對廣告的投放和排序效果進行多目標優化?

這時候,廣告主對廣告可能有保量的需求,這時相當於給「最大化ctr優化問題」添加了「一個限制條件」。這不是一個多目標優化問題,而是一個帶限制條件的單目標優化問題,只是求解比單目標優化問題更難一些了。當流量不夠時,而限制添加的比較奇怪時,我們一定會看到,系統整體的點擊率下降。對於商業產品來說,這時供小於需,就需要要求該玩家必須付出足夠的代價,因為他強行插隊了,佔用了其他人的上升通道,需要設計新的廣告產品讓插隊者付出足夠的錢。

&> 在團購等場景下,廣告和非廣告商品混合排序,除了帶來直接收入的廣告要預估其點擊率之外,非廣告的商品也要優化 GMV;

對於這個問題,廣告是為了最大化廣告收入CPM,非廣告是為了最大化銷量GMV。這兩個目標不在一個尺度上,其實也不是一個多目標優化問題,一個典型的多目標優化問題是,對於商品投放,我既希望提高點擊率同時又兼顧銷量,那麼我應該如何去做。因為對於某一些商品來說,它們可能只是商品,不是廣告;而對於另一些商品而言,他們卻只是廣告,不是商品。

好啦,先扯到這裡,這個問題其實非常的複雜,已經不是一個演算法的優化問題,ECPM和GMV是基於不同的目標建立出來兩個不同參考系。


我竟然可以用謝邀了?那我就開始坑人

題主的問題有一點問題,廣告排序中最終的依據往往不是CTR * CPC,即eCPM,雖然它是最重要的一個排序因素,但還有其它的因素,比如質量得分(google質量得分的介紹:https://support.google.com/adwords/answer/7050591 )。

另一個問題是題主說的是CPC廣告,但還有其它類型的計費廣告,比如CPM,和CPS,CPA廣告,CPM不需要預估點擊率,而CPS,CPA要預估轉化率。這不是問題的核心,就不多說了。

回到多目標優化的問題上來,多目標優化的核心是要讓廣告或是內容可比。那麼只要是可以轉化為收入的目標,我們可以將它放到收入計算中去,比如無論是CPC,CPM,CPA廣告都可以算出eCPM,那它們是可比的。再比如,如果用戶點了廣告不但可以賺廣告的收入,如果發生了購買行為,還可以得到分成收入,那也要將分成收入預估出來,加到pCTR * CPC上去。如果目標轉化不成收入,比如一些體驗上的因素,可以放到質量得分中,質量得分中包括多個因素。每個因素佔多大比重,質量得分與eCPM是什麼關係,這些一般廣告系統中都沒有具體的介紹,而在廣告系統中這些因素的權重調整也可能缺乏嚴密的邏輯論證或是數據分析。

把說的邏輯合起來:

最終排序的是score:score = f(收入, QualityScore),f每家公司都不一樣。

收入可以認為是由廣告點擊預估收入和其它預估收入構成的

QualityScore是質量得分,可以由多種因素組成,比如相關性,響應速度等等。

再說一下保量的需求,我理解應該問的是合約廣告,其實處理比較簡單,當一個請到到達後,先由合約廣告邏輯判斷這次請求出不出合約廣告,如果出,就直接出合約廣告,不出,再按score 對其它廣告打分。合約廣告的邏輯可以看我翻譯的這一篇內容(使用簡潔分配方案的廣告投放 | 火光搖曳)


大神都不上知乎,給了我這種人發言的機會。

在最優化的角度,強答一發。。。。

普通的優化問題,是在指定約束下,求目標函數極值。當有多個目標的時候MSRA邊江有過一個不錯的總結,解決套路就是下面三類:

(1)分別優化

每一個輸出自己的預估值,然後使用的時候組合到一起,多模型bagging是典型代表,好處是方便調參,並且方便做AB測試,同時也給模型ensemble打好基礎,打過kaggle的應該比較熟悉此套路。

(2)順序優化

這種方式當年在廣告預定實操過,

  • 第一輪求得最大預定Q
  • 第二輪將最大預定Q作為約束,求均勻投放

第二輪也可以通過加大正則權重,保證模型微調。

(3)合併優化

就是將多個目標變為一個目標直接優化,直接最後學出來一個模型。在圖像領域檢測和識別就是這麼搞的。

實際中,上面幾種可以方式可能是混合方式呈現。

回到題主的問題

分流量的問題,可以將「非廣告」和「廣告」看做兩個待投放廣告即可;

保量同時優化點擊率問題,可以在online投放的時候,當有多個候選廣告觸發,用貪心策略選ctr最高的就可以。


本來想強答但是想想頭緒太多也不一定每個人都試用我的辦法,還是留個坑有時間來答。


前面趙的答案已經說的很好,簡單來說保量要求不是一個優化目標,而是一個約束條件,是一個有約束條件的優化問題。具體可搜索關鍵詞:拉格朗日法。另外可參考數據& by S.Boyd.


講到實時競價程序化交易廣告的決策過程,圖這三個模塊一定少不了。

step1:受眾定向。受眾定向模塊所完成的,就是給用戶打上各種標籤,製造特徵(特徵選擇及構造,模型的選擇和調參,這其中任何一個單拎出來都是工業界中十分熱門的話題)。系統的原始輸入是媒體網站的日誌數據,具體而言就是網站的訪問日誌以及用戶的行為記錄,日誌模塊為媒體網站提供了大規模的存儲和計算服務,為廣告系統穩定的數據輸入提供了強有力的保障。接下來的任務是根據日誌數據來判斷和訓練你想要的模型,如用戶性別。

step2:廣告檢索。廣告檢索模塊將要完成的,就是根據這些標籤或特徵為用戶召回相關的廣告。有了模型特徵,輸入是特徵,如用戶性別,輸出是候選廣告集合,這些廣告該怎麼找呢?除了資料庫繁瑣的查找,還有更通用的檢索方法,常見於搜索引擎中,這就是倒排索引。這裡面其實有三方關係:用戶標籤、廣告標籤和廣告。通常,用戶標籤和廣告標籤是存在著映射關係的,所以我們可以通過用戶標籤,來找到相應的廣告標籤。如果將廣告看作是doc,將廣告標籤看作token,那麼通過廣告標籤找廣告的過程就是倒排索引。

step3:CTR排序。該模塊的輸入是候選的廣告集合,輸出是一個根據用戶pCTR從高到低排序的一個廣告序列,用於流量在線分配。之所以pCTR(點擊率預估)十分重要,是因為它直接關係到媒體網站的收入,也直接關係到廣告主的推廣效果。廣告位的個數就那麼幾個,顯眼的更少,憑什麼把你放在頭條呢?靠的就是點擊率預估。

用於點擊率預估的數據主要是日誌數據,一般會有點擊行為(點擊為1,沒點為0)、廣告信息(廣告位、廣告主id、廣告標籤和廣告描述等)、用戶信息(用戶id和用戶標籤等)、上下文信息和時間戳等。有了這些原始數據之後,需要對數據進行清洗,然後利用統計或模型的方法構造特徵,進而做特徵選擇和特徵組合,最終特徵的數量級大約在10億-100億維。完成了特徵工作之後,在模型方面,較為經典的點擊率預估模型是線性模型Logistic Regression,由於LR在通過sigmoid之前是一個[0,1]之間的浮點數,利用LR的特點,我們可以將這個浮點數作為用戶點擊該廣告的概率,把廣告按照這個概率從高到低放置在相應廣告位上,就完成了廣告排序。

http://weixin.qq.com/r/80MGHvfECap2rbN99xbh (二維碼自動識別)


推薦閱讀:

最近我在完成一個旅遊個性化推薦系統的設計,裡面用到的關聯規則和一些協同過濾演算法,目前是用weka在做測試,有沒有對此比較熟悉的朋友?
類似微博的 feed 熱度演算法如何計算?
在線的比較成熟的語料庫有哪些?
為什麼只有豆瓣和亞馬遜的推薦演算法可以做的這麼好?
YouTube 的視頻推薦演算法是怎樣的?

TAG:演算法 | 互聯網廣告 | 推薦演算法 | 計算廣告學 | 多目標優化 |