跳到主要内容

反馈循环陷阱:为什么当用户产生适应性行为时 AI 功能会退化

· 阅读需 12 分钟
Tian Pan
Software Engineer

你的 AI 搜索功能在三个月前上线了。早期的评估结果非常亮眼——你的团队运行了 1,000 次查询,准确率达到了 83%。点赞率(Thumbs-up rates)很高,用户参与度也很好。

然而,在上线六周后,查询重构率(query reformulation rates)开始上升。会话放弃率(session abandonment)也随之增加。定性审查证实了这一点:用户提出的问题与上线前完全不同,而模型的服务质量已不如从前。

模型没有改变。底层数据也没有改变。产品质量下降是因为用户适应了它。

这就是反馈循环陷阱。它与大多数机器学习工程师习惯处理的外部概念漂移(concept drift)有着本质的不同——而且一旦开始,修复起来要困难得多。

什么是自诱导分布偏移 (Self-Induced Distribution Shift)

工程师们学习如何处理概念漂移:世界在变化(经济状况转变、人口结构演变、产品停产),因此模型的训练分布不再匹配生产环境。解决方法很简单——收集新的标注数据,重新训练。

自诱导分布偏移则不同。在这种情况下,变化源自产品内部。你的模型做出预测或呈现输出。用户看到这些输出并相应地调整其行为。这种经过调整的行为成为了新的输入分布。模型在适应前的数据上进行训练,而现在处理的是它在训练中从未见过的偏移分布。

反馈循环如下所示:

  1. 模型基于训练分布 D₀ 做出预测
  2. 用户看到模型输出并调整其行为
  3. 调整后的用户行为创造了新的输入分布 D₁
  4. 模型继续基于 D₀ 的假设运行,同时接收 D₁ 的输入
  5. 生产质量下降
  6. 团队基于生产数据(由用户适应行为塑造的 D₁)进行重新训练
  7. 模型现在放大了这种偏移行为,进一步强化了 D₁

第 7 步是团队最容易犯下致命错误的地方。盲目地在适应行为数据上进行重新训练并不能修复分布偏移——它反而固化了这种偏移,并使分布进一步偏离原始初衷。

按功能类型划分的典型失败模式

推荐系统是这一模式被记录最多的领域。对推荐系统中退化反馈循环的研究表明,优化准确率指标的系统比以探索为导向的算法更快地收敛到同质化的推荐分布。当用户面对越来越窄的推荐范围时,他们会相应地调整自己的期望和点击模式。他们调整后的点击信号成为了下一个模型版本的训练数据。久而久之,推荐的多样性便枯竭了——这并不是因为世界变得更加单一,而是因为系统训练了用户只期待那一小部分内容。

基于 LLM 的搜索正在大规模经历这一过程。目前全球约 60% 的搜索在结束时没有任何外部点击。当 AI 摘要出现时,这一数字升至 83%。这是一种行为适应:用户发现 AI 生成的综述已经能够满足许多查询,而无需他们去评估并点击链接。搜索引擎传统上用于评估质量的信号(如 CTR、页面停留时间)现在衡量的是一种与以往不同的行为。

自动补全和写作助手以不同的形式展现了这一模式。用户会调整自己的写作风格,以匹配模型擅长生成的风格。他们写更短、结构更清晰的句子,因为模型处理这些句子的效果更好。他们停止撰写某些类型的内容,因为模型在这些方面的输出始终很差,因此他们学会了不再询问。模型现在看到的输入多样性降低了——棘手的案例从生产分布中消失了,因为用户自己过滤掉了它们。

内容审核则在一个对抗的方向上运行这个循环。针对已知违规模式的检测准确率达到了 90% 以上;而剩余的违规行为来自于那些为了规避检测而调整了内容的用户,从而创造了一个持续的适应周期:每一次检测技术的改进都会驱动相应的规避适应行为。

为什么古德哈特定律放大了这个问题

反馈循环陷阱本身就很糟糕。而古德哈特定律 (Goodhart's Law) 让情况变得更糟。

当你针对代理指标 (proxy metric)——参与度、点击率、历史评估集上的相关性得分——进行优化时,用户和系统会共同适应,以共同优化该指标。代理指标不再衡量你真正关心的东西,但你仍在继续优化它,自诱导分布偏移也随之加速。

一个优化参与度的推荐系统会引导用户接触那些能产生参与反应的内容——愤怒、焦虑、新鲜感——而不是真正服务于用户的内容。系统在被赋予的指标上变得越来越强。指标与目标背道而驰。用户根据系统实际奖励的行为来调整自己的行为。随着每一个训练周期的进行,指标与预期结果之间的差距都会拉大。

实际的意义在于,你无法通过对当前指标加大优化力度来修复自诱导分布偏移。修复方案需要改变你衡量的内容以及你训练的方式,而不是改进对现有目标的优化。

能够真正检测到这一点的监控信号

在历史评估集上衡量的标准准确率指标无法发现自诱导漂移。评估集反映的是适应前的分布。模型在该分布上表现良好,但生产环境的分布已经发生了偏移。

你需要的信号是行为层面的,而非基于准确率的。

编辑率漂移是生成式 AI 功能最清晰的信号。当用户编辑、改写或重新生成 AI 输出的频率与发布时的基准线有显著差异时,说明他们相对于模型产出内容的预期已经发生了转变。在评估准确率稳定的情况下,编辑率上升是分布偏移的诊断信号。

查询模式偏移衡量输入查询的分布随时间的变化。具体来说:逐月跟踪输入查询的前 k 个语义聚类。如果聚类分布正在发生偏移——某些查询类型消失,另一些则在增长——说明用户正在调整他们的提问方式。这在质量下降之前就可以观察到,因为行为转变先于质量信号出现。

重试频率和重新表述率捕捉了用户对特定失败模式的沮丧感:模型给出了一个输出,用户再次尝试。重试率的增加,或者针对同一潜在意图进行多次重新表述的会话比例上升,都表明模型未能很好地服务于当前的分布。

检索重合度衰减适用于搜索和基于 RAG 的系统。衡量当前周检索到的文档中有多少比例出现在基准期的检索结果中。持续下降表明生产环境的查询分布已偏离了用于构建和调整检索系统的查询。

会话深度分布是一个反映变化较弱的信号。如果深入对话(多轮、多次交互)的会话比例发生变化(无论是正面还是负面),说明用户行为已经改变。并非所有变化都是坏事,但方向性的偏移值得调查。

这些指标都不需要基准真相标签。它们衡量的是行为模式,这非常合适,因为失效模式本身就是行为层面的。

三个级别的漂移严重程度

自诱导漂移不是非黑即白的。它存在于一个光谱上,决定了相应的应对措施。

轻度适应(大多数功能的第 1–6 周):用户已经找到了使用你功能的最有效方法。查询长度可能变短了;表述方式可能已经标准化。除非你的评估集是基于使用前的数据构建的,并且现在正在衡量根本没人发送的查询,否则这是良性的。对策:更新你的评估集以反映真实的生产流量。

中度适应(第 6–20 周):用户改变了他们要求的内容,而不只是提问的方式。某些请求类型已经从你的分布中消失——用户已经放弃了那些用例。其他用例则不成比例地增长。对策:审计哪些用例现在服务不足,决定是直接解决它们(针对性数据的微调),还是接受缩小的范围。

严重适应(第 6 个月以上):你的模型所服务的分布与其训练时的分布有实质性的不同。在当前的生产数据上重新训练会放大这种已适应的分布,从而强化排除项并夸大当前的模式。对策:在重新训练前需要明确的干预来打破这种循环。

打破循环:在不放大偏差的情况下进行重训

当面临自诱导漂移问题时,那种幼稚的重训方法——收集生产数据、重新训练——是完全错误的。以下是应该采取的措施。

保留一份未接触的意图分布。 在发布之前,收集代表你功能应涵盖的全范围用户意图的数据。不要随着用户的适应而缩减这个数据集。重新训练时,将当前生产数据与保留的意图数据按固定比例混合。这可以防止模型对用户当前发送的内容过度索引。

监控训练分布,而不只是生产分布。 当你为重训组装训练数据时,对照你保留的意图集检查该数据的分布。如果某些意图聚类在训练数据中的代表性低于其目标覆盖范围,请在训练开始前对其进行上采样或标记出这种不平衡。

为因果信号埋点,而不只是结果信号。 根本问题是:模型失败是因为用户问了一个难题,还是用户因为已经了解了模型能处理什么而调整了他们的提问?捕捉用户原始意图与最终查询对比的会话级数据可以帮助回答这个问题。

测试多样性崩溃。 在部署基于适应性行为数据训练的模型之前,显式地衡量推荐或检索的多样性指标。如果多样性与之前的模型版本相比有所下降,在发布前搞清楚原因。

应用自适应重训计划。 关于重训频率的研究表明,由检测到的分布偏移触发的自适应重训(而非按日历触发),其效果明显优于周期性重训。其机制在于:周期性重训往往在偏移可被检测到之前就执行了,而在偏移发生时又无法足够快地做出响应。

组织失效模式

大多数团队只有在资深团队成员在定性评估中说出“模型感觉比以前差了”之类的话时,才会发现自己陷入了反馈循环陷阱。到那时,调整后的分布已经在一两个再训练周期中被使用,偏移已经根深蒂固。

这一问题的组织版本是,不同的团队掌握着不同的信号。数据科学团队监控模型指标。产品团队监控参与度。两者都没有监控用户行为和模型输出随时间变化的联合分布。没有任何警报会提示“用户正在以一种会在 90 天内降低模型质量的方式进行调整”。

构建监控基础设施需要跨团队共同拥有一个行为仪表板,该仪表板至少跟踪:编辑率、重试率、查询集群漂移(query cluster drift)和检索重叠(retrieval overlap)——每周更新并与发布周的基准进行对比。这不是一个模型性能仪表板。这是一个用户行为仪表板,作为分布偏移的预警系统。

这对你的功能生命周期意味着什么

如果你发布的一个 AI 功能已经上线超过两个月,那么值得进行审计:

  • 你的评估集是提取自发布前的数据,还是来自最近的生产流量?如果是发布前的,那么你的评估衡量的是错误的分布。
  • 在该功能的生命周期内,编辑率的趋势是怎样的?编辑率上升而评估指标保持稳定,是自诱导漂移(self-induced drift)的主要特征。
  • 当你进行再训练时,来自最近生产环境的训练数据与多样化的基准数据集各占多大比例?
  • 你是否针对不同意图集群的训练数据设定了明确的覆盖目标?

自诱导分布偏移不是一种你可以观察到然后做出反应性修复的故障。当性能退化在标准指标中变得可见时,适应后的行为已经编码到了训练周期中。唯一有效的对策是从发布之日起持续监控行为信号,并在问题出现之前在再训练流水线中维持分布控制。

反馈循环一直在运行。问题在于你是否拥有观测它的手段。

References:Let's stay in touch and Follow me for more thoughts and updates