深入理解搜索引擎——搜索评价指标

    搜索引擎,在做好query理解、索引召回以及排序模型之后,就能直接推上线了吗?答案是否定的,还需对其性能和质量进行评测。性能无非是对时间和空间的运行效率作评测,不细讲,今天讲讲搜索引擎的质量评测。通过质量评测,可根据评测结果不断的进行改进和研究,也可以验证搜索引擎在真实环境中运行时的实际效果。因此,搜索引擎的质量评测对于整个系统的研制和发展是至关重要的。
深入理解搜索引擎——搜索评价指标_第1张图片

    那么有哪些指标可以评估搜索引擎的结果质量呢?最广为人知的指标就是准确率和召回率。

准确率、召回率

    准确率和召回率广泛用于信息检索和统计学分类领域的两个度量值,用于评价结果的质量。其中准确率是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率

    公式如下:

深入理解搜索引擎——搜索评价指标_第2张图片
准确率(Precision) = 相关文档总数 / 返回的结果总数 = TP / (TP + FP) * 100% 召回率(Recall)=
相关文档总数 / 所有文档总数 = TP / (TP + FN) * 100% F值 = 准确率 * 召回率 * 2 / (准确率 +
召回率) (F值即为准确率和召回率的调和平均值)

    因为搜索引擎处理海量数据,如果召回率达到很高,对于后续的排序以及引擎整体性能都有副作用,并且用户只会看一小部分,所以召回率太高对于满足用户需求来讲意义不大。但过高的追求准确率,可能会导致召回不全,或许某些搜索引擎的垂搜场景需要更多的长尾词带流量,但由于准确率要求极高,很多词会存在出不来对应结果的情况。因此在不同的场合中需要自己判断希望Precision比较高或是Recall比较高。也可以绘制Precision-Recall曲线来帮助分析。也可以使用F值来调和准确率和召回率的互斥关系。
深入理解搜索引擎——搜索评价指标_第3张图片

P@10指标

    此指标更关注搜索结果排名最靠前结果的质量,用于评估最终排序top10个文档中有多大比例是相关的。公式如下:

    P@10 = 相关文档个数 / 10 * 100 %

举例说明:
在这里插入图片描述
P@10 = 3 / 10 * 100 % = 30%

    这种方法比较暴力,并且只追求top10的结果不够全面,对于电商搜索来讲,此种方法基本无效。

MAP指标

    MAP指标(Mean Average Precision)是针对多次查询的平均准确率衡量标准,是评价检索系统质量的常用指标,如果有阅读过信息检索相关paper或者参加过排序类的竞赛,会经常遇到这个评价指标。

    所谓MAP就是对AP取平均值,AP是衡量单个查询的检索质量的。AP值其实是对P@n的一个扩展。上述的P@10,n固定为10,而AP的计算是平均P@1,P@2…P@n所有的值。

    如下图:

深入理解搜索引擎——搜索评价指标_第4张图片
图中搜索结果的AP = (1 + 1/3 + 3/6) / 3 = 0.778

    对所有的AP值求平均值,就得到了MAP指标。

NDCG指标

    NDCG(normalized discounted cumulative gain,归一化折损累计增益)是一种近年来逐渐被采用的指标,尤其是在基于机器学习的排序方法中。NDCG是针对连续值的指标,它基于前k个检索结果进行计。公式如下:

深入理解搜索引擎——搜索评价指标_第5张图片

    DCG(Discounted Cumulative Gain): Cumulative为将所有的结果累加起来, Discounted指给排在后面的结果加一个折扣系数, 排序位置越靠后, 折扣系数越小.

DCG@N的计算方式如下
深入理解搜索引擎——搜索评价指标_第6张图片

    IDCG为理想情况下最大的DCG值。

举个例子,搜索top6个结果的相关性是3、2、3、0、1、2,
计算步骤如下:
DCG@6 = 3/log(2) + 2/log(3) + 3/log(4) + 0/log(5) + 1/log(6) + 2/log(7) = 6.86
IDCG@6 = 3/log(2) + 3/log(3) + 2/log(4) + 2/log(5) + 1/log(6) + 0/log(7) = 8.37
NDCG@6 = DCG@6 / IDCG@6 = 6.86 / 8.37 = 0.8196

自动化评估方法

    以上指标都是基于有监督的情况进行指标测算的,也就是需要利用手工标注答案的方式进行评价,人力成本和时间成本都非常高。虽然在学术界用的比较广泛,但在工业界其实用的比较少。工业界更关注收益,比如ctr(点击率,点击的人数/看到的人数)和cvr(转化率,下单购买的人数/点击或浏览的人数),那有没有一种方法可以快速的并且自动化的评测方法来提高评估效率呢?答案就是A/B testing

深入理解搜索引擎——搜索评价指标_第7张图片

    A/B testing系统在用户搜索时,由系统来自动决定用户的分组号(Bucket id),通过用户的分组号自动将流量导入不同分支,使得相应分组的用户看到的是不同搜索引擎或者不同算法提供的结果。此时需要将用户行为进行埋点,用户在不同版本产品下的行为将被记录下来,这些行为数据通过数据分析形成一系列指标,而通过这些指标的比较,最后就形成了各版本之间孰优孰劣的结论。

为保证其公平性一般有几点要求:

1.同一个用户在不同次搜索也可能进入不同的分组
2.保证样本数足够,更有说服力,但也要控制流量,因为新策略如果表现不行,流量较大则会产生风险
3.保证时间足够,一般一周为一个周期,比较符合显示流量的变化。有的场景可能更长,也许3-4周期。

    本文为大家总结了常用的评价指标和评价自动化流程。对搜索结果的质量评测,目的是准确的找出现有搜索系统的不足,进而对算法优化、对系统改进,提高投入产比。
深入理解搜索引擎——搜索评价指标_第8张图片
最后欢迎关注微信公众号:药老算法(yaolaosuanfa),带你领略搜索、推荐等数据挖掘算法魅力。

你可能感兴趣的:(药老算法,搜索引擎,算法,机器学习,自然语言处理,数据挖掘)