Query Rewrite —— 基于大模型的query扩展改写,综合考虑上下文信息(人大论文)

这篇具有很好参考价值的文章主要介绍了Query Rewrite —— 基于大模型的query扩展改写,综合考虑上下文信息(人大论文)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在session上下文中,捕获用户的搜索意图,是一件较为复杂和困难的事情。

一起看一下人大的这篇论文 Large Language Models Know Your Contextual Search Intent: A Prompting Framework for Conversational Search

 

会话中的搜索意图和query改写

人大的论文中提出了一个简单而有效的提示框架,称为LLM4CS,以利用LLM作为搜索意图解释器来促进会话搜索。具体来说,我们首先提示LLM在多个视角下生成较短的查询重写和较长的假设响应,然后将这些生成的内容聚合成一个集成的表示,以稳健地表示用户的真实搜索意图。在我们的框架下,我们提出三种具体的提示方法和聚合方法,并进行广泛的评估三个广泛使用的会话搜索基准,包括CAsT-19(道尔顿等人,2020),CAsT-20(道尔顿等人,2021),和CAsT-21(道尔顿等人,2022)),全面调查llm对话搜索的有效性。

论文核心内容

论文中吗,主要解决的是从上下文的会话信息中,提取信息,已补充和改写最新的query。解决上下文的关联问题。

论文中提到了三种重写的方式,如下图所示。

Query Rewrite —— 基于大模型的query扩展改写,综合考虑上下文信息(人大论文),RAG,ES搜索优化,query Rewrite,如何在上下文中捕获搜索意图,召回提升

  • 第一种REW是直接把历史的qa和当前query一起送给模型,然后让模型给出重写后的query。
  • 第二种RTR是把历史的qa和当前query一起送给模型,然后让模型给出重写后的query。并给出一个回答。把回答的内容和和重写后的query一起构造成新的query。这里论文中虽然没有提到,但是在谷歌和微软的相关论文中,由于生成的答案通常比重写后的query要长,索引要把重写后的query重复拼接5次,然后再拼接上回答的内容,最后构成最终的query。
  • 第三种RAR是把历史的qa和当前query一起送给模型,然后让模型给出重写后的query。并给出一个回答。这里可以生成多个问题和多个回答。也就是可以把复杂的问题进行拆解。

 

额外地生成假设的响应和正确地聚合多个生成的结果对于提高搜索性能是至关重要的!

 

论文中提及的query重写方法如何使用?

最简单的方法是,将会话中的每一个qa对都当做内容,和当前的query一起送给LLM。并给LLM一个提示,让LLM根据这些内容去重写query。

Prompt指令如下,让LLM知道是从上下文中,获取信息。

For an information-seeking dialog, please help reformulate the question into rewrite that 
can fully express the user‘s information needs without the need of context, but also 
generate an informative response to answer the question.

给LLM几个重写的示例
示例中包含了query,和重写的原因,以及重写后的query,最后是LLM针对query的一个简短的回答。

I will give you several example multi-turn dialogs, where each turn contains a question, a
response, and a rewrite. The rewrite part begins with a sentence explaining the reason for 
the rewrite.
Example #1:
Question: What should I consider when buying a phone?
Rewrite: This is the first turn. So the question should be rewritten as: What should I 
consider when buying a phone?
Response: The design of the phone and the overall …
Question: Cool. Which one would you recommend?
Rewrite: Based on Turn 1, you are inquiring about what should be considered when 
buying a phone. So the question should be rewritten as: Cool. Which smartphone would 
you recommend for me?
Response: Just because a phone has everything…
…
Example #2:

 输入如下:

Your Task (only questions and responses are given):
Context:
Question: What was the basis of the Watergate scandal?
Response: ...
Question: …
Response: …
…
Current Question: So what happened to Nixon?
Rewrite: So what happened to Nixon after the events of the Watergate scandal?
(Now, you should give me the rewrite and an informative response of the **Current 
Question** based on the **Context**. The output format should always be: Rewrite: 
$Reason. So the question should be rewritten as: $Rewrite\nResponse: $Response. Go 
ahead!)

模型输入如下

Rewrite: Based on all previous turns, Nixon was badly involved in the Watergate scandal. 
So the question should be rewritten as: So what happened to Nixon after the events of the 
Watergate scandal?
Response: With the mounting evidence and loss…

会话数据

C t = (q 1 , r 1 , ..., q t 1 , r t 1
一般回话都是由N个 query和响应构成的。根据模型的可输入长度的限制,则可以根据滑动窗口的方式,选取最邻近的一些query响应对。

思维链

思维链(CoT)(Wei et al.,2020)诱导大型语言模型将一个推理任务分解为多个中间步骤,从而释放它们更强的推理能力。在这项工作中,我们还研究了整合推理用户真实搜索意图的思维链是否可以提高重写和响应生成的质量。

意图聚合

将LLM多次的生成的Rewrite query 和 假设性回答进行聚合
在一个会话中,可能包含了多次问答。每次都有一个Rewrite query 和 假设性回答。我们可以称做qa对。
第一种意图聚合方式: MaxProb
对于  REW ,没有假设性回答。所以可以直接用生成的Rewrite query。对于 RTR和RAR,则使用(q的向量 + 假设性回答的向量)/2
 
第二种意图聚合方式: Self-Consistency (SC)
对于  REW ,没有假设性回答。先算所有生成的Rewrite query 的平均值(叫做中心向量)。然后再算每一个Rewrite query和中心向量的点积。
第三种意图聚合方式:使用平均值 Mean
对于  REW ,没有假设性回答。所以可以直接用生成的Rewrite query。注意这里是多轮的query的平均值。最后用平均值,作为搜索意图,去进行搜索。

效果如何

首先,RAR和RTR提示方法的性能明显优于REW提示,这表明生成的假设响应可以有效地补充较短的查询重写,从而提高检索性能。然而,即使是与现有基线相比,即使是简单的REW提示也可以实现相当有竞争力的性能,特别是在更具挑战性的CAsT-20和CAsT-21数据集上,它显示了显著的优势(例如,CAsT-20上0.380vs.0.350,CAsT-21上0.465vs.0.385)。这些积极的结果进一步突出了利用LLM进行对话搜索的显著优势。

Query Rewrite —— 基于大模型的query扩展改写,综合考虑上下文信息(人大论文),RAG,ES搜索优化,query Rewrite,如何在上下文中捕获搜索意图,召回提升

其次,在聚合方法方面,Mean和SC始终优于MaxProb。这些结果表明,仅仅依赖于语言模型的顶级预测可能不能提供足够的可靠性。相反,利用多个结果的集体强度被证明是一个更好的选择。此外,我们观察到,平均聚合方法,它将所有生成的内容融合到最终的搜索意图向量中(公式11),并不始终优于SC(例如,在CAsT-20上),它实际上只融合了一个重写和一个响应。

 Query Rewrite —— 基于大模型的query扩展改写,综合考虑上下文信息(人大论文),RAG,ES搜索优化,query Rewrite,如何在上下文中捕获搜索意图,召回提升

再看一下思维链CoT对结果的影响

可以明显看到,不管是在哪种意图聚合方式下,启用思维链,几乎总是有正向的效果。

Query Rewrite —— 基于大模型的query扩展改写,综合考虑上下文信息(人大论文),RAG,ES搜索优化,query Rewrite,如何在上下文中捕获搜索意图,召回提升 文章来源地址https://www.toymoban.com/news/detail-827545.html

到了这里,关于Query Rewrite —— 基于大模型的query扩展改写,综合考虑上下文信息(人大论文)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【uniapp】获取url中的参数this.$route.query或this.$mp.query

    在uniapp中获取url中的参数值可以通过 this.$route.query 或者 this.$mp.query 来获取。 假设你要获取url中的code参数,可以使用以下代码: 或者 其中,第一种方法适用于h5、APP和微信小程序等平台,而第二种方法只适用于微信小程序平台。

    2024年02月14日
    浏览(14)
  • 【SCI一区】考虑P2G和碳捕集设备的热电联供综合能源系统优化调度模型(Matlab代码实现)

    【SCI一区】考虑P2G和碳捕集设备的热电联供综合能源系统优化调度模型(Matlab代码实现)

      💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 2.1 模式1  2.2 模式2  2.3 模式3 2.4 模式

    2024年02月04日
    浏览(12)
  • 【ElasticSearch】query语法

    介绍ES 的query子句的语法,query子句主要用于编写查询条件,类似SQL中的where语句。 query子句主要用来编写类似SQL的Where语句,支持布尔查询(and/or)、IN、全文搜索、模糊匹配、范围查询(大于小于)。 通过match实现全文搜索,全文搜索的后面有单独的章节讲解,这里大家只要

    2024年02月09日
    浏览(11)
  • css - Media Query

    css - Media Query

    使用bootstrap的grid system可以在一个较为粗糙的范围得到较好的响应性,但是通过viewport可以看到网站在具体哪个像素点处变得丑陋,再通过css media query来精细调整网页布局。  可以通过media query来提高网页移动响应能力。

    2024年02月15日
    浏览(11)
  • DataFrame.query()--Pandas

    DataFrame.query()--Pandas

    Pandas 中的一个函数,用于在 DataFrame 中执行查询操作。这个方法会返回一个新的 DataFrame,其中包含符合查询条件的数据行。请注意,query 方法只能用于筛选行,而不能用于筛选列。 参数 含义 expr 查询字符串;对于不是有效python变量名的列名:如:UnitPrice(USD),需要将列名

    2024年02月11日
    浏览(14)
  • Elasticsearch:Geoshape query

    Elasticsearch:Geoshape query

    Geoshape 查询可以用于过滤使用 geo_shape 或 geo_point 类型索引的文档。 geo_shape 查询使用与 geo_shape 或 geo_point 映射相同的索引来查找具有与查询形状相关的形状的文档,并使用指定的空间关系:相交(intersect)、包含(contained)、包含(within)或不相交 (disjoin)。 该查询支持两种定

    2024年02月22日
    浏览(9)
  • Elasticsearch:DSL Query

    Elasticsearch:DSL Query

    Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询。常见的查询类型包括: 查询所有:查询出所有的数据,一般测试用,例如:match_all,但有分页限制,一次20条左右 全文检索(full text)查询:利用分词器对用户输入内容分词,然后去倒排索引库中匹配。常见的有两种

    2024年02月10日
    浏览(30)
  • Elasticsearch Query DSL

    Elasticsearch Query DSL

    这里使用的 Elasticsearch 的版本为 7.12.1 。 1.1 文档(Document) ElasticSearch 是面向文档的,文档是所有可搜索数据的最小单位,例如 MySQL 的一条数据记录。 文档会被序列化成为 json 格式,保存在 ElasticSearch 中。 每个文档都有一个唯一 ID,例如 MySQL 中的主键 ID。 JSON文档 一篇文档包

    2024年02月15日
    浏览(10)
  • ElasticSearch【query语法】

    介绍ES 的query子句的语法,query子句主要用于编写查询条件,类似SQL中的where语句。 query子句主要用来编写类似SQL的Where语句,支持布尔查询(and/or)、IN、全文搜索、模糊匹配、范围查询(大于小于)。 通过match实现全文搜索,全文搜索的后面有单独的章节讲解,这里大家只要

    2024年02月08日
    浏览(12)
  • [match_phrase_prefix] query does not support [zero_terms_query] 问题解决

    @[TOC][match_phrase_prefix] query does not support [zero_terms_query] 问题解决 elasticsearch版本 :7.8 客户端elasticsearch : 7.12.1 报错代码 match_phrase_prefix在Elasticsearch 7.10版本后才支持zero_terms_query选项 https://github.com/elastic/elasticsearch/issues/58468

    2024年02月16日
    浏览(15)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包