1. 程式人生 > >計算廣告CTR預估的特徵處理方法

計算廣告CTR預估的特徵處理方法

1.CTR預估,發現CTR預估一般都是用LR,而且特徵都是離散的。為什麼一定要用離散特徵呢?這樣做的好處在哪裡?

A:在工業界,很少直接將連續值作為邏輯迴歸模型的特徵輸入,而是將連續特徵離散化為一系列0、1特徵交給邏輯迴歸模型,這樣做的優勢有以下幾點:

  1. 離散特徵的增加和減少都很容易,易於模型的快速迭代。(離散特徵的增加和減少,模型也不需要調整,重新訓練是必須的,相比貝葉斯推斷方法或者樹模型方法迭代快)
  2. 稀疏向量內積乘法運算速度快,計算結果方便儲存,容易擴充套件;
  3. 離散化後的特徵對異常資料有很強的魯棒性:比如一個特徵是年齡>30是1,否則0。如果特徵沒有離散化,一個異常資料“年齡300歲”會給模型造成很大的干擾;離散化後年齡300歲也只對應於一個權重,如果訓練資料中沒有出現特徵"年齡-300歲",那麼在LR模型中,其權重對應於0,所以,即使測試資料中出現特徵"年齡-300歲",也不會對預測結果產生影響。特徵離散化的過程:比如特徵a,如果使用連續特徵,在LR模型中,y = w*a,a是特徵,w是a對應的權重,比如a代表年齡,那麼a的取值範圍是[0..100],如果測試樣本中,出現了一個測試用例,a的取值是300,顯然a是異常值,但是w*a還是有值,而且值還非常大,所以,異常值會對最後結果產生非常大的影響。如果離散化,那麼a就拓展為特徵a_1,a_2,a_3...,每個特徵對應於一個權重,如果訓練樣本中沒有出現特徵a_4,那麼訓練的模型對於a_4就沒有權重,如果測試樣本中出現特徵a_4,該特徵a_4也不會起作用,相當於無效。
  4. 特徵離散化後,提升模型表達能力,加大擬合, 例如LR屬於廣義線性模型,表達能力受限;單變數離散化為N個後,每個變數有單獨的權重,相當於為模型引入了非線性,能夠提升模型表達能力,加大擬合;在LR模型中,特徵a作為連續特徵對應的權重是w。a是線性特徵,因為y = w*a,y對於a的導數就是w,如果離散化後,a按區間離散化為a_1,a_2,a_3。那麼y = w_1*a_1+w_2*a_2+w_3*a_3。那麼y對於a的函式就相當於分段的線性函式,y對於 a 的導數也隨 a 的取值變動,所以,相當於引入了非線性。
  5. 離散化後可以進行特徵交叉,加入特徵A 離散化為M個值,特徵B離散為N個值,那麼交叉之後會有M*N
    個變數,進一步引入非線性,提升表達能力;
  6. 特徵離散化後,模型會更穩定,如果對使用者年齡離散化,20-30作為一個區間,不會因為一個使用者年齡長了一歲就變成一個完全不同的人。當然處於區間相鄰處的樣本會剛好相反,所以怎麼劃分區間是門學問;按區間離散化,劃分區間是非常關鍵的。
  7. 特徵離散化以後,起到了簡化了邏輯迴歸模型的作用,降低了模型過擬合的風險。(當使用連續特徵時,一個特徵對應於一個權重,那麼,如果這個特徵權重較大,模型就會很依賴於這個特徵,這個特徵的一個微小變化可能會導致最終結果產生很大的變化,這樣子的模型很危險,當遇到新樣本的時候很可能因為對這個特徵過分敏感而得到錯誤的分類結果,也就是泛化能力差,容易過擬合。而使用離散特徵的時候,一個特徵變成了多個,權重也變為多個,那麼之前連續特徵對模型的影響力就被分散弱化了,從而降低了過擬合的風險。)

李沐曾經說過:模型是使用離散特徵還是連續特徵,其實是一個“海量離散特徵+簡單模型” 同 “少量連續特徵+複雜模型”的權衡。既可以離散化用線性模型,也可以用連續特徵加深度學習。就看是喜歡折騰特徵還是折騰模型了。通常來說,前者容易,而且可以n個人一起並行做,有成功經驗;後者目前看很贊,能走多遠還須拭目以待。

http://www.zhihu.com/question/28641663/answer/41653367

在廣告LR模型中,為什麼要做特徵組合?

在業界,LR模型之所以很受歡迎,主要是因為LR模型本質是對數線性模型,實現簡單,易於並行,大規模擴充套件方便,迭代速度快,同時使用的特徵比較好解釋,預測輸出在0與1之間契合概率模型。(模型的可解釋性舉例,比如A-B的權重比較大,A代表使用者,B代表物品,那麼可以認為A是對B比較感興趣的)但是,線性模型對於非線性關係缺乏準確刻畫,特徵組合正好可以加入非線性表達,增強模型的表達能力。另外,廣告LR中,基本特徵可以認為是用於全域性建模,組合特徵更加精細,是個性化建模,因為在這種大規模離散LR中,單對全域性建模會對部分使用者有偏,對每一使用者建模又資料不足易過擬合同時帶來模型數量爆炸,所以基本特徵+組合特徵兼顧了全域性和個性化。比如特徵向量中,有使用者A,B,C,物品E,F,G。基本的特徵A,B.C.E.F.G對應的權重,對應的是每個物件的偏置權重,但如果A偏好E,B偏好F,那麼組合特徵A-E,B-F就是對使用者的個性進行建模,組合特徵A-E,B-F的權重就是代表A對E的喜好,和B-F的喜好。