首页 > 教程攻略 > ai资讯 >Multi-Head RAG:复杂问题的RAG召回方案

Multi-Head RAG:复杂问题的RAG召回方案

来源:互联网 时间:2026-08-22 14:16:16

传统RAG在处理复杂查询时,往往会遇到一个棘手的问题:当查询涉及多个不同主题的内容,而这些内容在语义空间中相距甚远,检索就变得困难重重。这篇工作提出的Multi-Head RAG,正是为了精准召回这类跨主题信息而设计的。

Multi-Head RAG:复杂问题的RAG召回方案

这个工作要解决个什么问题呢?

RAG的流程是通过将文档召回,放入LLM的上下文中,来提供更准确和相关的答案。但是现有的RAG解决方案在处理召回内容来自完全不同文档的情况时,常常力不从心——因为这些文档在语义空间中可能离得很远,很难一次性全部检索出来。

论文中有张图说明了这一点:正常的RAG在遇到有点复杂的查询时,召回阶段就会很麻烦。如果查询是纯粹的绿点主题或者黄点主题,那都没太大问题。但一旦涉及多主题混合,到向量空间之后就不好召回了。

那么,怎么解决呢?大致的方案就像下图所示:查询被拆解成多个向量,每个向量只代表一个相对纯粹的主题,类似多路召回,总能匹配到需要的文本块。

怎么获取多个向量呢?

MRAG的做法是使用Transformer多头注意力层的特征作为向量表征,而不是仅仅取最后一个解码器层的输出。这样做的动机是:不同的注意力头可以学习捕获数据的不同方面。具体来说,每一层取一个向量,取最后一个位置的。对于文本块和查询,都生成多个向量。检索时,采用投票策略,结合不同嵌入空间的重要性得分(根据一层的头内向量空间分布计算),来选择最相关的文本块,并根据其重要性对检索结果进行加权。

最终结果在召回的相关性方面获得了明显提升。