CTR打分模型中為什麼使用邏輯回歸?

大部分的公司的CTR打分部分,為什麼都是使用邏輯回歸來進行計算分數,而不使用其他的機器學習演算法,比如線性回歸,決策樹,支持向量機等。

對於這些演算法的評估,也大多使用AUC來評估,而不是使用F值,精確率,召回率來進行評估,這又是為什麼呢?


從訓練角度來說:首先LR的分散式優化SGD發展比較成熟,你線上訓練肯定要用到許多機器,演算法要可分布。

從在線預測CTR的角度來說:LR的預測也可以在特徵級別並行,因為他是一個線性模型,這有什麼好處呢?比如說你預測一次點擊行為用到十億個特徵,其中9億個特徵可能更新很不頻繁,或者對更新不敏感,你可能為了性能要做緩存。對於LR來說,你可以把這9億個特徵和權重的點乘緩存下來。這樣每次計算的時候就少了很多內存搬運和CPU時間消耗。如果是決策樹做這種優化就困難很多。比如說淘寶,商品的特徵更新是很慢的,或者說一時半會不更新也不至於怎麼樣,那你緩存下來,用戶玩命刷淘寶首頁的時候每次實際計算的是那一億對更新比較敏感的特徵的數值。

當然天下沒有免費的午餐,LR的缺點就是模型本身的表達能力很弱,需要構造非常棒的特徵組合才能達到好的效果,好消息是這隻需要堆人力就好了。而且緩存的機制設計也有些複雜,需要一些toolkit+對模型和業務的理解才能把性能優化到很好。

另外gbdt 當然是好的,但點擊率預估的特徵需要經過一些tricky的處理後才能用到上面,也會吃掉更多的機器資源。


1. 因為數據量大到一定程度,這些模型的效果其實差別並不大

2. 其他模型訓練太耗費計算資源,小公司玩不起。


羅列了常見的分類模型的優缺點,logistic模型個人認為優勢的地方在於原理好理解,操作簡單,實際效果也不差,在開發資源同等的條件下,一般為優先選擇。

決策樹的優點:

一、 決策樹易於理解和解釋.人們在通過解釋後都有能力去理解決策樹所表達的意義。

二、 對於缺失值容忍度高

三、 CART能夠同時處理數據型和常規型屬性。

四、 可以產出邏輯表達式。

五、 速度快,效率高。

六、 拓展性好,部署簡單,分散式開發場景較完善。

決策樹的缺點:

一、 ID3對於那些各類別樣本數量不一致的數據,在決策樹當中,信息增益的結果偏向於那些具有更多數值的特徵。(CART採用了GINI係數,C4.5採用了信息增益率解決了這個問題)

二、 過度擬合問題的出現。(我們可以通過Random forest來克服)

三、 忽略數據集中屬性之間的相關性。

2 人工神經網路的優缺點

人工神經網路的優點:分類的效果好,可以分布處理,對雜訊神經有較強的魯棒性和容錯能力,能充分逼近複雜的非線性關係。

人工神經網路的缺點:初始值難以確定,如網路拓撲結構、權值和閾值的初始值;黑盒訓練,輸出結果難以解釋,會影響到結果的可信度和可接受程度;學習時間過長,甚至可能達不到學習的目的;部分情況會局部最優;難以工程實現。

3 Logistic演算法的優缺點

Logistic演算法的優點:

一、 簡單易部署。

二、 得出的結果為概率值,可以人為確定cutoff。

三、 訓練速度快,重新訓練代價小。

Logistic演算法的缺點:

一、 萬金油一樣的存在,在不同領域都有比它優秀的,但是可以在各個領域都有一席之地。

二、 logit(p)需要和自變數有相關性

4 KNN演算法(K-Nearest Neighbour) 的優缺點

KNN演算法的優點:

一、 簡單、有效。

二、 重新訓練的代價較低。

三、 由於KNN方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對於類域的交叉或重疊較多的待分樣本集來說,KNN方法較其他方法更為適合。

KNN演算法缺點:

一、 KNN演算法是自我優化能力較弱(lazy learning)。

二、 沒有概率值產出。

三、 輸出的可解釋性不強。

四、 受黑白樣本比影響較大。

五、 計算量較大。

六、 容量較小的類域採用這種演算法比較容易產生誤分。

5 支持向量機(SVM)的優缺點

SVM的優點:

一、 小樣本效果也不錯。

二、 降低泛化誤差。

三、 可以解決高維問題。

四、 可以解決非線性問題。

五、 可以避免神經網路結構選擇和局部極小點問題。

SVM的缺點:

一、 對缺失數據敏感。

二、 對非線性問題沒有通用解決方案,難以選擇Kernelfunction。

6 Adaboosting方法的優點

優點:

一、 adaboost通常效果優秀。

二、 訓練速度較快。

三、 簡單,不用做特徵篩選。

四、 不用擔心overfitting。

五、 可回歸可分類

缺點:

一、 局部最優。

二、 部署稍複雜


因為ctr數據量大,因此需要複雜度低的演算法與模型,而回歸,特別是邏輯回歸簡單,並且效果也好,而且可以進行各種變種。也是一種奧卡姆剃刀原則。


某童鞋的老闆說,不準搞模型,好好搞特徵工程。於是他們乖乖用LR


我剛好從事這方面工作。個人覺得主要原因是廣告點擊率預測需要基於大規模的訓練樣本和特徵。一般是十億級別樣本和億級別的特徵,甚至更多。邏輯回歸由於模型簡單,很適合用來學習大數據的問題。另外,邏輯回歸做在線學習比較容易,處理速度也快。至於為什麼廣告需要基於大數據,主要是要記憶很多過去的行為模式。機器學習就是記憶和泛化。數據多了,才有學習和記憶的基礎。


目前,已經有許多公司開始使用深度學習來做了,這樣能夠省去特徵工程這一項人力活動。對於許多公司仍使用LR,我個人認為:1、LR可解釋性強,能夠解釋ecpm的計算;2、LR更有利於並行化處理,以及在線更新;3、LR模型簡單,易於上手,重點關注的只是特徵工程這類人工活動,而且GBDT的使用,也使得特徵工程變得並沒有那麼耗費人力,對小公司而言,人員水平不足,但仍可以快速上手;4、當然,深度學習需要更多的高性能機器,小公司難以承受。


有些數據大到根本存不住,只能酒肉穿腸過。這時候就只能用online learning 了。於是linear model就有很大優勢。

另外其實linear model是很強大的。會調linear model會看data的人可以只靠linear model就做的很好。再一個線性模型是我們能看懂的為數不多的model。模型的表現匹配上模型的可理解性,用起來更讓人放心。

至於AUC,我覺得主要是比較flexible和robust。很多時候logloss也是不錯的選擇,只是比較敏感於計算值,需要合理cap。


金融行業一般用LR, 穩定壓倒一切


1 效率

2 簡潔、可視

3 穩定

4 準確--其實樣本規模、變數處理 這些比演算法更重要


其他公司其他人是怎麼回事我不知道,但如果公司把每月廣告凈利潤的一部分(不論多少)作為我的每月獎金,肯定不用邏輯回歸


推薦閱讀:

如何問出一個應聘者是否真的做過推薦系統?
kaggle案例:員工離職預測
打字習慣匹配(Typing Pattern Recognition)有什麼好的演算法實現?
絕對收藏!民生銀行用戶畫像建設分享30頁PPT放送
聊聊傳統演算法系統與機器學習系統的一點不同

TAG:數據挖掘 | 機器學習 | 推薦系統 |