INFS7410 Lecture Notes - Week 2 (Evaluation)

Evaluation

  • 在IR中, 我们更多的时候关心的是效能(effectiness), 而把效率(efficiency)放在第二位进行考虑. "效能"强调的是做正确的事, 而"效率"强调的更多的是更快地朝目标迈进.

Efficiency Measures

  • Efficiency Indexing
    如何评估一个索引化方法的效率? 通常我们通过以下几个参数来进行评估:
    1. Elapsed Indexing Time: 建立文档索引的总时间
    2. Indexing temporary space: 在建立索引的过程中所暂时需要使用的磁盘空间
    3. Index size: 存储索引文件所需要的磁盘空间
  • Efficiency Query
    评估一个检索方法时, 我们通常通过以下几个方面来评估它的效率:
    1. Query throughput (查询吞吐量): 一秒内能够处理的查询数量
    2. Query latency (查询延迟): 一个用户获取查询结果所需要的等待时间

Effectiveness Evaluation

  • A measure is a model --- so you need to use the measure that best models the task you are considering (models the user satisfaction and behaviour)

Precision and Recall

  • 在检索中, 如果在检索结果中只考虑"相关"和"不相关"两种情况的话, 我们可以用召回率(Recall)和准确度(Precision)来表示本次检索的:
                                          Recall = \frac{|Relevant \ \& \ Retrieved|}{|Relavant|}
                                    Precision = \frac{|Relevant \ \& \ Retrieved|}{|Retrieved|}

 |.|表示这个集合的元素数量.

  • 如果这两个指标用来衡量一个IR系统的话, 那么在检索过程中需要达到的目标是:
    1. 尽可能检索到更多相关的文件(Recall)
    2. 尽可能减少不相关文件的数量(Precision)

F-measure

  • 有些时候, 在比较两个不同的系统的时候, 如果我们使用召回率和准确率进行比较的话, 可能会存在Trade-off的情况(也即每一个系统都在某个参数上优于其他系统, 但在另一个参数上却劣于其他系统). 在这种情况下, 我们可以使用F-measure来进行系统间的性能评估.
    F-measure是召回率和准确率的调和平均, 也即:
                                                          F_{b} = \frac{R P}{R + b^{2}P}(b^{2}+1)
    此处, b是一个参数, 用于强调召回率相较于准确率的重要程度:
    b > 1: 更看重召回率
    b < 1: 更看重准确率
    b = 1: 两个参数同样重要 -- F1测试
  • 将信息检索作为一个分类问题来看时, 我们可以列出一个混淆矩阵:

 Rank-based Measure

  • 但是, 我们信息检索的结果并不是以集合的形式展现的, 而是以排序(Ranking)的方式展现给用户. 那么我们需要将准确率和召回率应用到Ranking上, 才能较为准确的评估搜索结果.
  • 一种较为简单的方法是, 在Ranking中的某个位置截断, 计算截断之前的召回率或准确率. 例如, p@10: 前10位的准确率 = 前十名中相关文档的数量 / 10
  •  那么, 如果我们对一个Raking的总体表现做一个评估的话, 要如何实现呢? 这里使用到平均精确率(Average Percision)的概念: 平均精确率也即在Raking中所有相关文档的精确率平均数. 示例如下, 假设一共有6个相关文档且全部被检索到:

 num_rel是所有相关文档的数量(包括已检索到和未检索到的相关文档).
那么,  对于没有在Ranking中出现的相关文档, 又应该如何处理呢? 我们将其对于平均精确率的贡献视为0. 示例如下, 假设一共有6个相关文档, 但只有5个相关文档被检索到Raking中:

  •  如果同时有多个查询呢? 有如下两种方法可以进行评估:
    1. Mean Average Percision (MAP): 
             MAP = [AP(q_1) + AP(q_2) + ... + AP(q_{n})]\ \div\ Number\ of\ queires
    2. Geometric MAP:
                                              GMAP = exp\frac{1}{n}\sum_{i=1}^{n}logAP_i
  • 但是, AP测试也有一定的局限性, 下面的情况表明了AP是头重脚轻的(Top heaviness).
    在这种情况下, S1的AP = (1+1+1+1+1)/5 = 1, 而S2的AP = (1/6 + 1/7 + 1/8 + 1/9 + 1/10) = 0.646.

Task and User Models

  • 每一种测量方法的背后其实都隐含着一个任务和用户模型
    Task: 用户的目标是什么
    User Model: 用户的行为是怎样的
    例如, 在精确率(Percision)中, 我们的任务就是寻找相关文档, 并尽可能剔除不相关文档, 而用户在这种假设下, 会无序地检查每一个检索到的文档. 而在召回率(Recall)中, 我们的任务则变成了尽可能多地检索到所有的相关文档, 而用户则会将相关文档数量和检索结果进行对比.
  • 如果我们假设任务是找到一个相关文档或者唯一的那一个相关文档, 用户在此时的行为则是: 从头至尾有序地查看文档, 并会在找到第一个相关文档的时候停止. 那么这时我们的测量方法则是Reciprocal Rank(RR).
                                          RR = \frac{1}{Rank\ of\ the\ first\ relevant}
    Mean Reciprocal Rank(MRR)则计算的是多个查询的平均RR值.

Gain Discount Framework

  • 在RR中, 我们可以将其视为用户的收益, 而第一个相关文档可以被视为对收益做出了固定值为1的贡献.
    而每一个不相关的文档对于收益的贡献值则视为0.
    每一个排名都对应着对于收益的不同程度的减益(discount) -- d = 1/rank
    用户收获找到相关文档的收益, 但同时会被排名减益.
  •  至此, 我们可以依据这个框架得出一个新的测量方式 normalised Discount Cumulative Gain(nDCG):

    但是, 如果继续沿用原有的框架, 那么公式中的gain(rel)只能是0或1(相关或不相关), 而discount(k)在原框架中, 又会因为rank的增长而下降得太快. 所以在nDCG中, 需要稍作改动:

    其中, rel_k表示第k个相关文档的相关系数. 其中的系数"2"代表了相关文档的重要程度, 如果需要更重要相关度, 可增大此系数进行表示. 
    问题: discount中的log底数应该如何选择呢?
    答:TBA
  •  另外一个测量方式称为Rank Biased precision (RBP), 也即排序偏差准确率. 在此种假设下, 用户总是会检查Ranking中的首个文档, 然后会有p的概率浏览下一个文档, 或者以1-p的概率停止浏览.

    此处我们可以用用户模型来定义一个减益系数: 用户检视第i个文档的可能性:
                                                                d = p^{i-1}
    同时, 用户会从相关文档中获得收益, 而收益函数测表示为:
                                                                 g = r_i
    当第i个是相关文档时, r_i = 1, 反之r_i = 0.
    然后, 我们得到RBP在gain-discount框架下的表达式:

    此处的p系数同样代表了用户的耐心程度(0 <= p <= 1). 更高的p系数代表着更有耐心的用户, 反之说明用户更没有耐心.

The C/W/L Framework

  • 在C/W/L框架下, 用户总是会通过寻找相关文档来获得增益. 对于每一个文档, 用户需要决定是否继续检视整个Ranking.
  • C: continue
    假设一个用户正在查看第i个文档, 那么用户继续查看第i+1个文档的可能性为:
                      C_i = Pr("continue\ to" \ i+1|"looking\ at"\ i) = \frac{\sum_{j=i+1}(r_i/J)}{\sum_{j+i}(r_i/J)}
    这里的系数J是什么?
  • W: weight
    假设有条件延续概率C_i, 那么可用W_i表示用户在第i个文档上花费的注意力占用户总注意力的比例(fraction of total user attention spent on the document at rank i).
                                                     W_i = \frac{\prod_{j=1}^{i-1}C_j}{\sum_k\prod_{j=1}^{k-1}C_j} 
  • L: last view
    假设有条件延续概率C_i, 那么可用L_i表示查看的最后一个文档是第i个的用户的比例.
                                                     L_i = (\prod_{j=1}^{i-1}C_j)(1-C_i)

Graded Relevance -- uRBP

  • 现在, 我们更多的希望在对于文档相关性的评估方面, 能有更多的不同, 也即不使用二进制的评估方式, 而是在gain-discount的框架下, 从多方面对于文档的相关性进行评分. 为此, 我们引入一个新的测量方法: understandability-biased RBP (uRBP). 在uRBP中, 它的减益和RBP相同, 但增益会从相关性和易懂性两个方面进行考虑:
                                          uRBP = (1-p)\sum_{k=1}^Kp^{k-1}r(d@k) \cdot u(d@k)
    p^{k-1}: 排名的减益
    r(d@k): 相关性的增益
    u(d@k): 易懂性的增益

Pooling(池化)

  • 我们知道, 在实际工作中对于所有的文档进行详尽的评估是不可能的. 因此, 在需要同时对多个检索系统的大量检索结果进行评估时, 我们常使用池化的方法来生成一个检索结果的子集, 然后对这个子集进行评估.
    1. 在每个搜索引擎的检索结果中选择前k条结果
    2. 移除重复的文档
    3. 对这些文档进行评估(文档不需要是有序的)
  • 但是, 这样的评估方法也同时存在着缺点 -- 它是不完整的
    因为很有可能会有一些相关文档并没有被池化的系统检索到

Statistical Test

  • 当我们对两个系统的效能进行比较时, 我们需要考虑一个可以表示meaningful difference的指标, 因此, 我们需要通过显著测试(significance test)来实现. 显著测试大多基于假设(Hypothesis):
    - Null hypothesis: 两个系统A, B之间并无区别
      Alternative hypothesis: 两个系统A, B之间存在差别
    - 如果实验拒绝了null hypothesis, 那么说明alternative hypothesis成立.
    - 显著测试能帮助我们量化评判效能的证据.
  • - 要想在离线评估方法上应用显著测试, 我们需要得到系统在一系列查询中的表现
    - 然后, 我们需要在matched pairs(paired test/matched paris)中进行对比, 如m(A, q_i)和m(B,    q_i).
    - 测试会产生p值, 也即null hypothesis为真的概率. 较大的p值说明测试得到的两个系统之间的不同会和实际值相等或者更大. 较小的p值则说明null hypothesis是错误的.
    - 为此, 我们需要设置一个拒绝null hypothesis的阈值α, 如果p <= α, 则拒绝null hypothesis. 通常我们会设置α=0.05, 0.01
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值