Proposition Retrieval:命题检索

AI知识2个月前更新 playboywhc
2 0

原文:《Dense X Retrieval: What Retrieval Granularity Should We Use?

注:此方法适合少部分模型,如OPENAI系列,Claude系列、Mixtral、Yi、qwen等。

 

摘要

在开放领域的自然语言处理(NLP)任务中,密集检索已成为获取相关上下文或世界知识的重要方法。当我们在推理时使用学习到的密集检索器对检索语料库进行检索时,一个经常被忽视的设计选择是检索单元,即语料库被索引的粒度,例如文档、段落或句子。我们发现检索单元的选择显著影响检索性能以及下游任务的性能。与使用段落或句子的传统方法不同,我们引入了一种新的检索单元——命题,用于密集检索。命题被定义为文本中的原子表达式,每个命题都封装了一个独特的事实,并以简洁、自包含的自然语言格式呈现。我们对不同检索粒度进行了实证比较。我们的结果表明,基于命题的检索在密集检索中显著优于传统的基于段落或句子的方法。此外,通过命题进行检索还增强了下游问答(QA)任务的性能,因为检索到的文本更加紧凑地包含了与问题相关的信息,减少了对长输入标记的需求,并最小化了无关信息的包含。

 

 

1 引言

密集检索器是用于访问外部信息源的技术类别,用于知识密集型任务。在我们使用学习到的密集检索器从语料库中检索之前,我们必须做出的一个重要设计决策是检索单元——即我们在推理时对检索语料库进行分段和索引的粒度。在实践中,检索单元的选择,例如文档、固定长度的段落块或句子等,通常是基于密集检索模型是如何实例化或训练的来预先确定的。

 

在本文中,我们探讨了一个在密集检索推理中被忽视的研究问题——我们应该在什么检索粒度上对检索语料库进行分段和索引?我们发现,在推理时选择适当的检索粒度可以是提高密集检索器检索和下游任务性能的简单而有效的策略。

 

我们通过一个开放领域问答(QA)的例子来说明我们的直觉(表1)。

 

Proposition Retrieval:命题检索

表1 图 1:使用密集检索时,维基百科文本的三种检索粒度示例
顶部:展示了在使用密集检索方法时,维基百科文本可以被划分为三种不同的检索单位。
底部:我们观察到,通过命题(propositions)进行检索在段落检索任务和下游开放领域问答(QA)任务中都能获得最佳的检索性能。例如,使用Contriever(Izacard等人,2022年)或GTR(Ni等人,2022年)作为骨干检索器。高亮部分表示包含了问题答案的部分。

 

Proposition Retrieval:命题检索

 

这个例子显示了同一个模型在三种不同粒度下的检索文本。理论上,代表更粗粒度的段落能够为问题提供更多相关的信息。然而,段落通常包含可能分散检索器和下游任务的语言模型的注意力的额外细节(例如,表1中的例子中的恢复期和水平位移)。另一方面,句子级索引提供了更细粒度的方法,但并没有完全解决这个问题。这是因为句子可能仍然复杂且复合,并且它们通常不是自包含的,缺乏必要的上下文信息来判断查询-文档的相关性。

 

为了解决传统检索单元(如段落或句子)的这些缺点,我们提出使用命题作为密集检索的新型检索单元。命题被定义为文本中的原子表达式,每个命题都封装了一个独特的事实,并以简洁、自包含的自然语言格式呈现。我们在表1中展示了一个示例命题。该命题以自包含的方式描述了比萨斜塔当前倾斜角度的信息,并准确地回应了问题所查询的内容。我们在第二节中提供了更详细的定义和描述。

 

为了验证使用命题作为检索单元对密集检索器推理的有效性,我们首先处理并索引了一个英文维基百科转储,将所有文档分割成命题,我们称之为FACTOIDWIKI。然后我们在五个不同的开放领域QA数据集上进行实验,并实证比较了当维基百科按段落、句子和我们提出的命题进行索引时,六种双编码器检索器的性能。我们的评估是两方面的:我们既检查了检索性能,也检查了对下游QA任务的影响。值得注意的是,我们的发现表明,基于命题的检索在一般化方面优于基于句子和段落的方法,如第五节所讨论的。这表明命题作为紧凑且内容丰富的上下文,使密集检索器能够在保持适当上下文的同时访问精确信息。在无监督密集检索器上,基于段落检索的平均召回率@20的改进是+10.1,在有监督检索器上是+2.2。此外,我们观察到在使用基于命题的检索时,下游QA性能有明显的优势,如第六节所详细阐述的。鉴于语言模型中通常有限的输入标记长度,命题本质上提供了更高密度的与问题相关的信息。

 

我们论文的主要贡献是:

  • 我们提出在索引检索语料库时使用命题作为检索单元,以提高密集检索性能。
  • 我们引入了FACTOIDWIKI,这是一个处理过的英文维基百科转储,其中每个页面被分割成多个粒度:100字的段落、句子和命题。

 

Proposition Retrieval:命题检索

图 2:我们发现,在命题级别对检索语料库进行分割和索引可以是一个简单而有效的策略,以提高密集检索器在推理时的泛化性能(A, B)。我们通过实证比较了当密集检索器在100字段落、句子或命题级别上工作时,在检索和下游开放领域问答(QA)任务的性能(C, D)。

 

Proposition Retrieval:命题检索

 

 

2 命题作为检索单元

我们研究的目标是实证地了解检索语料库的粒度如何影响密集检索模型的性能。除了常用的检索单元,如100字的段落或句子之外,我们提出使用命题作为另一种检索单元选择。在这里,命题代表文本中意义的原子表达式,并且由以下三个原则定义。

  1. 每个命题应该对应文本中的一个独特意义片段,所有命题的组合将代表整个文本的语义。
  2. 命题应该是最小的,即它不能再进一步分割成单独的命题。
  3. 命题应该是上下文化和自包含的。命题应该包含所有必要来自文本的上下文(例如,共指)以解释其含义。

使用命题作为检索单元的灵感来自于最近一系列工作,这些工作在表示和评估命题级别的文本语义方面取得了成功。我们通过图2左侧的例子展示了命题的概念,以及如何将段落分割成其命题集合。该段落包含三个命题,每个命题都对应于关于比萨斜塔的独特事实:恢复前的角度、当前角度和水平位移。在每个命题中,都包含了必要的来自段落的上下文,以便命题的含义可以独立于原始文本进行解释,例如,第一个命题中的塔的引用被解析为其全称,即比萨斜塔。我们期望每个命题都能准确描述一个上下文化的原子事实,因此我们的直觉是命题将适合作为信息检索问题的检索单元。

 

 

3 FACTOIDWIKI: 维基百科的命题级索引和检索

我们在维基百科上实证比较了使用100字段落、句子和命题作为检索单元。维基百科是知识密集型NLP任务中常用的检索源。为了允许在不同粒度上的公平比较,我们处理了2021-10-13的英文维基百科转储,正如Bohnet et al. (2022)所使用的。我们将每篇文档文本分割成三种不同的粒度:100字段落、句子和命题。我们在附录A中包含了关于段落和句子级分割语料库的详细信息。

 

解析段落为命题:为了将维基百科页面分割成命题,我们微调了一个文本生成模型,我们称之为命题器(Propositionizer)。命题器以段落为输入,并生成段落内的命题列表。遵循Chen et al. (2023b)的方法,我们使用两步蒸馏过程训练命题器。首先,我们使用包含命题定义和1次示例演示的指令提示GPT-4 。我们在图8中包含了提示的详细信息。我们从42k个段落的集合开始,并使用GPT-4生成段落到命题对的种子集。接下来,我们使用种子集对FlanT5-large模型进行微调。

我们将处理后的语料库称为FACTOIDWIKI。FACTOIDWIKI的统计数据如表1所示。

 

Proposition Retrieval:命题检索

表格 1:2021年10月13日英文维基百科数据转储中文本单位的统计数据

 

 

4 实验设置

为了评估三种检索单元选择的影响,我们在FACTOIDWIKI上对五个不同的开放领域QA数据集进行了实验。对于每个数据集,我们都评估了当密集检索器使用以不同粒度索引的维基百科时的段落检索和下游QA性能。

 

4.1 开放领域QA数据集

我们在五个不同的开放领域QA数据集上进行评估,这些数据集使用维基百科作为检索源:Natural Questions (NQ) (Kwiatkowski et al., 2019)、TriviaQA (TQA) (Joshi et al., 2017)、Web Questions (WebQ) (Berant et al., 2013)、SQuAD (Rajpurkar et al., 2016)和Entity Questions (EQ) (Sciavolino et al., 2021)。

 

4.2 密集检索模型

我们比较了以下六种有监督或无监督密集检索器模型的性能。在这里,有监督模型指的是在训练期间使用

人工标记的查询-段落对作为监督的模型,反之亦然。

  • SimCSE 是一个BERT-base 编码器,它在维基百科上随机抽取的未标记句子上进行训练。
  • Contriever 是一个无监督检索器,实例化为BERT-base编码器。Contriever通过从未标记的维基百科和网络爬取数据中的文档对构造的对比对进行对比训练。
  • DPR 是一个双编码器BERT-base模型,在五个开放领域QA数据集上进行了微调,其中包括我们评估中的四个数据集(NQ、TQA、WebQ和SQuAD)。
  • ANCE 使用了与DPR相同的设置,并通过近似最近邻负对比估计(ANCE),一种基于硬负的培训方法,对模型进行了训练。
  • TAS-B 是一个双编码器BERT-base模型,从具有交叉注意力训练的教师模型中提取,并在MS MARCO 上进行了微调。
  • GTR 是一个基于T5的编码器,在未标记的在线论坛QA数据对上进行了预训练,并在MS MARCO和Natural Question上进行了微调。

 

4.3 段落检索评估

我们在段落、句子或命题级别索引语料库时,评估段落级别的检索性能。对于句子和命题级别的检索,我们遵循Lee et al. (2021b)引入的设置,其中段落的得分基于查询和段落中的所有句子或命题之间的最大相似性得分。在实践中,我们首先检索稍微更多的文本单元,将每个单元映射到源段落,并返回前k个独特的段落。我们使用召回率@k作为我们的评估指标,它定义为在前k个检索到的段落中找到正确答案的问题的百分比。

 

4.4 下游QA评估

为了了解使用不同检索单元对下游开放领域QA任务的影响,我们在“检索-然后-阅读”(retrieve-then-read)设置中评估检索模型的使用。在检索-然后-阅读设置中,检索模型首先检索给定查询的k个文本单元。然后,这k个检索到的文本单元与查询一起用作读者模型的输入,以得出最终答案。通常,k的选择受到读者模型的最大输入长度约束或计算预算的限制,这随着输入标记的数量而扩展。

因此,我们遵循一个评估设置,其中检索到的单词的最大数量被限制在l = 100或500,即只有来自段落、句子或命题级别检索的前l个单词被输入到读者模型中。我们评估预测答案完全匹配(EM)真实答案的问题的百分比。我们将我们的度量称为EM@l。对于我们的评估,我们使用T5-large size UnifiedQA-v2作为读者模型。

 

 

5 结果:段落检索

在本节中,我们报告并讨论检索任务的性能。我们的结果表明,尽管没有一个模型是在命题级别数据上训练的,但所有检索模型在语料库以命题级别索引时,都表现出与基于段落或句子的检索相当或更优越的性能。

 

5.1 段落检索性能

我们在表2中报告了我们的评估结果。我们观察到,基于命题的检索在大多数任务上优于基于句子或段落的检索,无论是无监督还是监督检索器。

在所有测试的密集检索器中,基于命题的检索在五个数据集上的平均性能始终优于基于句子和段落的检索。对于无监督检索器,即SimCSE和Contriever,我们看到五个数据集上平均Recall@5提高了+12.0和+9.3(35.0%和22.5%的相对改进)。

对于监督检索器,命题级别检索仍然显示出平均优势,但改进幅度较小。我们假设这是由于这些检索器是在查询-段落对上进行训练的。例如,对于DPR和ANCE,它们在NQ、TQA、WebQ和SQuAD上进行了训练,我们观察到在除SQuAD之外的三个数据集上,基于命题和基于句子的检索比基于段落的检索略差。如表2所示,在NQ、TQA和WebQ上,所有监督检索器在三种检索粒度上的表现为可比的。

然而,在检索器模型在训练期间未见过的数据集上,我们观察到基于命题的检索具有明显优势。例如,在SQuAD或EntityQuestions上,我们观察到基于命题的检索明显优于其他两种粒度。我们在相对较弱的检索器如DPR和ANCE的EntityQuestions上看到了17-25%的Recall@5相对改进。此外,在SQuAD上,基于命题的检索的Recall@5在TAS-B和GTR上提高了最多,相对改进了10-16%。

 

Proposition Retrieval:命题检索

表 2:当预训练的密集检索器与检索语料库中的三种不同粒度一起工作时,五个不同开放领域问答数据集上的段落检索性能(召回率@k = 5, 20)。下划线表示目标数据集的训练分割被包含在密集检索器的训练数据中。

 

5.2 基于命题的检索⇒更好的跨任务泛化

我们的结果表明,基于命题的检索的优势在跨任务泛化设置中最为明显。我们观察到,在SQuAD和EntityQuestions上,基于命题的检索在跨任务泛化方面带来了更多的性能提升。

为了更好地理解改进的来源,我们对EntityQuestions进行了额外的分析。由于EntityQuestions特点是针对长尾实体属性的问题,我们研究了检索性能在三种不同粒度下如何受到问题中目标实体的流行度的影响,即实体在维基百科中的出现频率。我们使用以下方法估计每个实体的流行度。给定实体的表面形式,我们使用BM25从维基百科中检索前1000个相关段落。我们使用实体在其前1000个段落中出现的次数作为其流行度的估计。在EntityQuestion的20,000个测试查询中,大约25%的目标实体的流行度值小于或等于3。

 

图3显示了段落检索性能与每个问题中目标实体的流行度之间的关系。在所有6个密集检索器中,我们观察到,基于命题的检索在针对不太常见的实体的问题上,比基于段落的检索显示出更大的优势。随着实体的流行度增加,性能差距减小。我们的发现表明,基于命题的检索的性能提升主要归因于针对长尾信息的查询。这与我们观察到的基于命题的检索提高了密集检索器的跨任务泛化性能的观察结果相呼应。

 

Proposition Retrieval:命题检索

图 3:文档检索召回率与EntityQuestions数据集中每个问题目标实体的流行度对比

在EntityQuestions数据集中,每个问题的流行度(即,较小的值表示实体较为不常见,反之则表示实体较为常见)是通过BM25检索到的前1000个段落中实体的出现频率来估计的。

对于包含不太常见实体的查询,我们观察到通过命题检索相比于通过实体检索显示出更大的优势。

 

 

6 结果:开放领域QA

在本节中,我们研究了检索粒度选择如何影响下游开放领域QA任务。我们展示了基于命题的检索在检索-然后-阅读设置中,对下游QA性能的强烈影响,其中输入到读者QA模型的检索标记数量被限制在l = 100或500字。我们观察到,在使用命题作为检索单元时,不同检索器的平均EM@l指标上的QA性能更高。

 

6.1 QA性能

表3显示了评估结果。在不同的检索器中,我们观察到使用命题作为检索单元时,平均EM@l指标上的QA性能更高。无监督检索器SimCSE和Contriever分别在EM@100得分上提高了+5.9和+7.8(50%和55%的相对改进)。监督检索器DPR、ANCE、TAS-B和GTR分别提高了+5.8、+4.9、+5.9和+6.9 EM@100(26%、19%、22%、26%的相对改进)。与我们的段落检索评估观察结果类似,我们发现基于命题的检索在下游QA性能上更有益,特别是当检索器未在目标数据集上进行训练时。在其他情况下,基于命题的检索仍然具有优势,但平均边际较小。

 

Proposition Retrieval:命题检索

表 3:开放域问答性能(EM = 精确匹配)在检索后读取设置下的表现,其中传递给阅读器问答模型的检索词数量被限制在 l = 100 或 500。我们使用UnifiedQA V2(Khashabi 等人,2022年)作为阅读器模型。从连接的顶部检索文本单元中取出的前 l 个词被作为输入传递给阅读器模型。下划线表示目标数据集的训练分割被包含在密集检索器的训练数据中。在大多数情况下,我们看到使用较小的检索单元会带来更好的问答表现。

 

6.2 命题⇒更高的问题相关信息密度

直观地说,与句子或段落作为检索单元相比,命题的优势在于检索到的命题具有更高的与查询相关的信息密度。使用更细粒度的检索单元,查询的正确答案更有可能出现在密集检索器的top- l检索词中。

 

我们通过图4所示的分析来说明这一现象。在这里,我们研究了正确答案在前l个检索单词中的位置。具体来说,我们计算了在使用三种不同粒度索引的维基百科时,GTR检索器检索到的前l个单词中黄金答案的召回率。

 

我们在图4和图7中展示了结果,其中l的范围从0到500,涵盖了所有五个数据集。对于固定的检索单词预算,命题检索在前100-200个单词的范围内比句子和段落检索方法具有更高的成功率,这大约对应于10个命题、5个句子或2个段落。随着单词计数的进一步增加,三种粒度的召回率趋于一致,因为所有与问题相关的信息都包含在检索到的文本中。

 

Proposition Retrieval:命题检索

图4:对于GTR检索器,检索文本限制在前k个词时金标准答案的召回率。更细粒度的检索在所有词数范围内都有更高的召回率。

 

6.3 错误案例研究

为了了解每种检索粒度的错误来源,我们提出并讨论了表 4中的四个典型错误示例。在每个示例中,展示了GTR检索器在三个粒度上检索到的问题及其相应的top-1文本单元。

在通道级检索中,实体或其参考文献的模糊性对密集检索器提出了挑战,这与(Min et al.,2020)的发现相呼应。例如,在示例Q1中,问题要求输入“Super Bowl 50”,但检索到的文章和句子指向的是“Super Bowl 5”。在示例Q2中,段落检索未能识别引用正确“原子号”的部分。相反,检索到的前1篇文章在与问题不同的和无关的上下文中提到了“原子数”。按句子检索也可能有类似于按段落检索的问题,如示例Q1。另外,句子检索面临的另一个挑战是缺乏上下文。在示例Q3中,基于句子的检索失败,因为检索文章中的正确句子使用“it”指代心包囊。

基于命题的检索通过确保每个检索单元只包含一个事实,并在命题中包含必要的上下文来解决上述问题。然而,基于命题的检索面临着涉及长程文本分析的多跳推理的挑战。在示例Q4中,检索到的段落分别描述了演员的名字和他们扮演的角色。没有一个命题既包含问题又包含答案。

 

Proposition Retrieval:命题检索

表4:示例案例,展示了在每种检索粒度下检索到的排名首位文本单元未能提供正确答案的情况。下划线文本是正确答案。灰色文本是命题的上下文,但它仅用于说明目的,并未提供给检索器和下游问答模型。

 

Proposition Retrieval:命题检索

 

 

7 相关工作

最近关于密集检索器的工作通常采用双编码器架构。使用双编码器,每个查询和文档分别编码为低维特征向量,它们之间的相关性通过嵌入向量之间的非参数相似性函数来衡量。由于相似性函数的表达能力有限,双编码器模型通常在新任务上泛化能力较差,尤其是在训练数据稀缺的情况下。为此,先前的研究使用了诸如数据增强、持续预训练、任务感知训练、混合稀疏-密集检索或混合策略检索等技术来提高密集检索器的跨任务泛化性能。

 

我们的工作动机部分与多向量检索相呼应,例如ColBERT、DensePhrase (Lee et al., 2021a,b)、ME-BERT、MVR,其中检索模型学习将候选检索单元编码为多个向量,以增加模型表达能力并提高检索粒度。我们的工作重点在于不更新密集检索器模型或其参数的设置。我们展示了将检索语料库分割为更细粒度的命题可以是提高双编码器密集检索器在推理时泛化能力的简单而正交的策略。

 

使用命题作为文本表示单元的想法可以追溯到自动文摘评估中的金字塔方法(Nenkova and Passonneau, 2004),其中模型生成的摘要通过每个命题进行评估。从文本中提取命题一直是NLP中的一个长期任务,早期的公式集中在结构化表示命题上,例如开放信息提取、语义角色标注。更近期的研究通过使用大型语言模型进行少次提示或微调较小的模型成功地提取了自然语言形式的命题。

检索-然后-阅读,或更广泛地说——检索增强生成,最近已成为开放领域问答的一个流行范式。虽然早期的工作为下游读者提供了多达100个检索段落,但当使用最近的大语言模型时,允许的上下文量显著减少(例如前10个),因为它们有限的上下文窗口长度和无法处理长上下文的能力。最近的努力试图通过过滤或压缩检索到的文档来提高读者上下文的质量。我们的工作通过利用一种新的检索单元——命题,不仅减少了上下文长度,还提供了更高的信息密度,有效地解决了这个问题。

 

 

8 结论

我们提出使用命题作为检索单元来索引语料库,以提高推理时的密集检索性能。通过我们在五个开放领域QA数据集上的实验,使用六种不同的密集检索器,我们发现基于命题的检索在段落检索准确性和固定检索单词预算的下游QA性能方面均优于基于段落或句子的检索。我们引入了FACTOIDWIKI,这是一个索引版本的英文维基百科转储,其中来自600万页的文本被分割成2.5亿个命题。我们希望FACTOIDWIKI以及我们在论文中的发现将促进未来关于信息检索的研究。

 

局限性

我们目前关于检索语料库粒度的研究有以下限制。(1) 检索语料库——我们的研究仅关注维基百科作为检索语料库,因为大多数开放领域QA数据集采用维基百科作为检索语料库。(2) 评估的密集检索器类型——在本文的当前版本中,我们仅评估了6种流行的密集检索器,它们大多数遵循双编码器或双编码器架构。在未来的版本中,我们将包括并讨论更广泛的密集检索器的结果。(3) 语言——我们目前的研究仅限于英文维基百科。我们将其他语言的探索留给未来的工作。

 

 

A 检索语料库处理

本研究中使用的英文维基百科转储由Bohnet等人于2022年发布,选择使用是因为它已经过过滤以去除图表、表格和列表,并以段落形式组织。该转储可追溯至2021年10月13日。我们将维基百科分割成三种检索单元进行本研究:100字的段落块、句子和命题。我们使用一种贪婪方法将段落分割成100字的段落块。我们仅在句子结束时进行分割,以确保每个段落块包含完整的句子。在我们处理段落时,我们逐个添加句子。如果包含下一个句子会导致段落块超过100字,我们将从该句子开始一个新的段落块。然而,如果最终的段落块少于50字,我们会将其与前一个合并,以避免过于小的片段。我们进一步使用广泛使用的Python SpaCy en_core_web_lg模型将每个段落分割成句子。此外,我们的Propositionizer模型将每个段落分解成命题。我们共分解了600万页成4139万段落、1142万句子和2.57亿命题。平均而言,一个段落包含6.3个命题,一个句子包含2.3个命题。

 

B 训练命题器

我们使用GPT-4通过提示从给定段落生成命题列表,如图8所示。经过过滤后,共有42,857对用于微调Flan-T5-Large模型。我们将该模型命名为命题器(Propositionizer)。我们使用AdamW优化器,批量大小为64,学习率为1e-4,权重衰减为1e-4,训练3个周期。为了比较不同模型生成的命题的性能,我们设置了一个开发集和一个评估指标。开发集包含额外的1000对由GPT-4使用与训练集相同的方法收集的样本。我们通过两组命题的F1分数评估预测命题的质量。受BertScore中两组标记的F1分数的启发,我们为两组命题设计了F1分数。设P = {p1, …, pn}表示标记的命题集合,ˆP = {ˆp1, …, ˆpm}表示预测的命题集合。我们使用sim(pi, ˆpj)来表示两个命题之间的相似性。理论上,可以使用任何文本相似性度量。我们选择使用BertScore作为sim函数,因为我们希望我们的度量能够反映命题之间的语义差异。我们定义:

召回率(Recall)= 1 / |P| ∑(max(sim(pi, ˆpj)) for ˆpj in ˆP) 精确率(Precision)= 1 / |ˆP| ∑(max(sim(pi, ˆpj)) for pi in P) F1 = 2 * Precision * Recall / (Precision + Recall)

 

这里是F1分数的形象解释:召回率表示标记集合中与生成集合中的命题相似的命题的百分比,精确率表示生成集合中与标记集合中的命题相似的命题的百分比,F1是召回率和精确率的调和平均数。如果两组完全相同,则F1为1,如果任何两个命题语义不同,则F1为0。

我们对基本尺寸和大尺寸的Flan-T5模型进行了比较分析,这些模型使用不同数量的数据进行训练(如图 5所示)。研究结果表明,更大的模型加上大量的训练数据,可以产生更好的结果。该命题分析器的F1值达到了0.822。在手动审查生成的命题之后,我们发现它们是令人满意的。

 

Proposition Retrieval:命题检索

图 5: 不同规模和训练数据数量模型的命题级分解性能。

 

C 离线索引

我们使用pyserini和faiss包将检索单元编码为嵌入。我们利用多个GPU将每个文本单元分组为100万个单元,批量大小为64进行编码。在预处理嵌入后,我们使用内积的精确搜索(faiss.IndexFlatIP)进行所有实验。FACTOIDWIKI的纯索引大约为768GB大小。为了减少内存压力,嵌入被分割成8个分片。在聚合所有结果之前,每个分片进行近似最近邻搜索。尽管命题的数量是段落数量的六倍,但使用高效的索引技术可以实现相对于向量总数的亚线性搜索时间。此外,利用GPU并行性和分布式索引显著降低了在线搜索时间。因此,通过适当的实现,我们可以使得命题检索成为一个实际可行且高效的选项。

 

D 检索器模型

我们使用transformers和sentence-transformers包进行模型实现。我们使用了在HuggingFace上发布的以下检查点:SimCSE (princeton-nlp/unsup-simcse-bert-base-uncased)、Contriever (facebook/contriever)、DPR (facebook/dpr-ctx_encoder-multiset-base, facebook/dpr-question_encoder-multiset-base)、ANCE (castorini/ance-dpr-context-multi, castorini/ance-dpr-question-multi,)、TAS-B (sentence-transformers/msmarco-distilbert-base-tas-b) 和 GTR (sentence-transformers/gtr-t5-base)。

 

E 附加结果

在第5.2节中,我们展示了基于命题的检索相对于基于句子的检索的优势,特别是在实体的人口数量减少的EQ中。我们使用BM25检索到的前1000个段落中的出现次数作为流行度的代理,而不是使用Sciavolino等人(2021)中使用的实体的超链接数量。因此,性能与流行度图的趋势(图6)在我们的结果和Sciavolino等人(2021)的结果之间显示出一些差异。例如,一些实体是模糊的(例如,1992,一部电视剧)。在这种情况下,实体表面形式的出现次数很大。同时,与模糊实体相关的问题很难回答,导致召回率较低。在第6.2节中,我们讨论了检索文本中答案的召回率与上下文长度的关系。我们进一步展示了六个密集检索器的性能趋势,如图7所示。结果表明,命题的召回率始终优于句子和段落。我们的发现导致这样的结论:与句子和段落相比,命题单元中与问题相关的密度更大。

 

 

Proposition Retrieval:命题检索

图 8: 提示使用GPT-4从文章中生成命题。

 

 

Decompose the “Content” into clear and simple propositions, ensuring they are interpretable out
of context.
1. Split compound sentence into simple sentences. Maintain the original phrasing from the input
whenever possible.
2. For any named entity that is accompanied by additional descriptive information, separate this
information into its own distinct proposition.
3. Decontextualize the proposition by adding necessary modifier to nouns or entire sentences
and replacing pronouns (e.g., “it”, “he”, “she”, “they”, “this”, “that”) with the full name of the
entities they refer to.
4. Present the results as a list of strings, formatted in JSON.

Input: Title: Eostre. Section: Theories and interpretations, Connection to Easter Hares. Content: ¯
The earliest evidence for the Easter Hare (Osterhase) was recorded in south-west Germany in
1678 by the professor of medicine Georg Franck von Franckenau, but it remained unknown in
other parts of Germany until the 18th century. Scholar Richard Sermon writes that “hares were
frequently seen in gardens in spring, and thus may have served as a convenient explanation for the
origin of the colored eggs hidden there for children. Alternatively, there is a European tradition
that hares laid eggs, since a hare’s scratch or form and a lapwing’s nest look very similar, and
both occur on grassland and are first seen in the spring. In the nineteenth century the influence
of Easter cards, toys, and books was to make the Easter Hare/Rabbit popular throughout Europe.
German immigrants then exported the custom to Britain and America where it evolved into the
Easter Bunny.”
Output: [ “The earliest evidence for the Easter Hare was recorded in south-west Germany in
1678 by Georg Franck von Franckenau.”, “Georg Franck von Franckenau was a professor of
medicine.”, “The evidence for the Easter Hare remained unknown in other parts of Germany
until the 18th century.”, “Richard Sermon was a scholar.”, “Richard Sermon writes a hypothesis
about the possible explanation for the connection between hares and the tradition during Easter”,
“Hares were frequently seen in gardens in spring.”, “Hares may have served as a convenient
explanation for the origin of the colored eggs hidden in gardens for children.”, “There is a
European tradition that hares laid eggs.”, “A hare’s scratch or form and a lapwing’s nest look very
similar.”, “Both hares and lapwing’s nests occur on grassland and are first seen in the spring.”,
“In the nineteenth century the influence of Easter cards, toys, and books was to make the Easter
Hare/Rabbit popular throughout Europe.”, “German immigrants exported the custom of the
Easter Hare/Rabbit to Britain and America.”, “The custom of the Easter Hare/Rabbit evolved into
the Easter Bunny in Britain and America.” ]
Input: <a new passage>
Output:

 

将 “内容” 分解成明确且简单的观点,确保它们在脱离原上下文时仍有意义。
1. 把复句拆解为简单句,且在可能的情况下,保留原始的表述方式。
2. 对于带有额外描述信息的特定实体,将此信息单独剥离成各自的论断。
3. 通过对名词或整个句子添加必要的修饰语,或者将代词(例如:”it”, “he”, “she”, “they”, “this”, “that”)替换为它们所指代的实体的全名,使论断脱离上下文。
4. 以字符串列表的形式呈现结果,并使用 JSON 格式。

输入:标题:Eostre。章节:理论和解释,与复活节兔子的联系。内容:最早的复活节兔子(Osterhase)证据被 Georg Franck von Franckenau 在 1678 年于德国西南部记录下来,但在 18 世纪之前,德国其他地区对此并不知晓。学者 Richard Sermon 写道 “春天时,花园里常常可以看到野兔,因此它们可能被用作解释孩子们在花园里找到彩蛋起源的便利理由。另外,欧洲有一种传统认为野兔会下蛋,因为野兔的刮痕或形态与麦鸟的巢窝极其相似,而且它们都是在草原上,且在春天首次被发现。在 19 世纪,由于复活节卡片、玩具、书籍的影响,使复活节兔在整个欧洲广为流传。然后由德国移民将这个习俗传至英国和美国,在那里它逐渐演变成了我们现在知晓的复活节兔。”
输出:[ “最早的复活节兔相关证据在 Georg Franck von Franckenau 在 1678 年于德国西南部发现。”, “Georg Franck von Franckenau 是一位医学教授。”, “直到 18 世纪,德国其他地区人们才开始了解这个复活节兔与的证据。”, “Richard Sermon 是一位学者。”, “Richard Sermon 对野兔与复活节传统联系的可能解释提出了假设”,”在春天的时候,野兔经常可以在花园中被发现。”, “野兔可能是解释为何孩子们会在花园中找到彩蛋的简单解释。”, “欧洲有一个传统观点,认为野兔会下蛋。”, “野兔的刮痕或者形态与麦鸟的巢极其相似,都是在草原上,春天时最先被发现。”, “在 19 世纪,由于复活节卡片、玩具、书籍的普及,复活节兔在欧洲变得广为人知。”, “德国移民将复活节兔这个习俗带到了英国和美国。”, “在英国和美国,复活节兔的习俗渐渐演变成了我们现在熟知的复活节兔。” ]
输入: <新的段落>
输出:

© 版权声明

相关文章