本文介绍了一篇典型的 PRF (Pseudo-relevance feedback )思路的论文,用于利用LLM来做query改写,提升召回率,召回效果。
论文地址:Large Language Models are Strong Zero-Shot Retriever
一、PRF的流程
如下图所示,先用原始的query,进行一次召回。然后基于找回的10条文档,喂给模型,让模型生成5个答案。然后在用模型生成的答案做我新的query再做一次召回。最终得到最终的结果。
其中与模型交互的prompt如下
Give a question “{q}” and its possible answering passages (most of these
passages are wrong) enumerated as: \n 1.{cq
1} \n 2.{cq2} \n 3.{cq3} . . .
please write a correct answering passage.
二、论文中给出的结论
图a,是第一次检索召回的top文档数据,从图上可知,召回10条数据,效果最好。
图b,是验证了每次让模型生成的答案数量。论文给出的结论是,模型每次生成5个答案,效果趋向于稳定和最高。
三、PRF的效果如何?
相比较BM25,提升了15%-20%
四、论文中提到PRF的弊端
如果第一次检索的数据质量很差,则召回效果会更差。 并在论文中指出,应该更多地关注引入多种检索方法来实现多样性。从而避免引入噪音数据而影响最终的召回结果。
五、论文中提到了LLM能力对改写的影响
对比了chatGPT3.5 和chatGPT4
为了进一步验证我们的LameR是否会受益于更强的LLM,我们在LameR框架中涉及前沿LLMGPT-4,并将其应用于DL20数据集,因为它在GPT-3.5的主要评估结果不够优越。如表5所示,在应用GPT-4后,我们的检索方法取得了显著的高性能。
六、论文中对比了 利用BM25召回还是用向量做召回
如下图所示,论文中给出,在PRF下,使用向量检索的召回效果,要优于Bm25的召回效果。