[wbia 2.2] 对检索结果进行评估
評(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ì)比排名。
接下來詳細(xì)說明下,是怎么使用各個(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)頁。人工對(duì)100個(gè)網(wǎng)頁,對(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)頁進(jìn)行索引。
對(duì)選擇的5個(gè)query,進(jìn)行查詢,得到rank的結(jié)果。
1.2接下來,我們就可以進(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ì)全局爬下來的數(shù)據(jù)進(jìn)行檢索。
輸入5個(gè)query后,得到的top10 結(jié)果。對(duì)10個(gè)頁面結(jié)果,進(jìn)行3個(gè)等級(jí)的區(qū)分:Good(好)、Fair(一般)、 Bad(差),
標(biāo)注后,得到每個(gè)頁面得分。根據(jù)DCG的定義,分別計(jì)算出DCG值。但是和上面遇到的問題一樣,不同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ì)算。
來源于:wbia 課件
n 精度Precision P = tp/(tp + fp)
n 召回率Recall R = tp/(tp + fn)
Rank P/R 計(jì)算
2,DCG,NDCG計(jì)算。
來源于 http://hi.baidu.com/jasonlyy/blog/item/60614c487685983f09f7efe7.html
CG并不考慮在搜索結(jié)果頁面中結(jié)果的位置信息,它是在這個(gè)搜索結(jié)果list里面所有的結(jié)果的等級(jí)對(duì)應(yīng)的得分的總和。如一個(gè)搜索結(jié)果list頁面有P個(gè)結(jié)果,CG被定義為:
reli是 第i位結(jié)果的得分。CG的統(tǒng)計(jì)并不能影響到搜索結(jié)果的排序,CG得分高只能說明這個(gè)結(jié)果頁面總體的質(zhì)量比較高并不能說明這個(gè)算法做的排序好或差。什么是好 的排序?也就是說要把Good的結(jié)果排到Fair結(jié)果上面、Fair結(jié)果排到Bad結(jié)果上面,如果有Bad的結(jié)果排在了Good上面,那當(dāng)然排序就不好 了。到底排序好不好,需要一個(gè)指標(biāo)來衡量,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é)果頁面的貢獻(xiàn)值是 相對(duì)排在第一位那個(gè)結(jié)果來得小的。
DCG的思想是等級(jí)比較高的結(jié)果卻排到了比較后面,那么在統(tǒng)計(jì)分?jǐn)?shù)時(shí),就應(yīng)該對(duì)這個(gè)結(jié)果的得分有所打折。一個(gè)有p(P≥2)個(gè)結(jié)果的搜索結(jié)果頁面的DCG定義為:
為什么要用以2為底的對(duì)數(shù)函數(shù)?這個(gè)并沒有明確的科學(xué)依據(jù),大概是根據(jù)大量的用戶點(diǎn)擊與其所點(diǎn)寶貝的位置信息,模擬出一條衰減的曲線。
那么上例中的數(shù)字如右圖所示:
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值就沒有辦法來做對(duì)比。
定義:
IDCG(ideal DCG),就是理想的DCG。IDCG如何計(jì)算?首先要拿到搜索的結(jié)果,人工對(duì)這些結(jié)果進(jìn)行排序,排到最好的狀態(tài)后,算出這個(gè)排列下本query的DCG,就是IDCG。
因?yàn)閚DCG是一個(gè)相對(duì)比值,那么不同的query之間就可以通過比較nDCCG來決定哪個(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)化空間。
轉(zhuǎn)載于:https://www.cnblogs.com/goodness/archive/2012/04/16/2452800.html
總結(jié)
以上是生活随笔為你收集整理的[wbia 2.2] 对检索结果进行评估的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python模块学习——tempfile
- 下一篇: SQL Server 跨网段(跨机房)复