美文网首页自然语言处理(NLP)
『IR 信息检索入门必看』#5 检索系统评价(简明)

『IR 信息检索入门必看』#5 检索系统评价(简明)

作者: Hwcoder | 来源:发表于2021-10-15 10:40 被阅读0次

    访问博客查看 本文 最新内容,排版更美观ヾ(•ω•`)o 如有错误欢迎指出~

    IR 信息检索系列笔记:

    前述文章介绍了几种基本信息检索模型,本文将介绍如何评价一个现有的文档检索系统。

    Evaluation in Document Retrieval

    一个检索系统的好坏,通常取决于其检索结果与用户查询的相关性,此外还有检索用时、检索范围等等。这里仅针对评价相关性展开讨论。

    相关性 | Relevance

    如何度量相关性?考虑如下三个待实现的要素:

    • A benchmark document collection (基准文档集)

    • A benchmark suite of queries (基准查询集)

    • A usually binary assessment of either Relevant or Nonrelevant for each query and each document (对基准查询结果打分)

    当然,这个「打分标准」可能会随每个人的信息需求而变化(the information need is translated into a query),因此这个指标不是确定的(more than binary)。

    有了以上三个基本要素,我们就可以构造出一个合理的测试集:包含文档集、查询集和有关评价机制。

    测试集 | Test collections

    在制定测试集的时候,往往要先标注好相关的「查询-文档」对。对于小的测试,可以采用人工标注(遍历文档集和查询集)。

    但对于较大的测试集则不行(如 TREC 测试集)。此时,可以采用如下方法:

    • Pooling | 池化

    直接用已有的几个检索系统在「总的基准文档集」中检索,取出每个检索的前 n 个结果,取并集,用这个「新的集合」作为「模拟基准文档集」进行标注,这样就可以大大减少范围。

    • Sampling | 抽样

    可以通过随机抽样估计真实相关集的大小。

    • Search-based

    与其阅读所有的文档,不如人工用较宽泛的 Query 先得到一些检索结果,再在这些结果中标记。

    有效性度量 | Effectiveness measures

    有了合理的测试集,只需要用待测试 IR 查询「基准查询集」的内容,对查询结果与「查询-文档」对比较,即可得到有效性度量。

    以下介绍两个在度量有效性过程中常用的变量。

    精度和召回率 | Precision and Recall

    在检索结果的 Top n 中,我们定义如下变量:

    Precision (精度): Proportion of a retrieved set that is relevant.

    Recall (召回率): Proportion of all relevant documents in the collection included in the retrieved set.

    与这两个概念相关的还有 Miss (漏识率) 和 Fallout (误报率)。

    对应的混淆矩阵(Confusion Matrix)如下表:

    / 相关 不相关
    检索到 A B
    未检索到 C D

    \text{精度}=\frac{A}{A+B}, \text{召回率}=\frac{A}{A+C}, \text{漏识率}=\frac{C}{A+C}, \text{误报率}=\frac{B}{B+D}

    这样的计算过程没有考虑到检索结果的顺序,事实上相关文档排在前列的搜索引擎才是我们最需要的。

    有序检索 | Ranked retrieval

    考虑搜索引擎返回的结果是有序的,取 Top n,则计算 P/R 的方法可以加以修正:

    对检索到的文档按照 ranking 排列,顺次计算 P/R,每次计算时考虑前 k 个文档。最后会得到一组 n 个 P/R 值,再对 Top n 中的「相关文档」对应的 Precision 取平均。

    同一关键词的查询结果 平均值计算

    上图中,我们对搜索引擎 A 和搜索引擎 B 查询了同一关键词,并取了 Top 10 的查询结果,其中各有 5 篇相关文档,经过计算可发现,A 的检索结果更优。

    但是,如果我们要对同一个搜索引擎 A 用不同的关键词来查询呢?

    不同关键词的查询结果

    对于不同的 query 可能 Top n 中有数量不同的相关文档,此时的 Recall 就会不一致。如果我们要计算同一 Recall 值处的精度,则需要用到插值方法。

    跨查询平均 | Averaging across queries

    仅用个别的 query 难以在数据巨大的文档集中得到准确的 P/R 值。因此需要考虑更多的 query,并对结果再次平均。

    由此,引出两种平均的思想:

    • Micro-average (微平均): each relevant document is a point in the average. 只针对该搜索引擎下一个 query 的命中结果,求出平均精度。
    • Macro-average (宏平均): each query is a point in the average (Most Common). 针对该搜索引擎下的许多 query 的微平均精度,再求总的平均精度。

    做宏平均的过程中,最重要的是将所有 query 视作平等的点。因为在微平均的过程中,我们往往只关注一些大样本、常见样本,而这些样本并不能完全体现搜索引擎的性能。而宏平均关注其他小样本、偏僻样本,这些样本的检索结果体现了搜索引擎内部的类别分布是否均匀。

    这种方法也称作 MAP (Mean Average Precision),平均之上的平均。

    绘图 | Recall/Precision graphs

    如果只关注平均精度,则会隐藏检索结果的一些有效信息。如果用图表的形式呈现,则更能观察到趋势。

    如果直接把 ranked retrieval 的结果画在图中,会得到一条「锯齿状」的曲线。因为在同一个召回率下,随着结果数的增长,精度是垂直向下的。

    锯齿状的PR图

    此时,如果我们想要关注曲线中的:

    • 特定召回率(10%、20%等)下的精度
    • 零召回率(系统尚未返回结果)下的精度

    由于各个 query 对应的相关文档总数不同,观测到的召回率点也不同。此时就需要对离散的点用 interpolate (插值),做出连续的曲线,才能确定这些点的精度。接下来讨论如何选取适合的插值方法。

    直接连接各点?连接最大值?连接最小值?连接平均值?

    零召回率时假设为零?假设为最大精度?假设为平均精度?与起始点相等?

    基本原则:从平均来看,随着召回率的增加,精度应该是单调递减的。

    基于这个原则,可以得到
    P(R)=\max \left\{P^{\prime}: \quad R^{\prime} \geq R \wedge\left(R^{\prime}, P^{\prime}\right) \in S\right\}
    即:选取「当前区间」最大的精度点,再以「召回率大于该点的区间」为「新区间」,选取最大的精度点,迭代至 100%。

    最后用「阶梯状」曲线连接以上各点,可以得到单调递减的曲线。

    阶梯状的PR图

    E and F

    综合考虑 P/R 值,可以计算出如下单值评价指标

    E Measure

    用于强调精度或召回率中的某一个指标,同时兼顾另一个指标。

    E=1-\frac{1}{\alpha \frac{1}{P}+(1-\alpha) \frac{1}{R}}
    根据 \alpha 的取值,增大 \alpha 代表强调精度的重要性,反之强调召回率。

    \alpha =\frac{1}{\beta ^2+1} ,可以得到
    E=1-\frac{\left(\beta^{2}+1\right) P R}{\beta^{2} P+R}
    \beta = 1 时可得到二者相同重要性的效果,此时的 E 具有的物理意义是所有相关文档 A+C 和所有检索到文档 A+B 的集合的对称差的基数除以两个集合的基数。

    F Measure

    E 取补,可以得到
    F_{\beta}=1-E=\frac{\left(\beta^{2}+1\right) P R}{\beta^{2} P+R}

    其中 F_1 分数则是 P/R 值的调和平均,较为平均的兼顾了二者。这是分类与信息检索中最常用的指标之一。
    F_{1}=\frac{2 P R}{P+R}=\frac{1}{\frac{1}{2}\left(\frac{1}{R}+\frac{1}{P}\right)}

    之所以使用调和平均而不是算术平均,是因为在算术平均中,任何一方对数值增长的贡献相当,任何一方对数值下降的责任也相当;而调和平均在增长的时候会偏袒较小值,也会惩罚精确率和召回率相差巨大的极端情况,很好地兼顾了精确率和召回率。

    单值评价指标 | Other Single-Valued Measures

    类似 EF 这样的单值评价指标之所以重要,是因为这样能够更好的优化度量。此外,在文档评价中,我们还有如下指标:

    • 期望搜索长度 | Expected search length

    定义在弱顺序文档,量化的用户查找 K 个相关文档所需工作量。这项指标计算预期用户在找到第 K 个相关文档之前,按顺序浏览搜索结果列表将要看到的非相关文档的数量。

    • 损益平衡点 | Breakeven point

    寻找 Precision 等于 Recall 的点,通常在分类任务中用到。

    • 平均排序倒数 | MRR (Mean Reciprocal Rank)

    对于某些 IR 系统(如问答系统或主页发现系统),只关心第一个标准答案返回的 rank,越前越好,这个位置的倒数称为 Reciprocal Rank (RR) ,对问题集合求平均,则得到 MRR。即,把标准答案在被评价系统给出结果中的排序取倒数作为它的准确度,再对所有的问题取平均。

    相关文章

      网友评论

        本文标题:『IR 信息检索入门必看』#5 检索系统评价(简明)

        本文链接:https://www.haomeiwen.com/subject/ofijoltx.html