学习过滤上下文以增强检索辅助生成
Title: Learning to Filter Context for Retrieval-Augmented Generation 论文简要 :
本文提出了一种名为FILCO的方法,通过识别有用的上下文和训练上下文过滤模型,改进了生成模型的上下文质量,从而解决了检索系统不完美导致的上下文过度或不足的问题,提高了生成输出的质量,并在多个知识密集型任务上取得了优于现有方法的结果。
背景信息:
论文背景: 在开放领域的问答和事实验证等任务中,即时检索相关知识已被证明是可靠系统的重要组成部分。
过去方案: 然而,由于检索系统并不完美,生成模型需要根据部分或完全不相关的段落生成输出。这可能导致对上下文的过度或不足依赖,并导致生成输出中的问题,如幻觉。过去的方法往往将检索到的段落无差别地提供给生成模型,而忽略了上下文的质量。
论文的Motivation: 为了解决上述问题,本文提出了FILCO方法,通过识别有用的上下文和训练上下文过滤模型,改进了生成模型的上下文质量。FILCO方法在多个知识密集型任务上进行了实验,并在抽取式问答、复杂的多跳和长篇问答、事实验证和对话生成任务上取得了优于现有方法的结果。
方法:
a. 理论背景:
本文提出了FILCO方法,通过识别有用的上下文并训练上下文过滤模型,改善了给生成器提供的上下文质量。
b. 技术路线:
本文介绍了三种Oracle过滤策略,包括字符串包含、词汇重叠和条件交叉互信息。选定的文本段用于训练上下文过滤模型,并生成带有过滤上下文的输出。
字符串包含(STRINC)
:这种策略根据文本片段t是否包含输出o来进行二元判断。如果包含,就选择该文本片段作为过滤后的内容。这种策略适用于提取式的任务,比如NQ和TQA,因为它们的答案通常是在支持文档中出现的。
词汇重叠(LEXICAL)
:这种策略计算文本片段t和输出o之间的单词重叠程度,用F1分数来表示。重叠程度越高,表示主题相似性越高,对生成有更大的帮助。这种策略适用于需要基于知识生成响应的任务,比如对话生成和事实验证。
条件交叉互信息(CXMI)
:这种策略借鉴了Fernandes et al. (2021)提出的条件交叉互信息分数,用来衡量给定文本片段t和查询q的组合输入,模型生成期望输出o的概率与仅给定查询q的输入的概率之比。这个比值越大,表示文本片段t对生成o越有贡献。这种策略可以克服词汇屏障,适用于所有的任务,但是计算代价较高。
文本跨度(也就是文本片段)是指一段文本中的一部分,通常是一个句子或一个短语,它包含了一些有用的信息。在这篇文章中,作者使用了文本跨度来过滤从维基百科检索到的段落,以提供更精确的上下文给生成模型。例如,对于一个问题“英国的第一条铁路是什么时候建成的?”,作者会选择包含答案的文本跨度“最早的英国铁路是一个马车系统,一个由马拉的木制轨道系统,由德国矿工在英格兰坎布里亚的卡尔德贝克使用,可能从1560年代开始。”,而不是整个段落。这样可以减少输入的长度,提高生成的准确性。
结果:
a. 详细的实验设置:
作者使用FLAN-T5和LLAMA 2作为实验的基础模型架构,对上下文过滤任务(Mctx)和最终生成任务(Mgen)进行了微调。
b. 详细的实验结果:
FILCO方法在所有数据集上显著提高了生成性能,尤其对于抽象生成任务的改进更为显著。过滤后的上下文长度减少了44-64%,并且对于所有任务,过滤后的上下文的精度更高。