IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> Pre-training Methods in Information Retrieval 阅读笔记(前6部分翻译) -> 正文阅读

[数据结构与算法]Pre-training Methods in Information Retrieval 阅读笔记(前6部分翻译)

原文地址https://arxiv.org/abs/2111.13853,本文是对其前6部分的翻译,后面有关数据集,未来发展方向的暂时没有翻译。文中涉及的相关文献请根据引用到原文对应寻找!

(一次成稿未免有疏漏,有问题欢迎在评论区讨论)

ABSTRACT

????????IR的核心问题是要根据用户的信息需求(information need),从大规模的语料中找到相关的文档,并且在排序之后返回给用户。近来由于深度学习的崛起,出现了比较火的研究方向NeuIR(即 neural information retrieval),特别是采用预训练的方法。受益于高难度的训练目标以及巨大的模型容量,预训练模型模型可以从大量的文本中学习到通用的语言表示,这对于IR中的排序任务是有极大帮助的。鉴于有许多工作致力于预训练模型(PTM)在IR领域的应用,本文将PTM的现有工作进行整理,得到对未来发展的一些看法。本综述对预训练模型在IR系统中各个阶段任务的应用均有涉及,比如retrieval部分,re-ranking部分以及其他部分。另外,本文还专门介绍用于IR 的PTM,并总结了相关的数据集,benchmark以及leaderboards。最后,我们对未来的挑战以及发展方向进行展望,并希望以此启发未来更多的相关研究。

1. INTRODUCTION

????????IR是现实世界很多应用的基础,比如数字图书馆,搜索引擎,问答系统等。IR的核心问题是从大规模的文档集合中检索回满足用户意图的资源。由于满足用户意图的资源可能很多,最后返回的应该是根据资源(文档)与用户意图的相关度排序过的列表。这种排序的属性使得IR任务与其他任务有别,使得研究者致力于各种各样排序模型的探索。

? ? ? ? 再过去的几十年中,有许多不同的模型出现,包括vector space models (Salton et al., 1975), probabilistic models (Robertson and Jones, 1976b)以及learning to rank模型(Li, 2011)。这些方法被成功地应用在了不同的IR应用中,诸如Google的网页搜索引擎,头条的推荐系统,Quora的社区问答系统等。最近,各种各样的neural ranking model被提出,引发了关于NeuIR的研究浪潮。不同于过去依赖人工特征和统计方法的non-neural models,neural ranking model能够自动地从数据中学习到低维连续向量,用于作为排序的特征,从而摆脱了复杂的特征工程。尽管neural models在IR中取得了成功,但大规模高质量的标注数据限制了模型的性能,因为这些neural model需要这些数据来学习大量的参数。

? ? ? ? 近年来,预训练模型(PTMs)流行起来并变革了NLP任务的研究范式。这个方法首先要通过自监督(self-supervised)训练的方式在大规模的语料上对模型做预训练,随后在下游任务上对模型做微调(fine-tune)从而达到SOTA的效果。相关工作表明,这些与训练模型可以捕捉到一些词法知识和常识类知识,这些知识有益于下游任务,并且在fine-tune过程中不需要从零学起。另外,随着硬件算力的提升以及Transformers模型结构的出现,预训练模型的参数规模可以有效且大规模地提升,从million级别到billion级别(BERT, GPT-3)甚至trillion级别(Switch-Transformers),这些都对IR的排序模型有提升。一方面,预训练模型是在大规模语料上通过自监督的方式训练得到的,它可以更好地理解查询的意图以及文档的语义;另一方面,经过堆叠的深层Transformers结构可以学习到查询与文档之间复杂的相关模式(即如何理解相关,这是一个比较抽象的概念)。由于这些潜在的优势以及对PTMs在IR上应该取得同其他NLP任务一样的成功的预期,我们见证了大量开发PTMs在IR上应用的工作。在本篇综述中,我们只关注PTMs在文本检索上的应用。关注PTMs在基于内容的图像检索上的应用可以参考(Dubey, 2020),或多模态检索上的应用可以关注(Fei et al., 2021)。

? ? ? ? 迄今为止,许多工作致力于PTMs在IR上的引用。学术上,研究者们提出了很多创新的方法。比如早起的工作尝试直接将通用预训练模型中学习到的知识迁移到排序模型中来,并取得了一定的效果(Nogueira and Cho, 2019; Dai and Callan, 2019b)。?再往后一些的工作提出增强已有的预训练模型,比如通过改变模型结构(MacAvaney et al., 2020; Khattab and Zaharia, 2020; Gao and Callan, 2021a),或者设计新的更适用于IR需求的预训练目标(Chang et al., 2019; Ma et al., 2021b; Ma et al., 2021c)。同时,在工业界,Google 2019年10月的技术博客以及Bing 2019年11月的技术博客都表明预训练的排序模型(比如基于BERT的模型)可以更好地理解查询意图并给搜索引擎提供更有用的结果。另外,观察到排序任务的leaderboard,可以发现排在前面的模型都是基于PTM构建的。考虑到关于PTMs在IR上研究的快速增加,我们认为现在要梳理一下该方向的发展现状,并获取一些未来发展的思路。

? ? ? ? 本篇综述中我们致力于提供一个关于PTMs在IR领域上系统且全面的总结,包括在一些顶会上(如SIGIR, TheWebConf, CIKM, WSDM, ICLR, AAAI, ACL, EMNLP和ECIR)以及期刊(TOIS, TKDE, TIST, IP&M和TACL)上发表的关于PTMs在深度学习,NLP以及IR领域上从2018到2021年的文章。也有一些以前的相关研究,比如Onal et al. (2018b)和Guo et al. (2020b)回顾了nueral IR相关研究,但没有涉及PTMs在IR上的研究。Yates et al. (2021)提供了早期的关于PTM在IR上应用的综述,但主要聚焦于BERT在文本排序上的应用。Cai et al. (2021b)回顾了统一框架下针对第一阶段retrieval任务的语义模型,包括早期的semantic retrieval模型,neural retrieval模型以及基于PTMs的retrieval模型。与之不同的是本篇针对的是IR任务中涉及到的各个阶段,包括第一阶段retrieval, re-ranking以及其他组件。我们还描述了专门设计用于IR任务的PTMs,以及用于排序模型预训练和微调的资源。另外,我们还介绍了一些对未来工作的挑战和建议。

? ? ? ? 整篇综述组织的结构如下。首先在第2部分做一个系统性的总结。在第3到第5部分分别介绍PTMs在retrieval部分,re-ranking部分和其他部分的工作。在第6部分介绍为IR任务专门设计的PTMs模型。在第7部分介绍大规模的数据集,常用的benchmark leaderboards。最后在第8部分做总结并提出一些未来的发展方向。

2. BACKGROUND

????????本章节采用分层的方式介绍IR的一些基本概念和定义,并简要回顾一下PTMs在IR的应用。这个背景介绍可以帮助读者理解IR的基本思想,并能够更好地理解PTMs如何提升IR。

? ? ? ? 如图2.1所示,我们通过将搜索的过程分层来介绍,从核心问题,到框架再到系统。具体地,我们使用大写字母Q,D,F来表示查询集合,文档集合和retrieval函数集合,用小写的q,d,f来分别表示一个具体的实例。R知道相关性预测模型,r表示关于一个给定query返回的搜索结果。

2.1 从核心问题角度看IR

????????IR系统最基本的目标就是提供给用户与之需求相关的信息,因此,最基本的问题就是评估一个查询q和一个文档d之间的相关性。实际上,搜索的过程始于用户向搜索引擎提交一个查询,一定程度上,这个查询就代表了他的查询意图。随后搜索引擎的目标就是返回一个与该查询意图最相关的结果,并将这些结果以有序列表的形式呈现。因此,将查询q与文档d之间的相关性度量越好,用户的满意程度就越高。为了评估q和d的相关的分,已有的工作根据不同的策略来考虑q与d的相关性,总共可以分成三类:

  • 传统检索模型:这类模型的核心想法是利用精确匹配信号(exact matching signals)来设计相关性分数计算方式。具体地,这些模型只考虑易于计算的统计量,比如q与d公共词的词频,文档长度,你文档频率(idf)。最终相关性的分数是通过将所有公共词的贡献加在一起得到的。其中BM25(Robertson et al., 1995)模型具有很好的性能,至今仍然是很强的基线模型。除了BM25以外还有一些它的变体,比如源自vector space model的PIV模型(Singhal et al., 2017),受language modeling方法启发的DIR模型(Zhai and Lafferty, 2004),基于随机性框架分布的PL2模型(Amati and Van Rijsbergen, 2002)等。然而这些模型可能会遇到词汇不匹配(vocabbulary mismatch)问题,因为使用的是精确匹配。
  • Learning to Rank (LTR) 模型:LTR模型的核心思想是利用有监督机器学习算法通过人工设计的特征来解决排序问题。一些有效的特征包括基于查询的特征(比如查询类型,查询长度),基于文档的特征(比如PageRank,文档长度,内链数量以及点击次数),查询文档的匹配特征(比如共现次数,BM25分数,N-gram BM25分数以及编辑距离)。根据损失函数中包含的文档数量,LTR模型可以被分为三类:1)Pointwise方法,只考虑一个单独的文档,将排序问题视作分类问题或者回归问题。代表模型包括PRank (Perceptron Ranking) (Crammer, Singer, et al., 2001)和McRank (Li et al., 2007)。2)Pairwise方法,考虑一对文档,根据标注构造偏序对。代表模型包括使用交叉熵作为损失函数的RankNet (Burges et al., 2005b),以及RankSVM (Herbrich et al., 1999),该模型把分类问题变成偏序对的分类问题,使用SVM来学习。3)Listwise方法,该方法直接考虑整个文档列表中所有的文档。代表模型包括LambdaMart (Burges et al., 2006),该模型直接对listwise损失函数使用梯度下降的方式进行优化。更多细节可以参考另一篇有关LTR for IR的综述 (Li, 2014)。
  • 神经网络检索模型:这类模型采用神经网络来抽取相关性特征用于评估。这些模型使用q和d的嵌入表示作为输入和相关性标注来做端到端的训练。相比于非神经网络模型,这些模型不需要人工设计的特征。这些模型可以被分为三类:基于表示的模型,基于交互的模型和混合模型。1)基于表示的模型分别给查询和文档学习一个表示,然后使用类似预先相似度或者内积的方式来计算两个表示的距离,从而衡量查询和文档的相关性得分。这类模型包括DSSM (Huang et al., 2013)和CDSSM(Shen et al., 2014)。2)基于交互的模型主要刻画文档和查询之间的交互,这类模型首先计算一个交互矩阵,这个交互矩阵中的每个元素表示查询和文档中某两个词之间的相似度,随后从这个交互矩阵中采用不同的方式提取出用于分析q-d相关性的特征。这类模型包括DRMM(Guo et al., 2016b)和convKNRM(Xiong et al. 2017b)。3)混合模型,将基于表示的模型和基于交互的模型综合在一起。比如Duet (Mitra et al., 2017)和CEDR(MacAvaney et al., 2019b)。更多的细节可以参考更早的关于NeuIR的综述(Onal et al., 2018a;Guo et al., 2020a)。

? ? ? ? 由于BERT在NLP领域取得了巨大的成功,大部分用于IR的PTMs模型也都是在Transformers结构的基础上来计算q-d相似度的。这些模型也有不同的上层结构,比如基于表示的如DPR(Karpukhin et al., 2020), ColBERT (Khattab and Zaharia, 2020)以及ME-BERT(Luan et al., 2020),以及基于交互的如MonoBERT(Nogueira and Cho, 2019),CEDR(MacAvaney et al., 2019b)以及duoBERT(Pradeep et al., 2021)。具体举例来,DPR(基于表示)使用BERT-based的encoder学习到文档的表示,随后使用另一个BERT-based的encoder学习到查询的表示,最后通过直接计算这两个表示的相似度来表示相关性分数。MonoBERT(基于交互)将查询和文档拼接在一起作为输入,经过BERT之后输出的[CLS]再经过一个前馈网络获取相关度分数。更多细节可以看文章后面的章节。

2.2 从整体框架角度看IR

? ? ? ? 给定一个文档集合D,IR的目标是返回一个根据与查询相关度排序的文档列表r。由于整个文档集合很大,除了考虑质量以外,实际的IR系统还需要考虑效率。在传统的检索框架中,包括若干不同的阶段,不同阶段注重不同的目标。我们在图2.2中描述了一个检索框架(即图2.1中的f)。如图2.2所表示的,系统中初始的retriever用于从大规模的文档集合中召回相关的结果,这个初始的retriever得到的分数用于形成一个初始的排序列表。这个初始排序列表被传给后面n个re-ranker来得到最终的排序列表并返回给用户。每个re-ranker将retriever返回的结果重新排序之后返回一个同样大小或者更小的结果列表。尽管retriever和re-ranker的目标都是衡量查询和文档的相关性,但它们通常采用不同类型的模型。因为retriever需要从一个大的文档集合召回相关的文档,最关注的是效率,可以采用传统模型比如BM25。而对于re-ranker,根据不同的阶段,可以被分为early-stage rerankers和latter stage re-ranker。相比于latter-stage reranker,early-stage reranker更多关注效率,但相比retriever更多关注排序质量。由于latter-stage reranker只需要考虑很少的文档,所以它可以重点关注排序质量,传统的re-ranking模型包括LTR模型比如RankNet和LambdaMart以及neural models如DRMM和Duet。根据re-rankers的数量,检索阶段可以被定义成以下几种方式:

  • Single-stage Retrieval (n=0):直接使用retriever返回的列表作为最终结果返回给用户。
  • Two-stage Retrieval (n=1):相比于第一阶段的检索,已有的IR框架也会额外使用一个re-ranker来提升排序列表的质量。在第二阶段的re-ranker中,通常一会使用一些第一阶段不包括的特征,如多模态的特征,知识图谱特征等。这些特征在大规模文档集中不容易收集。
  • Multi-stage Retrieval (n>=2):采用多个re-ranker,不同的re-ranker采用不同的结构,利用不同的信息。每个re-ranker的功能通常是互补的。

? ? ? ? 在将PTMs应用在IR中时,同样需要考虑效率与质量的权衡,这个权衡的依据是PTMs具体应用在哪个阶段。具体地,对于更关注效率的第一阶段检索,PTMs可以用于提升模型的表现,比如ColBERT,通过基于BERT的dual-encoder获取文档和查询中融合了上下文的term embeddings,与其它基线模型相比快了两个量级。而在re-ranking阶段,PTMs只需要处理小规模的文档集合,可以捕捉到更多细粒度的相关信息。例如CEDR利用通过BERT得到的融合上下文的word embedding来获得一个相似度矩阵,输入到基于交互的neural ranking模型中比如DRMM和KNRM。此外[CLS]也用到增强模型的表达能力。

2.3 从系统角度看IR

? ? ? ? 实际上的搜索系统在帮助用户完成IR任务的同时,不仅仅要考虑到效率和质量这两个问题,还要对用户足够友好,即要能够解决各种用户使用过程中容易出现的问题。我们在图2.3中列举了一个传统搜索系统的结构。在系统中用户提出的查询可能很短,很模糊甚至有拼写错误。这种情况下,需要使用一个query parser来将原始的查询转换成能够反映真实用户意图的查询表示。query parser要做的操作包括rewriting, expansion等。在doc端,由于不同的网页可能有不同的页面结构和组织形式,因此需要一个document paser & encoder来处理文档或者建立索引,从而保障真正相关的文档能够被快速找到,因为如果没有文档的索引,搜索引擎需要遍历语料中所有的文档,这会大大增加时间开销。除了query parser和document parser & encoder以外,还有上文提到的retrieval和ranking组件用于计算q-d的相关性。深入研究文档索引的发展历史,我们可以发现系统从symbolic search system过渡到neural search system。下面我们简单介绍这两种文档索引如何工作以及它们的优缺点:

  • Symbolic search system:在symbolic search system中,需要通过规则来构建一个document parser,这个parser需要根据这些规则构建索引,过滤文档并给文档排序,随后将数据翻译成系统能够理解的符号。具体地,symbolic search系统构建文档的倒排索引包括两个部分:dictionary和postings。dictionary包括文档集中出现的所有词。对词典中的每个词,通过一个倒排列表记录这个词出现在哪些文档中。倒排列表中的每一个item被称作一个posting。这个倒排列表也被叫做posting list。symbolic search系统的优点是可以快速检索,并且结果具有可解释性。缺点是这些系统只能使用一种语言同时需要很高的维护成本。
  • Neural search? system:相比于symbolic search system更多关注精确匹配,neural search system刻画的是语义匹配。相比于设计一个规则集合,neural search系统使用训练好的模型获取文档的低维表示,用于相关性的计算。用这些文档表示构建的索引被称作向量索引。相比于symbolic search系统,neural search系统更鲁棒同时更易于扩展(增加文档不需要改变已经建好的索引,只需要新增向量),这是它的优点。缺点在于这样计算的相关性可解释性差,同时需要大量的数据用于训练模型。

? ? ? ? 在构建完成文档索引(倒排索引或者向量索引)之后,查询和文档就可以输入到retrieval和re-ranking阶段。在retrieval和re-ranking阶段,symbolic search 系统更偏向term-based的模型以及LTR模型,而neural search系统更多使用dense retrieval模型和neural ranking模型。需要注意的是尽管neural方法越来越广泛地应用,symbloic search方法依然在现实的搜索系统中起到重要的作用。实际上,综合使用两种系统可能是最优方案。

?? ? ? ? 不同的PTMs是为不同的系统组件定制的,这些组件包括query parser, doc parser & encoder以及retrieval and rerank。例如,BERT-QE(Zheng et al., 2020)用BERT作为backbone来做查询扩充。MeshBART(Chen and Lee, 2020)利用用户点击生成query suggestion,这两个模型用于query parser组件。DeepCT(Dai and Callan, 2019a)利用通过BERT得到的融合上下文的token表示来预测词权重,并替代倒排索引中用到的原始词权重,用于doc parser & encoder组件。相比于query parser和doc parser,retrieval and rerank组件得到了更多的重视,并有大量的工作设计用于此部分的PTMs。我们在图2.4中展示了近期的一些例子,不同颜色表示PTMs应用在不同的搜索系统组件,橘黄色表示应用于query parser,绿色表示应用在retrieval and rerank组件,蓝色表示应用在doc parser & encoder组件。

3. Retrieval 组件中预训练方法的应用

? ? ? ? 传统搜索引擎为了提高检索效率,更多依赖如BM25的term-based检索模型。最近,随着表示学习(Bengio et al., 2013),预训练方法(Devlin et al., 2018; Yang et al., 2019b; Radford et al., 2019)的进步,与预训练方法结合的语义检索(Cai et al., 2021a)逐渐成为提升检索效果最流行的方法。它们显著提升了term-based 检索模型的效果并使得下游任务取得巨大收益(Yan et al., 2021; Karpukhin et al., 2020)。

? ? ? ? 从表示的类型和索引模式可以将语义检索模型分成三个类别:1) Sparse Retrieval Models:通过获得刻画语义的稀疏文档表示并建立倒排索引来提升检索效率。2) Dense Retrieval Models: 通过将输入文本(查询和文档)映射到独立的稠密表示,并使用近似最近邻算法来做快速检索。3) Hybrid Retrieval Models:将sparse和dense retrievel models同时使用。

3.1 Sparse Retrieval Models

?????????Sparse retrieval models主要通过获得更好的文本表示来提升检索效果,比如传统term-based方法中的bag-of-words (BoW)表示或者"latent word"空间的表示。通过这种方式,查询和文档可以通过sparse embeddings表示,即只有少部分维度非0。这种稀疏表示得到了广泛的关注,因为它可以构建倒排索引用于高效的检索。

? ? ? ? 随着PTMs的发展,预训练模型被广泛用于提升sparse retrieval模型的容量。我们将这些预训练模型分成四类,包括term re-weighting, document expansion, expansion + re-weighting和sparse representation learning。

3.1.1 Term Re-weighting

? ? ? ? ?一个比较直接的提升term-based检索中文本表示的方法就是利用上下文的语义来衡量每个词的权重。有一些工作尝试使用预训练模型来预测词权重。比如Dai and Callan 2019a和Callan 2020a 提出一个BERT-based框架(DeepCT)来评估句子中的词权重。DeepCT将融合上下文的词表示映射到词权重,然后用这些词权重替代倒排索引中原本使用的词权重。实验表示这些词权重能够更好的表示词的重要性,同时可以提升retrieval阶段term-based方法的效果。更多地,Dai and Callan 2020b介绍了HDCT模型,HDCT使用DeepCT来估计长文本中的词重要性。它第一个以DeepCT的方式估计了篇章级别的词权重。随后,这些篇章级别的term权重通过加权和的方式得到了文档级别的term权重。

3.1.2 Document Expansion

? ? ? ? 除了显式地预测词权重以外,另一种方法是增加一些语义上与文档相似的term到文档中去。通过这种方式,一方面可以增加一些重要词的权重,另一方面可以一定程度上缓解vocabulary mismatch的问题。

????????不同于以往方法从额外语料(Sherman and Efron, 2017; Agirre et al., 2010)或者文档集合本身(Efron et al., 2012; Liu and Croft, 2004; Kurland and Lee, 2004),?Nogueira et al. 2019a 在一个预训练好的T5 (Raffel et al., 2019)模型基础上利用相关的q-d pair来fine-tune。随后利用这个fine-tune号的sequence-to-sequence模型给每个文档生成若干的查询,随后将这些合成的查询加到原始文档末尾作为扩充后的文档。这种扩充过程在预料中的每个文档上做过之后再建立倒排索引。最终使用BM25来召回相关文档。当把这个方法和re-ranking组件一起使用后,可以在MS MARCO和TREC CAR这两个retrieval benchmarks上取得SOTA的结果。

????????后来,Yan et al. (2021)提出了一个Unified Encoder-Decoder网络(UED)来增强document expansion,增强的方式是增加一个document ranking任务,这种设计是基于一个假设:document ranking任务和document expansion任务有内在关联同时可以增强彼此。UED首先预训练一个Transformer的encoder-decoder结构,其中用于支持document re-ranking任务的encoder是通过masked language model (MLM)和sentence relation prediction (SRP)两个目标训练的,用于query generation任务的decoder是通过next sentence generation (NSG)任务训练的。随后UED使用联合的fine-tune过程,该过程中每一个batch被以等概率随机选择训练样本来训练document ranking任务或者query generation任务。最后,这个seq2seq模型被用于扩充文档,方式与docTTTTTquery (Nogueira et al., 2019a)相同。两个大规模数据集MS MARCO和Passage Ranking和TREC 2019 Deep Learning Track上的实验验证了UED达到了新的SOTA结果。

? ? ? ? 除了扩充文档,扩充查询也是提升检索表现的另一种方法。例如Mao et al. 2020提出了一个新的查询扩充方法,叫Generation-Augmented Retrieval (GAR)。GAR通过BART (Lewis et al., 2019)将一些与查询语义相关的terms加入进来。GAR使用查询作为输入,通过Seq2Seq以若干内容作为生成目标,比如答案,答案所在的句子,包含答案的文章标题。随后将Seq2Seq生成的内容加到查询中,该扩充过的查询用于检索。在Natural Questions和TriviaQA数据集上的实验证明了使用多种生成目标得到的内容可以帮助取得更好的效果。

3.1.3 Expansion + Re-weighting

? ? ? ? 另一个方法是将term re-weighting和document expansion综合到一起,即在整个词典中学习每个term的权重而非只考虑出现在文档内的term。例如,Bai et al. 2020提出SparTerm在整个词典空间内学习term-based sparse表示。SparTerm首先通过BERT将基于出现频率的BoW表示映射到一个关于词重要度的分布上,这个分布是在整个词典空间上定义的。通过这种方式,SparTerm可以同时学习文档内已有词的权重以及扩充新词的权重。为了保证最终得到表示的稀疏性,SparTerm使用了一个门控制器来生成binary的稀疏向量。SparTerm在MS MARCO Passage Ranking任务上超过了所有的baselines,包括DeepCT, docTTTTTquery。

? ? ? ? 随后,Formal et al. 2021提出SPALDE来提升SparTerm的效果,SPALDE通过使用一个saturate function防止个别terms占据最终稀疏表示的大部分比例,同时使用FLOPS损失来保证端到端学习。除了同时做expansion和re-weighting的统一架构,Mallia et al. 2021提出了一个简单但有效的模型DeepImpact,先利用docTTTTTquery来给文档集合的每个文档扩充,随后利用BERT来预测每个文档内token的重要性。通过这种方式,可以给原始token和扩充后的token都学习到单值的表示,即该token的重要度分数。

3.1.4 Sparse Representation Learning

? ? ? ? 不同于提升在symbolic space的文档表示,稀疏表示学习的方法注重在因空间内学习查询和文档的稀疏表示,在隐空间内每个维度表示一个词。随后利用这些云空间的稀疏表示来建立倒排索引。比如,Jiang et al. 2021提出了一个基于预训练模型的sparse retrieval方法UHD-BERT,其主要思路是获取高维度且稀疏度可控的表示。UHD-BERT首先通过BERT获取查询和文档中每个token的dense表示,随后通过线性层映射到高维空间。随后使用Winner-Take-All的机制保留dense表示中top-k维度的值来获取sparse表示。最后,通过token级别的max pooling获取整个查询或者文档的稀疏表示。UHD-BERT模型取得了比以往sparse retrieval和dense retrieval模型更好的表现。

? ? ? ? 近期,Yamada ey al. 2021提出了Binary Passage Retriever (BPR),将learning-to-hash技术应用到SOTA的dense passage retriever(DPR)中,将输入文本表示成紧凑的二进制编码。BPR使用多任务学习策略,端到端地同时训练基于BERT的dual-encoder和hash functions。基于得到的查询和文档的二进制编码,可以通过使用汉明距离来获取相关文档。BPR大幅降低了文档索引的存储开销,并在两个公开的QA benchmarks上取得了不错的准确度。

3.2 Dense Retrieval Models

? ? ? ? Dense retrieval模型是另一种研究思路,它通过对文本做dense representations而非sparse representations来完成检索任务。Dense retrieval模型使用dual-encoder结构,也被叫做双塔结构(Bromley et al., 1993),用于学习查询或文档的低维稠密表示。随后,这些稠密表示用于构建索引,并通过近似最邻近算法(ANN)在线上执行检索任务。

? ? ? ? Dense retrieval模型通常包括一对接受不同输入(比如查询和文档)的ecnoder构成,分别为两个输入学习不同的表示,随后使用一个简单的匹配公式(比如点积或者余弦相似度)来获取最终的相关度分数。实际工作中有两种dense retrieval模型:single-vector representations (图3.2 a),每个输入使用一个向量表示;multi-vector representations (图3.2 b),每个输入使用多个向量表示。

3.2.1 Dense retrieval中预训练模型的基本使用方法

? ? ? ? 一种提升dense retrieval模型的方法是重点关注提升表示学习的能力,而提升表示学习能力的一大利器就是使用预训练语言模型。Dense retrieval模型的基本架构可以记作:

rel(q,d) = f(E^Q_{PTM}(q), E^D_{PTM}(d)),

?其中E^Q_{PTM}E^D_{PTM}是基于预训练模型构建的查询或文档的encoder, f是相似度度量函数。

? ? ? ? 使用预训练模型应用在dense retrieval的模型之一是DPR,DPR对输入文本使用两个独立的基于BERT的encoder。在OpenQA系统中,DPR的表现超过了基于BM25的检索系统。对ad-hoc retrieval任务,Zhan et al. 2020b提出RepBERT来取代BM25做第一阶段检索。RepBERT与DPR结构类似,区别在于RepBERT对查询和文档使用了共享的encoder,随后使用内积作为相似度度量方式。最终RepBERT在MS MARCO Passage Ranking任务上超过BM25。类似地,dense retrieval方法同样影响着对话式检索。例如Yu et al. 2021提出了Conversational Dense Retrieval系统(ConvDR),其使用BERT对多轮的查询和文档分别做表示学习,随后通过点积来检索文档。

? ? ? ? 除了上述使用单独一个向量来表示查询或文档的方法以外,另一种较为复杂的方式是通过多个向量来表示同一个查询或文档随后进行匹配。一个SOTA的dense retriever叫做ColBERT (Khattab and Zaharia 2020),它使用基于BERT的dual-encoder来获取查询和文档中每一个term的表示,随后使用term级别的MaxSim操作对查询和文档做细粒度匹配。具体地,查询中每一个term的表示和文档中所有term的表示计算相似度,分别取最大相似度的值作为MaxSim结果,随后将每个term的MaxSim分数加在一起获得最终分数。在MS MARCO和TREC CAR数据集上ColBERT均取得了比已有基于BERT的模型更好的效果,同时在速度上也提升了两个量级。类似ColBERT,Gao et al. 2021提出COIL模型,与ColBERT不同指出在于,COIL中MaxSim操作只针对查询和文档中共同出现的term。实验结果表明COIL可以在取得和ColBERT相近的效果的情况下大大降低运算开销。

? ? ? ? 此外,另一种方案是对查询和文档分别使用不同的encoder,原因是文档比较长,有可能包括多个不同的方面,而查询比较短,通常会聚焦于一个重点。因此,使用document encoder从文档内容中抽取多个表示,每个表示包含文档某个方面的信息,而使用query encoder只提取出一个查询表示。比如Luan et al. 2020提出了Multi-Vector BERT (ME-BERT)来实现上述做法。ME-BERT使用两个BERT来对查询和文档分别编码,对query只取[CLS]的表示作为唯一的表示,对document取文本序列最终前m个表示作为m个文档表示,m通常远小于文档长度。最终计算这m个文档表示与查询表示的相关分数取最大的作为最终相关分数。最近,Tang et al. 2021提出了一个新颖的multi-vectors表示方法,该方法在文档通过BERT encoder的输出向量上使用k-means聚类得到k个文档表示。实验表明该模型在QA和一些排序的数据集上取得比SOTA好的效果。

3.2.2 专门为Dense Retrieval设计的预训练方法

? ? ? ? 使用预训练方法解决Dense Retrieval最直接的方式就是如3.2.1中所述,首先使用预训练模型作为encoder,然后在目标任务上做fine-tune。最近,一些工作开始探索专门用于Dense Retrieval的预训练方法。比如额外增加一个预训练阶段来做面向IR的任务,生成预训练数据,新模型结构。

? ? ? ? 人们普遍认为预训练任务与下游fine-tune任务约相近,训练收益越大(Zhang et al., 2020; Ke et al., 2020a)。因此研究者们认为需要使用新的预训练任务来更好地适应检索任务。Lee et al. 2019b是较早提出面向IR预训练任务的一篇工作,文中将句子视作伪查询,并将它们和源段落做匹配,这个过程相当于逆完形填空(ICT)。该文首先用ICT任务预训练一个通过BERT初始化过的dense retriever,用于提到BM25用于OpenQA任务。之后,Chang et al. 将ICT任务和Body First Selection (BFS)任务以及Wiki Link Prediction (WLP)一起训练用于ad-hoc retrieval,取得了显著的收益。Gao and Callan 2021c 最近使用一种定义在目标语料上的无监督的对比学习损失函数,在无法获取查询的情况下对文章的表示做预训练。在这些工作中,它们提出的训练任务都相比于不加该任务的基线有所提升。

? ? ? ? 此外,有一些工作尝试生成专门用于retrieval任务的预训练数据(Reddy et al., 2021; Ma et al., 2021a; Liang et al., 2020)。例如,Reddy et al. 2021用已有的机器阅读理解数据训练了一个Seq2Seq生成器,并使用它从维基百科文章中生成question-answer对。随后使用这些生成的阅读理解数据来做IR的预训练任务。实验结果表明在这些生成的数据少使用DPR模型相比原来更鲁棒。

? ? ? ? 不用与上述设计专门的预训练任务或者生成预训练数据,Gao and Callan 2021b提出了新的用于dense retrieval预训练的模型结构Condenser。Condenser基于[CLS]向量主动执行LM的预训练任务,从而生成富含信息的[CLS]表示,可以有效压缩输入序列。(Condenser仅看此文没太懂)

3.2.3 改进的Fine-tuning技术

? ? ? ? 在dense retriever中,通常会使用dual-encoder来给查询和文档学习唯一的表示并使用简单的相似度计算函数来做匹配,这种方式在线上部署时十分高效。然而,这种方式的表现不是最优的,因为模型容量有限,以及fine-tune的模型过于简单。最近有的研究尝试使用新的fine-tune方式来提升dense retriever的模型容量。

? ? ? ? 一个比较强的dense retriever可以通过蒸馏复杂模型(比如cross-encoder)学到知识(Tahami et al., 2020; Lin et al., 2020a; Choi et al., 2021; Hofstatter et al., 2020). 例如,Tahami et al. 2020使用一个基于BERT的cross-encoder作为teacher model,蒸馏到一个student dual-encoder模型。这种方式可以提升基于BERT的dense retriever的预测效果同时不需要影响inference的速度。该模型在三个主流数据集上都取得了显著的收益。另外,Lin et al. 2020a通过蒸馏使得一个简单的点积可以学习到ColBERT中MaxSim操作的表达能力,从而实现一步的ANN检索。其核心点在于蒸馏过程中,teacher模型和student模型之间紧密的耦合有利于更灵活的蒸馏策略并学习到更好的表示。这种方法降低了查询的延迟,并且降低了ColBERT繁重的存储需求,并且仅仅在效率上稍有牺牲。

? ? ? ? 另一种构建高质量dense retriever的方法重点关注于使用具有更多信息的负样本来提升查询或文档的表示学习。实际上负样本采样策略是决定模型表示学习能力的重要因素。通常困难负例会被看做具有更多信息的负例,因为它们可以增强模型区分相似样本的能力。因此,在学习dense retrievers的过程中加入困难负例采样策略成为一个广泛研究的课题。一个SOTA的方法是使用ANCE (Xiong et al. 2020) 做异步训练。ANCE首先使用RoBERTa-based dense retriever作为warm up的retriever,使用根据BM25分数采样的负例开始训练,随后不断更新ANN索引,并采样排在靠前的样本作为困难负例。实验表明ANCE在很多benchmarks上都超过了baselines。随后,Zhan et al. 2020a和Zhan et al. 2021c提出了新的dense retriever的训练方法,首先使用一个warm-up dense retriever(比如使用ANCE或者STAR (Zhan et al., 2021c))构建文档索引,随后在训练过程中的每一个step,基于已经构建好的索引做全量的检索得到排名靠前的几个文档作为困难负例,利用这些困难负例来训练query encoder (只是query端的,doc端固定)。模型在passage ranking和document ranking任务上都显著好于最好的sparse和dense retrieval模型。最近,Hofstatter et al. (2021a)介绍了一个更高效的训练dense retriever的方法,叫做TAS-Balanced。它的核心观点是使用TAS-Balanced batches来训练dense retriever,这种batches里的数据有两个特点,一个是同一batch里的query具有相近的topic,另一个是使用具有margin-balanced的负例,即难度适中。这种设计原因在于以往的方式都会使用in-batch的样本作为随机负例,如果不对query的topic相似度做限制,会导致这些随机负例太简单而学不到足够的信息。通过选择同一聚类中的query组成batch,该方法通过in-batch negative取得了更好的效果。

3.2.4 Advanced Topics

? ? ? ? 随着dense retrieval模型的发展,研究员们开始探索更有挑战性却具有前景的课题。一些工作开始研究端到端地学习dense retrievers和下游任务,如机器阅读理解任务。例如,RAG (Lewis et al., 2020) 将一个预训练好的dual-encoder (DPR)作为retriever,以及一个预训练好的Seq2Seq模型(BART Lewis et al., 2019)作为generator来处理OpenQA任务。其中retriever和generator以及一个固定参数的document encoder是端到端做fine-tune的。该模型在三个OpenQA任务上都表现出了SOTA的效果。最近,Sachan et al. 2021提出了一个端到端训练整合了retriever的OpenQA系统。他们认为使用这种端到端的训练方式可以直接使监督信号从reader传到retriever,要比分段训练retriever和reader效果好。他们构建了EMDR^2模型,使用一个经BERT初始化过的dual-encoder作为retriever,并基于T5构建了一个reader。在三个benchmark数据集的效果好于已有SOTA模型。

? ? ? ? 一些研究者认为已有的dense retrieval模型总是使用划分两步做表示学习并建立ANN索引,这种方式在实际场景中具有一些缺点。首先,索引查询的过程无法从监督信息中获益,因为索引构建时使用的是与任务无关的方式。另外,查询表示与文档索引的获取的过程是分开的,这种方式不是兼容性最好的(我的理解是无法灵活地保持查询与文档的表示处于同一空间)。这些问题都会导致检索的效果严重下降。为了解决上述问题,Zhan et al. 2021a尝试使用一个面向ranking的损失函数来联合学习一个基于BERT的dual-encoder和PQ索引(Jegou et al., 2010)。在两个retrieval的benchmarks上的实验表示JPQ在不同设置上均好于已有的baselines。

? ? ? ? 另一个课题与负采样策略相关。通常,retrieval benchmark数据集的构建,依赖于在一个召回文档子集上的专家标注(Nguyen et al., 2016; Craswell et al., 2020)。通过这种方式,训练集通常只包括部分正例文档。当训练retrieval模型时,剩余未标注的文档通常被标注为不相关(Zhan et al., 2020b; Karpukhin et al., 2020),这种方式会引入偏差。为了消除这种偏差,需要设计一个高效且效果好的学习策略。例如,RocketQA (Ding et al., 2020) 和 PAIR (Ren et al., n.d.)使用了一个更强的基于BERT的cross-encoder来判断未标注文档的相关性,并且移除掉哪些false negatives样本。近期,Prakash et al. 2021在ANCE的基础上做了一些提升,方式是在做负采样的时候基于全部有标注的文档,而不考虑未标注的文档。

3.3 混合检索模型

? ? ? ? ?Sparse retrieval模型使用一个词,或者一个"latent word"作为一个表示单位,这种方式是基于精确匹配信号计算匹配分数的,因此具有很强的判别能力(即准确度高,但召回可能低)。另一方面,dense retrieval方法为查询和文档学习连续的embeddings来编码语义信息,随后获取相关度,这种方式是基于soft match信号的。可以在sparse retrieval模型的fidelity(保真度)与dense retrieval模型的generalization(泛化性)做一个平衡,综合两种模型构建一个混合检索模型。

? ? ? ? 混合检索模型给查询或文档定义多个计算表示的函数,并同时获取它们的sparse和dense表示,随后利用图3.3所示的merging方法来综合匹配分数。最早的时候,Seo et al 2019提出了DenSPI来处理OpenQA任务的retrieval部分。DenSPI模型给文档集中的每个短语构建了dense-sparse表示。其中的dense向量使用的是短语中第一个位置的BERT输出表示,用于编码短语所在上下文的句法和语义信息。Sparse向量使用基于bi-gram的tf-idf,用于表示词法信息。在线上部署时,有三种可选择的合并路线来完成搜索:sparse-first search (SFS),dense-first search (DFS)和hybrid。后来,Lee et al, 2019a提出为每个短语学习sparse向量的时候,使用BERT输出的向量来替代DenSPI中的tf-idf。该模型利用纠正的自注意力机制来间接学习n-gram语料空间中词的sparse向量,可以通过加入这个sparse表示来增强短语表示的质量。实验表示该模型在OpenQA应用时好于之前的模型,包括最近的基于BERT的pipeline模型,并且在inference阶段要快两个量级。一个更简单且直接的方法是直接将一个dense retrieval系统和sparse retrieval系统的结果线性加和,并在开发集上调一个加和的权重 (Lin and Ma, 2021; Luan et al., 2020)。例如Luan et al. 2020提出线性加和BM25和ME-BERT,取得了很好的效果并且具有可扩展性。也有一些工作使用了复杂的融合方式,比如Kuzi et al. 2020做了一个深度实践分析,使用混合方法(BM25+DE-BERT)并使用RM3(Abdul-jaleel et al., 2004)作为融合器。实验表现出很好的效果,并且阐明了lexical和semantic模型的互补性质。Cao et al. 2020b提出了CLEAR模型,该模型利用一个基于BERT的dense retriever来学习sparse retrieval模型BM25的残差。实验表明使用CLEAR可以在不需要re-ranking的情况下和使用BERT做re-ranking的pipeline达到一样准确的效果。

4. Re-ranking组件中预训练方法的应用

? ? ? ? 本节中回顾已有的在re-ranking阶段使用的预训练模型。当代搜索引擎使用多阶段的架构来高效的返文档列表给用户。更细节地,在第一阶段的retriever之后,可能累计有多个re-rankers。这个多阶段级联架构非常普遍,同时在工业界(Yin et al., 2016; Liu et al., 2021d; Li and Xu 2014)和学术界的leaderboard上也很实用。考虑到基于Transformers预训练模型的巨大计算开销,这些模型通常被使用在最后一个阶段的re-ranker过程中,因为这一部分只需要处理之前阶段留下的很小的文档集合。通过学习到融合上下文的查询文档表示,以及对查询与文档之间进行复杂交互,这些与训练模型在re-ranking阶段取得了巨大的成功(Nogueira and Cho, 2019; Dai and Callan, 2019b; Lin et al., 2021; MacAvaney et al., 2019a; Nogueira et al., 2019b; Yang et al., 2019a)。

? ? ? ? 在IR领域中有两个主要用于建模相关性的流派,一个是判别式模型(Burges et al., 2005a; Joachims, 2002; Liu, 2010),另一个是生成式模型(Lafferty and Zhai, 2003; Robertson and Jones, 1976a; Ponte and Croft, 1998; Zhai, 2008)。判别式模型主要使用已有的相关性标注来学习一个分类器,例如neural ranking模型可以学习到查询文档的分布式表示,或者对查询和文档做交互来预测相关度分数 (Guo et al., 2020c)。但是生成式模型假设文档和查询直接存在一个潜在的生成过程,并致力于估计真实的相关性分布。在IR的过程中有两种生成过程:根据文档生成查询/根据查询生成文档。统计语言模型(例如query likelihood模型)考虑的是查询生成过程,即根据文档生成查询词过程中的概率来对文档进行排序 (Ponte and Croft, 1998; Zhai, 2008)。经典概率相关性模型(例如Binary Independence Model)注重刻画文档是如何根据一个给定查询生成的 (Lafferty and Zhai, 2003; Robertson and Jones, 1976a)。另一方面,根据预训练任务 (autoregressive vs. autoencoding (Yang et al., 2019b;))以及模型结构 (encoder-based vs. decoder-based/ encoder-decoder),预训练模型还可以被分成三类:重点关注判别任务的预训练模型(BERT),重点关注生成任务的预训练模型(GPT)以及同时关注判别和生成任务的预训练模型(T5)。下面我们将阐述这两个流派的预训练模型是如何被应用于re-ranking阶段的。

4.1 判别式排序模型

? ? ? ? BERT以及它后续的工作在判别任务中取得了巨大的成功,比如句子分类,句对分类等。这些预训练模型通常只使用只使用Transformer的encoder并且关注判别式任务。在NeuIR的相关工作中,neural ranking模型基于排序特征的不同被分成了两个类别:基于表示的框架与基于交互的框架。自然地,预训练模型同样可以采用这样的分类方式,或者说,我们可以简单地用预训练模型替代neural ranking模型。

4.1.1 基本用法:Representation-focused vs. Interaction-focused

? ? ? ? 如前文所述,预训练模型根据相关度分数的两种计算方式(通过比较两个独立编码的表示或者通过查询文档的交互)被分成两类:Representation-focused和Interaction-focused。

? ? ? ? Representation-focused:此类模型如图4.1(a)左所示,通常使用两个编码器的结构,分别计算查询和文档的dense表示,随后通过对比这两个表示来获取相关度分数,对比方式可能是简单的余弦相似度或者内积。为不失一般性,representation-focused方法可以简单表示为如下形式:

relevance=f(PTM(Q), PTM(D))

其中Q和D分别表示查询和文档,PTM表示如BERT一样的预训练模型,f是衡量向量相似度的函数。我们使用BERT为例解释PTM(Q/D),BERT的标准输入通常为"[CLS]+Q/D+[SEP]",输出通常为一个序列的768维向量。通常使用BERT输出的[CLS]位置对应的向量来表示整个输入序列,同样也可以使用对所有输出向量求平均/取max来用一个768维向量表示整个序列,或者像ELMo一样使用多层embedding的加权和(Peters et al., 2018a)。许多相似度度量函数也可以被用来计算相关度分数,比如余弦相似度,点积,前馈网络等。举个例子,Qiao et al. 2019使用BERT分别来编码查询和文档,随后使用CLS位置的向量来表示它们,最后通过余弦相似度的方式计算相关性。研究表明representation-focused的方式效果比interaction-focused的方式要查,但是在使用ANN算法做检索时可以预先将representation计算好存起来,速度可以更快。随意representation-based的方法通常被用于第一阶段的检索构成(如3.2节所述)。

? ? ? ? Interaction-focused:此类模型如图4.1 (a)右所示,旨在刻画查询词和文档词之间的交互,随后通过交互的结果计算相关度分数。最直接应用在预训练模型上的方式是将interaction-focused结构应用在re-ranking阶段,因为Transformer中强有力的self-attention机制可以刻画查询与文档之间复杂的交互。更多地,由于交互不能够在获取两个input之间先计算,所以出于效率的考虑只能够应用在小文档集合上的re-rank。不失一般性,interaction-focused方法可简单表示为如下形式:

relevance=f(PTM(Q,D)),

其中f是基于交互结果计算相关度分数的函数。通过这种方式,输入到BERT的内容应该是将查询和文档经过特殊符号拼接在一起的序列:[CLS]+Q+[SEP]+D+[SEP]。随后[CLS]位置的输出向量可以被视作查询和文档的交互特征向量,随后将它们输入到多层的前馈网络中(即公式中的f)即可得到相关度分数。根据learning to rank的工作(Liu, 2010),可以使用pointwise或者listwise的方式来fine-tune预训练模型,但是listwise的方式不好实现,因为input序列的长度通常要取到512,在限定的存储空间内很难输入一个list作为输入。

? ? ? ? MonoBERT (Nogueira and Cho, 2019)将ranking问题转换成了文本分类问题。?MonoBERT如上述方式将查询和文档拼接在一起,随后将[CLS]的输出通过前馈网络获得相关度分数。模型使用pointwise损失函数,即交叉熵损失函数来fine-tune这个BERT模型。这种简单的应用方式在re-ranking阶段取得了很好的结果。CEDR(MacAvaney et al., 2019a)在MonoBERT的基础上堆叠了一个深度交互模型,它利用BERT输出的词向量构建了一个相似度矩阵,随后将这个相似度矩阵输入到已有的Interaction-focused的neural ranking模型中,例如DRMM和KNRM。同样地,[CLS]位置的输出表示也被使用来增强效果。DuoBERT(Pradeep et al. 2021)使用一个query+doc_i+doc_j的序列作为输入(即[CLS]+Q+[SEP]+D_i+[SEP]+D_j+[SEP])来做pairwise训练使doc_i比doc_j的相关性更强。由于BERT的序列长度限制,查询和两个文档的长度分别被限制在62,223和223个词,所以整个序列的长度不长与512。虽然DuoBERT比MonoBERT在passage ranking任务上的效果更好,但Duo在document ranking任务上表现显著下降,因为阶段到223个词使文档失去过多信息。

4.1.2 长文档处理技术

? ? ? ? 考虑到Transformer通常限制输入序列的长度在512以内,很多研究开始探索将文档分成若干段落,随后将多个段落的结果聚合到一起获取整个文档的相关度得分。基于聚合的类型,这些聚合的方法可以被分成两类:段落分数聚合(passage score aggregation)与段落表示聚合(passage representation aggregation)。

? ? ? ? Passage Score Aggregation: Dai and Callan (2019b)提出使用第一个段落的分数(BERT-firstP),相关分数最高的段落(BERT-maxP)或者将所有段落分数加在一起(BERT-sumP)作为文档的相关度分数,其中文档通过长度为150,重叠75个词的滑动窗口被分成段落。对段落的相关度判断与整个文档的一致,即如果文档与查询是相关的,则认为每个段落都是与查询相关的,反之亦然。然而,根据Scope Hypothesis (Robertson and Walker, 1994),与查询相关的部分可能在长文档中的任何一个部分,因而文档可能只有部分与查询相关,因此将所有段落都视作查询的相关段落会引入噪声。BERT-maxP和BERT-sumP的结果都比BERT-firstP好,因为它们都付出了更多的计算代价,以及在训练时使用了所有段落。IDCM(Hofstatter et al., 2021b)首先提出了快速选择段落的模型ETM,比如利用Conv-KNRM(CK)来学习一个选择top-k段落的模型。随后利用ESM模型,ESM使用一个计算较复杂的模型比如BERT来分别计算每个段落的相关度分数,随后使用一个全连接层来讲这k个段落的分数综合起来,作为最终相关度分数。IDCM框架包括多个不可导的操作(比如top-k段落选择),这使得模型很难使用端到端梯度下降的方法来优化。因此,IDCM使用了一个pipeline的优化策略来训练,分成三步:1)首先优化ETM模型用于passage ranking问题;2)扩展ETM模型的适用范围,用于document ranking任务;3)通过知识蒸馏的方式优化用于段落选择的ESM模型。IDCM相比于基于BERT的ranker取得了类似的效果,但是大大降低了计算开销和查询延迟。然而,passage score aggregation的方法每次使用一个段落来计算分数,这会失去文章的整体性,即无法考虑段落之间的长距离依赖。

? ? ? ? Passage Representation Aggregation:不用于仅仅聚合各个段落的分数,将各个段落的表示聚合在一起看起来更有潜力,因为这种方式下相关度分数可以同时考虑所有的段落。PARADE (Li et al. 2020a)将整个长文档通过padding和删减的方式分成了固定数量,固定长度的段落。随后使用两种聚合的方法:1)使用数学操作,包括元素级别表示上的mean, max,sum;2)使用深度神经网络,比如前馈网络,卷积网络或者Transformer层。通过使用更复杂的结构来聚合表示,基于PARADE_Transformer相比于passage score aggregation方法中的BERT-maxP,以及passage representation aggregation方法中的PARADE_max,可以取得显著的提升。另外,PCGM (Wu et al., 2020)通过预测一系列段落级别的相关性来避免将文档切分成了不相关的段落。PCGM表现出捕捉可感知上下文的细粒度段落级相关性信号的优势。更具体来说,PCGM首先研究了用户在获取信息过程中段落级信息累计的过程(我理解的是用户在从前往后阅读过程中信息的累计过程),并且表现出段落级别的累计收益作为序列预测任务可以被有效地预测。PCGM使用BERT来学习query-passage对的表示,然后使用LSTM来聚合passage表示来获取段落累计收益。模型在分级的段落级相关性标注上训练来预测每个段落后的累计收益,最后一段的收益被视作文档级别的收益并用来作为相关度分数。PCGM在Tiangong-PDR数据集和NTCIR-14 Web Chinese上都有更好的效果。

4.1.3 模型加速

? ? ? ? 自注意力机制中二次方级别的存储复杂度限制了长文档排序任务的fine-tune过程。研究者们尝试过一些方法来降低re-ranking阶段的高计算开销,包括解耦查询与文档的交互(decouple the interaction),模型蒸馏(model distillation)和动态建模(dynamic modeling)。

? ? ? ? Decouple the Interaction: PreTTR(MacAvaney et al., 2020)使用BERT,同时提出解耦low-level的查询-文档交互到独立的编码器中,随后在high-level的BERT层中完成交互。因此,文档表示可以在建索引的阶段提前计算,查询的表示需要在线上推理阶段计算。所以大部分的计算开销是在少数几层的交互层上。当在第11层BERT将查询的表示和文档的表示融合时,PreTTR在TREC WebTrack实现了42倍加速的同时没有显著降低排序效果。然而在第11层融合这种方式在Robust04数据及上的rank表现降低了,这说明融合查询和文档的表示在排序效果上依赖数据集的特性。当查询和文档的编码完全解耦之后,模型就退化成representation-focused模型了,这就是效率与效果的trade-off。

? ? ? ? Model Distillation:将一个大的teacher model蒸馏到一个小的学生模型上是一个降低计算代价的好方法 (Hinton et al., 2015; Sanh et al., 2019)。Gao et al. 2020a调研了三种蒸馏BERT来提升排序模型的方法,包括Ranker Distill, LM Distill + Fine-tuning和 LM Distill + Ranker Distill。Ranker Distill将BERT ranker蒸馏到一个小的BERT上,比如一个4层或者6层的BERT。LM Distill旨在蒸馏出从BERT预训练过程中通过语言模型任务学习到的通用语言知识,LM Distill + Fine-tuning首先在一个大的语料库上训练BERT,随后将BERT的LM知识蒸馏到一个小的BERT上,随后在这个小BERT上使用ranking优化目标做fine-tune。LM Distill + Ranker Distill同样首先蒸馏得到一个小的BERT上,随后使用一个训练好的BERT ranker将排序任务的知识蒸馏到小型BERT中,即两步蒸馏。在MS MARCO的passage ranking上的实验表明仅仅对排序任务的知识做蒸馏是不够的,同时LM Distill + Ranker Distill方法在所有数据集和所有规模的模型上都取得了最好的表现(说白了就是两个蒸馏任务都要有,只用排序相关的蒸馏效果不好)。LM Distill + Fine-tuning方法能够在仅使用一个6层的BERT ranker上达到蒸馏前预训练BERT ranker的效果,同时会有两倍的速度提升,但当使用4层的BERT ranker作为student model的时候效果会变差,速度有9倍提升。在TinyBERT(Jiao et al., 2020)的基础上,Chen et al. 2021c探索在fine-tune阶段使用同时使用teacher model中另外三种类别的中间权重到student model中去,这三种权重包括attention权重,hidden state权重和embedding权重。实验表明从teacher模型中蒸馏更多的知识相比于标准的知识蒸馏可以更好地提升排序效果。

? ? ? ? Dynamic Modeling:动态建模中,模型结构或者是参数可以在inference阶段自适应输入规模,从而可以降低运算开销(Han et al., 2021b)。 Xin et al. 2020a使用了一种DeeBERT(Xin et al., 2020b)中已有的方法做文档排序任务,具体地,在每个transformers层上加一个额外的分类器,在fine-tune阶段训练的时候最小化所有分类器loss的和。在推理阶段,如果第i层分类器对样本足够自信(相关度分数高于一个阈值或低于一个阈值),则提前停止运算。正例的置信阈值和负例的置信阈值被设置成不同的分数,因为相关的文档需要更多的计算,同时正例的置信分数不仅仅用于提前终止,还会用于re-ranking的分数,所以需要更慎重地提前终止。在MS MARCO passage ranking数据集上的实验表明,提前终止能够给推理阶段提速2,5倍,同时维持了原始的模型效果。Cascade Transformer(Soldaini and Moschitti, 2020)将Transformer的各层分成了不同的子集作为一个re-ranker,并在每个re-ranker过后去除掉一定比例的样本。在训练阶段,模型均匀采样其中一个re-ranker来训练,并只更新该re-ranker下的transformer层参数。

4.2 生成式排序模型

? ? ? ? 除了判别式排序模型,研究者们还探索使用生成式预训练模型诸如GPT (Radford et al., 2019; Brown et al., 2020a), BART (Lewis et al,. 2019) 和T5 (Raffel et al., 2020)用于搜索。基于不同的生成过程,这些工作可以被分为relevance generation和query generation两类。

? ? ? ? Relevance Generation:Relevance generation关注如何通过将查询和文档一起输入模型之后生成相关度标签,预测得到的这些相关度标签可以被看做用于排序的相关性概率。Nogueria et al. 2020提出利用Seq2Seq预训练语言模型T5做文档排序,T5引入了一个统一的框架来讲所有文本语言问题转化成text-to-text格式,即将所有的任务都视作输入一段文本随后生成另一段目标文本。例如,句子对分类任务(如QQP)可以通过输入句子对(sentence1:sentence2:)然后输出标签 "duplicate" 或者"not_duplicate"。为了利用T5模型,Nogueira et al. 2020设计了一个用于排序问题的text-to-text模板,输入为"Query: [Q] Document : [D] Relevant:,输出为"true"或者"false"。模型在fine-tune的时候通过判断文档和查询是否相关,来生成true或者false这两种标签,同时经过softmax函数获取的true/false分布的概率可以被视作文档相关性的分数。有趣的是,其他的目标标签诸如"yes/no"的效果要比"true/false"差。本质上,他们提出了一个用于挖掘T5潜在知识的排序方法,该方法通过将relevance的隐含表示拼接起来输出目标标签。T5-3B首先在MS MARCO passage ranking任务上训练,并迁移到其他模型上之后通过zero-shot的方式依然优于诸如Brich, BERT-maxP和PARADE模型。

? ? ? ? Query Generation:Query generation的方式是使用在文档上训练的语言模型来生成查询,从而完成排序任务。这种方法源自经典语言模型的方法,如query likelihood模型,它理论扎实而且在传统信息检索方法(Ponte and Croft, 1998; Zhai, 2008; Lafferty and Zhai, 2001)中十分有效。因此,研究者们看是将这个方法引入到当代生成式预训练模型中来解决排序问题,诸如GPT和BART。Santos et al. 2020利用诸如GPT2和BART的预训练语言模型来依据文档内容生成查询,随后这个条件概率就被视作相关性分数。生成式预训练模型的输入格式为<bos> passage,输出格式为<boq>question<eoq>。为了同时利用正例和负例,文中提出了两种损失函数:1) 除了正例样本上的likelihood,还使用了负例样本上的unlikelihood损失 (LUL);2) 一个pairwise损失,定义在正负样本的likelihood之间 (RLL)。文中发现BART-base_RLL要比BART-base_LUL和GPT2-base的模型效果好。实验表明使用了生成式预训练模型的query generation方法要和SOTA的判别式answer selection方法效果持平。

4.3 混合模型

? ? ? ? 综合生成式和检索式的建模方式可以构建混合模型。Liu et al., 2021a提出了一个多任务学习框架在一个预训练语言模型中来联合学习判别式和生成式的目标。他们设想将判别式和生成式联合建模可以得到更强的泛化性,进而可以提升检索模型的效果。为了验证这个设想,他们使用了类似BART的Seq2Seq模型或者一个类似BERT的仅包含encoder的预训练模型学习判别式的排序任务,以及一个或者多个补充的语言生成任务,比如查询生成任务,问题生成任务或者锚文本生成任务。对于Seq2Seq预训练模型,将文档和查询分别输入到encoder和decoder中,随后使用Seq2Seq的方式生成查询,并使用最后一个词的表示通过一个前馈层来获取相关度分数。由于BERT中的双向注意力机制不能完全采用Seq2Seq的训练策略,文中通过修改类似uniLM(Dong et al., 2019)中的attention mask,来混合双向注意力,单向注意力,互注意力机制来支持Seq2Seq任务。实验表明联合学习判别式排序任务和生成式任务在排序问题上可以取得更好的结果。

5. 预训练方法在其他组件上的应用

? ? ? ? 本节中将总结IR中一些其他组件上PTMs的引用,比如query expansion, query rewriting, document summarization, snippet generation等。

5.1 Query understanding

5.1.1 Query Expansion

? ? ? ? Query expansion可以被视作文档排序的一个辅助任务来提升排序效果的,主要用于解决vocabulary mismatch问题或者是用于缓解查询与文档之间语言的差别。为了将BERT的embedding和统计语言模型综合起来,Naseri et al. 2021提出了一个无监督融合上下文的query expansion模型CEQE,CEQE基于关键词来扩充已有的查询。进一步的实验证明CEQE可以在多个标准测试集上提升检索效果。此外,Padaki et al. 2020提出query expansion应该为诸如BERT的模型专门设计,相比于添加关键词,通过自然语言规范化的查询输入进BERT-based的模型可能会获取更好的reranking效果(即不能仅仅是加关键词,要像自然语言一样通顺)。这方面,应该使用一个丰富的概念集合和基于构词关系的语法结构来扩充查询(我的理解是需要有个真实的自然语言候选集合,且遵循一定的语法规范)。一个直观的方法是将一个给定查询的前几个文档进行分块,随后对这些分块做排序(Zheng et al., 2020; Zheng et al., 2021)。例如,Zheng et al., 2020提出了BERT-QE,利用BERT作为backbone网络通过三个步骤来扩充查询:1)rerank候选文档;2)从排在前面的文档中选择一些相关的文本分开用于query expansion以及3)对选择到的expansion分块重新排序。最后这些分块和查询拼接在一起作为扩充后的查询。

5.1.2 Query Rewriting

? ? ? ? Query rewriting旨在1) 将一个长尾查询或问题转换成常见的形式,2) 将一个模糊不清的查询转换成一个表述清晰的查询用于提升检索效果。为了提升对话式检索,Lin et al. 2020b使用传统IR领域的查询重写技术来实现对历史查询的扩充(HQE),并且使用基于T5的模型来实现neural transfer reformulation (NTR),即将原始表述重写成一个连续且没有省略的自然语言问题。也有一些工作通过将查询或者问题和Frequently Asked Questions (FAQs)做匹配 (Sakata et al., 2019; Mass et al., 2020; McGreery et al., 2020)。例如,Mass et al. 2020首先使用BERT来计算查询和每个候选的FAQ之间的语义相似度,此外还通过GPT-2以无监督的方式来生成了一些候选的问题,并通过相似度过滤掉一些噪声候选。除了FAQ检索,query rewriting还被应用在语音理解系统用于friction reduction (Chen et al., 2020b),或者在对话系统中用于简化多轮对话 (Liu et al., 2021b)。为了降低query rewriting训练过程中对高质量pair的要求,Chen et al. 2020b提出了一个预训练阶段,来通过使用大规模已有的历史查询和它们对应的Natural Language Understanding (NLU)推测(将domain, intent, slot type和slot value拼接在一起构成的一个词序列),来构建更多的训练目标。

5.1.3 Query Suggestion

? ? ? ? 随着目前用户的搜索意图变得越来越复杂,一个查询往往不能够满足用户的信息需要。此时,query suggestion技术可以提供给用户很多可选择的下一个查询,从而帮助用户更轻松地完成他们的搜索任务。相比于大部分已有的方法(如 HRED-qs (Sordoni et al., 2015), ACG (Dehghani et al., 2017)和HSCM (Chen et al., 2021a))大多使用word2vec或GloVe来对查询做编码,Jiang and Wang 2018在AOL数据集上构建了一个异质化的session-flow图,随后使用Node2vec (Grover and Leskovec, 2016)学习到每个词的embedding。这些embedding随后被输入到reformulation inference network (RIN)来学习session-level的表示。RIN使用RNN框架建模历史查询变化过程并在判别式和生成式query suggestion中都达到了SOTA结果。一些其他的方法尝试使用基于Transformer的模型来解决query suggestion (Mustar et al., 2020; Chen and Lee, 2020; Mitra et al., 2020; Rosset et al., 2020)。例如,Chen and Lee 2020提出了MeshBART利用用户点击来生成query suggestion。为了提升对话式检索效果,Rosset et al. 2020基于推荐的问题提出了两个新颖的系统。第一个系统叫做DeepSuggest,使用4个训练目标来finetune一个BERT用于对候选的questions排序。另一个系统叫做DeepSuggest-NLG,使用GPT-2来基于最大似然来生成query suggestion。这些方法利用了搜索过程的弱监督信号,将suggestions基于用户的搜索轨迹,并在有用性(usefulness)评估中取得了显著更好的效果。除了用户交互信息以外,Mitra et al. 2020还利用snippet文本来推荐相关的问题。

5.1.4 Search Clarification

? ? ? ? query suggestion通常是在用户查询之后提出的,实际上系统可以主动通过向用户提出问题来澄清他们的信息需要,并且在返回结果之前降低不确定性。最近,search clarification在诸如对话式检索和对话系统中都引起了极大的注意。起初,Aliannejadi et al. 2019提出了BERT-LeaQuR将查询和候选问题做编码,并使用一个NeuQS模块来选择高质量的澄清问题。他们还提出了一个新的数据集Qulac用于对话式检索,该数据集通过众包的方式基于TREC Web track中一些模糊或有多个方面的话题收集了大量的澄清问题。之后,Hashemo et al. 2020提出了Guided Transformer (GT), GT利用诸如排名靠前被检索回的文档和澄清问题作为额外信息,通过多任务学习策略来为输入序列学习到更好的表示。在Qulac数据集上的实验表明GT在文档检索和澄清问题选择任务上都好于最好的baseline模型。此外,还有一些研究关注基于natural language inference (Kumar et al., 2020)和user engagement prediction (Lotze et al., 2021)来对澄清问题做排序。最近,Bi et al. 2021a将BERT和maximum-marginal-relevance (MMR) (Carbonell and Goldstein, 1998)指标相结合,来通过最少的问题澄清用户意图。他们的模型被称作MMR-BERT,在Qulac数据集上在向用户提问澄清问题上表现出了更好的效果。

5.1.5 Personalized Search

? ? ? ? 由于不同用户有不同的偏好,搜索引擎在适当的场景下需要根据用户偏好需要提供个性化搜索服务。个性化搜索中一个常见的策略是将用户的历史查询进行编码,来刻画用户的长期兴趣和短期兴趣。由于Transformer结构强大的学习能力,近期的一些工作也都聚焦于使用Transformer层来构建个性化搜索模型(Bi et al., 2020b; Bi et al., 2021b; Chen et al., 2021a; Zhou et al., 2020)。例如,Zhou et al 2021a将transformer层和Graph Attention Networks (GATs)综合起来提出了一个FNPS模型,同时考虑用户的搜索行为和该用户的社交网络。为了综合优化session-level的文档排序和query siggestion,Chen et al, 2021a提出了一个综合框架来建模session上下文(HSCM),同时使用intra-session和cross-session的上下文信息用于刻画个性化。不同于常见的Web-search,E-mail search要求在不同场景下(诸如时效性,用户职业,收件人以及附件)保护用户的隐私。为了实现这一点,Bi et al. 2021c利用Transformer层来编码用户的个人邮件历史,其中只使用从原始查询和文档内容中提取出来的处理过的特征。由于在不同搜索场景下可能会关注同一个物品的不同特征,Bi et al., 2021b提出了一个细粒度基于评论的Transformer模型RTM,用于通过动态编码物品表示来提升产品搜索效果。实验结果表明RTM在产品搜索在结果质量和可解释性上均有很好的效果。大部分已有的个性化方法并不包含一个专门设计的预训练或者自监督学习过程,而是仅仅利用Transformer模型的强大学习能力。最近,一些研究者们聚焦于设计预训练目标来提升个性化搜索(Zhou et al., 2021b)以及会话式检索 (Zhu et al., 2021)。他们的工作表明使用对比学习来编码用户历史这种思路的巨大潜力。

5.2 Document Summarization

5.2.1 Generic Document Summarization

????????Generic document summarization旨在自动地将给定的文档压缩成一段精简的文本,同时还能保留主要的信息。这个任务被概括为两个范式:extractive summarization和abstractive summarization。在extractive summerization中,会从原始文档中选择一些句子拼接形成一个摘要,而abstractive方法通常会利用语言生成来重写或者描述文档。每个范式都有它的有点和缺点。例如,extractive summarise得到的内容更可靠,但被选择的不同句子之间可能不够连贯,以及以往工作表明extractive方法倾向于选择长句子。相比之下,abstractive summaries更加灵活但是不可控。最近,PTMs模型在extractive摘要(Zhang et al., 2019b; Liu, 2019; Zhong et al., 2020; Wang et al., 2019a; Xu et al., 2020; Zhong et al., 2019)和abstractive摘要(Zhang et al., 2020; Dou et al., 2020; Lewis et al., 2019; Zou et al., 2020; Saito et al., 2020)上的应用都取得了很好的效果。更早些时候,Yin and? Pei 2015构建了一个强大的CNN-based summarizer来提升extractive摘要效果,叫做DivSelect + CNNLM。模型将句子映射到稠密的分布式表示(CNNLM),随后构建了一个多样化选择过程(DivSelect)。CNNLM模块是在大规模语料上预训练的,可以通过刻画更多关键语义特征学习到更好的句子表示。该方法在DUC 2002/2004数据集上的表现超过了很多传统的方法,如LexRank (Erkan and Radev, 2004)和DivrRank(Mei et al., 2010),可以被看做PTMs应用在文本摘要上的早期实践。

? ? ? ? 这些年我们见证了诸如BERT的PTMs在各种NLP任务上的高超表现,文档摘要同样也因PTMs的广泛引用取得了巨大提升。例如,Zhong et al 2019使用BERT得到的词向量替代word2vec和GloVe在extractive摘要任务上取得了更好的表现。Zhang et al. 2019a首先将BERT通过两阶段睫毛过程应用在abstractive摘要任务:1)首先,使用一个只考虑上文内容且包含copy机制的decoder来生成一个draft摘要;2)使用一个refining decoder来完善第一步生成的draft摘要。更多地,Liu 2019和Liu and Lapata 2019提出了一个叫做BERTSUM的通用框架,可以同时用于extractive摘要和abstractive摘要。他们的实验证明extractive摘要任务的损失函数可以提升abstractive摘要任务的效果。为了直接预测句子而不是词,HIBERT (Zhang et al. 2019b)提出了一个层次化双向transformer结构,在编码过程直接在句子级别来mask文档内容。由于大部分的任务可能面临一个训练时优化目标与评价指标的目标不一致的问题 (训练时大部分是最大似然损失,测试时是句子级别的ROUGE指标),Bae et al. 2019提出了一个新颖的训练监督信号,使用强化学习来直接最大化摘要级别的ROUGE分数。为了结合自编码和部分自回归语言模型任务,Bao et al. 2020a使用Transformer作为backbone网络,来与训练一个统一的语言模型UniLMv2。模型设计了一个新颖的训练过程,叫做pseudo-masked language model (PMLM),从而将一个用于语义理解的双向语言模型(LM)和一个用于语言生成的Seq2Seq LM联合起来训练。基于此技术,UniLMv2好于其他同样使用base-size的预训练模型,诸如BERTSUMABS和MASS (Song et al., 2019)。

? ? ? ? ?大部分已有的方法的预训练任务都只包括token或者sentence的MLM任务,BART (Lewis et al., 2019)通过更多的noise functions破坏原始文本,包括删除词,文本填充,句子重排列以及文档旋转打乱。因此,BART在fine-tune abstractive摘要任务的时候效果十分好,比最好的BERTSUM模型在CNN/DailyMail和XSum数据集上所有的ROUGE分数都高6个点左右。不同于大部分已有的方法,MatchSUM将extractive摘要任务视作文本语义匹配问题,并通过对比学习的方式解决摘要级别优化的困难,核心观点是一个好的摘要在语义上与源文档的相似度要高于其他文档。这个想法是从IR领域借鉴过来的并且在六个数据集上在extractive摘要任务上取得了理想的效果。更细致地,Google提出了一个全新的框架PEGASUS (Zhang et al., 2020),专门为abstractive摘要任务设计了一个gap-sentence generation (GSG)任务来做预训练。他们认为使用一个更接近下游任务的预训练目标可以得到更好的fine-tune结果同时还更快。为此,gap sentences (表示文档中信息量最大或最重要的句子)被选中作为剩余内容生成的目标文本。因此,PEGASUS在abstractive摘要任务上在大部分主流的公开摘要数据集上取得了SOTA的表现。最近,一些研究者们也关注 1) 通知使用一些高置信模型或者加入一些指引(比如CIT(Saito et al., 2020) 和Dou et al., 2020)使abstractive摘要更忠于原文;2) 从大规模预训练的Transformer模型中蒸馏出知识来做摘要(Shleifer and Rush, 2020);3) 参考法律相关任务(Huang et al. 2021)。

5.2.2 Snippet Generation

? ? ? ? 不用于通用文档摘要,snippets需要突出文档中与给定查询相关的部分。因此,snippet generation可以被看做是一种query-focused summarization (QFS)。与通用文档摘要类似,snippet generation相关工作也可以被分成extractive方法 (Zhu et al., 2019; Feigenblat et al., 2017; Roitman et al., 2020)和abstractive方法 (Laskar et al., 2020a; Baumel et al., 2018; Chen et al., 2020a; Su et al., 2020; Laskar et al., 2020b)。一些PTMs已经被证明在文本生成任务中有效,大部分已有的工作使用PTMs来生成abstractive snippets。例如,Laskar et al. 2020a提出一个两阶段算法使用Transformer做迁移学习来解决Query-Focused Abstractive Summarization (QFAS)。在第一个阶段,使用BERTSUM (5.2.1中提到过)在一个abstractive summarization语料上做预训练,随后fine-tune词模型在目标域上得到用于QFAS的模型。在fine-tune阶段,为了考虑到查询的相关性,输入时将查询和文档拼接在一起输入到编码器中。Baumel et al. 2018提出了RSA-QFS,模型使用查询来计算attention来预训练一个Seq2Seq模型用于多文档摘要。尽管现代搜索引擎通常使用extractive snippets,很少有工作使用PTMs来做。有一个工作Zhu et al., 2019在BERT的基础上设计了一个QFS模型来从文档中提取snippets。基于这个模型,他们从数据中获取了大量的QFS任务样本来提升对查询相关性和句子内容的建模。QFS任务的一个主要困难时缺少合适且具有一定规模的数据集。例如DUC 2005-2007 QF-MDS任务(Dang 2005; Fisher and Roark, 2006),Debatepedia (IBM)(Nema et al., 2017), WikiRef (Microsoft)(Zhu et al., 2019), qMDS (google) (Kulkarni et al., 2020)等。除了检索系统,一些其他的方法(Su et al., 2020; Savery et al., 2020)更适合做Query-Answering (QA)系统,因为它们将阅读理解和语言建模相结合。

5.2.3 Keyphrase Extraction

? ? ? ? Keyphrase extraction或identification旨在从文档中抽取一部分信息,话题或者关键的短语。这些内容并不能立刻给用户关于文档内容的预览(像文档摘要一样),但也有助于一些下游任务,比如文档索引,文档推荐和查询推荐。大部分工作通常会将关键词提取任务视作序列标注任务(Lim et al., 2020;Wu et al., 2021; Park and Caragea, 2020; Sahrawat et al,. 2020;?Liu et al., 2020)。例如,一些工作(Sahrawat et al 2020; Park and Caragea 2020)使用BERT或者SciBERT(Beltagy et al., 2019)生成的融合上下文的term embedding作为BiLSTM-CRF结构的输入来做keyphrase extraction。Tang et al. 2019使用BERT外加一个注意力层来自动从临床记录中抽取关键词。从另一个角度,Sun et al. 2020提出了BERT-JointKPE,使用多任务学习策略来从文档中截取完整的短语,并根据这些短语的代表性来排序。该方法参照了LTR的方式并在web和scientific领域提升了keyphrase extraction的表现。

6. 专门为IR问题设计的预训练方法

? ? ? ? ?在本节我们介绍为IR问题量身定制的PTMs (Lee et al., 2019b; Chang et al., 2019; Ma et al., 2021b; Ma et al., 2021c; Boualili et al., 2020; Ma et al., 2021d; Zou et al., 2021; Gao and Callan, 2021a; Liu et al., 2021d)。通常诸如BERT的预训练模型在第一阶段检索和re-ranking阶段都取得了巨大的成功,在直接使用PTMs的基初始,研究人员们希望可以探索PTMs中针对特定任务的自监督学习目标(Zhang et al., 2020; Glass et al., 2020; Ke et al., 2020b; Bao et al., 2020b; Ma et al., 2021b; Ma et al., 2021c; Ma et al., 2021d),并且有专门为IR任务设计的模型结构 (MacAvaney et al., 2020; Gao and Callan, 2021a)。设计针对特定任务的PTMs意思是使用更接近下游任务的预训练目标,从而可以高效地提升fine-tune的表现。更多地,面向任务的预训练模型具有直接提供解决目标任务的能力从而降低标注数据的开销,这当IR领域普遍使用零资源或者低资源的情况下会非常有价值。但这种方式会失去预训练模型的泛化能力,使得面向特定任务的模型在其他任务上的表现不会特别好。因此通用性与泛化性之间要做一个权衡。

? ? ? ? ?Boualili et al. 2020提出了MarkedBERT,该模型通过将查询和文档中匹配上的词用特殊token标记来加入精确匹配信号。Mask language modeling任务(MLM)和next sentence prediction task (NSP)任务被用于MarkedBERT的预训练阶段。这个marking技术提升了MLM学习文本表示的能力,并且教会模型注重IR中十分重要的精确匹配信号。然而NSP任务目的在于学习句子之间的连续关系,与IR的要求有所区别。Lee et al. 2019b提出了Inverse Cloze Task (ICT)用于OpenQA任务中的passage retrieval,该任务随机从文章中采样一句话作为伪查询,用剩余的句子作为文档。Chang et al. 2019除ICT任务以外提出了额外两个预训练任务:Body First Selection (BFS)任务和Wiki Link Prediction (WLP)任务。BFS任务随机从Wikipedia文章的第一段中随机选取一个句子作为伪查询,随机选取一个段落作为文档。WLP任务也是随机从Wikipedia文章的第一段中随机选取一个句子作为伪查询,文档是从另一个页面中采样的,这个页面和原页面之间存在超链接。这些段落级别的预训练任务是通过双向编码器结构预训练的,可以支持基于embedding的检索。实验表明加入这些预训练任务之后模型表现显著优于BM25和MLM预训练模型。然而,BFS和WLP高度依赖文章的特殊结构,比如需要多个段落,以及需要有超链接,这限制了其他语料上任务的应用。

? ? ? ? 当把ICT预训练模型引用在ad-hoc检索任务时,在一些典型的数据集上观察到一些边际收益。Ma et al. 2021b提出用代表词预测任务(representative words Prediction)来对ad-hoc retrieval任务做预训练(PROP)。PROP受到来自传统IR统计语言模型query likelihood (QL)模型 (Ponte and Croft, 1998; Liu and Croft 2005)的启发。基于贝叶斯理论,QL在给定document language model的情况下根据query likelihood来对文档排序,受此启发提出了Representative wOrds Prediction (ROP)用于预训练。ROP假设"Representativeness can be a good proxy of Relevance",即如果一个语言模型可以识别出文档中的代表词,那么它可以更好的刻画查询和文档之间的相关性。具体地,给定一个文档,根据一个document language model采样一对词集,该document language mdoel定义为一个通过狄利克雷prior smoothing (Zhai, 2008)后的multinomial unigram语言模型,其中有更高query likelihood的词集被视作有代表性的词集。随后使用BERT利用Pairwise的方式来预测两个词集的偏序关系,与MLM任务结合在一起训练。尽管PROP在ad-hoc retrieval上取得了不错的表现,但PROP的表现受到传统unigram语言模型的限制。为了解决这个问题,B-PROP (Ma et al., 2021c)使用了BERT来替代传统unigram语言模型,用于ROP任务的构建,并用这个任务重新训练了BERT。特别地,受到Amati and Rijsbergen, 2020中随机发散想法(divergence-from-randomness)的启发,B-PROP提出了一个新颖的对比学习方法,利用BERT中的注意力机制来从文档中选择代表词汇。对比词的分布是通过计算文档词分布与随机词分布之间的交叉熵(散度)得到的。通过从对比词分布中采样,B-PROP获取了比unigram语言模型中更好的代表词,从而在下游的文档排序任务中获得了比PROP更好的表现。

? ? ? ? 除了设计新的预训练任务,有些工作提出修改Transformer的结构来适应IR任务。例如,在预训练阶段,Gao et al提出在BERT中的低层(具体是BERT-base中的第6层)和BERT顶层上额外的两层之间添加通路。同时,这额外的两层只从低层获取输出向量,并仅仅在[CLS]的位置上使用顶层BERT(第12层)的输出。文章认为这种方式可以使得[CLS]表示可以在最后两层降低编码局部信息和句法结构的负担,从而可以更专注于整体语义理解(我的理解是将MLM学到的内容和IR需要的内容分开)。在fine-tune阶段,MacAvaney et al. 2020提出在cross-encoder结构中,在低一些的层里隔绝查询和文档之间的信息流动。这种方式使得可以提前计算文档表示,并且加速re-ranking的推理阶段。这里就出现了一个问题,Transformer结构是适用于IR最好的结构吗?

? ? ? ? 总之,研究者们尝试了两种方式来为IR专门设计PTMs:1) 设计新的预训练任务;2) 设计新的结构。一方面,设计新的专门适用于IR且更接近下游任务的预训练任务可以提升fine-tune的表现,这看起来很合理并且也被证明有效,然而,这种思路并没有触及排序的核心,即究竟什么对相关性起作用。需要有更多的研究来帮助理解什么对建模相关性起到真正的作用,以及相关性如何在预训练阶段刻画出来。另一方面,最近的研究在设计新的模型结构时取得的进展有限,大多仅是对Transformer结构的小修改。未来在设计新的适用于IR的模型结构,理论上更合理且实践更有效的模型还有很长的路要走。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-11 15:58:41  更:2021-12-11 15:59:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 15:35:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码