论文:Approximate Nearest Neighbor Negative Contrastive Learning for Dense Text Retrieval翻译笔记(密集文本检索)


在这里插入图片描述

论文标题:对于密集文本检索的近似最近邻负对比学习

论文链接:https://arxiv.org/abs/2007.00808
arXiv:2007.00808v2 [cs.IR] 20 Oct 2020

本文介绍了一种用于密集文本检索的近似最近邻负对比学习方法。在这种方法中,通过使用负对比损失函数来训练模型,以提高其在检索任务中的性能。这种方法的关键在于找到合适的负样本,以便更好地区分不同文本之间的相似度。 在传统的文本检索任务中,通常采用余弦相似度或其他距离度量方法来评估查询与候选文本之间的相似性。然而,在处理大规模文本数据时,这些方法可能会遇到一些挑战,如计算复杂度高、难以捕捉文本的语义信息等。

摘要

在密集表示空间中进行文本检索有许多引人入胜的优点。然而,端到端学习的密集检索(DR)通常不如基于词的稀疏检索性能好。在这篇论文中,我们首先从理论上证明了密集检索的学习瓶颈是由于批量本地采样的非信息性负样本的主导地位,这导致梯度范数逐渐减小,随机梯度方差增大,学习收敛速度缓慢。然后,我们提出了近似最近邻负对比学习(ANCE),这是一种学习机制,通过使用异步更新的ANN索引从整个语料库中全局选择困难的训练负样本。我们的实验表明,ANCE在网页搜索、问题回答和商业搜索环境中的有效性,显示ANCE点积检索的准确度几乎与基于BERT的级联IR管道相当,同时效率提高了100倍。

1 介绍

许多语言系统依赖于文本检索作为其第一步来查找相关信息。例如,搜索排名(Nogueira & Cho,2019),开放领域问答(OpenQA)(Chen等人,2017)和事实核实(Thorne等人,2018)都会首先检索相关文档,以便在后续阶段进行重新排序、机器阅读和推理模型。所有这些后期模型都享受着深度学习技术的进步(Rajpurkar等,2016;Wang等,2018),然而,第一阶段的检索仍然主要依赖于匹配离散的词袋模型,例如BM25,这已经成为许多系统的瓶颈(Nogueira & Cho,2019;Luan等,2020;Zhao等,2020)。

密集检索(Dense Retrieval,DR)旨在通过在连续表示空间中匹配文本来克服稀疏检索瓶颈,这个表示空间是通过深度神经网络学习的(Lee等,2019;Karpukhin等,2020;Luan等,2020)。它具有许多期望的特性:完全可学习的表示、易于与预训练集成以及近似最近邻(ANN)搜索的支持(Johnson 等,2019)。这些使得密集检索成为一个有趣的选择,可以从根本上克服稀疏检索的一些内在限制,例如词汇不匹配(Croft 等,2010)。

在DR中,一个关键的挑战是在其表示学习过程中构建适当的负样本(Karpukhin等人,2020年)。与重新排序不同,在第一阶段检索中,DR模型必须从整个语料库中的所有不相关文档中区分出相关文档。如图1所示,这些全局负样本与稀疏模型检索到的负样本大不相同。
在这里插入图片描述

图1:T-SNE(Maaten和Hinton,2008)表示查询、相关文档、从BM25(BM25负样本)或随机采样(随机负样本)中获取的负面训练实例以及测试负面(DR负样本)在密集检索中的表现。

最近的研究探讨了为密集检索构建负样本的各种方法(黄等人,2020;卡普钦等人,2020),例如使用对比学习(法格里等人,2017;奥德等人,2018;何等人,2019;陈等人,2020a)在当前或最近的小批量数据中选择困难的负样本。然而,如最近的研究所示(Karpukhin 等,2020),尽管批量内的局部负样本在学习单词或视觉表示方面是有效的,但在密集检索的表示学习中,它们并没有显著优于稀疏检索的负样本。此外,密集检索模型的准确度通常不如 BM25,特别是在文档上(Lee 等,2019;Gao 等,2020b;Luan 等,2020)。

在这篇论文中,我们首先从理论上分析了使用负采样进行密集检索训练的收敛性。使用方差减小框架(Alain等人,2015;Katharopoulos和Fleuret,2018),我们证明在密集检索中常见的情况下,局部批内负样本会导致梯度范数逐渐减小,从而产生高的随机梯度方差和缓慢的训练收敛速度——局部负采样是密集检索效果的瓶颈。

根据我们的分析,我们提出了一种新的密集检索对比表示学习机制——近似最近邻负对比估计(ANCE)。与使用随机或批量局部负样本不同,ANCE利用正在优化的DR模型从整个语料库中构建全局负样本进行检索。ANCE负样本在训练中的分布与不相关文档在测试中的分离基本一致。从方差减小的角度来看,这些ANCE负样本提高了每个实例梯度范数的上界,降低了随机梯度估计的方差,从而加快了学习收敛的速度。

我们通过使用异步更新的语料库表示的ANN索引来实现ANCE。与Guu等人(2020)类似,我们维护一个推断器,该推断器并行地使用最近的检查点计算文档编码,以优化DR模型,并在完成后刷新用于负样本采样的ANN索引,以跟上模型训练的进度。我们的实验结果表明,在三种文本检索场景中,ANCE(Approximate Negative Contrastive Estimation)方法具有优势:标准网络搜索(Craswell等人,2020年),开放性问答(OpenQA)(Rajpurkar等人,2016年;Kwiatkowski等人,2019年)以及商业搜索引擎的检索系统。此外,我们还通过实验证明了我们的理论,即ANCE采样的负样本的梯度范数远大于局部负样本,从而提高了密集检索模型的收敛速度。我们的代码和训练好的模型可以在https://aka.ms/ance上获取。

2 预备知识

在这部分,我们将讨论密集检索及其表示学习的预备知识。

任务定义:给定一个查询q和一个文库C,第一阶段的检索是从C中找到一组与查询相关的文档D+ = {d1, …, di, …, dn}(|D+| ≪ |C|),这些文档随后作为输入提供给更复杂的后续模型(Croft等,2010)。密集检索(Dense Retrieval)不再使用稀疏术语匹配和倒排索引,而是通过在学习到的嵌入空间中计算相似性来计算检索得分f()(Lee等,2019;Luan等,2020;Karpukhin等,2020):
在这里插入图片描述
其中g()是表示模型,用于编码查询或文档到密集嵌入。编码器参数θ提供了主要容量,通常是从预训练的转换器(如BERT(Lee等人,2019年))微调而来。相似性函数(sim())通常是余弦或点积,以便利用高效的ANN检索(Johnson等人,2019年;Guo等人,2020年)。

通过负采样学习:DR的有效性在于学习一个好的表示空间,该空间将查询和相关文档映射在一起,同时将不相关的文档分开。这种表示的学习通常遵循标准的排序学习(刘,2009):给定一个查询q、一组相关文档D+和不相关文档D-,找到最佳的θ*:
在这里插入图片描述
损失函数l()可以是二元交叉熵(BCE)、间隔损失(Hinge Loss)或者负对数似然度(NLL)。

在密集检索中,针对第一阶段的检索,一个独特的挑战是需要区分的不相关文档来自整个语料库(D- = C \ D+)。这通常会导致出现数百万个负样本,这些样本必须在训练过程中进行采样:
在这里插入图片描述
一个自然的选择是从BM25检索出的顶部文档中采样负样本ˆD。然而,它们可能会使DR模型仅学习稀疏检索,并且不会使DR模型在BM25之外有太大提升(Luan等人,2020)。另一种方法是在局部小批量中采样负样本,例如在对比学习中(Oord等人,2018;Chen等人,2020a),但是这些局部负样本并没有显著优于BM25负样本(Karpukhin等人,2020;Luan等人,2020)。

3 对密集检索训练收敛性的三个分析

在本节中,我们提供了关于密集检索中表示训练收敛性的理论分析。我们首先展示了学习收敛性与梯度范数之间的联系,然后是无信息负样本限制的梯度范数,最后是在常见条件下,批内局部负样本在密集检索中的无效性。

收敛速率和梯度范数:令l(d+, d) = l(f(q, d+), f(q, d))为在训练三元组(q, d+, d)上的损失函数,PD−为给定(q, d+)的负样本分布,pd−为负样本实例d的采样概率,那么一个带有重要性采样的随机梯度下降(SGD)步骤如下(Alain等人,2015):
在这里插入图片描述
以θt表示t步骤的参数,θt+1表示之后的参数,N为负样本总数。缩放因子1/Npd-是为了确保方程4是一个无偏估计的全梯度。

然后我们可以将SGD步骤的收敛率描述为向最优θ*的移动。根据方差减小(Katharopoulos & Fleuret,2018;Johnson & Guestrin,2018)中的推导,令gd- = 1/Npd-θtl(d+, d-)为加权梯度,其收敛率为:
在这里插入图片描述
这段内容表明,我们可以通过从一个分布PD-中采样来获得更好的收敛速度,该分布可以最小化梯度估计器的方差,即EPD-(||gd-||2),或者Tr(VPD-(gd-))作为无偏估计器。存在一个最优分布:
在这里插入图片描述
这意味着按照每个实例的梯度范数进行比例采样。这是重要性采样领域的一个著名结果(Alain等人,2015;Johnson和Guestrin,2018)。可以通过对梯度方差应用Jensen不等式,然后验证方程10达到最小值来证明这一点。我们不再重复这个证明,而是参考Johnson和Guestrin(2018)的精确推导。

直观上讲,梯度范数较大的负样本更有可能降低训练损失,而梯度逐渐减小的那些样本并不提供有用信息。实证研究也发现,在BERT微调中,梯度范数与训练收敛性之间存在相关性(Mosbach等人,2020)。

减少无信息负数的梯度下降:方程10中的理想分布计算成本过高,深度神经网络中梯度范数的闭合形式可能很复杂。然而,对于MLP网络,Katharopoulos和Fleuret(2018)推导出了样本梯度范数的一个上界:
在这里插入图片描述

在这里插入图片描述

图2:ANCE异步训练。Trainer使用来自ANN索引的负样本学习表示。Inferencer使用最近的检查点更新语料库中文档的表示,完成后,将最更新的编码刷新到ANN索引中。

其中L是层数,ρ由预激活权重和中间层的梯度组成,||∇φLl(d+, d-)||2是关于最后一层的梯度。从直觉上讲,各种归一化技术对中间层进行了更多的调节;主要的移动部分是||∇φLl(d+, d-)||2(Katharopoulos & Fleuret,2018)。 对于常见的学习排序损失函数,例如二元交叉熵损失和对偶梯度下降法,我们可以验证(Katharopoulos & Fleuret,2018):
在这里插入图片描述
直观上讲,负样本的损失接近零,其梯度也接近零,对模型收敛的贡献很小。密集检索模型训练的收敛依赖于所构造的负样本的信息性。

无效的局部批内负样本:我们认为,由于文本检索的两个常见属性,批内局部负样本不太可能提供信息性的样本。

让D-星表示与D+难以区分的有信息量的负样本集,b表示批量大小,我们有以下两点:
(1) b ≪ |C|,批量大小远小于语料库大小;
(2) |D-*| ≪ |C|,只有少量负样本是有信息量的,而语料库中的大多数内容是明显无关的。

这两个条件在密集检索基准测试中都很容易验证。它们一起使随机小批量数据包含有意义的负样本的概率p = b|D-*|/|C|2接近零。从局部训练批次中选择负样本不太可能提供最优的密集检索训练信号。

4 近邻对比估计的近似最近邻噪声对比法

我们的分析表明,从语料库中全局构建负样本的重要性,如果不是必要性的话。在本节中,我们提出了近似最近邻负对比估计(ANCE),它使用异步更新的ANN索引从整个语料库中选择负样本。

ANCE通过DR模型从ANN索引中检索到的顶部文档来对负样本进行采样:
在这里插入图片描述
带有D-ANCE = ANNf(q,d) / D+和ANNf(q,d)是通过f()从ANN索引中检索到的顶部文档。根据定义,D-ANCE是当前DR模型中最困难的负样本:D-ANCE ≈ D-∗。 在理论上,这些更具信息性的负样本具有更高的训练损失、更高的梯度范数上界,并将提高训练收敛性。

ANCE 可用于训练任何密集检索模型。为了简化,我们在最近的研究中使用了一个简单的设置(Luan 等人,2020),包括 BERT Siamese/Dual Encoder(在q和d之间共享),点积相似度以及负对数似然(NLL)损失。

异步索引刷新:在随机训练过程中,DR模型f()会在每个小批量中更新。保持一个更新的ANN索引来选择新鲜的ANCE负样本是具有挑战性的,因为索引更新需要两个操作:1)推断:使用更新的DR模型刷新语料库中所有文档的表示;2)索引:使用更新后的表示重建ANN索引。尽管索引是高效的(Johnson等人,2019),但推断对于每个批次来说过于昂贵,因为它需要在整个语料库上进行前向传递,这比训练批次大得多。

因此,我们实现了类似于Guu等人(2020)的异步索引刷新,并在每m个批次更新一次ANN索引,即使用检查点fk。如图2所示,除了Trainer之外,我们还运行了一个Inferencer,它采用最新的检查点(例如fk),重新计算整个语料库的编码。在平行过程中,训练器继续使用D-fk-1从ANN-fk-1进行随机学习。一旦语料库被重新编码,推理器更新ANN索引(ANN-fk)并将其提供给训练器。

在这个过程中,ANCE负样本(D-ANCE)会异步更新以“跟上”随机训练的进度。ANN索引和DR模型优化之间的差距取决于Trainer和Inferencer之间的计算资源分配。附录A.3显示,1:1的GPU分割足以减小这个差距的影响。

5 实验方法论

本节描述了我们的实验设置。更多细节可以在附录A.1和A.2中找到。

基准测试:网络搜索实验使用TREC 2019深度学习(DL)轨道基准测试(Craswell等人,2020),这是一个大规模的非结构化检索数据集。我们遵循官方指南,主要在检索环境中进行评估,同时还有对BM25候选词前100名进行重新排序的结果。

开放性问答实验使用了自然问题(NQ)(Kwiatkowski等人,2019)和TriviaQA(TQA)(Joshi等人,2017),遵循与Karpukhin等人(2020)相同的设置。评估指标为覆盖率@20/100,即检查是否在前20/100个检索到的段落中包含答案。我们还评估了ANCE的更好检索是否可以传播到更高的答案准确率,方法是将最先进的系统读者运行在ANCE之上,而不是DPR检索。读者是NQ上的RAG-Token(Lewis等人,2020b)和TQA上的DPR阅读器,在它们建议的设置下。

我们还研究了ANCE在商业搜索引擎生产系统中第一阶段检索的有效性。我们将生产质量的DR模型的训练更改为ANCE,并在各种语料库大小、编码维度以及精确/近似搜索中评估离线增益。

基线:在TREC DL中,我们包括相关类别中的最佳运行,并参考Craswell等人(2020)以获取更多基线分数。我们实现了最近的DR基线,这些基线使用相同的BERT-Siamese,但在负样本构建方面有所不同:批处理中的随机采样(随机负样本)、从BM25前100名中随机采样(BM25负样本)(Lee等人,2019;Gao等人,2020b)以及BM25和随机负样本的1:1组合(BM25+随机负样本)(Karpukhin等人,2020;Luan等人,2020)。我们还与对比学习/噪声对比估计进行比较,这种方法在批处理中使用最难的负样本(NCE Neg)(Gutmann & Hyvärinen,2010;Oord 等,2018;Chen 等,2020a)。在开放性问答方面,我们与 DPR、BM25 及其组合进行比较(Karpukhin 等,2020)。

实施细节:在TREC DL中,最近的研究发现,经过MARCO段落训练的标签更干净(Yan等人,2019),并且BM25负样本有助于训练密集检索(Karpukhin等人,2020;Luan等人,2020)。因此,我们引入了一个“BM25预热”设置(BM25 → *),其中DR模型首先使用MARCO官方BM25负样本进行训练。ANCE也通过BM25负样本进行预热。TREC DL中的所有DR模型都从RoBERTa base(Liu等,2019)进行微调。在开放性问答中,我们使用发布的DPR检查点(Karpukhin等,2020)对ANCE进行预热。

为了使长文档适应BERT-Siamese,ANCE采用了Dai & Callan(2019b)的两种设置, FirstP使用文档的前512个标记,而MaxP则将文档分割成512个标记的段落(最大4个),并对段落级得分进行max-pooling。 max-pooling操作在ANN中得到原生支持。人工神经网络(ANN)搜索使用了Faiss IndexFlatIP索引(约翰逊等人,2019年)。我们将1:1的训练器与推断GPU分配相结合,每10,000个训练批次刷新一次索引,批量大小为8,梯度积累步数为2,使用4个GPU进行处理。对于每一个正样本,我们从ANN的前200个样本中随机抽取一个负样本。我们通过使用一个具有32GB V100 GPU、英特尔®至强®铂金8168中央处理器和650GB内存的云虚拟机来测量ANCE的效率。

6 评估结果

在这一部分,我们首先评估ANCE的有效性和效率。然后,根据我们的理论分析,实证研究ANCE训练的收敛性。

6.1 有效性和效率

TREC 2019 DL基准测试的结果如表1所示。ANCE在所有稀疏检索方法中表现显著优于其他方法,其中包括使用BERT来学习词权重的DeepCT(Dai等,2019)。在所有不同的负样本构建机制中,ANCE是唯一一个使BERT-暹罗式在文档检索中超过稀疏方法的方法。ANCE检索系统在开放型问答任务中表现得比DPR更好(表2)。当把ANCE应用到实际生产环境时(表3),其效果得到了进一步提升,整体性能相对提升了大约15%。通过使用与RAG(Lewis等,2020b)和DPR相同的阅读器,ANCE的优秀检索能力确实能够带来更高的答案准确率(表4)。
在这里插入图片描述

表格1:2019年TREC深度学习赛道的结果。不可用的结果标记为“n.a.”,不适用的标记为“-”。每个类别中的最佳结果用粗体标出。

在这里插入图片描述

表2:在自然问题(NQ)和简单问答(TQA)设置下的检索结果(前20/100的答案覆盖率)来自Karpukhin等人(2020年)。

在这里插入图片描述

表3:在一个商业搜索引擎的第一阶段检索中,通过改变生产DR模型的训练方式为ANCE,相对增益有所提高。

在这里插入图片描述

表格4:在单任务设置下的开放性问答测试分数。ANCE+Reader将系统的检索从DPR切换到ANCE,并保持相同的阅读模型,即RAG-Token在自然问题(NQ)上和DPR Reader在琐碎问答(TQA)上。

在所有DR模型中,ANCE的检索和重新排序准确度之间的差距最小,表明全局负样本在训练检索模型中的重要性。ANCE检索的准确度几乎与具有交互式BERT重新排名器的级联IR相匹配。这段文字推翻了一个先前的信念,即在搜索中必须对术语级别的交互进行建模(Xiong等人,2017;Qiao等人,2019)。通过ANCE,我们可以学习到一个有效地捕捉搜索相关性细微之处的表示空间。

表5测量了TREC DL文档检索中ANCE(FirstP)的效率。在线延迟是在一个查询和100个检索到的文档上进行的。使用标准批处理的DR比BERT Rerank快100倍,这是Siamese网络和可预计算的文档编码带来的自然优势。在ANCE训练中,大部分计算工作是使用新的检查点更新训练语料库的编码。假设用于采样负样本和待学习的模型是相同的,这是不可避免的,但可以通过异步刷新索引来减轻这种影响。

在这里插入图片描述

表格5:ANCE搜索和训练的效率。

6.2 对训练收敛性的实证分析

我们首先展示了密集检索中搜索相关性的长尾分布。如图3所示,每个查询中有一些实例的检索得分显著更高,而大多数实例则构成了一个长尾。在检索/排名中,关键挑战在于从这些最高得分者中区分出相关的内容;其余的则可以轻易地判断为不相关。我们还通过它们与前100个最高得分负样本的重叠程度,实测了局部批内负样本(包括信息性负样本)的概率。无论使用NCE Neg还是Rand Neg,这一概率都为零,与我们的理论假设相同。相比之下,BM25 Neg与DR检索到的顶部负样本的重叠度为15%,而ANCE负样本的重叠度从63%开始,并按照设计收敛到100%。
在这里插入图片描述

图3:针对10个随机TREC DL测试查询的最高DR得分。x轴是它们的排名顺序。y轴是它们的检索分数减去语料库平均值。所有模型都通过BM25 Neg进行预热。百分比是测试和训练负样本在收敛附近时的重叠部分。

然后我们实证验证我们的理论,即局部负样本会导致损失降低,梯度范数有界,从而导致收敛速度变慢。在DR训练过程中,训练损失和预裁剪梯度范数的曲线如图4所示。如预期的那样,无信息的局部负样本很容易分离,导致接近零的训练损失,而ANCE全局负样本则困难得多,保持较高的训练损失。与我们的理论假设相同,局部负样本的梯度范数确实被严格限制在零附近。相比之下,ANCE全局负样本上的梯度范数要大得多。这证实了ANCE更好地近似了理想重要性采样分布p*d-∝||∇θtl(d+, d-)||2,并提高了学习收敛性。
在这里插入图片描述

图4:在DR训练过程中的损失和梯度范数(BM25预热后)。梯度范数分别位于底部(1-4)、中间(5-8)和顶部(9-12)的BERT层。x轴是训练步骤。

6.3 讨论

我们使用BERT-Siamese和NLL损失与最近的研究保持一致。我们已经尝试了余弦相似性和BCE/HINGE损失,在这种情况下,我们在局部负样本上观察到的梯度范数甚至更小。但是检索准确率并没有明显提高。我们在附录中包含了额外的实验。附录A.2讨论了密集检索结果和稀疏检索结果之间令人惊讶的小重叠(小于25%)。DR是一种根本不同的方法,需要更多的研究来了解其行为。A.3和A.4研究异步间隙和超参数。A.5包括案例研究,表明ANCE中的无关文档往往仍然“语义相关”,与稀疏检索的结果大不相同。

7 相关工作

在关于神经信息检索(Neu-IR)的早期研究中(Mitra等人,2018),一个普遍的观点是,交互模型(那些专门处理术语匹配的模型)虽然更有效,但成本更高(Guo等人,2016;Xiong等人,2017;Nogueira & Cho,2019)。许多技术被开发出来以降低成本,例如蒸馏(高芳等人,2020a)和缓存(休梅等人,2020年;卡塔布和扎哈里亚,2020年;麦克阿万尼等人,2020年)。ANCE表明,经过适当训练的基于表示的BERT-Siamese实际上与基于交互的BERT排名器一样有效。这一发现将激励神经信息检索领域的许多新的研究探索。

深度学习已被用于改进稀疏检索的各个组件,例如术语加权(戴和卡兰,2019b),查询扩展(郑等人,2020年)和文档扩展(诺盖拉等人,2019年)。密集检索选择了一条不同的路径,通过ANN搜索在嵌入空间中进行纯检索(Lee等,2019;Chang等,2020;Karpukhin等,2020;Luan等,2020)。这项工作证明了一个简单的密集检索系统可以实现SOTA准确度,同时与经典检索表现出截然不同的行为。最近密集检索的进展可能会引发新一代搜索系统的出现。

最近的对比性表征学习研究也显示了从更大的候选池中采样负样本的好处。在计算机视觉领域,何凯明等人(2019)通过维持一个最近批次的负样本候选池,并使用动量更新其表征,将负样本采样池大小与训练批量大小解耦。这个扩大的负样本池显著提高了无监督视觉表征学习的效果(陈等人,2020b)。平行工作(熊等人,2020年)通过从记忆库(吴等人,2018年)中采样负样本来改进DPR - 在这种情况下,负面候选者的表示被冻结,以便存储更多的候选人。与更大的局部池相比,ANCE沿着这条轨迹彻底构建全局范围内的负样本,使用异步更新的近似最近邻索引,该索引来自整个语料库。

除了本身是一个现实世界的应用程序之外,密集检索还是许多其他语言系统的 核心组件 ,例如,用于检索有根据的语言模型的相关信息(Khandelwal等人,2019;Guu等人,2020),提取/生成式问答(Karpukhin等人,2020;Lewis等人,2020b),事实核实(Xiong等人,2020)以及为预训练找到释义对(Lewis等人,2020a)。在这些密集检索模型中,要么是冻结的,要么是通过其最终任务的信号进行间接优化。ANCE与这些研究方向正交,并专注于密集检索的表示学习。它更好的检索准确度可以使许多语言系统受益。

8 结论

在这篇论文中,我们首先对密集检索中的表示学习收敛性进行了理论分析。我们证明,在文本检索的常见条件下,DR训练中使用的局部负样本是无信息的,产生低梯度范数,并且对学习收敛性贡献不大。然后,我们提出ANCE来消除这个瓶颈,通过从整个语料库中全局构建训练负样本。我们的实验表明,ANCE在网页搜索、开放型问答和商业搜索引擎的生产系统中具有优势。我们的研究表明,ANCE负样本的梯度范数要大得多,降低了随机梯度方差,并提高了训练收敛性。

A 附录

A.1 更多实验细节

关于TREC DL基准的更多细节:在2019年的TREC DL赛道中有两个任务:文档检索和段落检索。训练集和开发集来自MS MARCO,其中包含了一百万个必应查询的段落级相关性标签(Bajaj等,2016)。文档语料库通过回填过去Track参与者排名前10的结果的URL和它们的标签进行后期构建(Craswell等人,2020)。测试集由NIST访问器根据过去Track参与者的前10名结果进行标记(Craswell等人,2020)。

TREC DL官方指标包括在测试集上的NDCG@10和在MARCO段落开发集上的MRR@10。MARCO文档开发集存在噪声,DL Track测试的召回率由于DR结果的低标签覆盖率而意义不大。段落训练数据的构建与完整文档内容的补充之间有两年的时间间隔。一些原始文档已经无法获取。在两年的间隔期间,这些文档中的内容也发生了相当数量的变化,许多文档不再包含这些段落。这可能是为什么许多参与者发现经过段落训练的数据比继承自文档标签更有效的原因。请注意,TREC测试标签并未受到影响,因为评估员在判断时提供了相同的文档内容。

所有TREC DL测试的所有运行都使用这些训练数据进行训练。NIST评估师使用标准的TREC风格池化技术(Voorhees,2000)对他们在文档和段落检索任务的测试查询上的推理结果进行了评估。池化深度设置为10,即从所有参与运行中排名前10的结果进行评估,并将这些评估标签作为官方TREC DL基准用于段落和文档检索任务。

关于OpenQA实验的更多细节:所有与DPR相关的实验设置、基准系统和DPR阅读器都基于他们的开源库。RAG-Token阅读器使用他们在huggingface上的开源版本。在我们进行实验时,Huggingface中发布的RAG-Seq还不稳定,因此我们在OpenQA实验中选择了RAG-Token。RAG只发布了NQ模型,因此我们使用DPR读者在TriviaQA上进行阅读。按照他们的开源代码中的指南,我们将ANCE的前20个段落输入到RAG-Token的NQ中,将前100个段落输入到DPR的BERT Reader中。

更详细的基线信息:在TREC DL中最具代表性的稀疏检索基线包括标准的BM25(“bm25base”或“bm25base_p”),最佳TREC稀疏检索(“bm25tuned_rm3”或“bm25tuned_prf_p”)带有调优查询扩展(Lavrenko & Croft, 2017),以及最佳DeepCT(“dct_tp_bm25e2”,仅文档),它使用BERT来估计BM25中的术语重要性(Dai & Callan, 2019a)。这三次运行代表了标准的稀疏检索、最佳的经典稀疏检索以及最近使用BERT改进稀疏检索的进展。我们还包含了标准的级联检索和重排系统BERT重排器(“bm25exp_marcomb”或“p_exp_rm3_bert”),这是在查询/文档扩展基础上的最佳运行,来自有多项顶级MARCO运行的团队(Nogueira&Cho,2019;Nogueira等人,2019)。

BERT-暹罗配置:在所有密集检索方法中,我们遵循Luan等人(2020)的网络配置,我们发现这可以提供最稳定的结果。更具体地说,我们使用RoBERTa base(Liu等人,2019)初始化BERT-暹罗模型,并在最后一层的"[CLS]"标记上添加一个768×768的投影层,然后进行层标准化。

实现细节:训练通常需要约1-2小时每个ANCE迭代周期,每当新的ANCE负样本准备好后,它会立即替换训练中的现有负样本,无需等待。它在大约10个周期内收敛,与其它基于DR的基线相似。优化使用LAMB优化器,文档检索的学习率为5e-6,段落检索的学习率为1e-6,并在5000步之后进行线性暖启和衰减。更详细的超参数设置可以在我们的代码发布中找到。

A.2 与TREC 2019 DL Track中的稀疏检索重叠

作为TREC风格的池化评估的一种性质,只有在2019年TREC参与系统中排名前10位的文档才会被打上标签。因此,不在池中的文档和未被标记的文档都被认为是不相关的,尽管它们中间可能存在相关文档。在重用TREC风格的相关性标签时,非常重要的一点是要跟踪所评估系统的“缺失率”,即在排名前K的结果中没有TREC标签(不在池中)的比例。较大的空洞率表明,评估的方法与参与Track并为池做出贡献的系统非常不同,因此评估结果并不完美。请注意,空洞率并不一定能反映系统的准确性,只能反映其差异。

在2019年TREC深度学习赛道中,所有参赛系统都基于稀疏检索。密集检索方法通常与稀疏检索有很大的不同,并且通常会检索到许多新文档。这在表6中得到了证实。所有DR方法在其前100个检索文档中与官方BM25的重叠度非常低。最多情况下,只有25%的通过DR检索到的文档也会被BM25检索到。这使得漏检率非常高,召回指标也不太具有信息性。这也表明,在今年的TREC 2020深度学习赛道上,如果参与者贡献基于DR的方法,可能会使DR方法受益更多。
在这里插入图片描述

表格6:TREC 2019 DL Track标签在密集检索方法上的覆盖率。与BM25的重叠是在前100个检索到的文档上计算得出的。

MS MARCO排名标签并非基于检索结果的汇集而构建。它们来自Bing(Bajaj等人,2016),Bing使用了许多超越术语重叠的信号。这使得MS MARCO中的召回率更加稳健,因为它反映了单一模型如何恢复复杂的在线系统。

A.3 异步间隔的影响

图5展示了不同配置下异步学习的行为。较大的学习率或较低的刷新率(图5a和5b)会导致波动,因为ANN索引的异步差距可能会驱动表示学习陷入不理想的局部最优解。每当有5k批次更新时,刷新可以实现平滑的收敛(图5(c)),但需要分配两倍的GPU给推断器。在训练器和推断器之间进行1:1的GPU分配,并使用适当的学习率,可以最小化异步差距的影响。
在这里插入图片描述

图5:在文档上使用不同的ANN索引刷新(例如,每10k批次)、Trainer:Inferencer GPU分配和学习率(例如,1e-5)对ANCE(FirstP)进行训练的损失和测试NDCG。X轴是以千为单位的训练步骤。

A.4 超参数研究

我们在表7中展示了某些超参数配置的结果。使用BERT进行训练的成本使得很难进行大量的超参数探索。通常,失败的配置会导致在训练早期出现发散。由于与预训练语言模型合作的时间消耗,我们几乎没有探索其他配置。我们的DR模型架构与最近的平行工作保持一致,表7中的学习配置是我们所做的所有探索。大多数超参数选择仅根据训练损失曲线决定,否则根据MARCO开发集的损失。我们发现在我们的(有限)超参数探索中,训练损失、验证NDCG和测试性能表现良好。
在这里插入图片描述

表7:几种不同超参数配置的结果。"Top K Neg"列出了我们从其中采样ANCE负样本的ANN检索到的前K个候选者。

A.5 案例研究

在本节中,我们展示了ANCE和BM25之间的胜负案例研究。在2019年TREC DL Track文档任务的43个评估查询中,ANCE在29个查询上优于BM25,13个查询上输给了BM25,其余1个查询打成平手。获胜的例子如表8所示,失败的例子如表9所示。它们对应的ANCE学习(FirstP)表示通过t-SNE在图6和图7中进行了说明。
在这里插入图片描述

表格8:TREC 2019 DL Track文档排名任务中的查询,其中ANCE的性能优于BM25。片段是手动提取的。在第一个有分歧的排名位置显示的文档中,ANCE在所有示例中都获胜。ANCE和BM25在相应查询中的NDCG@10得分如下。

总的来说,我们发现ANCE更好地捕获了文档中的语义及其与查询的相关性。获胜的案例显示了稀疏检索的内在局限性。例如,BM25精确匹配了查询“瑞士最受欢迎的食物是什么”中的“最受欢迎的食物”,但使用的是关于墨西哥的文档。术语“瑞士”仅出现在网页的相关问题部分。

在这里插入图片描述

表格9:TREC 2019 DL Track文档排名任务中的查询,其中ANCE的性能不如BM25。片段是手动提取的。在第一位置上,BM25获胜的文档显示出来。对应的查询中,ANCE和BM25的NDCG@10得分列出了。查询中的拼写错误来自TREC的真实网络搜索查询。

表9中的失败案例也很有趣。很多时候,我们发现并不是DR完全失效,检索到的文档与查询的信息需求完全没有关系,这在我们开始研究DR时是一个很大的担忧。ANCE犯的错误包括检索到与查询相关但并非完全相关的文档,例如对于“瑜伽中的弓式”查询,检索到的是“瑜伽姿势”。在其他情况下,ANCE由于缺乏领域知识而检索到错误的文档:预训练语言模型可能不知道“活跃边缘”是一个地理术语,而不是金融术语(我们自己也不知道,并且在进行这个案例研究时花了一些时间来弄清楚)。还有一些情况是,密集检索的文档对我们来说是有意义的,但被标记为不相关。

图6和图7中的t-SNE图表显示了许多有趣的学到的表示空间模式。ANCE获胜的情况通常对应于不同文档组之间的清晰分离。对于失败的情况,表示空间更加混合,或者相关文档太少,这可能导致模型性能的差异。在ANCE学到的表征空间里,还有很多有趣且不同的模式。我们在补充材料中提供了所有43个TREC DL Track查询的t-SNE图。对这些表征空间中的学习模式进行更多未来的分析,可能会帮助我们深入了解密集检索。

在这里插入图片描述

图6:表8中获胜案例的t-SNE图形。

在这里插入图片描述

图7:表9中输掉的案件的t-SNE图。

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值