跳转至

Where Root Cause Analysis Fails: A Retrieval-Reranking Decomposition

会议: NeurIPS 2026 — Evaluations & Datasets Track
arXiv: 2609.36686
代码: https://github.com/cruiseresearchgroup/DecompRCA
领域: 因果推理
关键词: 根因分析、检索覆盖率、条件重排序、故障传播、领域知识

一句话总结

本文把根因分析的排名准确率拆成“根因是否进入候选集”和“进入后能否排到前面”,审计四个数据集的六个测试套件,并用多信号检索与单次 LLM 重排序说明两类失败需要不同修复,而不是只增加因果图或推理能力。

研究背景与动机

根因分析(root cause analysis,RCA)要从大量监控指标中找出异常源头,而非仅找出变化最大的指标。BARO 等统计方法按偏离正常状态的幅度排序,PC/FCI 配合 CIRCA、PageRank 或随机游走则依赖学习出的结构。微服务中的直接故障往往使源头指标非常显眼;在存在传播、反馈和放大的系统中,下游症状却可能比源头更强。与此同时,最早被检测出的异常也不一定最早发生:弱源头信号可能延迟越过检测阈值。

现有 top@k 只检查最终前 k 名有没有根因,把“根因完全没被选进可处理的候选集”和“根因已在候选集中但排序错误”压成同一个失败。前者应改进监控覆盖、窗口切分或检索信号,后者才需要更好的证据整合与排序。若只在源头非常显眼的微服务数据上验证,方法容易把近乎饱和的检索覆盖率误当成跨系统都成立的条件。

核心 idea:把候选覆盖率作为排序的硬上限,分别测量检索与条件重排序,再通过真实候选池和强制包含根因的诊断候选池定位瓶颈。

方法详解

整体框架

论文的主要贡献是评测分解与经验审计,不是声称提供一个完整上线系统。其验证管线输入正常参考窗口、故障窗口以及给定的检测时间,先用幅度、起始时间和离散状态变化选择有限候选,再把每个候选的结构化证据交给预训练 LLM,一次调用产生重排序列表。可选领域知识(domain knowledge,DK)描述系统角色与传播关系,不提供本次故障标签。

需要区分两个层次:对既有排名方法截取前 K 名,可以事后定义检索覆盖率;这只是统一的诊断视角,不能证明该方法内部真的存在一个独立检索模块。本文自己的验证管线则确实先生成候选、再重排,且重排器不能新增候选。真实根因只用于计算指标,以及明确标记的受控候选池实验,不流入正常推理链路。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["正常参考 + 故障窗口<br/>给定检测时间"] --> B["覆盖率分解"]
    B --> C["多信号检索"]
    C --> D["证据驱动重排序"]
    K["可选系统文档<br/>无场景故障标签"] -.-> D
    D --> O["候选排名"]
    O --> E["受控瓶颈诊断"]
    G["真实根因<br/>仅评测使用"] -.-> E
    N["正常参考拟合统计量<br/>不训练故障分类器"] -.-> C

图中前三个设计形成评测解释与推理流程,最后一个是离线诊断,不是部署时额外获知根因的阶段。正常参考用于估计统计量;这里没有用故障标签监督训练的新模型。

关键设计

1. 覆盖率分解:让相同总准确率暴露不同瓶颈

设每个场景的候选集合为 \(\mathcal C\),允许有多个正确根因的集合为 \(\mathcal G\)。检索命中表示两者交集非空,而不是所有根因都被找齐。Retrieval@K 是命中场景占比;Rerank@k 则只在检索命中的场景上,计算最终前 k 名含任意正确根因的比例。只要最终排名不超出候选集,并采用一致的真值映射与命中规则,就有:

\[ \mathrm{top@}k=\mathrm{Retrieval@}K\times\mathrm{Rerank@}k. \]

失败要按同一总场景分母解释:检索失败为 \(1-\mathrm{Retrieval@}K\),已检索但排名失败为 \(\mathrm{Retrieval@}K-\mathrm{top@}k\)。第二项是绝对失败占比,不是条件失败率 \(1-\mathrm{Rerank@}k\);两项之和才是总错误率。若没有检索命中,条件重排序率没有可估计的分母,不能随意报告一个有效条件准确率。

对输出全量排名的旧方法,把前 K 名视为候选集后,Retrieval@K 等于它的 top@K,条件重排序率可由 top@k 除以 top@K 得到。若取 K 为全部可观测指标,覆盖率通常饱和,但不可观测或预处理删除的根因仍可能缺失。不同 K 的分析分别回答“在有限诊断预算内能否看到根因”和“全量指标排名是否有效”,不能混为同一个实验条件。

对于图方法,缺失节点、候选选择路径或结构错误都可能产生覆盖问题,但文中的“缺一条边就排除根因”只是特定路径选择机制的解释,不是所有图算法的普遍定理。附录 C 还说明 CIRCA 会把未评分传感器追加到列表末尾,而 PageRank/RandomWalk 只排名图内节点;因此“没进入图”和“没进入最终列表”也应区别处理。

2. 多信号检索:在固定总预算下覆盖不同异常形态

幅度信号用正常窗口拟合 RobustScaler,取故障窗口的最大稳健标准化偏离。附录 A 的检索幅度定义为有符号最大值;附录 C 则明确 CPS 的 BARO 基线使用最大绝对值,RCAEval 保留原实现的有符号最大值。这些实现差别意味着检索幅度规则与不同数据域的 BARO 行不能无条件视为同一算法。

起始时间信号寻找故障窗口内首次越过绝对标准分数 1.5 的行,按更早出现排序;均值和标准差来自正常窗口。正常方差为零时,改用偏离正常均值超过 \(10^{-4}\) 的首次位置;没有越阈值的指标不参加这一信号的选择。这捕捉的是可检测异常的首次出现,并非拥有真实物理故障起点的 oracle。

离散状态变化信号先判断某指标在任一窗口是否只有不超过 5 个不同取值,再要求故障窗口众数与正常窗口众数不同,按首次偏离正常众数超过 \(10^{-2}\) 的位置排序。它补足的是离散状态证据,而不是假设所有执行器变化都等于根因;正常运行中的状态切换同样可能干扰它。

总预算 K 在活跃信号之间均分,余数优先给排在前面的信号。三个信号在 K=15 时各取 5 个,K=10 时取 4/3/3,K=5 时取 2/2/1;按幅度、起始时间、状态变化的顺序合并并去重,实际候选数可以小于 K。增加信号会替换原有幅度候选而不是免费扩大池,所以覆盖率不保证单调上升:WADI 在 K=15 没有最终增益,HVAC 的三信号配置甚至略低于两信号配置。

3. 证据驱动重排序:比较源头与症状,而非只融合三个分数

每个候选被整理成一行,包含指标名、幅度分数、首次异常相对检测时间的偏移、正常与故障窗口均值,以及绝对和相对变化。LLM 一次读取整份列表,输出只含已有候选的排名。证据不标注“由哪个检索器选中”,因此排序依赖候选的多统计量和语义,而不是直接照搬选中标签。

无 DK 版本只用通用 RCA 角色提示;有 DK 版本额外读系统文档,理解组件作用、命名约定、传播路径和一般运行先验。作者称文档依据公开说明撰写、反复修订描述质量而不按测试故障结果修订,未写入场景标签;不过文档可以含人工先验,无标签并不等于无人工知识,也不代表所有外部知识都由数据无监督学习而来。

候选实际按各信号块的检索顺序呈现,而提示文字仍称其“按偏离程度排序”,附录 A 明确了这一不一致。模型可能受位置或措辞影响。输出解析时排除池外名称,遗漏项按原检索顺序补齐;主要端到端实验的不可解析响应回退为检索顺序。这样保持候选边界,但不意味着模型已消除位置偏差。

4. 受控瓶颈诊断:分开测证据价值与候选覆盖

同候选控制实验让单一信号和等权 Borda 融合重排 LLM 已看到的列表,以检查收益是否只是候选更好。Borda 把三个信号内的一基排名相加,无法评分的项记为该信号最差排名再加一。它是固定规则对照,不是一个训练过的融合器。

另一组实验在检索漏掉根因时,为真值预留位置、替换最后一个候选,并将插入位置设为种子随机位置,使所有方法拿到包含根因的同一小池;全候选控制则提供全部传感器。前者借用了评测标签,只能隔离“如果覆盖问题已解决,谁更会排序”,不能作为实际端到端性能。WADI/SWaT 中各有一个根因不在评测传感器集的场景,不能强制插入,因此受控实验的分母改为 13/35,主实验仍为 14/36。

这种干预还改变证据组成与输入位置。附录 G 的随机非根因池压力测试出现基线胜过 LLM 的情况,包括 SWaT 的 CIRCA-FCI 胜过统计基线;因此不能把“受控检索池上的优势”升级为任意候选池上必胜,或把主设置中的图方法劣势推广到所有结构方法。

一个完整示例

以下为解释指标的抽象示例,不是论文的实测故障案例。假设 100 个场景中,固定预算候选池在 64 个场景包含至少一个正确根因,重排器在其中 32 个场景把任意正确根因排到第一名。

此时 Retrieval@K=0.64,Rerank@1=0.50,端到端 top@1=0.32。36% 的场景根因不在候选中,另有 32% 的场景是已检索但排错;后者在命中子集中的条件失败率为 50%,不是 32%。

对一个已命中的场景,抽象指标 A 的变化幅度小但较早出现,指标 B 的变化很大但较晚出现,指标 C 有离散状态变化。检索可以让三类证据共同进入列表;重排器结合正常参考和系统文档判断哪些更像起点,不能仅凭最大的 B 下结论。

如果 A 根本未入池,再聪明的重排器也不能返回它。用真值强制插入 A 可以测排序能力,但这一步只在诊断实验中允许,不能算真实推理获得了 A。

损失函数 / 训练策略

本文不提出新的训练损失,不用故障标签微调重排器,也不训练一个故障分类器。正常数据用于估计缩放、均值、方差和众数;预训练 LLM 负责推理。图基线另行从短窗口或正常语料学习结构,并不属于验证管线的训练模块。

主重排器为 gpt-oss-120b,同一配置跨数据集使用,温度为 1.0,输出上限为 4096 tokens,每个配置重复 3 次,不传随机种子。表中的均值与样本标准差反映 API 随机解码的跨运行变化,不是三次训练种子或场景总体的置信区间。

窗口本身由基准预先给定:WADI/SWaT 用标注故障开始时间及此前 30 分钟正常参考;RCAEval 用注入时间附近通常约 6 分钟、最多 10 分钟的两侧窗口;HVAC 用故障日占用时段和匹配季节的完整正常占用日(900 行)。这仍依赖已知时间与参考选择,不能宣称已端到端解决在线异常检测和故障分段。

实验关键数据

主实验

四个数据集对应六个套件:WADI 14、SWaT 36、HVAC 48 个场景,RCAEval 的 RE1-OB/SS/TT 各 125 个。前三者按指标级真值计分;RCAEval 将指标映射为服务前缀、数据库实例归并到所属服务并去重,按服务级真值计分。不同粒度的数字不能直接解释为同难度任务。

下表从原文 Table 3 摘取 top@1,最佳统计基线在 HVAC 为 epsilon-Diagnosis,其余为 BARO;最佳图基线从六个 PC/FCI 排名配置中选取。LLM 数字是三次推理运行的均值 ± 样本标准差。

套件 最佳统计基线 最佳图基线 LLM 无 DK LLM 有 DK
WADI 0.214 0.214 0.333 ± 0.082 0.310 ± 0.041
SWaT 0.194 0.111 0.213 ± 0.016 0.148 ± 0.016
HVAC 0.146 0.104 0.153 ± 0.043 0.278 ± 0.012
RE1-OB 0.784 0.576 0.875 ± 0.009 0.888 ± 0.008
RE1-SS 0.856 0.632 0.872 ± 0.024 0.944 ± 0.008
RE1-TT 0.560 0.328 0.653 ± 0.024 0.685 ± 0.009

无 DK 配置的平均 top@1 在六套件均不低于最佳基线,但 HVAC 的 0.153 对 0.146、SWaT 的 0.213 对 0.194 属小差距,不应称为有显著性证明的全面胜利。有 DK 并非端到端总是更好:SWaT 从 0.213 降到 0.148,HVAC 则从 0.153 升到 0.278。

HVAC 主表使用受控池上的同一预测,但把原检索漏掉的 18/48 个场景全部计为失败;对已命中的 30 个场景,候选池未改变。这是附录 F 给出的端到端计分等价性解释,不能把受控表的 0.326 当作 HVAC 实际端到端准确率。

消融实验

固定 K=15 的检索分析来自 Table 1,三信号表示固定总预算下增加状态变化,并非三个检索器各自拿到 15 个名额。

套件 仅幅度 幅度 + 起始时间 三信号 说明
WADI 0.64 0.57 0.64 三信号最终与幅度持平
SWaT 0.53 0.61 0.67 状态证据带来额外覆盖
HVAC 0.35 0.65 0.63 起始时间主导,第三信号略降
RE1-OB 1.00 0.99 0.98 幅度候选被替换后略降
RE1-SS 1.00 1.00 1.00 检索已饱和
RE1-TT 0.98 0.98 0.91 三信号在该套件损害覆盖

Table 4 的受控检索池如下;强制含任意正确根因,所有基线在同一池上重跑。它隔离排序,不是实际端到端表,WADI/SWaT 的场景数为 13/35。

套件 同池最佳基线 LLM 无 DK LLM 有 DK 有 DK 相对最佳基线增益
WADI 0.308 0.410 ± 0.044 0.436 ± 0.089 +12.8 pp
SWaT 0.200 0.229 ± 0.029 0.267 ± 0.017 +6.7 pp
HVAC 0.188 0.188 ± 0.055 0.326 ± 0.012 +13.9 pp
RE1-OB 0.784 0.883 ± 0.005 0.891 ± 0.012 +10.7 pp
RE1-SS 0.856 0.859 ± 0.009 0.928 ± 0.000 +7.2 pp
RE1-TT 0.560 0.688 ± 0.024 0.741 ± 0.009 +18.1 pp

增益沿用原表报告,例如 HVAC 的 +13.9 pp,而展示值 0.326−0.188 为 +13.8 pp。差异可能涉及未展示精度,但缓存未确认,不自行统一。所有跨表差异都应先核对候选构成、分母和随机基线设置。

关键发现

  • Table 2 的无 DK 分解显示,CPS 三套件的条件 Rerank@1 为 0.52/0.32/0.24,微服务为 0.90/0.87/0.72;CPS 不只是漏检更多,命中后也更难排序。
  • Table 2 中 SWaT 的检索失败为 0.33、已检索但排错为 0.45。两者不同于条件排序失败约 0.68,不能把 0.45 叫作条件失败率。
  • DK 的益处可被检索遮住。受控实验中,SWaT 原来漏检的 11 个场景共 33 次场景运行,无 DK 命中第一名为 0/33,有 DK 为 6/33;正常端到端协议下这些场景仍全部为零。
  • 时间戳敏感性测的是检索:检测时间提前 5 分钟时,HVAC Retrieval@15 降 27.1 pp、SWaT 降 22.2 pp;RCAEval 在测试的 ±1/±2 分钟范围最大变化不超过 3.2 pp。
  • 长正常窗口图的最佳 top@1 在 WADI/SWaT/HVAC 为 0.214/0.083/0.083,未改变主设置下的结论;但 RE1-TT 未做这一全局图实验,不能声称六套件都有长窗口结果。

亮点与洞察

  • 候选覆盖率是任何受限重排序器的硬上限。这个视角让“换更强 LLM”与“补全可观测证据”成为可独立评估的干预,而不是把所有收益归于推理能力。
  • 固定总预算的消融避免把候选增加误当成信号更有效。尤其 RE1-TT 的覆盖下降说明异质证据不是越多越好,检索策略需要适配系统的异常表现形式。
  • 自然语言 DK 不要求先构建精确因果图,降低知识输入门槛。它也引入先验冲突与文档质量问题,因此收益应结合真实覆盖和受控排序共同看。

局限与展望

  • CPS 数据域主要覆盖水系统与楼宇,WADI 仅 14 个场景。三次解码重复不足以支持跨部署稳定性或统计显著性结论,设置又固定在同一批基准上,缺少独立系统验证。
  • 已知故障窗口、标注开始时间和正常参考仍是强条件。HVAC 的占用时段选择尤其体现参考窗口的人工设计;未来应联合审计检测、窗口选择和候选覆盖,而不是仅优化最后排序。
  • 受控插入位置会影响 LLM,附录 G 中 HVAC 插入项在前五槽时能命中、其他槽时未命中。扣除这些插入命中后,无 DK 从 0.188 降到 0.153,低于 RCD 的受控 0.188,削弱“无 DK 从不更差”的稳健解释。
  • 去标识实验只保留类型、单位和结构语义,缓解了对公开基准名称记忆的担忧,不能证明完全排除了预训练记忆或所有泄漏来源。
  • 原文概括性表述需要限定:受控检索池上“LLM 从不更差”不覆盖附录 G 的随机池反例,也不覆盖扣除插入位置命中后的 HVAC 无 DK 比较。Table 4 的 HVAC 增益 +13.9 pp 与展示值相减的 +13.8 pp 存在舍入层面的差异,保留原报告而不自行统一;提示的“按偏离程度排序”与实际多信号呈现顺序也不一致。
  • 工业部署应作为辅助诊断,展示短候选列表与证据并保留人工复核,不能把 LLM 排名当作自动控制指令。本文不提供故障制造或设施破坏流程。

相关工作与启发

  • vs BARO / epsilon-Diagnosis:统计偏离在直接故障中很有效,但强下游症状会遮住传播源头。本文不是否定统计方法,而是指出在有限候选预算下需要额外信号和条件排序评估。
  • vs RCD / CIRCA / PC-FCI 图排序:RCD 虽被论文放入统计比较组,仍包含局部因果搜索;CIRCA 使用结构及回归检验。本文比较的是指定学习图、预处理和窗口配置,不等于否定专家图、时滞模型或所有因果 RCA。
  • vs RankGPT / SpecRCA:列表式重排序和先提出候选再验证都可映射到这一评测。可复用的不是某个固定提示,而是记录模型实际考察过的候选、把漏检与误排分开;后续研究可检验覆盖感知的检测器,但本文未实现该系统。

评分

  • 新颖性: 4/5 — 分解本身是条件概率关系,价值在于为 RCA 建立可操作的审计视角。
  • 实验充分度: 4/5 — 有跨域、同池、强制覆盖和稳健性控制,但 CPS 样本小且部分结论受协议影响。
  • 写作质量: 3/5 — 主要叙事清楚,部分普遍性表述、子集解释和表格舍入需要谨慎阅读。
  • 价值: 4/5 — 对选择检测器、定位检索瓶颈和评价知识增益具有明确实践价值。