RTB競價策略學習

背景

近一年的工作基本是圍繞着廣告ctr/cvr模型優化展開的,但是對競價廣告整體框架還是缺乏瞭解,最近準備學習一下RTB相關的內容,筆記主要圍繞着Display Advertising with Real-Time Bidding (RTB) and Behavioural Targeting 這篇文章學習

Bid Landscape Forecasting

在RTB中,作爲廣告主(或者DSP方)而言,關鍵問題其實是2個,一個是是否應該出價,第二個是應該出多少價,對於第一個問題,一般可以根據廣告素材的預估ctr/cvr等判斷預期收益決定,對於第二個問題則比較複雜一點;因爲在RTB中,只有競價成功了才能知道真實的計費是多少(對於一價而言就是bid,對於二價而言則需要看其他的報價),由於在每次報價之前不知道其他的報價,因此需要根據歷史的一些統計經驗值或者模型來預估本次出價,這個就是bid landscape forcasting.

瞭解幾個基本的概念:

winning probability: 給定出價 bxb_x 和廣告特徵 xx 單次請求贏得展示的勝率 P(winx,bx)P(win|x,b_x)
qx(x)P(winx,bx)px(x)q_x(x) \equiv P(win|x,b_x) \cdot p_x(x)
其中 qx(x)q_x(x) 表示廣告得到展示的概率,px(x)p_x(x) 表示發起競價的概率, P(winx,bx)P(win|x,b_x) 表示競價的勝率

假設我們已經知道市場上出價z的分佈 Pz(z)P_z(z) ,那麼勝率可以描述爲:
w(bx)obxpz(z)dzw(b_x) \equiv \int_o^{b_x}p_z(z)dz

幾種常見的bid landscape forecasting
Tree-based log-normal model

這種方法來自Yahoo的一篇文章Bid Landscape Forecasting in Online Ad Exchange Marketplace,方法是對於adset級別的廣告素材,先將歷史統計的競價信息按照特徵樹的方式先做一個樹路徑劃分,每個樹的路徑的葉子節點值是match這個特徵路徑的bid,文章對這種樹結構做了一個優化:對於不存在的節點將以*補充,如下圖所示:
在這裏插入圖片描述
特徵樹劃分好之後,使用GBDT去擬合曆史報價,從而學習到每條路徑的預估bid值,當一個新的request來的時候,則可以根據match到路徑的預估值和歷史報價進行本次報價預估均值和標準差。在獲取到每個adset級別的均值 E[s] 和標準差 std[s] 之後,文章假設每個adset的bid分佈是對數正態分佈:在這裏插入圖片描述
可以求解到在這裏插入圖片描述
對於campaign級別的競價,paper假設一個campaign的bid是這個campaign下面每個adset的混合分佈:在這裏插入圖片描述其中在這裏插入圖片描述

censored linear regression

線性擬合方法就比較簡單,對於廣告素材 x ,使用一個參數 \beta 來擬合出價bid:z^=βx\hat{z} = \beta x , Pre- dicting winning price in real time bidding with censored data 這篇paper用下面的似然函數來建模:

本質上是對於win的事件,讓 βx\beta x 儘量去擬合bid,對於lose的事件,讓 βx\beta x 儘量出價比bid高點

survival model

survival model是一種基於統計的預估出價(二價)分佈模型,實現步驟如下
將所有出價歷史按照bid從小到大排序成 <bi,wi,zi>i=1...N<b_i,w_i,z_i>_{i=1...N} ,其中 bib_i 是第i次的出價,wiw_i表示是否贏得此次出價,ziz_i表示本次勝出的價格
將上述的數據按照bid從小到大轉換成 <bj,dj,ni>j=1...M<b_j,d_j,n_i>_{j=1...M} 形式,其中dj表示勝出價爲bj1b_{j}-1勝出的次數,njn_j表示出價爲bjb_j-1不能勝出的次數,以下面示例圖爲例,當計算bjb_j=3的時候,那麼djd_j=1(wining_prirce爲bjb_j-1的勝出次數),njn_j爲4(出價爲bjb_j-1時候失敗的次數)。本質上計算的是當bid增加一塊錢(假設單位是元)勝出的概率爲: djnj\frac{d_j}{n_j} ,對應的lose概率爲 njdjnj\frac{n_j-d_j}{n_j}
對於出價爲bxb_x,lose的概率爲l(bx)=bj<bxnjdjnjl(b_x) = \prod_{b_j<b_x}\frac{n_j-d_j}{n_j},win的概率爲w(bx)=1bj<bxnjdjnjw(b_x) =1- \prod_{b_j<b_x}\frac{n_j-d_j}{n_j}
survival model示例

競價策略優化

競價策略主要針對廣告需求方,根據每次請求的context(廣告素材、用戶行爲等)判斷需不需要出價以及出多少價,主要流程可以用下圖描述:

和搜索廣告不同的是,RTB是針對每次的展示競價,而不是針對搜索關鍵詞出價,因此RTB對廣告主(或者DSP)來說,需要更實時且精準的預估.
RTB競價策略通常包括兩個部分:Utility Estimation和Cost Estimation。Utility Estimation一般指贏得這次展示的期望收益,比如點擊率/轉換率等;Cost Estimation則指的是贏得此次競價需要的成本,可以用下圖描述:
在這裏插入圖片描述

單廣告計劃bid optimisation
繼續瞭解幾個概念
  1. 給定市場出價概率密度分佈Pz(z)和出價b,對應的勝率爲 w(b)=0bpz(z)dzw(b)=\int_0^bp_z(z)dz
  2. 廣告的預期回報爲 u(r)u(r) ,u(r)u(r)依賴具體的廣告策略,如果廣告希望回報是點擊數,那麼 uclk(r)=ru_{clk}(r)=r ;如果廣告希望回報是利潤,每次點擊的收益是vv,那麼 uprofit(r,z)=vrzu_{profit}(r,z)=vr-z
  3. cost(如果勝出了,需要花費的成本):
    對於一價廣告, c(b)=bc(b)=b
    對於二價廣告, c(b)=0bzpz(z)dz0bpz(z)c(b)=\frac{\int_0^bzp_z(z)dz}{\int_0^bp_z(z)}
  4. TT: 廣告計劃的規則和生命週期決定的拍賣量
  5. BB:廣告計劃的預算budget
Truth-telling bidding

true-telling bidding是隻考慮競價回報,而不考慮預算的場景,期望收益爲
Uprofit(b(.))=Trz=0b(r)uprofit(r,z)pz(z)dzpr(r)dr=Trz=0b(r)(vrz)pz(z)dzpr(r)dr1U_{profit}(b(.)) = T\int_r\int_{z=0}^{b(r)}u_{profit}(r,z)p_z(z)dzp_r(r)dr = T\int_r\int_{z=0}^{b(r)}(vr-z)p_z(z)dzp_r(r)dr (1)
這個相當於是Lagrange無約束優化問題,直接對出價b(.)b(.)求導
(1)式對 b(.) 求導得到:(vrb(r))pz(b(r))pr(r)=0 (vr-b(r))*p_z(b(r))*p_r(r)=0 由此得到出價 br=vrb_r = vr
Truth-telling bidding僅適用於不限budget以及不限拍賣量的情況

Linear Bidding

線性出價則簡單的多,基本公式是
blin=ϕvrb_{lin} = \phi vr
其中參數 ϕ\phi 是根據訓練數據訓練出來的值

預算約束下的bidding

在拍賣量T和預算B受約束的情況下,優化目標變成:
maxb()Tru(r)w(b(r))pr(r)dr max_{b()} T\int_ru(r)w(b(r))p_r(r)dr
st:Trc(b(r))w(b(r))pr(r)dr=B2st: T\int_rc(b(r))w(b(r))p_r(r)dr=B (2)
顯然,這是一個等式約束條件下lagrange優化問題,自然的,引入lagrange算子 λ\lambda
l(b(r),λ)=Tru(r)w(b(r))pr(r)drλ(Trc(b(r))w(b(r))pr(r)drB)l(b(r),λ)=T(ru(r)w(b(r))pr(r)drλ(rc(b(r))w(b(r))pr(r)dr)+BTλ) l(b(r),\lambda) = T\int_ru(r)w(b(r))p_r(r)dr - \lambda (T\int_rc(b(r))w(b(r))p_r(r)dr-B) l(b(r),\lambda) = T(\int_ru(r)w(b(r))p_r(r)dr - \lambda (\int_rc(b(r))w(b(r))p_r(r)dr)+\frac{B}{T}\lambda)
等價於優化
ru(r)w(b(r))pr(r)drλ(rc(b(r))w(b(r))pr(r)dr)+BTλ3 \int_ru(r)w(b(r))p_r(r)dr - \lambda (\int_rc(b(r))w(b(r))p_r(r)dr)+\frac{B}{T}\lambda (3)
求解過程:
b(r)b(r)求導值爲0可得:
λw(b(r))c(b(r)b(r)=(u(r)λc(b(r)))(w(b(r)))b(r)4 \lambda w(b(r))\frac{\partial c(b(r)}{\partial b(r)} = (u(r)-\lambda c(b(r)))\frac{\partial(w(b(r)))}{\partial b(r)} (4)
令對 λ\lambda 求導值爲0可得:
Trc(b(r))w(b(r))pr(r)dr=B5T\int_rc(b(r))w(b(r))p_r(r)dr=B(5)

  1. 對於一價場景
    c(b(r))=b(r)c(b(r))=b(r)
    假設初始zz服從 pz(z)=l(l+z)2p_z(z)=\frac{l}{(l+z)^2}這一分佈, l(l+z)2\frac{l}{(l+z)^2}對應的原函數爲ll+z-\frac{l}{l+z}
    同時假設 pz(z)p_z(z) 服從均勻分佈
    w(b(r))=0brpz(z)dz=b(r)l+b(r)w(b(r))=\int_0^{b_r}p_z(z)dz=\frac{b(r)}{l+b(r)}

    帶入4式和5式:
    λb(r)l+b(r)=(u(r)λb(r))l(l+b(r))2T01b(r)b(r)b(r)+l)dr=B \lambda \frac{b(r)}{l+b(r)} = (u(r)-\lambda b(r))\frac{l}{(l+b(r))^2} T\int_0^1b(r)\frac{b(r)}{b(r)+l})dr=B
    由此求得:
    borthb=u(r)lλ+l2lb_{orthb}=\sqrt{\frac{u(r)l}{\lambda}+l^2}-l
    同理,如果 pzzp_zz 服從 1l\frac{1}{l} 的分佈,可最終得到 b(r)=r3BlTb(r) = r\sqrt{\frac{3Bl}{T}}

  2. 對於二價場景
    c(b(r))=0b(r)zpz(z)dz0bpz(z)c(b(r))=\frac{\int_0^{b(r)}zp_z(z)dz}{\int_0^bp_z(z)}
    和上面相似的求解方法可以得到:
    bortblin(r)=u(r)λ b_{ortb-lin}(r)=\frac{u(r)}{\lambda}
    如果 pzzp_zz 服從 1l\frac{1}{l} 的分佈,同時假設 pz(z)p_z(z) 服從均勻分佈
    類似的可以求解:
    b(r)=2r3Bl2T b(r) = 2r^3\sqrt{\frac{Bl^2}{T}}

多廣告計劃bid optimisation (待續)
發佈了108 篇原創文章 · 獲贊 166 · 訪問量 43萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章