Metrics

54 阅读1分钟
  • 查询(Query):matrix movies
  • 相关文档(Relevant):10, 582, 877, 10003(标记为 REL)

Precision (P@k)

P@kP@k 是指对于某个查询的给定结果列表中,前 kk 个文档里相关文档所占的百分比。

  • 结果列表(Result list):582, 17, 5666, 10003, 10
P@kValue
P@11/1 = 100%
P@21/2 = 50%
P@31/3 = 33%
P@42/4 = 50%
P@53/5 = 60%

Average Precision (AP)

R1R_1, ..., RkR_k 是给定查询结果列表中相关文档的排序位置列表,那么 AP(平均精度,Average Precision)是 kkP@RiP@R_i 值的平均值。

  • 结果列表(Result list):582, 17, 5666, 10003, 10, ..., 877(其中 582、10003、10、877 是相关文档)

  • 相关文档的位置(R1R_1, ..., R4R_4:1, 4, 5, 40(表示相关文档在结果列表中的位置)

  • P@Ri 值

    • P@R1=P@1=1/1=100%P@R1 = P@1 = 1/1 = 100\%(位置 1 有 11 个相关文档,共 11 个文档)

    • P@R2=P@4=2/4=50%P@R2 = P@4 = 2/4 = 50\%(位置 4 有 22 个相关文档,共 44 个文档)

    • P@R3=P@5=3/5=60%P@R3 = P@5 = 3/5 = 60\%(位置 5 有 33 个相关文档,共 55 个文档)

    • P@R4=P@40=4/40=10%P@R4 = P@40 = 4/40 = 10\%(位置 40 有 44 个相关文档,共 4040 个文档)

  • AP(平均精度)AP=(100%+50%+60%+10%)/4=55%AP = (100\% + 50\% + 60\% + 10\%) / 4 = 55\%

Mean Precisions (MP@k, MP@R, MAP)

给定一个包含多个查询的基准测试(benchmark)以及对应的真实结果(ground truth)。通过计算某个度量标准在所有查询上的平均值,可以评估系统的整体质量。

  • 均值精度(Mean Precisions)
    • MP@k:所有查询的 P@k 值的均值(平均值)。
    • MP@R:所有查询的 P@R 值的均值(平均值)。
    • MAP(Mean Average Precision,平均平均精度):所有查询的 AP 值的均值(平均值)。

Discounted Cumulative Gain

有时相关性(relevance)不仅仅是“是”或“否”,而是有不同层次。例如:

  • 0 = 不相关
  • 1 = 有些相关
  • 2 = 非常相关

为了评估检索结果,相关性得分应该考虑位置因素:越靠前的相关文档应该贡献更高的得分,而靠后的相关文档得分应“折损”(discount)。

  • 累积增益(Cumulative Gain, CG:前 kk 个文档的相关性得分之和。

    CG@k=i=1kreli\begin{align} \mathrm{CG}@k = \sum_{i = 1}^{k} \mathrm{rel}_i \end{align}
  • 折损累积增益(Discounted Cumulative Gain, DCG:通过对位置 ii 应用 log2(i+1)\log_{2}(i + 1) 进行折损,确保靠后位置的相关性得分降低。

    DCG@k=i=1krelilog2(i+1)=rel1+i=2krelilog2(i+1)\begin{align} \mathrm{DCG}@k &= \sum_{i = 1}^{k} \frac{\mathrm{rel}_{i}} {\log_{2}(i + 1)}\\ &=\mathrm{rel}_{1} + \sum_{i = 2}^{k} \frac{\mathrm{rel}_{i}} {\log_{2}(i+1)} \end{align}

​ 问题:CG DCG 的大小依赖于结果列表的长度和相关性分数的分布,因此需要归一化。

  • 理想 DCG(Ideal DCG, iDCGiDCG@k 是理想排序(所有相关文档按相关性从高到低排序)下的 DCG@k 值,即最大可能得分。

  • 归一化 DCG(Normalized DCG, nDCG):通过除以理想 DCG 进行归一化,使得分范围在 0011 之间,便于比较不同查询或系统的性能

    nDCG@k=DCG@kiDCG@k\begin{align} \mathrm{nDCG}@k = \frac{\mathrm{DCG}@k}{\mathrm{iDCG}@k} \end{align}

    【Example】:考虑一个包含 55 个文档的结果列表(前 55 个文档),并假设该查询只有 33 个相关文档(Hit #1、Hit #2 和 Hit #3)。相关性评分(relevance)如下

    • Hit #1:非常相关(2)
    • Hit #2:相关(1)
    • Hit #3:不相关(0)
    • Hit #4:非常相关(0)
    • Hit #5:不相关(0)
  • DCG@5 :

    • i=1i = 1, rel1=2\mathrm{rel}_1 = 2 : 2log22=2\frac{2}{\log_{2}2} = 2
    • i=2i = 2 , rel2=1\mathrm{rel}_2 = 1 : 2log2311.585=0.6309\frac{2}{\log_{2}3} ≈ \frac{1}{1.585} = 0.6309
    • i=3i = 3 , rel3=0\mathrm{rel}_3 = 00log24=0\frac{0}{\log_{2}4} = 0
    • i=4i = 4 , rel4=2\mathrm{rel}_4 = 20log25=0\frac{0}{\log_{2}5} = 0
    • i=5i = 5 , rel5=0\mathrm{rel}_5 = 00log26=0\frac{0}{\log_{2}6} = 0

    DCG@5=2+0.6309+0+0+02.6309\mathrm{DCG}@5 = 2 + 0.6309 + 0 + 0 + 0 ≈ 2.6309

  • iDCG@5 : 理想排序是将相关性最高的文档放在最前面,相关文档按相关性排序为:rel=2,1,0\mathrm{rel} = 2, 1, 0(其余为 0)

    • i=1i = 1, rel1=2\mathrm{rel}_1 = 2 : 2log22=2\frac{2}{\log_{2}2} = 2
    • i=2i = 2 , rel2=1\mathrm{rel}_2 = 1 : 2log2311.585=0.6309\frac{2}{\log_{2}3} ≈ \frac{1}{1.585} = 0.6309
    • i=3i = 3 , rel3=0\mathrm{rel}_3 = 00log24=0\frac{0}{\log_{2}4} = 0
    • i=4i = 4 , rel4=2\mathrm{rel}_4 = 20log25=0\frac{0}{\log_{2}5} = 0
    • i=5i = 5 , rel5=0\mathrm{rel}_5 = 00log26=0\frac{0}{\log_{2}6} = 0

    iDCG@5=2+0.6309+0+0+02.6309\mathrm{iDCG}@5 = 2 + 0.6309 + 0 + 0 + 0 ≈ 2.6309

  • nDCG@5

    nDCG@5=DCG@5iDCG@52.63092.6309=1.0\mathrm{nDCG}@5 = \frac{\mathrm{DCG}@5}{iDCG@5} ≈ \frac{2.6309}{2.6309} = 1.0

Binary Preference (bpref)

在某些情况下,我们只能为文档的一个子集提供相关性判断(relevance judgments),因为检查所有文档以确定其相关性是不可行的。

那么衡量被判断为相关的文档是否排在被判断为不相关的文档之前。

二元偏好(bpref)

  • bpref 是一种度量,用于评估只有 部分文档 被判断相关性的情况。

  • bpref 旨在通过比较相关文档和不相关文档的排名位置,评估检索系统的性能,尤其适用于相关性判断不完整的场景

    bpref=1\absRrRR(1\absNR(r)min(\absR,\absN))\begin{align} \mathrm{bpref} = \frac{1}{\abs{R}} \cdot \sum_{r \in RR} (1 - \frac{\abs{NR(r)}}{\min(\abs{R}, \abs{N})}) \end{align}

    其中:

    • R : 判断为相关的文档集合(judged relevant documents)
    • N : 判断为不相关的文档集合(judged non-relevant documents)
    • RR : 结果列表中相关文档集合 (docs from R in result list)
    • NR(r) : 结果列表中排在相关文档 rr 之前的已判断为不相关的文档(从 N 中排在 rr 之前的文档)

【Example】:考虑一个结果列表和对应的相关性判断,假设总共有 99 个文档,但只有 77 个文档被做了检查。

结果列表:

  • #1:判断为相关(judged relevant)
  • #2:未判断(not judged)
  • #3:未判断(not judged)
  • #4:判断为不相关(judged not relevant)
  • #5:判断为相关(judged relevant)

未在结果列表:

  • AA: 判断为相关,
  • XX, YY, ZZ : 判断为不相关

定义集合

  • R : 判断为相关的文档集合 : R={#1,#5,A}\absR=3R =\{\#1, \#5, A\} \quad \Rightarrow \quad \abs{R} = 3
  • N : 判断为不相关的文档集合 : N={X,Y,Z,#4}\absN=4N = \{X, Y, Z, \#4 \} \quad \Rightarrow \quad \abs{N} = 4
  • RR: 结果列表中相关文档集合 : RR={#1,#5}RR =\{\#1, \#5\}
  • NR(r) = 排在相关文档 r 之前的已判断为不相关的文档。
    • NR(Hit #1)=\absNR(Hit #1)=0NR(\text{Hit \#1} ) = \empty \quad \Rightarrow \quad \abs{NR(\text{Hit \#1})} =0
    • NR(Hit #5)={#4}\absNR(Hit #5)=1NR(\text{Hit \#5} ) = \{\#4 \}\quad \Rightarrow \quad \abs{NR(\text{Hit \#5})} =1
  • bpref:
    • min(\absR,\absN)=3\min(\abs{R}, \abs{N}) = 3
    • r=#1r = \#1103=11- \frac{0}{3} =1
    • r=#5 r = \#5113=231- \frac{1}{3} =\frac{2}{3}
    • bpref=13(1+23)=59\mathrm{bpref} = \frac{1}{3}(1+\frac{2}{3})= \frac{5}{9}