JP6773972B2 - データ変換プログラム、データ変換方法、およびデータ変換装置 - Google Patents

データ変換プログラム、データ変換方法、およびデータ変換装置 Download PDF

Info

Publication number
JP6773972B2
JP6773972B2 JP2016193267A JP2016193267A JP6773972B2 JP 6773972 B2 JP6773972 B2 JP 6773972B2 JP 2016193267 A JP2016193267 A JP 2016193267A JP 2016193267 A JP2016193267 A JP 2016193267A JP 6773972 B2 JP6773972 B2 JP 6773972B2
Authority
JP
Japan
Prior art keywords
data
item
target
similarity
items
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
JP2016193267A
Other languages
English (en)
Other versions
JP2018055551A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016193267A priority Critical patent/JP6773972B2/ja
Priority to US15/720,998 priority patent/US10769100B2/en
Publication of JP2018055551A publication Critical patent/JP2018055551A/ja
Application granted granted Critical
Publication of JP6773972B2 publication Critical patent/JP6773972B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/82Architectures of general purpose stored program computers data or demand driven
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • 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/15Correlation function computation including computation of convolution operations
    • G06F17/153Multidimensional correlation or convolution
    • 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/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F2015/761Indexing scheme relating to architectures of general purpose stored programme computers
    • G06F2015/763ASIC

Description

本発明は、データ変換プログラム、データ変換方法、およびデータ変換装置に関する。
大量のデータを分類することで、有用な情報を取り出すことができる。分類対象のデータには、人・モノの間の関係が記録されたレコードの集合がある。例えば通信ログに記録された、通信元ホスト・通信先ホスト・ポート番号などの関係を示す大量のレコードが分類対象となる。また銀行の取引履歴に記録された、送金元口座・送金先口座・支店名などの関係を示すレコードが分類対象となることもある。通信ログに含まれるレコードを分類する場合、例えば不正や犯罪の有無などによりデータを分類することで、DDoS(Distributed Denial of Service attack)攻撃や標的型攻撃などが発生した時刻の通信ログの特徴を分析することができる。また銀行の取引履歴に含まれるレコードを分類する場合、マネーロンダリングや振込詐欺の発生の有無により分類することで、犯罪行為が行われた時刻の取引履歴の特徴を分析することができる。
データの分類には、例えばSVM(Support Vector Machine)などの手法が用いられる。SVMは、2つの分類の境界面を、境界面に最も近いデータとの距離が最大になるように算出するものである。データを分類する際には、データ間の類似度が計算される。
人やモノの間の関係のしかたを分類する場合、例えばある時間帯の通信ログと、別の時間帯の通信ログとの類似度が、コンピュータで計算される。各時間帯内の通信ログには複数のレコードが含まれており、各レコードには、例えば、通信を行った通信元ホストと通信先ホストとの関係に対応付けて、その通信の回数を示す数値が含まれる。
このようなデータ間の類似度を計算するとき、コンピュータでは、双方のデータ内のレコード同士を1対1で対応付け、対応付けたレコード間での数値の差に基づいて、データ全体の類似度が計算される。ただし、人やモノの間の関係のしかたを分類する場合、データ内のレコード間の対応が不明な場合が多い。例えば、類似の不正通信パタンを構成するホストは、その都度異なっている。そのため、通信元ホストと通信先ホストとが同じレコード同士を対比すればよいというものではない。そこでコンピュータは、類似判断の対象となるデータ間の類似度が最も高くなるよう、レコード間の対応関係を決定し、類似度を算出することとなる。このとき、レコードの対応関係のすべてのパタンを試すと、レコード間の対応関係のパタン数が爆発し、現実的に時間での計算が困難となる。
データ間の類似度を効率的に算出する手法として、グラフを用いたグラフカーネルと呼ばれる手法がある。グラフカーネルには、Random WalkカーネルやShortest Pathカーネルなどがある。レコード内に示される人・モノの関係をグラフデータとして表現すれば、人やモノの間の関係のしかたを分類する場合においても、グラフカーネルで類似度を計算することが可能となる。
グラフを用いたデータの分類手法としては、例えば2つのグラフの類似度をより正確に測るために、グラフ編集距離を近似的に求めるグラフMapping距離を用いた、グラフ編集距離カーネルも提案されている。
塩月英美、猪口明博、「Star 編集距離を用いたグラフ分類学習」、DEIM Forum 2016、2016年2月29日
グラフカーネルでは少ない計算量で類似度を計算できるが、元のデータの情報が損なわれており、類似度判定の精度が低下してしまう。例えば通信元ホスト、通信先ホスト、ポート番号の3つ組をグラフで表現できず、グラフカーネルでは3つ組の関係に関する情報が損なわれる。そのため、従来は、人・モノの間の関係を示すデータの類似度の計算を実現可能な処理量内で実施すると、類似度判定の精度が不十分となってしまう。
1つの側面では、本件は、データ間の類似度の算出精度を向上させることを目的とする。
1つの案では、コンピュータに以下の処理を実行させるデータ変換プログラムが提供される。
データ変換プログラムに基づいて、コンピュータは、まず複数の項目のいずれかに属する複数の第1項目値のうちの異なる項目に属する2以上の第1項目値間の関係を示す数値が設定された複数の第1レコードを有する第1データ、および複数の項目のいずれかに属する複数の第2項目値のうちの異なる項目に属する2以上の第2項目値間の関係を示す数値が設定された複数の第2レコードを有する第2データを取得する。次にコンピュータは、複数の項目それぞれを対象項目とし、対象項目ごとに、第1データ内の対象項目に属する対象第1項目値に関する他の第1項目値との関係と、第2データ内の対象項目に属する対象第2項目値に関する他の第2項目値との関係との類似度に基づいて、複数の項目のいずれかに属する複数の変換先項目値のうちの対象項目に属する対象変換先項目値への対象第1項目値の影響度を示す第1重み情報と、対象変換先項目値への対象第2項目値の影響度を示す第2重み情報とを生成する。次にコンピュータは、複数の項目それぞれについて生成された第1重み情報に基づいて、第1データを、複数の変換先項目値のうちの異なる項目に属する2以上の変換先項目値間の関係を示す数値が設定された複数の第3レコードを有する第1類似判断用データに変換する。そしてコンピュータは、複数の項目それぞれについて生成された第2重み情報に基づいて、第2データを、複数の変換先項目値のうちの異なる項目に属する2以上の変換先項目値間の関係を示す数値が設定された複数の第4レコードを有する第2類似判断用データに変換する。
1態様によれば、データ間の類似度の算出精度を向上させる。
第1の実施の形態に係るデータ変換装置の構成例を示す図である。 第2の実施の形態のシステム構成例を示す図である。 第2の実施の形態に用いる監視サーバのハードウェアの一構成例を示す図である。 監視サーバの機能の一例を示すブロック図である。 通信ログ記憶部の一例を示す図である。 類似度記憶部の一例を示す図である。 通信ログの変数への置き換え例を示す図である。 変換行列を用いて生成した中間データ間の類似度の計算例を示す図である。 「項S」の変換行列の更新例を示す図である。 類似度計算処理の手順の一例を示すフローチャートである。 初期状態の変換行列を用いた中間データの生成例を示す図である。 「項S」の変換行列の更新例を示す図である。 「項R」の変換行列の更新例を示す図である。 更新後の変換行列を用いた中間データの生成例を示す図である。 類似度計算の比較例を示す第1の図である。 類似度計算の比較例を示す第2の図である。 第2の実施の形態による類似度計算例を示す第1の図である。 第2の実施の形態による類似度計算例を示す第2の図である。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず第1の実施の形態について説明する。
図1は、第1の実施の形態に係るデータ変換装置の構成例を示す図である。データ変換装置10は、記憶部11と処理部12とを有する。データ変換装置10は、以下に示すデータ変換方法を実行する。例えばコンピュータが、データ変換プログラムを実行することによって、データ変換方法を実行可能なデータ変換装置10が実現される。記憶部11は、例えばデータ変換装置10が有するメモリまたはストレージ装置である。処理部12は、例えばデータ変換装置10が有するプロセッサである。
記憶部11は、類似度の計算対象となる第1データ1と第2データ2とを記憶する。第1データ1は、複数の項目「項S,項R」のいずれかに属する複数の第1項目値「S1,S2,R1,R2」のうちの、異なる項目に属する2以上の第1項目値間の関係を示す数値「k11〜k14」が設定された複数の第1レコードを有する。第2データ2は、複数の項目「項S,項R」のいずれかに属する複数の第2項目値「S1,S2,R1,R2」のうちの異なる項目に属する2以上の第2項目値間の関係を示す数値「k21〜k24」が設定された複数の第2レコードを有する。
処理部12は、複数の項目(項S,項R)それぞれを対象項目とする。そして処理部12は、対象項目ごとに、第1データ1内の対象項目に属する対象第1項目値に関する他の第1項目値との関係と、第2データ2内の対象項目に属する対象第2項目値に関する他の第2項目値との関係との類似度を計算する。処理部12は、計算した類似度に基づいて、第1重み情報5,6と第2重み情報7,8とを生成する。第1重み情報5,6は、複数の項目「項S,項R」のいずれかに属する複数の変換先項目値「S’1,S’2,R’1,R’2」のうちの、対象項目に属する対象変換先項目値への対象第1項目値の影響度を示す情報である。第2重み情報7,8は、対象変換先項目値への対象第2項目値の影響度を示す情報である。
例えば「項S」が対象項目として選択されたとき、処理部12は、第1重み情報5と第2重み情報7とを生成する。このとき第1重み情報5には、第1データ1内の「項S」に属する項目値「S1,S2」それぞれと、第2データ2内の「項S」に属する項目値「S1,S2」それぞれとの対ごとの、他の項目との関係の類似度が維持できるように、重みが設定される。同様に、第2重み情報7にも、第1データ1内の「項S」に属する項目値「S1,S2」それぞれと、第2データ2内の「項S」に属する項目値「S1,S2」それぞれとの対ごとの、他の項目との関係の類似度が維持できるように、重みが設定される。「項R」が対象項目として選択されたときに、処理部12は、第1重み情報6と第2重み情報8とを生成する。
対象第1項目値と対象第2項目値との類似度を計算する場合、処理部12は、例えば複数の項目「項S,項R」それぞれについて、初期値が設定された第1重み情報5,6と第2重み情報7,8とを生成する。次に処理部12は、対象項目以外の項目について生成された他項目第1重み情報と他項目第2重み情報とに基づいて、第1データ1内の対象項目に属する対象第1項目値と、第2データ2内の対象項目に属する対象第2項目値との類似度を計算する。
なお、処理部12は、所定の終了条件を満たすまで、複数の項目「項S,項R」それぞれを、繰り返し対象項目として特定し、対象項目に対する第1重み情報5,6と第2重み情報7,8とを繰り返し生成してもよい。例えば処理部12は、対象項目以外の項目について生成された他項目第1重み情報と他項目第2重み情報とを用いて、対象項目に属する対象第1項目値それぞれと対象第2項目値それぞれとの類似度を計算し、類似度に応じて対象項目の重み情報を更新する。
例えば対象項目が「項S」であれば、処理部12は、「項R」について生成された第1重み情報6を用いて、第1データ1の項目値「S1,S2」それぞれと、第2データ2の項目値「S1,S2」それぞれとの類似度を計算する。そして処理部12は、計算した類似度に基づいて、「項S」についての第1重み情報5と第2重み情報7とを更新する。さらに処理部12は、更新後の第1重み情報5と第2重み情報7を用いて、「項R」についての第1重み情報6と第2重み情報8とを更新する。
このように第1重み情報5,6と第2重み情報7,8の更新を繰り返すことで、第1類似判断用データ3と第2類似判断用データ4との類似度が向上するように、第1重み情報5,6と第2重み情報7,8が最適化される。
次に処理部12は、複数の項目「項S,項R」それぞれについて生成された第1重み情報5,6に基づいて、第1データ1を第1類似判断用データ3に変換する。第1類似判断用データ3は、複数の変換先項目値「S’1,S’2,R’1,R’2」のうちの異なる項目に属する2以上の変換先項目値間の関係を示す数値「k31〜k34」が設定された複数の第3レコードを有する。さらに処理部12は、複数の項目「項S,項R」それぞれについて生成された第2重み情報7,8に基づいて、第2データ2を第2類似判断用データ4に変換する。第2類似判断用データ4は、複数の変換先項目値「S’1,S’2,R’1,R’2」のうちの異なる項目に属する2以上の変換先項目値間の関係を示す数値「k41〜k44」が設定された複数の第4レコードを有する。
さらに処理部12は、第1類似判断用データ3内の複数の第3レコードに含まれる数値群と、第2類似判断用データ4内の複数の第4レコードに含まれる数値群との類似度を計算する。処理部12は、第1重み情報5,6と第2重み情報7,8を繰り返し生成するとき、第1重み情報5,6と第2重み情報7,8を生成するごとに、第1類似判断用データ3の数値群と第2類似判断用データ4の数値群との類似度を計算する。そして処理部12は、計算した類似度の最大値を、第1データ1と第2データ2との類似度と判定する。
このように、第1重み情報5,6と第2重み情報7,8を用いて第1データ1と第2データ2とを変換した上で、類似度を計算することで、精度の高い類似度を算出することができる。すなわち、第1データ1と第2データ2との同一の項目に属する項目値に関する、他の項目値との間の関係の類似度が、その項目に対応する第1重み情報5,6と第2重み情報7,8とに反映されている。これにより、第1データ1と第2データ2との同一の項目に属する項目値に関する、他の項目値との間の関係の類似度が高いほど、変換後の第1類似判断用データ3と第2類似判断用データ4との類似度が高くなる。その結果、類似度の判定精度が向上する。
しかも、組み合わせ爆発のような計算量の急激な増加は発生せず、現実的な処理量での類似度計算が可能である。例えば、第1の実施の形態で示した類似度の計算処理は、行列を用いて以下のように計算できる。
処理部12は、特定の項目の項目値と他の項目との関係はベクトルで表現する。そして処理部12は、第1データ1と第2データ2とを、2つの項目値に対応するベクトル間の距離を保持したまま、第1類似判断用データ3と第2類似判断用データ4とに変換する。このとき処理部12は、変換に用いる第1重み情報5,6と第2重み情報7,8とを行列で表す。以下、第1重み情報5,6と第2重み情報7,8とを表す行列を、変換行列と呼ぶ。
処理部12は、第1類似判断用データ3と第2類似判断用データ4間の最大類似度を、第1データ1と第2データ2との間の類似度とする。これにより、本質的な関係の構造に基づく類似度を計算できる。以下に詳細を説明する。
簡単のため、第1データ1と第2データ2との項目は2つだけとする。処理部12は、第1データ1と第2データ2とを、行列X1,X2で表す。行列X1,X2の各行は、1つ目の項目「項S」の各項目値「S1,S2」に対応し、各列は2つ目の項目「項R」の各項目値「R1,R2」に対応する。行列の要素(成分)には、行に対する項目値と列に対応する項目との関係を示す数値が入る。
なお処理部12は、1つ目の項目「項S」の項目値の種類の数が第1データ1と第2データ2とで異なる場合には、少ないほうのデータにダミーの項目値を追加して、種類の数を同数にする。処理部12は、2つ目の項目「項R」についても同様に、項目値の種類数を同数に揃える。
処理部12は、第1データ1の「項S」と「項R」とに関する変換行列(第1重み情報5,6)を、それぞれ正方行列C11とC12で表す。同様に処理部12は、第2データ2の「項S」と「項R」とに関する変換行列(第2重み情報7,8)を、それぞれ正方行列C21とC22で表す。ただし、C11,C12,C21,C22は、いずれも以下の正規直交条件を満たすものとする。
Figure 0006773972
Iは対角成分が「1」で残りが「0」の単位行列である。このとき、X1の列ベクトルをx1a,x1bとする。x1a,x1bは、「項R」の変数値「a」、「b」と「項S」との関係を表しており、以下の関係を有する。
Figure 0006773972
すなわち、C11によるX1の変換は、項目値の他項目との関係を表すベクトル間の距離を変化させない。C12,C21,C22についても同様である。
処理部12は、C11とC21の更新では、C12とC22を固定したときの、データ間類似度を最大化するC11とC21として算出する。データ間類似度E(X 1 ,X 2 は、以下の式で表される。
Figure 0006773972
データ間類似度を最大化するC11とC21は、以下に示す特異値分解により算出できる。
Figure 0006773972
ただし、Sは非負値を持つ正方対角行列である。
このようにして、行列を用いて効率的にデータ変換を行い、類似度を計算することができる。
図1の例では、第1重み情報5,6および第2重み情報7,8が変換行列で表されている。例えば第1重み情報5を示す変換行列の第1行・第1列の成分には、第1データ1の「項S」に属する項目値「S1」の、「項S」に属する変換先項目値「S’1」への影響を示す重み(w11)が設定されている。変換行列を用いると、第1データ1の項目ごとの項目値を成分とする行ベクトルに右から変換行列を乗算すれば、変換先項目値を得ることができる。例えば第1データ1の「項S」に属する項目値を成分とする行ベクトル(S1,S2)に、「項S」に関する第1重み情報5を示す変換行列を右から掛けることで、「項S」に属する変換先項目値を示す行ベクトル(S’1,S’2)が得られる。
同様に、第1データ1の「項R」に属する項目値を成分とする行ベクトル(R1,R2)に、「項R」に関する第1重み情報6を示す変換行列を右から掛けることで、「項R」に属する変換先項目値を示す行ベクトル(R’1,R’2)が得られる。第2データ2の「項S」に属する項目値を成分とする行ベクトル(S1,S2)に、「項S」に関する第2重み情報7を示す変換行列を右から掛けることで、「項S」に属する変換先項目値を示す行ベクトル(S’1,S’2)が得られる。第2データ2の「項R」に属する項目値を成分とする行ベクトル(R1,R2)に、「項R」に関する第2重み情報8を示す変換行列を右から掛けることで、「項R」に属する変換先項目値を示す行ベクトル(R’1,R’2)が得られる。
ここで第1データ1と第2データ2とにおける同一レコード内の「項S」の項目値と「項R」の項目値の乗算結果が、そのレコードの「数値」の値であるものとする。同様に、第1類似判断用データ3と第2類似判断用データ4における同一レコード内の「項S」の項目値と「項R」の項目値の乗算結果が、そのレコードの「数値」の値であるものとする。すると、第1類似判断用データ3と第2類似判断用データ4との「数値」の値を算出できる。例えば第1類似判断用データ3の「S’1」と「R’1」との組に対応する数値「k31」は、以下の通りとなる。
k31=S’1×R’1
=(w11×S1+w12×S2)×(w21×R1+w22×R2)
=w11×w21×S1×R1+w12×w21×S2×R1+w11×w22×S1×R2+w12×w22×S2×R2
=w11×w21×k11+w12×w21×k12+w11×w22×k13+w12×w22×k14
同様にして、第1類似判断用データ3と第2類似判断用データ4との「数値」の他の値(k31〜k34,k41〜k44)も算出できる。
処理部12は、第1類似判断用データ3と第2類似判断用データ4の「数値」の各値を比較することで、第1類似判断用データ3と第2類似判断用データ4との類似度を計算する。例えば、処理部12は、第1類似判断用データ3の各レコードの数値を成分とするベクトルと、第2類似判断用データ4の各レコードの数値を成分とするベクトルとの内積を計算し、内積の結果を類似度とする。
このように第1重み情報5,6および第2重み情報7,8を行列で表すことで、類似度を容易に計算できる。
なお上記の計算例は、簡単のために第1データ1と第2データ2との項目は2つだけとしているが、項目数がもっと多い場合、行列をテンソルに拡張することで類似度を計算できる。なお、行列は、テンソルの一例である。
比較対象のデータに対応するテンソルをXm,Xnとする(m、nはデータを識別する整数)。Xm,Xnに含まれる項目数がk(kは2以上の整数)のとき、変換行列をCkとすると、データの類似判断用データへの変換は、以下の式で表すことができる。
Figure 0006773972
式(5)の×kは、テンソルのモード積を示している。式(5)の結果を用いて、テンソルXm,Xn間の距離を、以下の式で表すことができる。
Figure 0006773972
式(6)に示す距離を最小にする行列Ckが変換行列となる。ただし、Ckは、以下の正規直交条件を満たすものとする。
Figure 0006773972
項目ごとのCkは、以下の特異値分解を、項目ごとに交互に繰り返し行うことで算出できる。
Figure 0006773972
式(8)により、行列Pk,Sk,Qk Tが生成される。そしてPkとQk Tとを用いて、以下の式により行列Ckが得られる。
Figure 0006773972
このような計算により変換行列を求めデータを変換することで、項目数が3以上であっても現実的な計算量で類似度を計算可能である。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、通信ログを示す複数のデータ間の類似度を計算するものである。
図2は、第2の実施の形態のシステム構成例を示す図である。ネットワーク20には、複数のサーバ211,212,・・・、複数の端末装置221,222,・・・、および監視サーバ100が接続されている。複数のサーバ211,212,・・・は、いずれかの端末装置からの要求に応じた処理を実行するコンピュータである。複数のサーバ211,212,・・・のうちの2台以上が連携して処理を実行する場合もある。複数の端末装置221,222,・・・は、複数のサーバ211,212,・・・で提供されるサービスを利用するユーザが使用するコンピュータである。
監視サーバ100は、ネットワーク20を介して行われた通信を監視し、通信ログを記録する。監視サーバ100は、単位時間帯ごとの通信ログのデータを分類する。例えば監視サーバ100は、対応する単位時間帯における不正通信の有無に応じて、データを分類する。
図3は、第2の実施の形態に用いる監視サーバのハードウェアの一構成例を示す図である。監視サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、監視サーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に必要な各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、監視サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示したデータ変換装置10も、図3に示した監視サーバ100と同様のハードウェアにより実現することができる。
監視サーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。監視サーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、監視サーバ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また監視サーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
次に、監視サーバが有する機能について説明する。
図4は、監視サーバの機能の一例を示すブロック図である。監視サーバ100は、通信情報収集部110、通信ログ記憶部120、類似度計算部130、および類似度記憶部140を有する。
通信情報収集部110は、ネットワーク20を介して送受信されているパケットなどの通信情報を取得する。例えば通信情報収集部110は、ネットワーク20内に設置されたスイッチのミラーリングポートを介して、そのスイッチを経由して通信されたパケットを取得する。また通信情報収集部110は、各サーバ211,212,・・・から、そのサーバ自身の通信ログを取得することもできる。通信情報収集部110は、取得した通信情報を、通信ログ記憶部120に格納する。
通信ログ記憶部120は、通信情報収集部110が収集した通信情報のログ(通信ログ)を記憶する。
類似度計算部130は、単位期間ごとの通信ログを示すデータ間の類似度を計算する。類似度計算部130は、計算した類似度を、類似度記憶部140に格納する。
類似度記憶部140は、データ間の類似度を記憶する。
なお、図4に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図4に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
次に通信ログ記憶部120に格納される情報について具体的に説明する。
図5は、通信ログ記憶部の一例を示す図である。通信ログ記憶部120には、複数の単位期間ログ121,122,・・・が格納されている。単位期間ログ121,122,・・・それぞれには、通信ログの収集期間が示されている。単位期間ログ121,122,・・・には、収集期間で示された時間帯内に収集した通信情報が格納される。
単位期間ログ121,122,・・・に格納される各レコードには、通信元ホスト、通信先ホスト、および量が含まれる。通信元ホストは、パケットの送信元の装置の識別子である。通信先ホストは、パケットの宛先の装置の識別子である。量は、通信元ホストと通信先ホストとの組が同じ通信の出現回数である。なお単位期間ログ121,122,・・・に、通信に使用されたポートの識別子(例えば宛先のTCP(Transmission Control Protocol)/UDP(User Datagram Protocol)のポート番号)を含めてもよい。
単位期間ログ121,122,・・・の通信元ホストと通信先ホストは、第1の実施の形態における「項目」の一例である。また単位期間ログ121,122,・・・の量は、第1の実施の形態における「数値」の一例である。
図6は、類似度記憶部の一例を示す図である。類似度記憶部140は、例えば類似度管理テーブル141を記憶している。類似度管理テーブル141には、比較対象の2つの収集期間に関連付けて、それらの収集期間に対応するデータ間の類似度が設定されている。
次に、類似度計算部130による単位期間ログ121,122,・・・間の類似度計算方法について、詳細に説明する。
類似度計算部130は、単位期間ログ121,122,・・・の通信元ホストと通信先ホストとを変数とみなして類似度の計算を行う。以下、第1の実施の形態における比較対象のデータの「項目」を「変数」と呼び、第1の実施の形態における「項目値」を「変数値」と呼ぶ。
図7は、通信ログの変数への置き換え例を示す図である。類似度計算部130は、単位期間ログ121における通信元ホスト、通信先ホスト、および量を、それぞれ変数とみなして、類似度計算の入力データとする。入力データでは、通信元ホストを変数「項S」、通信先ホストを変数「項R」とする。また類似度計算部130は、各関係を示すレコード内の通信元ホストや通信先ホストの識別子を、各変数の値(変数値)であるものとみなす。そして類似度計算部130は、1つの関係に含まれる「項S」と「項R」との変数値を乗算した結果が、変数「量」の変数値であるものとする。
そして類似度計算部130は、入力データの2つ組ごとに、それらの類似度を計算する。第2の実施の形態では、類似度計算部130は、入力データを変換行列を用いて中間データに変換し、中間データ間の類似度を計算する。
図8は、変換行列を用いて生成した中間データ間の類似度の計算例を示す図である。類似度計算部130は、第1データ31と第2データ32それぞれに対して、「量」以外の変数の数に応じた変換行列41〜44を生成する。例えば類似度計算部130は、第1データ31に対して、「項S」に対応する変換行列41と「項R」に対応する変換行列42とを生成する。同様に類似度計算部130は、第2データ32に対して、「項S」に対応する変換行列43と「項R」に対応する変換行列44とを生成する。
変換行列41〜44は、正規直交条件を満たす2行2列の行列である。変換行列41の各行には、第1データ31における「項S」の変数値「S1」、「S2」が関連付けられている。変換行列43の各行には、第2データ32における「項S」の変数値「S1」、「S2」が関連付けられている。変換行列41の各列には、中間データ5における「項S」の変数値「S’1」、「S’2」が関連付けられている。変換行列43の各列には、中間データ52における「項S」の変数値「S’1」、「S’2」が関連付けられている。変換行列41,43の各成分には、行方向に関連付けられた変数値「S1」、「S2」を、列方向に関連付けられた変数値「S’1」、「S’2」へ変換する場合の重みが設定されている。
変換行列42の各行には、第1データ31における「項R」の変数値「R1」、「R2」が関連付けられている。変換行列44の各行には、第2データ32における「項R」の変数値「R1」、「R2」が関連付けられている。変換行列42の各列には、中間データ51における「項R」の変数値「R’1」、「R’2」が関連付けられている。変換行列44の各列には、中間データ52における「項R」の変数値「R’1」、「R’2」が関連付けられている。変換行列42,44の各成分には、行方向に関連付けられた変数値「R1」、「R2」を、列方向に関連付けられた変数値「R’1」、「R’2」へ変換する場合の重みが設定されている。
なお図8の例では、変換行列41〜44に設定されている重みの値を小数点2桁までしか示していないが、実際には小数点2桁よりも下位の桁の値も存在するものとする。
類似度計算部130は、変換行列41,42を用いて、第1データ31を中間データ51に変換する。中間データ51には、「項S」の変数値と「項R」の変数値の組み合わせに対応する量が設定されている。中間データ51の「項S」の変数値には「S’1」または「S’2」が設定され、「項R」の変数値には「R’1」または「R’2」が設定されている。
中間データ51の「量」の値は、「項S」の変数値と「項R」の変数値との乗算結果である。類似度計算部130は、第1データ31を変換行列41,42で変換することで、中間データ51の「量」の値を算出する。例えば変数値「S’1」は、重み「−0.68」×「S1」+重み「−0.73」×「S2」である。変数値「S’2」は、重み「−0.73」×「S1」+重み「0.68」×「S2」である。変数値「R’1」は、重み「−0.32」×「R1」+重み「−0.94」×「R2」である。変数値「R’2」は、重み「−0.94」×「R1」+重み「0.32」×「R2」である。
このように、変換行列41,42を用いて、変数値「S’1」、「S’2」、「R’1」、「R’2」の値を、変数値「S1」、「S2」、「R1」、「R2」と、それらの重みで表すことができる。すると、変数値「S’1」または「S’2」と変数値「R’1」または「R’2」とを乗算すると、「S1×R1」、「S2×R1」、「S1×R2」、「S2×R2」のいずれかを含む項が現れる。例えば「S1×R1」は、以下の式で表される。
S’1×R’1={(−0.68×S1)+(−0.73×S2)}×{(−0.32×R1)+(−0.94×R2)}
=(−0.68)×(−0.32)×S1×R1+(−0.73)×(−0.32)×S2×R1+(−0.68)×(−0.94)×S1×R2+(−0.73)×(−0.94)×S2×R2
類似度計算部130は、「S1×R1」、「S2×R1」、「S1×R2」、「S2×R2」の値として、第1データ31における対応する「量」の値を代入する。図8の例では、「S1×R1=1」、「S2×R1=0」、「S1×R2=1」、「S2×R2=1」である。その結果、中間データ51における「量」の値が求まる。同様に、類似度計算部130は、第2データ32を変換行列43,44で変換して、中間データ52を生成する。
類似度計算部130は、中間データ51,52の間の類似度を計算する。例えば類似度計算部130は、中間データ51の「量」の各変数値を成分とするベクトルと、中間データ52の「量」の各変数値を成分とするベクトルとを、長さ「1」に正規化後、内積を計算する。そして類似度計算部130は、内積の結果を、中間データ51,52間の類似度とする。
このようにして計算される中間データ51,52間の類似度は、変換行列41〜44に設定されている重みに依存する。そこで類似度計算部130は、類似度が高くなるように変換行列41〜44を更新する。変換行列41〜44の更新は、「項S」の変換行列41,43の更新と、「項R」の変換行列42,44の更新とが交互に行われる。
図9は、「項S」の変換行列の更新例を示す図である。「項S」の変換行列41,43を更新する場合、類似度計算部130は、「項S」の変数を固定とし、「項S」以外の変数を変換して中間データ53,54を生成する。図9の例では、類似度計算部130は、「項R」の変数値「R1」、「R2」を変換行列42,44を用いて変換し、中間データ53,54を生成している。中間データ53,54の「量」の値は、「S1」または「S2」と「R’1」または「R’2」との乗算結果である。例えば第1データ31の中間データ53における「S1×R’1」は、変換行列42に示される重みを用いて、「(−0.32)×S1×R1+(−0.94)×S1×R2」と表される。第1データ31に基づいて、「S1×R1」と「S1×R2」とに値を設定すれば、「S1×R’1」の値が得られる。
第1データ31と第2データ32の中間データ53,54が生成されると、類似度計算部130は、中間データ53における「S1」、「S2」それぞれと、中間データ54における「S1」、「S2」それぞれとの類似度を計算し、類似度行列61を生成する。類似度行列61の各行には、第1データ31の「項S」の変数値が関連付けられており、類似度行列61の各列には、第2データ32の「項S」の変数値が関連付けられている。類似度行列61の成分には、その成分が設定された行の変数値と列の変数値との類似度が設定されている。
例えば類似度計算部130は、「項S」の各変数値それぞれについて、他の「項R」の各変数値との関係を示すベクトルを生成する。具体的には、類似度計算部130は、中間データ53の「S1」について、「R’1」と「R’2」とのそれぞれとの関係を示す「量」の値を成分とするベクトルv11を生成する。同様に類似度計算部130は、中間データ53の「S2」について、ベクトルv21を生成する。類似度計算部130は、中間データ54の「S1」について、ベクトルv12を生成する。類似度計算部130は、中間データ54の「S2」について、ベクトルv22を生成する。
類似度計算部130は、ベクトルv11とベクトルv12との内積を、第1データ31の「S1」と第2データ32の「S1」との類似度として、類似度行列61に設定する。類似度計算部130は、ベクトルv11とベクトルv22との内積を、第1データ31の「S1」と第2データ32の「S2」との類似度として、類似度行列61に設定する。類似度計算部130は、ベクトルv21とベクトルv12との内積を、第1データ31の「S2」と第2データ32の「S1」との類似度として、類似度行列61に設定する。類似度計算部130は、ベクトルv21とベクトルv22との内積を、第1データ31の「S2」と第2データ32の「S2」との類似度として、類似度行列61に設定する。
類似度計算部130は、このようにして生成した類似度行列61に基づいて、第1データ31の「項S」変換用の変換行列41aと第2データ32の「項S」変換用の変換行列4aとを生成する。例えば類似度計算部130は、変換行列41a,43aからS’1、S’2を消去して1つの行列にしたときに類似度行列61に最も類似するような、変換行列41a,43aを生成する。具体的には、類似度計算部130は、類似度行列61を特異値分解し、変換行列41a,43aを生成する。
類似度行列61は、第1データ31の「項S」変換用の変換行列41を、生成した変換行列41aに更新する。また類似度行列61は、第2データ32の「項S」変換用の変換行列43を、生成した変換行列43aに更新する。
このようにして、「項S」を固定して他の変数を変換することで、「項S」の変換行列が更新される。次に類似度計算部130は、「項R」を固定して他の変数を変換することで、「項R」の変換行列を更新する。類似度計算部130は、各変数の変換行列を更新したら、更新後の変換行列を用いて、第1データ31と第2データ32との中間データを生成し、中間データ間の類似度を計算する。類似度計算部130は、例えば中間データ間の類似度が収束するまで、変換行列の更新を繰り返し行う。これにより中間データ間の類似度の最大値を得る変換行列が生成される。そして類似度計算部130は、中間データ間の類似度の最大値を、第1データ31と第2データ32との類似度とする。
図8、図9に示した処理の手順をフローチャートで表すと図10のようになる。
図10は、類似度計算処理の手順の一例を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。類似度計算処理は、類似度の比較対象となる2つのデータが入力されたときに実行される。
[ステップS101]類似度計算部130は、変換行列を初期化する。例えば類似度計算部130は、分類対象のデータの「量」以外の変数ごとに、変換行列を生成する。生成される変換行列は、対応する変数に含まれる変数値の数(同一の値の変数値は1つと数える)分の行と列とを有する正方行列である。変換行列の成分には、正規直交条件を満たしていれば、ランダムな値を設定することができる。例えば類似度計算部130は、変換行列内のいくつかの成分の値をランダムに決定し、正規直交条件を満たすように他の成分の値を決定する。
[ステップS102]類似度計算部130は、生成した変換行列を用いて、比較対象のデータそれぞれから中間データを生成する。
[ステップS103]類似度計算部130は、中間データ間の類似度を算出する。類似度計算部130は、算出した類似度をメモリに一時的に保存する。
[ステップS104]類似度計算部130は、比較対象のデータの変数を1つ選択する。
[ステップS105]類似度計算部130は、比較対象のデータそれぞれの変数値間の類似度を示す類似度行列を生成する。例えば類似度計算部130は、比較対象のデータそれぞれについて、選択した変数以外の変数を変換行列で変換した中間データを生成する。そして類似度計算部130は、中間データに示される変数値の量の値と、他の中間データに示される変数値の量の値との類似度を、それらの2つの変数値間の類似度を示す成分として、類似度行列に設定する。
[ステップS106]類似度計算部130は、類似度行列に基づいて、選択した変数についての新たな変換行列を生成する。
[ステップS107]類似度計算部130は、すべての変数を選択したか否かを判断する。すべての変数の選択が選択済みとなった場合、処理がステップS108に進められる。未選択の変数があれば、処理がステップS104に進められる。
[ステップS108]類似度計算部130は、各変数について新たに生成した変換行列を用いて、比較対象のデータごとの中間データを生成する。
[ステップS109]類似度計算部130は、ステップS108で生成した中間データ間の類似度を算出する。
[ステップS110]類似度計算部130は、処理の終了条件が満たされたか否かを判断する。処理の終了条件とは、例えば類似度が収束したか、またはステップS104〜S110のループを所定回数以上繰り返したことである。処理の終了条件が満たされた場合、類似度計算処理が終了する。処理の終了条件が満たされていない場合、類似度計算部130は、変数の選択状態を未選択に初期化して、処理をステップS104に進める。
このような手順で比較対象のデータ間の類似度を計算することができる。以下、図11〜14を参照して、類似度計算の具体例について説明する。
図11は、初期状態の変換行列を用いた中間データの生成例を示す図である。図11の例では、第1データ31と第2データ32とが比較対象のデータである。まず、第1データ31の「項S」の変換行列41と「項R」の変換行列42とが初期化され、初期状態の変換行列41,42を用いて、第1データ31が中間データ51に変換される。同様に、第2データ32の「項S」の変換行列43と「項R」の変換行列44とが初期化され、初期状態の変換行列43,44を用いて、第2データ32が中間データ52に変換される。そして、第1データ31の中間データ51と第2データ32の中間データ52との類似度が計算される。図11の例では、類似度が「0.40」である。
次に、変数「項S」が選択されたものとする。「項S」が選択されると、「項S」の変換行列が更新される。
図12は、「項S」の変換行列の更新例を示す図である。第1データ31について、「項R」用の変換行列42を用いて、「項S」以外の変数値を変換した中間データ53が生成される。同様に第2データ32について、「項R」用の変換行列44を用いて、「項S」以外の変数値を変換した中間データ54が生成される。次に、生成された2つの中間データ53,54それぞれの変数値間の類似度を示す類似度行列61が生成される。そして類似度行列61に基づいて、掛け合わせることで類似度行列61と近似した値を得ることができる2つの変換行列41a,43aが生成される。
次に、変数「項R」が選択されたものとする。「項R」が選択されると、「項R」の変換行列が更新される。
図13は、「項R」の変換行列の更新例を示す図である。第1データ31について、「項S」用の変換行列41aを用いて、「項R」以外の変数値を変換した中間データ55が生成される。同様に第2データ32について、「項S」用の変換行列43aを用いて、「項R」以外の変数値を変換した中間データ56が生成される。次に、生成された2つの中間データ55,56それぞれの変数値間の類似度を示す類似度行列62が生成される。そして類似度行列62に基づいて、掛け合わせることで類似度行列62と近似した値を得ることができる2つの変換行列42a,44aが生成される。
「項S」と「項R」とのそれぞれについて、変換行列の更新が終了すると、更新後の変換行列41a,42a,43a,44aに基づいて、中間データが生成される。
図14は、更新後の変換行列を用いた中間データの生成例を示す図である。更新後の変換行列41a,42aを用いて、第1データ31から中間データ53が生成される。同様に、更新後の変換行列43a,44aを用いて、第2データ32から中間データ54が生成される。そして、生成された中間データ53,54間の類似度が算出される。図14の例では、類似度は「0.91」である。
更新後の変換行列41a,42a,43a,44aを用いて生成した中間データ53,54間の類似度は、更新前の変換行列41〜44を用いて生成した中間データ51,52間の類似度(図11参照)よりも高くなっている。すなわち変換行列41〜44を更新したことにより、生成される中間データ間の類似度が高まっている。更新後の変換行列41a,42a,43a,44aに対して、さらに更新処理を行えば、中間データ間の類似度をさらに高めることができる。ただし更新処理を何度も繰り返すと、中間データ間の類似度の上昇度合いが鈍化し、ある程度の類似度に収束する。
類似度計算部130は、例えば、類似度の上昇度合いが所定値以下になったとき、最後に算出した中間データ間の類似度を、比較対象の第1データ31と第2データ32との類似度に決定する。類似度計算部130は、決定した類似度を、類似度記憶部140に格納する。
このように第2の実施の形態では、変換行列を用いて生成した中間データ間の類似度により、複数のデータ間の類似度を決定するようにしたことで、類似度の判定精度が向上する。
以下に、比較例として、比較対象のデータに含まれる変数値の並べ替えのみによる類似度の計算例を図15、図16に示す。
図15は、類似度計算の比較例を示す第1の図である。図15に示す第1データ71と第2データ72との類似度を計算する場合を想定する。人やモノの間の関係のしかたを分類するとき、第1データ71を採取した期間に「S1」の装置が担っていた役割を、第2データ72を採取した期間では「S2」の装置が担っている可能性がある。そこで図15の例では、通信元ホスト通信先ホスト、およびポートを、別の変数値に対応付けて、各データ内のレコードの並べ替えを行っている。並べ替えにより、変換データ73,74が生成される。2つの変換データ73,74は、通信元ホスト、通信先ホスト、ポートの関係を示す変数値の組み合わせの順番が統一されている。図15の例では、変換データ73,74の最上位には、「S’1」、「R’1」、「P’1」の組み合わせを示すレコードが登録され、その次に「S’1」、「R’1」、「P’2」の組み合わせを示すレコードが登録されている。
このように変換データ73,74内に所定の順番で並べられた各レコードの量の値を比較することで、変換データ73,74間の類似度を算出できる。例えば、量の値を成分とするベクトル間の内積が、類似度とされる。この場合、第1データ71と第2データ72との各変数値に、変換データ73,74のどの変数値を対応付けるかにより、類似度が変わってくる。そのため、対応付けのすべてのパタンについて変換データ73,74を生成し、類似度の最大化が図られる。そして、変換データ73,74から得られる類似度の最大値が、第1データ71と第2データ72との類似度と判定される。
図16は、類似度計算の比較例を示す第2の図である。図15に示した方法で類似度を計算したときの第1データ71と第2データ72との類似度が「0.89」である。同じ方法で、第1データ71と第3データ75との類似度を計算すると、同じく「0.89」となる。
ここで、第1データ71と第2データ72における通信先ホストとポートとの関係をみると、「量」の値が「1」以上のレコードに、{R1,P1}または{R2,P2}の組み合わせしか含まれていないことが分かる。それに対して第3データ75では、「量」の値が「1」以上のレコードのなかに、{R1,P2}の組み合わせを含むものがある。そうすると、第1データ71と第2データ72とは、通信元ホストが分離・併合された前後での通信ログというだけで、類似の事象に関する通信ログである可能性が高い。それに対して、第3データ75は、別の事象に関する通信ログであると考えられる。
しかし、図15に示した方法で類似度を計算すると、図16に示すように、第1データ71から見たとき、第2データ72と第3データ75とのいずれとの間も類似度が同じとなる。すなわち、正しく類似度が計算されていない。
次に第1データ71と第2データ72との類似度、および第1データ71と第3データ75との類似度を、第2の実施の形態に係る方法で計算した場合について、図17,図18を参照して説明する。
図17は、第2の実施の形態による類似度計算例を示す第1の図である。図17には、第1データ71と第2データ72との類似度の計算例を示している。第1データ71について、通信元ホスト、通信先ホスト、ポートそれぞれに対応する変換行列81−1〜83−1が生成されている。これらの変換行列81−1〜83−1を用いて、第1データ71が中間データ91−1に変換されている。また第2データ72について、通信元ホスト、通信先ホスト、ポートそれぞれに対応する変換行列84〜86が生成されている。これらの変換行列84〜86を用いて、第2データ72が中間データ92に変換されている。第1データ71の中間データ91−1と第2データ72の中間データ92との類似度は、「0.97」である。
図18は、第2の実施の形態による類似度計算例を示す第2の図である。図18には、第1データ71と第3データ75との類似度の計算例を示している。第3データ75について、通信元ホスト、通信先ホスト、ポートそれぞれに対応する変換行列87〜89が生成されている。これらの変換行列87〜89を用いて、第3データ75が中間データ93に変換されている。変換行列81−2〜83−2を用いて第1データ71から変換された中間データ91−2と第3データ75の中間データ93との類似度は、「0.94」である。
図17と図18の類似度の計算結果から、第1データ71は、第3データ75よりも第2データ72に類似していることが分かる。すなわち、変数値間の関係を正しく反映させた類似度計算により、類似度の計算精度が向上している。
しかも図15、図16に示したような方法で類似度の精度を上げようとすると、対応付けのすべてのパタンについて類似度を計算することとなり、計算量が膨大となる。例えば、3項目の人またはモノがあり、各項目の種類数がそれぞれ「A,B,C」(A,B,Cは1以上の整数)であるものとする。このとき、図15、図16に示した方法で類似度を計算すると、「A!B!C!」の数の組み合わせパタンについて類似度計算を行うこととなる。それに対して、第2の実施の形態に示す手法では、(A2+B2+C2)ABCに比例する計算量となる。これは「A,B,C」がそれぞれ「10,10,10」なら、約160,000,000,000,000倍高速となることを意味する。
以上のように、第2の実施の形態によれば、類似する事象がログ生成の過程で異なる状態で記録された場合でも、重みづけによる変換により、精度の高い類似度の判定を、効率的に実行することができる。
〔その他の実施の形態〕
第2の実施の形態では、単位期間ごとの通信ログ間の類似度を計算する例を示したが、同じ技術により、他の様々な情報の類似度を計算可能である。また単に類似度の計算結果は、例えば情報の分類、データマイニング、機械学習などの様々な分野に利用できる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 第1データ
2 第2データ
3 第1類似判断用データ
4 第2類似判断用データ
5,6 第1重み情報
7,8 第2重み情報
10 データ変換装置
11 記憶部
12 処理部

Claims (7)

  1. コンピュータに、
    複数の項目のいずれかに属する複数の第1項目値のうちの異なる項目に属する2以上の第1項目値間の関係を示す数値が設定された複数の第1レコードを有する第1データ、および前記複数の項目のいずれかに属する複数の第2項目値のうちの異なる項目に属する2以上の第2項目値間の関係を示す数値が設定された複数の第2レコードを有する第2データを取得し、
    前記複数の項目それぞれを対象項目とし、前記対象項目ごとに、前記第1データ内の前記対象項目に属する対象第1項目値に関する他の第1項目値との関係と、前記第2データ内の前記対象項目に属する対象第2項目値に関する他の第2項目値との関係との類似度を維持したまま前記第1データと前記第2データとを変換させることができ、前記第1データを変換して生成される第1類似判断用データと前記第2データを変換して生成される第2類似判断用データとの類似度が向上するように最適化された、前記複数の項目のいずれかに属する複数の変換先項目値のうちの前記対象項目に属する対象変換先項目値への前記対象第1項目値の影響度を示す第1重み情報と、前記対象変換先項目値への前記対象第2項目値の影響度を示す第2重み情報とを生成し、
    前記複数の項目それぞれについて生成された前記第1重み情報に基づいて、前記第1データを、前記複数の変換先項目値のうちの異なる項目に属する2以上の変換先項目値間の関係を示す数値として、前記複数の第1レコードにおける各第1レコードの数値に該第1レコードの2以上の第1項目値それぞれの2以上の変換先項目値のいずれかへの影響度に応じた重み付けを行った値の合計が設定された複数の第3レコードを有する前記第1類似判断用データに変換し、
    前記複数の項目それぞれについて生成された前記第2重み情報に基づいて、前記第2データを、前記複数の変換先項目値のうちの異なる項目に属する2以上の変換先項目値間の関係を示す数値として、前記複数の第2レコードにおける各第2レコードの数値に該第2レコードの2以上の第1項目値それぞれの2以上の変換先項目値のいずれかへの影響度に応じた重み付けを行った値の合計が設定された複数の第4レコードを有する前記第2類似判断用データに変換する、
    処理を実行させるデータ変換プログラム。
  2. 前記第1重み情報と前記第2重み情報との生成では、前記複数の項目それぞれについて、初期値が設定された前記第1重み情報と前記第2重み情報とを生成し、前記対象項目以外の項目について生成された他項目第1重み情報と他項目第2重み情報とに基づいて、前記第1データ内の前記対象項目に属する前記対象第1項目値に関する他の第1項目値との関係と、前記第2データ内の前記対象項目に属する前記対象第2項目値に関する他の第2項目値との関係との類似度を計算する、
    請求項1記載のデータ変換プログラム。
  3. 前記第1重み情報と前記第2重み情報との生成では、所定の終了条件を満たすまで、前記複数の項目それぞれを、繰り返し前記対象項目として、前記対象項目に対する前記第1重み情報と前記第2重み情報とを生成する、
    処理を実行させる請求項1または2記載のデータ変換プログラム。
  4. 前記コンピュータに、さらに、
    前記第1類似判断用データ内の前記複数の第3レコードに含まれる数値群と、前記第2類似判断用データ内の前記複数の第4レコードに含まれる数値群との類似度を計算する、
    処理を実行させる請求項1乃至3のいずれかに記載のデータ変換プログラム。
  5. 前記第1重み情報は、前記複数の変換先項目値それぞれへの、前記対象第1項目値それぞれの影響度を示す重み値を成分とする、正規直交条件を満たす行列であり、
    前記第2重み情報は、前記複数の変換先項目値それぞれへの、前記対象第2項目値それぞれの影響度を示す重み値を成分とする、正規直交条件を満たす行列である、
    請求項1乃至4のいずれかに記載のデータ変換プログラム。
  6. コンピュータが、
    複数の項目のいずれかに属する複数の第1項目値のうちの異なる項目に属する2以上の第1項目値間の関係を示す数値が設定された複数の第1レコードを有する第1データ、および前記複数の項目のいずれかに属する複数の第2項目値のうちの異なる項目に属する2以上の第2項目値間の関係を示す数値が設定された複数の第2レコードを有する第2データを取得し、
    前記複数の項目それぞれを対象項目とし、前記対象項目ごとに、前記第1データ内の前記対象項目に属する対象第1項目値に関する他の第1項目値との関係と、前記第2データ内の前記対象項目に属する対象第2項目値に関する他の第2項目値との関係との類似度を維持したまま前記第1データと前記第2データとを変換させることができ、前記第1データを変換して生成される第1類似判断用データと前記第2データを変換して生成される第2類似判断用データとの類似度が向上するように最適化された、前記複数の項目のいずれかに属する複数の変換先項目値のうちの前記対象項目に属する対象変換先項目値への前記対象第1項目値の影響度を示す第1重み情報と、前記対象変換先項目値への前記対象第2項目値の影響度を示す第2重み情報とを生成し、
    前記複数の項目それぞれについて生成された前記第1重み情報に基づいて、前記第1データを、前記複数の変換先項目値のうちの異なる項目に属する2以上の変換先項目値間の関係を示す数値として、前記複数の第1レコードにおける各第1レコードの数値に該第1レコードの2以上の第1項目値それぞれの2以上の変換先項目値のいずれかへの影響度に応じた重み付けを行った値の合計が設定された複数の第3レコードを有する前記第1類似判断用データに変換し、
    前記複数の項目それぞれについて生成された前記第2重み情報に基づいて、前記第2データを、前記複数の変換先項目値のうちの異なる項目に属する2以上の変換先項目値間の関係を示す数値として、前記複数の第2レコードにおける各第2レコードの数値に該第2レコードの2以上の第1項目値それぞれの2以上の変換先項目値のいずれかへの影響度に応じた重み付けを行った値の合計が設定された複数の第4レコードを有する前記第2類似判断用データに変換する、
    データ変換方法。
  7. 複数の項目のいずれかに属する複数の第1項目値のうちの異なる項目に属する2以上の第1項目値間の関係を示す数値が設定された複数の第1レコードを有する第1データ、および前記複数の項目のいずれかに属する複数の第2項目値のうちの異なる項目に属する2以上の第2項目値間の関係を示す数値が設定された複数の第2レコードを有する第2データを記憶する記憶部と、
    前記複数の項目それぞれを対象項目とし、前記対象項目ごとに、前記第1データ内の前記対象項目に属する対象第1項目値に関する他の第1項目値との関係と、前記第2データ内の前記対象項目に属する対象第2項目値に関する他の第2項目値との関係との類似度を維持したまま前記第1データと前記第2データとを変換させることができ、前記第1データを変換して生成される第1類似判断用データと前記第2データを変換して生成される第2類似判断用データとの類似度が向上するように最適化された、前記複数の項目のいずれかに属する複数の変換先項目値のうちの前記対象項目に属する対象変換先項目値への前記対象第1項目値の影響度を示す第1重み情報と、前記対象変換先項目値への前記対象第2項目値の影響度を示す第2重み情報とを生成し、前記複数の項目それぞれについて生成された前記第1重み情報に基づいて、前記第1データを、前記複数の変換先項目値のうちの異なる項目に属する2以上の変換先項目値間の関係を示す数値として、前記複数の第1レコードにおける各第1レコードの数値に該第1レコードの2以上の第1項目値それぞれの2以上の変換先項目値のいずれかへの影響度に応じた重み付けを行った値の合計が設定された複数の第3レコードを有する前記第1類似判断用データに変換し、前記複数の項目それぞれについて生成された前記第2重み情報に基づいて、前記第2データを、前記複数の変換先項目値のうちの異なる項目に属する2以上の変換先項目値間の関係を示す数値として、前記複数の第2レコードにおける各第2レコードの数値に該第2レコードの2以上の第1項目値それぞれの2以上の変換先項目値のいずれかへの影響度に応じた重み付けを行った値の合計が設定された複数の第4レコードを有する前記第2類似判断用データに変換する処理部と、
    を有するデータ変換装置。
JP2016193267A 2016-09-30 2016-09-30 データ変換プログラム、データ変換方法、およびデータ変換装置 Active JP6773972B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016193267A JP6773972B2 (ja) 2016-09-30 2016-09-30 データ変換プログラム、データ変換方法、およびデータ変換装置
US15/720,998 US10769100B2 (en) 2016-09-30 2017-09-29 Method and apparatus for transforming data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016193267A JP6773972B2 (ja) 2016-09-30 2016-09-30 データ変換プログラム、データ変換方法、およびデータ変換装置

Publications (2)

Publication Number Publication Date
JP2018055551A JP2018055551A (ja) 2018-04-05
JP6773972B2 true JP6773972B2 (ja) 2020-10-21

Family

ID=61758974

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016193267A Active JP6773972B2 (ja) 2016-09-30 2016-09-30 データ変換プログラム、データ変換方法、およびデータ変換装置

Country Status (2)

Country Link
US (1) US10769100B2 (ja)
JP (1) JP6773972B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10460374B2 (en) 2017-01-17 2019-10-29 Bank Of America Corporation Capturing and extracting fragmented data and data processing using machine learning
WO2021044500A1 (ja) * 2019-09-02 2021-03-11 オムロン株式会社 異常に対する処理の支援装置
CN112990711B (zh) * 2021-03-19 2023-11-17 云南建投第九建设有限公司 基于现场施工的铝合金模板施工监测方法及系统
JPWO2022259336A1 (ja) * 2021-06-07 2022-12-15

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3577972B2 (ja) * 1998-10-19 2004-10-20 日本電信電話株式会社 類似度判定方法及び文書検索装置及び文書分類装置及び文書検索プログラムを格納した記憶媒体及び文書分類プログラムを格納した記憶媒体
JP4039488B2 (ja) * 2003-08-18 2008-01-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 多頻度パターン抽出装置、多頻度パターン抽出方法、及びそのプログラムと記録媒体
JP4494036B2 (ja) * 2004-02-25 2010-06-30 卓夫 小林 データベース生成装置、データ分析装置およびデータベース検索装置
US20080275651A1 (en) * 2006-10-24 2008-11-06 Predrag Radivojac Methods for inferring the presence of a protein in a sample
JP2009025853A (ja) * 2007-07-17 2009-02-05 Mitsubishi Electric Corp パターン認識装置
JP5364996B2 (ja) * 2007-12-17 2013-12-11 日本電気株式会社 類似ユーザ発見システム、類似ユーザ発見方法および類似ユーザ発見プログラム
JP5200750B2 (ja) * 2008-08-08 2013-06-05 株式会社リコー 情報検索装置、情報検索方法、プログラム、および記録媒体
JP6155833B2 (ja) * 2013-05-16 2017-07-05 富士通株式会社 伝達情報変動検知方法、伝達情報変動検知装置および伝達情報変動検知プログラム
US20160057159A1 (en) * 2014-08-22 2016-02-25 Syracuse University Semantics-aware android malware classification

Also Published As

Publication number Publication date
JP2018055551A (ja) 2018-04-05
US10769100B2 (en) 2020-09-08
US20180095933A1 (en) 2018-04-05

Similar Documents

Publication Publication Date Title
JP6751235B2 (ja) 機械学習プログラム、機械学習方法、および機械学習装置
JP7000766B2 (ja) 学習データ選択プログラム、学習データ選択方法、および、学習データ選択装置
TWI688917B (zh) 風險識別模型構建和風險識別方法、裝置及設備
US10186060B2 (en) Method for processing graphs and information processing apparatus
EP3635602B1 (en) Validating correlation between chains of alerts using cloud view
JP6773972B2 (ja) データ変換プログラム、データ変換方法、およびデータ変換装置
JP6898562B2 (ja) 機械学習プログラム、機械学習方法、および機械学習装置
KR101879416B1 (ko) 이상 금융거래 탐지 방법 및 그 전자 장치
US10210189B2 (en) Root cause analysis of performance problems
US20160292578A1 (en) Predictive modeling of data clusters
US20170103214A1 (en) Testing insecure computing environments using random data sets generated from characterizations of real data sets
US10489714B2 (en) Fingerprinting and matching log streams
CN113033458B (zh) 动作识别方法和装置
US11222270B2 (en) Using learned application flow to predict outcomes and identify trouble spots in network business transactions
JP2023015340A (ja) ノード情報推定方法、ノード情報推定プログラムおよび情報処理装置
CN114896291A (zh) 多智能体模型的训练方法和排序方法
US11410065B2 (en) Storage medium, model output method, and model output device
CN111382417B (zh) 使用一系列设备指纹识别来自用户设备的欺诈行为的系统和方法
US9460393B2 (en) Inference of anomalous behavior of members of cohorts and associate actors related to the anomalous behavior based on divergent movement from the cohort context centroid
Charlier et al. Profiling smart contracts interactions with tensor decomposition and graph mining
US20180033073A1 (en) Using Learned Application Flow to Assist Users in Network Business Transaction Based Apps
CN113508371B (zh) 用于改进计算机标识的系统和方法
EP4131084A1 (en) Program, data processing method, and data processing apparatus
US11983720B2 (en) Mixed quantum-classical method for fraud detection with quantum feature selection
WO2024013939A1 (ja) 機械学習プログラム、機械学習方法、および情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190611

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190613

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190613

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200803

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: 20200901

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200914

R150 Certificate of patent or registration of utility model

Ref document number: 6773972

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150