前言
HyDE(全称Hypothetical Document Embeddings)是RAG中的一种技术,它基于一个假设:相较于直接查询,通过大语言模型 (LLM) 生成的答案在嵌入空间中可能更为接近。HyDE 首先响应查询生成一个假设性文档(答案),然后将其嵌入,从而提高搜索的效果。
论文:Precise Zero-Shot Dense Retrieval without Relevance Labels
代码:https://github.com/texttron/hyde
1. HyDE简介
HyDE,全称为Hypothetical Document Embeddings,是一种近来流行且广受欢迎的文档检索技术。它通过生成可用于回答用户输入问题的假设文档,来对齐查询和文档的语义空间。这些文档是由大型语言模型(LLM)根据它们自身学习到的知识生成的,然后这些文档被向量化,用于从索引中检索文档。HyDe的工作过程是从使用LLM基于查询生成假设文档开始的,在完成了假设文档的生成后将生成的假设文档输入编码器,将其映射到密集向量空间中。
其核心思想是利用大语言模型(LLMs)的已学习的先验知识(prior knowledge)编写文档,然后使用这个文档从向量数据库中检索或提取相关的上下文信息。
HyDE 特别适用于用户使用通俗的语言描述问题,而向量数据库中的信息却极为专业的情况。 此外,由于 LLMs 生成的文本信息中包含了较多的关键词或关键短语,使得检索到的相关信息更加精准。
2.HyDE对比相似度搜索
比如医学一个概念有很多术语,比如用户搜索感冒,数据库是风热流感,这俩的相似度很低,相似度匹配解决不了,只能语义匹配。
相似度搜索工作原理:相似度搜索依赖于直接比较查询词与数据库中文档的关键词的匹配度。使用如TF-IDF(词频-逆文档频率)或余弦相似度等算法来评估查询与每个文档的相似度。最终的输出是根据相似度分数排序的文档列表,分数最高的文档最相关。
应用场景:医生输入查询:“膝关节炎治疗方法”。检索系统在医学文档数据库中查找包含“膝关节炎”和“治疗方法”这些关键词的文档。返回的结果直接反映了关键词的出现频率和文档中的分布情况。
HyDE工作原理:HyDE首先通过一个生成性语言模型根据输入的查询“膝关节炎治疗方法”生成一个内容丰富的、假设性的答案或文档,这个文档详细描述了可能的治疗方法,如药物治疗、物理治疗、手术选项等,即使这样的文档在实际数据库中并不存在。然后,这个生成的假设文档被转换成嵌入向量,使用对比编码器进行编码。系统使用这个向量与数据库中文档的向量进行相似度比较,寻找与假设文档内容相似的实际文档。
应用场景:通过假设性文档生成和后续的向量比较,HyDE能够捕捉查询的深层意图和复杂内容,不仅限于关键词匹配。这使得即使医生的查询用词非常专业或非常通俗,系统也能理解并返回最相关的、专业的医疗建议和研究成果。相似度搜索比作使用地图找到特定地址,而HyDE则像是先绘制一个详尽的旅行指南,然后再在地图上寻找与之最匹配的路径。
相似度搜索直接依赖于现有的、明确的标记和路径,而HyDE通过创造性地解释和拓展查询内容,提供更深层次的匹配和理解。
通过这种方式,HyDE不仅提高了检索的相关性和准确性,还能处理更复杂和多样化的查询,特别适用于需要高度解释性和语义理解的领域,如医疗、法律和科研文献检索。
3. HyDE流程
HyDE,即假设文档嵌入,是一种使用“假”(假设)文档来改进大型语言模型 (LLM) 生成的答案的检索方法。
具体来说,HyDE 使用 LLM来创建查询的假设答案。此答案将转换为向量嵌入,并放置在与真实文档相同的空间中。当您搜索某些内容时,系统会找到与此假设答案最匹配的真实文档,即使它们与您搜索中的确切单词不匹配。HyDE 旨在捕捉查询背后的意图,确保检索到的文档在上下文上相关。 这张图是对Hypothetical Document Embeddings (HyDE) 模型的说明。
(1)输入指令和查询:HyDE接收一个查询指令,例如“写一个段落来回答这个问题”。这个查询可以涵盖各种主题,如图中示例所示,包括“智齿拔除需要多长时间”,“COVID-19大流行如何影响心理健康?”,以及“인간은 언제 피를 사용했나요?”(人类何时开始使用血液?)。
(2)生成文档:根据查询指令,一个基于GPT的语言模型生成一个假设的文档。这个文档不是真实的,但它旨在模拟相关文档的内容。例如,对于智齿拔除的查询,生成的文档可能会说“通常需要30分钟到两小时来拔除智齿”。
(3)文档编码与检索:生成的文档被送入一个对比学习的编码器(如图中的Contriever),该编码器将文档转换成嵌入向量。
(4)这个向量被用来在语料库中查找最相似的真实文档。
(5)返回结果:模型根据生成的文档与真实文档之间的语义相似性返回查询结果。例如,关于智齿拔除的查询可能返回一些解释智齿拔除过程的真实文档。
总结:
这个模型的特点是它不直接计算查询与文档之间的相似度,而是通过生成文档和编码这两个步骤间接地处理查询,使得系统能够以零样本的方式工作,即不依赖于具体的相关性标签进行训练。
这使得HyDE模型能够适应多种语言和任务,即使在没有明确训练数据的情况下也能进行有效的文档检索。
Reference:
1.https://zhuanlan.zhihu.com/p/685981587