p0g-diversity-rewrite-checklist
多元推荐改写清单。当团队想重写推荐系统时,最容易只在原目标函数上加一点随机。 这个 Skill 帮你避免"看起来更多元,底层仍然单一"。
What it does
多元推荐改写清单
一句话定位
检查推荐系统是真正多元,还是只是"加了点随机"。六项检查避免假多元。
何时触发
- 计划改写推荐系统
- 觉得当前推荐越来越窄
- 用户反馈"总是看到类似内容"
- 需要评估推荐系统的多元性
输入
当前推荐系统的目标和方案描述。
示例输入:
产品: 知识内容平台
目标: "把停留时长再做高一点"
当前方案: 增加相似内容推荐,加一点随机探索
输出
六项检查结果 + 改写建议 + 目标函数评估。
六项检查
Check 1: 目标函数是否包含多样性或探索目标?
检测方法:
- 打开推荐系统的目标函数,看看除了停留时长/点击率/转化率,还有什么
- 是否有明确的多样性指标(如内容覆盖度、主题分散度、新内容曝光率)?
- 这些指标在优化目标中的权重是多少?
输出格式:
目标函数多样性: [yes/no/partial]
多样性指标: ["列表"]
权重: "多样性指标在总目标中的权重"
风险: "如果没有,会发生什么"
Check 2: 用户能不能主动切换"更开阔"而不是"更精准"?
检测方法:
- 产品中是否有明确的"探索模式"或"开阔模式"?
- 用户是否能主动选择"我想看不一样的东西"?
- 还是只能被动接受系统给的推荐?
输出格式:
主动切换入口: [yes/no]
入口位置: "在哪里"
默认模式: "精准/开阔/混合"
用户控制感: [high/medium/low]
Check 3: 系统有没有低冲突的异质内容入口?
检测方法:
- 推荐的"异质内容"是低冲突的(相关但不同视角),还是高冲突的(对立、争议)?
- 是否有"软过渡"设计,让用户自然接触新主题?
- 还是只是在熔炉里塞对立内容?
输出格式:
异质内容类型: [low_conflict/high_conflict/mixed]
过渡设计: [yes/no]
接触方式: "用户如何接触到异质内容"
Check 4: 推荐有没有连接现实世界?
检测方法:
- 推荐内容是否能引导用户做出现实行动?
- 还是只是让用户在屏幕里花更多时间?
- 是否有"线上到线下"的连接设计?
输出格式:
现实连接: [yes/no/partial]
行动引导: "推荐是否能引导现实行动"
线下连接: [yes/no]
Check 5: 团队有没有衡量"新的可能性被打开"?
检测方法:
- 团队的评估指标是不是只有点击率、停留时长?
- 是否有指标衡量用户是否接触了新主题、新领域?
- 是否有指标衡量用户的"视野是否变宽"?
输出格式:
多元性指标: [yes/no]
指标列表: ["具体指标"]
评估频率: "多久评估一次"
Check 6: 用户能不能把自己从默认推荐轨迹里拉出来?
检测方法:
- 用户是否能够"重置"或"跳出"当前推荐轨迹?
- 是否有机制让用户主动表达"我不想看这个"?
- 系统是否会记住用户的"探索"偏好?
输出格式:
跳出机制: [yes/no]
跳出方式: "如何跳出"
用户主动权: [high/medium/low]
系统记忆: "是否记住探索偏好"
综合输出格式
diversity_rewrite_assessment:
input:
product: "产品名称"
current_goal: "当前目标"
current_approach: "当前方案"
checks:
check1_objective:
has_diversity_goal: "yes/no"
diversity_metrics: ["指标"]
weight: "权重"
risk: "风险"
check2_user_control:
has_exploration_mode: "yes/no"
entry_point: "入口"
default_mode: "默认模式"
user_control: "high/medium/low"
check3_heterogeneous_content:
conflict_level: "low_conflict/high_conflict/mixed"
has_transition: "yes/no"
exposure_method: "接触方式"
check4_real_world:
has_connection: "yes/no"
action_guidance: "行动引导"
offline_link: "yes/no"
check5_measurement:
has_diversity_metrics: "yes/no"
metrics: ["指标"]
review_frequency: "评估频率"
check6_user_escape:
has_escape: "yes/no"
escape_method: "跳出方式"
user_agency: "high/medium/low"
system_memory: "yes/no"
overall_assessment:
is_truly_diverse: "yes/no/partial"
fake_diversity_risk: "high/medium/low"
key_gaps: ["关键缺口"]
rewrite_recommendation:
objective_changes: "目标函数改写建议"
ui_changes: "界面改进建议"
metric_changes: "评估指标改进建议"
priority: "P0/P1/P2"
快速使用法
- 填写产品、目标、当前方案
- 逐项过六个检查
- 如果超过 3 项不通过,推荐系统需要重写而不是优化
常见误判
- 加一点随机 = 多元:随机探索不等于系统性多样性
- 内容更杂 = 更自由:用户可能只是被塞了更多不相关的东西
- 点击更多 = 更好:可能只是用户在翻找自己真正想看的
一句判断
多元推荐不是精度的对立面,而是对单一目标精度的修正。
核心概念
概念一:单一推荐的本质——围绕一个目标函数运转
大多数推荐系统之所以有效,是因为目标清晰:点击率、停留时长、互动频率、转化率、复购率、续费率。但一旦目标函数过于单一,系统会越来越偏爱最能服务那一目标的内容和行为,持续放大更情绪化、更容易比较模仿、更容易低成本理解、更接近用户已有偏好的东西。
结果:系统不是更完整地理解了你,而是选了你的一个维度不断放大。看起来精准,实际危险。
人不是一种固定偏好的容器。同一个人在不同时间、不同情绪、不同关系压力下,可能需要完全不同的东西。
概念二:加一点随机 ≠ 多元推荐
| 策略 | 本质 | 用户体验 |
|---|---|---|
| 随机推荐 | 无策略地增加噪音 | 体验变差 |
| 单一优化 | 只问"什么留住用户" | 把人越推越窄 |
| 多元推荐 | 有策略地保留探索空间 | 用户维度更丰富 |
多元推荐真正要重写的不是推荐策略,而是产品目标函数本身——你到底在最大化什么?
概念三:五种值得尝试的多元推荐方向
| 方向 | 核心理念 | 典型设计 |
|---|---|---|
| 探索推荐 | 让用户主动切换"更开阔"模式 | "今天不想看精准的"入口 |
| 上下文推荐 | 结合时间/空间/状态判断当前需要 | 深夜不推"五点起床改变人生" |
| 反信息茧房推荐 | 低冲突异质内容入口 | "暂停不等于落后"主题文章 |
| 连接现实推荐 | 推荐不只留在屏幕内 | 周末手工市集、慢跑社区 |
| 可能性推荐 | 帮助用户遇见尚未定义的自己 | "你可能不只想变得高效" |
概念四:评估指标必须同步升级
如果只看点击率和停留时长,多元推荐永远"不如"单一推荐。必须引入三类指标:
- 准确性指标:CTR、收藏率、完整消费率
- 多样性指标:覆盖率、新鲜度、惊喜度
- 用户成长指标:兴趣扩展、活跃度提升、留存改善
评审时不能只看见更多点击,还要看见用户是否越来越窄。
概念五:控制权交还用户
一旦推荐足够强大,产品不能再只问"我能更准吗",还要问"用户还能从系统的默认路径里出来吗"。
用户控制设计清单:
- 用户能否表达"不感兴趣"
- 用户能否主动选择推荐类型
- 用户能否看到"为什么推荐这个"的解释
- 用户能否关闭/打开某类推荐
所谓"懂你",最后很可能只是"困住你"——除非用户能主动拉自己出来。
分步执行
Step 1:现状诊断——当前推荐系统的问题定位
输入:当前推荐系统描述 + 用户反馈 + 业务目标
处理:
- 明确当前推荐系统的目标函数(优化的是什么指标?)
- 分析用户反馈中的关键词("总是类似的""没新意""越推越窄")
- 评估当前推荐的多样性现状(覆盖率、新鲜度、惊喜度)
- 判断当前系统属于哪种类型:纯协同过滤 / 内容推荐 / 混合推荐
输出:现状诊断报告(附问题定位和改进机会)
Step 2:目标函数重写——从单一指标到多元目标
输入:Step 1 产出的现状诊断报告
处理:
- 承认当前目标函数过于狭窄
- 在目标函数中加入多样性/探索目标
- 定义新的评估指标:覆盖率、新鲜度、惊喜度、兴趣扩展度
- 确定多元推荐的混合比例建议(如:70% 精准 + 20% 探索 + 10% 反向)
输出:重写后的目标函数 + 多元推荐混合比例
Step 3:推荐类型设计——为每种方向设计具体策略
输入:Step 2 产出的重写目标函数
处理:
- 设计探索推荐入口:"今天想看点不一样的"按钮
- 设计上下文推荐逻辑:根据时间/状态/节奏调整推荐
- 设计反信息茧房推荐:低冲突异质内容入口
- 设计连接现实推荐:推荐线下活动、社区、体验
- 设计可能性推荐:不只预测过去,轻轻帮助遇见可能的未来
输出:多元推荐策略设计文档
Step 4:用户控制设计——交还推荐控制权
输入:Step 3 产出的推荐策略设计
处理:
- 设计"不感兴趣"反馈机制
- 设计推荐类型切换入口(精准模式 / 探索模式 / 上下文模式)
- 设计推荐解释("因为你看过的 X,所以推荐 Y")
- 设计推荐开关(用户可以关闭某类推荐)
输出:用户控制设计方案
Step 5:六项检查执行——用清单验证改写是否到位
输入:Step 3-4 的全部产出
处理:
- 逐项执行 Check 1-6(目标函数、用户控制、异质内容、现实连接、新可能性衡量、跳出机制)
- 统计通过/不通过数量
- 如果超过 3 项不通过,标记为"需要重写而非优化"
输出:六项检查结果 + 综合评估 + 改写建议
Step 6:分阶段上线——从小流量验证到全量
输入:Step 3-5 的全部产出
处理:
- Phase 1:小流量验证(5-10% 用户),只上线探索推荐入口
- Phase 2:逐步放量(30-50% 用户),上线上下文推荐和反信息茧房
- Phase 3:全量上线,监控三类指标(准确性 + 多样性 + 用户成长)
输出:分阶段上线计划 + 各阶段监控指标
示例 1:音乐平台从"猜你喜欢"到"帮你发现"
场景描述:在线音乐平台基于协同过滤推荐,用户反馈"总是推荐类似的歌,想听点新的"。
Step 1 现状诊断:
- 目标函数:优化播放完成率和次日留存
- 用户反馈:"总是类似的歌""听腻了""想找新歌但不知道搜什么"
- 多样性现状:推荐中 85% 是用户已听过的同类风格,新鲜度极低
Step 2 目标函数重写:
- 原目标:最大化播放完成率
- 新目标:最大化播放完成率 × 0.6 + 探索成功率 × 0.25 + 兴趣扩展度 × 0.15
- 混合比例:70% 精准推荐 + 20% 探索推荐 + 10% 反向推荐
Step 3 推荐类型设计:
- 精准推荐(70%):基于历史收听的协同过滤
- 探索推荐(20%):"今日新发现"歌单——与你喜欢的相似但不同风格
- 反向推荐(10%):"换个口味"——与你常听的形成对比
- 上下文推荐:深夜推舒缓、通勤推节奏、运动推能量
- 连接现实推荐:本地演出信息、音乐人见面会
Step 4 用户控制设计:
- "不想听这类"按钮
- 推荐模式切换:精准模式 / 探索模式 / 随机模式
- 推荐解释:"因为你喜欢 [歌手A],推荐了风格相近的 [歌手B]"
六项检查结果:
| 检查项 | 结果 | 说明 |
|---|---|---|
| Check 1: 目标函数多样性 | ✅ | 新目标已包含探索和兴趣扩展 |
| Check 2: 用户主动切换 | ✅ | 有推荐模式切换入口 |
| Check 3: 低冲突异质内容 | ✅ | "换个口味"是风格渐变而非对立 |
| Check 4: 现实世界连接 | ✅ | 本地演出和社区推荐 |
| Check 5: 新可能性衡量 | ✅ | 兴趣扩展度指标已定义 |
| Check 6: 跳出默认轨迹 | ✅ | "不想听这类"+模式切换 |
结论:从"猜你喜欢"到"帮你发现",不是算法升级,而是推荐哲学的重写。六项全部通过,可进入分阶段上线。
示例 2:知识内容产品从"留住你"到"拓宽你"
场景描述:知识内容平台想提升停留时长,但团队担心"越推越窄"。
Step 1 现状诊断:
- 目标函数:最大化停留时长
- 用户反馈:"总是看类似的""想看点不一样的但找不到"
- 多样性现状:用户最近两周反复看"自律""效率""减脂"内容,系统持续强化
Step 2 目标函数重写:
- 原目标:最大化停留时长
- 新目标:最大化停留时长 × 0.5 + 内容多样性 × 0.3 + 现实连接率 × 0.2
Step 3 推荐类型设计:
- 精准推荐(60%):效率/自律类内容
- 探索推荐(25%):"今天不卷了"入口——城市散步路线、手工陶瓷短视频、慢生活访谈
- 反信息茧房(15%):"暂停不等于落后"主题文章、普通人与不完美生活和解的故事
- 上下文推荐:深夜不推"五点起床改变人生",推恢复、放松、陪伴类内容
- 连接现实推荐:周末手工市集、独立书店、新手烹饪课、本地慢跑社区
- 可能性推荐:不定义用户为"自律人",而是轻轻假设"你可能不只是想变高效"
Step 4 用户控制设计:
- "换个方向"按钮
- 推荐类型标签(效率 / 生活 / 探索 / 连接现实)
- 推荐解释:"因为你最近常看效率类内容,推荐了不同视角的慢生活内容"
- 推荐开关:可以关闭"效率类"推荐
六项检查结果:
| 检查项 | 结果 | 说明 |
|---|---|---|
| Check 1: 目标函数多样性 | ✅ | 新目标已包含多样性和现实连接 |
| Check 2: 用户主动切换 | ✅ | "换个方向"入口 |
| Check 3: 低冲突异质内容 | ✅ | 慢生活≠反效率,是不同视角 |
| Check 4: 现实世界连接 | ✅ | 手工市集、慢跑社区等线下推荐 |
| Check 5: 新可能性衡量 | ✅ | 内容多样性指标已定义 |
| Check 6: 跳出默认轨迹 | ✅ | 推荐开关+类型标签 |
结论:推荐系统不该只竞争"谁更懂你",还该竞争"谁帮你回到更宽阔的现实"。用户点击的不等于完整的自己——可能只是某个压力下暂时抓住的一个片段。
Capabilities
Install
Quality
deterministic score 0.48 from registry signals: · indexed on github topic:agent-skills · 56 github stars · SKILL.md body (7,176 chars)