1 定义
检索评价针对信息检索系统响应用户查询的返回结果,系统化地给出了一个量化的指标。这个指标应该和检索结果与用户的相关性直接联系。计算这个指标的通常方法是,对于给定的一组查询,比较由系统产生的结果和由人产生的结果。这里的检索评价仅针对检索系统的结果质量,不考虑界面设计、系统性能等因素的影响。
2 检索指标
2.1 精度和召回率
精度(Precison)是检出文档中相关文档的比例,召回率(Recall)是相关文档集中被检出的比率。将相关文档集记作 ,系统得出的结果集为 ,则:
以横坐标为召回率,纵坐标为精度可绘制精度-召回率曲线,曲线下面积(Area Unser the Curve, AUC)可用于评估不同答案集的质量,面积越大表明质量越好。
缺点:
- 召回率无法准确估计。
- 精度和召回率是相关联的指标,将二者结合为单一指标会更合适。
- 只能度量批处理状态下对一组查询进行处理的结果。
- 对于只需要弱偏序关系的系统来说,精度和召回率可能不适合。(?)
2.2 单值总结
(1) 前 平均精度 :大部分搜索不需要高的召回率,绝大部分用户只需要顶部的几篇相关文档,通常计算前5篇或前10篇文档的平均精度(不管是相关还是不相关), 提供了可靠的指标来评价Web搜索引擎的用户是否在排序的顶部得到了相关文档。
(2) 平均精度均值(Mean Average Precision, MAP):通过对每个新观察到的相关文档计算精度并做平均来得到关于排序的总结性的单一指标。查询 的平均精度定义为:
其中 是 对应的相关文档的集合, 是从头遍历结果集的排序队列直到观察到 中第 篇文档时的精度,如果没有观察到就记作0。此外,在一组查询上的平均精度均值定义为:
其中 是查询的总数目。
(3) 精度:设当前查询的相关文档集 的容量为 ,取排序队列的前 篇文档计算精度,简单粗暴。但是对于一组查询,计算每个查询的 精度再取平均效果可能不好。
(4) 精度直方图:核心思想就是对于一组查询,可以分别比较每个查询在不同算法上的 精度,来比较两个算法的检索质量,废话。
(5) 平均排序倒数:适用于QA系统、特定主页查询等任务,更关注第一个正确的结果,而不是整个排序的结果集。设 是相对于查询 的排序, 函数返回在 中第一个正确答案的位置,给定一个排序位置阈值 , 的排序倒数定义为:
对于由 个查询组成的集合 来说,平均排序倒数(Mean Reciproach Rank, MRR)是所有排序倒数的均值,即:
其中 是在排序中第 个位置的召回率, 是在排序中第 个位置的精度, 是用户定义的参数。
(7) F值:同样是结合精度和召回率,公式为:
注意到,当E值的 时, 。
(8) 摘要统计表:就是把查询数、文档数等统计特征列个表,没什么用。
2.3 面向用户的指标
在相关文档集 和结果集 之外,考虑用户的认知范围,即用户已知的文档 ,如下图:
定义覆盖率为:
定义新颖率为:
高覆盖率表明系统找到了用户期望看到的大部分相关文档,高新颖率表明系统向用户展示了许多之前未知的新的相关文档。
2.4 折扣累计增益
上述基于相关文档集和结果集计算的指标只考虑文档与查询的相关与否,而没有考虑到相关性的强弱。当检查查询的结果时,可以观察到两个重要的现象:
- 在排序的顶部我们更希望是高度相关的文档,而不是轻度相关的文档。
- 出现在排序底部的相关文档的价值不高。
针对第一个现象,赋予每个相关文档相关性强度,0表示不相关,值越大表示相关性越强,对系统返回的排序列表,增益向量(gain vector) 定义为其中每个元素的相关性强度组成的向量,如:
累计增益(Cumulated Gain) $CG$ 定义为:
则对于上面的增益向量:
针对第二个问题,按照文档在排序列表中的位置进行价值衰减,定义折扣累计增益(Discounted Cumulated Gain) $DCG$ 为:
则对于上面的增益向量:
同理,对于由多个查询组成的集合,可计算平均累计增益 和平均折扣累计增益 。
由于累计增益没有参照,定义理想 和 为最优排序列表得到的结果,即文档相关性强度从大到小排列,记作 和 。将原始的 和 进行归一化:
得到了在区间 上的累计增益指标,可用于不同排序算法之间的比较。
2.5 二元偏好
Todo
2.6 排序相关性测度
当没有参照或没有评测人员时,很难计算出上述指标,则可以直接度量两个排序函数产生的结果的相关性,若对其中一个排序函数有一定的了解,就可以根据二者的相关性分析另一个排序函数的优劣。
斯皮尔曼系数(Spearman coefficient)根据相同文档在不同排序中的位置差值计算相关性。设 是文档 在排序 中的位置, 是文档 在排序 中的位置,则位置差值是 ,或计算差值平方和 。如果有K篇排序文档,对排序差值求平方和,则差值平方和的最大值是 ,即两个排序互为反序。使用该最大值进行差值平方和的归一化,即:
将该分式乘2,再用1减去结果,就得到了在区间 上的斯皮尔曼系数:
值越大表明相关性越强。然而,通常两个排序文档集的大小和内容是不同的,这时的做法是取并集,将 中不属于 的文档添加在 尾部,同时将 中不属于 的文档添加在 尾部,之后再对这两个增广排序计算斯皮尔曼系数。
肯德尔系数(Kendall Tau coefficient)比斯皮尔曼系数代数结构简单,有更清楚和直观的解释。给定两篇文档 和 ,若在两个排序列表 和 中, 和 同号,那么就说文档二元组 在这两个排序中是协调的,反之则是不协调的。如果有K篇排序文档,则共有 个文档二元组,肯德尔系数定义为:
和斯皮尔曼系数的形式是几近相同的,当两个排序文档集不同时,也可以用相同的方式增广排序。