情報システム障害解析のための
知識グラフ構築の試み
Copyright(c)2019 NTT Corp. All Rights Reserved.
• 氏名
– 髙雄 慎二 (たかお しんじ)
• 所属
– 日本電信電話株式会社 サービスイノベーション総合研究所
ソフトウェアイノベーションセンタ OSS推進プロジェクト
– 対外呼称:NTT OSSセンタ
• 業務内容
– オープンソースソフトウェア(OSS)に関する障害解析支援
– OSS・クラウド活用等についての研究開発
• 本発表資料について
– 人工知能学会知識流通ネットワーク研究会 第25回研究会(2019/9/13)
– 発表予稿PDFファイル
• https://jsai.ixsq.nii.ac.jp/ej/?action=pages_view_main&active_action=repos
itory_view_main_item_detail&item_id=10433&item_no=1&page_id=13&b
lock_id=23
発表者(筆者)
2
目次
3
• はじめに
• 先行研究
• 対象領域
• タスク分析
• プロトタイプの作成
• 結果
• 考察
• まとめ
はじめに
4
• はじめに
• 先行研究
• 対象領域
• タスク分析
• プロトタイプの作成
• 結果
• 考察
• まとめ
• Webを実現するオープンソースソフトウェア(OSS)に関する,
– 調査
– 検証
– 障害発生時の解析支援
5
筆者の業務
• 「Webページが固まった」
• 「なかなか次のページに移動しない」
• 「遅い」
6
障害の例:ソフトウェア性能問題
• 内容
– 障害の根本原因解明
– 顧客説明のための理由説明
• 要件
– 短期間での対応(数時間~数日)
• 熟練技術者の知識が必要
– 過去の障害事例の知識
– 対象ソフトウェアの知識
7
情報システム障害解析(筆者の業務)
• 技術者の流動化
• 必要な知識の増加・複雑化
• 知識の保持が難しくなりつつある.
• 専門知識を知識グラフで表現し,流通させる.
• 非専門家でも専門家と同等の対応を可能とする.
8
課題
先行研究
9
• はじめに
• 先行研究
• 対象領域
• タスク分析
• プロトタイプの作成
• 結果
• 考察
• まとめ
• 「さまざまな知識・データをグラフ構造で整理したデータ
ベース.」
• 理由説明や演繹的判断ができるAIの研究(説明的AI研究)等
との関連で注目されている [1].
知識グラフとは
ノード
ノード
エッジ
ノード
[1] 川村 隆浩, 江上 周作, 田村 光太郎 他: 第1 回ナレッジグラフ推論チャレンジ2018 開催報告─説明性のある人工
知能システムを目指して─, 人工知能, Vol. 34, No. 3, pp. 396-412, (2019)
10
• 機械学習やAIによる判断・決定過程を説明可能にするための
方法の研究のこと.
• 近年,様々な理由から必要とされている.
– 欧州連合のGDPRによる要請[2]
– 米国DARPAの人間の監督下でのAIの活用を目指す説明的AI (XAI) 研究
プログラム[3]
– 総務省による「透明性の原則」及び「アカウンタビリティ(説明責
任)の原則」を盛り込んだ「AI開発ガイドライン」[4]
11
説明的AI研究
[2] Guidotti, R., Monreale, A., Ruggieri, S., Turini, F., Pedreschi, D., Giannotti, F. : A survey of methods for explaining black
box models, ACM Computing Surveys (CSUR), Vol. 51, No. 5, Article No. 93, (2019)
[3] 川村 隆浩: 機械学習の説明可能性への取り組み -DARPA XAIプロジェクトを中心に-, 人工知能学会全国大会(第
33回)企画セッション, 講演2, (2019)
[4] 総務省: 国際的な議論のためのAI開発ガイドライン案, AIネットワーク社会推進会議報告書2017, 別紙1, (2017)
• 知識グラフは説明的AIの研究の一手法に位置づけられる.
– より構造的・解釈可能・因果的なモデルを構築する “Interpretable
models”
12
説明的AI研究と知識グラフの関係
X Y
Z
• Resource Description Framework (RDF)で記述する.
• SPARQL (RDFの標準的クエリ言語) 等にて推論・推定を行う.
– 統計的傾向を含まない(ルールのみ).
– 高い説明性がある.
• 例)「ナレッジグラフ推論チャレンジ」[1]
13
RDFによる知識グラフ
[1] 川村 隆浩, 江上 周作, 田村 光太郎 他: 第1 回ナレッジグラフ推論チャレンジ2018 開催報告─説明性のある人工
知能システムを目指して─, 人工知能, Vol. 34, No. 3, pp. 396-412, (2019)
シャーロックホームズの一話を
題材とし,犯人は誰かを推論した.
• グラフ構造を持つ確率モデル(グラフィカルモデル)の一種.
– 有向グラフで表現.
– 「条件付き確率」によって様々な条件化での蓋然性を示す.
• “不確実性を伴う推論” が可能.
• 1970年代に発するエキスパートシステム/意思決定支援システムにおいて、
医療などで活用.
• 長所
– 明瞭に解釈可能.
– 専門的基礎に基づく正当化が可能.
– 主観的見積と統計的データを併用可能.
• 短所
– (ルールのみのモデルと比較した場合)推論結果の説明が難しい.
14
ベイジアンネットワークによる知識グラフ
[5] 本村 陽一: ベイジアンネットワーク:入門からヒューマンモデリングへの応用まで, 日本行動計量学会セミナー資料, (2004)
[6] 安田 宗樹, 片岡 駿, 田中 和之: 確率的グラフィカルモデル -ベイジアンネットワークとその周辺-, オペレーションズ・リサーチ:経営の科学,
Vol. 58, No. 4, pp. 191-197, (2013)
[7] Biran, O., and Cotton, C.: Explanation and Justification in Machine Learning: A Survey, IJCAI 2017 Workshop on Explainable Artificial Intelligence
(XAI) , (2017)
[8] Lacave,C., Díez, F.J.: A review of explanation methods for Bayesian networks, The Knowledge Engineering Review 17 (2), 107-127, (2002)
[9] Suermondt, H.J.: Explanation in Bayesian Belief Networks. PhD thesis, Stanford, CA, USA, 1992. UMI Order No. GAX92-21673.
対象領域
15
• はじめに
• 先行研究
• 対象領域
• タスク分析
• プロトタイプの作成
• 結果
• 考察
• まとめ
• 「Webページが固まった」
• 「なかなか次のページに移動しない」
• 「遅い」
16
障害の例:ソフトウェア性能問題(再掲)
• 一時的対処
– 動作回復(再起動など)
• 恒久的対処
– 障害の根本原因解明
– 顧客説明のための理由説明
• 要件
– 短期間での対応(数時間~数日)
• 熟練技術者の知識が必要
– 過去の障害事例の知識
– 対象ソフトウェアの知識
17
情報システム障害解析(再論)
(主に)運用現場での対応
我々への依頼
• 技術者の流動化
– 異動や退職
• クラウド技術の普及
– 必要なソフトウェアの種類増加
– 相互依存関係の複雑化
• 知識の保持が難しくなりつつある.
• 専門知識をグラフ構造で表現し、流通させる.
– 異種ソフトウェア技術者による多能工的対応を支援する.
– 非熟練技術者による適切・迅速な判断を支援する.
18
課題(再論)
タスク分析
19
• はじめに
• 先行研究
• 対象領域
• タスク分析
• プロトタイプの作成
• 結果
• 考察
• まとめ
• 原因解析
– サービスに影響する問題が発生した場合に,その原因を解明する.
• 例)「画面が固まった」「エラーメッセージが表示された」
– 何らかの問題事象を基点とし、根本原因を解明する.
• 障害予兆確認
– システムは機能しているが,監視対象ログが正常時とは異なる値・出
力を示している場合に,その原因を解明する.
– ログを起点とし,潜在的な事象と根本原因を解明する.
20
「原因解析」と「障害予兆確認」タスク
原因解析
障害予兆確認
サービス影響事象
(顕在)
ログ 根本原因
ログ
サービス影響事象
(潜在)
根本原因
• 根本原因とは
– ある事象の原因となる他の事象のこと.
• 事象の発生有無の確認方法
– ログを調べる.
• 根本原因の確認
– 原因から結果、結果から原因を行き来する.
– 仮説の選定・検証・棄却を繰り返す.
– 直接ログを確認できない場合、他の情報(事象)から推測する.
21
「根本原因」確認の基本的な方法
ログB 事象β
事象α
ログC ログA
解析手順
因果関係
• 根本原因調査の過程で,複数の原因候補がある場合の手順
– 原因候補のうち,もっとも可能性の高いものを仮説とする.
– ログ確認等で検証する.
– 仮説が棄却された場合,残りの仮説のうち可能性の高いものに対して
検証する.
– 十分な結論を得られるまで繰り返す.
22
「原因切り分け」サブタスク
• 問題の影響の大きさを判断
– ある事象が及ぼす影響を,原因から結果の方向へ辿る.
– 十分な結論を得られるまで繰り返す.
23
「影響確認」サブタスク
• どちらも因果関係で結びつくが,以下の相違がある.
• ログは「事実」
– (例)「応答時間が5秒を越えている」
• 事象は「判断結果」
– (例)「処理速度低下事象の発生」
• 区別する理由
– 判断基準の変化に対して柔軟性を持たせる.
– より簡潔で説明性のあるグラフが得られる.
24
「事象」と「ログ」の違い
ログB 事象β
事象α
ログC ログA
• (1) 知識モデル化手法の要件
– (1-1) 事象を,目的変数にも説明変数にもなり得るものとして表現す
ること.
– (1-2) 因果関係の方向性を表現すること.
– (1-3) 直接観測可能な事象と観測不可能な事象の両方を表現すること.
• 知識モデル化手法の選択
– 目的変数を一つに定める必要がある決定木や回帰分析・判別分析など
は適さない.
– 複数のノード間の複雑な関係を表現できるグラフ構造が適している.
• 事象=ノード
• 因果関係=エッジ
– 有向グラフ(Directed Graph)
– 不確実性下の判断に使用できるベイジアンネットワークが適している.
25
タスク分析から得られた要件(1)
• (2) 障害解析支援システムの要件
– (2-1) 事象の発生有無を判断する方法を示すこと.
– (2-2) 事象の原因仮説を示すこと.
– (2-3) 事象の影響を示すこと.
– (2-4) 事象の原因と影響の理由について理解可能な形で示すこと.
• 実現化方針
– (2-1) から(2-3)は,グラフによって表現された因果関係の探索を通し
て実現できる.
– (2-4)については,以下の2つの方法が考えられる.
• グラフそのものを図示する.
• 文字によって説明する.
26
タスク分析から得られた要件(2)
プロトタイプの
作成
27
• はじめに
• 先行研究
• 対象領域
• タスク分析
• プロトタイプの作成
• 結果
• 考察
• まとめ
• 対象とする問題の絞り込み
– あるプログラミング言語(Java)によるソフトウェアを実行するサー
バにおいて,応答時間が長時間化する性能低下問題を対象とした.
• 専門家
– 5年以上の障害解析の経験を持つ複数の専門家(3名)が参加した.
• 留意事項
– グラフには事象のみを含め,ログは,因果関係の説明等と共に別途の
関連情報とした.
• 理解しやすいグラフとするため.
• 手順
1. 初期グラフ(手書き)の作成
2. グラフの精緻化
3. RDBMSツールの作成
4. ドキュメントの作成
準備・手順
28
• KJ法[10]を参考に,発生しうる事象を思いつく限り付箋紙に
書き出して大きめの紙に貼り,相互の因果関係を矢印で記し
た.
29
手順1:初期グラフの作成
[10] 川喜多二郎: 発想法, 中央公論社, (1967)
• 初期グラフを図形描画ソフトで電子化
• 関連情報を表計算ソフトに整理
– 各事象の概要とログ確認方法
– 考えられる原因とその理由 など
• 専門家の意見を聞き,修正
– 繰り返し
• 一部,統計的確認を実施
– 通常のログからは直接確認ができない事象が存在していた.
⇒ デバッグ用の特殊なログを収集して統計解析を行った.
– その結果,入手容易なログから当該事象の発生を間接的に推定できる
ことを確認できた[11].
30
手順2:グラフの精緻化
[11]髙雄 慎二,高木 浩則,和氣 弘明,湯口 徹: CMS GCにおけるJavaヒープメモリ断片化の要因, 2016-SE194, ソ
フトウェア工学研究発表会, 情報処理学会, (2016)
• オープンソースの機械学習ソフトウェア Weka[12]を使用し
た.
31
手順3:ベイジアンネットワークの作成
[12] Weka, https://www.cs.waikato.ac.nz/ml/weka/, retrieved 2019.8.20, (2017)
[13] Takao, S., : How to deal with Java troubles on microservices, Oracle Code One 2018, BOF5902 (Site: San
Francisco, California, USA, Date: October, 22-25), (2018)
URL: https://oracle.rainfocus.com/widget/oracle/oow18/catalogcodeone18?search=BOF5952
Wekaの使用法等については,[13]も参照のこと.
• BNで扱えない文字情報を管理し,障害解析支援システムの
要件(2-1~2-4)を満たすことを目指した.
– 各種情報をフォーム形式で表示
• 知識グラフは表示しなかった.
– 事象の原因や影響先について,因果関係上隣接するものを一覧表示
– 事象の概要や因果関係の解説,ログ等の関連情報を表示
32
手順4:RDBMSツールの作成
• RDBMSツールの内容を,印刷可能な文書にし,障害解析時
での使用手順を明記した.
• 因果関係を,一種の索引表で表現した.
33
手順5:ドキュメントの作成
原因追跡表
この番号で該
当の事象(原
因)を探す.
「可能性」の
高いものから
順に並べる.
結果
34
• はじめに
• 先行研究
• 対象領域
• タスク分析
• プロトタイプの作成
• 結果
• 考察
• まとめ
• 以下の3つの形態のプロトタイプを,障害解析支援システム
に必要な要件(2-1)~(2-4)に照らして評価した.
– ベイジアンネットワークツール
– RDBMSツール
– ドキュメント
35
プロトタイプの評価結果
要件 ベイジアンネッ
トワークツール
RDBMSツール ドキュメント
(2-1) 事象の発生有無を判断
する方法を示すこと.
機能なし ○利用可能 ○利用可能
(2-2) 事象の原因仮説を示す
こと.
△要改善 △要改善 ×利用困難
(2-3) 事象の影響を示すこと. △要改善 △要改善 ×利用困難
(2-4) 事象の原因と影響の理
由を理解可能な形で示すこと.
機能なし ○利用可能 ×利用困難
• 長所
– 因果関係を視覚的に良く表現できた.
– 可能性の高い原因仮説や影響をわかりやすく迅速に提示できた.
• 短所
– 表示できる情報が少なく,障害解析を進める上で不十分だった.
– GUIの使い勝手が不十分だった.(日本語が使用できない,ノードに使
用できる文字数が数文字しかない等 Weka固有の問題も含む.)
36
ベイジアンネットワークツールの評価結果
要件 ベイジアンネッ
トワークツール
RDBMSツール ドキュメント
(2-1) 事象の発生有無を判断
する方法を示すこと.
機能なし ○利用可能 ○利用可能
(2-2) 事象の原因仮説を示す
こと.
△要改善 △要改善 ×利用困難
(2-3) 事象の影響を示すこと. △要改善 △要改善 ×利用困難
(2-4) 事象の原因と影響の理
由を理解可能な形で示すこと.
機能なし ○利用可能 ×利用困難
• 長所
– 事象の辞書として有効だった(各事象の知識を豊富に表示できた).
• 短所
– 仮説や影響を迅速に提示できない(グラフを表示しない.因果関係上,
隣接する事象のみ一覧表示).
– 専門技術者が行う迅速な根本原因仮説の提示を再現できない可能性が
高い.
37
RDBMSツールの評価結果
要件 ベイジアンネッ
トワークツール
RDBMSツール ドキュメント
(2-1) 事象の発生有無を判断
する方法を示すこと.
機能なし ○利用可能 ○利用可能
(2-2) 事象の原因仮説を示す
こと.
△要改善 △要改善 ×利用困難
(2-3) 事象の影響を示すこと. △要改善 △要改善 ×利用困難
(2-4) 事象の原因と影響の理
由を理解可能な形で示すこと.
機能なし ○利用可能 ×利用困難
• 長所
– 事象の辞書として有効だった(各事象の知識を豊富に表示できた).
• 短所
– 因果関係を,一種の索引表で表現したが,複雑な因果関係を表現する
には不十分であり,人手で使用することは困難であった.
38
ドキュメントの評価結果
要件 ベイジアンネッ
トワークツール
RDBMSツール ドキュメント
(2-1) 事象の発生有無を判断
する方法を示すこと.
機能なし ○利用可能 ○利用可能
(2-2) 事象の原因仮説を示す
こと.
△要改善 △要改善 ×利用困難
(2-3) 事象の影響を示すこと. △要改善 △要改善 ×利用困難
(2-4) 事象の原因と影響の理
由を理解可能な形で示すこと.
機能なし ○利用可能 ×利用困難
考察
39
• はじめに
• 先行研究
• 対象領域
• タスク分析
• プロトタイプの作成
• 結果
• 考察
• まとめ
• 知識グラフの有用性
– 知識グラフは,原因仮説や事象の影響を迅速に提示できた.
• 一方,ドキュメントや文字による情報表示には限界があった.
• 知識グラフの課題
– 知識グラフのみでは,情報システム障害解析を行うには情報が不足し
ていた.
– グラフが一層複雑化した場合にも,見易さを保てるか?
40
知識グラフの有用性と課題
• 望まれる改善
– 知識グラフと関連情報を統合的に表示する.
– 複雑なグラフも見やすく示せるようにグラフの関係部分を強調する.
41
知識グラフツールの改善の例
日本語が使用できない,ノードに使用できる文字数が数文字しかない等のWeka
固有の問題は,商用ソフトの採用で解決できる可能性がある[14].
[14] BayoLink, https://www.msi.co.jp/bayolink/, retrieved 2019.8.20, (2019)
• ベイジアンネットワークの有用性
– 条件付き確率によって不確実性下の判断を支援できる.
• 障害事象は,複数の原因が可能性として考えられる.
• 必要なログを得られず確認できない場合がある.
• ベイジアンネットワークの(本試行での)課題
– 条件付き確率を専門家の主観的評価によって付与している.
• 各条件について十分な障害事例を集めることは難しい.
• 専門家の直観は一定の有用性がある.
• だが,やはり客観性には乏しい.
– 統計的結果に基づいて更新されることが望ましい.
• 障害解析事例を知識グラフと連携した形で蓄積されれば可能である.
• 利用者観点の課題だけでなく,作成者観点での課題があった.
42
ベイジアンネットワークの有用性と課題
• 知識グラフは継続的改善が必要.
– 一度に十分な知識グラフを作ることは難しい.
• 作成には手間がかかる.
– 知識そのものも変化する.
• 複数の専門家の知識を集約できることが望ましい.
– 主観が反映されるため.
• 過去の障害解析事例を活用するべき.
– 文字中心の蓄積情報と知識グラフとの結びつきが弱いことが課題.
• 「障害解析知識流通システム」
43
ツール作成者の観点から見えた課題
• (3)障害解析知識流通システムの要件
– (3-1)障害事例を知識グラフ上に位置づけて分類し管理できること.
– (3-2)事象や因果関係の追加・削除・修正を容易にできること.その際,
複数の専門家によるレビューや承認などの共同作業をサポートするこ
と.
– (3-3)蓄積された障害事例を基に,条件付き確率を統計的に精緻化でき
ること.
• 障害解析知識流通システムの例
44
障害解析知識流通システム
まとめ
45
• はじめに
• 先行研究
• 対象領域
• タスク分析
• プロトタイプの作成
• 結果
• 考察
• まとめ
• 知識グラフの一般的意義
– 理由説明や演繹的判断ができるAI等との関連で注目されている.
• 本稿で知識グラフに着目した理由
– 知識表現としてわかりやすい.
– 専門家の知識を非専門家も活用可能にする知識流通手段として活用す
ることを目指した.
• プロトタイプの作成と評価を実施
– 知識グラフは,仮説を迅速に提示する手段として有効であることが判
明した.
– しかし,実際に活用するためには,使い勝手の改善や関連システムが
必要であり,それらの要件を整理した.
• 関連情報を統合的に表示する 等.
• 知識グラフを継続的に改善する 等.
本稿で示したこと
46
ありがとうございました
47
イラスト・写真
https://www.irasutoya.com/
https://www.photo-ac.com/
https://pixabay.com/
参考資料
48
(参考)ベイジアンネットワークの概要(1)
③GC処理が長
時間化
①メモリ解放量
が過大
②メモリ断片化が発
生
解放量過大 断片化 GC長時間化
T F
T T 0.9 0.1
T F 0.7 0.3
F T 0.6 0.4
F F 0.1 0.9
解放量
過大
断片化
T F
T 0.8 0.2
F 0.1 0.9
解放量過大
T F
0.4 0.6
親ノードの条件
の組み合わせ
親ノードの各条件に対
応した確率(条件付き
確率)
49
(参考)ベイジアンネットワークの概要(2)
解放量過大 断片化 GC長時間化
T F
T T 0.9 0.1
T F 0.7 0.3
F T 0.6 0.4
F F 0.1 0.9
解放量
過大
断片化
T F
T 0.8 0.2
F 0.1 0.9
解放量過大
T F
0.4 0.6
③GC処理が長
時間化
①メモリ解放量
が過大
②メモリ断片化が発
生
0.4
0.6
0.38
0.62
0.57
T
F
T
F
T
F
𝑷 𝑪 𝑬 =
𝑷 𝑬 𝑪 𝑷 𝑪
Ʃ𝑷 𝑬 𝑪′
𝑷 𝑪′
0.43
観測値が何も無い
ときの確率を計算
する(事前確率)
50
(参考)ベイジアンネットワークの概要(3)
解放量過大 断片化 GC長時間化
T F
T T 0.9 0.1
T F 0.7 0.3
F T 0.6 0.4
F F 0.1 0.9
解放量
過大
断片化
T F
T 0.8 0.2
F 0.1 0.9
解放量過大
T F
0.4 0.6
③GC処理が長
時間化
①メモリ解放量
が過大
②メモリ断片化が発
生
0.84
1.0
0.0
T
F
T
F
T
F
(1) エビデンス
(観測値)の設定
0.87
(2) 確率伝搬
(2) 確率伝搬
0.16
0.13
観測値が得られた場合,
確率を再計算する
(事後確率)
51

情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information system trouble shooting

Editor's Notes

  • #50 Now we are going to see the conditional probabilities a little deeper. In a Bayesian network, the conditional probabilities are in form of tables, which is called conditional probability table. We call it CPT as a short form. In a Bayesian network, every node has a CPT, which contains probabilities of each condition of parent nodes.
  • #51 Then, it calculate the prior probabilities. With the formula on the screen, probability of a cause C when Effect E has given is calculated. We call it “Probability of C given E”. (Probability of E given C by Probability of C over sum of all probabilities of E given every C by probability of every C.) They are the hypothesis before taking any evidence into account.
  • #52 And, then, you obtain an evidence, which indicate that the old generation of Java heap is fragmented, it is set to the model. The probability of T on the node No.2 become ONE.point.ZERO. The change propagate to the other nodes. As you see, the probabilities of T on the other nodes also become high. In that manner, utilizing evidences, taking them into account, we can narrow down the true root cause.