背景
近一年的工作基本是圍繞着廣告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: 給定出價 b x b_x b x 和廣告特徵 x x x 單次請求贏得展示的勝率 P ( w i n ∣ x , b x ) P(win|x,b_x) P ( w i n ∣ x , b x )
q x ( x ) ≡ P ( w i n ∣ x , b x ) ⋅ p x ( x ) q_x(x) \equiv P(win|x,b_x) \cdot p_x(x) q x ( x ) ≡ P ( w i n ∣ x , b x ) ⋅ p x ( x )
其中 q x ( x ) q_x(x) q x ( x ) 表示廣告得到展示的概率,p x ( x ) p_x(x) p x ( x ) 表示發起競價的概率, P ( w i n ∣ x , b x ) P(win|x,b_x) P ( w i n ∣ x , b x ) 表示競價的勝率
假設我們已經知道市場上出價z的分佈 P z ( z ) P_z(z) P z ( z ) ,那麼勝率可以描述爲:
w ( b x ) ≡ ∫ o b x p z ( z ) d z w(b_x) \equiv \int_o^{b_x}p_z(z)dz w ( b x ) ≡ ∫ o b x p z ( z ) d z
幾種常見的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 z ^ = β x , Pre- dicting winning price in real time bidding with censored data 這篇paper用下面的似然函數來建模:
本質上是對於win的事件,讓 β x \beta x β x 儘量去擬合bid,對於lose的事件,讓 β x \beta x β x 儘量出價比bid高點
survival model
survival model是一種基於統計的預估出價(二價)分佈模型,實現步驟如下
將所有出價歷史按照bid從小到大排序成 < b i , w i , z i > i = 1... N <b_i,w_i,z_i>_{i=1...N} < b i , w i , z i > i = 1 . . . N ,其中 b i b_i b i 是第i次的出價,w i w_i w i 表示是否贏得此次出價,z i z_i z i 表示本次勝出的價格
將上述的數據按照bid從小到大轉換成 < b j , d j , n i > j = 1... M <b_j,d_j,n_i>_{j=1...M} < b j , d j , n i > j = 1 . . . M 形式,其中dj表示勝出價爲b j − 1 b_{j}-1 b j − 1 勝出的次數,n j n_j n j 表示出價爲b j b_j b j -1不能勝出的次數,以下面示例圖爲例,當計算b j b_j b j =3的時候,那麼d j d_j d j =1(wining_prirce爲b j b_j b j -1的勝出次數),n j n_j n j 爲4(出價爲b j b_j b j -1時候失敗的次數)。本質上計算的是當bid增加一塊錢(假設單位是元)勝出的概率爲: d j n j \frac{d_j}{n_j} n j d j ,對應的lose概率爲 n j − d j n j \frac{n_j-d_j}{n_j} n j n j − d j
對於出價爲b x b_x b x ,lose的概率爲l ( b x ) = ∏ b j < b x n j − d j n j l(b_x) = \prod_{b_j<b_x}\frac{n_j-d_j}{n_j} l ( b x ) = b j < b x ∏ n j n j − d j ,win的概率爲w ( b x ) = 1 − ∏ b j < b x n j − d j n j w(b_x) =1- \prod_{b_j<b_x}\frac{n_j-d_j}{n_j} w ( b x ) = 1 − b j < b x ∏ n j n j − d j
競價策略優化
競價策略主要針對廣告需求方,根據每次請求的context(廣告素材、用戶行爲等)判斷需不需要出價以及出多少價,主要流程可以用下圖描述:
和搜索廣告不同的是,RTB是針對每次的展示競價,而不是針對搜索關鍵詞出價,因此RTB對廣告主(或者DSP)來說,需要更實時且精準的預估.
RTB競價策略通常包括兩個部分:Utility Estimation和Cost Estimation。Utility Estimation一般指贏得這次展示的期望收益,比如點擊率/轉換率等;Cost Estimation則指的是贏得此次競價需要的成本,可以用下圖描述:
單廣告計劃bid optimisation
繼續瞭解幾個概念
給定市場出價概率密度分佈Pz(z)和出價b,對應的勝率爲 w ( b ) = ∫ 0 b p z ( z ) d z w(b)=\int_0^bp_z(z)dz w ( b ) = ∫ 0 b p z ( z ) d z
廣告的預期回報爲 u ( r ) u(r) u ( r ) ,u ( r ) u(r) u ( r ) 依賴具體的廣告策略,如果廣告希望回報是點擊數,那麼 u c l k ( r ) = r u_{clk}(r)=r u c l k ( r ) = r ;如果廣告希望回報是利潤,每次點擊的收益是v v v ,那麼 u p r o f i t ( r , z ) = v r − z u_{profit}(r,z)=vr-z u p r o f i t ( r , z ) = v r − z
cost(如果勝出了,需要花費的成本):
對於一價廣告, c ( b ) = b c(b)=b c ( b ) = b
對於二價廣告, c ( b ) = ∫ 0 b z p z ( z ) d z ∫ 0 b p z ( z ) c(b)=\frac{\int_0^bzp_z(z)dz}{\int_0^bp_z(z)} c ( b ) = ∫ 0 b p z ( z ) ∫ 0 b z p z ( z ) d z
T T T : 廣告計劃的規則和生命週期決定的拍賣量
B B B :廣告計劃的預算budget
Truth-telling bidding
true-telling bidding是隻考慮競價回報,而不考慮預算的場景,期望收益爲
U p r o f i t ( b ( . ) ) = T ∫ r ∫ z = 0 b ( r ) u p r o f i t ( r , z ) p z ( z ) d z p r ( r ) d r = T ∫ r ∫ z = 0 b ( r ) ( v r − z ) p z ( z ) d z p r ( r ) d r ( 1 ) U_{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) U p r o f i t ( b ( . ) ) = T ∫ r ∫ z = 0 b ( r ) u p r o f i t ( r , z ) p z ( z ) d z p r ( r ) d r = T ∫ r ∫ z = 0 b ( r ) ( v r − z ) p z ( z ) d z p r ( r ) d r ( 1 )
這個相當於是Lagrange無約束優化問題,直接對出價b ( . ) b(.) b ( . ) 求導
(1)式對 b(.) 求導得到:( v r − b ( r ) ) ∗ p z ( b ( r ) ) ∗ p r ( r ) = 0 (vr-b(r))*p_z(b(r))*p_r(r)=0 ( v r − b ( r ) ) ∗ p z ( b ( r ) ) ∗ p r ( r ) = 0 由此得到出價 b r = v r b_r = vr b r = v r
Truth-telling bidding僅適用於不限budget以及不限拍賣量的情況
Linear Bidding
線性出價則簡單的多,基本公式是
b l i n = ϕ v r b_{lin} = \phi vr b l i n = ϕ v r
其中參數 ϕ \phi ϕ 是根據訓練數據訓練出來的值
預算約束下的bidding
在拍賣量T和預算B受約束的情況下,優化目標變成:
m a x b ( ) T ∫ r u ( r ) w ( b ( r ) ) p r ( r ) d r max_{b()} T\int_ru(r)w(b(r))p_r(r)dr m a x b ( ) T ∫ r u ( r ) w ( b ( r ) ) p r ( r ) d r
s t : T ∫ r c ( b ( r ) ) w ( b ( r ) ) p r ( r ) d r = B ( 2 ) st: T\int_rc(b(r))w(b(r))p_r(r)dr=B (2) s t : T ∫ r c ( b ( r ) ) w ( b ( r ) ) p r ( r ) d r = B ( 2 )
顯然,這是一個等式約束條件下lagrange優化問題,自然的,引入lagrange算子 λ \lambda λ
l ( b ( r ) , λ ) = T ∫ r u ( r ) w ( b ( r ) ) p r ( r ) d r − λ ( T ∫ r c ( b ( r ) ) w ( b ( r ) ) p r ( r ) d r − B ) l ( b ( r ) , λ ) = T ( ∫ r u ( r ) w ( b ( r ) ) p r ( r ) d r − λ ( ∫ r c ( b ( r ) ) w ( b ( r ) ) p r ( r ) d r ) + B T λ )
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) l ( b ( r ) , λ ) = T ∫ r u ( r ) w ( b ( r ) ) p r ( r ) d r − λ ( T ∫ r c ( b ( r ) ) w ( b ( r ) ) p r ( r ) d r − B ) l ( b ( r ) , λ ) = T ( ∫ r u ( r ) w ( b ( r ) ) p r ( r ) d r − λ ( ∫ r c ( b ( r ) ) w ( b ( r ) ) p r ( r ) d r ) + T B λ )
等價於優化
∫ r u ( r ) w ( b ( r ) ) p r ( r ) d r − λ ( ∫ r c ( b ( r ) ) w ( b ( r ) ) p r ( r ) d r ) + B T λ ( 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) ∫ r u ( r ) w ( b ( r ) ) p r ( r ) d r − λ ( ∫ r c ( b ( r ) ) w ( b ( r ) ) p r ( r ) d r ) + T B λ ( 3 )
求解過程:
令b ( r ) 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) λ w ( b ( r ) ) ∂ b ( r ) ∂ c ( b ( r ) = ( u ( r ) − λ c ( b ( r ) ) ) ∂ b ( r ) ∂ ( w ( b ( r ) ) ) ( 4 )
令對 λ \lambda λ 求導值爲0可得:
T ∫ r c ( b ( r ) ) w ( b ( r ) ) p r ( r ) d r = B ( 5 ) T\int_rc(b(r))w(b(r))p_r(r)dr=B(5) T ∫ r c ( b ( r ) ) w ( b ( r ) ) p r ( r ) d r = B ( 5 )
對於一價場景
c ( b ( r ) ) = b ( r ) c(b(r))=b(r) c ( b ( r ) ) = b ( r )
假設初始z z z 服從 p z ( z ) = l ( l + z ) 2 p_z(z)=\frac{l}{(l+z)^2} p z ( z ) = ( l + z ) 2 l 這一分佈, l ( l + z ) 2 \frac{l}{(l+z)^2} ( l + z ) 2 l 對應的原函數爲− l l + z -\frac{l}{l+z} − l + z l
同時假設 p z ( z ) p_z(z) p z ( z ) 服從均勻分佈
w ( b ( r ) ) = ∫ 0 b r p z ( z ) d z = b ( r ) l + b ( r ) w(b(r))=\int_0^{b_r}p_z(z)dz=\frac{b(r)}{l+b(r)} w ( b ( r ) ) = ∫ 0 b r p z ( z ) d z = l + b ( r ) b ( r )
帶入4式和5式:
λ b ( r ) l + b ( r ) = ( u ( r ) − λ b ( r ) ) l ( l + b ( r ) ) 2 T ∫ 0 1 b ( r ) b ( r ) b ( r ) + l ) d r = 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 λ l + b ( r ) b ( r ) = ( u ( r ) − λ b ( r ) ) ( l + b ( r ) ) 2 l T ∫ 0 1 b ( r ) b ( r ) + l b ( r ) ) d r = B
由此求得:
b o r t h b = u ( r ) l λ + l 2 − l b_{orthb}=\sqrt{\frac{u(r)l}{\lambda}+l^2}-l b o r t h b = λ u ( r ) l + l 2 − l
同理,如果 p z z p_zz p z z 服從 1 l \frac{1}{l} l 1 的分佈,可最終得到 b ( r ) = r 3 B l T b(r) = r\sqrt{\frac{3Bl}{T}} b ( r ) = r T 3 B l
對於二價場景
c ( b ( r ) ) = ∫ 0 b ( r ) z p z ( z ) d z ∫ 0 b p z ( z ) c(b(r))=\frac{\int_0^{b(r)}zp_z(z)dz}{\int_0^bp_z(z)} c ( b ( r ) ) = ∫ 0 b p z ( z ) ∫ 0 b ( r ) z p z ( z ) d z
和上面相似的求解方法可以得到:
b o r t b − l i n ( r ) = u ( r ) λ b_{ortb-lin}(r)=\frac{u(r)}{\lambda} b o r t b − l i n ( r ) = λ u ( r )
如果 p z z p_zz p z z 服從 1 l \frac{1}{l} l 1 的分佈,同時假設 p z ( z ) p_z(z) p z ( z ) 服從均勻分佈
類似的可以求解:
b ( r ) = 2 r 3 B l 2 T b(r) = 2r^3\sqrt{\frac{Bl^2}{T}} b ( r ) = 2 r 3 T B l 2
多廣告計劃bid optimisation (待續)