Semantic Models for the First-Stage Retrieval: A Comprehensive Review
文章目录
管道
Multi-stage ranking pipelines
范式:多阶段的排序管道
第一阶段召回,第二阶段重排序
- 召回:通过索引结构辅助的廉价排序模型从大规模库中返回候选文档
- classical term-based models长期主导
- 限制了排序的上限
- 排序:更复杂和更有效模型来修剪和改进
- 技术变化迅速(很多人做)
- 粗排和精排
稀疏或密集索引技术:[38,157,235,241]
neural models for IR [83, 151, 152, 165]:
- Onal et al. [165] paid attention to the
application of neural methods to different IR tasks. - Guo et al. [83] took a deep look into deep
neural networks for re-ranking stages - Lin et al. [131] discussed several pre-training models for the firststage retrieval and re-ranking stages
For the first-stage retrieval,
- the booklet by Li and Xu [127]
talked about early semantic retrieval models, but without recent booming neural models for the first-stage retrieval.
应用:
- ad hoc retrieval [12],
- 用户将自己的信息需求表示为查询,然后在检索系统中触发搜索以获取相关文档。所有检索到的文档通常会根据与用户查询的相关性程度作为排序列表返回
- 数据集:
- 小规模:TREC collections, such as Associated Press Newswire (AP), Wall Street Journal (WSJ),ClueWeb [44],
- 大规模:MS MARCO [160], TREC CAR [59], and TREC Deep Learning Track [47],
- 特定领域: GOV2 [43], TREC Medical Records Track (MedTrack), and TREC-COVID [203]
- 返回:文档排序列表
- open-domain question answering (OpenQA) [191, 206],
- 返回:文本跨度(答案)
- 信息源:Wikipedia or Web page。。
- 两阶段
- 文档检索
- 相关文档不仅相关,且能解决该问题
- 精确term匹配+语言理解
- 文档阅读
- 文档检索
- 数据集:SQuAD-open [36], SearchQA [63], TriviaQA-unfiltered [107],and Natural Questions Open [116]
- 小规模:Web问题[20]和策展TREC[16]
- 数据源: based on Wikipedia pages
(e.g., SQuAD-open and Natural Questions Open) or Web pages (e.g., SearchQA and WebQuestions),
and queries are written by crowd-workers (e.g., SQuAD-open) or crawled from existing websites
(e.g., SearchQA and TriviaQA-unfiltered).
- community-based question answering (CQA) [31, 193].
- 问题对:Yahoo! Answers,1 Stack Overflow,2 and Quora.3
- 如何产生用户问题的答案
- 从集合中找答案
- 建立问题与答案之间的逻辑关系
- 从集合中找相同的问题,其附带的答案为答案
-捕捉短语之间的相似度(不同表达方式)
- 从集合中找答案
- 其他检索的应用: entity linking [80], e-commerce search [125, 128, 234], and sponsored search [68]
语义模型
语义模型帮助系统更好的理解query和doc
在不同阶段,语义模型有不同的需求和目标
- 召回:从整个集合中召回所有潜在相关的文档
- 规模:数百万(如维基百科)到数十亿(如网络)
- 排序:用于重新排序的语义模型可以使用更复杂的架构来实现高精度,将尽可能多的相关文档放在列表的最高位置
1.召回
Semantic Models for the First-Stage Retrieval: A Comprehensive Review
- 问题:vocabulary mismatch problem
- 需求:semantic models建立语义模型以求更高的召回
在统一的框架下介绍召回模型 - 目的:从整个集合中召回所有潜在相关的文档
- 在短时间内返回包含尽可能多的相关文档的文档子集
- 区别:排序的模型难以用于召回,因为其复杂度高
相关数据集:
基于:
形式化
三个模块/组件
- 文档表示函数
- 独立于query,离线,对在线无影响
- 离线:预先计算并建立索引
- query表示函数
- 在线,高效,可以与文档表示一致,也可不同
- 评分函数
- 尽可能简单,在线
- 必须采用索引
1.0 Indexing Methods
经典方法:cooperating retrieval models
为支持大规模快速检索,必须建立索引
索引方式: signature, inverted index, and dense vector index
The inverted index倒排索引
要求:文档的term矩阵很稀疏
优点:简单有效
[214, 241].
- 首先doc->tokens 列表
- 创建倒排索引,包括
- 字典
- 包含terms和其在集合中的频率
- posting list的集合
- 文档标识符、term出现频率,以及可能出现的相应term的文档的其他信息
- 查询时
- 给出一个term,返回topk个doc
- 对于一个query,每次只用一个teerm去查找
- 起初每个doc与query的相似度为0
- 然后对每个query term t,查找每个文档,term和文档之间的相似度,加到query和doc的相似度中国
- 处理完所有query term,也就获得了每对query-doc的相似度,获得topk个相似文档
- 有很多加速策略提升检索速度
- 字典
approximate nearest neighbor (ANN)
a dense vector index
用于:于一检索模型产生的dense and distributed 文档矩阵
开源ANN工具:
- Faiss [105]
- SPTAG [39]
- annoy
建模:一旦计算出query embedding 和doc embedding ,检索问题->最近邻搜索问题[188]
最近邻搜索:
-
简单方法:暴力搜索,全盘扫描,逐个计算相似度得分
-
近似方法:人工神经网络搜索[11,64,129],允许精度轻微损失,速度快上多个数量级
-
最近邻近似搜索算法:
- tree-based [17, 19],
- hashing-based [53, 99],
- 最早的方法: locality-sensitive hashing [99]
- quantization-based [79, 102]
- proximity graph approaches [113, 144]–目前效果最好
- 保留邻居信息:每个单独的数据点-枢纽or其他点
- 提出了各种贪婪式启发方法获取给定查询点的近似图
1.1 classical term-based retrieval methods,
召回中的长期主导
经典方法:
- VSM(vector space model)
- 概率检索模型
- 语言模型
后两者是VSM的不同加权方案
方法流程:
- 离散的符号标识(词包BOW)–构建query/doc表示
- 忽略语法、语序
- query/doc函数为手动定义的特征函数,如词频
- query和doc通常不同,但是都是稀疏的,支持倒排
- 表示的维度:vocabulary size
- 倒排索引管理大规模文档
- 使用经典方法
假设:独立性假设
以浅层词汇的方式建模相关性,特别是结合反向索引,使经典的基于术语的模型在效率方面的关键优势,使其成为可能
优点:
- 索引强大
- 简单有效
缺点:
- vocabulary mismatch problem[72,239]:由于独立性假设
- 不能通过忽略term排序信息来更好的捕捉文档语义
为解决vacabulary mismatch problem:
- query扩充[119,124,171,217]
- doc扩充[3,65,135]
- term dependecy models[76,148,218]
- topic models[54,213]
- translation models[21,108]
- others…
发展缓慢,局限于discrete symbolic representation paradigm,离散符号标识范式
VSM
query/doc func:
- 将doc和query映射到公共向量空间的高纬稀疏向量
- 每个维度:
- 对应于词典中的每个term
- 权重:TF、IDF、TF-IDF
评分函数:cos
查询top相关doc
概率方法
引入概率论作为估计相关概率的原则基础
BIM二元独立模型
二元:出现为1,未出现为0
引入了:独立性假设和二元假设
问题:假设与事实相反
- 放松BIM的假设
- 方法:
- tree dependence model [202]
- BM25:term matching+TF-IDF权重
- 考虑了文档频率、文档长度和TF
- 应用广泛
- 方法:
语言模型
不建模相关性概率
- doc/query func
- doc 为每个doc建模一个语言模型
- 假设:BOW
- multiple Bernoulli [170] or multinomial [89, 150]
- doc 为每个doc建模一个语言模型
- 相似度:根据语言模型生成query的概率
效果好于TF-IDF
扩展方法:[29,229]
1.2 early semantic retrieval methods
2013之后,word-embedding相关的模型[45,73,207]:dense 表达,一定程度上缓解了vocabulary mismatch problem
从外部资源或者集合本身挖掘信息、
优点:
- 大多基于term-based methods, 使用高维稀疏向量表示文本,可用倒排索引
缺点:
- 人工特征
- 仅能学到较浅的语法和语义信息
早期的语义检索模型,如查询扩展、文档扩展、术语依赖模型、主题模型和翻译模型,旨在通过从外部资源或集合本身中提取的语义单元来改进经典的BOW表示。
。其中大多数仍然遵循经典的基于term的方法,在符号空间中用高维稀疏向量表示文本,以便很容易地与倒排索引集成,以支持有效的检索。
然而,这些方法总是依赖于手工制作的特性来构建表示函数。因此,只能捕获较浅的语法和语义信息。
然而,这些早期的建议是至关重要的,因为它们最初已经探索了第一阶段检索的有益因素。因此,当深度学习技术的出现时,可以激发一系列新的语义检索模型,同时获得令人兴奋的结果。
1.2.1 query expansion
从外部资源选择term扩展query
方法:
- 全局方法[124,171]
- 查找语料库中co-occurrences的词(共现)
- 或wordnet:同义词点
- 扩展或重构query
- 数据驱动的query扩展
- 可提升平均检索性能,但在不同query的表现不同
- local方法【2,230]
- 会根据原始query的top文档调整query
- pseudo-relevance feedback (PRF) [33],:伪相关反馈
- 很有效
- 使用它的检索模型:[138, 179]
- 具体方法:相关性模型[119]、混合模型和散度最小化模型[230]是在语言建模框架下提出的第一个PRF方法。
- 相关性模型最优,且效果稳定
- 神经词嵌入和深度语言模型被用于增强查询扩展方法[58,146,181]。
缺点:
- 并不能稳定产生性能的提升
- PRF:查询漂移问题the query drift problem [46]
1.2.2 document expansion
扩展文档后,像以前一样索引和搜索
具体做法;扩充了倒排索引中