记得给 “应用机器学习” 添加星标,收取最新干货
作者:香港城市大学 贾鹏越
今天跟大家分享一篇来自于香港城市大学、百度关于在查询扩展领域利用大语言模型的论文。该论文首先提出了一种query-query-document形式的新颖的prompt来根据查询生成相关段落,丰富扩展候选信息;接着该论文提出了相互验证方法筛选出更适合当前场景查询扩展的生成段落和伪相关反馈段落,最终拼接这些筛选出的段落于原始查询后,完成查询扩展全流程。该方法在TREC-DL-19,TREC-DL-20,以及多个BEIR数据集上验证了有效性。
项目主页:https://applied-machine-learning-lab.github.io/MILL/
论文:https://arxiv.org/abs/2310.19056
代码:https://github.com/Applied-Machine-Learning-Lab/MILL
摘要
在搜索引擎中,查询扩展是至关重要的,它通过添加额外的扩展信息来增强用户信息需求的表示。尽管现有方法使用检索到的或生成的上下文信息来扩展查询,但每种方法都有显著的局限性。基于检索的方法常常无法准确捕捉搜索意图,特别是在简短或模糊的查询情况下。基于生成的方法,利用大语言模型(LLM),通常缺乏特定语料库的知识,并且涉及高昂的微调成本。为了解决这些问题,我们提出了一种新颖的零样本查询扩展框架,MILL。具体来说,我们首先设计了一种查询-查询-文档生成方法,利用LLM的零样本推理能力产生多样化的子查询和相应的文档。然后,相互验证过程协同生成和检索的文档以达到最佳扩展。我们提出的方法完全是零样本的,并在三个公共基准数据集上进行了广泛的实验,以证明其相对于现有方法的有效性。
主要创新点
我们提出了一种与大型语言模型相结合的相互验证方法(简称为MILL),这是一个新颖的框架,结合了生成和检索的上下文用于查询扩展。MILL能够缓解生成和检索上下文的限制,因此可以为查询扩展提供更高质量的扩展。 为了改进生成的上下文信息,我们设计了一种查询-查询-文档提示方法,该方法能从LLMs中引出更丰富和更多样化的知识,以覆盖用户的潜在搜索意图和信息需求。 MILL能以零样本的方式进行高质量的查询扩展。我们在三个公共数据集上对下游信息检索任务进行了广泛的实验。结果表明,MILL显著优于现有的检索和生成基方法。
方法
总览
MILL的整体工作流程如上图所示,包括两个步骤,即上下文文档构建和相互验证。具体来说,这两个步骤分别专注于上下文文档的多样性和质量。
在上下文文档构建阶段,我们旨在通过检索和生成两种方式来构建多样化的上下文文档集。为了通过生成创建多样化的上下文文档,我们提出了一种查询-查询-文档提示方法,该方法指导LLM逐步生成子查询和上下文文档。这可以更好地利用LLM的推理能力,将给定的查询扩展任务分解为多个子任务,其中生成的文档可能更加多样化和信息丰富。
在相互验证阶段,我们旨在识别在第一阶段构建的高质量上下文文档。特别是,相互验证利用生成文档在捕获搜索意图方面的优势以及PRF文档在特定领域性质方面的优势,实现两种类型上下文文档之间的相互选择。最终选出的文档将作为查询的扩展部分,应用于下游检索任务。
查询-查询-文档生成
如上图所示,我们使用指令“应该搜索哪些子查询来回答以下查询:{query}。”来生成可以进一步澄清原始查询的子查询。同时,我们指导语言模型通过“请生成子查询并编写片段以回答这些生成的查询。”来为每个子查询生成上下文文档。通过这样做,我们最终获得了多个子查询及其相应的上下文文档,这些文档更有可能涵盖用户的搜索意图。值得注意的是,所提出的方法是零样本的,可以轻松扩展到少样本。
相互验证
在相互验证方法中,我们利用前面生成的文档和伪相关文档(即基于检索的上下文文档)来提升查询扩展的整体质量。直觉是利用两种类型的信息相互补充,这两种信息包括:1) 检索到的伪相关文档的特定语料库领域信息;2) LLM推理生成的信息,这种信息更有可能揭示真实的搜索意图。
在相互验证过程中,我们首先将生成的文档与检索到的伪相关文档进行对比,以评估各自的优势和局限。然后,我们通过一个选择机制,从中挑选出能够最好地反映用户搜索意图的文档。通过这种方式,每一种文档类型都能对另一种类型提供补充,使得最终的查询扩展结果既有深度也有广度。此外,我们利用这一框架的互补特性,通过结合这两种信息源,可以更准确地定位和扩展与用户查询相关的关键信息点。最终,这种相互验证策略确保了查询扩展的高质量,提高了下游信息检索任务的准确性和相关性。
首先,相互验证的输入是之前阶段得到的两部分文档
其中PRF文档是通过一个BM25检索器检索得到的。
接着,两部分文档都会通过一个编码器转换为向量形式,在这里我们使用了openai的text-embedding-ada-002作为编码器。
接下去,我们计算每个生成文档和伪相关反馈文档的相似度,并根据下式计算每个文档的得分。
两种类型的文档中的靠前排名的文档将被选出
查询扩展后检索
在相互验证之后,我们将选定的生成文档和伪相关文档与原始查询整合,以执行最终的检索任务。
实验
数据集
我们在TREC-DL-19, 20,以及BEIR上9个数据集上进行了实验。
实验结果
更详细的实验结果受限于篇幅,我们没有包含在正文中,可以查阅原文附录获取。
传统的查询扩展方法对检索有积极的效果,但这些精心设计的方法被Query2Doc和CoT变体大幅超越。这表明基于LLM的方法对于查询扩展任务更有前景。 在基于LLM的方法中,CoT和Query2Doc变体优于Query2Term变体。原因是生成的文档包含的上下文信息比离散关键词更丰富。 在基于LLM的方法中使用伪相关文档和少量样本作为指示,并不一定能带来正面的收益。例如,在TREC-DL-2019和TREC-DL-2020中,Query2Doc-PRF的表现不如Query2Doc。这表明查询扩展任务很难仅通过直接的提示技术与特定语料库对齐。 组合扩展方法(例如Query2Doc*)通常优于基于LLM的扩展方法(例如Query2Doc),这显示了PRF文档在查询扩展中的重要性。此外,MILL在大多数指标和数据集上都能超越组合基线,因为它采用了生成文档和PRF文档的更有效组合。 总体上,MILL比所有基线方法更有效,它在表1和表2中的所有指标和数据集上总是达到最好或第二好的表现。值得注意的是,MILL是一种零样本方法,在各种实际应用中更具适用性。
消融实验
为了进行消融研究,我们设计了以下MILL的变体:
w/o PRF:使用QQD直接生成扩展,扩展中不包含任何PRF文档。 w/o MV:将PRF文档与QQD扩展直接拼接。我们直接使用原始查询的前个检索到的文档作为,不使用生成的文档进行重排和选择。 w/o QQD:在MILL中用Query2Doc提示替换QQD提示。
表4展示了在三个数据集上的消融研究结果,我们可以得出以下结论:
MILL的三个组成部分都对最终性能有显著贡献。 MILL优于w/o QQD,这证明了我们提出的QQD提示的有效性。这表明QQD提示可以有效地利用LLMs的推理能力,帮助LLMs揭示更多样化和具体的搜索意图。 MILL优于w/o MV,这验证了相互验证的有效性。通过相互选择生成的文档和伪相关文档,有效缓解了LLMs的语料不对齐问题,并弥补了传统伪相关文档的搜索意图不准确问题。 与w/o PRF和w/o MV相比,MILL在BEIR数据集上的改进更为显著,而在TREC-DL-2020上则较少。这可能表明,在专业领域中,相互验证可以通过使用PRF文档更有效地提升查询扩展性能。
超参数实验
在前述实验中,默认的候选文档(即生成和检索的文档)数量设定为K = N = 5,最终选择的文档数量设为K′ = N′ = 3。在本小节中,我们改变候选文档和选择文档的数量,并给出MILL在TREC-COVID数据集上关于NDCG@1000和MRR@1000的表现。更多关于其他数据集的详细信息和结果可在附录中找到。
从图3中,我们观察到:
更多选择的伪相关文档显著降低了MRR@1000的得分。这表明更多选择的伪相关文档通常会给查询扩展带来更多噪声。相比之下,生成的文档相当稳定,更多的选择并未显著削弱性能。 当我们引入更多候选文档时,相互验证框架能够有效地选择伪相关文档,其中NDCG@1000和MRR@1000均有所增加。这表明由LLM生成的文档对于过滤掉噪声伪相关文档非常有用。另一方面,当选择文档的数量固定时,增加生成的候选文档并未带来进一步的性能提升。
案例分析
在表5中,我们展示了一个示例,其中包含原始查询、扩展内容和真实相关文档(即人工标记的相关文档)。真实文档中出现在伪相关文档中的词语以粗体突出显示,而出现在生成文档中的词语则用不同颜色标记。我们可以看到,生成的文档能够提供更多有用的信息。我们还展示了被过滤掉的PRF文档和被过滤掉的LLM生成的文档,从中我们可以观察到,被过滤掉的文档似乎是1) 提供有限信息的PRF文档和2) 过度扩展原始查询的LLM生成文档。相互验证过程可以为MILL过滤掉这些噪音或无信息的文档。
END