论文:https://arxiv.org/pdf/2212.10496
代码:https://github.com/texttron/hyde
HyDE 特别适合,当需要捕获广泛的语义内容并减少对关键词直接依赖时。
比如医学一个概念有很多术语,比如用户搜索感冒,数据库是风热流感,这俩的相似度很低,相似度匹配解决不了,只能语义匹配。
相似度搜索工作原理:
- 相似度搜索依赖于直接比较查询词与数据库中文档的关键词的匹配度。
- 使用如TF-IDF(词频-逆文档频率)或余弦相似度等算法来评估查询与每个文档的相似度。
- 最终的输出是根据相似度分数排序的文档列表,分数最高的文档最相关。
应用场景:
- 医生输入查询:“膝关节炎治疗方法”。
- 检索系统在医学文档数据库中查找包含“膝关节炎”和“治疗方法”这些关键词的文档。
- 返回的结果直接反映了关键词的出现频率和文档中的分布情况。
HyDE工作原理:
- HyDE首先通过一个生成性语言模型根据输入的查询“膝关节炎治疗方法”生成一个内容丰富的、假设性的答案或文档,这个文档详细描述了可能的治疗方法,如药物治疗、物理治疗、手术选项等,即使这样的文档在实际数据库中并不存在。
- 然后,这个生成的假设文档被转换成嵌入向量,使用对比编码器进行编码。
- 系统使用这个向量与数据库中文档的向量进行相似度比较,寻找与假设文档内容相似的实际文档。
应用场景:
- 通过假设性文档生成和后续的向量比较,HyDE能够捕捉查询的深层意图和复杂内容,不仅限于关键词匹配。
- 这使得即使医生的查询用词非常专业或非常通俗,系统也能理解并返回最相关的、专业的医疗建议和研究成果。
相似度搜索比作使用地图找到特定地址,而HyDE则像是先绘制一个详尽的旅行指南,然后再在地图上寻找与之最匹配的路径。
相似度搜索直接依赖于现有的、明确的标记和路径,而HyDE通过创造性地解释和拓展查询内容,提供更深层次的匹配和理解。
通过这种方式,HyDE不仅提高了检索的相关性和准确性,还能处理更复杂和多样化的查询,特别适用于需要高度解释性和语义理解的领域,如医疗、法律和科研文献检索。