徐博 From RankNet to LambdaRank to LambdaMART: An Overview
生活随笔
收集整理的這篇文章主要介紹了
徐博 From RankNet to LambdaRank to LambdaMART: An Overview
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
徐博 From RankNet to LambdaRank to LambdaMART: An Overview
新聞來源:IR實(shí)驗(yàn)室 ????? 發(fā)布時(shí)間:2012/10/17 15:44:39
??? 這篇論文是一篇關(guān)于排序?qū)W習(xí)算法RankNet,LambdaRank和LambdaMART的綜述性技術(shù)報(bào)告,這三種算法近年來在諸如Yahoo!Learning To Rank Challenge的比賽中都表現(xiàn)出了很好的排序效果。LambdaMART是提升樹版本的LambdaRank,而LambdaRank是基于RankNet排序?qū)W習(xí)算法的,因此三種算法在內(nèi)涵上有一種層層遞進(jìn)的關(guān)系,所以放在了一起進(jìn)行闡明。 一、RankNet RankNet算法訓(xùn)練得到的排序模型是模型參數(shù)的可微函數(shù),他可以將輸入向量映射到一個(gè)實(shí)數(shù)上去,對(duì)于兩個(gè)URL對(duì)兒的得分通過一個(gè)概率函數(shù)進(jìn)行融合,并在該概率函數(shù)的基礎(chǔ)上,構(gòu)造交叉熵?fù)p失函數(shù),對(duì)應(yīng)的函數(shù)如下所示:
將上面兩個(gè)公式結(jié)合可以得到一個(gè)更加直接的損失函數(shù)公式,如下:
由于先前提到過模型實(shí)際上是參數(shù)的可微函數(shù),而損失函數(shù)又可以表示成以上這種模型函數(shù)的表達(dá)形式,因此我們可以知道,損失函數(shù)也是模型參數(shù)的可微函數(shù)。因此我們可以通過梯度下降的方法,找到損失函數(shù)的梯度,并在梯度的負(fù)方向上進(jìn)行參數(shù)值的變化來找到損失函數(shù)在參數(shù)變化范圍內(nèi)的最小值。 梯度下降法中參數(shù)變化的公式如下所示:
上面的公式就可以通過調(diào)整參數(shù)的取值來逼近損失函數(shù)的最小值了。這里提一下,隨機(jī)梯度下降算法的原理是用隨機(jī)選取的Training Set的子集來估計(jì)目標(biāo)函數(shù)的梯度值。RankNet算法的具體流程,如下所示:
? 二、LambdaRank 在RankNet的基礎(chǔ)上,對(duì)損失函數(shù)的導(dǎo)數(shù)進(jìn)行因式分解我們可以得到,參數(shù)Lambda,而該參數(shù)是LambdaRank排序?qū)W習(xí)算法的基礎(chǔ)。
???????? 對(duì)同一查詢下的一個(gè)URL得到的所有URL對(duì)兒的貢獻(xiàn)值Lambda進(jìn)行累加,可以得到我們需要的Lambda和的形式 ? 該Lambda和可以看做是之前提到的損失函數(shù)的梯度,它的方向是所對(duì)應(yīng)的URL在URL排序列表中移動(dòng)的方向,大小就是移動(dòng)的距離 在上面的基礎(chǔ)上,LambdaRank算法對(duì)Lambda值的計(jì)算方式進(jìn)行了改進(jìn),引入了信息檢索評(píng)價(jià)指標(biāo),如下所示:
因此該Lambda可以直接對(duì)NDCG進(jìn)行優(yōu)化,其中NDCG的變化量,為URL I 和j 在交換位置時(shí)候的評(píng)價(jià)指標(biāo)的變化量。對(duì)Lambda的累加的方式和上面提到的相同。 ? 三、LambdaMART MART是多重加法回歸樹的簡稱,該算法訓(xùn)練出的模型是一系列回歸樹模型的線性組合。回歸樹模型能夠?qū)σ阎獢?shù)據(jù)進(jìn)行分類,并在每一個(gè)葉子節(jié)點(diǎn)對(duì)應(yīng)該分類的輸出值 下面是MART算法的流程
LambdaMART算法講MART 作為基本模型進(jìn)行訓(xùn)練,利用LambdaRank中損失函數(shù)的構(gòu)造和優(yōu)化方式來訓(xùn)練排序模型,并采用了牛頓迭代法(Newton-Raphson)來確定每一個(gè)葉子節(jié)點(diǎn)是輸出值,算法的詳細(xì)流程如下:
LambdaMART算法與LambdaRank算法相比較雖然可能在個(gè)別查詢上表現(xiàn)的會(huì)有所欠缺,但是整體的性能得到了很好的提升。
將上面兩個(gè)公式結(jié)合可以得到一個(gè)更加直接的損失函數(shù)公式,如下:
由于先前提到過模型實(shí)際上是參數(shù)的可微函數(shù),而損失函數(shù)又可以表示成以上這種模型函數(shù)的表達(dá)形式,因此我們可以知道,損失函數(shù)也是模型參數(shù)的可微函數(shù)。因此我們可以通過梯度下降的方法,找到損失函數(shù)的梯度,并在梯度的負(fù)方向上進(jìn)行參數(shù)值的變化來找到損失函數(shù)在參數(shù)變化范圍內(nèi)的最小值。 梯度下降法中參數(shù)變化的公式如下所示:
上面的公式就可以通過調(diào)整參數(shù)的取值來逼近損失函數(shù)的最小值了。這里提一下,隨機(jī)梯度下降算法的原理是用隨機(jī)選取的Training Set的子集來估計(jì)目標(biāo)函數(shù)的梯度值。RankNet算法的具體流程,如下所示:
? 二、LambdaRank 在RankNet的基礎(chǔ)上,對(duì)損失函數(shù)的導(dǎo)數(shù)進(jìn)行因式分解我們可以得到,參數(shù)Lambda,而該參數(shù)是LambdaRank排序?qū)W習(xí)算法的基礎(chǔ)。
???????? 對(duì)同一查詢下的一個(gè)URL得到的所有URL對(duì)兒的貢獻(xiàn)值Lambda進(jìn)行累加,可以得到我們需要的Lambda和的形式 ? 該Lambda和可以看做是之前提到的損失函數(shù)的梯度,它的方向是所對(duì)應(yīng)的URL在URL排序列表中移動(dòng)的方向,大小就是移動(dòng)的距離 在上面的基礎(chǔ)上,LambdaRank算法對(duì)Lambda值的計(jì)算方式進(jìn)行了改進(jìn),引入了信息檢索評(píng)價(jià)指標(biāo),如下所示:
因此該Lambda可以直接對(duì)NDCG進(jìn)行優(yōu)化,其中NDCG的變化量,為URL I 和j 在交換位置時(shí)候的評(píng)價(jià)指標(biāo)的變化量。對(duì)Lambda的累加的方式和上面提到的相同。 ? 三、LambdaMART MART是多重加法回歸樹的簡稱,該算法訓(xùn)練出的模型是一系列回歸樹模型的線性組合。回歸樹模型能夠?qū)σ阎獢?shù)據(jù)進(jìn)行分類,并在每一個(gè)葉子節(jié)點(diǎn)對(duì)應(yīng)該分類的輸出值 下面是MART算法的流程
LambdaMART算法講MART 作為基本模型進(jìn)行訓(xùn)練,利用LambdaRank中損失函數(shù)的構(gòu)造和優(yōu)化方式來訓(xùn)練排序模型,并采用了牛頓迭代法(Newton-Raphson)來確定每一個(gè)葉子節(jié)點(diǎn)是輸出值,算法的詳細(xì)流程如下:
LambdaMART算法與LambdaRank算法相比較雖然可能在個(gè)別查詢上表現(xiàn)的會(huì)有所欠缺,但是整體的性能得到了很好的提升。
總結(jié)
以上是生活随笔為你收集整理的徐博 From RankNet to LambdaRank to LambdaMART: An Overview的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于编码ansi、GB2312、unic
- 下一篇: LambdaMART简介——基于Rank