论文:Dense X Retrieval: What Retrieval Granularity Should We Use?
⭐⭐⭐⭐
Code: github.com/ct123098/factoid-wiki
文章目录
- 一、论文速读
- 二、命题(Proposition)
- 三、FactoidWiki
- 四、实验及分析
- 4.1 Passage Retrieval 任务
- 4.2 Open-Domain QA 任务
一、论文速读
目前的研究发现,对于检索粒度的选择会显著影响检索任务以及下游任务的表现。目前的检索方法大多以文档或者固定大小的 chunk 作为检索粒度,本论文提出以“命题”(proposition)作为检索粒度来进行检索。
命题在本论文中被定义为如下:Propositions are defined as atomic expressions within text, each encapsulating a distinct factoid and presented in a concise, self-contained natural language format.
下图展示了使用 passage、sentence 以及 proposition 作为检索粒度用于 QA 时的区别:
注意,这里 proposition retrieval 的结果中,将原文中的
the tower
做了类似于共指消解的工作,将其转化为了The Leaning Tower of Pisa
,从而使得这个命题可以独立于原文进行理解。
该工作期望每个命题都可以精确地描述一个上下文化地原子事实,因此,命题可以给出更高的与问题相关的信息密度。
如下是整体框架:
- 首先将 Wikipedia 的文章使用 Propositionizer 分解为多个命题
- 将这些命题构建为资料库,让 retriever 用“命题”的粒度去完成检索
- 基于如上方法,使用 RAG 思路去进行 QA
二、命题(Proposition)
这篇论文的核心思路就是将 retrieval 的检索粒度改进为 proposition,论文中给出了 proposition 的详细定义:
简而言之,一个命题描述了一个独立于上下文的原子性的事实。
三、FactoidWiki
本工作将 Wikipedia 的 pages 分解为 propositions,形成了 FactoidWiki 这个数据集。
Propositionizer:输入一个 passage,输出一个 propositions 的列表,它使用了两步蒸馏的方法来训练:
- 首先使用 in-context learning 的方式来 prompt GPT-4 获得一批 passage-proppositions 的 pairs
- 使用上面获得 pairs 来微调 Flan-T5-large 来得到 Propositionizer
prompt GPT-4 的方法如下:
切分的结果如下:
四、实验及分析
本工作使用该方法做了 passage retrieval 和 open-domain QA 两类实验。
4.1 Passage Retrieval 任务
该任务是给定一个 question,寻找与之相关的 passage。
论文证明,命题级别的检索在 5 个数据集上效果最好。
另外,论文分析发现,Retriveal by Proposition 意味着更好的 Cross-Task 泛化性。命题粒度的检索在不太常见的实体(长尾实体)的问题上的 passage retrieval 有更大的优势,能够在多个数据集上有不错的表现。
4.2 Open-Domain QA 任务
直观来说,与 passage 粒度或者句子粒度的检索相比,命题粒度的检索能够查询出更高密度的相关信息,这样能够增强下游 QA 任务的性能。
但是,基于命题的检索面临着涉及长程文本分析的多条推理的挑战,因为检索到的命题很可能无法覆盖全面。