提纲
1 简介
2 定义
3 检索源
4 检索方式
5 整合
6 未来方向
7 总结
参考文献
1 简介
当前,基于检索增强的文本生成受到越来越多的关注,相比传统的生成模型,检索增强的文本生成有着不可替代的优势,并且在许多文本NLP任务取得领先地位。例如,开放域的问答系统,如果要求系统能够跟进实时动态,在生成答案的时候就必须结合最新的信息,而这对于传统的文本生成模型是做不到的,传统的文本生成模型通过庞大的参数量存储知识,无法回答没有相应知识的问题,而基于检索增强的文本生成则可以通过检索引入外部的知识来解决这个问题。相比传统的文本生成,基于检索增强的文本生成有以下几个优势
a)知识不需要隐式地存在在模型参数中,而可以通过即插即用方式显示引入知识,具有更大的扩展性。
b) 比起从头开始生成文本,基于检索增强的文本生成则是将通过检索得到的文档作为参考,能一定程度减轻文本生成的难度。
图1:基于检索增强的文本生成样例
2 定义
大多数文本生成可以描述为,给定一个输入文本x,生成一个输出文本y,也就是y=f(x),其中f就是文本生成模型。而基于检索增强的文本生成则可以描述为y=f(x, z),其中z是一系列从训练语料或者外部数据源中检索得到的相关样例z={(xr, yr)}。如果xr跟输入文本x相似或者相关,那么yr也许对答案生成有一定帮助。当xr等于空集时,也就是没有检索得到样例,此时基于检索增强的文本生成就会退化为传统的文本生成。
3 检索源
基于检索增强的文本生成可以引入不同来源的外部知识,也就是可以从不同来源的库中检索召回相关文档。
a) 训练语料
大多数研究都聚焦于如何从训练语料中搜索相关的知识,在推理时,利用从训练语料中检索到的高相似度的样例作为额外的参考,从而减少模型生成答案的不确定性。这些工作的主要启发就是不仅可以利用模型参数隐式存储语料中的知识,也可以利用显示的模型可接受形式向模型传输知识,提高生成文本质量。
b)外部数据
一部分研究者尝试从外部数据源召回相关样例,在这些研究中,检索池,可以提供额外的不存在于训练语料的信息。这种方式尤其利于领域迁移和知识更新的场景。
c)无监督数据
前面两种数据源的局限性在于数据集必须是包括(输入-输出)这样格式的有监督数据,而有些场景下缺乏这样的监督数据,为此也有研究用到这部分无监督数据来增强文本生成,主要想法是去对齐源文本侧的数据跟目标文本侧的数据。
4 检索方式
基于检索增强的文本生成中的检索模块,旨在检索召回跟query相关的文档,为后续的生成模型提供参考。具体方式是给定一个输入文本x和一个检索语料库,检索模型从语料库中检索得到一系列跟x相关的样例z={(xr, yr)},检索方式可以有以下几种不同方式。
a) 稀疏向量检索
如果使用的是有监督的检索语料库,那么{(xr, yr)}是否被召回依赖于x跟xr的相似度。稀疏向量检索利用倒排索引高效匹配关键词,以TFIDF和BM25算法为例。基于稀疏向量检索的方式更倾向于召回有相似表达的文本,停留在字面上的表示,忽略了语义信息。
b) 稠密向量检索
为了检索时能召回语义相关的样例,可以利用预语言模型将文本编码成低维稠密向量,然后计算向量之间的内积作为相似度得分,以此作为检索的依据。
c) 特定任务检索
前面两种检索当时都是依赖相似度的方法,这种类型的方式是基于一个简单的假设,那就是,如果xr越接近于x,那么yr越有利于帮助文本生成。然而,真实情况下最相似的文本不一定最有利于下游的生成任务。理想情况下,检索的依据应该从从数据中学习,是依赖于特定任务的,好的检索依据是能够提升最后生成模型生成的质量。
5 整合
如何将检索得到的文档跟当前输入x整合到一起,从而控制生成模型生成更高质量的结果?
a) 数据增强
最直接的整合方式,直接将检索得到的样例{(xr, yr)}跟原始输入x拼接到一起。通过在增强的数据上进行训练,语言模型会隐式地学习到如何整合检索得到的信息。尽管这种方式很简单,但是在诸多任务上都是有效的。
b) 注意力机制
通过引入额外的编码器对检索得到文档进行编码,然后利用注意力机制跟原始输入x整合到一起。由于注意力机制逐渐变成诸多NLP任务的关键模块,这种方式也逐渐成为一个默认的方式。
c) 骨干抽取
对于前面两种方式,下游生成模型学习如何从检索得到的文档中隐式过滤掉不相关甚至有害的信息,但是也有部分工作尝试通过显示的方式抽取有用信息,进而直接跟输入x整合到一起。
6 未来方向
尽管当前基于检索增强的文本生成取得一定成功,接下来还有有很长的路去进一步提升整体的效果。
a) 检索敏感性
基于检索增强的文本生成对于检索的质量非常敏感。当检索得到的样例跟输入query非常相似时,文本生成模型的效果会很好。但是当检索得到的样例跟输入query没那么相似时,生成的效果会很糟糕甚至不及没有检索增强的生成。
b) 检索效率
扩大检索内存可以更大概率获取到跟query相似的内容,但是这也会影响整体推理的效率。如何平衡检索内存大小跟检索效率?
c) 联合优化
目前看联合优化检索模块跟生成模型的方式有潜力的,但在实际中,检索模块在训练跟推理阶段仍然存在差距。在训练阶段,误差只传递到局部的少数召回的样例,但是在推理时却要考虑所有在数据库中的样例。
d) 多模态
随着技术的发展,跨模态的检索方式也成为了现实,可以直接将不同模态的数据联系到一起,这也需要去探索文本生成任务中检索不同模态数据的可能性。
e) 多样性跟可控性
仅使用一种检索依据会导致召回结果缺乏多样性,为此可以通过多种检索方式去获得多样化的结果,从而提升有用信息的含量。不同场景下对于检索的要求不尽相同,未来需要去探索如何使用定制化的方式去进行检索,从而实现更加可控化的文本生成。
7 总结
总体来说,基于检索增强的文本生成在很多场景下有着明显优势,单纯依赖预训练语言模型庞大的参数量,在领域迁移或者知识更新等场景下很难令人满意,而基于检索增强的文本生成天然就适配这种场景,但是如何检索得到正确的语料,同时指导语言模型往正确的方向进行,都是需要进一步优化的。
参考文献
1.(2022, ) A Survey on Retrieval-Augmented Text Generation
https://arxiv.org/abs/2202.01110
联系客服