## 3 Problem Description and Proposed Solution
### Method of the Proposed Approach
#### 3.2.3 Optimized PC Algorithm Based on Knowledge Graph
The skeleton construction stage starts with a fully connected network \(G\) and uses the Conditional Independence test \(CI(X,Y|Z)\) to decide if an edge is removed or retained between \(X\) and \(Y\). This occurs for each edge that connects the vertices \(X\) and \(Y\), if \(X\) and \(Y\) are independent conditioning on a subset \(Z\) of all neighbors of \(X\) and \(Y\). The CI tests are organized by levels (based on the size of the conditioning sets, e.g., the depth \(d\)). At the first level \((d=0)\), all pairs of vertices are tested conditioning on the empty set. Some of the edges would be deleted and the algorithm only tests the remaining edges in the next level \((d=1)\). The size of the conditioning set \(d\) is progressively increased (by one) at each new level until \(d\) is greater than the size of the adjacent sets of the testing vertices. In the direction orientation, the algorithm determines the edge orientation of the graph according to Definition 3. The complexity of the original PC algorithm for a graph \(G\) is constrained by the degree of graph \(G\). Let \(k\) be the maximum degree of any node and n be the number of vertices. In the worst case, the number of conditional independence tests required by the algorithm is at most \(2{n\choose 2}\sum_{i=0}^{k}{n-1\choose i}=\frac{n^{2}(n-1)^{k-1}}{(n-1)!}\). Therefore, if the number of condition-dependent calculations of two nodes can be reduced, the construction efficiency of the DAG skeleton will be markedly improved in the optimized PC algorithm. \(G^{\prime}\) represents the O&M knowledge graph: if two nodes are in \(G^{\prime}\), then there is no need to check the conditional independence between them. This is how the knowledge graph can optimize the PC algorithm. ### Ranking for the Causal Influence Graph

In the previous sections, we describe how to construct the causality graph. In this section, we discuss how to mine the candidate root cause paths by ranking with weight. To determine the effects of correlation, such as \(X\to Y\), we need to check whether there exists a significant value change on the time series \(Y\) after an event \(X\) happens, and we can assign a weight to the edge \(X\to Y\) for measuring how much \(X\) influences \(Y\). Next, we describe how to assign weights to edges. There are two main steps:

* Effectively represent the value changes for all the nodes during time period \(t\); the value change events of a node could be denoted as a binary sequence \(E\). * Calculate the Pearson correlation coefficient as the weight between two sequences \(E_{X}\) and \(E_{Y}\), where \(E_{X}\) is the value changes for node \(X\), and \(E_{Y}\) is the value changes for node \(Y\). To check whether there exists a significant value increase (or decrease) on a time series KPI, a \(t\)-test is adopted according to [PERSON]'s research [28]. Given an event type denoted as \(E\), the timestamps of the events could be denoted as \(T_{E}=(t_{1},t_{2},...,t_{n})\), where \(n\) is the number of events that happened. A collection for the time series KPI is denoted as \(S=(s_{1},s_{2},...,s_{m})\), where \(m\) is the number of points in the time series. Let \(\varphi_{k}^{front}(S,e_{i})\) be a subseries of a KPI series S before an event \(e_{i}\) happens with length \(k\), and then \(\varphi_{k}^{front}(S,e_{i}),i=1,2,...,n\) is a subseries of S after the event \(e_{i}\). Finally, set \(\Gamma^{front}=\varphi_{k}^{front}(S,e_{i}),i=1,2...,n\), and \(\Gamma^{rear}=\varphi_{k}^{rear}(S,e_{i}),i=1,2,...,n\). We used a \(t\)-test to check whether there was a significant value change from \(\Gamma^{front}\) to \(\Gamma^{rear}\).