HUOXIU

Ant Groupの異常検知とアトリビューション診断分析の実践

ゲストスピーカー: ディン・レイレイ (Ant Group アルゴリズム専門家)

北京郵電大学オートメーション学院で修士号を取得しました。以前はアリババのSearch Expressプラットフォームの広告アルゴリズムに携わっていました。現在はアント・ファイナンシャルの機械知能部門に所属し、異常検知、時系列予測、アトリビューション分析、因果推論のアルゴリズムに重点を置いて研究しています。

この記事では、アントグループの異常検知とアトリビューション診断における実践を紹介します。主に、アトリビューション診断、異常検知、そして問題点と課題という3つの側面に焦点を当てます。

OpenASCE、分散型エンドツーエンド因果学習システム: https://github.com/Open-All-Scale-Causal-Engine/OpenASCE

大規模モデルによって駆動される知識グラフ OpenSPG: https://github.com/OpenSPG/openspg

大規模グラフ学習システム OpenAGL: https://github.com/TuGraph-family/TuGraph-AntGraphLearning


帰属診断

実務上、私たちはビジネス関係者から、主要業績評価指標(KPI)に関して「なぜ特定のKPIが上昇または下降したのか?」という最も切実な質問を受けることがよくあります。アトリビューション診断の目的は、こうした変化の理由を説明することです。

アトリビューション診断では、問題の特定を要因比較プロセスと捉えます。基準時点における指標の値はy、現在の時点における指標の値はy^'であり、2つの時点の差は∆yです。この変化∆yに基づいて、要因を分解し、要因指標ツリーを生成します。各リーフノードにおいて、全体の∆yへの寄与度を計算し、どの要因が全体の結果に最も寄与しているかを判断します。このプロセスを通じて、KPIの変動の理由を説明できます。実際のアプリケーションでは、以下のサポートが可能です。

  • 1 日と複数日の比較を含む、複数の時間粒度での比較。
  • 単一指標の比較、複数要因の帰属、複雑な算術演算。
  • 次元の組み合わせとドリルダウン。
  • 数千万のデータ ポイントに対して数秒以内にインテリジェントに応答します。

上記の帰属プロセスを例に挙げて説明します。実際の業務では、決済成功率が 80% から 60% に低下したとします。各都市への変化を帰属診断する場合、まず上海で -15%、北京で -34%、広州で -16% と計算します。次に、これらの都市の変化を全体の変化 (-20%) で割り、決済成功率の低下に対して上海が 75%、北京が 170%、広州が 80% 寄与したと結論付けます。この計算方法は、各都市の寄与の合計が 100% にならないという問題があります。正しいロジックは、各都市の寄与を計算する際に、分子と分母を考慮することです。したがって、上海の実際の決済成功率は変化しておらず、分子と分母が比例して拡大縮小されているケースです。一方、北京と広州はともに10%減少し、全体の変化(-20%)にそれぞれ50%寄与した。

データをレイヤーごとに分解することで、各要因が全体に対してどのように貢献しているかを明確に把握でき、特定の変化が分子によるものか分母によるものか、また比率の変化によるものか割合の変化によるものかを明確に説明できます。このレイヤーごとの分解ロジックにより、グローバルに比較可能なアトリビューションの結論が得られ、ビジネスへの明確な説明に役立ちます。

実際のアプリケーションでは、さまざまなビジネス シナリオを処理するための 4 種類の方法をまとめました。

  • 変数を制御する方法は、単純な算術演算に適しています。
  • チェーンルールは複雑な算術演算を処理するために使用できます。
  • Shapley の値法は乗算のシナリオに適しており、これを協力ゲームの問題として扱い、解決します。
  • 比率型方式(上記で説明)。

これらの方法は実際のビジネスアプリケーションで非常に優れたパフォーマンスを発揮し、驚くべき成果を達成しました。

先ほどの要因分析プロセスでは、問題は都市という側面に起因すると説明されたものの、支払い成功率の低下の具体的な理由は明確に説明されていませんでした。そのため、主に以下の3つの点について、更なる要因分析を行う必要があります。

  • まず、都市などを含む帰属次元があります。
  • 第二に、プロモーション活動、マーケティング手法、運用・保守シナリオにおけるアクションなどの内部要因があります。
  • 最後に、パンデミック、天候、緊急事態などの一般的な要因のほか、特殊なビジネスシナリオや旅行シナリオなどの外部要因があります。

アトリビューションプロセス全体を通して、多変量因子ライブラリが生成されます。このライブラリに基づいて、決済成功率の低下という問題を再検証し、結論を導き出します。例えば、北京と広州での支払い成功率の低下は、パンデミックの影響で大学生が早期休暇を取得したことが原因であることがわかりました。ビジネスチームはこの結論に基づき、適切な判断を下し、戦略を調整することで、マーケティング手法やその他の施策を導入し、決済成功率の低下という問題に対処し、ビジネスパフォーマンスを向上させることができます。

異常検出

単一指標異常検出

次に、異常検知について、まず単一メトリックの異常検知から解説します。実際のビジネスオペレーションにおいて、ビジネスステークホルダーは、監視メトリックがいつ異常アラートをトリガーし始め、いつアラートが終了となるかを懸念しています。メトリックの正常な変動範囲を把握できれば、この問題を解決し、ビジネスステークホルダーにリアルタイムで正確なアラート情報をフィードバックすることができます。

指標の通常の変動範囲を計算するには、STL タイムゾーン分解アプローチを参考にすることができます。

  • まず、STLで一般的なlowess関数を用いてトレンドを抽出し、期間情報を抽出します。つまり、時系列に含まれる期間とその期間の長さ(例:7日間、30日間、週、月、四半期、年、時間など)を特定します。ここでは、論文で紹介されているFFTとACFの処理ロジックを借用して、期間を特定します。
  • 周期を特定したら、次は周期波形を抽出します。周期波形を正確に抽出し、周期を重ね合わせることで、効果的な検出が可能になります。
  • 周期波形を抽出する際には、マーケティング活動の影響により振幅が変化する可能性があります。そのため、後続の処理のために、最終的に比較的完全な周期波形を得るためには、セグメンテーション処理に何らかの検出手法を導入する必要があります。

上の画像は、実際の例を示しています。ビジネス構成の異常感度に基づいてベースラインの上限と下限を動的に調整することで、異常アラームのライフサイクル全体を識別・監視します。異常状態になった時点と正常状態に戻った時点を明確に追跡できるため、プロセス全体を効果的に監視できます。

このインテリジェントアラートでは、システムがアラートをトリガーすると、異常が発生した瞬間まで遡って追跡できます。アラートが蓄積されていくと、システムは最終的に正常状態に戻り、対応するアラートを自動的に閉じます。これにより、運用チームは自動的に閉じられたアラートへの対応に多くの時間を費やす必要がなくなり、より緊急性の高い運用タスクに集中できるようになります。

実際のアプリケーションでは、当社のシステムは異常検出において優れたパフォーマンスを発揮します。

  • マルチ感度調整をサポートしており、ユーザーは必要に応じて異常検出の感度を調整し、アラームの数を減らしたり精度を高めたりすることができます。
  • オンラインのリアルタイムフィードバックと最適化メカニズムをサポートしており、ユーザーは注文にタグを付けて、回復されたかどうか、誤報だったか正確だったかを示すことができるため、通常の指標の変動範囲をリアルタイムで調整できます。
  • 監視なしの増分メトリックのアクセスをサポートし、迅速なアクセスとリアルタイム検出を可能にします。
  • このシステムはライフサイクル全体の監視をサポートし、数ミリ秒単位でデータを処理できるため、ビジネス パフォーマンス要件を満たします。

複数指標の異常検出

次に、マルチメトリック異常検知の応用例を紹介します。業務運用において、複数のサーバーが毎日大量のメトリックデータを生成する状況に直面している中で、ビジネス関係者は通常、各サーバーを総合的にスコアリングして異常かどうかを判断する方法に関心を寄せています。図では、縦軸が異なるサーバーを表し、各レイヤーが1つのサーバーを表し、横軸は時間を表しています。時間の経過とともに、各サーバーは複数のメトリックのデータ値を生成します。

この問題を定義しましょう:

時系列データで構成されるデータ行列X^jは、サーバのあらゆる瞬間の状態を包括的に記述することができます。そこで問題となるのは、全体的なスコアを特徴付ける、つまり各サーバX^jにスコアを割り当てることができれば、サーバに異常が発生しているかどうかを包括的に反映できるということです。

以下に3つの方法を紹介します。

  • VBEMアルゴリズム
  • AnoSVGDアルゴリズム
  • オートフォーマーアルゴリズム

VBEMは変分推論に基づく期待最大化アルゴリズムです。隠れ状態qの分布を用いて真の事後分布pの分布を近似し、ELBOの証拠に従う尤度関数と組み合わせることで、モデルパラメータの収束を確実にします。このプロセス全体は状態遷移プロセスです。図中、x_iは学習した隠れ状態を表し、m_0とP_0はモデルの初期パラメータ(平均と斜分散)です。学習される最終パラメータはA、C、Q、R、μ_1^x、Σ_1^xで、それぞれ状態遷移における重み、平均、共分散の分布に対応します。Σ_1^xは共分散行列であり、分散情報と指標間の相関関係を含み、複数の指標の情報を効果的に特徴付けることができます。

AnoSVGD法は、CIKM 2023カンファレンスで発表した論文に基づいています。その核となる考え方は、マッピング変換を用いて、既知データの確率密度関数(PDF)を用いて未知データの確率密度関数(PDF)を反復的に推定することです。右のグラフに示すように、複数回の反復処理を経て、モデルは未知データの分布を効果的に表現します。各反復処理では、前回の結果に基づいて、小さなステップサイズと降下方向θが追加され、最速の降下方向を勾配降下法で見つけ、反復処理を進めます。このようにして、未知データの分布を素早く見つけ、目標に到達したら反復処理を停止することができます。

Autoformerアルゴリズムの中核は、Transformer の自己注意メカニズムに似た時間分解の使用にあります。

  • Autoformer は、自動相関を通じてデータから定期的な情報を取得します。
  • Autoformer は、周期的な情報を使用して、分解を通じて周期的な波形と傾向を抽出します。
  • デコーダー段階では、複数の反復処理を経て予測値が出力されます。ここでの自動協調の計算には、前述の周期認識と同じアプローチ、つまりFFTとACFが採用されています。

トレーニングが完了したら、上記の 3 つの方法のそれぞれについて、検出フェーズで次の操作が必要になります。

  • VBEMアルゴリズムは、隠れ状態を学習することで、次のタイムステップの予測値を生成します。予測値と真値の差は、自由度k-1のカイ二乗分布に従います。ビジネス構成の異常感度と組み合わせることで、どの点が外れ値であるか、つまり異常領域内にあるかどうかを識別できます。ここで、自由度k-1は、サーバー上の異なる監視メトリックの数に対応します。
  • AnoSVGD アルゴリズムは、確率密度関数 (PDF) を推定し、ビジネス感度を組み合わせて、どの値が低い確率密度領域に配置されているかを判断して、異常を識別します。
  • AutoformerアルゴリズムはVBEM法と同様に、予測値と真値の差に着目し、自由度k-1のカイ二乗分布に従います。さらに、ビジネス感度を組み込んで外れ値を特定します。

上記の結果は、CIKMカンファレンスで発表したAnoSVGD手法と、AutoformerやKDEといった他の手法を公開データセットで比較した結果です。AnoSVGD手法は優れた結果を達成しました。

複数のメトリクスで異常を検出した後も、各メトリクスが現在の異常にどのように寄与しているかを理解する必要があります。そのためには、前述のアトリビューション診断機能を組み合わせる必要があります。例えば、あるマシンで複数のメトリクス異常が発生し、平均応答時間(RT)と障害率が主に異常の原因となっているコアメトリクスであることが判明した場合、アトリビューション診断では、通常のリクエスト量での平均応答時間と障害率の増加は、タイムアウト異常を明確に示していると結論付けることができます。この種の異常は通常、デプロイメントとリリースバージョンの更新に関連しているため、SRE(システム責任者)がリリースのロールバックを実行することをお勧めします。実際のアプリケーションでは、ロールバック操作などのいくつかのルーチン操作の自動実行を既に実装しています。異常が検出され、アトリビューションの結論に関連付けられると、自動化された方法を使用してマシンを自動的にロールバックし、通常の状態に戻すことができます。

異常検出と帰属診断の全体的なプロセスは、次のように要約されます。

  • モデルトレーニング。さまざまなアルゴリズムを使用してモデルをトレーニングします。
  • 最後に、モデル予測と外れ値検出が実行されます。
  • テスト結果を取得したら、その寄与を計算し、帰属診断を実行して異常の具体的な原因を見つけます。

繰り返しになりますが、現在のシステムは次のとおりです。

  • マルチ感度変調をサポート
  • オンラインリアルタイム最適化をサポートしており、ユーザーはフィードバックを提供し、オンラインでリアルタイムに最適化を実行できます。
  • 監視なしの増分メトリックの迅速な統合をサポートします。
  • 現在は主に分と時間のレベルで、複数の粒度の時間データをサポートしています。
  • リアルタイムのアトリビューション診断をサポート
  • 第2レベルのパフォーマンス要件をサポート

前述の通り、異常検知とアトリビューション診断は、単一の業務やマシンの異常だけでなく、クラスタ全体に適用できます。過去のアラーム情報を用いてアラーム間の因果関係グラフをマイニングし、サービスコールグラフと組み合わせることができます。あるサーバーでアラームが発生した場合、異常検知、アトリビューション診断、因果発見を通してサーバークラスタチェーン全体を分析することで、サービスクラスタ全体の問題チェーンを迅速に特定し、中核原因と根本原因を特定することができます。

問題と課題

最後に、私たちが直面している問題と課題をまとめてみましょう。

  • 帰属診断にはシンプソンのパラドックスが存在します。比較対象となる集団が比較期間内で均質であることをどのようにして保証できるでしょうか?もし集団が均質でなければ、結論の信頼性が失われる可能性があります。
  • 異常検知において、単一指標を用いた異常検知では頻度漏洩の問題が発生する可能性があり、誤検知やトレンドサイクルの不正確さにつながる可能性があります。さらに、単一指標と複数指標のどちらも、時系列が非定常であるという問題に直面します。時系列のトレンドとサイクルが常に変化している場合、この問題をどのように解決するかを検討する必要があります。

(この記事で画像を使用する場合は、出典を明記してください。)これで今回の共有セッションは終了です。ありがとうございました。

OpenASCE、分散型エンドツーエンド因果学習システム: https://github.com/Open-All-Scale-Causal-Engine/OpenASCE

大規模モデルによって駆動される知識グラフ OpenSPG: https://github.com/OpenSPG/openspg

大規模グラフ学習システム OpenAGL: https://github.com/TuGraph-family/TuGraph-AntGraphLearning