在云网络里,运维数据通常是事件驱动的:某个警报触发了、某个工作流开始执行了。论文把这些事件全部转成二值时间序列(binary time series)——每个变量(比如“硬件错误”、“丢包”)在每一分钟要么是1(有该事件),要么是0(没有)。有了这样一串01序列,就可以用Granger因果性来检测:变量B是否Granger导致变量A?简单说,就是看B的历史数据能否帮助我们更好地预测A的未来。具体怎么做?论文用了逻辑回归(Logistic Regression)。对每一对变量(A, B),先建一个只用A自身历史预测A的“受限模型”,再建一个同时用A和B历史预测A的“非受限模型”。然后比较两个模型的拟合优度,如果增加B后预测能力显著提升(通过似然比检验,p值小于0.05),就认为B Granger导致A,添加一条从B指向A的有向边。但成对分析会误把间接关系当成直接关系——比如C→B→A,如果只看C和A,可能也会出现Granger因果,但我们希望识别出真正的因果路径。所以论文又加入了条件独立性检验:如果已知B的历史后,C的历史与A独立,那就说明C通过B间接影响A,因果图应该是C→B→A,而不是C→A。这样反复检验,逐步精炼,最终得到一个有向图(可能带环,因为真实系统中存在反馈延迟)。注意,这个方法只用了“异常区间”的数据,没有用到“正常”基线。这在云网络中很实用,因为正常数据太海量了,反而噪声大。只分析异常时刻,更集中。
时空分组与本体化解耦策略
直接对几千个变量两两做Granger检验?计算量太大!AWS团队想出了两个妙招来压缩空间:自动化本体(Automation Ontology)和时空分组(Spatiotemporal Grouping)。“本体”就是把网络运维中的各种信号分类:观察量(指标、链路追踪、日志)、故障、风险、动作。然后定义它们之间的可能因果关系。比如“故障”可以级联到其他故障,“动作”可以修复或引入故障。论文根据这个本体,把800多种警报和10000多种工作流步骤归为14个故障类别、11个动作类别。再加上网络分层信息(185个网络层),最终变量数从天文数字降到4810个(185层 x (14+1+11))。“时空分组”则是在每个事件发生时,只收集受影响位置周围X跳以内、Y分钟以内的所有信号。这样就把一次根因分析限制在一个局部子图中,而不是在整个网络图上搜索。论文从六个月的事件数据中提取了25474个事件片段,经过本体映射后,只得到76595对变量进行成对分析——相比四千万对,足足减少了三个数量级!下图展示了本体中各要素的关系:图1:自动化本体——观察量(指标、链路追踪、日志)确定风险和故障。风险可转化为故障,故障可产生风险。动作可修复或引起故障和风险。
[1] F. Chraim, D. Janzing, J. Evans. "Graphical Causal Reasoning for Root Cause Analysis in Cloud Networks." arXiv:2606.13532v1, 2026.[2] C. W. J. Granger. "Investigating causal relations by econometric models and cross-spectral methods." Econometrica, 1969.[3] J. Peters, D. Janzing, B. Schölkopf. "Elements of Causal Inference – Foundations and Learning Algorithms." MIT Press, 2017.