1. 元数据过滤技术元数据筛选采用固定的标准通过文档元数据来缩小检索范围元数据包括文档标题、作者、创建时间、访问权限等信息比如表格中的筛选功能。1.1 元数据过滤技术的优点这种过滤方式很容易理解系统运作原理清晰问题排查起来方便。这是一种成熟且高效的技术。是唯一让系统按照严格标准筛选文档的方法。1.2 元数据过滤技术的缺点本质上不是搜索技术而是用来筛选结果的工具配合其他技术使用才能发挥其真正作用。这种方法太过死板、不考虑文档中的内容、无法对筛选后的文档进行排序。单纯只靠元数据过滤筛选基本没有什么用。2. 关键词搜索在检索过程中关键词搜索的核心思想是通过提示词与文档进行匹配系统会将提示词和文档转变为稀疏向量计算关键词在文档中的出现频率。TF-IDF是关键词搜索算法中的一个经典模型而大多数检索系统都采用最佳匹配算法——BM25。BM25用于计算单个关键词在某个文档中的相关性系统会计算所有关键词的总分来衡量文档的相关度从而对文档进行排序。2.1 BM25基本和TF-IDF类似只是加入了关键改进词频饱和——当关键词重复出现时它的权重会逐渐降低例如当一个词出现的20次时并不代表它比出现10次的文章重要2倍。文档长度归一化——和TF-IDF一样系统会适当的降低长文档的权重但是BM25采用的是递减权重机制。TF-IDF的处理过于激进导致长文档的重要性倍过度降低。BM25引进了两个可调超参数k1和b可以调节词频饱和度和文档长度归一化。2.2 BM25的优点一种简单且有效的方法单独使用也可以发挥出良好的效果。它能确保检索结果包含用户输入的关键词尤其是用户使用专业术语或具体产品名称时。局限性当用户搜索的内容意思相近或但用词不准确时传统搜索就找不到相关结果。3. 语义搜索语义搜索能够将文档与查询内容根据语义关联进行匹配并且能够识别出关键词搜索无法捕捉的语义差异。语义搜索和关键词搜索的操作流程是一样的区别在于文档和查询内容生成向量的方式不同。关键词搜索只需要统计每个词在文本中出现的频率而语义搜索通过将文档和查询内容输入到特殊的数学模型即嵌入模型中来生成向量。嵌入模型将词语映射到由向量表示的空间位置在二维空间中这些向量可以表示为x,y坐标系上的点接下来嵌入模型会将语义相似的词映射到空间中相互接近的位置。不止在二维空间在大多数嵌入模型中这些向量具有数百个甚至数千个维度这为每个元素的嵌入位置提供了难以想象的灵活性。相似的概念相距较近不相似的概念相距较远。嵌入模型可以处理多种类型的输入数据例如单词、句子、整篇文章的嵌入模型。这些模型处理不同类型的输入但最终输出的结果都是一个代表空间中某点的向量。在语义搜索中更常用的距离衡量方式是余弦相似度Cosine Similarity。整体的流程嵌入模型会将所有文档映射到向量空间中基于嵌入模型的设计原理语义相似的文档会互相靠近而差异大的文档则会相距更远。接下来讲提示词也转换为向量表示然后计算提示词向量和每个文档向量之间的距离距离最近的文档也恰好是语义最相似的文档。最后按照文档与提示词的距离进行排序并返回距离最短的文档。关键点语义向量是抽象且有些随机的。训练前空间中的位置没有意义训练后位置具有意义因为相似文本的聚类已经形成。仅比较来自同一嵌入模型的向量。4. 混合搜索策略以上三种方法通常是如何组合成混合搜索的流程首先检索器会收到一个提示检索器同时执行关键词搜索并使用提示进行语义搜索结果是得到两个文档的排序列表加入限制返回50个文档其中许多文档同时出现在两个排序结果中但顺序可能不同。接下来这两个文档排序列表会分别通过元数据过滤器过滤以移除不相关的文档。最后将过滤后的文档列表组合形成一个单一排名。4.1 RRFReciprocal Rank Fusion怎样将多个检索器的结果合并成一个统一的排名——采用RRFReciprocal Rank Fusion算法RRF只关注每个列表中文档的排名而非导致这些排名的分数即使排名第一的文档得分明显高于第二名该信息不回被纳入考量。当k0任何列表中排名第一的文档都会立即跃升至整体排名的顶部。当k50用来平衡k0时的情况不会导致在其他任何列表中都会主导排名的情况此时排名第一是值得的。4.2Beta参数在混合搜索Hybrid Search中它通常用一个Beta (β) 参数来调节“语义搜索”和“关键词搜索”在最终结果中的占比。可以针对你的特定系统调整这个参数看看哪种效果最好对于需要精确词语匹配的应用场景但希望有一定的语义相似性会对关键词搜索结果赋予比语义搜索结果更大的权重。5. 检索质量评估如果想要评估检索器的质量必须知道正确答案大多数检索器质量指标有几个共同元素首先需要提示词本身因为检索器可能在某个提示词上表现很好在另一个上却表现很差。其次需要检索器返回的文档排序列表这些文档来自该提示。最后需要一个包含所有相关文档的标准答案列表即知识库中检索器应该返回的文档。5.1 精确率和召回率最常用的两个检索器质量指标是精确率和召回率如果要同时达到100%的召回率和精确率的唯一方法就是把相关文档都排在前面并且只返回这些文档精确率检索出的相关信息数 / 检索出的信息总数精确率衡量的是“查得准不准”关注的是检索出来的结果中有多少是真正相关的。召回率检索出的相关信息数 / 系统中所有的相关信息总数召回率衡量的是“查得全不全”关注的是所有真正有用的信息中有多少被成功检索出来了。可以在语义搜索的权重比例或者关键词搜索在混合检索系统中的比重然后查看这对检索器的召回率和精确率产生什么影响。5.2 MAPKMean Average Precision at K为了更全面的评估检索器性能使用平均精确率MAPK指标在排名前K个结果中不仅要看找得准不准精确率还要看好的结果是不是被排在了前面。MAP值越高说明效果越好。例如5.3Reciprocal RankRRReciprocal RankRR倒数秩是信息检索中用来衡量单次查询Query结果好坏的一个指标。它专门用来评估第一个正确答案到底排在第几名。核心逻辑是只要用户能找到第一个想要的结果就行至于第二个、第三个找没找到它根本不在乎。Reciprocal Rank 1 / Rank5.4MRRMean Reciprocal RankMRRMean Reciprocal Rank在实际评估一个搜索系统时通常会进行很多次查询。这时候就会用到 MRR平均倒数秩。MRR 就是所有查询的 RR 值的平均数。MRR 所有查询的 RR 之和 / 查询总次数
检索技术类型(retrieval techniques)
1. 元数据过滤技术元数据筛选采用固定的标准通过文档元数据来缩小检索范围元数据包括文档标题、作者、创建时间、访问权限等信息比如表格中的筛选功能。1.1 元数据过滤技术的优点这种过滤方式很容易理解系统运作原理清晰问题排查起来方便。这是一种成熟且高效的技术。是唯一让系统按照严格标准筛选文档的方法。1.2 元数据过滤技术的缺点本质上不是搜索技术而是用来筛选结果的工具配合其他技术使用才能发挥其真正作用。这种方法太过死板、不考虑文档中的内容、无法对筛选后的文档进行排序。单纯只靠元数据过滤筛选基本没有什么用。2. 关键词搜索在检索过程中关键词搜索的核心思想是通过提示词与文档进行匹配系统会将提示词和文档转变为稀疏向量计算关键词在文档中的出现频率。TF-IDF是关键词搜索算法中的一个经典模型而大多数检索系统都采用最佳匹配算法——BM25。BM25用于计算单个关键词在某个文档中的相关性系统会计算所有关键词的总分来衡量文档的相关度从而对文档进行排序。2.1 BM25基本和TF-IDF类似只是加入了关键改进词频饱和——当关键词重复出现时它的权重会逐渐降低例如当一个词出现的20次时并不代表它比出现10次的文章重要2倍。文档长度归一化——和TF-IDF一样系统会适当的降低长文档的权重但是BM25采用的是递减权重机制。TF-IDF的处理过于激进导致长文档的重要性倍过度降低。BM25引进了两个可调超参数k1和b可以调节词频饱和度和文档长度归一化。2.2 BM25的优点一种简单且有效的方法单独使用也可以发挥出良好的效果。它能确保检索结果包含用户输入的关键词尤其是用户使用专业术语或具体产品名称时。局限性当用户搜索的内容意思相近或但用词不准确时传统搜索就找不到相关结果。3. 语义搜索语义搜索能够将文档与查询内容根据语义关联进行匹配并且能够识别出关键词搜索无法捕捉的语义差异。语义搜索和关键词搜索的操作流程是一样的区别在于文档和查询内容生成向量的方式不同。关键词搜索只需要统计每个词在文本中出现的频率而语义搜索通过将文档和查询内容输入到特殊的数学模型即嵌入模型中来生成向量。嵌入模型将词语映射到由向量表示的空间位置在二维空间中这些向量可以表示为x,y坐标系上的点接下来嵌入模型会将语义相似的词映射到空间中相互接近的位置。不止在二维空间在大多数嵌入模型中这些向量具有数百个甚至数千个维度这为每个元素的嵌入位置提供了难以想象的灵活性。相似的概念相距较近不相似的概念相距较远。嵌入模型可以处理多种类型的输入数据例如单词、句子、整篇文章的嵌入模型。这些模型处理不同类型的输入但最终输出的结果都是一个代表空间中某点的向量。在语义搜索中更常用的距离衡量方式是余弦相似度Cosine Similarity。整体的流程嵌入模型会将所有文档映射到向量空间中基于嵌入模型的设计原理语义相似的文档会互相靠近而差异大的文档则会相距更远。接下来讲提示词也转换为向量表示然后计算提示词向量和每个文档向量之间的距离距离最近的文档也恰好是语义最相似的文档。最后按照文档与提示词的距离进行排序并返回距离最短的文档。关键点语义向量是抽象且有些随机的。训练前空间中的位置没有意义训练后位置具有意义因为相似文本的聚类已经形成。仅比较来自同一嵌入模型的向量。4. 混合搜索策略以上三种方法通常是如何组合成混合搜索的流程首先检索器会收到一个提示检索器同时执行关键词搜索并使用提示进行语义搜索结果是得到两个文档的排序列表加入限制返回50个文档其中许多文档同时出现在两个排序结果中但顺序可能不同。接下来这两个文档排序列表会分别通过元数据过滤器过滤以移除不相关的文档。最后将过滤后的文档列表组合形成一个单一排名。4.1 RRFReciprocal Rank Fusion怎样将多个检索器的结果合并成一个统一的排名——采用RRFReciprocal Rank Fusion算法RRF只关注每个列表中文档的排名而非导致这些排名的分数即使排名第一的文档得分明显高于第二名该信息不回被纳入考量。当k0任何列表中排名第一的文档都会立即跃升至整体排名的顶部。当k50用来平衡k0时的情况不会导致在其他任何列表中都会主导排名的情况此时排名第一是值得的。4.2Beta参数在混合搜索Hybrid Search中它通常用一个Beta (β) 参数来调节“语义搜索”和“关键词搜索”在最终结果中的占比。可以针对你的特定系统调整这个参数看看哪种效果最好对于需要精确词语匹配的应用场景但希望有一定的语义相似性会对关键词搜索结果赋予比语义搜索结果更大的权重。5. 检索质量评估如果想要评估检索器的质量必须知道正确答案大多数检索器质量指标有几个共同元素首先需要提示词本身因为检索器可能在某个提示词上表现很好在另一个上却表现很差。其次需要检索器返回的文档排序列表这些文档来自该提示。最后需要一个包含所有相关文档的标准答案列表即知识库中检索器应该返回的文档。5.1 精确率和召回率最常用的两个检索器质量指标是精确率和召回率如果要同时达到100%的召回率和精确率的唯一方法就是把相关文档都排在前面并且只返回这些文档精确率检索出的相关信息数 / 检索出的信息总数精确率衡量的是“查得准不准”关注的是检索出来的结果中有多少是真正相关的。召回率检索出的相关信息数 / 系统中所有的相关信息总数召回率衡量的是“查得全不全”关注的是所有真正有用的信息中有多少被成功检索出来了。可以在语义搜索的权重比例或者关键词搜索在混合检索系统中的比重然后查看这对检索器的召回率和精确率产生什么影响。5.2 MAPKMean Average Precision at K为了更全面的评估检索器性能使用平均精确率MAPK指标在排名前K个结果中不仅要看找得准不准精确率还要看好的结果是不是被排在了前面。MAP值越高说明效果越好。例如5.3Reciprocal RankRRReciprocal RankRR倒数秩是信息检索中用来衡量单次查询Query结果好坏的一个指标。它专门用来评估第一个正确答案到底排在第几名。核心逻辑是只要用户能找到第一个想要的结果就行至于第二个、第三个找没找到它根本不在乎。Reciprocal Rank 1 / Rank5.4MRRMean Reciprocal RankMRRMean Reciprocal Rank在实际评估一个搜索系统时通常会进行很多次查询。这时候就会用到 MRR平均倒数秩。MRR 就是所有查询的 RR 值的平均数。MRR 所有查询的 RR 之和 / 查询总次数