# 知識グラフ
## 定義
知識グラフ(Knowledge Graph, KG)は、実体(エンティティ)と実体間の関係をトリプル(主語・述語・目的語)として有向グラフで表現する知識表現形式である。ノードが実体に、有向エッジが関係に対応し、複雑なドメイン知識を機械可読な構造で統合できる。[[グラフニューラルネットワーク]] と組み合わせることで、グラフ構造の推論・補完・埋め込み学習が可能になる。
AIOps での応用では、分散システムのログ・メトリクス・トレースなど複数のオブザーバビリティデータを単一のグラフ構造に統合し、従来の単一モダリティ解析では捉えられなかったフィールド間・コンポーネント間の依存関係を活用した障害診断・根本原因分析を実現する点で注目される。
## 横断的知見
### ログ障害診断への適用
- **ログの複数フィールドを知識グラフで統合することで、単一フィールド手法では捉えられないフィールド間の関係が障害診断の精度向上に寄与する**: [[LogKG]]([[@2023__TSC__LogKG - Log Failure Diagnosis through Knowledge Graph]], TSC 2023)は、ログのタイムスタンプ・ログレベル・IP・コンポーネント・タスクID・コンテンツという 6 種のフィールドをすべて知識グラフに統合する。従来の多くの手法(LogCluster 等)は非構造化コンテンツフィールドのみを対象とし、SLOGERT・LEKG 等の既存 KG 手法も構造化フィールドのセマンティクスを十分に活用していなかった。LogKG は RotatE による知識グラフ埋め込み(KGE)でマルチフィールド情報を連続ベクトル空間に統合し、CMCC データセットで精度 1.0 / Macro-F1 1.0、GAIA データセットで精度 0.98 / Macro-F1 0.99 を達成した。既存ベースラインに対して GAIA 精度 +26%・Macro-F1 +15% という大幅な改善を示す。(Source: [[@2023__TSC__LogKG - Log Failure Diagnosis through Knowledge Graph]])
- **KGE モデルの選択はログデータの特性を考慮する必要があり、自然言語ベースの埋め込みモデル(GloVe・Word2Vec)はログに不適である**: LogKG のアブレーション実験では、KGE を GloVe に置換すると GAIA データセットで Macro-F1 が 0.84 まで大幅に低下する。ログデータは自然言語と異なり繰り返しが多く文法規則に従わないため、文脈的語義を学習する言語モデルが苦手とする。RotatE はエンティティと関係を回転変換でモデル化する位相幾何学的アプローチで、ログの構造的パターンに適している。(Source: [[@2023__TSC__LogKG - Log Failure Diagnosis through Knowledge Graph]])
### エンティティ抽出とアライメントの課題
- **ログからの知識グラフ構築には、1 テンプレートが複数イベントを含む問題と、異なる構文で同一セマンティクスを持つエンティティの統合という 2 つの固有の技術課題がある**: LogKG が定義する CH.1(エンティティ抽出: 1 テンプレートに複数イベント)・CH.2(エンティティアライメント: 異種構文・同一意味)は、一般的な自然言語処理での知識グラフ構築では顕在化しにくいログ固有の問題である。LogKG は CoreNLP による品詞タグ付けと OpenIE によるトリプル抽出を組み合わせ、さらに Sentence-BERT ベースのベクトル化 + OPTICS クラスタリングによるトリプルアライメントでこれらを解決する。言語モデル(MPNet・RoBERTa・MiniLM)やクラスタリングアルゴリズムを変えても最終診断精度が安定しており、アライメント選択に対する頑健性が実証された。(Source: [[@2023__TSC__LogKG - Log Failure Diagnosis through Knowledge Graph]])
### 障害表現学習との組み合わせ
- **KGE だけでは不十分で、障害に特化したログ選別(FOLR)との組み合わせで初めて高精度な障害表現が得られる**: LogKG の FOLR(Failure-Oriented Log Representation)は、障害発生時刻前後 20 分のログを収集し、全障害に頻出して障害種別を弁別しないノイズテンプレートを IFF(Inverse Failure Frequency)閾値でフィルタリングした上で、残りのテンプレートを TF-IFF 重み付き加重和で KGE ベクトルに集約する。FOLR なし(KGE のみ)のアブレーションでは Macro-F1 が 0.08 低下し、「ノイズログを除去してから KGE を適用する」という 2 段の組み合わせが重要だと示す。この「情報を絞ってから推論する」骨格は [[ログ解析]] の設計原理として共通する。(Source: [[@2023__TSC__LogKG - Log Failure Diagnosis through Knowledge Graph]])
## 未解決の問い
- **ログ知識グラフの動的更新**: LogKG の KG はオフライン訓練時に構築され、新規ログテンプレートが出現した際の動的 KG 拡張の方法が課題として残る。ログシステムのバージョンアップやアーキテクチャ変更に伴うテンプレートのドリフトへの追従はどこまで自動化できるか。(Source: [[@2023__TSC__LogKG - Log Failure Diagnosis through Knowledge Graph]])
- **マルチモーダル統合への拡張**: LogKG はログのみを扱い、メトリクス・分散トレーシングとの統合は将来課題とされる。知識グラフがログ、メトリクス、トレースを単一のグラフ構造で表現できれば、モダリティ間の因果関係も捉えられるが、異種データの統合スキーマ設計と KGE の学習効率が問題になる。[[根本原因分析]] における「ログ単一モダリティの深掘り対マルチモーダル横断」の対比とも接続する。(Source: [[@2023__TSC__LogKG - Log Failure Diagnosis through Knowledge Graph]])
- **KGE モデルの選択基準**: ログデータに RotatE が有効だと示したが、異なるシステム(データセンターファブリック・クラウドネイティブ・組み込みシステム等)でも同じ結論が成り立つか。ログの繰り返し率・フィールド種別・テンプレート数などのデータ特性とモデル選択の関係は体系化されていない。
- **事前知識の自動化**: LogM のような事前知識を要する高精度手法との比較が LogKG では行われていない。知識グラフに事前ドメイン知識(障害モード・システム依存関係)を組み込む場合と、データ駆動で純粋にログから学習する場合で、ラベリングコストと診断精度のトレードオフはどう変わるか。
## 関連
- ソース: [[@2023__TSC__LogKG - Log Failure Diagnosis through Knowledge Graph]]
- 概念: [[ログ解析]] / [[根本原因分析]] / [[グラフニューラルネットワーク]] / [[AIOps]] / [[異常検知]]
- エンティティ: [[Yicheng Sui]] / [[Shenglin Zhang]] / [[Dan Pei]] / [[Nankai University]] / [[Tsinghua University]]
## 出典
- [[@2023__TSC__LogKG - Log Failure Diagnosis through Knowledge Graph]](§3 提案手法, §4 実験, §5 本番展開)