搜索引擎及推荐系统评价指标

整理一下搜索引擎和推荐系统的评价指标,通常来说,搜索引擎和推荐系统的算法和应用场景是有区别的,但是从最终完成的任务和过程来看,大致上都是为用户寻找一个能够满足用户信息需求的潜在信息资源,因此,评价指标也具有相似性,就放在一块儿讲。

首先,是评测方法,包括以下三种评测方法:

线上评估:通过设计几种方案让线上用户进行体验,通过用户的反馈来判断优劣,例如AB-test。
线下(离线)评估:通过数据集模拟用户与SE或RS的交互行为。
用户调研评估:寻找一组测试对象,根据需求与系统进行交互,观察并记录行为,在测试的各个阶段提出定性的问题,用于收集不能直观获取的数据,最后通过分析收集的数据了解系统的性能。

检索系统性能评价通常会使用一个2*2的列表,评价指标可以从该表推出,如下:

最基本的两个评价指标就是查全率R和查准率P,查全率是衡量检索系统能否把相关文献都给检索出来(这里不太区分文献和文档,不同系统叫法不一样,学术数据库叫文献,通常检索系统可以叫文档,也可以叫资源,都可以)。查准率是指检索出来的文献中确实相关的文档有多少,这些数值都可以从上面的2*2列表中找到。

这里需要注意一个非常重要的点,这些指标的计算通常是在“数据集”上来验证的,也就是说所有的文档是有限且被标注好的,在这种离线情况下,查全率和查准率是可以计算的,但是,在实际环境中,查全率是无法计算的,因为检索系统中相关文献的总量是不知道的。因此,这些在数据集/离线环境中衡量的系统好坏,未必能够在在线环境中取得良好的效果和用户良好的反馈,就是这个道理。

通常来说,查全率和查全率存在互逆关系,这与检索改进策略也有关,即,当检索系统查全率提高时,就需要检索出更多的文献,想要检索出更多的文献,就需要较为模糊的检索,查准率自然降低;反之,查准率提高,则检索需要更加严格,那么查全率也就降低了。除查全率、查准率外,还有非相关率和囊括率,这俩用的较少。

衡量错误的评价指标有漏检率和误检率,就是字面意思不多展开了。

综合查全率和查准率的评价指标有F指标和E指标,F指标其实就是R和P的调和平均数,把下面一式分子分母同时除个RP就看出来了。E测度指标通过参数b来调整R和P的相对重要性,b=1时,E=1-F;b>1时,意味着P的重要性大于R;当b<1时,意味着P的重要性小于R

从用户角度来看的评价指标有:

涵盖率:用户已知的相关文档集合中被检索出的相关文档所占比率。
新颖率:用户检索出的相关文档集合与以前未知的相关文档所占比率。
相对查全率:检索系统检出的相关文档数量与用户期望得到的相关文档数量的比率。
查全效果:用户期望得到的相关文档数量与为了得到这些相关文档而在检索结果中审查文档数量的比率。

以上大概就是SE的评价指标,然后讲RS的评价指标,首先,是评分准确度指标,在一些应用中,会有让用户对item进行打分的模块,例如给一个旅游景点打分,使用推荐算法预测用户对景点的评分,作为推荐的依据,此时常常关注评分的准确度,具体评估的指标有平均绝对误差MAE、均方根误差RMSE、归一化平均绝对误差NMAE、归一化均方根误差NRSE,他们越小,则证明系统的准确度更高。

评分准确度指标就是“预测评分”和“真实评分”的“差距”,越接近就说明RS预测的评分越接近用户,则推荐效果越好,这个类似用最小二乘做拟合。

其次,是排名准确度指标,多数RS将推荐结果以list的形推荐给用户,此时,关注的是列表的物品排序,排序成为了衡量推荐结果的关键指标。

Average Precision

AP:AP是一种“顺序敏感的recall”,Ωu表示ground-truth的结果,pui表示i物品在推荐列表中的位置,puj<pui表示j物品在推荐列表中排在i物品之前。

之所以要考虑顺序,无论是搜索引擎还是推荐系统,我们肯定希望越相关的item排在越前面,你不会希望想要检索到或者被推荐的东西被排在第十几页或者二十几页,所以考虑排序的评价指标是一个很自然的想法。

Mean Average Precision

MAP:对所有用户的AP求均值。

AP是衡量当前的RS对一个用户的排序准确率的好坏程度,MAP则是衡量当前RS对所有用户的排序准确率的好坏程度,这也是后面会常用到的一个思路,就是从一个用户推广到所有用户,求均值即可。

Cummulative Gain

CG:累积增益,将每个推荐结果的相关性的分值累加后作为整个推荐列表的得分。

DCG:考虑位置折损的累积增益,对于排名靠后的推荐结果的推荐效果进行折损。

DCG考虑排序的方式是构造一个函数,把位置参数放在分母,item位置越后分母越大,排名越靠后,整体指标数值越小。

NDCG:标准化的考虑位置折损的累计增益,对于多个推荐列表的定义。

Mean Reciprocal Rank

MRR:平均倒排系数,|Q|是用户个数,ranki是对于第i个用户,推荐列表中第一个在ground-truth结果中的item所在的排列位置。

再然后就是分类准确度指标,分类准确度一般通过准确率和召回率、F指标、AUC等相关指标进行度量。这个与SE较为相似。一个是机器学习中也常用的“混淆矩阵”,分类模型中常用混淆矩阵去衡量分类效果,一个维度是实际类的情况,一个维度是预测类的情况,每一个单元格就是“预测为类*,实际为类*”,显然,斜向右下的对角线上的分类是准确的,其他都是预测错误的,对于RS来说,分类是二元的,即“相关的”和“不相关的”,因此就是个2*2的混淆矩阵,这个和之前介绍SE的2*2列表很像,基本上一样的。

准确率:分类正确的样本数占样本总数的比例。

精确率:预测结果中,预测为正样本的样本中,正确预测为正样本的概率。

召回率:原始样本的正样本中,最后被正确预测为正样本的概率。

PR曲线:以召回率Recall作为横坐标,精确率Precision作为纵坐标绘制的曲线图。

(从PR曲线上也可以看出Precision和Recall的互逆关系)

F-score:折中精确率和召回率的结果,引入F-score。

F1-score:令F-socre中的α为1。(这是一个调和平均数)

假阳率:预测为正样本但是预测错了的比率。
真阳率:预测为正样本且预测对了的比率。

ROC曲线:以假阳率为横坐标,真阳率为纵坐标的曲线。
测试数据集类别分布大致均衡时使用ROC曲线;分布非常不均衡时采用PR曲线。

AUC:ROC曲线下的面积,即为ROC Curve的微积分值,其物理意义可以表示为:随机给定一正一负两个样本,将正样本排在负样本之前的概率,因此AUC越大,说明正样本越有可能被排在负样本之前,即分类的结果越好。

Hit Ratio

HR:top-K推荐中,HR是一种常用的衡量召回率的指标。其中分子是每个用户top-K推荐列表中属于测试集合的个数的综合,分母是所有的测试集合。

例:三个用户在测试集中的商品个数分别是10、12、8,推荐模型得到的top-10推荐列表中,分别有6、5、4个在测试集中,那么HR=(6+5+4)/(10+12+8)=0.5。

覆盖率:推荐系统推荐给所有用户的物品数占总物品数的比例。覆盖率表示推荐系统对物品长尾的发掘能力,用以衡量推荐系统是否能推荐到所有物品。

此外,信息熵、基尼系数两个指标通常也用于定义覆盖率,一个推荐系统的长尾效应越明显。①表示其未知的信息量越少,所以信息熵越小;②类别个数增多,且类别不平衡,因此基尼指数越大。

整体多样性:采用推荐列表间的相似度,也就是用户的推荐列表间的重叠度来定义整体多样性。

ILS:个体多样性,衡量推荐列表多样性的指标。

Novelty:评估新颖性最简单的方法是计算推荐列表中物品的平均流行度。流行度有很多定义或计算的方法,比如,简单统计一段时间内的物品的购买次数,或者更加复杂的基于概率论的计算方法。

未知度:给用户推荐的物品和用户未知物品的重合度。

惊喜度:未知且有价值的item被定义为“惊喜的”。可以通过用户行为定义item是否有价值,比如通过点击、浏览、下单等用户行为来判别item是否有价值。

UE新颖度:用简单粗糙的推荐系统PPM来衡量item是否容易被预测出来,如果被PPM预测出来就是新颖度低,反之则新颖度高。

综合多样性和新颖性的评价指标

其他指标:

响应时间
用户满意度
用户信任度
平均查全率、平均查准率
相对查全率、相对查准率
前X条命中率
稳定性
时空间复杂度
保护用户隐私
算法普适性……

注意事项:①离线实验的效果并不一定能够改善在线RS的推荐效果。②推荐系统的评测需要结合实际业务改善及评测目的选择合适的评测方式及评测重点。③推荐系统的评测并不是越多指标越好,需要有侧重地选择。④在离线测试中并不是越准确越好,当心“过拟合现象”