多路召回
P1热门召回、关注召回、社区订阅召回、标签兴趣召回、协同过滤召回、向量语义召回、新内容探索召回。
实现要点:每路召回取 Top N(如 200),再进入统一排序。多路并行的意义在于「不把鸡蛋放在一个算法篮子里」。
This page is not translated yet
The interface, navigation and community content are bilingual. The long-form body of this page is still in Chinese. The translation work is tracked as task I18N-10.
Module 10 · V1.2 · Recommendation & Feed
从「用户找内容」到「内容找用户」
构建多路召回 + 统一排序 + 去重打散 + 冷启动兜底的推荐管线,在不制造信息茧房的前提下提升内容分发效率。
当社区内容量超过用户手动筛选能力时,分发效率决定了整体活跃度。但推荐必须克制,否则会摧毁社区的讨论氛围。
共 7 个功能点,每个功能点给出实现要点,可直接作为开发任务的描述。
热门召回、关注召回、社区订阅召回、标签兴趣召回、协同过滤召回、向量语义召回、新内容探索召回。
实现要点:每路召回取 Top N(如 200),再进入统一排序。多路并行的意义在于「不把鸡蛋放在一个算法篮子里」。
基于特征(内容质量、用户兴趣匹配度、时效性、作者亲密度、多样性)打分排序。
实现要点:冷启动阶段可用加权线性模型(可解释、易调试);数据积累后再引入 GBDT/深度模型。
同一社区/同一作者/同一话题在首屏占比受限;连续同类内容做打散。
实现要点:排序后做 MMR 式重排,对高分但同质的内容降权。这是对抗信息茧房的关键手段。
信息流中固定保留一定比例的位置给「低曝光优质内容」与「新社区内容」。
实现要点:例如第 6 位固定为探索位,从冷门但高分的内容池中抽取。这是保护长尾创作者的制度性设计。
「不感兴趣」按钮与隐式负反馈(快速划过、跳过),用于即时调整推荐。
实现要点:显式负反馈立即生效并写入用户兴趣画像;可撤销(「已减少此类内容 · 撤销」)。
新用户按兴趣标签选择 + 平台热门兜底;新内容按社区内热度与作者信任度给初始曝光。
实现要点:新用户首屏混合热门内容与兴趣内容,随行为数据积累逐步增加个性化权重。
信息流提供「为什么推荐这条」入口,并允许用户调整各类召回源权重。
实现要点:提供「推荐设置」面板:可调节热门/关注/兴趣/探索的偏好,让用户拥有控制感。
2 条关键交互的分步流程,按用户体验顺序描述,可直接作为前端开发与可用性测试脚本。
首页顶部 Tab:推荐 / 关注 / 热门 / 最新,切换时保留滚动位置。
推荐流每 20 条插入一次刷新提示「已为你更新」,避免自动插入导致跳动。
下拉刷新重新拉取一批,无限滚动到底部自动加载下一页。
卡片右上角「⋯」菜单提供「不感兴趣 / 少看此类 / 屏蔽该社区」。
操作后立即移除卡片并显示撤销 Toast(5 秒内可撤销)。
累计反馈写入画像,后续推荐权重调整。
6 条硬性约束。这些规则应当在服务层强校验,而非仅在前端提示。
首屏同一社区内容占比 ≤ 30%,同一作者 ≤ 20%。
探索位占比固定 ≥ 10%,且不可被商业内容占用。
负反馈后的内容 30 天内不再出现在该用户推荐流中。
被屏蔽用户与社区的推荐内容直接过滤。
推荐流不展示广告以外的付费推广;如引入推广必须显式标记。
用户可一键关闭个性化推荐,降级为纯热度排序。
本模块涉及的 6 张表。完整字段、索引与说明见「数据表设计」页。
本模块的设计参照了哪些产品,具体参照了什么。
掘金
推荐流成熟但对长尾内容曝光不足,需以探索位弥补。
首页混合订阅与推荐,Home/Best 切换让用户掌握主导权。
知乎
强算法导致娱乐化,是「过度推荐」的反面教材。
Reddit Rising
用「票速」发现早期优质内容,是极佳的召回源。
本模块交付时应当达到的量化目标。未达标即视为该模块未完成。
竞品踩过的坑,以及本模块在实现时最容易犯的错误。
纯热度推荐会导致马太效应,新内容永远没有曝光机会。
没有探索位会把平台内容同质化,长期损害创作者生态。
推荐系统若不可解释,用户会感到被操纵,信任度下降。
冷启动若直接上复杂模型,缺乏训练数据会导致推荐质量低于热门排序。