链载Ai

标题: 最大边际相关性MMR:提升RAG检索结果的多样性与实用性 [打印本页]

作者: 链载Ai    时间: 4 小时前
标题: 最大边际相关性MMR:提升RAG检索结果的多样性与实用性

ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);visibility: visible;">


-正文-

在RAG系统中,仅靠向量相似度检索容易造成信息重复或片面。为提升回答的多样性与覆盖度,引入MMR(Maximum Marginal Relevance)算法能有效在“相关性”与“多样性”之间取得平衡,从而挑选出既相关又不重复的信息,提升系统输出的质量与实用性。

  • 1. MMR 是什么,它能解决什么问题?
  • 2. MMR 的基本思想
  • 3. MMR 的原理和公式解析
    • 3.1 算法流程
    • 3.2 举个例子:摘要任务中的 MMR
  • 4. MMR 的应用场景
    • 4.1. 信息检索(比如搜索引擎的结果排序)
    • 4.2. 问答系统(从多个候选答案中挑出信息最丰富的)
  • 5. 代码测试
    • 5.1 标准相似度检索 (Top 5)
    • 5.2 MMR检索 (lambda=0.3, k=5, fetch_k=10)
    • 5.3 MMR检索 (lambda=0.7, k=5, fetch_k=10)

-- 领取学习资料大礼包,见文末

在 RAG(Retrieval-Augmented Generation)系统中,检索阶段决定了最终生成内容的"信息来源"。

但仅靠向量相似度进行 top-k 检索,可能会出现内容重复、信息集中于单一角度的问题,导致模型生成的回答缺乏多样性和覆盖度。这时,仅仅"相关"还不够,我们更希望检索结果是"既相关又多样"。

为了解决这个问题,引入 Maximum Marginal Relevance(MMR) 可以有效地在相关性与多样性之间取得平衡,优化检索结果的质量,提升最终回答的丰富性和实用性。

相关阅读:本地知识库,通过RAG来解决信息的精准生成

1. MMR 是什么,它能解决什么问题?

Maximum Marginal Relevance(MMR)是一种排序算法,主要用于在信息检索、推荐系统和摘要生成等任务中,选择既相关又不重复的内容。

放到RAG的场景中,传统的排序方法往往只关注内容的相关性(即与查询的匹配度)。但如果我们只是单纯地根据相关性来排序,可能会出现以下问题:

MMR 的核心思想是:在确保相关性的同时,增加多样性,从而提供更全面、更丰富的结果。

简单来说就是:在一堆候选内容里,优先选那些既跟用户查询相关、又跟已经选过的内容不重复的条目。

我们可以这么理解它的"目的"—— MMR = "给你想要的 + 避免你已经看过的"。

假设你正在使用一个新闻推荐系统,输入了"人工智能"的关键词。传统的推荐系统可能推荐多篇关于"人工智能在医疗行业应用"的文章,而这些文章的内容高度相似。

使用 MMR 后,系统可能会推荐:

这样,用户既能获得与主题相关的信息,又能了解该领域的不同视角,避免了重复。

2. MMR 的基本思想

这里面涉及到两个关键词:相关性(Relevance)多样性(Diversity)。这两个听起来像是在"打架",但其实在信息排序里,它们是缺一不可的搭档。

相关性是基础,但不够

相关性很好理解,就是某个内容跟用户查询、兴趣、目标之间的匹配程度。比如你搜"机器学习",当然不希望系统推"烘焙教程"给你。这就是相关性在起作用。

但如果系统一味追求相关性,就会出现一个问题:内容集中在一个点上,很快就"重复"了。你看着看着就会觉得:"这些不是都差不多吗?"

多样性让信息更丰富

多样性指的是结果之间的差异程度。如果推荐的每条内容都从不同角度切入,比如一个讲原理、一个讲应用、一个讲未来趋势,那你看完之后会感觉信息更全面、更有收获。

相关性保证你"看对东西",多样性保证你"看到不同的东西"。

全是相关但重复的内容,没用;全是多样但不相关的内容,也没用。

所以,MMR 的目标就很明确了:

从一堆候选内容里,挑出那些既"与查询高度相关",又"跟已经选过的内容不重复"的条目。

它在每一步选下一个内容时,都会去权衡:

MMR 做的就是在这两者之间找一个平衡点。换句话说,它每次都想选一个"有新意"的好内容,而不是简单地把"最相关的那几个"一股脑推出来。

你可以把 MMR 想成一个"懂信息又懂用户心理"的策展人:

它会说,"这个你可能还没看过,但跟你想要的很有关,而且比之前那些不一样,值的一看。"

因此,MMR 的核心目标是:选出既相关又不重复的内容

3. MMR 的原理和公式解析

MMR 的标准公式表达如下(左右滑动):

其中:

相关阅读:人工智能小白到高手:余弦相似度(Cosine Similarity)的简单理解

3.1 算法流程

  1. 初始化






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5