概述
GBDT的加入俩块,是為了彌補LR難以實現(xiàn)特征組合的缺點。
LR
LR作為一個線性模型玉凯,以概率形式輸出結(jié)果势腮,在工業(yè)上得到了十分廣泛的應(yīng)用。
其具有簡單快速高效漫仆,結(jié)果可解釋捎拯,可以分布式計算。搭配L1盲厌,L2正則署照,可以有很好地魯棒性以及挑選特征的能力。
但由于其簡單吗浩,也伴隨著擬合能力不足建芙,無法做特征組合的缺點(無法自動做特征組合,需要人工做)懂扼。
通過梯度下降法可以優(yōu)化參數(shù)
可以稱之上是 CTR 預估模型的開山鼻祖禁荸,也是工業(yè)界使用最為廣泛的 CTR 預估模型
但是在CTR領(lǐng)域,單純的LR雖然可以快速處理海量高維離散特征阀湿,但是由于線性模型的局限性赶熟,其在特征組合方面仍有不足,所以后續(xù)才發(fā)展出了FM來引入特征交叉陷嘴。在此之前映砖,業(yè)界也有使用GBDT來作為特征組合的工具,其結(jié)果輸出給LR罩旋。
GBDT+LR
首先啊央,GBDT是一堆樹的組合,假設(shè)有k棵樹涨醋。
對于第i棵樹,其存在
個葉子節(jié)點浴骂。而從根節(jié)點到葉子節(jié)點乓土,可以認為是一條路徑,這條路徑是一些特征的組合,例如從根節(jié)點到某一個葉子節(jié)點的路徑可能是“
”這就是一組特征組合趣苏。到達這個葉子節(jié)點的樣本都擁有這樣的組合特征狡相,而這個組合特征使得這個樣本得到了GBDT的預測結(jié)果。
所以對于GBDT子樹食磕,會返回一個
維的one-hot向量
對于整個GBDT尽棕,會返回一個維的向量
,這個向量由0-1組成彬伦。
然后,這個,會作為輸入单绑,送進LR模型回官,最終輸出結(jié)果
模型大致如圖所示。上圖中由兩棵子樹搂橙,分別有3和2個葉子節(jié)點歉提。對于一個樣本x,最終可以落入第一棵樹的某一個葉子和第二棵樹的某一個葉子苔巨,得到兩個獨熱編碼的結(jié)果例如
[0,0,1],[1,0]組合得[0,0,1,1,0]輸入到LR模型最后輸出結(jié)果蜗帜。
由于LR善于處理離散特征恋拷,GBDT善于處理連續(xù)特征厅缺。所以也可以交由GBDT處理連續(xù)特征湘捎,輸出結(jié)果拼接上離散特征一起輸入LR窥妇。
討論
至于GBDT為何不善于處理高維離散特征娩践?
https://cloud.tencent.com/developer/article/1005416
缺點:對于海量的 id 類特征,GBDT 由于樹的深度和棵樹限制(防止過擬合)材泄,不能有效的存儲拉宗;另外海量特征在也會存在性能瓶頸,經(jīng)筆者測試魁巩,當 GBDT 的 one hot 特征大于 10 萬維時姐浮,就必須做分布式的訓練才能保證不爆內(nèi)存卖鲤。所以 GBDT 通常配合少量的反饋 CTR 特征來表達,這樣雖然具有一定的范化能力白对,但是同時會有信息損失甩恼,對于頭部資源不能有效的表達沉颂。
https://www.zhihu.com/question/35821566
后來思考后發(fā)現(xiàn)原因是因為現(xiàn)在的模型普遍都會帶著正則項,而 lr 等線性模型的正則項是對權(quán)重的懲罰钉蒲,也就是 W1一旦過大彻坛,懲罰就會很大顷啼,進一步壓縮 W1的值,使他不至于過大昌屉,而樹模型則不一樣钙蒙,樹模型的懲罰項通常為葉子節(jié)點數(shù)和深度等,而我們都知道间驮,對于上面這種 case躬厌,樹只需要一個節(jié)點就可以完美分割9990和10個樣本,懲罰項極其之小.
這也就是為什么在高維稀疏特征的時候竞帽,線性模型會比非線性模型好的原因了:帶正則化的線性模型比較不容易對稀疏特征過擬合扛施。
GBDT當樹深度>2時,其實組合的是多元特征了屹篓,而且由于子樹規(guī)模的限制疙渣,導致其特征組合的能力并不是很強,所以才有了后續(xù)FM抱虐,F(xiàn)FM的發(fā)展
參考
https://cloud.tencent.com/developer/article/1005416
https://fuhailin.github.io/GBDT-LR/