Semantic Models for the First-Stage Retrieval: A Comprehensive Review
文章目录
- 管道
- 语义模型
- 1.召回
- 形式化
- 1.0 Indexing Methods
- The inverted index倒排索引
- approximate nearest neighbor (ANN)
- 1.1 classical term-based retrieval methods,
- VSM
- 概率方法
- BIM二元独立模型
- 语言模型
- 1.2 early semantic retrieval methods
- 1.2.1 query expansion
- 1.2.2 document expansion
- 1.2.3 Term Dependency Models
- 1.2.4 topic Models
- 1.2.5 Translation Models
- 1.3neural semantic retrieval methods
- 1.3.1 稀疏检索方式
- 1.3.1.1 Neural Weighting Schemes
- 预测权重
- 匹配分数->权重
- add term
- add term+term weight
- 1.3.1.2 Sparse Representation Learning
- 1.3.2 密集检索方式
- 1.3.2.1 term-level 表示学习
- word embedding
- 上下文的word embedding+自监督预训练:Bert
- phrase-level (i.e, n-grams, sentences) representations
- 1.3.2.2 doc-level 表示学习
- 启发式函数聚合word embedding
- embeddings customized for IR
- more powerful representation learning models
- 蒸馏
- query和doc不同的编码器
- 1.3.3 混合检索方式
- word embedding
- 神经网络学习稀疏和dense向量,再匹配分数
- Bert+term-based
- 模型训练
- loss
- 负采样:Negative Sampling Strategies
- 未来与挑战
- Pre-Training Objectives for the Retrieval Stage
- More Effective Learning Strategies(负采样)
- Benchmark Testbed for Efficiency Comparison
- Advanced Indexing Schemes
- 数据集
- 2. 排序
管道
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
扩展文档后,像以前一样索引和搜索
具体做法;扩充了倒排索引中每个posting list->有效做法
历史:
- 提出:语音检索社区[192]
- Singhal和Pereira[192]:
- 用原始文档作为对集合的query,选择top10文档
- 在文档想两种添加相关文档的线性加权增强原始文档的表示
- Efron et al. [65]:
- 用于短文本检索任务
- 伪query:doc
- 通过对结果集合的分析扩展doc
- 文档聚类:以此确定相关文档,并对这些文档分析s [114, 135]
- 使用外部信息增强文档表示[3,190]
- Agirre等人[3]提出了一种基于wordnet的新型文档扩展方法来查找相关概念和单词,这是首次使用词汇语义资源进行文档扩展。
问题:
- 不便实验所以不受欢迎
- 扩展技术改变导致重新索引,代价高
- 效果好坏参半
- . Billerbeck and Zobel [23],Billerbeck好
改进:文档扩展+神经网络->提升召回性能
- doc2query[164
- docTTTTTquery[162
1.2.3 Term Dependency Models
基于term的方法:
- BOW:通常会独立考虑doc中的term,而忽略term orders(顺序)
- 缺点:
- 不能正确地描述多个连续单词表示的概念
- query和doc间连续单词的匹配也不能被准确反映
- 解决:通过将term依赖融入表示函数中解决
- 将高频次的短语纳入倒排
- Fagan [67]:短语合并VSM,将短语视作附加的维度
- phrase score:tf-idf的平均
- - Xu[218]:n-gram 扩展BM25
类型t的BM25-kernel,f-frequence
- 复杂度高,效果不明显
- Metzler and Croft [148]:马尔科夫随机场引入term依赖,第一次有了显著提升
- node:每一个doc和每一个term in query
- 链接:doc-query term
- 依赖:预先定义 (bigram, named entity, or co-occurrence within a distance)
- 实践中,定义不同的 feature func捕捉不同类型的term依赖,eg:Metzler and Croft [148].
- 将高频次的短语纳入倒排
- 缺点:
缺点:
- 理解能力有限,仅是简单地计数
优点:
- 证明了上下文信息用以理解doc语义的重要性,刺激了一系列上下文信息的神经检索模型[112,232]
1.2.4 topic Models
- 改进doc/query func:关注单词之间的语义关系,以发现文本中的潜在主题,以主题表示来匹配doc_query
- 每一个维度表示一个主题,而非term
- 失去稀疏性,不可用倒排索引
topic model
- 非概率方法:托尼盖的主题模型选择了不同的方法进行矩阵分解
- LSI潜在语义方法【54】:使用SVD获得doc项矩阵的低秩近似,然后每个doc都可以表示为主题的混合
- 非负矩阵分解【121】:引入非负约束
- 正则化的LSI[211],t通常由矩阵分解得到
- 概率方法:生成模型,每个主题被定义为在词表中term的概率分布,集合中每个文档被定义为在主题上的概率分布
- 概率LSI[90]
- latent Dirichlet allocation [25]
topic model in 检索模型中
-
- 在主题空间获得query和doc表示,然后基于主题表示计算相似度
- LSI学习一个线性映射,将BOW稀疏向量->潜在语义空间的密集向量
- 相似度即是向量之间的相似度
- 狄利克雷: latent Dirichlet allocation based retrieval model [213]
- query/doc表达:由潜在话题分布计算
- 相似度由Kullback-Leibler divergence
-
- 2.topic+term-based methods.
- 线性连接topic和term计算的相似度
- 概率topic model可以作为语言模型的平滑方法
generating probabilities of word w given document d estimated by a language model and a topic model
- 线性连接topic和term计算的相似度
效果
- 与term-based methods 相比:较差
- topic+term,效果不错
- 原因:
- 1.topic model无监督,以重建为监督目标,基于极大似然估计或者均方差,无法学习到适合特定检索任务的匹配分数
- 2.所学共现词来自doc,忽略了query与doc不同的试试,特别是query和doc异构明显时
- 3.主题模型表示的doc表示,丢失了详细的匹配信息,后来使用强大的神经网络时取得了更好地结果doc2vec[120]
1.2.5 Translation Models
用于:解决词表不匹配
通过:丰富doc 表达函数()TF->translation models.
Statistical machine translation (SMT)
- 学习目标:将query文本翻译为doc文本的概率
- 监督学习:click-through datasets
- Berger and Lafferty [21]:第一次形式化为翻译
- 语言部分:如BM25
Karimzadehgan and Zhai [108]:允许具有语义关系的term的合并(如果term概率非0)–P(q|d)的语义平滑
与传统翻译模型的区别:
- 相同语言内部的翻译
- self-translation probalities问题:P(w|w)自己翻译成自己的概率非常高–对应于精确匹配
- 如果过高,则其他翻译概率过小
- 如果太小,则降低精准匹配的效果
- 都会影响检索的性能
- 解决:[74, 108, 109]
-
Karimzadehgan and Zhai [108] :normalized mutual information between words,词间归一化互信息
- 计算成本低,对查询词的覆盖范围大(更好)(和【21】比
-
启发式:固定的自翻译概率
-
以上假设:从数据中学习的自翻译概率不是最优的
-
但【74】证明可以通过调整概率实现,显著改进
-
- self-translation probalities问题:P(w|w)自己翻译成自己的概率非常高–对应于精确匹配
翻译模型用于query扩展:
- Riezler和Liu[176]:基于word的翻译模型扩展query,
- 通过query和被点击的doc的片段训练
- Gao和Nie[75]:基于概念的翻译模型,扩展query
SMT的问题
- 稀疏:所以难以训练
- 效果差:和term-based方法比
- 在出现神经网络的word embedding后,提出了分布式表示计算翻译概率,改进翻译模型【73,242】
1.3neural semantic retrieval methods
2016之后,deep learning technique【28,87】:
- 改进离散符号表示范式中的文档表示[14,49,164]
- 在稀疏或密集表示范式中直接形成一系列新的语义检索模型[81,100,112,228]
优点:
- 将离散的符号(单词,句子,短语。。。)->低维密集向量
- 可端到端
过程
- 构建query和doc表示和score:使用神经网络
具体分为:
- sparse retrieval methods, 稀疏
- dense retrieval methods,密集
- hybrid retrieval methods.混合
总结:
- sparse retrieval methods, 稀疏:改进经典的基于term的方法
- 1.结合上下文信息,生成term加权的权重
- 2.将文本映射到latent空间
- 有效提升term-based方法性能,可用倒排索引
- 可解释性,每一个词或潜在词对应一个维度
- dense retrieval methods,密集
- 双编码器,分别学习doc,query的表示
- 捕获文本全局语义信息
- 通过ANN进行索引和搜索
- 在多个数据集上表现出色
- hybrid retrieval methods.混合
- 同时为doc/query生成sparse和dense的表示,再匹配
- 性能好,占空间,检索复杂度高
- 负采样策略很重要,但到底哪种负采样好还open
1.3.1 稀疏检索方式
表示query和doc:稀疏向量,仅有少数维度是激活的
优点:
- 可解释性
- 容易集成到倒排索引中
分类
- 神经网络加权模式:神经网络加权term,表示doc和query
- 稀疏表示学习:直接学习query和doc的表示
1.3.1.1 Neural Weighting Schemes
神经网络+term-based方法:
- term-based方法中的权重通过神经网络学习(在建立索引前),两个思路:
- 预测权重:用神经网络学习语义预测权重,而不是使用启发式函数
- 可直接替代索引中的term 权重模式(BM25 and LM),生成BOW query表示提升检索性能
- 使用额外的term扩充doc,再存储并建立索引
- 预测权重:用神经网络学习语义预测权重,而不是使用启发式函数
预测权重
静态词向量:word2vec,glove,fasttext
DeepTR model [240],:利用word embedding预估term重要性
- 对每一个query term构建特征向量
- 学习特征向量到标注重要性的映射关系
TVD: Frej et al. [71] proposed a term discrimination values learning method,
- 替换了基于FastText[26]的原始倒排索引中的IDF字段
- pairwise ranking objective
- 最小化了BOW doc表示的l1-norm->降低倒排索引的内存占用,加快检索过程
NTLM:Zuccon等人,[242]:
- 翻译模型中使用 word embedding
- 通过word embedding 估计单词之间的翻译概率
- 捕获了单词之间的隐式语义关系
下面,基于预训练语言模型
- 优点:上下文单词嵌入对全局上下文下单词的语义信息进行建模。
- 可以用于评估term的权重
DeepCT:Dai和Callan[49,51],Bert
- 以上下文感知的方式评估句子或段落的重要性
- BERT的上下文表示->映射到term权重
- 用以替换倒排索引中的tf项
- 实验证明有效
- Mackenzie et al. [143]证明DeepCT可通过静态索引剪枝,提升搜索效率
-
- 权重范围0-1
HDCT:Dai和Callan[50】,Bert
- 学习长文档的term权重
- 使用bert输出,估计passage-level term weights
- 加权和:passage-level term weights->doc-level term weights
- 权重范围0-1
- 再扩展为类似tf的整数,可直接用于倒排索引中,并可用于现有检索模型
匹配分数->权重
下面的方法,通过复杂的交互网络评估每个term和doc之间的匹配分数来估计term的权重
Mitra et al. [156]:将query term独立假设纳入三个最先进的神经排序模型中
- 最先进的三个模型:(排序)(BERT[55],Duet[153],和Conv-KNRM[52])
- 文档的相似度:根据每个查询query term分解
- ->预测每个query term和doc的匹配分数,从而离线地预先计算、索引
- 效果:段落检索任务上证明该方法比基于term的方法有原始的改进,与原始神经排名模型相比仅有很小的退化
Mitra et al. [154] ,和上一个很相似
- 通过合并query term 独立假设,将transformer-kernel[92]扩展到full retrieval setting
-
- 简化query encoder:去掉所有的transformer layer,对query term仅考虑non-contextualized embeddings
-
- 未将聚合函数作用于整个交互矩阵,聚合函数单独 作用于矩阵的每一行–对应于每个query term和整个doc之间的匹配分数
add term
扩展term:用seq2seq生成额外的term
- 增加了倒排中精英term的权重
- 扩展文档的思想
the doc2query [164]:
- 对每一个文档,使用seq2seq model生成多个query,这些query添加到doc后
- 再建立倒排索引
- BM25算法用于召回
- +re-rank组件,在MSMarco[160]和TRECCAR[59]检索基准测试上实现了最先进的性能。
docTTTTTquery model [162]
- 生成query:使用更强的预训练模型T5 [173]
- \相比doc2query性能更好
Unified Encoder-Decoder(UED):Yan et al. [219]
- 文档扩展:使用文档排序任务增强文档扩展
- the MS MARCO passage retrieval task and TREC 2019 Deep Learning Track.:SOTA
add term+term weight
试图在统一的框架下同时学习term权重和文档扩展[14,70,145]
SparTerm:Bai等人[14]
- 在词汇表上学习一个基于term的稀疏表示
- 预训练语言模型:基于频率的BOW表示->term重要性的稀疏分布
- 达到上述两个目的:add term+term weight
- 门控:生成跨词表尺寸维度的二进制稀疏表示
DeepTTTTT[145]
- docTTTTTquery:生成文档扩展
- contextualized language model:估计doc中token的语义重要性
- 单值表示:为doc中token和扩展token产生一个单值表示
1.3.1.2 Sparse Representation Learning
侧重:为每个query和doc构建稀疏向量表示,期望能过捕捉到文本的语义信息
in latent space
与主题模型的区别:
- 神经网络的每个维度无特定含义
倒排:因为稀疏,所以可以倒排
- 每个单元对应于某个“潜在的词”(其中一个维度),而非实际的某个term
语义哈希[182]:
- deep auto-encoder 进行于一建模
- 多层auto-encoder学习文档的分布式表示
- 捕获了文档的语义信息,但不对相关性建模
- 它仍然不能超越经典的基于term的检索模型,如BM25和QL
Zamani等人[228]
- 独立的神经网络排序模型
- 目的:每个query和doc学习潜在稀疏表示
- map:n-gram->低纬度dense vecotor(压缩信息)——func->高维稀疏向量
- 相似度:dot
- 更好地捕获query-doc的语义关系
-
term-based、neural ranking model
- encoding unit:n-gram
- 缺点:
- 仅能捕获局部依赖关系
- 不能动态调整到全局上下文
Jang et al. [100] presented UHD-BERT:
- 高维和可控稀疏性-增强检索能力
- 和稀疏检索模型、密集检索模型比性能更好
interaction-focused models:召回中的
-
交互模型:(DRMM [82], KNRM [215], and Conv-KNRM [52]). 要用于召回需要提高效率
-
效率:稀疏表示以提高效率
-
a locality sensitive hashing [53] approximation上面三个方法的局部哈希近似,采用fast histogram-based kernel
calculation and term vector -
ClueWeb数据集:4.12×, 80.54×, and 106.52× speedups for DRMM, KNRM, and Conv-KNRM,
1.3.2 密集检索方式
Siamese network [30](双塔模型:两个encoder一样,共享参数)
优点:
- 从稀疏->密集:捕获文本的语义信息,以更好的进行相关性评估
特点:
- 文本异构,文档内容丰富,结构复杂
索引 和搜索: ANN algorithms [38, 106].(annoy)
流程:
- query和doc通过两个encoder独立的学习向量表示
- 相似度计算
类别:
- term-level 表示学习
- doc-level 表示学习
1.3.2.1 term-level 表示学习
- 表示:term级别的表示
- query doc:是term embedding的列表或集合
- 相似度:计算query和doc的term之间相似度,再聚合为最终相似度
word embedding
在re-renking有效【82,215】
word embedding作为term embedding
- , Kenter and de Rijke [111】:仅考虑语义,不考虑语法
- BM25中的tf(qi,d)替换为qi的term和doc的term之间的最大余弦相似度
- 效果不错
- . DESM:Mitra et al. [155]:word2vec(未标注语料上训练),不仅保留lookup table,还保留了输入、输出空间projection
- query:映射到输入控件
- doc:映射到输出空间
- 计算query-doc间词对余弦相似度并聚合
- 效果:可重排bing返回的doc,效果好于term-based signal:TF-IDF
- 缺点:不对的预测为对了false-positive matches在a non-telescoping setting设置下检索时
- 应用:
- 和其他排序特性一同使用:如tf-idf
- 用于一组较小的候选文档重排序时
上下文的word embedding+自监督预训练:Bert
Zhang et al. [237] proposed DC-BERT
- 低层:双Bert编码
- 在线:仅对query编码一次(Bert)
- 离线:对doc进行预先编码,并缓存所有term表示
- 高层:transformer交互(使用预训练Bert的后k层参数初始化)
- k:容量与效率的权衡
- SQuAD dataset and Natural Questions dataset:DC-BERT比Bert快10x,与最先进的模型比,保留了98%的性能
- 任务:OpenQA
ColBERT [112] model:
- 交互:MaxSim来建模细粒度的匹配信号,计算最大相似度(余弦orL2)
- all-to-all matching retrievers
- 输入query embedding和doc embedding
- 实现廉价的交互和高效的剪枝,对topk相关文档
- MS MARCO and TREC CAR:executing two orders-of-magnitude faster and requiring four orders-of-magnitude fewer
- 好于
- FLOPs per query效率高,效果好于之前的使用Bert和不使用的方法
COIL is proposed by Gao et al. [77],:
- query仅与精确匹配的doc交互:the MaxSim operator
- 效果好于 ColBERT
Cao et al. [34] and MacAvaney et al. [141] proposed DeFormer and PreTTR:
- 分解lower layers of BERT—>the full self-attention with question-wide and passage-wide self-attentions
- 优点:降低深度transformer的查询延迟
- 区别;PreTTR model [141]插入一个压缩层去匹配attention score
- 效率:存储消耗降低到95%,检索性能无显著降低
phrase-level (i.e, n-grams, sentences) representations
term-level->phrase-level
- doc:phrase 列表或集合,矩阵
- query:a phrase,因为长度短,一个embedding
- 相似度:计算query和doc中所有短语的相似度,聚合
, Seo et al. [186]:OpenQA
- BiLSTM
- 优点:可伸缩性
- 文档中的答案候选短语的编码
- 离线计算+索引
Seo et al. [187] and Lee et al. [122]
- Bert:由BERT学习的具有上下文化稀疏表示的增强密集表示,->短语embedding质量提升
- query:只有一个embedding
- 效果更好,和 BERT-based pipeline models比也是
- 速度:推理时间快两个数量级(和BERT-based pipeline models比
MUPPET:El-Yaniv [69]
- SOTA: SQuAD-Open and HotpotQA.
- query表示q
- doc:段落中的句子表示s
1.3.2.2 doc-level 表示学习
组粒度的全局表示
每个query和每个doc可能有一个或多个doc-level表示
启发式函数聚合word embedding
. Clinchant and Perronnin [45]:Fisher Vector (FV)
- a document representation model
- word embedding->映射到高维向量->doc–Fisher kernel framework->doc embedding
- 效果>LSI但是<TF-IDF,divergence from randomness [7]
Gillick et al. [81]
- 利用单词嵌入的平均值作为查询或文档表示
- 效果:优于基于term的检索模型(如TF-IDF和BM25)
- 表明密集检索是离散检索模型的可行替代方法
- 问题:通过聚合单词嵌入来获得文本表示,就会像经典的基于term的检索模型一样,丢失上下文信息和词序信息。
Le and Mikolov [120] proposed Paragraph Vector (PV),
- 无监督算法
- 从可变长度的文本片段中学习固定长度的表示,如句子、段落和文档。
- 评估:. Ai et al. [5, 6] hoc retrieval 使用PV
- 问题:提升少,性能不稳定
和基于term-based方法比,改进小而且局部
–因此需要,特定于IR的embedding或者更有效的embedding(更强)
embeddings customized for IR
Ai et al. [5】enhanced PV mode
- 动机;原始PV模型限制其检索任务性能
- 修改PV
- 在Robust04 and GOV2实验证明有效
Gysel et al. [85] proposed the neural vector space model (NVSM)
- 无监督
- 用于新闻文本
- 学习词和doc的潜在表达
- query:平均连续的词向量->投影到doc空间中
- 相似度:在doc空间中计算相似度
- 性能:好于lexical retrieval models,在四个数据集上
SAFIR [4].:
- 无监督
- 从0 学习word,concept,doc表示
- query:平均word-concept表示,映射到doc空间中
- 相似度:在doc空间中计算相似度,cos
- 医学:collections for medical literature retrieval
除了直接优化检索目标的单词/文档嵌入外,考虑外部知识资源,如语义图、本体和知识图,以增强语义检索的嵌入学习是另一种有效的解决方案[136,159,197]。
Liu et al. [136]:
- 外部信息:existing knowledge (word relations) in the medical domain
- 约束原则:相似的词有相似的embedding
- 利用外部知识约束word embedding
- 效果:优于无监督方法
什么促使出现特定于IR的模型的出现?
DSSM [96],ARC-I [93], and QA_LSTM [198]:
- 网络: fully connected network, convolutional neural network (CNN), and RNN
- 匹配相似度:简单地cos、bilinear
- dual-encoder architecture
- 提出于re-rank,但可用于召回
- Guo et al. [82] shows that DSSM, C-DSSM [189], and ARC-I’在学术数据集上表现差
- 用于全文时效果差,仅用于标题时较好
more powerful representation learning models
Henderson et al.[87]
- natural language response suggestion.
- 前馈神经网络ffn用n-gram embedding去编码成向量: messages and suggested replies
- 优化:使得message-response pairs的点积更高
DPR [110] model :
- dense embeddings for text blocks with a BERT-based dual encoder
- 性能:打过a strong Lucene BM25 system, end-to-end QA performance
RepBERT [232] model:
- dual encoder based on BERT–>query and doc embedding-
- 相关性:inner products
- 效果: RepBERT>BM25
- 任务:MS MARCO passage ranking task
蒸馏
更复杂的模型->a document-level representation learning architecture
- 更复杂的模型(e.g., a term-level representation learning method or interaction-focused model)
Lin et al. [132]:
- MaxSim->点积:ColBERT’s expressive MaxSim operator
- enabling a singlestep ANN search
- 核心思想:
- 在蒸馏过程中,教师模型和学生模型之间的紧密耦合使蒸馏策略更加灵活,并产生更好的学习表示
- 速度增快,存储需求下降,但性能也有所下降
Tahami et al. [196]:
- teacher:the complex BERT cross-encoder network
- student:BERT bi-encoder model
- 利用知识,->压缩为学生
- 性能:在三个数据集上表现出色
- 提升了BERT bi-encoder model的性能,而不影响推理速度
query和doc不同的编码器
[97, 137, 199]
doc:把内容编码成不同的embedding,表示doc的不同方面
query:编码成一个embedding
动机
- doc:lengthy and have diverse aspects in them
- query:短,而且主题集中(一个)
Luan et al. [137] proposed Multi-Vector BERT (ME-BERT):
- Bert->向量的列表
- query:[cls]的向量
- doc:前m个向量,m<<N(doc长度)
- 相似度:m个doc向量与query之间相似度的max
- 效果:用于open retrieval,效果很好
Humeau et al. [97] proposed Poly-encoders
- two separate Transformer models
- context,input text==query:使用多个向量表示
- doc:candidates,用一个向量表示
- context和candi计算attention获得最终相似度
- !!这里的query比doc长的多,所以反过来了
1.3.3 混合检索方式
稀疏向量:
- 可使用倒排,通过硬匹配分数建立倒排索引
- 为word或者"latent word"
- 强分辨能力
dense向量:
- 语义信息的连续表达
- soft的匹配信号
- 丢失了低纬度特征的细节
混合模型:[78, 85, 115, 207].
- 多个表达:dense 和sparse
- 混合,计算相似度
- 最终表达
word embedding
term-based method
Vulić and Moens [207]:
- 结合: word-embedding-based method + a uni-gram language model–>在单语言和多语言中表现出色
- 在单语言检索中,embedding-based model不比传统语言模型好
- 结合好于替代, term-based retrieval methods 结合word-embedding
- [155, 158],中有同样的现象
- BM25等term-based方法+word embedding
GLM [73]
- embedding-based translation mode线性组合 传统语言模型
- 从doc中观察到query中的term t的概率:
- direct term sampling:从doc,或collection中,然后转化为query term
- 优于传统语言模型
. Roy et al. [180]
- query likelihood:word向量的似然+standard language model
- combined similarity measure比the language model similarity measure好得多
Gysel et al. [85],[4, 136, 197]:
- NVSM为term-based提供补充信号:两者结合效果好
神经网络学习稀疏和dense向量,再匹配分数
与使用单词嵌入来构建密集表示和使用TF直接获得基于术语的匹配分数不同,也有一些工作尝试使用简单的神经网络来学习稀疏和密集表示,然后基于学习到的表示来计算匹配分数
dos Santos et al. [62]:BOW-CNN
- 在开放的QA社区检索相似的问题
- 表示:BOW向量+CNN的向量表示相结合
- 相似度:sbow(q1,q2)、sconv(q1,q2)s_{bow}(q1,q2)、s_{conv} (q1,q2)sbow(q1,q2)、sconv(q1,q2)
- 结合两个相似度
- 效果:Stack Exchange communities的数据集上表现良好(两个数据集)
- 比BOW效果更好,如 TF-IDF
- 比纯CNN更稳定,在长文本上
MacAvaney et al. [142] EPIC
- passage retrieval
- 生成query和doc表达:固定长度的向量空间中
- query as a sparse vector
- doc:dense
- dot product
- 效果极佳
Bert+term-based
. Seo et al.[187] proposed DenSPI
- openQA
- 编码:每一个phrase都有dense+sparse
- dense:phrase的开始和结尾,Bert产生,用于语义和句法
- sparse: 2-gram-based TF-IDF:精确编码词汇信息encoding precise lexical information
Lee et al. [122] :
- 稀疏:用Bert生成: contextual sparse representation-每个短语
- 通过修正自注意力机制
- sparse vectors in n-gram vocabulary space
- 其他和DenSPI一致
- 速度比其他Bert的pipeline模型更快,两个数量级
- 性能更优
Luan et al. [137] :
- 线性合并,用可训练的权重加权求和两者的评分
- term-based system (BM25-uni)
- neural-based system (dual-encoder or multi-vector model)
- scalability.
Gao et al. [78]:CLEAR
- 基于bert的嵌入模型 补充 基于术语的模型(BM25)
- 精度达到re-rank的程度
Kuzi et al. [115]
- a semantic model (BERT) and a lexical retrieval model (BM25)
混合方法的有效性—>词汇模型和语义模型的互补性
模型训练
loss
训练目标:在训练损失最小化后,应该满足文档之间的所有偏好关系,并且模型将为每个查询生成最优的结果列表
loss:sampled cross-entropy loss,也叫negative log likelihood loss
q:query
d+:正例
D-:负例集合
hinge loss:
上述两个loss的应用(变体/别名
- InfoNCE loss in contrastive representation learning [41, 201】
- Bayesian personalized ranking loss in recommender systems [175].
- extreme multi-class classification [15, 24, 174],
- representation learning [41, 201],
- deep metric learning [194, 209, 210],
下面的为检索的loss设计提供了思路:但需要进一步在召回中验证
, Wang et al. [210]:
- hinge loss的平滑–negative log likelihood loss
- margin可以引入到negative log likelihood loss:性能提升
some works [41, 210, 220]
- 最终loss(cos相似度。。。)中使用l2正则,稳定,性能提升
NLP [24, 101]:一些NLP任务更关注无偏估计
- unbiased estimation of the full softmax
Chuang et al.[42]
- 不关注无偏估计
- 纠正偏差:false-negative samples通过引入负例
负采样:Negative Sampling Strategies
负采样
- 直接决定了检索质量
- 对于仅有正样本的问题而言:
- recommender systems [60, 220, 225, 226, 236], graph mining [9, 195, 222], and self-supervised representation learning [27, 37, 41, 86, 238]等任务中,负采样也很重要
- 在检索中有三类
- 随机负采样
- entire corpus [110, 137]
- batch [81, 87, 88, 232].:批的大小影响结果[81]
- Lee et al. [123]:大批次更好,更难并且接近测试场景
- 但受限于计算资源,不能很大
- He et al. [86] :使用小批次,并且维护个负采样队列
- 最新的加入队列,最小的batch离开队列
- 在队列中负采样
- 问题:随机采样过于简单,难以提供细致的区分
- 实践中这个似乎最好
- Static hard negative sampling:
- 通过传统检索系统(BM25)随机从top文档中抽取
- 提供更强的对比,有助于训练收敛,计算效率高
- 问题:使用term-based方法找负例,并不好,应为神经网络的方法希望找到term-based找不到的文档
- –>训练和测试的不匹配
- Dynamic hard negative sampling:
- 高分而非正例:从检索模型本身预测的排名最高的无关文档中提取随机的样本。 [166, 195].
- 大数据库不友好
- 实际: [61, 78, 95, 216]
- 定期刷新索引
- 将检索排名最高的文档作为硬负例
- e.g.Xiong et al. [216]:BERT-based Siamese architecture,+hard负例
- 效果稳定超出term-based方法
- 混合:easy+hard
- Huang et al. [95]:仅使用hard并不比random好
- easy:是普遍需要排除的情况
- hard:并不能代表所有的可能性(负例
- Huang et al. [95]:仅使用hard并不比random好
- 随机负采样
未来与挑战
Pre-Training Objectives for the Retrieval Stage
Some researchers [35, 84, 123]:
- 双编码器Bert
- 预训练任务
- 双塔模型 Lee et al. [123]:Inverse Cloze Task (ICT) ,用双塔transformer替换BM25
- 优点:retriever和reader一同训练
- 缺点:效果并不比BM25好,引文finetune仅再查询塔上训练
- Chang et al. [35] also proposed the Body First Selection and Wiki Link Prediction tasks—预训练任务
- 通过设计段落级预训练任务, (ICT,和上面两个),可以显著提升性能,好于BM25
- Representative Words Prediction task for ad hoc retrieval:Ma et al. [139, 140]
- 该预训练的方法好于其他预训练和未预训练的方法(在re-rank阶段)
- 是否适用于召回阶段还需要进一步探索
- 双塔模型 Lee et al. [123]:Inverse Cloze Task (ICT) ,用双塔transformer替换BM25
未来的方向:
- 召回:召回尽可能多的相关文档
- 需要考虑:检索需求,并建模与任务相关的特征
- 跨模态数据(如图像)
More Effective Learning Strategies(负采样)
问题:数据集是有偏差的,仅包含部分正例,其他正例也被视作无关文档(这可能是负采样仅有hard无效的原因)
Chuang et al. [42]:
- debiased contrastive objective
- 纠正相同标签数据点的采样,虽然没有标签的知识
hard negative samples可以区分相似的信息,但其潜力尚未被开发
Asynchronous ANCE:
- Xiong et al. [216]
- 定期刷新ANN index,并且采样顶部排序的doc作为负例
- 效果好,但刷新索引成本大
同时学习easy+hard会更有效: [231].
- 探索hard,还有样本的顺序和位置(采样的)
未来
- 复杂的学习策略
- 长尾、稀疏–》weak supervised and unsupervised learning
Dai and Callan [50] proposed a content-based weak supervision strategy:
- 挖掘训练标签
Benchmark Testbed for Efficiency Comparison
召回关注时间效率,但也要考虑性能
- 训练机器不同下比较效率无意义
- 公平比较
Hofstätter and Hanbury[91]
- 通过引入基于文档的完整检索系统提交,使运行时指标的比较可行,以便所有系统可以在相同的硬件条件下进行比较。
Advanced Indexing Schemes
-
密集向量的检索:ANN
- 现有的dense 方式将检索与索引分开,缺点:
-
- 索引无法从监督信息中获利,因为是单独的函数
-
- 分开获得,所以不是最优兼容
-
- 联合训练:studies [227, 233]
- 现有的dense 方式将检索与索引分开,缺点:
-
设计更好的ANN
- 牺牲性能,获得更快的速度(近似)
- 两种
- non-exhaustive ANN search methods [22, 144]
- a large index size
- vector compression methods [79, 99, 102]
- 次优性能
- non-exhaustive ANN search methods [22, 144]
数据集
ClueWeb数据集
the MS MARCO passage retrieval task :MSMarco[160]
TREC 2019 Deep Learning Track:TRECCAR[59]
Robust04
GOV2
OpenQA:
SQuAD dataset
SQuAD-Open
Natural Questions dataset
HotpotQA.
2. 排序
快速发展,输入文档小,精度高
-
early probabilistic models [177, 178,202]
-
learning to rank models [126, 134]
-
to recent neural ranking models [82, 96, 161].
-
with BERT-style pre-training tasks on cross-attention model[161,163]