LambdaMART的思想
生活随笔
收集整理的這篇文章主要介紹了
LambdaMART的思想
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
LambdaMART的思想
2015-01-01 13:08 469人閱讀 評論(0) 收藏 舉報
本文章已收錄于:
分類: learning to rank(6) 作者同類文章X
其思路來源于數值優化---梯度下降。在使用梯度下降時,更新函數的參數是,w= w-δw 從數值優化推廣到函數空間的優化,可以得到δf, f= f-δf. 新生成的每個樹h(x,m)需要跟-δf(f的梯度)之差最小(如果為0,則新生成的樹就是所要求的梯度),第4行。 F(x) =F(x) + ρmh(x,m),針對排序問題,F(x)代表x的評分,也就是y。 因此可以通過前面已生成的樹(m-1),就可以生成一棵新樹δf(m).
LambdaRank的思路: 1.MART的F(xi)等價于LambdaRank的o(i) F(xi)m=F(xi)m-1+newTree。 2.MART的L(yi,F(xi))等價于 之和。 指定的i,對應多個j,而yi,則根據輸入的數據j,指定為1,或者-1. 這里的目標是求C的最大值。 輸入某個si的具體計算過程: lambdai就是si從newTree中獲取的值,表示si的值如何調整才能滿足C最大(類似梯度)。 將si= si+lambdai,代入到C中,并對Si求導, 公式里沒有lambdai的原因:lambdai的初始值為0,并且只迭代一次。 備注: 根據Newton-Raphson,求函數最小值為: 這里求最大值,則用加。
根據輸入(xi,lambdai),其中lambdai表示xi的調整方向(梯度)(例如:讓排名最前的值越來越大,讓排名最后的值越來越小),生成一棵指定節點個數的樹,并給相應葉子節點賦予γkm的值,就可完成新樹的生成。
個人總結: 1.LambdaMART 與LambdaRank和NetRank的訓練方式不同 LambdaMART是通過boosting的方式,其score(xi)m = socre(xi)m-1 + newTree。 LambdaRank和NetRank則是通過訓練神經網絡的方式,直接通過對輸出求到,然后再一層層求參數。 ? ?LambdaMART 和LambdaRank采用了相同的梯度lambdaij,并且都是為了求DNCG的最大值。 ?但是由于F(xi)的形式不一樣,兩者的訓練方式不同,一個是神經網絡的方式(LambdaRank),一個是回歸樹+梯度boosting的方式(LambdaMART?)。
LambdaMART是采用了Lambda的梯度形式和評估函數(NDCG),并用樹的方式來計算。
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
LambdaRank如何跟MART結合在一起的。 MART是一個經典的集成思想,多個弱分類器可以生成一個比他們都好的分類器。 MART思想: 主要來自這篇論文: GREEDY FUNCTION APPROXIMATION:A GRADIENT BOOSTING MACHINE1其思路來源于數值優化---梯度下降。在使用梯度下降時,更新函數的參數是,w= w-δw 從數值優化推廣到函數空間的優化,可以得到δf, f= f-δf. 新生成的每個樹h(x,m)需要跟-δf(f的梯度)之差最小(如果為0,則新生成的樹就是所要求的梯度),第4行。 F(x) =F(x) + ρmh(x,m),針對排序問題,F(x)代表x的評分,也就是y。 因此可以通過前面已生成的樹(m-1),就可以生成一棵新樹δf(m).
LambdaRank的思路: 1.MART的F(xi)等價于LambdaRank的o(i) F(xi)m=F(xi)m-1+newTree。 2.MART的L(yi,F(xi))等價于 之和。 指定的i,對應多個j,而yi,則根據輸入的數據j,指定為1,或者-1. 這里的目標是求C的最大值。 輸入某個si的具體計算過程: lambdai就是si從newTree中獲取的值,表示si的值如何調整才能滿足C最大(類似梯度)。 將si= si+lambdai,代入到C中,并對Si求導, 公式里沒有lambdai的原因:lambdai的初始值為0,并且只迭代一次。 備注: 根據Newton-Raphson,求函數最小值為: 這里求最大值,則用加。
根據輸入(xi,lambdai),其中lambdai表示xi的調整方向(梯度)(例如:讓排名最前的值越來越大,讓排名最后的值越來越小),生成一棵指定節點個數的樹,并給相應葉子節點賦予γkm的值,就可完成新樹的生成。
個人總結: 1.LambdaMART 與LambdaRank和NetRank的訓練方式不同 LambdaMART是通過boosting的方式,其score(xi)m = socre(xi)m-1 + newTree。 LambdaRank和NetRank則是通過訓練神經網絡的方式,直接通過對輸出求到,然后再一層層求參數。 ? ?LambdaMART 和LambdaRank采用了相同的梯度lambdaij,并且都是為了求DNCG的最大值。 ?但是由于F(xi)的形式不一樣,兩者的訓練方式不同,一個是神經網絡的方式(LambdaRank),一個是回歸樹+梯度boosting的方式(LambdaMART?)。
LambdaMART是采用了Lambda的梯度形式和評估函數(NDCG),并用樹的方式來計算。
總結
以上是生活随笔為你收集整理的LambdaMART的思想的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GBDT(Gradient Boosti
- 下一篇: 计算文本相似度