為什麼LR可以用來做CTR預估?

如題~兩個問題,可以解釋的白話點么?

1、為什麼LR可以用來做點擊率預估?

2、滿足什麼樣條件的數據用LR最好?換句話說,為了LR工作的更好,要對數據做一些什麼處理?


問題一:把被點擊的樣本當成正例,把未點擊的樣本當成負例,那麼樣本的ctr實際上就是樣本為正例的概率,LR可以輸出樣本為正例的概率,所以可以用來解決這類問題,另外LR相比於其他模型有求解簡單、可解釋強的優點,這也是工業界所看重的。

問題二:這裡給個充分不必要的條件:

將特徵向量m x劃分成m x_1,m x_2,...,m x_m後,滿足

1.m x_i在類確定的條件下都是獨立的,即P(m x|C_k)=Pi_{i=1}^m P(m x_i|C_k);

2.m x_i由某個離散特徵oneHotEncode所得 或 m x_i由某些連續特徵組成,在C_k的條件下服從正態分布N(m mu_k, m Sigma),注意m SigmaC_k無關.

這個條件簡單優美,但過於苛刻,附錄2講下如何處理不太符合這個條件的數據。

---------------------------------白話結束,下面講點比較數學的東西---------------------------------

附錄1:證明問題二給出的條件

先講講LR為什麼可以輸出樣本為正例的概率,記C_1為正類,C_2為負類,則C_1
的後驗概率可以寫成

P(C_1|m x)=frac{P(m x|C_1)P(C_1)}{P(m x|C_1)P(C_1)+P(m x|C_2)P(C_2)}
= frac{1}{1+exp(-lnfrac{P(m x|C_1)P(C_1)}{P(m x|C_2)P(C_2)})}

lnfrac{P(m x|C_1)P(C_1)}{P(m x|C_2)P(C_2)}m x的線性函數時,就是我們熟知的LR了.

現在考慮這樣的問題,當m xC_1,C_2條件下服從什麼分布時,有

lnfrac{P(m x|C_1)P(C_1)}{P(m x|C_2)P(C_2)}=m w^{T} m x+m b

1.若m x_i由某個離散特徵oneHotEncode所得,記m x_i=(x_i^{(1)},x_i^{(2)},...,x_i^{(t)}),設p(x_i^{(j)}=1|C_k)=p_{kj},則p(m x_i|C_k)=Pi_{j=1}^{t} p_{kj}^{x_i^{(j)}},這樣

lnfrac{P(m x_i|C_1)P(C_1)}{P(m x_i|C_2)P(C_2)}=lnfrac{P(C_1)Pi p_{1j}^{x_i^{(j)}}}{P(C_2)Pi p_{2j}^{x_i^{(j)}}}=Sigma lnfrac{p_{1j}}{p_{2j}}x_i^{(j)}+constant

m x_i的線性形式.

2.若m x_i由某些連續特徵組成,在C_k的條件下服從正態分布N(m mu_k, m Sigma_k),則

lnfrac{P(m x_i|C_1)P(C_1)}{P(m x_i|C_2)P(C_2)}=lnfrac{exp{-frac{1}{2}(m x_i-m mu_1 )^Tm Sigma_1^{-1}(m x_i-m mu_1 )}P(C_1) }{exp{-frac{1}{2}(m x_i-m mu_2 )^Tm Sigma_2^{-1}(m x_i-m mu_2 )}P(C_2)}=-frac{1}{2}m x_i^T(mSigma_1^{-1}-mSigma_2^{-1})m x_i+(mSigma_1^{-1}mmu _1-mSigma_2^{-1}mmu_2)m x_i+constant

mSigma_1=mSigma_2=mSigma時,二次項消掉,有m x_i的線性形式.

由1、2,結合m x_i在類確定的條件下獨立,lnfrac{P(m x|C_1)P(C_1)}{P(m x|C_2)P(C_2)}可以寫成m x的線性形式。

附錄2,如何處理不太符合上述條件的數據

1.m x_i=(x_i^{(1)},x_i^{(2)},...,x_i^{(t)})由某些連續特徵組成

a.m x_iC_k條件下不服從正態分布,處理辦法:將m x_i離散化,oneHotEncode;

b.m x_iC_k的條件下服從正態分布,其協方差矩陣跟C_k有關,處理辦法:加入t^2個二次項特徵,(x_i^{(1)}x_i^{(1)},x_i^{(1)}x_i^{(2)},...,x_i^{(t)}x_i^{(t)}),當然粗暴一點的話可以直接離散化.

2.m x_i=(x_i^{(1)},x_i^{(2)},...,x_i^{(t)}),m x_j=(x_j^{(1)},x_j^{(2)},...,x_j^{(s)})都是由離散特徵oneHotEncode所得,在類確定的條件下不是獨立的,處理辦法:將m x_i,m x_j組合成一個新特徵,oneHotEncode以後,共有t*s種情況,可以寫成(x_i^{(1)}x_j^{(1)},x_i^{(1)}x_j^{(2)},...,x_i^{(t)}x_j^{(s)}),用這個新特徵代替m x_i,m x_j.


LR作為CTR預估的一個經典模型,他的理論和實際意義其它同學已經有了很好的回答,不累述了。

說一下我對CTR預估的一些淺見:無論是LR還是其它模型比如最近越來越受到青睞的FM, LR+GBDT, deep learning等方法,主要是解決的是rank order的問題,也就是模型給實際中點擊概率高的樣本的打分應該高於實際中點擊概率低的樣本。所以我們往往在評價這些模型的性能時,會使用AUC-ROC等指標。

然而在計算廣告里,CTR預估往往不但要給出正確的rank order,還需要估計出實際的點擊概率。但是不幸的事情是我們的觀察數據是{0,1}的二元數據,永遠無法知道他們背後的真實點擊概率是多少。因此如何用二元的觀察數據估計出實際的點擊概率是個非常有挑戰的事情。這種挑戰在觀察數據是有偏的情況下會變得更加棘手。比如RTB廣告我們的觀察數據往往受到bid landscape的影響,存在survival bias。

從這個意義上說,點擊預估在過去一段時間大家主要的精力放在了rank order的精進上,卻似乎有一些忽略了calibration的重要性。回到題主的問題,「為什麼LR可以用來做CTR預估」,我想可能裡面有一定程度的原因是經常有人提起「LR能夠直接輸出0-1的結果作為概率輸出」,這裡的前提是LR的log-linear假設是一個好的假設,也就是輸入變數x=(x_1, ..., x_N)和條件概率P(y=1|x)之間的關係是滿足log-linear假設的。然而如果實際中這個假設並不成立或者是個不怎麼好的假設,LR輸出的結果就不見得是一個好的點擊概率估計。這個時候仍然需要非常精細的calibration。


1. 點擊率預估很多模型可以做,但是LR實現簡單,方便快速迭代和並行,適合工業界使用。

2. LR本質是線性模型,線性可分的sample自然最好,但是非線性數據通過離散等處理也可以使用LR.

3. 對feature進行離散化,一般而言lr都和特徵工程緊密聯繫。


第一個問題:

(1)求解簡單,容易大規模並行求解。

(2)線性模型,調參相對容易。

(3)輸出是0-1的連續值,取值範圍天然契合概率,而點擊率也是一個0-1的概率值。

第二個問題:

如果你已經知道類條件概率服從正態分布,即:P(x|w_i) sim N(u_i,Sigma_i),那麼邏輯回歸可以對這個份數據擬合的很好。因為:當樸素貝葉斯中類條件概率假設為高斯分布,邏輯回歸和樸素貝葉斯是等價的


1. LR是線性模型,具有很好的可解釋性,分散式計算迭代速度快。

2. LR可以很好的利用正則化解決稀疏性問題,尤其特徵維數非常大,大到千億級別。。

3. LR可以輸出概率,天然適合Ranking.

4. 我覺得離散特徵比較好,by the way...LR也可以做特徵選擇。。。。


1. 點擊率預估,雖然看似一個回歸問題,但從樣本角度來看,本質上是一個分類問題。廣告領域的特徵維度比較高,用LR是比較保守的選擇。

2. 特徵相互獨立的情況下,LR建模最好。如果特徵維度很高,或者小心的做過特徵選擇和組合,大多數場景下是可以忽略特徵不獨立的情況,很好的用LR建模。

需要注意的地方:

LR的假設分布是高斯分布,但在大多數廣告建模中,分布更像混合高斯分布,我們是將多個高斯分布混到一個LR模型中建模。

在特徵維度很高的情況下,如果各個高斯分布的主要特徵不重合,相當於將彼此獨立LR的損失函數加起來,也能做出不錯的結果。

但是要小心某些長尾的分布不能得到充分建模,必要時還是要分成多個LR模型。


之前做過用lr預測用戶行為。

有監督的學習,做預估應該很正常。對於lr,特徵構造非常重要,特徵好,結果就好。而且由於它對待各個特徵權重相同,所以如果是多個特徵組合到一起的,相互之間的權重要考慮


回答第二點。。。個人理解,在有限機器資源下,LR做id-mapping類分類問題效果快且好。什麼是id-mapping?比如用戶ctr,對這種很「個性化」的行為預測,一個用戶是一個id,把用戶id加入模型特徵,效果good。。對於之前沒有用戶行為數據的問題一般另外一套模型處理(冷啟動)

離開這個例子說,LR的核心是線性,構造特徵當然是嘗試把一些業務內在的非線性關係用特徵構造出來,比如f1*f2這樣

我覺得以上間接回答了第一點……


推薦閱讀:

如何評價CTR預估效果?
除了LR,FM(FFM)方法,CTR預測還有那些方法,應用較為廣泛?
廣告點擊率模型中,LR, GBDT+LR, FM, DNN等模型的優點和缺點?實際效果如何?
為什麼FTRL比FOBOS更容易獲得稀疏解?

TAG:數學 | 機器學習 | 計算廣告學 |