Mean Average Precision (MAP)
$AP=\frac {\sum_{j=1}^{n_i}P(j)\cdot y_{i,j}}{\sum_{j=1}^{n_i}y_{i,j}}$
其中,$y_{i,j}$: 排序中第j个元素对于查询i是否是相关的;相关为1,不相关为0。
$P(j)=\frac {\sum_{k:\pi_{i}(k)\leq\pi_{i}(j)} y_{i,k}}{\pi_{i}(j)}$
其中,$\pi_{i}(j)$为J的排序位置。
例如:
rank_no | 是否相关 |
---|---|
1 | 1 |
2 | 0 |
3 | 1 |
4 | 0 |
5 | 1 |
6 | 0 |
则根据AP计算公式: $AP=(1*1 + (1/2) *0+ (2/3)*1 + (2/4)*0 + (3/5)*0 + (3/6)*0) /3$
AP的最大值是1,MAP就是对所有user求均值。
Mean Reciprocal Rank (MRR)
$MRR=\frac{1}{\mid Q \mid} \sum_{i=1}^{\mid Q \mid} \frac{1}{rank_i}$
其中|Q|是查询个数,ranki是第i个查询,第一个相关的结果所在的排列位置。
例如:
Query | Result | Correct response | Rank | Reciprocal rank |
---|---|---|---|---|
cat | catten,cati,cats | cats | 3 | 1/3 |
tori | torii,tori,toruses | tori | 2 | 1/2 |
virus | viruses,virii,viri | viruses | 1 | 1 |
对于三个查询,每个查询的ranki分别为3、2、1。所以,MRR=1/3∗(1/3+1/2+1/1)