微软的论文

Query2doc: Query Expansion with Large Language Models

https://arxiv.org/pdf/2303.07678.pdf

 

 

一、生成假设性答案

通过LLM生成query对应的答案。然后将把答案和原始query拼接成新的query,用于检索。例如:

二、如何把答案和原始query进行拼接

分为两种情况

像BM25的稀疏检索,公式为

其中q+代表最终的query, q代表原始query, 代表由模型生成的答案。由于通常原始query比成成的答案要短很多,为了减少生成的答案的关键词的影响,所以对原始query ×n ,这里是就是重复拼接n次,在论文中认为n为5是一个不错的取值。最后在拼接上生成的答案d。

如果是稀疏向量,则公式为

 最终的query = 原始query + [SEP] + 有模型生成的答案。

三、召回率提升效果如何

根据论文给出的测试结果,对比BM25检索,在不对模型进行微调的情况下,提升了15%左右。

但是对于向量模型的召回提升效果不是很明显。3%以内。

四、模型对召回的影响

根据论文中的数据显示,模型参数规模越大。效果越好!

 

五、关于如何选择检索模式

根据论文中的数据显示,只使用原始query、只使用生成的伪文档、同时使用query+伪文档三种方式的召回表现,实验结论表明:两者结合>单query>伪文档。这说明生成的伪文档本身有一定的准确率上限,在带来信息增益的同时也引入了额外的噪声,所以只使用伪文档的效果并没有优于原始query。

 

五、结论

论文中提到的query扩展方法。在不考虑上请求下文的 情况下,有用。

Logo

一站式 AI 云服务平台

更多推荐