AI个人学习
和实操指南

Retrieval:什么是Retrieval?解释RAG中常见的"检索"技术

基本概念

在信息技术领域,检索 (Retrieval) 指的是从一个大型数据集(通常是文档、网页、图像、音频、视频或其他形式的信息)中,根据用户的查询或需求,高效地定位和提取相关信息的过程。 其核心目标是找到与用户需求最相关的信息,并将其呈现给用户。

  • 查询(Query):用户输入的搜索词或条件。
  • 索引(Index):为了提高检索效率,对数据进行预处理的一种数据结构。
  • 相关性(Relevance):检索结果与查询的匹配程度。

基于构建大模型知识库的RAG方案中,往往不使用一种"检索"技术,例如常用的:稀疏+密集混合检索。检索技术选型要与被检索内容精心适配,这需要经过大量的调试。

Retrieval:讲解RAG中常见的\

 

主流Retrieval模型

Retrieval模型主要分类:布尔模型、向量空间模型、概率模型、神经网络模型、图模型(例如:知识图谱)、语言模型(例如GPT3)。

我们可以将主流的 Retrieval 模型“简单”分为两大类介绍,核心区别在于它们如何理解和匹配文本:


1. 基于词汇的匹配 (Lexical/Keyword-based Matching):

这类模型主要关注查询和文档中字面上的词语匹配,不深入理解词语背后的含义。

  • 核心思想: 统计词语在文档和查询中的出现情况,并进行匹配。

  • 主要模型:

    • 布尔模型 (Boolean Model): 简单地基于关键词是否存在进行匹配 (AND, OR, NOT)。

    • 向量空间模型 (Vector Space Model, VSM): 将文档和查询表示为词语权重的向量,通过向量相似度 (如余弦相似度) 匹配。常用权重方法是 TF-IDF。

    • BM25: 一种基于概率统计的改进模型,考虑了文档长度等因素,是许多搜索引擎的基石。

优点: 简单、高效,易于实现。
缺点: 无法理解词语的语义关系,容易受到同义词、多义词等问题的困扰。

2. 基于语义的匹配 (Semantic/Meaning-based Matching):

基于语义的嵌入模型,除了支持嵌入文本长度、维度不同外,不同嵌入模型对”句子“的理解方式也不同,这是选择嵌入模型需要优先考虑的问题(虽然大多数都使用较为通用的模型)。

例如单词"苹果",有的模型语义上优先理解为"水果",有的模型会优先理解为"手机"。

这类模型试图理解查询和文档的深层语义信息,而不仅仅是表面的词语匹配。

  • 核心思想: 将文本映射到语义空间,通过语义相似度进行匹配。

  • 主要模型:

    • 主题模型 (Topic Models): 挖掘文档的潜在主题,通过主题相似度检索 (例如 LDA)。

    • 嵌入模型 (Embedding Models): 将词语、句子或文档映射到低维稠密的向量空间,捕捉语义信息。

      • 词嵌入模型 (Word Embeddings): 例如 Word2Vec, GloVe, FastText。

      • 句子嵌入模型 (Sentence Embeddings): 例如 Sentence-BERT, Universal Sentence Encoder, OpenAI Embeddings

    • 密集检索模型 (Dense Retrieval Models): 使用深度学习模型(通常是 Transformer)将查询和文档编码为高维密集向量,通过向量相似度进行检索。例如 DPR, Contriever,以及基于 OpenAI Embeddings 构建的检索系统。

    • 神经网络交互模型 (Neural Interaction Models): 更精细地建模查询和文档之间的交互,例如 ColBERT, RocketQA。

    • 图神经网络模型 (Graph Neural Network Models): 将文档和查询构建成图,利用图结构进行检索。

优点: 能更好地理解文本的含义,处理语义相关性,更准确地找到相关信息。
缺点: 通常更复杂,计算成本更高。

关键区别:

  • 词汇匹配模型看“字面”,关注关键词的出现。

  • 语义匹配模型看“意思”,关注文本的内在含义和关系。

总结表格:

分类 核心思想 主要模型 RAG 中的应用侧重
基于词汇的匹配 字面上的词语匹配 布尔模型, 向量空间模型 (VSM), BM25 早期或简单场景
基于语义的匹配 理解深层语义信息 主题模型, 词嵌入模型, 句子嵌入模型 (含 OpenAI Embeddings), 密集检索模型 (含基于 OpenAI Embeddings 的系统), 神经网络交互模型, 图神经网络模型 主流选择,尤其侧重句子嵌入和密集检索

 

RAG中的应用

RAG(Retrieval-Augmented Generation)是一种结合了检索和生成技术的AI框架,其主要用途是提高生成内容的准确性和上下文相关性。

  • 检索阶段:从一个大型知识库中找出与用户输入相关的文档或段落。
  • 生成阶段:利用检索到的信息作为上下文,生成回答或内容。

在RAG中,检索模型负责提供高质量的信息来源,而生成模型则负责根据这些信息生成自然语言回答。由于RAG可以从外部知识源获取最新信息,它在回答知识密集型问题时表现尤为出色。

 

在 RAG 中的应用侧重:

在 RAG (检索增强生成) 中,语义匹配模型通常是首选,因为它们能更准确地检索到与用户查询相关的上下文信息,从而帮助生成模型产生更准确、更连贯的回答。 特别是句子嵌入模型和密集检索模型,例如基于 OpenAI Embeddings 的检索,因其优秀的语义表示能力和检索效率,被广泛应用于 RAG 系统中。

 

案例

1. 基于词汇的 Retrieval (Lexical Retrieval) 的应用

  • 核心思想: 检索系统主要依赖于查询和文档中字面上的关键词匹配

  • 案例一:在技术文档中查找特定命令

    • 场景: 你正在使用一个软件,想知道如何执行文件复制操作,需要查找相关的命令。

    • Retrieval 机制: RAG 系统使用基于词汇的模型(如 BM25)在软件的帮助文档中搜索包含关键词 "复制文件"、"文件复制命令" 或 "copy file" 的段落。

    • 检索结果示例: 系统可能会找到文档中标题为 "文件管理命令" 的章节,其中包含 "使用 cp 命令复制文件" 的说明。

    • 如何帮助生成: 检索到的包含命令的具体说明会提供给生成模型,模型可以生成更准确的操作步骤,例如:“您可以使用 cp 命令来复制文件。例如,cp source.txt destination.txt 将复制 source.txt 到 destination.txt。”

    • 关键点: 检索依赖于精确的关键词匹配。如果你使用了不同的说法,例如“移动文件副本”,可能无法检索到相同的结果。

  • 案例二:在产品目录中查找特定型号的产品

    • 场景: 你想购买一个特定型号的打印机,例如 "型号 XYZ-123"。

    • Retrieval 机制: RAG 系统在产品目录数据库中搜索包含 "XYZ-123" 这个精确型号名称的条目。

    • 检索结果示例: 系统会找到产品条目,其中包含 "打印机 XYZ-123" 的名称、详细规格、价格等信息。

    • 如何帮助生成: 检索到的产品信息可以直接用于生成关于该型号打印机的介绍、价格查询或购买链接等。

    • 关键点: 依赖于产品型号的精确匹配。如果用户输入了模糊的描述,例如“高性能打印机”,基于词汇的检索可能效果不佳。

2. 基于语义的 Retrieval (Semantic Retrieval) 的应用

  • 核心思想: 检索系统理解查询和文档的深层语义信息,即使没有完全相同的关键词也能找到相关内容。

  • 案例三:在医学文献中查找关于某种疾病症状的信息

    • 场景: 你想了解“高血压会引起哪些常见的身体不适?”

    • Retrieval 机制: RAG 系统使用基于语义的模型(如基于 Sentence-BERT 或 OpenAI Embeddings 的密集检索)将查询和医学文献进行向量化表示,然后在语义空间中查找与查询向量最接近的文献段落。即使文献中没有完全相同的措辞,例如使用了“血压升高”而不是“高血压”,或者使用了具体的症状描述而非“身体不适”,也能被检索到。

    • 检索结果示例: 系统可能会找到包含以下内容的段落:“高血压患者常常报告头痛、眩晕、胸闷等症状。长期未经控制的高血压可能导致心悸和呼吸困难。”

    • 如何帮助生成: 检索到的关于高血压症状的描述会提供给生成模型,模型可以生成更自然、更全面的回答:“高血压可能引起多种不适,常见的包括头痛、眩晕、胸闷等。严重的或长期的高血压还可能导致心悸和呼吸困难。”

    • 关键点: 能够理解同义词(“血压升高” vs. “高血压”)、近义表达(“身体不适” vs. “头痛、眩晕”)以及相关概念,提供更丰富的上下文。

  • 案例四:在创意写作辅助中查找相似风格的文本

    • 场景: 你正在创作一篇科幻小说,希望找到一些文风相似的段落作为灵感。你输入:“描述一个未来城市的繁荣景象,充满高耸的建筑和繁忙的交通。”

    • Retrieval 机制: RAG 系统使用基于语义的模型在大量的科幻小说文本库中搜索,寻找在语义上与你的描述最接近的段落,即使这些段落没有完全使用“未来城市”、“繁荣”等关键词。

    • 检索结果示例: 系统可能会找到这样的段落:“钢铁巨兽刺破云霄,玻璃幕墙反射着五彩的光芒。飞行汽车如梭般穿梭于楼宇之间,地面上的人群熙熙攘攘,能量的嗡鸣声充斥着这个不夜城。”

    • 如何帮助生成: 检索到的具有相似意境和描述方式的段落可以作为生成模型的参考,帮助其创作出更符合你期望风格的文本。

    • 关键点: 能够理解文本的隐含意义、情感色彩和文风,超越了简单的关键词匹配,更注重语义上的相似性。

未经允许不得转载:首席AI分享圈 » Retrieval:什么是Retrieval?解释RAG中常见的"检索"技术

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文