别再用老办法了:糖心视频为什么越刷越像?因为缓存管理在收敛(信息量有点大)

刷短视频久了会发现一件事:无论你最初点开的是哪个视频,滑几下之后页面里出现的内容越来越像——相同的风格、相似的配乐、甚至同一批创作者轮番上场。这个现象看似“算法偏好”,实则背后有一套工程上的“缓存+召回”逻辑在默默把池子收窄。下面把这件事拆开来讲,既有用户层面的直观感受,也有系统层面的机制和工程对策,给读者和工程实践者都留点可操作的东西。
一、现象:越刷越像,具体表现在哪儿?
- 同一类封面、相似开头套路反复出现。
- 几个热门创作者被反复推送,长尾创作者难以露头。
- 热门音乐、滤镜被无限放大,整个页面“调性”变统一。
这些不是偶然,背后是“系统收敛”——推荐系统和缓存策略共同作用的结果。
二、为什么会“收敛”?把复杂系统拆成几层看 推荐系统可以粗略分成:候选召回(candidate generation)、粗排(pre-rank)、精排(ranking)和后处理(rerank、去重、分发)。为了满足低延迟和高并发,工程上大量采用缓存机制:把热门候选、用户历史向量、召回结果等放入内存缓存或预计算索引。一旦这些缓存被“热起来”,系统会频繁返回相同的一小批候选,造成输出趋同。
具体机制包括:
1) 候选缓存与近邻索引的近似性(ANN)
- 常用库(如Faiss、HNSW)做近似最近邻检索以提速。ANN本身有近似误差和量化步骤,导致不同查询更容易命中同一类近邻点,结果相似度被放大。
- 为了减少线上延迟,常把召回结果缓存(top-K),短时间内反复使用,缓存未命中时才触发昂贵检索。
2) 热点缓存(top cache)与频率偏差
- 系统会对热门内容做一级缓存(或者在CDN里做静态缓存),热门视频更容易被直接拉出并展示,形成“有土壤则生长越多”的正反馈。
- 用户数千万的请求都会先扫这些热缓存,导致多用户看到的是同一批热门内容。
3) 长时序模型权重更新慢 + 在线探索不足
- 模型离线训练、在线更新频率低,个体偏好调整滞后。结合缓存优先策略,系统会优先利用已有高分候选,减少探索新内容的机会。
- 在强化学习/多臂老虎机(bandit)框架里,如果探索率低,算法很快陷入剥削(exploitation),导致推荐分布收敛到局部最优的那几类内容。
4) 会话层级缓存和重复上屏的策略
- 为了避免重复计算,系统会把一次会话或短时间内的候选列表缓存;如果不做足够去重与多样化后处理,用户会在同一会话看到高度重复的候选。
5) 去重/聚类策略不完善
- 为了提高点击率,平台经常允许同一创作者/同一主题多次进入推荐流。如果没有严格的去重或聚类策略,相似内容会轮番出现。
三、为什么工程上不得不缓存?有利也有弊 利:极大降低延迟、节省计算资源、提高吞吐量、保障用户体验。短视频场景对延迟极敏感,缓存是工程上的现实选择。 弊:短时间内放大热门、抑制长尾、加剧反馈回路,使得“越刷越像”成为系统自然倾向。
四、用户能做什么(实用小技巧)
- 多点“类外”行为:有目的地去看不同类型视频、点“感兴趣/不感兴趣”帮助模型获取信号。
- 用“发现”页或关键词搜索主动拉取新鲜内容,而不是只靠主流For You流。
- 取关/屏蔽常出现的账户或话题,以打破平台对你当前偏好的强耦合。
这些方法不是立竿见影,但能在个人层面慢慢扩大推荐多样性。
五、工程师可以采取的改进策略(较直接、可落地) 如果你在做推荐系统或参与工程设计,下面这些思路能在保障效率的前提下降低“收敛”效应:
1) 多级缓存与动态TTL
- 把缓存分层:全局热缓存 + 用户个性化短期缓存 + 会话级缓存。给不同层设置不同的TTL(time-to-live),对热门集合短TTL,减少长期固化。
- 对于趋势突变的内容(新视频/突发热点)采用更短的TTL和更频繁的刷新。
2) 探索机制的工程化(stochastic sampling)
- 在候选层或后处理时引入随机采样或ε-greedy策略:大部分时间用高分候选,小概率采样长尾内容。
- 使用贝叶斯优化或上下文化bandit保证在不牺牲整体指标下增加曝光探索。
3) 多样化和去重策略
- 在最终排序加入多样性惩罚项(topic/creator/feature level),或用最大边缘化算法保证主题覆盖。
- 对相似度过高的内容做聚类,只保留代表项。
4) 更聪明的近邻检索与冷启动处理
- 在ANN索引中使用多样性增强的检索策略,例如多表检索、带随机扰动的查询向量,避免总落到同一簇。
- 对新内容做快速通道(fast-lane),把新创作者/新主题短期内提升曝光以获取信号。
5) 在线学习与更快的模型更新
- 通过流式更新或小批次在线训练缩短模型更新周期,让模型及时反应最新用户信号。
- 使用回放缓冲区(replay buffer)保留近期样本,防止“灾难性遗忘”。
6) 指标化多样性与A/B实验
- 不只优化点击/观看时长,把多样性、覆盖率、创作者公平度列入在线实验指标,定期测试不同缓存策略的长期影响。
- 做长期价值(LTV)而非短期点击优化的实验设计。
六、举例说明(一个简单场景) 想象一个系统:用户A喜欢甜宠短剧。平台有一个全局热缓存包含最近一周最受欢迎的千条视频;用户个性化候选是全局热缓存与个性召回的交集。由于全局热缓存频繁命中,用户A看到的大部分内容来自那千条热视频。工程改动:把全局热缓存的命中率从80%降到60%,在每次候选合成时插入20%基于随机化的长尾采样,结合去重后处理,A的流量会变得多样一些,既保留吸引力也提高新创作者曝光。
七、对产品和运营的启发
- 不要把所有流量都压在“拿到高CTR的那堆内容”上,长期来看这会伤害平台活力。
- 运营可以策划“新秀扶持期”和“内容话题周”,把工程上难以直接调节的曝光通过产品活动带动,从缓存层面打破固化。
- 指标体系里应有长期多样性和长期用户留存相关的考核,避免短期优化把生态掏空。
结语:缓存不是魔鬼,但默认策略会让系统自我收敛成小圈子。想要多样性,需要在工程上把“探索”放进流水线(既要保效率,也要保活力)。个人用户可以通过主动行为发出不同信号,工程团队则需要在缓存策略、检索方法和排序目标上做出有针对性的改进。把缓存当工具而不是最终答案,才有希望让“糖心视频”继续甜而不腻。