LambdaMART的思想

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的思想)