搜索排序评估方法:作为产品,这个你必须要了
在策略相关的产品如搜索、排序、推荐等功能的评估中,除了一般性数据分析方法之外,还有有一些特有的且相对比较固定的评估工具,这些评估工具都取之于信息检索科学的常用评估方法。要了解这些首先要了解策略产品的效果评估,我们必须要引入一些必要的信息检索相关的知识。
1.召回率和准确率
信息检索领域两个最基本指标是召回率(Recall Rate)和准确率(Precision Rate),召回率也叫查全率,准确率也叫查准率,概念公式:
召回率(Recall)=检索到的相关内容 / 所有相关的内容总数
准确率(Precision)=检索到的相关内容 / 所有检索到的内容总数
为了直观的描述这两个概念,我们用是否相关和是否被检索到两个维度的指标来对每一次信息检索之后的内容分类。是否相关指内容和检索条件是不是相关,如检索“酒店”,系统中所有的酒店内容就是相关,而“美食”的内容就是不相关的,一般情况下,相关的内容就是理论上需要完全被检索到的内容,这个数值和检索的策略或算法没有关系。是否被检索到是针对检索结果的描述指标,检索完成后我们才能对系统内容做是否被检索到的区分,这个数值和检索策略或算法相关。通过是否相关和是否被检索到两个维度的指标,我们可以将检索完成后的内容分为四类,如下图:
联系图表,召回率就是检索到的相关内容(A)在所有相关内容中的比例(A+C),而准确率就是检索到的相关内容(A)在所有检索到的内容(A+B)中的比例。
但是如何算图1中的A、B、C、D呢?一般,这需要人工标注,人工标注数据需要较多时间且枯燥,如果仅仅是做实验可以用已知的场景来测试,比如我们已知搜索“A酒店”应该出的搜索结果,那么我们就可以通过不同策略在搜索“A酒店”的表现来计算不同策略的A、B、C、D值,这种方式简便易行,能够针对性的解决问题,但是只能解决已知的问题。当然,还有一个办法,找个一个比较成熟的算法作为基准,用该算法的结果作为样本来进行比照,当然这个方法也有点问题,那就是我们无法得知天花板在哪里,也就是无法预知最佳效果如何。
在实际项目中,我们单方面追求准确率和召回率都是不对的。准确率和召回率是互相影响的,理想情况下肯定是做到两者都高,但是一般情况下准确率高、召回率就低;召回率低、准确率高。如果是做搜索,那就是保证一定召回的情况下提升准确率;如果做反垃圾、反作弊,则是保证一定准确率的条件下,提升召回率。
2.F值
一般情况,对同一个策略模型,用不同的阀值,可以统计出一组不同阀值下的精确率和召回率关系,我们称之为P-R曲线,如下图:
图中横坐标是召回率,用R(Recall)表示;纵坐标是准确率,用P(Precision)表示。有时候,我们在P和R做出平衡,因此我们需要用一个值来体现策略在P值和R值两方面的整体表现。最普通也最容易理解的是F1值,F1值的计算公式如下:
F 1= 2 * P * R / (P + R)
更通用的公式是F=(1+β^2)*P*R/(β^2*P+R)
用F1值来体现准确率和召回率的综合表现非常直观且易于理解,但是也有一个明显的缺陷,F1值的计算中,P和R的权重是一样的,也就是对召回和准确的要求是一样。在大多数情况下,我们在召回率和准确率上有不同的要求,因而我们也常用F2和F0.5来评价策略的效果,F2 = 5P * R / (4P + R),表示更重视召回率,F0.5(F2 = 1.25P * R / (0.25P + R),表示更重视准确率。
3.ROC和AUC
前面给大家介绍了F值,细究不难发现,它只能表示单点的效果而无法表示策略的整理效果,狼蚁网站SEO优化介绍的内容,将是一些能评估策略整体效果的评估方法。
ROC的全名叫做Receiver Operating Characteristic,是评价分类器(需要说明)的指标,一般分类识别相关的策略我们使用ROC值来评价。我们用上面第一个图的方式来说明这个值,我们将ABCD稍作变换如下图:
正确正例(True Positive,TP)表示将正例(预测)分为正例的内容;错误正例(False Positive,FP)表示将负例分为正例的内容;错误反例(False Negtive,FN)将正例分为负例的内容;正确负例(True Negtive,TN)表示将负例分为负例的内容。其中,ROC关注两个指标:
正确正例比例True Positive Rate ( TPR ) = TP / [ TP + FN] ,TPR代表能将正例分对的概率
错误正例比例False Positive Rate( FPR ) = FP / [ FP + TN] ,FPR代表将负例错分为正例的概率
ROC的主要分析方法是一个画在ROC空间的曲线(ROC curve):在ROC 空间中,每个点的横坐标是FPR,纵坐标是TPR,这也就描绘了分类器在TP(真正的正例)和FP(错误的正例)间的平衡关系。我们知道,对于二值分类问题,实例的预测值往往是连续值,我们通过设定一个阈值,将实例分类到正类或者负类。比如我们通过数据挖掘计算酒店不接待客户的预测值是一个0-1的分布,然后设定一个阈值0.5,如果大于0.5,我们则认为酒店存在不接待用户的情况。因此我们可以变化阈值,根据不同的阈值进行分类,然后根据分类结果计算的TPR值和FPR值得到ROC空间中相应的点,连接这些点就形成ROC曲线。ROC曲线会经过(0,0)(1,1)两个点,实际上(0, 0)和(1, 1)连线形成的ROC曲线代表的是一个随机分类器。一般情况下,这个曲线都应该处于(0, 0)和(1, 1)连线的上方,否则,分类器的策略就是有问题的。
用ROC curve来表示分类器的效果很直观好用,也能够观测在不同TPR和FPR下分类策略的表现。但是,我们仍然希望能够用一个特定的值来表示分类器策略的好坏,于是Area Under roc Curve(AUC)就出现了。顾名思义,AUC的值就是处于ROC曲线下方的那部分面积的大小。
可以预见的是,AUC的值介于0.5(随机分类器的AUC值)到1.0之间,通常情况下,我们认为较大的AUC代表了较好的效果。
4.Prec@k和MAP(Mean Average Precision@K)