AI 把因果推反了:一个 70% 置信度的错误结论复盘
摘要
凌晨 2:00 异常引擎标记展示量下降 67%(100 次对比均值 301)、异常分 67。LLM 以 70% 置信度把原因归给 43 个否定关键词——而这其实是一次正确优化。7 月 15 日的人类复核暴露了因果倒置、置信度虚高等五个局限,改变了我们使用 AI 推理的方式。
快速答案
建立在相关性证据上的 AI 因果结论可能把因果彻底颠倒。给模型注入 campaign 级业务上下文(业务类型、受众、品牌词列表),允许人类对每条证据链标注同意/不同意,并按证据强度调整置信度——只有相关性支撑的 70% 因果假设,应该降级为相关性。
凌晨 2:00,异常检测自动标记了一个广告系列:展示量下降 67%——100 次对比历史均值 301 次——并生成了异常分 67 的告警事件。值班分析师点下“推理因果链”,LLM 照常开工:它分析了 30 条前置候选事件和状态快照历史,产出 8 条证据链,最后给出一个 70% 置信度的结论:前一天添加的 43 个否定关键词过度限制了该系列的展示范围。
这个结论,恰恰是反的。
真相:否定词是修复,不是 bug
这 43 个否定关键词——包括 “webox”、“login”、“food”、“catering” 这些与品牌相近的词——是一次刻意且正确的优化操作。它们砍掉的正是竞品错配到我们品牌词上的展示,而它们的上线,正是展示量下降的原因。AI 把一个正确的优化动作,判成了错误操作。
复盘发现的 5 个结构性局限
当晚的人类审查——发生在 7 月 15 日晚——暴露了五个结构性局限:
- 因果倒置。模型看到“否定词变多 + 展示变少”,就得出过度限制的结论。它没有业务语义判断这些否定词其实是自家品牌词。
- 缺少业务上下文。LLM 不知道这些字符串是自家品牌名,也不知道在 B2B 线索获客场景下,这些纯属不会有人转化的错配词。
- 置信度虚高。70% 的“因果假设”实际只是相关性。证据只能支撑“展示量与否定词数量同步变化”,支撑不了“否定词导致下降”。
- 真正的元凶在窗外。满配 RSA 推送可能才是主因,但它上线时间太近,不在前置候选窗口内,模型根本看不到。
- 无数据支撑的外部猜测。竞对投放、算法更新这类猜测被抛出时,背后没有任何数据。
我们改了什么
这个案例带来了三处改动。第一,prompt 现在会注入 campaign 级业务上下文:业务类型、目标受众、品牌词列表,让模型在推理之前先知道一个词意味着什么。第二,人类可以对每条证据链标注同意/不同意,标注随证据链一起保存。第三,置信度现在按证据强度动态调整——相关性不配顶着因果的置信度数字。
闭环的价值
这个案例正是我们相信“机器找信号、人做判断”闭环的原因:AI 发现异常→告警→推理,人类在错误结论进入客户报告之前纠正了它。现在我们把 4 条经验用于所有 AI 因果推理中:
- 不看证据是否支撑因果,就别相信任何因果标签。
- 先给模型业务语义——品牌词、受众、产品——再让它推理。
- 把“相关性支撑的高置信因果结论”当成系统缺陷,而非怪癖。
- AI 结论与任何外部动作之间,永远保留人类复核这一步。
机器找到信号,人守住真相。这种分工——证据链加人类复核闭环——正是我们 iport 归因增长引擎(attribution growth engine)的核心设计。
常见问题
LLM 为什么把原因归给否定关键词?
它看到“否定词变多 + 展示变少”,就推断出过度限制。没有业务语义,它无法知道这些词是自家品牌名、是一次正确优化。这就是典型的因果倒置失败:把正确的修复动作判成了 bug。
70% 的置信度有什么问题?
证据只能支撑“展示量与否定词数量同步变化”——这是相关性。给相关性贴上 70% 置信度的因果标签,夸大了确定性。置信度应按证据强度动态调整,相关性永远不该顶着因果的分数。
实践中如何保证 AI 因果推理不犯错?
在 AI 结论与任何外部动作之间保留人类复核步骤,在 prompt 中注入业务上下文——品牌词、受众、产品——并让复核者对每条证据链标注同意/不同意,把标注与证据链一起保存,供后续调优。