熵权法融合 + 交叉编码器重排详解
熵权法融合与交叉编码器重排是构建高性能RAG检索系统时用于优化结果排序的两个关键步骤。它们通常在混合检索召回阶段之后执行构成一个从“粗筛”到“精选” 的两阶段排序流水线。简单来说混合检索负责快速召回可能相关的文档大候选池而这两步则负责精细排序把最相关的文档精确地排在前面。流程概览整个流程可以看作一个两阶段的排序优化过程第一阶段融合排序将向量检索和关键词检索的两组分数通过熵权法等算法合并成一个综合分数得到一个初步排序。第二阶段重排用交叉编码器对第一阶段的Top-N个结果进行更精细的语义相关性打分最终输出精准排序。⚖️ 第一阶段熵权法融合熵权法是一种客观的赋权方法。它的核心思想是数据的离散程度信息量越大其权重就应该越高。在融合场景下我们有两个检索器的打分结果需要决定各占多少比例。熵权法会根据这组查询结果本身的数据分布来动态、自适应地计算权重避免了人工调参的主观性。工作原理提取数据取向量检索和关键词检索召回的前K个文档分数。归一化将两组分数都映射到[0,1]区间。计算指标变异程度计算每组分数的信息熵。熵值越小说明分数越分散区分度大包含的信息量就越多。计算权重根据信息熵计算权重。熵值越小的检索方式权重就越高。简单来说如果这次查询中向量检索的分数层次分明而关键词检索的分数都差不多那么熵权法会自动给向量检索分配更高的权重让融合结果更依赖这次表现更好的检索器。 第二阶段交叉编码器重排交叉编码器Cross-Encoder 与向量检索所用的双编码器Bi-Encoder不同。它不再将问题和文档分开编码而是将“问题文档”作为一个整体输入让模型在编码的最初阶段就对两者进行充分的交互和比较。工作原理输入拼接将 [问题] 和 [候选文档] 拼接成一个长文本。深度交互送入Transformer编码器模型内部的自注意力机制会让问题和文档的每一个Token都进行深度交互从而精确捕获它们之间的相关性。输出分数模型最终输出一个0到1之间的相关性分数。为什么需要它对比双编码器用于向量检索和交叉编码器它们的差异非常明显双编码器可以预计算文档向量检索速度极快。但问题和文档是独立编码的缺乏交互精度有限。交叉编码器精度极高是当下排序模型的天花板。但无法预计算推理耗时成本高。特性 双编码器向量检索 交叉编码器重排编码方式 问题和文档独立编码 问题和文档联合编码交互程度 无交互仅有向量相似度计算 深度交互注意力机制全面比较检索速度 极快可预建索引 较慢需要实时计算精度 较高 最高对细粒度语义敏感典型应用 召回第一阶段 精排第二阶段因此为了平衡效率和精度系统会先用双编码器快速召回再用交叉编码器对少数候选文档进行精准重排。 两者如何协同工作在实际系统中它们按以下顺序协同工作召回用户提问系统并行进行向量检索和关键词检索各返回Top-K如K100文档。融合排序使用熵权法计算向量分和关键词分的最优权重计算出第一阶段的综合得分并排序。候选集筛选取融合排序后的Top-N如N20 个文档作为精排候选集。这一步能大幅降低交叉编码器的计算量。重排交叉编码器对这个N个文档进行精细打分按新分数排序。输出将重排后的Top-M如M5个最终结果返回给用户。这种设计既保证了效率和召回率又通过精排显著提升了最终答案的准确性和可靠性
