乐趣区

关于后端:详解预训练模型在信息检索第一阶段的应用

导读:近年来,预训练模型在自然语言解决的不同工作中都获得了极大的胜利,在信息检索中也提高不小。近期,咱们邀请到了中科院的范意兴博士现场分享,内容聚焦预训练模型在信息检索中第一阶段检索(召回阶段)的利用,并对最近几年的相干钻研进行零碎的梳理和回顾。

全文 6110 字,预计浏览工夫 21 分钟。

一、信息检索的倒退过程

1、信息检索三个档次的视角

1)从根底问题的角度。查问与文档的相关性度量是信息检索的外围问题,重点关注检索后果的准确度,但相关性目前仍无明确定义,是与场景、需要和认知无关的一个概念。

2)从检索框架的角度,须要从大量的文档汇合里疾速返回相干的文档并排序,除了检索后果的正确性,还要思考检索的效率。

3)从零碎的角度,不仅要解决排序的问题,还要解决用户用意含糊、用户输出有错、文档构造异质等问题。

2、信息检索的倒退过程

1)相关性度量

相关性度量的建典范式,经验了 传统检索模型、Learning-to-rank(LTR)模型、Neural IR(NeuIR)模型 的演进。传统检索模型更多关注查问和文档中重叠的词,在此基础上建模权重,后将不同权重的得分组合,失去相关性得分。代表性的办法包含 PlV、DIR、Language Model、BM25 等,都是通过对词频、文档长度、以及词的 IDF 的不同组合形式,来失去度量的得分。

LTR模型的建模过程,是从指标函数的计算变成特色学习的过程。通过人工结构不同特色,后采纳神经网络或者函数优化的形式,来解决特色组合的问题。代表办法包含 RankNet、RankSVM、LambdaMart 等。

NeuIR 办法 更进一步,通过模型学习构建人工设计特色的过程,采纳机器学习优化的形式来抽取特色。大抵能够分为 3 类:一是基于示意的办法,独自学习查问和文档的示意进行打分;二是基于交互的办法,把查问和文档从底层做交互,对交互信号进行形象失去打分;三是将二者联合起来进行打分。

2)检索框架

检索框架的倒退经验了从单阶段检索到多阶段检索的过程,晚期的检索引擎(例如 Indri、ES 等)次要是构建单阶段检索,应用 BM25、LM 等传统算法。后续引入了更多的阶段来进一步晋升零碎的效率,包含 L2R 和 Neural 等,这些办法的计算复杂度很高,通常放在 Reranker 阶段。

3)检索系统

为了满足理论检索场景的须要,检索系统蕴含更多的模块,包含查问改写、用意了解、文档索引等。在检索系统中,从底层文档存储的构造来看,它经验了从基于符号的零碎架构到基于向量的零碎架构的转变,在实在的检索系统中,通常也会联合二者的劣势来建模。

基于符号的检索系统,通过把文档示意成一个高维稠密的向量,每个词在向量里占一维,每个文档映射在词表向量上就是一个极度稠密的示意。存储构造采纳倒排索引的形式,在离线阶段把文档索引起来。

基于向量的检索系统 次要通过语义映射将文档映射到一个低维浓密的向量空间。这里采纳的索引形式包含基于图和量化的办法,这种形式也带动了整个零碎的架构变迁。

预训练的办法在检索系统中的不同模块都有利用:在 Query Parser 层面有 rewriting、expansion、suggestion;在 Doc Encode 层面也有很多文档编码的形式;在第一阶段检索、重排阶段也提出了不同的模型。

二、预训练在检索第一阶段的利用

1、基于 Term-based 检索模型的两个问题

第一阶段检索晚期的办法是基于 Term-based 的办法,次要是对文档荡涤,通过倒排形式索引到引擎中。这类办法面临两个经典的问题:一是查问稠密与文档冗余带来的词失配的问题;二是无序词排列导致失落语义依赖信息的问题。这两个问题造成语义信息失落,导致后续建模无奈晋升性能。

2、三种解决办法

针对以上问题次要有三类不同晋升办法,别离是:稠密检索办法(Sparse Retrieval)、浓密检索办法(Dense Retrieval)、混合办法(Hybrid Retrieval)。

  • Sparse Retrieval:
  • 放弃示意的稠密性,与倒排索引集成以实现高效检索。
  • Dense Retrieval:
  • 从符号空间到语义空间,应用神经网络算法进行语义类似检索
  • Hybrid:联合基于倒排的检索和语义检索,继承两者的长处。

1)Sparse Retrieval

依据改良倒排索引中模块的不同,Sparse Retrieval 能够分为 Neural Weighting Scheme 和 Sparse Representation Learning 两类。

  • Neural Weighting Scheme

利用离散符号空间中的预训练模型改良项加权计划。

次要包含:

a)Term Re-weighting

通过扭转原始文档在倒排索引中的权重来晋升语义,通过预训练的模型从语义的角度来预计词的权重。其中有两个代表办法:

  • DeepCT [Dai et al., SIGIR 2020]:核心思想是用 BERT 里学好的基于上下文的向量来预计每一个词对于文档的重要度并把它索引到倒排索引中替换原来的基于词频统计权重的形式。

这里的关键问题是如何构建监督信号来学习词权重,论文提出了一种 Query term recall 的监督信号进行学习。

  • HDCT[Dai et al., WWW 2020]

核心思想是将文档拆成段落,对每个段落去预计每个词的权重最初把每个段落里的权重组合起来。存在两个外围问题:一是每个段落中词的权重如何评估,这里间接采纳了 DeepCT 的预计形式,此外,对预测的打离开根乘以 N 再 Round 到整数后进行索引,防止匹配过程被局部高权重的词所主导。二是如何组合段落的词权重造成文档的词权重,论文采纳的是均匀加权和按段落地位衰减的形式加权。

b)Document Expansion

为文档扩大语义相干词项,进步局部词项的权重,缓解词汇失配问题。其思维是在索引的过程中预测和文档相干的词并全副退出文档中,增加到倒排索引中去。

  • doc2query/docTTTTTquery [Noqueira et al., 2019]

doc2query 的构造是 6 层的 Transformer,docT5query 与 doc2query 的区别是利用了一个更弱小的预训练模型 T5 来生成扩大词项。其核心思想都是利用给定的查问和文档的标注对训练一个 Seq2Seq 生成模型,而后对每个文档生成伪 query 拼接到文档尾部进行索引构建。

  • UED (Unified Encoder-Decoder) [Yan et al., AAAI 2021]

该办法的核心思想是利用训练集中有标注好的(q,d)对同时训练判断模型和生成模型,一方面能够只用 Encoder 局部将(q,d)拼起来做相关性的判断预测,另一方面能够额定加一个 Decoder 局部来生成查问。两局部同时学习相互增益会使 Encoder 局部更强。

c)Expansion + Re-weighting

该种形式是把文档扩大与词权重同时进行学习,代表性工作有:

  • SparTerm [Bai et al., AAAI 2021]

SparTerm 办法在整个词表上进行词权重评估,从而达到词项扩大以及词权重预计同时进行的成果。

  • SPLADE [Formal et al., SIGIR 2021]

SparTerm 的重要性预计局部是提前学习好的并且从试验后果来看词项扩大能力比拟受限,SPLADE 在它的根底上做了扩大:一是把原来词预计的权重进行 saturate function 使扩大能力变强,二是利用 FLOPS 正则项束缚来使整体网络能够端到端地学习。

  • Sparse Representation Learning

另一种办法就是把文档映射到一个语义向量的隐空间中去。

  1. Latent Term Indexing

文档倒排索引中每个维度对应的词,当初映射到一个关联多维语义的“latent term”的 ID。

  • SNRM [Zamani et al., CIKM 2018]

核心思想是对文档的词序列进行卷积操作获取每一个 N -grams 的示意,而后将其通过全连贯的映射进行语义形象后再反向稠密化放大到更高的维度,最初通过池化操作失去高维稠密的文档表白。

  • UHD-BERT (Bucketed Ultra-High Dimensional Sparse Representations) [Jang et al., 2021]

在 SNRM 根底上提出一个基于 BERT 的稠密示意学习办法,区别于 SNRM 用的卷积和全连贯,UHD-BERT 底层 Encoder 用的是 BERT。

2)Dense Retrieval

Dense Retrieval 间接扭转了原有的检索模式,把查问和文档映射到语义空间中,而后用 ANN 算法来进行检索。个别采纳双塔的编码方式对查问和文档独自地编码失去二者独立的表白,从而使文档能够进行离线索引。这类办法能够分为两类:Term-level Representations、Doc-level Representations。

  • Term-level Representations
  • ColBERT [Khattab et al., SIGIR 2020]

核心思想是把交互的过程提早到前面去使得后面表白的计算能够独自进行,下层交互采纳 MaxSim 计算函数对每个查问词和文档中的每一个词计算类似度取最大,而后把每个查问词的得分加和起来失去最终的类似度分值,ColBERT 性能绝对于上文提到的办法都有较大晋升。

  • Doc-level Representations
  • RepBERT [Zhan et al., 2020] , DPR [Karpukhin et al., EMNLP 2020]

该办法是采纳双塔的 BERT 来建模查问和文档的示意进行类似度计算。在训练的形式上有一些特地,会采纳一些 BM25 召回的强负例来晋升模型的建模能力。

能够看到,RepBERT 办法非常简单而且性能比 DeepCT 等都要好但绝对于 BM25+BERT Large 这样交互式的模型还是要差。

  • TCT-ColBERT [Lin et al., 2020]

ColBERT 性能相比传统办法失去大幅晋升但须要大量的文档存储,TCT-ColBERT 通过蒸馏技术,将 ColBERT 的强建模能力蒸馏到相似于 RepBERT 这样的双塔架构下来,从而升高搜寻提早缩小存储代价。

  • Multi-vector —— ME-BERT [Luan et al., TACL 2020]

将 BERT 失去的前 M 个词的表白作为文档的表白,构建索引的时候同时索引多个向量,计算最终得分的时候通过 max 来取与查问表白类似度最高的分值。

  • Multi-vector  [Tang et al., TACL 2021]

相较于间接取前 M 个词的表白,该种办法用聚类的办法,利用 k -means 对文档所有词的表白进行聚类失去 k 个簇核心,所有簇核心的向量独特作为文档表白,而后与查问计算类似度,取最大的类似度分值作为最终的相关性得分。

3)Hybrid of Sparse-dense Retrieval

除了以上的两种建模形式,还能够将两种形式联合起来利用 Sparse Retrieval 和 Dense Retrieval 各自的劣势来晋升性能。

  • CLEAR  [Gao et al., ECIR 2021]

该办法是先用 Sparse Retrieval 进行检索将检索不好的查问再用 Dense Retrieval 进行加强。形式就是先计算 Sparse Retrieval 的后果并预计残差项,而后用残差项来监督 Dense Retrieval 模型的训练。

  • COIL (COntextualized Inverted List) [Gao et al., NAACL 2021]

另一种是基于 ColBERT 根底之上,ColBERT 依赖于 ANN 的检索形式计算量很大,而 COIL 扭转底层索引构造改用倒排索引形式可能缩小计算量。

三、在检索第一阶段的挑战性问题

1、负样本采样

当初钻研较多问题是,如何开掘更强的负例来晋升模型的判断能力。一般来说,无论用怎么的神经网络办法,最初算 loss 时都是辨别正例和负例间的差别。因为召回阶段的文档规模十分大,在训练时不能将所有负例文档都进行计算,理论训练时个别通过采样来抉择负例,如何高效开掘最具信息量的负例是模型训练的一个关键问题。

以后几种办法有:

  1. ‍‍‍‍‍‍‍‍‍ANCE‍‍‍‍‍‍‍‍‍

核心思想是初始学习先用 BM25 的办法采一些负例学习双塔的 BERT 模型,后续的学习过程利用后面学好的模型进行初始化,并对文档进行索引来检索失去 top- n 文档随机采样负样本,其中每隔一段时间都须要对文档索引进行更新,因而该办法的训练代价较大。

  1. RocketQA

RocketQA 是百度提出的办法,它跟 ANCE 比拟靠近只是做了额定的 denoised 操作,如果应用学到的双塔模型的召回后果进行负样本采样的话可能会带来假负样本。该办法额定训练了一个更强的排序模型对召回的文档中靠前的局部进行相关性评估并去除可能的伪负样本。

  1. TAS-Balanced

TAS-Balanced 用了一个更简单的采样策略,先对查问进行聚类,而后同一 batch 内的样本按簇进行采样。除此之外,在采样负样本时思考了与正样本具备不同 margin 的文档。

2、索引联结学习

大部分双塔模型学习是独立于索引过程的,在训练过程中,查问和文档的相关性是基于神经网络输入的浓密向量计算失去。然而,在检索时,相关性的计算是基于索引后的文档表白,例如量化后的向量示意。两者之间的差别会对检索的性能造成肯定的损失。那么怎么样能在学文档示意的同时,与索引阶段联结优化,也是一个很重要的问题。

京东做了一个较新的办法就是把相关性的计算跟两头索引的过程联结起来。将乘积量化的索引过程的梯度回传到表白学习模块,以实现表白学习和索引构建的联结训练。

3、联结生成模型和判断模型

判断模型学的是查问和文档相关性的一个判断问题,生成模型须要输出一个文档去生成查问的序列。生成模型通常对模型要求更高因为须要对文档语义有深度的了解。如何联合两种建模形式的劣势来晋升检索的性能也是一个值得摸索的方向。

目前存在的一种做法是让模型同时学习判断工作与序列生成工作,须要留神的是在学习序列生成工作时无奈提前获知「查问」前面的词,所以 Mixed Attention 阶段 须要一个特地的操作。这个操作就是对文档而言每个词都能够进行双向交互,上下文 mask。

嘉宾介绍

范意兴,博士,中科院计算所副研究员,次要钻研内容包含信息检索、自然语言解决等,在国内顶级学术会议 SIGIR、WWW、CIKM 等发表论文 30 余篇,开发了深度文本匹配工具 MatchZoo,Github 的 star 数累计 4000+。曾取得中科院院长优秀奖,入选中国科协青年人才托举工程、中国科学院青年翻新促进会会员,负责 CIPS 信息检索专委会委员、CIPS 青年工作委员会委员、以及国内外多个会议组委成员。

举荐浏览

|百度商业大规模高性能全息日志检索技术揭秘

|疾速剪辑 - 助力度咔智能剪辑提效实际

|短视频个性化 Push 工程精进之路

———- END ———-

百度 Geek 说

百度官网技术公众号上线啦!

技术干货 · 行业资讯 · 线上沙龙 · 行业大会

招聘信息 · 内推信息 · 技术书籍 · 百度周边

欢送各位同学关注

退出移动版