1. 程式人生 > >IR的評價指標—MAP,NDCG,MRR

IR的評價指標—MAP,NDCG,MRR

轉載自:http://www.cnblogs.com/eyeszjwang/articles/2368087.html

MAP(Mean Average Precision):單個主題的平均準確率是每篇相關文件檢索出後的準確率的平均值。主集合的平均準確率(MAP)是每個主題的平均準確率的平均值。MAP 是反映系統在全部相關文件上效能的單值指標。系統檢索出來的相關文件越靠前(rank 越高),MAP就可能越高。如果系統沒有返回相關文件,則準確率預設為0。
例如:假設有兩個主題,主題1有4個相關網頁,主題2有5個相關網頁。某系統對於主題1檢索出4個相關網頁,其rank分別為1, 2, 4, 7;對於主題2檢索出3個相關網頁,其rank分別為1,3,5。對於主題1,平均準確率為(1/1+2/2+3/4+4/7)/4=0.83。對於主題2,平均準確率為(1/1+2/3+3/5+0+0)/5=0.45。則MAP= (0.83+0.45)/2=0.64。”

NDCG(Normalized Discounted Cumulative Gain):計算相對複雜。對於排在結位置n處的NDCG的計算公式如下圖所示:


在MAP中,四個文件和query要麼相關,要麼不相關,也就是相關度非0即1。NDCG中改進了下,相關度分成從0到r的r+1的等級(r可設定)。當取r=5時,等級設定如下圖所示:


(應該還有r=1那一級,原文件有誤,不過這裡不影響理解)

例如現在有一個query={abc},返回下圖左列的Ranked List(URL),當假設使用者的選擇與排序結果無關(即每一級都等概率被選中),則生成的累計增益值如下圖最右列所示:


考慮到一般情況下使用者會優先點選排在前面的搜尋結果,所以應該引入一個折算因子(discounting factor): log(2)/log(1+rank)。這時將獲得DCG值(Discounted Cumulative Gain)如下如所示:


最後,為了使不同等級上的搜尋結果的得分值容易比較,需要將DCG值歸一化的到NDCG值。操作如下圖所示,首先計算理想返回結果List的DCG值:


然後用DCG/MaxDCG就得到NDCG值,如下圖所示:


MRR(Mean Reciprocal Rank):是把標準答案在被評價系統給出結果中的排序取倒數作為它的準確度,再對所有的問題取平均。相對簡單,舉個例子:有3個query如下圖所示:

Query

Results

Correct response

Rank

Reciprocal rank

cat

catten, cati, cats

cats

3

1/3

torus

torii, tori, toruses

tori

2

1/2

virus

viruses, virii, viri

viruses

1

1


(黑體為返回結果中最匹配的一項)

可計算這個系統的MRR值為:(1/3 + 1/2 + 1)/3 = 11/18=0.61。