日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Ranklib分析

發布時間:2025/3/21 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ranklib分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習Machine Learning,閱讀文獻,看各種數學公式的推導,其實是一件很枯燥的事情。有的時候即使理解了數學推導過程,也仍然會一知半解,離自己寫程序實現,似乎還有一道鴻溝。所幸的是,現在很多主流的Machine Learning方法,網上都有open source的實現,進一步的閱讀這些源碼,多做一些實驗,有助于深入的理解方法。

Ranklib就是一套優秀的Learning to Rank領域的開源實現,其主頁在:http://people.cs.umass.edu/~vdang/ranklib.html,從主頁中可以看到實現了哪些方法。其中由微軟發布的LambdaMART是IR業內常用的Learning to Rank模型,本文介紹RanklibV2.1(當前最新的時RanklibV2.3,應該大同小異)中的LambdaMART實現,用以幫助理解paper中闡述的方法。

LambdaMART.java中的LambdaMART.learn()是學習流程的管控函數,學習過程主要有下面四步構成:

1. 計算deltaNDCG以及lambda;

2. 以lambda作為label訓練一棵regression tree;

3. 在tree的每個葉子節點通過預測的regression lambda值還原出gamma,即最終輸出得分;

4. 用3的模型預測所有訓練集合上的得分(+learningRate*gamma),然后用這個得分對每個query的結果排序,計算新的每個query的base ndcg,以此為基礎回到第1步,組成森林。

重復這個步驟,直到滿足下列兩個收斂條件之一:

1. 樹的個數達到訓練參數設置;

2. Random Forest在validation集合上沒有變好。

下面用一組實際的數據來說明整個計算過程,假設我們有10個query的訓練數據,每個query下有10個doc,每個q-d對有10個feature,如下:

1 0 qid:1830 1:0.002736 2:0.000000 3:0.000000 4:0.000000 5:0.002736 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 2 0 qid:1830 1:0.025992 2:0.125000 3:0.000000 4:0.000000 5:0.027360 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 3 0 qid:1830 1:0.001368 2:0.000000 3:0.000000 4:0.000000 5:0.001368 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 4 1 qid:1830 1:0.188782 2:0.375000 3:0.333333 4:1.000000 5:0.195622 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 5 1 qid:1830 1:0.077975 2:0.500000 3:0.666667 4:0.000000 5:0.086183 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 6 0 qid:1830 1:0.075239 2:0.125000 3:0.333333 4:0.000000 5:0.077975 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 7 1 qid:1830 1:0.079343 2:0.250000 3:0.666667 4:0.000000 5:0.084815 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 8 1 qid:1830 1:0.147743 2:0.000000 3:0.000000 4:0.000000 5:0.147743 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 9 0 qid:1830 1:0.058824 2:0.000000 3:0.000000 4:0.000000 5:0.058824 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 10 0 qid:1830 1:0.071135 2:0.125000 3:0.333333 4:0.000000 5:0.073871 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 11 0 qid:1837 1:0.004065 2:0.000000 3:0.500000 4:0.000000 5:0.000000 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 12 0 qid:1837 1:0.459350 2:0.000000 3:0.000000 4:1.000000 5:0.455285 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 13 0 qid:1837 1:0.060976 2:0.333333 3:0.500000 4:0.000000 5:0.065041 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 14 0 qid:1837 1:0.093496 2:0.000000 3:0.000000 4:0.000000 5:0.085366 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 15 0 qid:1837 1:0.195122 2:0.000000 3:0.000000 4:0.000000 5:0.186992 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 16 0 qid:1837 1:0.036585 2:0.333333 3:0.500000 4:0.000000 5:0.040650 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 17 0 qid:1837 1:0.032520 2:0.000000 3:0.000000 4:0.000000 5:0.024390 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 18 0 qid:1837 1:0.073171 2:0.000000 3:0.000000 4:0.000000 5:0.065041 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 19 0 qid:1837 1:0.024390 2:1.000000 3:0.500000 4:1.000000 5:0.048780 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 20 0 qid:1837 1:0.024390 2:0.333333 3:0.500000 4:1.000000 5:0.032520 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 21 0 qid:1840 1:0.000000 2:0.000000 3:0.000000 4:0.000000 5:0.000000 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 22 1 qid:1840 1:0.007364 2:0.200000 3:1.000000 4:0.500000 5:0.013158 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 23 1 qid:1840 1:0.097202 2:0.000000 3:0.000000 4:0.000000 5:0.096491 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 24 2 qid:1840 1:0.169367 2:0.000000 3:0.500000 4:0.000000 5:0.169591 6:0.000000 7:0.000000 8:0.000000 9:0.000000 10:0.000000 25 ......

?

為了簡便,省略了余下的數據。上面的數據格式是按照Ranklib readme中要求的格式組織(類似于svmlight),除了行號之外,第一列是q-d對的實際label(人標注數據),第二列是qid,后面10列都是feature。

這份數據每組qid中的doc初始順序可以是隨機的,也可以是從實際的系統中獲得的當前順序。總之這個是計算ndcg的初始狀態。對于qid=1830,它的10個doc的初始順序的label序列是:0, 0, 0, 1, 1, 0, 1, 1, 0, 0(雖然這份序列中只有label值為0和1的,實際中也會有2,3等,由自己的標注標準決定)。我們知道dcg的計算公式是:

i表示當前doc在這個qid下的位置(從1開始,避免分母為0),label(i)是doc(i)的標注值。而一個query的dcg則是其下所有doc的加和:

?根據上式可以計算初始狀態下每個qid的dcg:?

要計算ndcg,還需要計算理想集的dcg,將初始狀態按照label排序,qid=1830得到的序列是1,1,1,1,0,0,0,0,0,0,計算dcg:

兩者相除得到初始狀態下qid=1830的ndcg:

?

下面要計算每一個doc的deltaNDCG,公式如下:

deltaNDCG(i,j)是將位置i和位置j的位置互換后產生的ndcg變化(其他位置均不變),顯然有相同label的deltaNDCG(i,j)=0。

在qid=1830的初始序列0, 0, 0, 1, 1, 0, 1, 1, 0, 0,由于前3的label都一樣,所以deltaNDCG(1,2)=deltaNDCG(1,3)=0,不為0的是deltaNDCG(1,4), deltaNDCG(1,5), deltaNDCG(1,7), deltaNDCG(1,8)。

將1,4位置互換,序列變為1, 0, 0, 0, 1, 0, 1, 1, 0, 0,計算得到dcg=2.036,整個deltaNDCG(1,4)的計算過程如下:

同樣過程可以計算出deltaNDCG(1,5)=0.239, deltaNDCG(1,7)=0.260, deltaNDCG(1,8)=0.267等。

進一步,要計算lambda(i),根據paper,還需要ρ值,ρ可以理解為doci比docj差的概率,其計算公式為:

Ranklib中直接取σ=1(σ的值決定rho的S曲線陡峭程度),如下圖,藍,紅,綠三種顏色分別對應σ=1,2,4時ρ函數的曲線情形(橫坐標是si-sj):

初始時,模型為空,所有模型預測得分都是0,所以si=sj=0,ρij≡1/2,lambda(i,j)的計算公式為:

?

上式為Ranklib中實際使用的公式,而在paper中,還需要再乘以-σ,在σ=1時,就是符號正好相反,這兩種方式應該是等價的,符號并不影響模型訓練結果。而:

計算lambda(1),由于label(1)=0,qid=1830中的其他doc的label都大于或者等于0,所以lamda(1)的計算中所有的lambda(1,j)都為負項。將之前計算的各deltaNDCG(1,j)代入,且初始狀態下ρij≡1/2,所以:

可以計算出初始狀態下qid=1830各個doc的lambda值,如下:

1 qId=1830 0.000 0.000 0.000 -0.111 -0.120 0.000 -0.130 -0.134 0.000 0.000 lambda(1): -0.495 2 qId=1830 0.000 0.000 0.000 -0.039 -0.048 0.000 -0.058 -0.062 0.000 0.000 lambda(2): -0.206 3 qId=1830 0.000 0.000 0.000 -0.014 -0.022 0.000 -0.033 -0.036 0.000 0.000 lambda(3): -0.104 4 qId=1830 0.111 0.039 0.014 0.000 0.000 0.015 0.000 0.000 0.025 0.028 lambda(4): 0.231 5 qId=1830 0.120 0.048 0.022 0.000 0.000 0.006 0.000 0.000 0.017 0.019 lambda(5): 0.231 6 qId=1830 0.000 0.000 0.000 -0.015 -0.006 0.000 -0.004 -0.008 0.000 0.000 lambda(6): -0.033 7 qId=1830 0.130 0.058 0.033 0.000 0.000 0.004 0.000 0.000 0.006 0.009 lambda(7): 0.240 8 qId=1830 0.134 0.062 0.036 0.000 0.000 0.008 0.000 0.000 0.003 0.005 lambda(8): 0.247 9 qId=1830 0.000 0.000 0.000 -0.025 -0.017 0.000 -0.006 -0.003 0.000 0.000 lambda(9): -0.051 10 qId=1830 0.000 0.000 0.000 -0.028 -0.019 0.000 -0.009 -0.005 0.000 0.000 lambda(10): -0.061

?上表中每一列都是考慮了符號的lamda(i,j),即如果label(i)<label(j),則為負值,反之為正值,每行結尾的lamda(i)是前面的加和,即為最終的lambda(i)。

可以看到,lambda(i)在系統中表達了doc(i)上升或者下降的強度,label越高,位置越后,lambda(i)為正值,越大,表示趨向上升的方向,力度也越大;label越小,位置越靠前,lambda(i)為負值,越小,表示趨向下降的方向,力度也大(lambda(i)的絕對值表達了力度。)

然后Regression Tree開始以每個doc的lamda值為目標,訓練模型。

總結

以上是生活随笔為你收集整理的Ranklib分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人在线精品 | 一卡二卡三卡四卡 | 成年人网站黄色 | 日韩成人无码影院 | 国产一区二区中文字幕 | 波多野结衣精品 | 亚洲视频观看 | 51精品 | 日本视频在线看 | 在线精品免费视频 | 欧美激情性生活 | 波多野结衣电车痴汉 | 亚洲色图在线视频 | 国产精品自产拍 | 成人免费播放视频 | 欧美日韩少妇精品 | 五月激情久久 | 欧美区在线观看 | 国产高清无密码一区二区三区 | 伊人视频在线观看 | 国产日产精品一区二区三区 | 人体毛片 | 国产无码精品视频 | 婷婷成人综合网 | h在线播放 | 国产黑丝av | 97成人精品视频在线观看 | 国产精品久久久久久久免费大片 | 国产调教打屁股xxxx网站 | 午夜激情一区二区 | 日本视频免费在线播放 | 亚洲欧美强伦一区二区 | 喷水了…太爽了高h | 真人真事免费毛片 | 一级特黄毛片 | 四虎色| 悠悠色综合网 | 波多野结衣电车痴汉 | 大桥未久av一区二区三区中文 | 欧美一区二区网站 | 日本一区二区三区在线看 | 豆花免费跳转入口官网 | 99国产视频在线 | 干爹你真棒插曲mv在线观看 | 亚洲精品国产精品国自产在线 | 国产免费一区二区三区视频 | 免费在线黄 | 深夜福利一区二区三区 | 欧美人一级淫片a免费播放 西方av在线 | 亚洲伊人久久综合 | 人妻丰满熟妇无码区免费 | 成人欧美一区二区三区黑人动态图 | 四虎影视永久地址 | 国产成人综合自拍 | 国产精品夜夜夜爽张柏芝 | 久久一级免费视频 | 国产亚洲精品成人 | 国产免费不卡av | 激情二区 | 日韩中文字幕在线看 | 另类一区二区 | 亚洲不卡在线视频 | 日韩av高清无码 | 国产精品久久久久久久久免费看 | 日韩毛片高清在线播放 | 成人不卡av | 华丽的外出在线观看 | 免费麻豆av | 性生交大片免费看狂欲 | 国产精品久久久久久一区二区三区 | 无码成人精品区一级毛片 | 在线观看国产三级 | 巨物撞击尤物少妇呻吟 | 日韩国产小视频 | 啪啪免费视频网站 | 怡红院一区二区 | 日本一级片在线观看 | 欧美xo影院 | 99久久久无码国产精品免费麻豆 | 大陆女明星乱淫合集 | 日本加勒比中文字幕 | 少妇久久精品 | 亚洲精品www久久久久久广东 | 国产精品毛片在线 | 日韩av在线免费播放 | 欧美在线观看www | 欧美激情片在线观看 | 综合国产精品 | 精品一区二区三区四区视频 | 精品国产99久久久久久宅男i | 五月婷婷影院 | 蜜桃精品久久久久久久免费影院 | 精品伊人 | 黄色污在线观看 | 女大学生的家政保姆初体验 | 白白色免费视频 | 欧美福利在线观看 | 超碰国产在线观看 | 91久久视频 |