1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

解题思路

MMR 的定义是:

MMR(i)=λ⋅rel[i]−(1−λ)⋅max⁡j∈Ssim[i][j]MMR(i)=\lambda \cdot rel[i]-(1-\lambda)\cdot \max_{j \in S} sim[i][j] MMR(i)=λ⋅rel[i]−(1−λ)⋅j∈Smax​sim[i][j]

其中:

P4830.第2题-基于最大边际相关性(MMR)的智能示例重排序

    2000ms Tried: 575 Accepted: 53 Difficulty: 6 所属公司 : 华为
    算法与标签>模拟

题目内容

你正在开发一个智能学习助手,它能够根据用户的问题从知识库中检索相关示例来帮助理解。为了提供既相关又多样化的示例,避免返回大量内容相似的重复结果,你决定采用最大边际相关性(MaximalMarginalRelevance,MMR)(Maximal Marginal Relevance, MMR)(MaximalMarginalRelevance,MMR)算法对候选文档进行重排序。MMRMMRMMR 在保证与查询相关的同时,通过惩罚与已选文档过于相似的候选,提升结果的多样性。

问题描述

给定 NNN 个候选文档,每个文档有一个唯一的ID IDID 和一个与用户查询的相关性分数(rel[i],范围 [0,1][0,1][0,1])。同时,给出了文档之间的相似度矩阵(sim[i][j]),范围 [0,1]),其中 sim[i][j] 表示文档i ii 与文档 jj j的相似度(满足对称性且对角线为1 11)。你需要实现MMR MMRMMR算法,根据平衡参数λ(0≤λ≤1) λ(0≤λ≤1)λ(0≤λ≤1)和需要返回的数量K KK,输出按照 MMRMMR MMR得分降序选择的文档ID IDID 列表(按选择顺序)。

MMRMMR MMR算法定义

  1. 初始化:已选文档集合 SS S为空集。

  2. 迭代 KKK次(0≤K≤N0≤K≤N0≤K≤N;如果 K=0K=0K=0,输出空列表):

    • 对于每个尚未被选中的文档i ii,计算其当前边际相关性得分:

      MMR(i)=λ⋅rel[i]−(1−λ)⋅maxj∈Ssim[i][j]MMR(i)=λ⋅rel[i]−(1−λ)⋅max_{j∈S}sim[i][j]MMR(i)=λ⋅rel[i]−(1−λ)⋅maxj∈S​sim[i][j]

      • 如果S S S为空,则max max max项定义为 000。
    • 选择 MMRMMRMMR 得分最高的文档加入S SS。如果多个文档的得分相等,则选择 IDIDID 较小的那个。

    • 将选中文档的 IDIDID 按顺序记录到结果列表中。

输入描述

第一行:一个整数 N(1≤N≤1000)N (1≤N≤1000)N(1≤N≤1000),表示候选文档数量。

接下来 NNN 行:每行包含一个浮点数 relrelrel 和一个整数 IDIDID,分别表示第i i i个文档(按输入顺序,索引从0 0 0到N−1 N−1N−1)的相关性分数和文档 IDIDID。文档 IDIDID 互不相同,范围在 11 1到 10910^9109 之间。

接下来 N 行:每行包含 N 个浮点数,构成相似度矩阵 sim。第i i i行第 jjj 列表示文档 iii 与文档j j j的相似度。矩阵保证对称(sim[i][j] = sim[j][i]),对角线 sim[i][i] = 1.00。所有浮点数精确到小数点后222位。

最后一行:一个浮点数λ(0≤λ≤1) λ (0≤λ≤1) λ(0≤λ≤1)和一个整数K(0≤K≤N) K (0≤K≤N)K(0≤K≤N),空格分隔。

输出描述

输出一行,包含K KK 个整数,即被选中文档的 IDIDID,按照选择的顺序排列,IDID ID之间用空格分隔。

如果K=0K=0K=0,输出空行(仅输出换行)。

样例1

输入

3
0.9 101
0.6 102
0.3 103
1.0 0.95 0.2
0.95 1.0 0.1
0.2 0.1 1.0
0.7 2

输出

101 103

说明

初始S S S为空,MMRMMR MMR得分仅由相关性决定:101(0.63),102(0.42),103(0.21)→选101101 (0.63), 102 (0.42), 103 (0.21) → 选 101101(0.63),102(0.42),103(0.21)→选101。

更新后:

  • 102:MMR=0.7×0.6−0.3×max(0.95)=0.135102: MMR=0.7×0.6−0.3×max(0.95)=0.135102:MMR=0.7×0.6−0.3×max(0.95)=0.135
  • 103:MMR=0.7×0.3−0.3×max(0.2)=0.15103: MMR=0.7×0.3−0.3×max(0.2)=0.15103:MMR=0.7×0.3−0.3×max(0.2)=0.15

选 103103103,输出 [101, 103]。

此时 MMRMMR MMR成功选择了相关性较低但与101 101101 更不相似的 103103103,体现了多样性。

样例2

输入

3
0.9 101
0.8 102
0.7 103
1.0 0.2 0.3
0.2 1.0 0.9
0.3 0.9 1.0
0.5 2

输出

101 102

说明

初始 SS S为空,MMRMMRMMR得分仅由相关性决定:101(0.45),102(0.4),103(0.35)→101 (0.45), 102 (0.4), 103 (0.35) → 101(0.45),102(0.4),103(0.35)→选 101101101。

更新后:

  • 对 102:MMR=0.5×0.8−0.5×max(0.2)=0.4−0.1=0.3102: MMR=0.5×0.8−0.5×max(0.2)=0.4−0.1=0.3102:MMR=0.5×0.8−0.5×max(0.2)=0.4−0.1=0.3
  • 对103:MMR=0.5×0.7−0.5×max(0.3)=0.35−0.15=0.2 103: MMR=0.5×0.7−0.5×max(0.3)=0.35−0.15=0.2103:MMR=0.5×0.7−0.5×max(0.3)=0.35−0.15=0.2

选 102102102,输出顺序 [101, 102]

提示

迭代过程中,每次选择后,剩余文档的 MMRMMR MMR得分会因 maxmaxmax 项的变化而重新计算。

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 2, 93ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?