作者 | 上杉翔二 悠闲会 · 信息检索 整理 | NewBeeNLP
目前信息检索(Information Retrieval)几乎都是使用深度学习系列的方法,即NeuIR(neural information retrieval)。而随着预训练在深度学习领域的大放光芒,信息检索中也出现了各种预训练策略。这篇文章博主将整理来自清华大学与中科院的信息检索综述,先上路径。
如上图展示的是看待搜索过程的三种角度,分别从注重相关度的核心问题(The core problem view),看重效率的整体框架(The framework view)和完整系统(The system view)的其他内容这三方面来展开。
IR系统的目标是提供用户所需的信息,因此它的核心问题是评估一个查询q和一个文档d之间的相关性。主要方法可以分为三类:传统检索模型、Learning to Rank (LTR) 模型和神经网络检索模型。
而对于预训练在IR中的应用,也是基于Transformers等结构上计算相似度,并且可以很好的嵌入到以上各类。如基于表示的这类,使用Transformer-based的模型分别学习文档和查询的表示,然后计算这两个表示的相似度来表示相关性等等。而基于交互的方式,可以将文档和查询一起输入到Transformer-based模型上,以输出的[CLS]经过一个前馈网络获取相关度分数。
由于需要检索的整个文档集合很大,IR系统除了考虑质量(即相关度)以外还需要考虑效率。因此在框架上往往采取多阶段的结构,如上图所示,IR系统在框架上由多个re-rankers组件组成,即通常所说的召回,重排等等。根据re-rankers的数量,框架可以被定义成以下几种方式:
而将预训练应用到IR中时,也同样需要考虑效率与质量的权衡,这个权衡随着阶段的不同而不同。比如对于更关注效率的第一阶段检索,可以基于BERT的dual-encoder获取文档和查询中融合了上下文的term embeddings。而在后面的多个re-ranking重排阶段,预训练方法可以捕捉到更多细粒度的信息。
除了需要考虑效率和质量外,IR系统还要对用户足够友好,即要能够解决各种用户使用过程中容易出现的问题。比如用户所实际使用的查询query可能很短,很模糊,甚至有拼写错误。因此如上图所示,一般需要配备query parser和doc parser来处理。
对于query来说,parser需要将原始的查询转换成能够反映真实用户意图的查询表示,具体需要做的事情包括重写rewriting, 扩展expansion等。而在doc端,由于不同的网页可能有不同的页面结构和组织形式,因此paser的作用主要是用于处理文档和建立索引,以使文档能够被快速找到。
就发展历史来说,IR系统是从symbolic search system逐渐过渡到neural search system。
从这个角度上,预训练的应用可以为不同的系统而定制,如使用BERT作为backbone来做查询扩充、生成query suggestion,预测词权重并替代倒排索引中用到的原始词权重等等等等。
从表示的类型和索引模式,作者将语义检索模型分成三个类别:
主要通过获得更好的文本表示来提升检索效果,可分为四类,如下图,包括term re-weighting(上下文空间的语义替代固定的词权重), document expansion(增加语义来扩充文档), expansion + re-weighting(结合两者)和sparse representation learning(在隐空间内学习查询和文档的稀疏表示)。
dense一般使用双塔结构来学习查询或文档的低维稠密表示,然后再用这些稠密表示构建索引,并通过近似最邻近算法(ANN)在线上执行检索任务。
具体也分single-vector representations (如下图左),每次只使用一个向量表示;而multi-vector representations (图右),则每次使用多个向量表示。
优化方法主要可以通过
Sparse retrieval模型使用词,可以精确匹配信号且有解释性。另一方面,dense retrieval方法学习embeddings来编码语义,这种基于soft match信号的可以有更好的泛化性。因此综合两种模型构建一个混合检索模型可能是个不错的方向,其架构如下图,混合检索模型同时做sparse和dense,然后通过某种merging策略来综合匹配分数。
召回阶段的应用后,接下来是重排阶段的应用。
对于搜索领域来说,多阶段级联架构非常普遍,因此考虑到基于Transformers预训练模型的巨大计算开销,它们通常被使用在最后一个阶段的re-ranker重排过程中,在很小的文档集合中学习精细的表示。
分为两个流派,判别式模型和生成式模型。判别式模型直接学习一个分类器,而生成式模型估计真实的相关性分布,因此预训练模型也可以被分成三类:重点关注判别任务的预训练模型(BERT),重点关注生成任务的预训练模型(GPT),以及同时关注判别和生成任务的预训练模型(T5)。
基于排序特征的不同被分成了两个类别:基于表示的框架Representation-focused和基于交互的框架Interaction-focused,如上图左侧是两者的对比。此外,对于长文本的处理,可以使用段落分数聚合(passage score aggregation)与段落表示聚合(passage representation aggregation)来解决。在模型加速方面,也有知识蒸馏和动态建模可以采用。
基于不同的生成过程,这些工作可以被分为relevance generation(生成相关度标签)和query generation(由文档生成查询然后完成检索)这两类。