|
ゲストスピーカー: ディン・レイレイ (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の変動の理由を説明できます。実際のアプリケーションでは、以下のサポートが可能です。
上記の帰属プロセスを例に挙げて説明します。実際の業務では、決済成功率が 80% から 60% に低下したとします。各都市への変化を帰属診断する場合、まず上海で -15%、北京で -34%、広州で -16% と計算します。次に、これらの都市の変化を全体の変化 (-20%) で割り、決済成功率の低下に対して上海が 75%、北京が 170%、広州が 80% 寄与したと結論付けます。この計算方法は、各都市の寄与の合計が 100% にならないという問題があります。正しいロジックは、各都市の寄与を計算する際に、分子と分母を考慮することです。したがって、上海の実際の決済成功率は変化しておらず、分子と分母が比例して拡大縮小されているケースです。一方、北京と広州はともに10%減少し、全体の変化(-20%)にそれぞれ50%寄与した。 データをレイヤーごとに分解することで、各要因が全体に対してどのように貢献しているかを明確に把握でき、特定の変化が分子によるものか分母によるものか、また比率の変化によるものか割合の変化によるものかを明確に説明できます。このレイヤーごとの分解ロジックにより、グローバルに比較可能なアトリビューションの結論が得られ、ビジネスへの明確な説明に役立ちます。 実際のアプリケーションでは、さまざまなビジネス シナリオを処理するための 4 種類の方法をまとめました。
これらの方法は実際のビジネスアプリケーションで非常に優れたパフォーマンスを発揮し、驚くべき成果を達成しました。 先ほどの要因分析プロセスでは、問題は都市という側面に起因すると説明されたものの、支払い成功率の低下の具体的な理由は明確に説明されていませんでした。そのため、主に以下の3つの点について、更なる要因分析を行う必要があります。
アトリビューションプロセス全体を通して、多変量因子ライブラリが生成されます。このライブラリに基づいて、決済成功率の低下という問題を再検証し、結論を導き出します。例えば、北京と広州での支払い成功率の低下は、パンデミックの影響で大学生が早期休暇を取得したことが原因であることがわかりました。ビジネスチームはこの結論に基づき、適切な判断を下し、戦略を調整することで、マーケティング手法やその他の施策を導入し、決済成功率の低下という問題に対処し、ビジネスパフォーマンスを向上させることができます。 異常検出単一指標異常検出 次に、異常検知について、まず単一メトリックの異常検知から解説します。実際のビジネスオペレーションにおいて、ビジネスステークホルダーは、監視メトリックがいつ異常アラートをトリガーし始め、いつアラートが終了となるかを懸念しています。メトリックの正常な変動範囲を把握できれば、この問題を解決し、ビジネスステークホルダーにリアルタイムで正確なアラート情報をフィードバックすることができます。 指標の通常の変動範囲を計算するには、STL タイムゾーン分解アプローチを参考にすることができます。
上の画像は、実際の例を示しています。ビジネス構成の異常感度に基づいてベースラインの上限と下限を動的に調整することで、異常アラームのライフサイクル全体を識別・監視します。異常状態になった時点と正常状態に戻った時点を明確に追跡できるため、プロセス全体を効果的に監視できます。 このインテリジェントアラートでは、システムがアラートをトリガーすると、異常が発生した瞬間まで遡って追跡できます。アラートが蓄積されていくと、システムは最終的に正常状態に戻り、対応するアラートを自動的に閉じます。これにより、運用チームは自動的に閉じられたアラートへの対応に多くの時間を費やす必要がなくなり、より緊急性の高い運用タスクに集中できるようになります。 実際のアプリケーションでは、当社のシステムは異常検出において優れたパフォーマンスを発揮します。
複数指標の異常検出 次に、マルチメトリック異常検知の応用例を紹介します。業務運用において、複数のサーバーが毎日大量のメトリックデータを生成する状況に直面している中で、ビジネス関係者は通常、各サーバーを総合的にスコアリングして異常かどうかを判断する方法に関心を寄せています。図では、縦軸が異なるサーバーを表し、各レイヤーが1つのサーバーを表し、横軸は時間を表しています。時間の経過とともに、各サーバーは複数のメトリックのデータ値を生成します。 この問題を定義しましょう: 時系列データで構成されるデータ行列X^jは、サーバのあらゆる瞬間の状態を包括的に記述することができます。そこで問題となるのは、全体的なスコアを特徴付ける、つまり各サーバX^jにスコアを割り当てることができれば、サーバに異常が発生しているかどうかを包括的に反映できるということです。 以下に3つの方法を紹介します。
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 の自己注意メカニズムに似た時間分解の使用にあります。
トレーニングが完了したら、上記の 3 つの方法のそれぞれについて、検出フェーズで次の操作が必要になります。
上記の結果は、CIKMカンファレンスで発表したAnoSVGD手法と、AutoformerやKDEといった他の手法を公開データセットで比較した結果です。AnoSVGD手法は優れた結果を達成しました。 複数のメトリクスで異常を検出した後も、各メトリクスが現在の異常にどのように寄与しているかを理解する必要があります。そのためには、前述のアトリビューション診断機能を組み合わせる必要があります。例えば、あるマシンで複数のメトリクス異常が発生し、平均応答時間(RT)と障害率が主に異常の原因となっているコアメトリクスであることが判明した場合、アトリビューション診断では、通常のリクエスト量での平均応答時間と障害率の増加は、タイムアウト異常を明確に示していると結論付けることができます。この種の異常は通常、デプロイメントとリリースバージョンの更新に関連しているため、SRE(システム責任者)がリリースのロールバックを実行することをお勧めします。実際のアプリケーションでは、ロールバック操作などのいくつかのルーチン操作の自動実行を既に実装しています。異常が検出され、アトリビューションの結論に関連付けられると、自動化された方法を使用してマシンを自動的にロールバックし、通常の状態に戻すことができます。 異常検出と帰属診断の全体的なプロセスは、次のように要約されます。
繰り返しになりますが、現在のシステムは次のとおりです。
前述の通り、異常検知とアトリビューション診断は、単一の業務やマシンの異常だけでなく、クラスタ全体に適用できます。過去のアラーム情報を用いてアラーム間の因果関係グラフをマイニングし、サービスコールグラフと組み合わせることができます。あるサーバーでアラームが発生した場合、異常検知、アトリビューション診断、因果発見を通してサーバークラスタチェーン全体を分析することで、サービスクラスタ全体の問題チェーンを迅速に特定し、中核原因と根本原因を特定することができます。 問題と課題最後に、私たちが直面している問題と課題をまとめてみましょう。
(この記事で画像を使用する場合は、出典を明記してください。)これで今回の共有セッションは終了です。ありがとうございました。 OpenASCE、分散型エンドツーエンド因果学習システム: https://github.com/Open-All-Scale-Causal-Engine/OpenASCE 大規模モデルによって駆動される知識グラフ OpenSPG: https://github.com/OpenSPG/openspg 大規模グラフ学習システム OpenAGL: https://github.com/TuGraph-family/TuGraph-AntGraphLearning |