查看原文
其他

【综述专栏】一文详解神经信息检索领域的最新进展

在科学研究中,从方法论上来讲,都应“先见森林,再见树木”。当前,人工智能学术研究方兴未艾,技术迅猛发展,可谓万木争荣,日新月异。对于AI从业者来说,在广袤的知识森林中,系统梳理脉络,才能更好地把握趋势。为此,我们精选国内外优秀的综述文章,开辟“综述专栏”,敬请关注。

来源:知乎—Gordon Lee

地址:https://zhuanlan.zhihu.com/p/545429612

翻译自Medium博客

https://medium.com/@mhammadkhan?source=post_page-----c0a67278f626--------------------------------

原文链接:

https://medium.com/@mhammadkhan/neural-re-ranking-models-c0a67278f626

译者 @Gordon Lee 按:题目有改动,原博客题目是Neural IR Models。这篇博客主要介绍了神经信息检索领域中不同类型的经典或者最新方法,里面提到的论文值得细读。


01

前言
神经信息检索(Neural Information Retrieval, Neural IR)是信息检索领域的一个重要研究课题。自从谷歌在2018年发布BERT以来,它在11个NLP任务上获得了最先进的结果,一举改变了整个NLP领域的研究范式。2019年1月,Nogueira和Cho在MS MARCO Passage Ranking测试集上首次使用BERT。从那时起,人们开始研究神经信息检索的范式,也提出了许多基于BERT的文本排序方法。这些方法在多阶段搜索架构的重排阶段(Re-Ranker)被应用。
图1 多阶段搜索架构
图1显示了一个简化的多阶段搜索结构。我们首先执行检索步骤,即通过使用倒排索引(Inverted Index)来精确匹配,并通过BM25得分来对文档进行排序,这个步骤也称为候选项生成(Candidates Generation)或一阶段检索(first stage retrieval)。这一阶段并不需要太多成本。而后,候选集合被缩减到k个文档,并通过基于BERT的上下文排序模型来确定前N个文档的最终排序。这就是成本相对更高的重排阶段。这些分离的阶段有助于改善搜索系统中的效率和效果的权衡。
图2 神经重排架构
神经重排模型(Neural re-ranking models)一般可以分为以下四种:基于表征的(representation-focused),基于交互的(interaction-focused),全交互的(也被称作交叉编码器,)(all-to-all interaction(cross encoder) ),和迟交互(late interaction)。这篇博客将讨论这些类别中一些典型的方法。
自从Nogueira和Cho在2019年发起针对文本排序的 "BERT革命 "以来,人们采取了不同的方法来实现更高效和有效的排序架构。monoBERT是第一个基于BERT的文本排序器,它遵循交叉编码器的架构,在每个transformer层使用Attention机制来捕获查询(Query)和文档(Doc)的term之间和内部的交互。图2(c)展示了一个交叉编码器架构。然而,这是一个成本很高的模型,很难在实际业务中使用。
一个不那么昂贵的方法是用一个双塔模型(Bi-Encoder)将Query和Doc分别表示为密集的向量嵌入。一旦模型被训练好,文档表征就可以独立于查询表征而被提取出来。这允许在推理时有效地提取查询表征以进行重排。图2(a)显示了一个双塔编码器的例子。


02

双塔模型(Bi-encoder Models)
在双塔模型中,值得讨论的方法是DPR和ANCE。

密集段落检索器(Dense passage retriever, DPR)

DPR是一个应用于问答领域的双塔模型,旨在最大限度地提高查询与相关文档的相似度,同时最小化与非相关文档的相似度。为了次,DPR提出了一种Batch内负采样的技术,从同一训练批次的其他样本中选择段落,同时使用BM25检索出的段落。这种方法是有效和高效的,因为在训练期间负样本已经存在于Batch中。

最近邻负对比估计 (Approximate nearest neighbour Negative Contrastive Estimation, ANCE)

ANCE基于双塔模型构建。Xiong等人提出,可以用近似最近邻(ANN)的方法来识别在训练过程中一些被双塔模型排序很高的负样本,而不是在Batch内的负样本中使用BM25。作者认为,他们的方法在理论上比Sampling BM25的结果更有效,因为Sampling BM25使模型倾向于模仿稀疏检索(Sparse Retrieval),从而产生没啥信息量的负样本。
这两个模型的一些经验结果表明,双塔编码器不如交叉编码器有效,但比BM25等稀疏检索方法有效。这种现象是可以预期的,因为双塔模型丧失了查询和文档之间的交互。然而,与交叉编码器相比,它有着直接在预先计算好的文档表示上进行排序的优势,而交叉编码器在排序时需要对BERT进行多次inference。


03

迟交互模型(Late Interaction Models)

Contextualized Late Interaction over BERT, ColBERT

图3 ColBERT模型结构
为了减小交叉编码器和双塔编码器之间的差距,ColBERT模型引入了如上所示的迟交互方法。在这种方法中,查询和文档被独立编码,然后使用 MaxSim 算子在它们之间进行细粒度的相似性交互。ColBERT 首先通过以下方式计算嵌入矩阵  和  ;(# 指的是 [mask] token)。
接下来,在查询时,借助查询  和文档  的 BERT表示,计算它们contextualized token embeddings之间的相关性(相似性)分数,表示为上面公式中描述的  。
相关性得分是每个Query term与文档中存在的最佳匹配term之间的最大余弦相似度的得分之和,被称为 MaxSim 算子。上述等式中的评分函数假设使用语料库中的所有文本来计算相关性分数;可以按相关性分数  降序排序来检索前 k 个文档。
ColBERT的另一个策略是使用 [MASK] token,在定长的Query文本后面被添加。作者将此作为查询增强的一种形式,因为这些 [MASK] token允许模型学习如何使用新term扩展查询或根据其重要性重新加权(re-weight)现有term,以便匹配语料库中的文本。迟交互架构有助于减少查询处理时间,并且每个文档仅离线编码一次,就像在双塔编码器中一样,与交叉编码器相比,有效性仅略有下降。
尽管 ColBERT 比 BERT之前的一些检索模型慢,但它在query-time这一方面大大缩小了差距。该模型的一个主要缺点是存储来自语料库的文本的每个token表示所需的空间比传统的倒排索引大得多。这种大内存占用的特点使 ColBERT 在大型语料库情形下被应用的吸引力降低。


04

基于知识蒸馏的神经重排模型
知识蒸馏是开发有效和高效的神经排序模型的另一类方法,类似于 ColBERT 。蒸馏方法的主要用途是减小模型大小并降低整体推理成本,包括内存需求。Hofsẗratter 等人是第一个将交叉编码器蒸馏成双塔编码器的人。作者首先使用 MS MARCO Passage Ranking测试集对教师模型进行了微调,然后使用它对所有训练三元组进行打分,从而构建一个新的训练数据集。最后,学生模型在这个新构建的数据集上使用Margin MSE Loss进行训练,该损失函数优化了查询与非相关文本及相关文本分数之间的边距(Margin)。
图4 TAS-B
还有一种更principled的方法被提出,称为TAS-B (Balanced Topic Aware Sampling),即应该使用Topic Aware Sampling来构造batch,而不是随机选择查询。如图 4 所示。查询是从topic cluster中抽取的,同时在相关和非相关段落之间保持适当的平衡。


05

针对信息检索的预训练模型
目前的文本编码器一般采用预训练的Transformer语言模型,其经过微调,可将文本序列编码为如 ANCE一样的单个密集向量表示或像ColBERT那样的多密集向量表现。然而,Gao 和 Callan等人声称,基于当前Transformer的预训练编码器还没有特别适用于密集检索,因为在现有模型中,CLS 令牌在中间层保持inactive状态,仅在最后一个注意力层重新激活。根据作者的说法,双编码器应该在所有注意力层中聚合信息,以有效地捕获文本序列中的不同模式。

Condenser

图5 Condenser
Condenser 模型是类似于Transformer那样的堆叠Transformer层。这些层分为三组,第一组称为early backbone层,另一组称为late encoder backbone层,最后一组由Condenser head层组成。
Condenser模型中一个有趣的地方是Condenser head层的输入,它采用late encoder backbone的表示和来自early backbone层的短路连接,如图 5 所示。
与 BERT一样,Condenser 也使用 Masked-Language Modeling (MLM) 方法。Head 的输出用于训练 MLM 损失,定义为:
Condenser 的late encoder backbone层通过将新信息传递到 h_late 层来改进token表示,迫使后期层的CLS token在backbone中聚合最新生成的信息,这为使用后层 CLS 进行 LM 预测提供了条件。为了消除对输入文本的局部和句法结构建模的压力,使用了早期层的跳过连接,以便 CLS 能够对输入文本的全局含义进行建模。在微调过程中,Condenser的head会被丢掉,使其结构与BERT相同且易于更换。

TaCL

一种最新的改进 BERT 预训练的方法是Token-Aware Contrastive Learning (TaCL),旨在将 BERT 模型中token表示的各向异性分布转换为各向同性分布。BERT当前的token表示是整个表示空间的一个狭窄子集。对于诸如检索和排序等一些对判别语义至关重要的场景而言,这并不是一个理想的情况。
图6 TaCL模型结构
TaCL 是一种新颖的进一步预训练方法,不需要任何额外的数据或监督信号。它使用类似于之前讨论过的知识蒸馏的概念,即一个学生模型 S 和一个教师模型 T,两者都是从同一个预训练的 BERT 初始化。
教师模型在训练期间被冻结,仅更新学生模型参数。与 BERT 模型类似,masked后的文本被输入给学生模型,而原始输入文本被输入给教师模型,如图 6 所示。  被定义为:
其中,当   是masked token时,则   = 1,否则为0,  是温度超参数,sim(;) 用于计算余弦相似度。在这个学习目标中,学生模型旨在学习与教师模型提供的真实表示相似的masked token表示,同时将其远离其他输入token表示。从事实习更具区分性的token表示,因此遵循各向同性分布。
学生模型在进一步预训练阶段的目标函数  被定义为:


06

总结
在本文中,我们从在实践中如何使用多阶段排序设置开始,讨论了Neural IR的一些最新方法。排序模型架构有多种类型,包括双塔编码器、交叉编码器和后交互等,它们各有优缺点。我们还讨论了可以用来代替BERT以改进密集检索的预训练方法。Neural IR是一个非常有趣且发展迅速的研究课题,在以后的文章中,我将讨论稀疏与密集的神经检索模型,以及如何在不使用标记数据集的情况下使它们适应不同的领域。

参考文献

[1] Yixuan Su, Fangyu Liu, Zaiqiao Meng, Lei Shu, Ehsan Shareghi, and Nigel Collier. TaCL: Improving bert pre-training with token-aware contrastive learning, 2021

[2] Lee Xiong, Chenyan Xiong, Ye Li, Kwok-Fung Tang, Jialin Liu, Paul N. Bennett, Junaid Ahmed, and Arnold Overwijk. Approximate nearest neighbor negative contrastive learning for dense text retrieval. CoRR, abs/2007.00808, 2020.

[3] Rodrigo Nogueira and Kyunghyun Cho. Passage re-ranking with BERT. CoRR, abs/1901.04085, 2019.

[4] Jimmy Lin, Rodrigo Nogueira, and Andrew Yates. Pretrained transformers for text ranking: BERT and beyond. CoRR, abs/2010.06467, 2020.

[5] Sebastian Hofst ̈atter, Sheng-Chieh Lin, Jheng-Hong Yang, Jimmy Lin, and Allan Hanbury. Efficiently teaching an effective dense retriever with balanced topic-aware sampling. CoRR, abs/2104.06967, 2021

[6] Omar Khattab and Matei Zaharia. ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT, pages 39–48. Association for Computing Machinery, New York, NY, USA, 2020.

[7] Luyu Gao and Jamie Callan. Is your language model ready for dense representation fine-tuning? CoRR, abs/2104.08253, 2021

[8] Sebastian Hofst ̈atter, Sophia Althammer, Michael Schr ̈oder, Mete Sertkan, and Allan Hanbury. Improving efficient neural ranking models with cross-architecture knowledge distillation. CoRR, abs/2010.02666, 2020.

[9] Google. Google search understanding using BERT. https://blog.google/products/search/search-language-understanding-bert/.

本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。


“综述专栏”历史文章


更多综述专栏文章,

请点击文章底部“阅读原文”查看



分享、点赞、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存