ACG(@R)指标

Notes

检索中常用几种评价指标:

ACG(Average Cumulative Gain)支持多值相似度(multi-level similarity)。对于一个检索序列 V,其每个位置的 gain 就是该位置样本与 query 的相似度,例如共同标签数:

G

(

q

,

V

i

)

=

l

q

T

l

i

G(q, V_i)=l_q^Tl_i

G(q,Vi)=lqTli 其中

l

x

l_x

lx 是 x 样本的 label 向量。也可以换成 Jaccard 相似度之类的,如 [3]。CG@k 就是前 k 个位置的 gain 总和(cumulative gain):

C

G

@

k

(

q

,

V

)

=

i

=

1

k

G

(

q

,

V

i

)

CG@k(q, V)=\sum_{i=1}^kG(q,V_i)

CG@k(q,V)=i=1kG(q,Vi) ACG@k 就是 CG@k 对位置求平均:

A

C

G

@

k

(

q

,

V

)

=

1

k

i

=

1

k

G

(

q

,

V

i

)

ACG@k(q,V)=\frac{1}{k}\sum_{i=1}^kG(q,V_i)

ACG@k(q,V)=k1i=1kG(q,Vi) ACG@ALL 好像没有什么意义,因为无论什么排序值都是一样的,配合阈值 k 才有点东西。

Code

# import numpy as np

def ACG(Dist, Rel, k=-1):
    """Average Cumulative Gains"""
    n, m = Dist.shape
    if (k < 0) or (k > m):
        k = m
    Gain = Rel
    Rank = np.argsort(Dist)

    _ACG = 0
    for g, rnk in zip(Gain, Rank):
        _ACG += g[rnk[:k]].mean()
    return _ACG / n

References

  1. IR evaluation methods for retrieving highly relevant documents
  2. Cumulated gain-based evaluation of IR techniques
  3. Deep Supervised Hashing for Multi-Label and Large-Scale Image Retrieval

版权声明:本文为HackerTom原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>