研究生课程:现代信息检索-第9讲 完整搜索系统中的评分计算

《现代信息检索》课程笔记:第9讲 完整搜索系统中的评分计算

第9讲 完整搜索系统中的评分计算

不排序的问题严重性

  • 用户只希望看到一些而不是成千上万的结果
  • 很难构造只产生一些结果的查询
  • 即使是专家也很难
  • 排序能够将成千上万条结果缩减至几条结果,因此非常重要

排序的重要性:

  • 摘要阅读(Viewing abstracts):用户更可能阅读第一页的结果的摘要
  • 点击(Clicking):点击的分布甚至更有偏向性
    • 一半情况下,用户点击排名最高的页面
    • 即使排名最高的页面不如排名第二的页面相关,仍然有接近30%的用户会点击它。
  • 正确排序相当重要
  • 排对最高的页面非常重要

结果排序的实现

倒排索引中的词项频率存储

  • 每条倒排记录中,除了docIDd 还要存储tft,d
  • 通常存储的是原始的整数词频,而不是对数词频对应的实数值
    • 这是因为实数值不易压缩
  • 对tf采用一元码编码效率很高
  • 总体而言,额外存储tf所需要的开销不是很大:采用位编码压缩方式,每条倒排记录增加不到一个字节的存储量
  • 或者在可变字节码方式下每条倒排记录额外需要一个字节即可

两种常见的评分累加算法:

以词项为单位(term-at-a-time, TAAT),首先获得词项t的posting list,然后累加得分

以文档为单位的计算,首先获得包含查询词的所有文档,将这些文档按照静态评分排序,然后依次累加得分

精确top K检索及其加速办法:

目标:从文档集的所有文档中找出K个离查询最近的文档

步骤:对每个文档评分(余弦相似度),按照评分高低排序,选出前K个结果

加速方法:

快速计算余弦:不考虑查询词项的权重

堆法N中选K:不对所有文档进行排序,只需要挑出最高的K个结果

提前终止计算:得到了top K结果,不需要再进行后续计算

精确topK检索的问题:仍然无法避免大量文档参与计算

非精确topK检索:非精确topK的结果如果和精确topK的结果相似度相差不大,应该也能让用户满意

找一个文档集合A,K<|A|<<N,利用A中的top K结果代替整个文档集的top K结果

方法一:索引去除

从查询词的角度:只考虑那些包含高idf查询词项的文档

从文档的角度:只考虑那些包含多个查询词项的文档

仅考虑高idf词项、仅考虑包含多个词项的文档

方法二:胜者表

对每个词项t,预先计算出其倒排记录表中权重最高的r篇文档,如果采用tfidf机制,即tf最高的r篇

方法三:静态质量得分排序方式

为每篇文档赋予一个与查询无关的[0,1]之间的值,记为g(d),例如Pagerank

最终文档排名基于g(d)和相关度的线性组合

目标是找net-score最高的top K文档

方法四:影响度(Impact)排序

提前结束法:

遍历倒排记录表时,可以在如下情况之一发生时停止:

  • 遍历了固定的文档数目r
  • wft,d 低于某个预定的阈值
  • 将每个词项的结果集合合并
  • 仅计算合并集合中文档的得分

将词项按照idf排序:

  • 对于多词项组成的查询,按照idf从大到小扫描词项
  • 在此过程中,会不断更新文档的得分(即本词项的贡献),如果文档得分基本不变的话,停止
  • 可以应用于余弦相似度或者其他组合得分

方法五: 簇剪枝

随机选 篇文档作为先导者,对于其他文档,计算和它最近的先导者

非docID的倒排记录表排序方法

与查询无关的一种反映结果好坏程度的指标

以文档为单位(Document-at-a-time)的处理、以词项为单位(Term-at-a-time)的处理方式

WAND(Weak AND) 评分算法

  • 实验表明, WAND 可以降低 90% 以上的评分计算开支
  • WAND并非仅仅适用于cosine评分排序
  • WAND 及其不同的改进版能够满足安全排序(Safe Ranking, 即精确排序)

完整的搜索系统

多层次索引基本思路:

  • 建立多层索引,每层对应索引词项的重要性
  • 查询处理过程中,从最高层索引开始
  • 如果最高层索引已经返回至少k (比如, k = 100)个结果,那么停止处理并将结果返回给用户
  • 如果结果 < k 篇文档,那么从下一层继续处理,直至索引用完或者返回至少k 个结果为止

研究生课程:现代信息检索-第9讲 完整搜索系统中的评分计算
https://zhangzhao219.github.io/2022/09/24/UCAS/information-retrieval/information-retrieval-9/
作者
Zhang Zhao
发布于
2022年9月24日
许可协议