天天看點

GBDT+LR為什麼需要GBDT+LRGBDT算法詳解GBDT+LR 模型 思路是什麼樣?

為什麼需要GBDT+LR

協同過濾和矩陣分解存在問題:

僅利用了使用者與物品互相行為資訊進行推薦, 忽視了使用者自身特征, 物品自身特征以及上下文資訊等,導緻生成的結果往往會比較片面。

FFM 存在問題

FFM特征交叉能力有限:雖然 FFM 模型采用引入特征域的方式增強了模型的特征交叉能力,隻能做二階的特征交叉,如果繼續提高特征交叉的次元,會不可避免地産生組合爆炸和計算複雜度過高的問題。

LR 存在問題

表達能力不強, 無法進行特征交叉, 特征篩選等一系列“進階“操作(這些工作都得人工來幹, 這樣就需要一定的經驗, 否則會走一些彎路), 是以可能造成資訊的損失。

GBDT算法詳解

傳送門

GBDT+LR 模型 思路是什麼樣?

  1. 利用GBDT自動進行特征篩選群組合,進而生成新的離散特征向量;
  2. 再把該特征向量當做LR模型的輸入, 來産生最後的預測結果;

GBDT+LR 模型 步驟是什麼樣?

訓練時,GBDT 建樹的過程相當于自動進行的特征組合和離散化,然後從根結點到葉子節點的這條路徑就可以看成是不同特征進行的特征組合,用葉子節點可以唯一的表示這條路徑,并作為一個離散特征傳入 LR 進行二次訓練。

預測時,會先走 GBDT 的每棵樹,得到某個葉子節點對應的一個離散特征(即一組特征組合),然後把該特征以 one-hot 形式傳入 LR 進行線性權重預測。

GBDT為什麼可以做特征組合?

GBDT+LR為什麼需要GBDT+LRGBDT算法詳解GBDT+LR 模型 思路是什麼樣?

在GBDT中,每個葉子節點就是這個樹最終的預測結果,那麼從根節點到葉子節點的路徑就是我們這個樹用來判别這個樣本的根據,說白就是這個樹是通過這條路徑的特征組合來實作這個樣本分類的,再換句話說,就是我們産生了一個特征組合,就是這條路徑的特征組合,利用這個特征組合我們就可以區分這個根節點的樣本,那麼我們就可以擷取所有樹的根節點的特征組合。

舉個例子,我們定義GBDT樹的個數為2,那麼我們就會有兩棵樹,如果第一個樹的葉子節點個數為3,第二顆樹的葉子節點個數為2,那麼我們就會産生一個新的5維特征向量,如果一個樣本落到了對應的葉子節點,則這個節點對應的向量值為1,比如一個樣本落在了第一顆樹的第2個葉子節點,落到了第二棵樹的第1個節點,那麼産生的特征組合向量為 【0,1,0,1,0】,這是我們就可以将這個5維向量與原來的特征進行拼接融合,作為新的特征矩陣交給邏輯回歸模型中進行模組化。

繼續閱讀