知行札记
专题数据与信息系统搜索、索引与检索

查询扩展、改写与迭代检索

解释术语扩展、多查询、假设文档和逐步检索怎样改变候选,并保留约束与停止条件。

查询包含意图和约束

用户的输入可能是一个标识、几个关键词,也可能是一段问题。检索需要把它转成字段、词项或数值表示,同时保留日期、版本、否定和访问条件。改写如果删掉“旧版”或“禁止”,取得的列表可能看起来更相关,却已经回答另一项要求。

拼写纠正解决字形差异,词形处理连接词形变化,同义词和缩写词典补足表达差别。扩展可以发生在索引侧、查询侧或两侧;查询时多展开一项,就可能改变候选和分数。Manning 等人的查询扩展教材章节说明词典与扩展的关系。

精确编号一般需要保留原始匹配。构造例子中,“A7-302X”被改写成“A7 系列”,会扩大范围并丢失型号条件。原查询、改写结果及适用规则应能定位;改写不是任意纠正用户的前提。

用检索结果扩展也会形成反馈

相关性反馈利用已经判断相关的文档调整查询;伪相关性反馈假定初始头部结果大体相关,再取其中词项扩展。它可以补充词汇,也可能把初始错误带到后续查询,尤其是歧义词的第一轮结果集中在错误含义时。

保留原查询的权重、限制扩展词数、分开比较扩展前后结果,可以检查漂移。没有用户或独立相关判断时,“反馈”并不自动证明扩展词相关。机制与条件见相关性反馈和伪相关性反馈。

多查询覆盖不同表达

可以生成或人工构造多个等价表达,分别检索再合并候选。例如围绕“会话失效后重新进入”,同时检索“会话过期”“重新认证”与“登录状态恢复”,有机会覆盖不同写法。每个改写仍需保留对象、时间和限制,不能把不同意图混成多个所谓等价查询。

多路结果按单位 ID 去重,再采用分数或名次融合。如果几个改写只是同样错误的表达,它们会反复增加同一批噪声的贡献;候选多样性和实际任务覆盖需要分别观察。

并行查询可以减少串行等待,但总计算、请求、并发配额和费用仍增长。改写生成时间、最慢一路、服务排队和合并时间都进入最终延迟;不能只按并发请求数量推成延迟不变。查询生成和检索参数应一起进入预算。

HyDE 生成的是检索线索

HyDE(Hypothetical Document Embeddings)先让生成模型针对问题生成一份假设文档,用文档编码器编码它,再搜索原始语料的文档向量。它将问题表达转成更像目标文档的表达,尝试利用文档与文档之间的相似性。Gao 等人的原论文,§3定义了生成、编码与近邻搜索。

假设文档可能包含错误细节,它只用来构造查询表示。真正取得的结果是原始语料中的文档;后续证据判断不能把假设文档当成来源。编码压缩可能降低某些细节的影响,同时也可能保留错误实体或偏向某种虚构解释,这一步没有自动保证消除幻觉。

原研究在固定生成模型与编码器下无额外检索训练,并不表示生成与编码没有成本。模型、提示、假设样本数和语料分布影响结果;已经能精确匹配的代号查询,加入一段假设描述还可能稀释原始条件。是否启用应比较具体失败类型与收益,而非只看使用了生成模型。

分解与抽象对应不同检索目标

复合查询可以分解为子要求。例如“格式支持批注并能无损回导吗”可分别检索批注保存与回导规则,再检查能否适用于同一格式和版本。分解增加独立候选集,合并时仍要处理主体、版本和条件的一致性;两个片段各自正确不意味着组合要求同时成立。

抽象改写把具体输入转为较一般的概念,例如先找“身份验证状态的生命周期”,用来取得理解某次会话变化所需的背景。抽象会扩大候选范围,具体错误码和版本约束仍需另行保留。先找背景、再找具体信息是可采用的检索安排,不能保证一般背景包含具体问题的答案。

迭代检索需要保存过程状态

有些查询必须利用已得信息派生下一项检索。例如先查某个对象的别名,再用该别名寻找其他来源。与一次改写相比,下一轮输入依赖当前结果,需要记录已经访问的来源、已提出的查询、尚未解决的要求和剩余预算。

如果第一轮认错对象,后续查询可能沿错误对象继续展开。错误之间具有条件依赖,不能简单假设每轮独立或把整体错误写成固定乘法。应核对关键实体与来源,在必要位置保留替代解释,并防止重复查询同一批信息。

停止可以依据完成预定要求、连续多轮无新信息、轮数上限、时间或费用预算。无新结果可能表示信息不足、索引遗漏或查询不合适;生成模型自判“足够”也需要任务依据。硬上限能限制消耗,同时可能提前终止,结果应说明哪些要求仍未覆盖。

这一页说明迭代查询怎样改变候选与过程状态。检索结果怎样被组织成证据、是否应回答及怎样处理冲突,属于回答系统的判断。固定检索和迭代检索需要在相同任务分布上比较覆盖、错误、平均与尾部延迟;多轮本身没有证明结果更好。

最后更新于

本页目录