HOME > 研究内容 > Network-AI技術 > 主な研究成果紹介
【研究成果】
研究成果1
将来ネットワークへのネットワーク仮想化技術導入に伴い、柔軟なネットワーク運用や設備の効率化への期待がこれまで以上に高まります。その一方で、同一の物理サーバやストレージ等のICTリソースが多様なサービスへ用いられることで、障害や想定外トラヒック発生時のリソース競合による他サービスへの影響回避が懸念され、リソースの設計管理技術の高度化が必要となります。
我々は高度化したトラヒック予測技術の活用に加え、物理リソースの空き状況を任意のトラヒック経路についてプロアクティブに最大化しておくことで、想定外のトラヒック増加やサービス事業者からの新規需要に対して最大限対応可能とする、ロバストなネットワークを実現する技術に取り組んでいます。
図1 仮想ネットワークのリソース最適化技術のイメージ図
図をクリックすると、拡大図が別ウィンドウで開きます。
研究成果2
ネットワークの状態を推定するためのデータ源としては、装置が出力するアラート、状態変化等を示すシスログ、さらにリンク、CPU等リソース使用率の性能ログが挙げられます。また、それ以外にいわゆる試験呼によるサービス監視情報、さらにお客様申告やtwitterなどのネットワーク外部のデータもネットワーク状態推定に利用可能です。これらデータ源を組み合わせて、ネットワーク状態を推定します。
ただし、シスログはベンダ依存の自由フォーマットのテキストログであり、統計処理が困難であることに加え、1行1メッセージの形式であるが、状態変化によっては複数メッセージに渡って発生するものもあり、この場合複数メッセージをグルーピングして状態変化を検出する必要があるという課題があります。これらの課題に対して、我々は機械学習を用いたアプローチを検討しています。具体的には多数のシスログデータからパラメータ部を推定し、同部分を無視することにより同種のログをグルーピングするベンダ非依存、事前知識不要なテンプレート化技術、さらに同時に発生しやすいメッセージをグルーピングするイベント抽出技術を確立しました[1](図2)。
また、これらデータ源から推定した状態に基づき故障検知を行います。従来の故障検知は、シスログの特定文字列発生や性能ログの閾値超過などのルールによるものが一般的でした。しかし、いわゆる故障か故障でないか判別が困難な事象に対して、ルールベースの監視では偽陽性、偽陰性の課題があり、機械学習の適用によりこれら課題を解決出来る可能性があります。機械学習による異常検出は、主に過去に発生した故障と関連する状態を学習し、その状態を故障状態、及び予兆として検知するアプローチと通常状態から統計的に逸脱を異常として検知するアプローチに大別されます。後者は未知故障に対しても適用可能であるという特徴がある反面、発生事象の特定が困難であるという課題があります。我々は故障時に特異に発生するシスログの抽出や、周期性や発生頻度が低いシスログを抽出する双方のアプローチで異常検知する技術を確立しています[2]。
■参考文献:
[1] Tatsuaki Kimura, et.al., “Spatio-temporal Factorization of Log Data for Understanding Network Events,” IEEE INFOCOM’14, May 2014.
[2] Tatsuaki Kimura, et.al., “Proactive Failure Detection Learning Generation Patterns of Large-scale Network Logs”, CNSM 2015, November 2015.
研究成果2-図: シスログ分析による故障検知技術のイメージ
図をクリックすると、拡大図が別ウィンドウで開きます。
研究成果3
巨大な通信ネットワークを安定して維持し続けるためには、通信ネットワークで起こる多様な故障の迅速な復旧が必要不可欠です。 このためには故障対応手順を定型化して、故障発生時にオペレータは定型化された手順に基づいて迅速に行動することが重要です。 しかし、近年発達している仮想化技術などを用いて大規模化・複雑化した通信ネットワークでは、多様な故障の復旧作業に様々な知識を必要とされ、個人の知識に頼った属人的な対応も見受けられます。 そのため、故障対応手順の定型化は、多くの知識が求められるとともに、属人的に蓄積された暗黙知を明らかにする非常に難しい業務です。
我々は、故障対応手順の定型化を自動で実現する技術の確立を目指し、故障対応時にオペレータが自らの行動を記述した作業記録を分析して、過去の故障対応の手順を可視化したワークフローを自動生成する技術を確立しました[1]。作業記録とは、故障対応時に故障の発生状況や実施作業をオペレータが自由記述したテキストデータです。大量に蓄積された作業記録は、故障対応の手順やノウハウが残された貴重な情報源ですが、人の手で書かれる自由記述のテキストデータであるため、簡単には内容の分析が出来ません。我々の技術では、(1)機械学習技術を用いてオペレータの実施した対応手順だけを抽出し、(2)記述の異なる複数の作業記録の対応手順を統合して、(3)オペレータの行動の変化点を自動で見つけ出すことで、故障時のオペレータの行動を示したワークフローを自動的に可視化できます(図1) 。
ワークフローによる故障対応手順の可視化で、多量の知識が必要かつ暗黙知であるために定型化が難しい故障対応の手順を簡単に把握できるようにします。これにより、オペレータによる迅速で的確な故障対応をサポートします。また、今後はテキストデータの記述内容の可視化技術を応用して、様々なオペレーションの効率化に向けた技術についても、研究開発を進めていく予定です。
[1] Akio Watanabe, Keisuke Ishibashi, Tsuyoshi Toyono, Tatsuaki Kimura, Keishiro Watanabe, Yoichi Matsuo, and Kohei Shiomoto, " Workflow Extraction for Service Operation using Multiple Unstructured Trouble Tickets,” IEEE/IFIP NOMS 2016, pp. 652-658, 2016.
研究成果3-図: ワークフロー可視化の技術構成
図をクリックすると、拡大図が別ウィンドウで開きます。
研究成果4
※[1]から引用
NTTネットワーク基盤技術研究所では、ネットワーク状態変化の早期検知を目的として、オートエンコーダ(AE)を活用したネットワーク異常検知技術の開発に取り組んでいます[2][3][4]。AEは、データに内在する複雑な構造の学習を可能とするディープラーニングの一種であり、AEによる異常検知技術に注目が集まっています。
AEでは中間層の次元を入出力層より少なく設定し、入力層のデータを出力層で再現するようにパラメータを学習することで、中間層においてデータの次元削減がおこなわれます。AEを用いた異常検知では、正常なデータは入力データ空間上において、低次元表現が可能なある多様体の周辺に分布するという前提に基づいています。具体的には、図で示すように、学習時には、ネットワークが正常に動作している期間に観測した各種データによって「正常な状態」を学習し、テスト(異常検知)時には、現時点のデータが上記のように学習されたAEに入力され、入出力層のベクトル間の距離を異常度として出力します。異常度が閾値を越えると異常として検知します。
図をクリックすると、拡大図が別ウィンドウで開きます。
なお、入力するネットワークデータとしては、SNMP/MIBに基づくリソース・トラヒック情報やNetflowに基づくフローデータといった数値データに加え、テキスト情報であるルータやサーバのsyslogも対象としています。syslogは、syslog分析技術[5]を用いてID化し、各IDの出現回数を用いてテキストデータから数値データに変換します。こうすることで、syslogも含めた学習を可能としています。
さらに、異常を検知するだけでなく、異常検知時にその要因を推定するための検討も進めています[6]。具体的には、AEによって異常が検知されたら、どの入力次元が原因で異常度が高くなったかをスパース最適化によって推定する技術を検討しています。この技術では、異常度に対する各入力次元の寄与度を算出しており、これにより異常検知後の切り分け作業の効率化が期待できます。
研究成果5
※[1]から引用
ICTシステムの大規模化・複雑化に伴い、発生する障害の種類が増え、異常の要因も多様になり、障害の根本原因の推定が困難になってきています。そこで、NTTネットワーク基盤技術研究所では、オペレータによる迅速な根本原因の推定を支援するための要因推定技術の開発に取り組んでいます。
要因推定の中で特に重要となる故障箇所の推定という観点では、ある機器の故障による異常発生時に、その影響が伝播して様々な機器でアラートが発生すると、故障箇所の推定が困難になると考えられます。この問題を解決するため、以下のアプローチで故障箇所推定技術の検討を進めています。まずネットワークトポロジーから各機器の状態(正常か異常か)と観測データの値 (例えばアラートが発生しているかどうか) の因果グラフを規定します。因果グラフでは機器の状態と観測データに因果関係がある場合にこれらを矢印でつなぎ、因果関係の度合いを確率で表します。例えば、分析対象となる機器とネットワークでつながっている機器の観測データに因果関係がある場合、これらを矢印でつなぐことになります。本因果グラフに従って、アラートが観測されたときに異常機器を推定する問題 (アラートが観測されたという条件の下での確率を最大にするような異常機器を計算)として扱っています。
図をクリックすると、拡大図が別ウィンドウで開きます。
さらに本研究では、観測状態が不正確 (故障時にアラートを上げない場合など)であったり、事前に想定した因果関係以外へも影響が出るような、非定型故障を対象にした検討を進めています[2]。
また、異常検知技術(DeAnoS)との連携技術の検討も進めています。アラートの代わりにDeAnoSが出力する異常への寄与度を入力とし、要因を推定することで、異常検知から要因の推定までを自動で行うことができます。またそれにより精度も向上することを実験により確認しました。[3]
今後、実データを用いた技術検証を進めて、要因推定の精度向上、より実運用に適したモデル化方法の検討など、技術のブラッシュアップに取り組みます。
研究成果6
※[1]から引用
ICTシステムの大規模化・複雑化に伴い、発生する障害の種類も多岐にわたり、復旧措置に多くの人手と時間を要することが増えています。NTTネットワーク基盤技術研究所では、オペレータによる迅速な復旧措置を支援するとともに、復旧措置の自動化を実現するために、復旧コマンド列を自動生成する技術の開発に取り組んでいます。[2]
復旧コマンド列自動生成技術の概要を図1に示します。本技術では、図2で示すように、入力系列と出力系列の関係性を学習するニューラルネットワークモデルの1つであるSequence to Sequence(Seq2Seq)を用いて復旧コマンド列を推定します。Seq2Seqは、翻訳システムや対話システムにおいて広く用いられています。ここでは、入力系列として、過去の障害における個々のログやアラームにログテンプレート化技術[3]を適用し自然数のIDを付与することで作成した数列を用い、出力系列として、それらの障害に対応する復旧コマンド列を構成する単語の列を用います。これらの入力系列および出力系列の関係性を学習することで、新たな障害発生時には、出現したログまたはアラームを入力し、当該の障害を復旧させるコマンド列を推定します。
図をクリックすると、拡大図が別ウィンドウで開きます。
図をクリックすると、拡大図が別ウィンドウで開きます。
このようにして推定したコマンド列を実行するうえでは、推定結果が信頼できるものであるか、またそのコマンド列の実行がシステムに悪影響を与えないかを判断する必要があります。本技術では、得られた復旧コマンド列を構成する各単語の生成確率の積を算出し、そのコマンド列の信頼度とします。これは、得られたコマンド列によりシステムが復旧する確度と解釈することができます。また、過去の復旧コマンド実行時のシステムの性能値や可用性への影響に基づいて、得られたコマンド列のシステムへの影響度を算出します。これらの指標は、得られたコマンド列を実行するかどうかの判断に用いることができると考えています。
今後、実データを用いた技術検証を進めて、復旧コマンド列の推定精度の向上、より実運用に適した信頼度や影響度の定義 ・ 算出方法の検討など、技術のブラッシュアップに取り組みます。また、得られた復旧コマンド列を将来的に自動実行するための課題を抽出し、それらを解決するための研究開発を行います。