|
評(píng)估對(duì)檢索系統(tǒng)的性能: 由于我們這里的檢索結(jié)果,是主要根據(jù)PageRank的排名,以及Lucene對(duì)文本的分詞和相關(guān)性計(jì)算的最后得分,進(jìn)行權(quán)值調(diào)整后得到的排名結(jié)果。 這里對(duì)我們檢索系統(tǒng)的進(jìn)行性能評(píng)估,這里主要評(píng)估的是檢索結(jié)果排名的質(zhì)量。 由于對(duì)搜索結(jié)果排名的評(píng)估有很多方法和技巧,這里我們可以采用幾個(gè)比較經(jīng)典的評(píng)估方法: 1,對(duì)rank result 計(jì)算P/R值,利用差值法,衡量平均的P/R值。 2,對(duì)rank計(jì)算DCG值,以及NDCG值,得到。 3,利用google的站內(nèi)搜索功能,對(duì)我們自己的排名結(jié)果進(jìn)行對(duì)比排名。 接下來(lái)詳細(xì)說(shuō)明下,是怎么使用各個(gè)評(píng)估方法的。 1,對(duì)rank result 計(jì)算P/R值,利用差值法,衡量平均P/R值。(具體求值方法,見附錄。) 1.1首先,為了得到標(biāo)準(zhǔn)測(cè)試集。我們選擇了5個(gè)有代表性的query,然后在我們抓的數(shù)據(jù)集中隨機(jī)選擇100個(gè) 靜態(tài)網(wǎng)頁(yè)。人工對(duì)100個(gè)網(wǎng)頁(yè),對(duì)5個(gè)關(guān)鍵詞進(jìn)行“相關(guān)/不相關(guān)”的二元標(biāo)注。這樣我們就得到了 標(biāo)準(zhǔn)測(cè)試集。然后我們使用自己設(shè)計(jì)的rank算法,對(duì)這100個(gè)網(wǎng)頁(yè)進(jìn)行索引。 對(duì)選擇的5個(gè)query,進(jìn)行查詢,得到rank的結(jié)果。 1.2接下來(lái),我們就可以進(jìn)行進(jìn)行rank的P/R值計(jì)算了。 分別計(jì)算得到10個(gè)Precision 和 Recall value。這樣我們得到了一連串的PR值, 如何比較query之間的檢索效果,就需要計(jì)算出avgPrec。將Recall里面遞增的值 的prec的平均值。這樣可以評(píng)估不同query間的檢索效果。 1.3對(duì)上面計(jì)算的P/R值,計(jì)算其F1值。利用avgF值也可以得到評(píng)估排名的效果。 2,對(duì)rank計(jì)算DCG值,以及NDCG值,得到。(具體求值方法,見附錄。) 2.1 首先我們選擇出5個(gè)query,然后可以對(duì)全局爬下來(lái)的數(shù)據(jù)進(jìn)行檢索。 輸入5個(gè)query后,得到的top10 結(jié)果。對(duì)10個(gè)頁(yè)面結(jié)果,進(jìn)行3個(gè)等級(jí)的區(qū)分:Good(好)、Fair(一般)、 Bad(差), 標(biāo)注后,得到每個(gè)頁(yè)面得分。根據(jù)DCG的定義,分別計(jì)算出DCG值。但是和上面遇到的問(wèn)題一樣,不同query之間的比較,不能很好 的比較,所以需要就計(jì)算NDCG,歸一化DCG值后,query之間的效果就可以計(jì)算。一定程度上,可以比較方法1,2中的評(píng)估結(jié)果, 看下不同評(píng)估方法之間的效果和側(cè)重點(diǎn)。 3,利用google的站內(nèi)搜索功能,對(duì)我們自己的排名結(jié)果進(jìn)行對(duì)比排名。 google站內(nèi)搜索,是想利用google的搜索結(jié)果,計(jì)算出DCG值,然后和2中的值進(jìn)行比較,查看結(jié)果,分析出現(xiàn)不同估算值的原因和結(jié)果,是否算法客觀評(píng)估了效果,或者算法是否有需要改進(jìn)的地方。 google站內(nèi)搜索,還可以幫助,1中的測(cè)評(píng)中,代替大量人工評(píng)估的相關(guān)性方法,可以假設(shè)google搜出結(jié)果的前n條為相關(guān)性結(jié)果, 然后其余的為不相關(guān),這樣可以得到數(shù)量級(jí)更大的測(cè)試集。 關(guān)于測(cè)試集的獲得,還可以使用人工標(biāo)注的結(jié)果,然后對(duì)其余子集使用分類算法,進(jìn)行相關(guān)性分類。這樣也可以得到數(shù)量級(jí)大的測(cè)試集。 附錄: 1, P/R 值,rank P/R值計(jì)算 , F1值計(jì)算。 來(lái)源于:wbia 課件 n 精度Precision P = tp/(tp + fp) n 召回率Recall R = tp/(tp + fn) Rank P/R 計(jì)算 2,DCG,NDCG計(jì)算。 來(lái)源于 http://hi.baidu.com/jasonlyy/blog/item/60614c487685983f09f7efe7.html CG并不考慮在搜索結(jié)果頁(yè)面中結(jié)果的位置信息,它是在這個(gè)搜索結(jié)果list里面所有的結(jié)果的等級(jí)對(duì)應(yīng)的得分的總和。如一個(gè)搜索結(jié)果list頁(yè)面有P個(gè)結(jié)果,CG被定義為: reli是 第i位結(jié)果的得分。CG的統(tǒng)計(jì)并不能影響到搜索結(jié)果的排序,CG得分高只能說(shuō)明這個(gè)結(jié)果頁(yè)面總體的質(zhì)量比較高并不能說(shuō)明這個(gè)算法做的排序好或差。什么是好 的排序?也就是說(shuō)要把Good的結(jié)果排到Fair結(jié)果上面、Fair結(jié)果排到Bad結(jié)果上面,如果有Bad的結(jié)果排在了Good上面,那當(dāng)然排序就不好 了。到底排序好不好,需要一個(gè)指標(biāo)來(lái)衡量,DCG就是這樣的一個(gè)指標(biāo)。 上面的例子CG=3+2+1+3+2=11,如果調(diào)換第二個(gè)結(jié)果和第三個(gè)結(jié)果的位置CG=3+1+2+3+2=11,并沒有改變總體的得分。 Discounted Cumulative Gain 在一個(gè)搜索結(jié)果list里面,比如有兩個(gè)結(jié)果的打分都是Good,但是有一個(gè)是排在第1位,還 有一個(gè)是排在第40位,雖然這兩個(gè)結(jié)果一樣都是Good,但是排在第40位的那個(gè)結(jié)果因?yàn)楸挥脩艨吹降母怕适潜容^小的,他對(duì)這整個(gè)搜索結(jié)果頁(yè)面的貢獻(xiàn)值是 相對(duì)排在第一位那個(gè)結(jié)果來(lái)得小的。 DCG的思想是等級(jí)比較高的結(jié)果卻排到了比較后面,那么在統(tǒng)計(jì)分?jǐn)?shù)時(shí),就應(yīng)該對(duì)這個(gè)結(jié)果的得分有所打折。一個(gè)有p(P≥2)個(gè)結(jié)果的搜索結(jié)果頁(yè)面的DCG定義為: 為什么要用以2為底的對(duì)數(shù)函數(shù)?這個(gè)并沒有明確的科學(xué)依據(jù),大概是根據(jù)大量的用戶點(diǎn)擊與其所點(diǎn)寶貝的位置信息,模擬出一條衰減的曲線。 DCG=3+(1+1.26+1.5+0.86)=7.62 DCG的公式另外一種表達(dá)式是: 這個(gè)表達(dá)式在一些搜索文檔中經(jīng)常會(huì)被提到,他的作用和之前的那個(gè)公式一樣,但是這個(gè)公式只適合打分分兩檔的評(píng)測(cè)。 nDCG(normalize DCG) 因?yàn)椴煌琿uery的搜索結(jié)果有多有少,所以不同query的DCG值就沒有辦法來(lái)做對(duì)比。 定義: IDCG(ideal DCG),就是理想的DCG。IDCG如何計(jì)算?首先要拿到搜索的結(jié)果,人工對(duì)這些結(jié)果進(jìn)行排序,排到最好的狀態(tài)后,算出這個(gè)排列下本query的DCG,就是IDCG。 因?yàn)閚DCG是一個(gè)相對(duì)比值,那么不同的query之間就可以通過(guò)比較nDCCG來(lái)決定哪個(gè)query的排序比較好。 例子中,理想的排序應(yīng)該是3 、3 、2 、2 、1,那么IDCG=3+3+1.26+1+0.43=8.69 nDCG=DCG/IDCG=7.62/8.69=0.88,從nDCG這個(gè)值可以看出目前算法存在的優(yōu)化空間。 |
|
|