搜索引擎质量指标(nDCG)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LintaoD/article/details/82661206

检索中搜索引擎质量指标

1. DCG(Discounted Cumulative Gain)

1.1 介绍

  衡量搜索引擎 rank 质量指标(DCG – Discounted Cumulative Gain),在信息检索中,它通常用于衡量 Web搜索引擎算法或相关应用程序的有效性。DCG 在搜索引擎结果集中使用文档的相关性评分,根据文档在结果列表中的位置来衡量文档的有用性或增益。增益从结果列表的顶部累积到底部,每个结果的增益在较低的等级上要进行打折。
  搜索引擎一般采用 PI(per item)的方式进行评测,简单地说就是逐条对搜索结果进行分等级的打分。假设我们现在在 Google 上搜索一个词,然后得到5个结果。我们对这些结果进行3个等级的区分:Good(好)、Fair(一般)、Bad(差),然后赋予他们分值分别为3、2、1,假定通过逐条打分后,得到这5个结果的分值分别为3、2 、1 、3、 2

  • 使用DCG及其他相关测量标准做出了两个假设:
    1. 在搜索引擎结果列表中较早出现(具有较高排名)时,高度相关的文档会更有用
    2. 在PI标注时,等级高的结果比等级低的结果好,即Good要比Fair好、Fair要比Bad好

1.2 CG(Cumulative Gain)

  DCG这个概念是从(CG)Cumulative Gain这个概念发展起来的,CG并不考虑在搜索结果页面中结果的位置信息,它是在这个搜索结果 list 里面所有的结果的等级对应的得分的总和。如一个搜索结果 list 页面有 p 个结果,CG被定义为:

C G P = i = 1 p r e l i

r e l i 是第 i 位结果的得分,CG 的统计并不能影响到搜索结果的排序,CG 得分高只能说明这个结果页面总体的质量比较高并不能说明这个算法做的排序好或差。什么是好的排序?也就是说要把 Good 的结果排到 Fair 结果上面、Fair 结果排到 Bad 结果上面,如果有 Bad 的结果排在了 Good 上面,那当然排序就不好了。到底排序好不好,需要一个指标来衡量,DCG就是这样的一个指标。

1.3 DCG

  在一个搜索结果 list 里面,比如有两个结果的打分都是 Good,但是有一个是排在第1位,还有一个是排在第40位,虽然这两个结果一样都是Good,但是排在第40位的那个结果因为被用户看到的概率是比较小的,他对这整个搜索结果页面的贡献值是相对排在第一位那个结果来得小的

  DCG 的思想是等级比较高的结果却排到了比较后面,那么在统计分数时,就应该对这个结果的得分有所打折。一个有 p(p ≥ 2)个结果的搜索结果页面的DCG定义为:

D C G P = i = 1 p r e l i l o g 2 ( i + 1 ) = r e l 1 + i = 2 p r e l i l o g 2 ( i + 1 )

  早先,使用以2为低的对数函数除了能获得一个平滑的减少之外,没有任何理论上的言论来证明。 但是王等人。 为在 NDCG 中使用对数缩减因子提供理论保证。作者指出,对于每一对完全不同的排序函数,NDCG可以以一致的方式决定哪一个更好。

  • DCG 的另一种定义更强调检索文档的相关性:

D C G P = i = 1 p 2 r e l i 1 l o g 2 ( i + 1 )

  后一种公式通常用于工业,包括主要的网络搜索公司和数据科学竞争平台,如Kaggle。
  当文档的相关性值为二进制时,这两种DCG表达式是相同的;即 r e l i { 0 , 1 }
注意,上述两个版本的DCG都使用了底为2的对数。当用DCG的第二个公式计算NDCG时,日志的基数无关紧要,但 log 的基数确实会影响第一个公式的NDCG值。 显然,对数的基数会影响两种公式中DCG的值。

1.4 Normalized DCG

  搜索 result 列表的长度取决于 query,所以将一个query查询与下一个query查询进行比较来决定搜索引擎的性能不能单独使用 DCG 来实现,因为 result 列表长度都不一定相同,所以 CG 对于每个结果的评分应该根据所有query进行标准化,这是通过按语料库的相对相关性对语料库中的所有相关文档进行排序来完成的,通过位置 p 产生最大可能的 DCG,也称为通过该位置的理想DCG(IDCG)。 对于一个query,nDCG计算如下:

n D C P P = D C G P I D C G P

  • IDCG(ideal discounted cumulative gain)

I D C G P = i = 1 | R E L | 2 r e l i 1 l o g 2 ( i + 1 )

  • | R E L | 代表语料库中直到位置 p 的相关文档

    emsp; 可以对所有查询的 nDCG 值进行平均,以获得搜索引擎排名算法的平均性能的度量。注意到一个完美的rank算法中, I D C G P 等于 D C G P ,此时的nDCG值为1;所以nDCG的值是介于0-1之间的,所以可以用来query间的查询比较
    emsp; 使用nDCG时遇到的主要困难是当只有部分相关性反馈可用时,不能获得理想的结果排序

1.5 Example

  标注响应于搜索query的文档列表的评分,要求实验参与者判断每个文档与查询的相关性。 每个文档的评分范围为0-3,0表示不相关,3表示高度相关,1和2表示“介于两者之间”。对于 rank 算法给出的文档:

D 1 , D 2 , D 3 , D 4 , D 5 , D 6

  用户给的评分是:
3 , 2 , 3 , 0 , 1 , 2

  即:文档1的相关性为3,文档2的相关性为2,等等。此搜索结果列表的累积收益为:
C G 6 = i = 1 6 r e l i = 3 + 2 + 3 + 0 + 1 + 2 = 11

  更改任何两个文档的顺序不会影响 CG 度量。 如果切换 D 3 D 4 ,则CG保持不变,还是11。DCG用于强调在 result 列表中早期出现的高度相关的文档。 使用对数标度进行简化,每个结果的DCG顺序为:

i r e l i l o g 2 ( i + 1 ) r e l i l o g 2 ( i + 1 )
1 3 1 3
2 2 1.585 1.262
3 3 2 1.5
4 0 2.322 0
5 1 2.585 0.387
6 2 2.807 0.712

  所以这个rank算法的DCG_6是:

D C G 6 = i = 1 6 r e l i l o g 2 ( i + 1 ) = 3 + 1.262 + 1.5 + 0 + 0.387 + 0.712 = 6.861

  现在, D 3 D 4 的切换导致DCG减少,因为较不相关的文档在排名中较高; 也就是说,更相关的文档通过置于较低级别而被更多地打折扣。
  此rank算法对此query的表现和对另一个query的表现是不能通过 DCG 来衡量的,因为另一个query可能会有更多的result,从而增加 DCG,所以必须对DCG的值进行标准化
  要规范化DCG值,需要给定query的理想排序。对于这个例子,该排序应该是所有已知相关判断的单调递减类型,除了此实验中的6个,假设我们还知道有一个文档 D 7 ,相关等级为 3,
还有一个文档 D 8 ,相关等级为 2,理想排序后:
3 , 3 , 3 , 2 , 2 , 2 , 1 , 0

  IDCG是:
I D C G 6 = 8.740

  nDCG的值为:
n D C G 6 = D C G 6 I D C G 6 = 6.861 8.740 = 0.785

1.6 局限

  1. 规范化的DCG度量标准不会对结果中的错误文档造成不利影响。 例如,如果查询分别返回两个分数为1,1,1和1,1,1,0的结果,则即使后者包含错误文档,两者也会被视为同样好。 对于 rank 判断优秀,公平,糟糕的人可能会使用数字分数1,0,-1而不是2,1,0。这时如果返回错误结果,将会使分数降低,此时考虑的是结果的精度而不是召回率。注意此方法可能会导致总体负分。
  2. 归一化的DCG不会对结果中丢失的文档进行处罚。 例如,如果一个查询分别返回两个分数为1,1,1和1,1,1,1,1的结果,则两者都被视为同样好,但是理想的DCG计算前者的等级为3和计算后者的等级为5。 考虑此限制的一种方法是强制固定result集的大小,缺失文档要使用最小分数。 在前面的例子中,我们将使用分数1,1,1,0,0和1,1,1,1,1并将nDCG引用为 nDCG@5。
  3. nDCG可能不适合于测量通常具有几个同样好的结果的query的性能。 当result集大小确定时,如果不够大,则会导致所有结果评分一样,即使后面的结果更好
## 2. PR(Precision Recall)   R(recall)表示召回率、查全率,指查询返回结果中相关文档占所有相关文档的比例;P(precision)表示准确率、精度,指查询返回结果中相关文档占所有查询结果文档的比例;
P r e c i s i o n = T r u e P o s i t i v e s T r u e P o s i t i v e s + F a l s e P o s i t i v e s
R e c a l l = T r u e P o s i t i v e s T r u e P o s i t i v e s + F a l s e N e g a t i v e s
  一般来说,Recall 和 Precision 反映了模型性能的两个方面,单一依靠某个指标并不能较为全面的评价一个模型的性能。   此时引入 F-Score/F-measure 作为综合指标,平衡 recall 和 precision 的影响,较为全面的评价一个模型
F β = ( 1 + β 2 ) P r e c i s i o n R e c a l l β 2 P r e c i s i o n + R e c a l l
  其中,F1-Score 表示准确率和召回率一样重要;F2-Score 表示召回率比准确率重要一倍;F0.5-Score 表示准确率比召回率重要一倍。
image1

3. MAP

  对 PR 曲线进行积分求曲线下方的面积,就是 AP(Average Precision),即:

A P = 0 1 p ( r ) d r

  其中,p 表示 Precision,r 表示 Recall,p 是一个以 r 为参数的函数,AP 的计算是对排序位置敏感的,相关文档排序的位置越靠前,检索出相关的文档越多,AP 值越大。

  近似计算约等于 AAP(Aproximate Average Precision):

A A P = k = 1 N p ( k ) Δ r ( k ) = k = 1 N p ( k ) r e l ( k ) N u m b e r O f R e l e v a n t D o c u m e n t s

  其中, N 代表所有相关文档的总数, p ( k ) 表示能检索出 k 个相关文档时的 Precision 值,而 Δ r ( k ) 则表示检索相关文档个数从 k-1 变化到 k 时(通过调整阈值)Recall 值的变化情况。

r e l ( k ) 表示第 k 个文档是否相关,若相关则为1,否则为0,则可以简化公式为:

A P = 1 N i = 1 N i p o s i t i o n ( i )

  其中,N 表示相关文档总数,position(i) 表示第 i 个相关文档在检索结果列表中的位置。
  MAP(Mean Average Precision)即多个查询的平均正确率(AP)的均值,从整体上反映模型的检索性能。

  • 下面举一个例子来说明上述公式的计算:
    • 查询 query1 对应总共有4个相关文档,查询 query2 对应总共有5个相关文档。当通过模型执行查询1、2时,分别检索出4个相关文档(Rank=1、2、4、7)和3个相关文档(Rank=1、3、5)
    • q u e r y 1 A P = ( 1 / 1 + 2 / 2 + 3 / 4 + 4 / 7 ) / 4 = 0.83 q u e r y 2 A P = ( 1 / 1 + 2 / 3 + 3 / 5 + 0 + 0 ) / 5 = 0.45 ,最后 MAP=(0.83+0.45)/2=0.64

4. ERR

4.1 RR(Reciprocal Rank)

  倒数排名,指检索结果中第一个相关文档的排名的倒数

R R = 1 r a n k i

r a n k i 代表检索结果中第一个匹配文档的 i n d e x

4.2 MRR(Mean Reciprocal Rank)

  多个查询的倒数排名的均值,公式如下:

M R R = 1 | N | i = 1 | N | 1 r a n k i

r a n k i 代表检索结果中第一个匹配文档的 i n d e x

4.3 Cascade Model(瀑布模型)

  点击模型中的瀑布模型,考虑到在同一个检索结果列表中各文档之间的位置依赖关系,假设用户从上至下查看,如果遇到某一检索结果项满意并进行点击,则操作结束;否则跳过该项继续往后查看。第 i 个位置的文档项被点击的概率为:

P ( C i ) = r i j = 1 i 1 ( 1 r j )

  其中 r i 表示第 i 个文档被点击的概率,前 i - 1 个文档则没有被点击,概率均为 1 r j

4.4 ERR(Expected Reciprocal Rank)

  预期的倒数排名,表示用户的需求被满足时停止的位置的倒数的期望,与 RR 计算第一个相关文档的位置倒数不同。
  首先用户在位置 r 处停止的概率 P P r 计算公式如下:

P P r = i = 1 r 1 ( 1 R i ) R r

  其中 R i 是关于文档相关度等级的函数,现假设该函数为:
R i = R ( g i ) = 2 g 1 2 g m a x , g { 0 , 1 , . . . , g m a x }

  当文档是不相关的(g=0),则用户检索到相关文档的概率为0;而当文档极其相关(g=4,如果相关度划分5个等级)时,用户检索到相关文档的概率接近于1。上面公式中的 g 表示文档的相关度,参考 NDCG 中的 rel。
  更通用一点来讲,ERR 不一定是计算用户需求满足时停止的位置的倒数的期望,它可以是基于位置的函数
E R R = r = 1 n φ ( r ) P P r = r = 1 n 1 r P P r = r = 1 n 1 r i = 1 r 1 ( 1 R i ) R r

  可以看出,当 φ(r)=1/r 时就是 ERR,当 φ(r)=1/log2(r+1) 就是DCG。

猜你喜欢

转载自blog.csdn.net/LintaoD/article/details/82661206