JP6858798B2 - 特徴量生成装置、特徴量生成方法及びプログラム - Google Patents

特徴量生成装置、特徴量生成方法及びプログラム Download PDF

Info

Publication number
JP6858798B2
JP6858798B2 JP2018565935A JP2018565935A JP6858798B2 JP 6858798 B2 JP6858798 B2 JP 6858798B2 JP 2018565935 A JP2018565935 A JP 2018565935A JP 2018565935 A JP2018565935 A JP 2018565935A JP 6858798 B2 JP6858798 B2 JP 6858798B2
Authority
JP
Japan
Prior art keywords
text data
numerical
learning
vector
numeric
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018565935A
Other languages
English (en)
Other versions
JPWO2018142694A1 (ja
Inventor
泰弘 池田
泰弘 池田
中野 雄介
雄介 中野
敬志郎 渡辺
敬志郎 渡辺
石橋 圭介
圭介 石橋
川原 亮一
亮一 川原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2018142694A1 publication Critical patent/JPWO2018142694A1/ja
Application granted granted Critical
Publication of JP6858798B2 publication Critical patent/JP6858798B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2155Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the incorporation of unlabelled data, e.g. multiple instance learning [MIL], semi-supervised techniques using expectation-maximisation [EM] or naïve labelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、特徴量生成装置、特徴量生成方法及びプログラムに関する。
コンピュータシステムのリアルタイムな異常検知の方法として、システム上の様々なデータを定期的に観測し、データが正常時と異なる傾向を示した場合に「異常」として検知するアルゴリズムが考えられる。
例えば、予め正常時として定義された「学習期間」のデータが教師データとして用いられて学習され、異常検知を行う「テスト期間」においては、観測されたテストデータの傾向と、学習した教師データの傾向との比較が行われる異常検知アルゴリズムが考えられる。
異常検知アルゴリズムとしては様々な手法が提案されているが、その多くにおいて入力されるデータは正規化された数値ベクトルで表現されることが望まれる(例えば、非特許文献1、非特許文献2参照)。
櫻田 麻由,矢入 健久,"オートエンコーダを用いた次元削減による宇宙機の異常検知", 人工知能学会全国大会論文集 28, 1-3, 2014 Banerjee, Amit, Philippe Burlina, and Chris Diehl. "A support vector method for anomaly detection in hyperspectral imagery." IEEE Transactions on Geoscience and Remote Sensing 44.8 (2006): 2282. Kimura, Tatsuaki, et al. "Proactive failure detection learning generation patterns of large-scale network logs." Network and Service Management (CNSM), 2015 11th International Conference on. IEEE, 2015. Mikolov, Tomas, et al. "Efficient estimation of word representations in vector space." arXiv preprint arXiv:1301.3781 (2013). Mitchell, Jeff, and Mirella Lapata. "Composition in distributional models of semantics." Cognitive science 34.8 (2010): 1388-1429.
ネットワークにおける観測データに基づいて異常検知を行う場合、観測データには各ホストにおけるログメッセージ(例えば、syslogのメッセージ)のような非数値のテキストデータが含まれることが考えられる。しかし、このような非数値のテキストデータは異常検知を行うのに適しておらず、異常検知のための数値ベクトルへと変換するための工夫が必要である。
本発明は、上記の点に鑑みてなされたものであって、非数値のテキストデータが異常の検知対象から収集されるデータに含まれる場合に、非数値のテキストデータから異常検知のための特徴量の生成を行うことを目的とする。
そこで上記課題を解決するため、特徴量生成装置は、異常の検知対象から複数のタイミングで収集される非数値のテキストデータを数値化し、当該数値化されたデータに応じた特徴量を要素とする数値ベクトルを生成する生成部と、テスト期間において、前記生成部によって生成された数値ベクトルごとに、当該数値ベクトルと、学習期間において出力された学習結果とに基づいて異常を検知する検知部とを有し、
前記学習結果は、前記学習期間において異常の検知対象から複数のタイミングで収集される非数値のテキストデータを数値化し、当該数値化されたデータに応じた特徴量を要素とする数値ベクトルを生成し、当該数値ベクトルを学習することにより生成されたものであり、
前記生成部は、前記非数値のテキストデータ又は前記非数値のテキストデータの単語にIDを付与し、前記学習期間において付与されたIDの総数に所定数のIDの個数を追加した数を次元数として各IDの出現回数に応じた特徴量を要素とする数値ベクトルを生成し、
前記テスト期間における非数値のテキストデータ又は非数値のテキストデータの単語が、前記学習期間においてIDが付与されていない未知のテキストデータ又は未知の単語である場合、当該非数値のテキストデータ又は当該非数値のテキストデータの単語に前記所定数のIDのいずれかを付与して数値ベクトルを生成する
また、特徴量生成装置は、異常の検知対象から複数のタイミングで収集される非数値のテキストデータを数値化し、当該数値化されたデータに応じた特徴量を要素とする数値ベクトルを生成する生成部と、テスト期間において、前記生成部によって生成された数値ベクトルごとに、当該数値ベクトルと、学習期間において出力された学習結果とに基づいて異常を検知する検知部とを有し、
前記学習結果は、前記学習期間において異常の検知対象から複数のタイミングで収集される非数値のテキストデータを数値化し、当該数値化されたデータに応じた特徴量を要素とする数値ベクトルを生成し、当該数値ベクトルを学習することにより生成されたものであり、
前記生成部は、前記非数値のテキストデータ又は前記非数値のテキストデータの単語にIDを付与し、前記学習期間において付与されたIDの総数を次元数として各IDの出現回数に応じた特徴量を要素とする数値ベクトルを生成し、
前記学習期間において付与されなかったIDが前記テスト期間における非数値のテキストデータ又は非数値のテキストデータの単語で出現した場合、当該非数値のテキストデータ又は当該非数値のテキストデータの単語を無視する。
非数値のテキストデータが異常の検知対象から収集されるデータに含まれる場合に、非数値のテキストデータから異常検知のための特徴量の生成を行うことができる。
第1の実施の形態におけるシステム構成例を示す図である。 第1の実施の形態における異常検知装置10のハードウェア構成例を示す図である。 第1の実施の形態における異常検知装置10の機能構成例を示す図である。 第1の実施の形態における学習処理の処理手順の一例を説明するためのフローチャートである。 第1の実施の形態における検知処理の処理手順の一例を説明するためのフローチャートである。 オートエンコーダを説明するための図である。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、第1の実施の形態におけるシステム構成例を示す図である。図1において、ネットワークN1は、異常の検知対象とされるネットワークである。ネットワークN1は、ルータやサーバ装置等の複数のノードが相互に接続されることによって構成され、所定のサービスを提供するために任意のノード間においてパケットの送受信が行われる。
ネットワークN1の複数箇所には測定装置20が配置されている。測定装置20は、配置箇所を監視することで得られる観測データを複数のタイミングで採取する。収集される観測データの一例として、syslogのメッセージのような非数値のテキストデータ等が挙げられる。
syslogは、測定装置20がログメッセージをネットワーク上で転送するための規格である。syslogで転送されるログメッセージは、「時刻、メッセージ、ホスト」等を含む。時刻は、メッセージが出力された時刻であり、以下の説明では「タイムスタンプ」と呼ばれる。メッセージは測定装置20が出力したメッセージの内容であり、非数値のテキストデータである。ホストは、メッセージを出力した測定装置20を識別するための識別子である。
測定装置20によって採取された観測データは、異常検知装置10によって収集される。異常検知装置10は、収集された観測データから、正常時の特徴を学習し、学習結果に基づいて、その後に入力される観測データについて、異常の発生を検知する(異常の有無を判定する)コンピュータである。なお、正常時の特徴の学習が行われる処理を「学習処理」といい、学習処理が行われる期間を「学習期間」という。学習処理において学習された結果に基づいて異常の検知が行われる処理を「テスト処理」といい、テスト処理が行われる期間を「テスト期間」という。
図2は、第1の実施の形態における異常検知装置10のハードウェア構成例を示す図である。図2の異常検知装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。
異常検知装置10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って異常検知装置10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
図3は、第1の実施の形態における異常検知装置10の機能構成例を示す図である。図3において、異常検知装置10は、受信部11、学習処理制御部12、前処理部13、学習部14、検知処理制御部15及び検知部16等を有する。これら各部は、異常検知装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。異常検知装置10は、また、教師データ記憶部121、パラメータ記憶部122、観測データ記憶部123、学習結果記憶部124、学習データ記憶部125及び辞書データ記憶部126等を利用する。これら各記憶部は、例えば、補助記憶装置102、又は異常検知装置10にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
教師データ記憶部121には、予め正常時に収集されたことが確認されている観測データが教師データとして記憶されている。但し、教師データは、観測データから選別されるのではなく、人為的に作成されてもよい。
受信部11は、測定装置20から観測データを受信する。受信された観測データは、観測データ記憶部123に記憶される。
学習処理制御部12は、学習処理を制御する。
前処理部13は、教師データの集合、観測データの集合、又は学習データ記憶部125に記憶されている学習データの集合について前処理を実行する。前処理とは、データ集合からの単位時間ごとの特徴量の抽出や、抽出された特徴量の正規化等の処理である。特徴量は、数値ベクトルの形式で表現される。非数値のテキストデータは、ID等によって数値ベクトル化され、特徴量が抽出される。数値ベクトル化には、辞書データ記憶部126に予め記憶された、テキストデータを数値化するための辞書が利用されてもよい。なお、学習期間には、教師データ記憶部121に記憶されている教師データ群が前処理の対象とされる。テスト期間において、受信部11によって観測データの受信が開始されると、観測データ群が前処理の対象とされる。更に、検知部16による異常の検知が開始され、正常であると判定され、学習データとして学習データ記憶部125に記憶された観測データが所定数に達すると、当該学習データ群が前処理の対象とされてもよい。
前処理部13は、また、教師データ群又は学習データ群について前処理を実行する際に、観測データ又は学習データを正規化するためのパラメータ(以下、「正規化パラメータ」という。)を生成又は更新し、生成又は更新された正規化パラメータをパラメータ記憶部122に記憶する。また、前処理部13は、メッセージに付与したIDをパラメータ記憶部122に記憶する。
学習部14は、教師データ又は学習データに基づいて学習を実行する。学習部14による学習結果は、学習結果記憶部124に記憶される。
検知処理制御部15は、検知処理を制御する。
検知部16は、観測データ記憶部123に記憶されている観測データが前処理部13によって前処理されることで生成される数値ベクトルと、学習結果記憶部124に記憶されている学習結果とに基づいて異常の発生を検知する。具体的には、検知部16は、前処理された数値ベクトルについて、学習結果との違いを異常度として算出し、当該異常度を閾値と比較することで異常の発生を検知する。異常が検知されなかった数値ベクトルの正規化前の値は、学習データとして学習データ記憶部125に記憶されてもよい。
以下、異常検知装置10が実行する処理手順について説明する。図4は、第1の実施の形態における学習処理の処理手順の一例を説明するためのフローチャートである。
学習処理が開始されると、学習処理制御部12は、教師データ記憶部121から教師データ群を取得し、当該教師データ群を前処理部13へ入力する(S101)。
続いて、前処理部13は、入力された教師データ群を、単位時間ごとの集合に分割する(S102)。なお、教師データ記憶部121には、単位時間×Uの期間(学習期間)分の教師データが記憶されていることとする。したがって、教師データ群は、U個の集合に分割される。
続いて、前処理部13は、分割された集合ごとに、目的に応じた特徴量を抽出し、抽出された特徴量を各次元の要素とする多次元数値ベクトルを生成する。
例えば、単位時間が1分で、前処理部13が、1分間ごとの特徴量を抽出するとする。教師データがsyslogのメッセージであるとすると、教師データは、タイムスタンプの付いたテキストデータの集合ltrain_d={wtrain_{d,w}}(d=1,...,D,w=1,...,W_d,D:教師データの数,W_d:d番目のテキスト)として表され、例えば下記のような「タイムスタンプ」と「テキスト」の属性を持ったフォーマットを取る。
タイムスタンプ テキスト
12:00:00 I have a pen
12:00:03 I have an apple
・・・
前処理部13は、教師データの各テキストltrain_1,ltrain_2,...ltrain_Dに対して、何らかの方法で各テキストに対応したIDを付与することによってテキストデータを数値化する(S103)。IDが付与された教師データは下記のような「タイムスタンプ」「ID」の属性を持ったフォーマットを取る。
タイムスタンプ ID
12:00:00 0
12:00:03 1
・・・
ここで、0は「I have a pen」に、1は「I have an apple」に与えられたIDである。テキストに対してIDを付与する方法としては、テキストの集合を与えることで、テキストに対する事前知識を要すること無く、同内容のテキストに同じIDを割り当てることができる技術等が考えられる(例えば、非特許文献3参照)。
先頭の教師データのフロー開始時刻が12:00:00であるとすると、前処理部13は、全教師データのうち、フロー開始時刻tが11:59:00<=t<12:00:00であるような教師データの集合について、各IDiの出現回数xtrain_{τtrain,i}(τtrain:出現回数の計算対象となる単位時間)を計算する。前処理部13は、IDの総数Mを次元数として各IDの出現回数に応じた特徴量を要素とする数値ベクトルの時系列データを生成する(S104)。例えば、教師データのタイムスタンプが12:59:59までであり、付与されたIDの総数が3であった場合、要素を単純に出現回数とすると、時系列データは下記のようなフォーマットを取る。
時間 ID_0 ID_1 ID_2
12:00 2 1 0
12:01 1 2 3
12:02 0 3 3
・・・
12:59 3 0 1
なお、ここで付与された全ID(ここでは{0,1,2})については、パラメータ記憶部122に記憶される。
続いて、前処理部13は、各数値ベクトルにおける各メトリックi(各IDiの出現回数)の最大値xmax_iを算出し、算出したxmax_iをパラメータ記憶部122に記憶する(S105)。すなわち、第1の実施の形態において、各メトリックiの最大値xmax_iが、正規化パラメータである。
上記の時系列データの場合、これらの数値ベクトルの各メトリックの最大値xmax_iは、{3,3,3}である(すなわち、xmax_1=3,xmax_2=3,xmax_2=3である)。
続いて、前処理部13は、正規化パラメータに基づいて、各数値ベクトルを正規化する(S106)。正規化は、各数値ベクトルのメトリックiの値が最大値xmax_iによって除されることにより行われる。したがって、正規化された数値ベクトルの時系列データは下記のようなフォーマットを取る。
時間 ID_0 ID_1 ID_2
12:00 0.66 0.33 0
12:01 0.33 0.66 1
12:02 0 1 1
・・・
12:59 1 0 0.33
続いて、学習部14は、当該数値ベクトルについて学習器を利用して学習する(S107)。学習結果は、学習結果記憶部124に記憶される。
図5は、第1の実施の形態における検知処理の処理手順の一例を説明するためのフローチャートである。図5の処理手順は、図4のステップS107が少なくとも1回実行された後であれば、いつ開始されてもよい。すなわち、図5の処理手順は、図4の処理手順と並行して実行される。
ステップS201において、検知処理制御部15は、単位時間の経過を待機する。当該単位時間は、図4の説明における単位時間と同じ時間長である。この待機中に、リアルタイムに収集され、受信部11によって受信された観測データは観測データ記憶部123に記憶される。
単位時間が経過すると(S201でYes)、検知処理制御部15は、直近の単位時間分の観測データ群を観測データ記憶部123から取得し、当該観測データ群を前処理部13へ入力する(S202)。
続いて、前処理部13は、当該観測データ群から目的に応じた特徴量を抽出し、抽出された特徴量を各次元の要素とする多次元数値ベクトルを生成する。例えば、前処理部13は、観測データの各テキストltest_t={wtest_{t,w}}(t=1,...,T,w=1,...,W_t,T:異常検知対象となる全時間,W_t:時間tにおけるテキスト)に対して、ステップS103と同様にIDを付与することによって数値化する(S203)。また、前処理部13は、ステップS104と同様に各IDの出現回数を計算する(S204)。このとき、パラメータ記憶部122に記憶されている、教師データに付与された全IDを参照し、教師データに付与されなかったIDが観測データで出現した場合、出現回数をカウントせず、観測データを無視する。そのため、ID_0、ID_1、ID_3の3つのIDを用いる例では、3次元の数値ベクトルが生成される。
続いて、前処理部13は、生成された数値ベクトルを、パラメータ記憶部122に記憶されている最大値xmax_iに基づいて正規化する(S205)。すなわち、当該数値ベクトルの各メトリックiが、最大値xmax_iによって除算される。
続いて、検知部16は、異常判定処理を実行する(S206)。異常判定処理では、正規化された数値ベクトルと、学習結果記憶部124に記憶されている最新の学習結果とに基づいて、ネットワークN1について異常の有無が判定される。
異常が無いと判定された場合、検知処理制御部15は、当該数値ベクトルの正規化前の数値ベクトルを、学習データとして学習データ記憶部125に記憶してもよい。異常が有ると判定された場合、当該数値ベクトルの正規化前の数値ベクトルは、学習データ記憶部125に記憶されない。したがって、学習データ記憶部125には、正常時の数値ベクトルのみが記憶される。
図4のステップS107において、学習部14は、教師データを用いて学習器を生成する。学習器としては数値ベクトルのメトリック間の相関関係の学習による異常検知を行うオートエンコーダ(非特許文献1)や主成分分析等を用いることができる。主成分分析については、例えば、「Ringberg, Haakon, et al. "Sensitivity of PCA for traffic anomaly detection." ACM SIGMETRICS Performance Evaluation Review 35.1 (2007): 109-120.」に詳しい。本実施の形態では、学習器にオートエンコーダを用いる例について説明する。
図6は、オートエンコーダを説明するための図である。オートエンコーダは、ディープラーニングによる異常検知アルゴリズムである。オートエンコーダは、正常時の入力データがメトリック間で相関関係を持ち、低次元に圧縮可能であることを利用する。異常時には入力データの相関関係が崩れるため、圧縮が正しく行われず入力データと出力データとの差が大きくなる。
図6の(1)に示されるように、学習部14が生成する学習器(オートエンコーダ)は、出力層(Layer L)が入力層(Layer L)に近くなるように学習を行う。具体的には、学習部14は、数値ベクトルを2つに複製し、一方を入力層へ当てはめ、他方を出力層に当てはめて学習を行い、学習結果を出力する。学習結果は、学習結果記憶部124に記憶される。学習結果は、学習器に対するパラメータ群である。なお、学習器は、データ種別ごとに生成されるため、学習結果もデータ種別ごとに出力され、学習結果記憶部124に記憶される。
一方、検知部16も、学習部14と同様に学習器を生成する。当該学習器には、学習部14によって生成される学習器と同様にオートエンコーダ又は主成分分析等のうち、学習部14が生成する学習器に対応する方法を用いることができる。
図5のステップS206において、検知部16は、学習結果記憶部124に記憶されている学習結果に基づいて、学習器を生成する。すなわち、検知部16によって生成される学習器は、当該学習結果の出力時において学習部14によって生成された学習器と同じである。検知部16は、学習器に対する入力データと出力データとの距離(メトリック間の相関関係の崩れの程度を示す指標)を異常度として計算する。本実施の形態ではオートエンコーダの入力層と出力層との距離である平均二乗誤差(MSE:Mean Squared Error)が異常度として計算される。MSEの計算式は、以下の通りである。
Figure 0006858798
本実施の形態では、メッセージの出現回数のMSEが得られる。検知部16は、得られたMSEの平均を、最終的な異常度として計算し、最終的な異常度が予め定められた閾値を超えていた場合に異常であると判定する。そうでない場合、検知部16は、正常とであると判定する。
上述したように、第1の実施の形態によれば、非数値のテキストデータから異常検知を行うための特徴量が生成される。したがって、非数値のテキストデータが教師データ及び観測データに含まれる場合であっても、異常検知を行うことができる。
次に、第2の実施の形態について説明する。第2の実施の形態では第1の実施の形態と異なる点について説明する。第2の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。
第2の実施の形態では、図4のステップS104において、IDの総数Mを次元数とするのではなく、IDの総数Mに所定数のIDの個数Kを追加した数M+Kを次元数とする。教師データにおいてはM+1〜M+K番目の要素を全て0とする。例えば、K=1の場合、第1の実施の形態における時系列データの例では、下記のように「ID_*」の次元を加え、その要素は全て0とする。
時間 ID_0 ID_1 ID_2 ID_*
12:00 2 1 0 0
12:01 1 2 3 0
12:02 0 3 3 0
・・・
12:59 3 0 1 0
また、図5のステップS204において、教師データに付与されなかったIDが観測データで出現した場合、「ID_*」の要素で表現を行う。表現方法としては、教師データには付与されなかったIDの出現回数を要素とする方法や、教師データには付与されなかったIDが存在した場合に1とし、そうでない場合に0とする方法が考えられる。後者の例は、教師データに付与されなかったIDの出現回数が1以上である場合に1とし、そうでない場合に0とすると表現されてもよい。また、K>1の場合、複数の未知のIDが出現した場合に、それらをK種類に分類して、M+1〜M+Kの次元でそれぞれ表現する場合が考えられる。例えば、n番目に出現した未知のIDについては,M+mod(n,K)番目の次元で表現するとした場合、1番目に出現した未知のIDについてはM+1番目の次元で表現し、2番目に出現した未知のIDについてはM+2番目の次元で表現し、・・・、K番目に出現した未知のIDについてはM+K番目の次元で表現し、K+1番目に出現した未知のIDについてはM+1番目の次元で表現し、・・・といったように振り分けられる。
第2の実施の形態によっても、第1の実施の形態と同様の効果を得ることができる。また、教師データに出現しなかったIDが観測データで出現しても、M+1〜M+Kの次元で表現できるため、未知のログに関しても、異常検知を行うことができる。
次に、第3の実施の形態について説明する。第3の実施の形態では第1の実施の形態と異なる点について説明する。第3の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。
第3の実施の形態では、図4のステップS103において、テキストにIDを付与するのではなく、テキスト内の単語にIDを付与する。ここでは単語とIDの対応関係を表す辞書を用いるが、辞書は予め辞書データ記憶部126に保存しておくか、教師データに基づいて生成する方法が考えられる。教師データに基づいて生成する場合、テキスト内での出現順にIDを付与すると仮定すると、第1の実施の形態における教師データの例では、{0:I, 1:have, 2:a, 3:pen, 4:an, 5:apple,・・・}のように辞書が生成される。前処理部13は、下記のように「タイムスタンプ」「出現ID」の属性を持ったフォーマットを取る教師データを生成する。
タイムスタンプ 出現ID
12:00:00 {0,1,2,3}
12:00:03 {0,1,4,5}
・・・
ここで付与された全ID(ここでは{0,1,2,3,4,5})については、パラメータ記憶部122に記憶される。
図4のステップS104において、前処理部13は、上記のような教師データに基づいて、IDの総数Nを次元数として各IDの出現回数に応じた特徴量を要素とする数値ベクトルの時系列データを生成する。数値ベクトル化の方法としては、付与されたIDの総数Nを次元とし、対応するIDが出現した場合に1とし、そうでない場合に0とするような方法が考えられる。すなわち、IDの出現回数が1以上である場合に1とし、そうでない場合に0とする。
例えば、上記の例において、付与されたIDの総数が6である場合、下記のように「タイムスタンプ」「数値ベクトル」を要素とするデータが生成される。
タイムスタンプ 数値ベクトル
12:00:00 {1,1,1,1,0,0}
12:00:03 {1,1,0,0,1,1}
・・・
また、出現回数を要素の値とする方法も考えられる。例えば、テキスト内に「pen」が2回出現する場合、その単語の数値ベクトルを2とする。前処理部13は、上記のデータに基づいて、単位時間毎の数値ベクトルの時系列データを生成する。タイムスタンプ毎の数値ベクトルを単位時間あたりの数値ベクトルへと集約する方法としては、例えば重心を取る方法等が考えられる。上記の例で、12:00:00〜12:00:59までに出現したテキストが上記の2件だけである場合、重心を取ることで下記のような時系列データが生成される。
時間 数値ベクトル
12:00 {1,1,0.5,0.5,0.5,0.5}
図5のステップS203においても同様に、観測データのテキスト内の単語にIDを付与する。図5のステップS204において、パラメータ記憶部122に記憶されている、教師データに付与された全IDを参照し、教師データに付与されなかったIDが観測データの単語で出現した場合、出現回数をカウントせず、その単語を無視する。そのため、ID_0〜ID_5の6個のIDを用いる例では、6次元の数値ベクトルが生成される。
第3の実施の形態によっても、第1の実施の形態と同様の効果を得ることができる。
次に、第4の実施の形態について説明する。第4の実施の形態では第3の実施の形態と異なる点について説明する。第4の実施の形態において特に言及されない点については、第3の実施の形態と同様でもよい。
第4の実施の形態では、図4のステップS104において、IDの総数Nを次元数とするのではなく、IDの総数Nに所定数のIDの個数Kを追加した数N+Kを次元数とする。教師データにおいてはN+1〜N+K番目の要素を全て0とする。例えば、K=1の場合、第3の実施の形態における時系列データの例では、下記のようにN+1番目の要素を0とする。
時間 数値ベクトル
12:00 {1,1,0.5,0.5,0.5,0.5,0}
また、図5のステップS204において、教師データに付与されなかったIDが観測データの単語で出現した場合、N+1〜N+K番目の要素で表現を行う。表現方法としては、教師データには付与されなかったIDの出現回数を要素とする方法や、教師データには付与されなかったIDが存在した場合に1とし、そうでない場合に0とする方法が考えられる。後者の例は、教師データに付与されなかったIDの出現回数が1以上である場合に1とし、そうでない場合に0とすると表現されてもよい。また、K>1の場合、複数の未知のIDが出現した場合に、それらをK種類に分類して、M+1〜M+Kの次元でそれぞれ表現する場合が考えられる。例えば、n番目に出現した未知のIDについては,M+mod(n,K)番目の次元で表現するとした場合、1番目に出現した未知のIDについてはM+1番目の次元で表現し、2番目に出現した未知のIDについてはM+2番目の次元で表現し、・・・、K番目に出現した未知のIDについてはM+K番目の次元で表現し、K+1番目に出現した未知のIDについてはM+1番目の次元で表現し、・・・といったように振り分けられる。
第4の実施の形態によっても、第3の実施の形態と同様の効果を得ることができる。また、教師データに出現しなかったIDが観測データで出現しても、N+1〜N+Kの次元で表現できるため、未知の単語が出現するログに関しても、異常検知を行うことができる。
次に、第5の実施の形態について説明する。第5の実施の形態では第3の実施の形態と異なる点について説明する。第5の実施の形態において特に言及されない点については、第3の実施の形態と同様でもよい。
第5の実施の形態では、図4のステップS103において、テキスト内の単語にIDを付与するのではなく、単語の数値ベクトル表現に基づいてテキストを数値ベクトル化する。単語への数値ベクトルの付与の方法としては、word2vecを用いた方法等が考えられる(非特許文献4参照)。例えば、{cat{0.3,0.2,0.5},dog{0.1,0.4,0.2},・・・}等の単語に対して次元Nのベクトルを付与した辞書を用いるが、辞書は予め辞書データ記憶部126に保存しておくか、教師データに基づいて生成する方法が考えられる。前処理部13は、予め用意された複数の単語の数値ベクトル表現に基づいてテキストの数値ベクトル化する。その結果、「タイムスタンプ」「数値ベクトル」を要素とするデータが生成される。
図4のステップS104において、前処理部13は、各単語に対応するベクトルを合成して数値ベクトルの時系列データを生成する。各単語に対応するベクトルの合成の方法としては、単純にベクトルの和をとる方法、重み付けの和を取る方法、要素の積を取る方法等、様々な手法が考えられる(非特許文献5参照)。
図5のステップS203においても同様に、観測データのテキストを数値ベクトル化する。図5のステップS204において、辞書に存在しない単語が観測データで出現した場合、その単語を無視する。
第5の実施の形態によっても、第3の実施の形態と同様の効果を得ることができる。
なお、上記各実施の形態は、ネットワーク以外から収集されるデータに関して適用されてもよい。例えば、コンピュータシステムから収集されるデータに関して上記各実施の形態が適用されてもよい。
なお、上記各実施の形態において、異常検知装置10は、特徴量生成装置の一例である。前処理部13は、生成部の一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
本国際出願は2017年2月2日に出願した日本国特許出願2017−017921号に基づく優先権を主張するものであり、2017−017921号の全内容を本国際出願に援用する。
10 異常検知装置
11 受信部
12 学習処理制御部
13 前処理部
14 学習部
15 検知処理制御部
16 検知部
20 測定装置
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
121 教師データ記憶部
122 パラメータ記憶部
123 観測データ記憶部
124 学習結果記憶部
125 学習データ記憶部
B バス
N1 ネットワーク

Claims (7)

  1. 異常の検知対象から複数のタイミングで収集される非数値のテキストデータを数値化し、当該数値化されたデータに応じた特徴量を要素とする数値ベクトルを生成する生成部と
    テスト期間において、前記生成部によって生成された数値ベクトルごとに、当該数値ベクトルと、学習期間において出力された学習結果とに基づいて異常を検知する検知部と、
    を有し、
    前記学習結果は、前記学習期間において異常の検知対象から複数のタイミングで収集される非数値のテキストデータを数値化し、当該数値化されたデータに応じた特徴量を要素とする数値ベクトルを生成し、当該数値ベクトルを学習することにより生成されたものであり、
    前記生成部は、前記非数値のテキストデータ又は前記非数値のテキストデータの単語にIDを付与し、前記学習期間において付与されたIDの総数に所定数のIDの個数を追加した数を次元数として各IDの出現回数に応じた特徴量を要素とする数値ベクトルを生成し、
    前記テスト期間における非数値のテキストデータ又は非数値のテキストデータの単語が、前記学習期間においてIDが付与されていない未知のテキストデータ又は未知の単語である場合、当該非数値のテキストデータ又は当該非数値のテキストデータの単語に前記所定数のIDのいずれかを付与して数値ベクトルを生成する、特徴量生成装置。
  2. 前記学習期間において付与されたIDの総数をMとし、前記所定数のIDの個数をKとするとき、
    前記生成部は、前記未知のテキストデータ又は前記未知の単語がn番目に出現した場合、前記非数値のテキストデータ又は前記未知の単語を、前記数値ベクトルのM+mod(n,K)番目の次元で表現する、請求項1に記載の特徴量生成装置。
  3. 異常の検知対象から複数のタイミングで収集される非数値のテキストデータを数値化し、当該数値化されたデータに応じた特徴量を要素とする数値ベクトルを生成する生成部と、
    テスト期間において、前記生成部によって生成された数値ベクトルごとに、当該数値ベクトルと、学習期間において出力された学習結果とに基づいて異常を検知する検知部と、
    を有し、
    前記学習結果は、前記学習期間において異常の検知対象から複数のタイミングで収集される非数値のテキストデータを数値化し、当該数値化されたデータに応じた特徴量を要素とする数値ベクトルを生成し、当該数値ベクトルを学習することにより生成されたものであり、
    前記生成部は、前記非数値のテキストデータ又は前記非数値のテキストデータの単語にIDを付与し、前記学習期間において付与されたIDの総数を次元数として各IDの出現回数に応じた特徴量を要素とする数値ベクトルを生成し、
    前記学習期間において付与されなかったIDが前記テスト期間における非数値のテキストデータ又は非数値のテキストデータの単語で出現した場合、当該非数値のテキストデータ又は当該非数値のテキストデータの単語を無視する、特徴量生成装置。
  4. コンピュータが実行する特徴量生成方法であって、
    異常の検知対象から複数のタイミングで収集される非数値のテキストデータを数値化し、当該数値化されたデータに応じた特徴量を要素とする数値ベクトルを生成する生成手順と
    テスト期間において、前記生成手順において生成された数値ベクトルごとに、当該数値ベクトルと、学習期間において出力された学習結果とに基づいて異常を検知する検知手順と、
    有し、
    前記学習結果は、前記学習期間において異常の検知対象から複数のタイミングで収集される非数値のテキストデータを数値化し、当該数値化されたデータに応じた特徴量を要素とする数値ベクトルを生成し、当該数値ベクトルを学習することにより生成されたものであり、
    前記生成手順において、前記非数値のテキストデータ又は前記非数値のテキストデータの単語にIDを付与し、前記学習期間において付与されたIDの総数に所定数のIDの個数を追加した数を次元数として各IDの出現回数に応じた特徴量を要素とする数値ベクトルを生成し、
    前記テスト期間における非数値のテキストデータ又は非数値のテキストデータの単語が、前記学習期間においてIDが付与されていない未知のテキストデータ又は未知の単語である場合、当該非数値のテキストデータ又は当該非数値のテキストデータの単語に前記所定数のIDのいずれかを付与して数値ベクトルを生成する、特徴量生成方法。
  5. コンピュータが実行する特徴量生成方法であって、
    異常の検知対象から複数のタイミングで収集される非数値のテキストデータを数値化し、当該数値化されたデータに応じた特徴量を要素とする数値ベクトルを生成する生成手順と、
    テスト期間において、前記生成手順において生成された数値ベクトルごとに、当該数値ベクトルと、学習期間において出力された学習結果とに基づいて異常を検知する検知手順と、
    を有し、
    前記学習結果は、前記学習期間において異常の検知対象から複数のタイミングで収集される非数値のテキストデータを数値化し、当該数値化されたデータに応じた特徴量を要素とする数値ベクトルを生成し、当該数値ベクトルを学習することにより生成されたものであり、
    前記生成手順において、前記非数値のテキストデータ又は前記非数値のテキストデータの単語にIDを付与し、前記学習期間において付与されたIDの総数を次元数として各IDの出現回数に応じた特徴量を要素とする数値ベクトルを生成し、
    前記学習期間において付与されなかったIDが前記テスト期間における非数値のテキストデータ又は非数値のテキストデータの単語で出現した場合、当該非数値のテキストデータ又は当該非数値のテキストデータの単語を無視する、特徴量生成方法。
  6. 請求項1又は2に記載の各部としてコンピュータを機能させるためのプログラム。
  7. 請求項3に記載の各部としてコンピュータを機能させるためのプログラム。
JP2018565935A 2017-02-02 2017-10-31 特徴量生成装置、特徴量生成方法及びプログラム Active JP6858798B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017017921 2017-02-02
JP2017017921 2017-02-02
PCT/JP2017/039336 WO2018142694A1 (ja) 2017-02-02 2017-10-31 特徴量生成装置、特徴量生成方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2018142694A1 JPWO2018142694A1 (ja) 2019-12-12
JP6858798B2 true JP6858798B2 (ja) 2021-04-14

Family

ID=63039493

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018565935A Active JP6858798B2 (ja) 2017-02-02 2017-10-31 特徴量生成装置、特徴量生成方法及びプログラム

Country Status (3)

Country Link
US (1) US11829868B2 (ja)
JP (1) JP6858798B2 (ja)
WO (1) WO2018142694A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6883561B2 (ja) * 2018-09-27 2021-06-09 Kddi株式会社 脆弱性推定装置及び脆弱性推定方法
JPWO2022195890A1 (ja) * 2021-03-19 2022-09-22

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633819B2 (en) * 1999-04-15 2003-10-14 The Trustees Of Columbia University In The City Of New York Gene discovery through comparisons of networks of structural and functional relationships among known genes and proteins
JP4073734B2 (ja) 2002-08-19 2008-04-09 日本電信電話株式会社 入力単語候補を推薦する情報検索システム
US20060224579A1 (en) * 2005-03-31 2006-10-05 Microsoft Corporation Data mining techniques for improving search engine relevance
US20090132506A1 (en) * 2007-11-20 2009-05-21 International Business Machines Corporation Methods and apparatus for integration of visual and natural language query interfaces for context-sensitive data exploration
WO2009145636A2 (en) * 2008-05-26 2009-12-03 Norwegian Em Technology As A survey system for locating geophysical anomalies
DE112012003110T5 (de) * 2011-07-25 2014-04-10 International Business Machines Corp. Verfahren, Programmprodukt und System zur Datenidentifizierung
US10678815B2 (en) * 2012-10-02 2020-06-09 Banjo, Inc. Dynamic event detection system and method
JPWO2015072085A1 (ja) * 2013-11-12 2017-03-16 日本電気株式会社 ログ分析システム、ログ分析方法、および、プログラム
US10887786B2 (en) * 2016-10-25 2021-01-05 Extreme Networks, Inc. Near-uniform load balancing in a visibility network via usage prediction
US10685293B1 (en) * 2017-01-20 2020-06-16 Cybraics, Inc. Methods and systems for analyzing cybersecurity threats
CN110226140B (zh) * 2017-01-25 2023-04-11 Ntn株式会社 状态监视方法及状态监视装置

Also Published As

Publication number Publication date
US20190392317A1 (en) 2019-12-26
US11829868B2 (en) 2023-11-28
WO2018142694A1 (ja) 2018-08-09
JPWO2018142694A1 (ja) 2019-12-12

Similar Documents

Publication Publication Date Title
JP6823501B2 (ja) 異常検知装置、異常検知方法及びプログラム
US11294754B2 (en) System and method for contextual event sequence analysis
US8630962B2 (en) Error detection method and its system for early detection of errors in a planar or facilities
US10373065B2 (en) Generating database cluster health alerts using machine learning
US9612898B2 (en) Fault analysis apparatus, fault analysis method, and recording medium
JP6183450B2 (ja) システム分析装置、及び、システム分析方法
US20170132523A1 (en) Periodicity Analysis on Heterogeneous Logs
CN103023927B (zh) 一种稀疏表达下的基于非负矩阵分解的入侵检测方法及***
CN105786702B (zh) 计算机软件分析***
CN107003992B (zh) 用于神经语言行为识别***的感知联想记忆
CN112182219A (zh) 一种基于日志语义分析的在线服务异常检测方法
CN114785666B (zh) 一种网络故障排查方法与***
US20240070388A1 (en) Lexical analyzer for a neuro-linguistic behavior recognition system
JP6183449B2 (ja) システム分析装置、及び、システム分析方法
JP2018148350A (ja) 閾値決定装置、閾値決定方法及びプログラム
US11520981B2 (en) Complex system anomaly detection based on discrete event sequences
JP6858798B2 (ja) 特徴量生成装置、特徴量生成方法及びプログラム
CN114325405A (zh) 电池组一致性分析方法、建模方法、装置、设备及介质
US11297142B2 (en) Temporal discrete event analytics system
WO2016084326A1 (ja) 情報処理システム、情報処理方法、及び、記録媒体
JP2007243459A (ja) トラヒック状態抽出装置及び方法ならびにコンピュータプログラム
JP2019105871A (ja) 異常候補抽出プログラム、異常候補抽出方法および異常候補抽出装置
US10157113B2 (en) Information processing device, analysis method, and recording medium
CN116307787A (zh) 一种基于指纹的服务器运维故障识别方法、定位方法
JP6781776B2 (ja) 特徴量生成装置、特徴量生成方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201012

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210323

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210324

R150 Certificate of patent or registration of utility model

Ref document number: 6858798

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150