NLP - Retrieval-Augmented Text Generation
结合
在生成中结合检索信息的方式
非参数化
[2020-ICLR] Generalization through Memorization Nearest Neighbor Language Models
[2021-ICLR] Nearest Neighbor Machine Translation


- 利用KNN做生成的概率修正,效果十分好,原因:
- 统计意义,缓解过拟合
- 参考SimCLR,缓解过拟合
- 长尾问题,缓解欠拟合
- 证明了一件事,显示的知识存储(数据库),效果优于隐式的知识存储(参数)

3. 缺点在于:非参数化的修正往往是Token-Level,我们想要Sentence-Level,实现更High-Level的控制
4. 延申:
[2021-ACL] Adaptive Nearest Neighbor Machine Translation
对近邻数据进行过滤,选择较优的近邻数,挺妙的
[2021-EMNLPF] Non-Parametric Unsupervised Domain Adaptation for Neural Machine Translation
适用于单语种数据库,想法直观,但似乎并不太work,效果不如Back-Translation
参数化
Cross-Attention
[2020-NIPS] Retrieval-augmented generation for knowledge-intensive nlp tasks
[2021-EACL] Leveraging Passage Retrieval with Generative Models for Open Domain Question Answering
2021 - Improving Language Models by Retrieving from Trillions of Tokens
- Cross-Attention的参数量大,因此迁移性差
- 最全面地建模了生成内容和检索信息间的联系,因此上限应该最高
Copy-Gate


- Copy优雅地建模了先验知识,即生成的Token,许多直接来自于检索语料。
- 相比于Cross-Attention参数化较少,因此应该能有更好的迁移性
Skeleton Extraction
[2019-ACL] Skeleton-to-Response Dialogue Generation Guided by Retrieval Memory
- 对检索到的信息进行后处理,如消去无关实体信息等
优化
检索模块与生成模块的联合训练问题
分开优化
- 在许多模型中,即使检索模块和生成模块分开优化,也能取得很不错的效果,如:
[2021-EACL] Leveraging Passage Retrieval with Generative Models for Open Domain Question Answering
2021 - Improving Language Models by Retrieving from Trillions of Tokens
2. 笔者的猜想是,在检索数量较多,能成功召回相关信息时,检索模块的最优并不重要,只要模型能学好对检索内容的利用,而检索的数量多,噪声大,反过来似乎还能加强模型利用检索内容的能力:)

这个实验也说明了,在Open QA上的端到端优化,带来的提升很小
概率展开

以检索文章为随机变量全概率展开
- 其问题在于每次仅能Condition在一个检索文章上生成,因此会非常依赖于检索模块的性能,效果也不如直接对所有检索文章做Cross-Attention,在多篇文章中都有类似的观点。
- 计算麻烦,Decoding要进行N次,N表示检索的文章数。不仅如此,Inference阶段Beam Search的方式更繁杂
偏置优化
[2020-NIPS] Pre-training via paraphrasing

- 将检索的相关性引入到下游Cross-Attention中,从而实现端到端的优化,这种方法天然适用于Condition在多个检索信息的情况
建模为隐变量
[2022-ICLR] Hindsight Posterior-guided training of retrievers for improved open-ended generation

- 依据后验概率分布,检索相关信息,从而提升在训练过程中检索信息的质量,质量越高,模型越依赖于检索信息,从而增加了模型Grounding的能力
- Grounding的能力在开放式生成,One-to-Many的场景下很有意义,能有效缓解安全回复,增加可控性
应用
引入知识
- 引入知识图谱
- 引入无监督语料
迁移学习
- 设计特定检索指标
- 采用特定的数据库

