搜索引擎(二)-- 预测评价指标

文章目录

  • 一、简介
  • 二、二元检测评估指标
    • 2.1 精确率Precision & 召回率Recall
    • 2.2 PR曲线
    • 2.3 AUC-ROC
    • 2.4 平均精确率AP
    • 2.5 MAP
    • 2.5 综合评价指标
  • 三、连续值的评估指标
    • 3.1 NDCG

一、简介

评价一个搜索引擎,或者说信息回溯的系统的好坏,有许多指标。一般来说,我们会从召回速度和召回功效Effectiveness(准确与否)两个方面来评价。本文将着重基于后者评价一个搜索引擎的好与坏。回溯的准确与否可以是一个True or False的反馈,也可以是一个介于0-1之间相关度的反馈。对于二元反馈,我们可以使用Precision,Recall等指标评价系统功效。对于非二元反馈,我们可以使用NDCG等评价指标。

二、二元检测评估指标

2.1 精确率Precision & 召回率Recall

Precision和Recall是广泛用于统计学的度量值。假设文档集合中的文档在混淆矩阵中可以分为四类:True Positive(被检索且相关的文档),True Negative(未被检索且不相关的文档),False Positive(被检索但不相关的文档),False Negative(未被检索但相关的文档)。

Predict\Actual F T
F TN FN
T FP TP

那么Precision和Recall可以表示为
P r e c i s i o n = T P T P + F P Precision=\dfrac{TP}{TP+FP} Precision=TP+FPTP R e c a l l = T P T P + F N Recall=\dfrac{TP}{TP+FN} Recall=TP+FNTP
除了Precision和Recall,还有Fallout指标,是Recall的反向指标,用于评价不相关的物品有多少被检索。
F a l l o u t = F P T N + F P Fallout=\dfrac{FP}{TN+FP} Fallout=TN+FPFP
在一般搜索引擎中,返回的相关文档是有数量限制的,这个数量 k k k一般可以控制。假设相关文档集合为 R R R,对于一个返回 k k k个文档的推荐系统来说,我们可以用topK指标衡量。
P r e c i s i o n k = ∣ r ∈ R : r ≤ k ∣ k Precision_k=\dfrac{|r\in R: r\le k|}{k} Precisionk=krR:rk R e c a l l k = ∣ r ∈ R ∣ ∣ R ∣ Recall_k=\dfrac{|r\in R|}{|R|} Recallk=RrR

这里特别说一下,在现实搜索引擎中,相关文档集R是很难全部获取的,我们有两种方法进行采样。一种是Sampling,通过在海量文档中提取少部分文档,通过人力筛选出相关的文档;另一种是biased Sampling,在海量文档中使用不同的回溯算法,获取到数个相关文档集合 R 1 , R 2 , … R_1, R_2, \dots R1,R2,,然后将这些相关文档集合取交集 R 1 ∩ R 2 ∩ … R_1\cap R_2\cap \dots R1R2,最后在交集中通过人力筛选出相关的文档。

2.2 PR曲线

一般来说,越高的Precision,其阈值越高,检索到的相关文档占总相关文档数目越少。反之,越低的Precision,其阈值越低,检索到的相关文档占总相关文档数目越多。所以Precision和Recall是一个此消彼长的指标。这里我们可以用k值大小替代阈值的概念(涵盖越少的文档意味着阈值越高),以下图为例,可以直观地观察Recall和Precision值的关系:
搜索引擎(二)-- 预测评价指标_第1张图片
在离散系统中,对某一Recall值,难免有Precision值会缺失,所以一般我们会对PR图进行插值。在Recall值为i的Precision如果缺失,一般就会取下一个Recall值对应的Precision值作为插值。譬如上图,Recall为0.5的Precision值缺失,用Recall=0.6的Precision值0.76作为插值。插值后的PR图如下:
搜索引擎(二)-- 预测评价指标_第2张图片

2.3 AUC-ROC

ROC全称the Receiver Operating Characteristic曲线,它是关于真阳率(TPR)和伪阳率(FPR)的曲线。TPR跟Recall的定义很像,代表正样本中预测为正的样本比例,FPR是负样本中预测为正的样本比例。TPR和FPR可以用混淆矩阵中的定义来表示 T P R = T P T P + F N TPR=\dfrac{TP}{TP+FN} TPR=TP+FNTP F P R = F P F P + T N FPR=\dfrac{FP}{FP+TN} FPR=FP+TNFP这两个指标也跟阈值有关,阈值越高,TP在TP+FN中的占比也越低,FP在FP+TN中的占比越低,随着阈值降低,TP的占比和FP的占比会越来越高,最后FN的值会变为0,因为所有的文档集都被索引到了,所以最终TPR和FPR的值都会逼近1。
ROC曲线就是上述关系的曲线,如下图所示:
搜索引擎(二)-- 预测评价指标_第3张图片
如果模型的ROC为一条(0,0)到(1,1)的直线,意味着模型对真实类别是0还是1的样本,模型预测为1的概率都是一样的,类似于抛硬币,但我们希望在FPR小的同时,TPR能尽量高,在(0,0)-(1,1)上方的面积恰好能代表这个。所以我们用曲线下面积Area Under Curve来衡量预测模型的优劣。AUC的值=对ROC曲线下方的图形的面积,可以通过积分求得。

2.4 平均精确率AP

精确率和召回率只能衡量检索性能的一个方面,最理想的情况下,Recall和Precision都比较高。如何评价这个整体?可以用PR曲线的面积进行计算,求得Precision的期望均值。公式如下:
A P = ∫ 0 1 P ( r ) d r = ∑ k = 1 k = K P r e c i s i o n k ∗ Δ R e c a l l k AP=\int_0^1P(r)dr=\sum_{k=1}^{k=K}Precision_k*\Delta Recall_k AP=01P(r)dr=k=1k=KPrecisionkΔRecallk

2.5 MAP

Mean Average Precision, 顾名思义就是对不同查询的AP值取平均。检测一个搜索引擎的性能,常常会用不同的query对它进行测试,每个测试结果都能计算出一个AP值,把所有AP值取平均就是系统的MAP,即 M A P = ∑ q ∈ Q A P ( q ) ∣ Q ∣ MAP=\dfrac{\sum_{q\in Q}AP(q)}{|Q|} MAP=QqQAP(q)

2.5 综合评价指标

精确率和召回率的相互矛盾性,使得我们需要综合地考虑他们,这里提供两个方法,一个是E-measure,一个是F-score

E-measure表示精确率和召回率的加权平均值,其中一个值为0时,E值为1, α \alpha α为Precision值的权重。E值的计算公式为 E = 1 − 1 α / P + ( 1 − α ) / R E=1-\dfrac{1}{\alpha/P+(1-\alpha)/R} E=1α/P+(1α)/R1

F-score是Precision和Recall的加权调和平均, β \beta β为参数。
F β = ( 1 + β 2 ) P R β 2 ( P + R ) F_\beta=\dfrac{(1+\beta^2)PR}{\beta^2(P+R)} Fβ=β2(P+R)(1+β2)PR
β = 1 \beta=1 β=1时,就是最常见的F1,即
F 1 = 2 P R P + R F_1=\dfrac{2PR}{P+R} F1=P+R2PR

三、连续值的评估指标

在推荐系统中,相关系数常常不是一个二元检测,而是一个评分检测,即每一个document都有相关程度,相关程度在0-1之间。我们搜索引擎的目标不仅仅是要检索相关的文档,也要将相关文档以相关程度降序呈现给用户。

3.1 NDCG

NDCG全称Normalized Discounted Cumulative Gain,在NDCG中文档相关度可以用多个等级进行打分。我们用DCG表示文档相关度和排名之间的关联程度,拥有相关度高的文档应该具有更高的排名,DCG计算公式为 D C G p = ∑ i = 1 p r e l i l o g 2 ( i + 1 ) DCG_p=\sum_{i=1}^p\dfrac{rel_i}{log_2(i+1)} DCGp=i=1plog2(i+1)reli

由于DCG受文档相关度大小的影响,所以我们用Ideal DCG进行正则化,IDCG是对于一个查询语句,DCG能达到的最大值,即 I D C G p = ∑ i = 1 ∣ R E L ∣ 2 r e l i − 1 l o g 2 ( i + 1 ) IDCG_p=\sum_{i=1}^{|REL|}\dfrac{2^{rel_i}-1}{log_2(i+1)} IDCGp=i=1RELlog2(i+1)2reli1
归一化后的DCG值,即NDCG值公式如下: n D C G p = D C G p I D C G p nDCG_p=\dfrac{DCG_p}{IDCG_p} nDCGp=IDCGpDCGp
下图是一个例子,假设搜索引擎对某个查询返回的前6个文档集和对应的相关度下表所示,则 D C G 6 DCG_6 DCG6 N D C G 6 NDCG_6 NDCG6的计算可以表示为:
搜索引擎(二)-- 预测评价指标_第4张图片

搜索引擎(二)-- 预测评价指标_第5张图片

你可能感兴趣的:(港科大学习笔记,搜索引擎,算法,机器学习)