learning to rank评价指标
文章目錄
- 1 準確率Mean average precision
- 1.1 定義
- 1.2 計算
- 2 NDCG(Normalized Discounted Cumulative Gain)
- 2.1定義
- 2.2 例子
1 準確率Mean average precision
1.1 定義
Precision at position k (P@k)是一個衡量排名前k位的方法,使用兩個級別(相關的和不相關)的相關性判斷。公式:
P@k=1k∑j=1krjP@k=\dfrac{1}{k}\sum^{k}_{j=1}r^jP@k=k1?∑j=1k?rj
k是一個截斷位置
rj=1r_j=1rj?=1,如果第j個位置的文檔是相關的。
rj=0r_j=0rj?=0,否則。
平均準確率 average precision
AP=1∣D+∣∑j=1NrjP@jAP = \dfrac{1}{|D_+|}\sum^{N}_{j=1}r_j P@jAP=∣D+?∣1?∑j=1N?rj?P@j
∣D+∣|D_+|∣D+?∣是關于查詢的相關文檔的數量,也可以認為相當于相當查詢的標準答案的相關文檔數量。
j是排序后的文檔結果。
一般來說會有很多個query參與到訓練集中。所以要取平均值: Mean average precision。
這個評價指標是基于二維的:相關、不相關。
1.2 計算
舉個例子,現有一個query,與之相關的文檔有4——D1,D2,D3,D4,用rank方法檢索后,D2,D3,D4的排序分別是1,3,5,D1沒有搜索到。也就是說rank后的結果:D2,D5,D3,D6,D4。D5,D6是不相關文檔。
那么AP = 14\dfrac{1}{4}41?(P@1+P@3+P@5)
P@1=11=1P@1=\dfrac{1}{1}=1P@1=11?=1
P@3=23P@3=\dfrac{2}{3}P@3=32?,k=3,從1到3,相關文檔有2個。
P@5=35P@5=\dfrac{3}{5}P@5=53?,k=5,從1到5,相關文檔有3個。
那么AP = (1/1 + 2/3 + 3/5)/ 4=0.57
2 NDCG(Normalized Discounted Cumulative Gain)
2.1定義
NDCG(Normalized Discounted Cumulative Gain) 歸一化折損累計增益。
NDCG@k=DCG@kIDCG@kNDCG@k=\dfrac{DCG@k}{IDCG@k}NDCG@k=IDCG@kDCG@k?
DCG@K=∑j=1kg(rj)d(j)DCG@K=\sum^k_{j=1}g(r_j)d(j)DCG@K=∑j=1k?g(rj?)d(j), g(rj)=2rj?1g(r_j)=2^{r_j}-1g(rj?)=2rj??1,
d(j)=1,2d(j)=1,2d(j)=1,2,j=1,2
d(j)=1log2(j)d(j)=\dfrac{1}{log_2(j)}d(j)=log2?(j)1?,其他情況
也有一種寫法是:DCG@K=∑j=1k2rj?1log2(j+1)DCG@K=\sum^k_{j=1}\dfrac{2^{r_j}-1}{log_2(j+1)}DCG@K=∑j=1k?log2?(j+1)2rj??1?
這個計算公式可以針對多種分類級別。例如rj=3,2,1,0r_j=3,2,1,0rj?=3,2,1,0。而且是包含了位置影響因素。相關性高的,排在前面會使得整體NDCG分值變大。
IDCG@k為理想情況下最大的DCG值:
IDCG@k=∑j=1k2ideali?1log2(j+1)IDCG@k=\sum^{k}_{j=1}\dfrac{2^{ideal_i}-1}{log_2(j+1)}IDCG@k=∑j=1k?log2?(j+1)2ideali??1?
2.2 例子
假設對于某一個query,本次搜索召回5個文檔,其關聯分數分別為 3、2、3、0、1、2。
| 1 | 3 | 1 | 3 |
| 2 | 2 | 1.58 | 1.26 |
| 3 | 3 | 2 | 1.5 |
| 4 | 0 | 2.32 | 0 |
| 5 | 1 | 2.58 | 0.38 |
| 6 | 2 | 2.8 | 0.71 |
所以 DCG = 3+1.26+1.5+0+0.38+0.71 = 6.86
接下來計算IDCG。假設這個query的相關文檔有6個,相關性分數為:3、3、3、2、2、1。
| 1 | 3 | 1 | 3 |
| 2 | 3 | 1.58 | 1.89 |
| 3 | 3 | 2 | 1.5 |
| 4 | 2 | 2.32 | 0.86 |
| 5 | 2 | 2.58 | 0.77 |
| 6 | 1 | 2.8 | 0.35 |
所以IDCG = 3+1.89+1.5+0.86+0.77+0.35 = 8.37
最終 NDCG@6 = 6.86/8.37 = 81.96%
參考鏈接:https://www.cnblogs.com/by-dream/p/9403984.html https://blog.csdn.net/zimohuakai/article/details/6847453
《LETOR: A benchmark collection for research on learning to rank for information retrieval》
總結
以上是生活随笔為你收集整理的learning to rank评价指标的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 改变Fragment的默认动画
- 下一篇: 15. 3Sum-数组