(57)【要約】  対象システムにおける異常検知用のモデルの学習に使用された学習データ及び前記モデルの検査に使用する検査データを前記対象システムから取得するデータ取得部と、前記学習データのデータ分布と前記検査データの前記データ分布との乖離度に基づいて前記モデルの再学習の要否を判定する判定部と、を備えることを特徴とする情報処理装置が提供される。
2019180778.tif 000002
【特許請求の範囲】
【請求項１】
対象システムにおける異常検知用のモデルの学習に使用された学習データ及び前記モデルの検査に使用する検査データを前記対象システムから取得するデータ取得部と、
前記学習データのデータ分布と前記検査データの前記データ分布との乖離度に基づいて前記モデルの再学習の要否を判定する判定部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記学習データ及び前記検査データは、それぞれ異なる期間に生成されていることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記検査データは、前記学習データよりも後の前記期間に生成されていることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記学習データをクラスタリングするクラスタリング部と、
前記モデルに基づいて前記検査データが属するクラスタを判別するクラスタ判別部と、
を更に備え、
前記判定部は、前記クラスタリングの結果と前記判別の結果とを比較することで、前記再学習の要否を判定することを特徴とする請求項１乃至３のいずれか一項に記載の情報処理装置。
【請求項５】
前記判定部は、
前記クラスタリングの結果に基づいて、前記学習データが属する前記クラスタと前記クラスタごとのデータ数との関係を示す期待度数分布を算出する第１の算出部と、
前記判別の結果に基づいて、前記検査データが属する前記クラスタと前記クラスタごとの前記データ数との関係を示す観測度数分布を算出する第２の算出部と、
前記期待度数分布に対する前記観測度数分布の誤差が所定の有意水準値を超えるか否かを検定する検定部と、
を有することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記学習データをクラスタリングする第１のクラスタリング部と、
前記検査データを前記クラスタリングする第２のクラスタリング部と、
を更に備え、
前記判定部は、前記学習データと前記検査データの間における前記クラスタリングの結果を比較することで、前記再学習の要否を判定することを特徴とする請求項１乃至３のいずれか一項に記載の情報処理装置。
【請求項７】
前記判定部は、前記学習データと前記検査データの間において、前記クラスタリングによって生成されたクラスタの数を比較することで、前記再学習の要否を判定することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記判定部は、前記クラスタリングによって生成されたクラスタのうち、前記学習データと前記検査データの間において対応関係にある前記クラスタの重心座標を比較することで、前記再学習の要否を判定することを特徴とする請求項６に記載の情報処理装置。
【請求項９】
対象システムにおける異常検知用のモデルの学習に使用された学習データ及び前記モデルの検査に使用する検査データを前記対象システムから取得するステップと、
前記学習データのデータ分布と前記検査データの前記データ分布との乖離度に基づいて前記モデルの再学習の要否を判定するステップと、
を備えることを特徴とする情報処理方法。
【請求項１０】
コンピュータに、
対象システムにおける異常検知用のモデルの学習に使用された学習データ及び前記モデルの検査に使用する検査データを前記対象システムから取得するステップと、
前記学習データのデータ分布と前記検査データの前記データ分布との乖離度に基づいて前記モデルの再学習の要否を判定するステップと、
を実行させることを特徴とするプログラムが記録された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及び記録媒体に関する。
【背景技術】
【０００２】
検査対象のシステムから取得した学習データに基づいてモデルを学習し、当該モデルを用いて検査データの中から異常データを検知する技術が知られている。特許文献１には、学習データを部分空間法でモデル化し、部分空間におけるデータ間の距離に基づいて異常候補を検知する異常検知システムが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−２１８７２５号公報
【発明の概要】
【０００４】
特許文献１に記載の技術においては、学習データと検査データとの間でデータ傾向が変化した場合には、正常なデータに対する誤検知や異常なデータに対する見逃しが発生する場合があった。このような場合、最新のデータを用いて定期的にモデルを再学習する方法が考えられる。しかしながら、当該方法では有識者によるモデルの妥当性の検証を伴うため、コストが高くなる問題があった。
【０００５】
本発明は、上述の問題に鑑みて行われたものであって、データ傾向の変化を迅速に検知でき、適切なタイミングでモデルの再学習を実行できる情報処理装置、情報処理方法及び記録媒体を提供することを目的とする。
【０００６】
本発明の１つの観点によれば、対象システムにおける異常検知用のモデルの学習に使用された学習データ及び前記モデルの検査に使用する検査データを前記対象システムから取得するデータ取得部と、前記学習データのデータ分布と前記検査データの前記データ分布との乖離度に基づいて前記モデルの再学習の要否を判定する判定部と、を備えることを特徴とする情報処理装置が提供される。
【０００７】
本発明によれば、データ傾向の変化を迅速に検知でき、適切なタイミングでモデルの再学習を実行できる情報処理装置、情報処理方法及び記録媒体を提供できる。
【図面の簡単な説明】
【０００８】
【図１】本発明の第１の実施形態に係る情報処理装置と対象システムの関係を示す概略図である。
【図２】本発明の第１の実施形態に係る情報処理装置の機能構成を示すブロック図である。
【図３】本発明の第１の実施形態において対象システムから取得されるログデータの一例を示す表である。
【図４】本発明の第１の実施形態におけるクラスタリングの一例を示す模式図である。
【図５】本発明の第１の実施形態におけるクラスタ判別の一例を示す模式図である。
【図６】本発明の第１の実施形態における期待度数分布の一例を示す表である。
【図７】本発明の第１の実施形態における観測度数分布の一例を示す表である。
【図８】本発明の第１の実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。
【図９】本発明の第１の実施形態に係る情報処理装置のモデルの学習処理の一例を示すフローチャートである。
【図１０】本発明の第１の実施形態に係る情報処理装置のモデルの検査処理の一例を示すフローチャートである。
【図１１】本発明の第２の実施形態に係る情報処理装置の機能構成を示すブロック図である。
【図１２】本発明の第２の実施形態におけるデータ傾向の変化の判定方法を説明する模式図である。
【図１３】本発明の第２の実施形態に係る情報処理装置のモデルの学習処理の一例を示すフローチャートである。
【図１４】本発明の第２の実施形態に係る情報処理装置のモデルの検査処理の一例を示すフローチャートである。
【図１５】本発明の第３の実施形態に係る情報処理装置の機能構成を示すブロック図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、本発明の実施形態を説明する。なお、以下で説明する図面において、同一の機能又は対応する機能を有する要素には同一の符号を付し、その繰り返しの説明を省略することもある。
【００１０】
［第１の実施形態］
本発明の第１の実施形態に係る情報処理装置１及び情報処理方法について図１乃至図１０を用いて説明する。
【００１１】
図１は、本実施形態に係る情報処理装置１と対象システム２の関係を示す概略図である。図１に示すように、情報処理装置１には、対象システム２がネットワーク３を介して通信可能に接続されている。対象システム２は、情報処理装置１における処理対象となるデータを生成して出力する。ネットワーク３は、例えば、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）であるが、その種別が限定されるものではない。ネットワーク３は、有線のネットワークであってもよいし、無線のネットワークであってもよい。なお、当該処理の対象となるデータの種類は、限定されないが、以下の説明ではログデータを例とする。
【００１２】
対象システム２は、特定のシステムに限定されない。対象システム２は、例えばＩＴ（Information  Technology）システムである。ＩＴシステムは、サーバ、クライアント端末、ネットワーク機器その他の情報機器等の機器、及び当該機器上で動作する各種のソフトウェアにより構成される。なお、本実施形態の対象システム２は、メールの送受信を管理するメールシステムである。また、対象システム２は１つに限らず、複数でもよい。
【００１３】
本実施形態に係る情報処理装置１には、対象システム２におけるメール送受信に伴って生成されたデータがネットワーク３を介して入力される。対象システム２から情報処理装置１にデータを入力する態様は、特に限定されない。当該入力の態様は、対象システム２の構成等に応じて適宜選択できる。
【００１４】
例えば、対象システム２における通知エージェントが、対象システム２において生成されたログデータを情報処理装置１に送信することにより、情報処理装置１にログデータを入力できる。ログデータを送信するプロトコルは、特に限定されない。当該プロトコルは、ログデータを送信するシステムの構成等に応じて適宜選択できる。例えば、プロトコルとして、ｓｙｓｌｏｇプロトコル、ＦＴＰ（File  Transfer  Protocol）、ＦＴＰＳ（File  Transfer  Protocol  over  TLS（Transport  Layer  Security）/SSL（Secure  Sockets  Layer））、ＳＦＴＰ（SSH（Secure  Shell）  File  Transfer  Protocol）を用いることができる。また、対象システム２が、生成したログデータを情報処理装置１と共有することにより、情報処理装置１にログデータを入力できる。ログデータを共有するためのファイル共有の手法は、特に限定されない。ファイル共有の方法は、ログデータを生成するシステムの構成等に応じて適宜選択される。例えば、ＳＭＢ（Server  Message  Block）又はこれを拡張したＣＩＦＳ（Common  Internet  File  System）によるファイル共有を用いることができる。
【００１５】
なお、本実施形態に係る情報処理装置１は、必ずしも対象システム２とネットワーク３を介して通信可能に接続されている必要はない。例えば、情報処理装置１は、対象システム２からログデータを収集するログ収集システム（不図示）とネットワーク３を介して通信可能に接続されていてもよい。この場合、対象システム２で生成されたログデータは、一旦、ログ収集システムにより収集される。そして、当該ログデータは、ログ収集システムからネットワーク３を介して情報処理装置１に入力される。また、本実施形態に係る情報処理装置１は、対象システム２で生成されたログデータを記録した記録媒体からログデータを取得することもできる。この場合、対象システム２は、ネットワーク３を介して情報処理装置１に接続されている必要はない。
【００１６】
以下、本実施形態に係る情報処理装置１の具体的構成について更に図２乃至図８を用いて説明する。図２は、本実施形態に係る情報処理装置１の機能構成を示すブロック図である。
【００１７】
図２に示すように、情報処理装置１は、データ取得部１１、学習部１２、記憶部１３、判定部１４、及び出力部１５を備える。データ取得部１１は、対象システム２における異常検知用のモデルの学習に使用された学習データ及びモデルの検査に使用する検査データを対象システム２から取得する。学習データ及び検査データは、共通のデータ項目を有するデータであって、それぞれ異なる母集団に含まれるデータである。母集団は、例えば、ログデータの生成された期間やログデータを生成した部署及び場所等により任意に定められる。本実施形態に係る情報処理装置１において処理の対象となるログデータは、対象システム２又はこれに含まれる構成要素により定期又は不定期に生成されて出力されたものである。
【００１８】
図３は、本実施形態において対象システム２から取得されるログデータの一例を示す表である。ここでは、ログデータとしてメール受信履歴が示されている。メール受信履歴には、受信日時、送信元アドレス、経路情報、添付ファイルの有無がパラメータとして含まれている。例えば、受信日時“２０１７／１２／０１  １０：５２：５９”のログデータの場合には、送信元アドレス“ｘｘｘ＠ａｂｃｄ．ｃｏｍ”から受信したメールが、経路情報“Ｒｅｃｉｖｅｄ：ｆｒｏｍ  ＊＊＊  （［ｘｘｘ．ｘｘｘ．０．１］）  ｂｙ  ．．．”に示されるネットワーク上の経路で対象システム２（メールサーバ）に到達し、当該メールには添付ファイルが無かったことを示している。なお、図３に示すメール受信履歴は、あくまで例示であり、これら以外のパラメータを更に含んでもよい。また、図３では複数のユーザのうちの一人のユーザに関するメール受信履歴のみが例示されているが、他のユーザについても同様のメール受信履歴が記憶されているものとする。
【００１９】
また、本実施形態における学習データ及び検査データは、それぞれ異なる期間に生成されているものとする。例えば、学習データは、過去１年間分のメール受信履歴であり、検査データは、検査当日のメール受信履歴である。これにより、モデルの基礎となった学習データのデータ傾向が、異なる期間の検査データのデータ傾向と適合するのか否かを判定できる。
【００２０】
また、本実施形態における検査データは、学習データよりも後の期間に生成されている。情報処理装置１は、学習データの解析によって、過去の一定期間におけるデータ傾向を検出できる。これに対し、情報処理装置１は、検査データの解析によって、学習データの生成時点よりも新しいデータ傾向を検出できる。なお、対象システム２からの検査データの抽出期間（以下、検査期間）は、学習データの抽出期間（以下、学習期間）に一部又は全部が含まれてもよい。例えば、学習期間は２０１７年１月から６月の半年間に、検査期間は２０１７年６月の１ヶ月間にそれぞれ設定される。
【００２１】
学習部１２は、学習データに基づいて対象システム２における異常検知用のモデルを学習する。図２に示すように、学習部１２は、クラスタリング部１２ａ、モデル構築部１２ｂ、及びクラスタ判別部１２ｃを含む。
【００２２】
クラスタリング部１２ａは、データ取得部１１から入力された学習データをクラスタリングする。クラスタリング部１２ａは、クラスタリング結果を記憶部１３に記憶する。本実施形態におけるクラスタリング結果は、ログデータの特徴量を示す２つの指標値からなる２次元ベクトルと、ログデータの分類先のクラスタＩＤとを組み合わせたデータセットとする。
【００２３】
図４は、本実施形態におけるクラスタリングの一例を示す模式図である。ここでは、第１の指標値（横軸）と第２の指標値（縦軸）からなる２次元平面（部分空間）が示されている。この２次元平面には、ログデータを表す複数の点（図中、黒丸の印）がプロットされている。例えば、図３に示したパラメータのうち、送信元アドレス及び経路情報の２つが指標値として用いられる。データ間の類似度は、データ間の距離が近いほど高くなる。逆に、データ間の類似度は、データ間の距離が遠いほど低くなる。図４において、楕円Ｃ１〜Ｃ４は、共通のクラスタＩＤ（ラベル）を有するログデータ群（クラスタ）の境界線を示している。また、楕円Ｃ１〜Ｃ４のいずれにも含まれないログデータは、異常候補とみなされたデータ（以下、異常データ）に該当する。なお、クラスタリングの手法としては、例えばＤＢＳＣＡＮ（Density-based  spatial  clustering  of  applications  with  noise）やｋ平均法（k-means）等の技術を用いることができる。
【００２４】
モデル構築部１２ｂは、クラスタリング部１２ａにおけるクラスタリングの結果に基づいて、未知の入力データが属するクラスタを判別するための異常検知用のモデルを構築する。そして、モデル構築部１２ｂは、構築したモデルを記憶部１３に記憶する。クラスタ判別（クラス分類）の手法としては、例えばｋ近傍法（k-nearest  neighbor  algorithm,  k-NN）やＳＶＭ（Support  Vector  Machine）等の技術を用いることができる。
【００２５】
クラスタ判別部１２ｃは、データ取得部１１から入力された検査データが属するクラスタを、記憶部１３に記憶されているモデルに基づいて判別する。図５は、本実施形態におけるクラスタ判別の一例を示す模式図である。ここでは、楕円Ｃ１〜Ｃ４の境界線に対応するモデルに対して検査データＤ１〜Ｄ５（図中、四角形の印）がそれぞれ入力された場合を表している。例えば、クラスタ判別部１２ｃは、検査データＤ１〜Ｄ４が楕円Ｃ１〜Ｃ４のクラスタにそれぞれ属すると判別する。クラスタ判別部１２ｃは、検査データＤ５が楕円Ｃ１〜Ｃ４の領域に含まれないため、検査データＤ５を異常データとして判別する。
【００２６】
判定部１４は、学習データのデータ分布と検査データのデータ分布との乖離度に基づいてモデルの再学習の要否を判定する。２つのデータ分布の乖離度は、学習データと検査データとの間におけるデータ傾向の変化の度合いを示す。判定部１４は、データ傾向の変化が有ったときに、モデルの再学習が必要であると判定する。また、図２に示すように、判定部１４は、期待度数分布算出部１４ａ、観測度数分布算出部１４ｂ、及び検定部１４ｃを含む。
【００２７】
期待度数分布算出部（第１の算出部）１４ａは、クラスタリング部１２ａにおけるクラスタリングの結果に基づいて期待度数分布を算出する。期待度数分布は、学習データが属するクラスタとクラスタごとのデータ数との関係を示す。
【００２８】
図６は、本実施形態における期待度数分布の一例を示す表である。ここでは、期待度数分布はクラスタＩＤとデータ数の組み合わせによって示されている。例えば、クラスタＩＤ“ｃｌｕｓｔｅｒ＿００１”のクラスタに属する学習データのデータ数は“３２，１０２”である。また、クラスタＩＤ“ｃｌｕｓｔｅｒ＿ｅｒｒ”は、データ数が一定数に満たないクラスタを１つに纏めたＩＤである。すなわち、クラスタＩＤ“ｃｌｕｓｔｅｒ＿ｅｒｒ”のデータ数は、異常データ（外れ値）とみなされた学習データの数を示す。
【００２９】
観測度数分布算出部（第２の算出部）１４ｂは、クラスタ判別部１２ｃにおける判別の結果に基づいて観測度数分布を算出する。観測度数分布は、検査データが属するクラスタとクラスタごとのデータ数との関係を示す。
【００３０】
図７は、本実施形態における観測度数分布の一例を示す表である。ここでは、観測度数分布はクラスタＩＤと１日当たりのデータ数の組み合わせたデータセットである。例えば、２０１８／８／２８の検査データの場合には、クラスタＩＤ“ｃｌｕｓｔｅｒ＿００１”のクラスタに属する検査データのデータ数は、“１，５２６”である。また、クラスタＩＤ“ｃｌｕｓｔｅｒ＿ｅｒｒ”に対応する検査データの数は、２０１８／８／２８の検査データの場合には、“２８”であるが、２０１８／８／３０の検査データの場合には、“５５”である。
【００３１】
検定部１４ｃは、期待度数分布に対する観測度数分布の誤差（乖離度）が所定の有意水準値を超えるか否かを検定する。有意水準値としては、例えば０．０５が使われる。
【００３２】
出力部１５は、判定部１４における判定結果を出力する。本実施形態の出力部１５は、ディスプレイ１０９により構成される。なお、ディスプレイ１０９への表示に代えて情報処理装置１の外部の装置に処理結果のデータを送信する構成であってもよい。また、出力部１５は、プリンタ（不図示）等の出力装置により構成されてもよい。データを受信した当該他の装置は、必要に応じて当該データを用いた処理を行ってもよく、表示を行ってもよい。更に、情報処理装置１は、処理結果を記憶装置に記憶しておき、他の装置からの要求に応じて処理結果を他の装置に送信する構成としてもよい。
【００３３】
上述した情報処理装置１は、例えばコンピュータ装置により構成される。図８は、本実施形態に係る情報処理装置１のハードウェア構成の一例を示すブロック図である。なお、情報処理装置１は、単一の装置により構成されてもよい。また、情報処理装置１は、有線又は無線で接続された２つ以上の物理的に分離された装置により構成されてもよい。
【００３４】
図８に示すように、情報処理装置１は、ＣＰＵ（Central  Processing  Unit）１０１、ＲＯＭ（Read  Only  Memory）１０２、ＲＡＭ（Random  Access  Memory）１０３、ＨＤＤ（Hard  Disk  Drive）１０４、通信インターフェース（Ｉ／Ｆ（Interface））１０５、入力装置１０６、ディスプレイコントローラ１０７を有している。ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、ＨＤＤ１０４、及び通信Ｉ／Ｆ１０５、入力装置１０６、及びディスプレイコントローラ１０７は、共通のバスライン１０８に接続されている。
【００３５】
ＣＰＵ１０１は、情報処理装置１の全体の動作を制御する。また、ＣＰＵ１０１は、データ取得部１１、学習部１２、判定部１４、及び出力部１５の各部の機能を実現するプログラムを実行する。ＣＰＵ１０１は、ＨＤＤ１０４等に記憶されたプログラムをＲＡＭ１０３にロードして実行することにより、各部の機能を実現する。
【００３６】
ＲＯＭ１０２には、ブートプログラム等のプログラムが記憶されている。ＲＡＭ１０３は、ＣＰＵ１０１がプログラムを実行する際のワーキングエリアとして使用される。
【００３７】
また、ＨＤＤ１０４は、情報処理装置１における処理結果及びＣＰＵ１０１により実行される各種のプログラムを記憶する記憶装置である。記憶装置は、不揮発性であればＨＤＤ１０４に限定されない。記憶装置は、例えばフラッシュメモリ等であってもよい。本実施形態において、ＨＤＤ１０４、ＲＯＭ１０２及びＲＡＭ１０３は、記憶部１３としての機能を実現する。
【００３８】
通信Ｉ／Ｆ１０５は、ネットワーク３に接続された対象システム２との間のデータ通信を制御する。通信Ｉ／Ｆ１０５は、ＣＰＵ１０１と共にデータ取得部１１の機能を実現する。
【００３９】
入力装置１０６は、例えば、キーボード、マウス等のヒューマンインターフェースである。また、入力装置１０６は、ディスプレイ１０９に組み込まれたタッチパネルであってもよい。情報処理装置１のユーザは、入力装置１０６を介して、情報処理装置１の設定の入力、処理の実行指示の入力等を行うことができる。
【００４０】
ディスプレイコントローラ１０７には、ディスプレイ１０９が接続されている。ディスプレイコントローラ１０７は、ＣＰＵ１０１と共に出力部１５として機能する。ディスプレイコントローラ１０７は、出力されたデータに基づく画像をディスプレイ１０９に表示させる。なお、情報処理装置１のハードウェア構成は、上述した構成に限定されない。
【００４１】
以下、情報処理装置１の動作について図９及び図１０に沿って詳述する。なお、以下の説明では、上述のメール受信履歴に対するデータ分析を例として説明するが、本発明はこれに限定されるものではない。
【００４２】
図９は、本実施形態に係る情報処理装置１の学習処理の一例を示すフローチャートである。この処理は、例えば、情報処理装置１のユーザから学習データの抽出期間（学習期間）と共にモデルの学習処理の実行要求が入力されたときに開始される。
【００４３】
先ず、データ取得部１１は、対象システム２から学習期間に含まれるログデータを学習データとして取得し（ステップＳ１０１）、学習データをクラスタリング部１２ａに出力する。
【００４４】
次に、クラスタリング部１２ａは、データ取得部１１から入力された学習データを所定のアルゴリズムに従ってクラスタリングする（ステップＳ１０２）。このとき、クラスタリング部１２ａは、クラスタリング結果を記憶部１３に記憶する。
【００４５】
次に、モデル構築部１２ｂは、クラスタリング部１２ａにおけるクラスタリング結果から異常検知用のモデルを構築する（ステップＳ１０３）。このとき、モデル構築部１２ｂは、構築したモデルを記憶部１３に記憶する。
【００４６】
そして、期待度数分布算出部１４ａは、クラスタリング結果から期待度数分布を算出する（ステップＳ１０４）。このとき、期待度数分布算出部１４ａは、算出した期待度数分布を記憶部１３に記憶する。なお、ステップＳ１０４の処理は、後述する図１０のフローチャートにおいて実行されてもよい。
【００４７】
図１０は、本実施形態に係る情報処理装置１のモデルの検査処理の一例を示すフローチャートである。この処理は、例えば、情報処理装置１のユーザから検査データの抽出期間（検査期間）と共にモデルの検査処理の実行要求が入力されたときに開始される。
【００４８】
先ず、データ取得部１１は、対象システム２から検査期間に含まれるログデータを検査データとして取得し（ステップＳ２０１）、検査データをクラスタ判別部１２ｃに出力する。
【００４９】
次に、クラスタ判別部１２ｃは、データ取得部１１から入力された検査データが属するクラスタをモデルによって判別する（ステップＳ２０２）。このとき、クラスタ判別部１２ｃは、クラスタの判別結果を記憶部１３に記憶する。
【００５０】
次に、観測度数分布算出部１４ｂは、クラスタの判別結果から観測度数分布を算出し（ステップＳ２０３）、観測度数分布を検定部１４ｃへ出力する。
【００５１】
次に、検定部１４ｃは、記憶部１３から読み出した期待度数分布と、観測度数分布算出部１４ｂから入力された観測度数分布との誤差を検定する（ステップＳ２０４）。検定方法としては、カイ二乗検定等の技術を用いることができる。
【００５２】
次に、検定部１４ｃは、誤差が所定の有意水準値を超えるか否かを判定する（ステップＳ２０５）。ここで、検定部１４ｃは、誤差が所定の有意水準値を超えると判定した場合には（ステップＳ２０５：ＹＥＳ）、ステップＳ２０６の処理へ移る。これに対し、検定部１４ｃは、誤差が所定の有意水準値を超えないと判定した場合には（ステップＳ２０５：ＮＯ）、ステップＳ２０８の処理へ移る。
【００５３】
次に、検定部１４ｃは、出力部１５にデータ傾向の変化有りの判定結果を出力させると共に（ステップＳ２０６）、学習部１２に対して異常検知用のモデルの再学習を指示する（ステップＳ２０７）。このとき、学習部１２は、例えば検査データを含む学習データに基づいてモデルの再学習を実行し、再学習による新たなモデルを記憶部１３に記憶する。なお、再学習の実行タイミングや使用する学習データは、これに限られない。
【００５４】
ステップＳ２０８において、検定部１４ｃは、出力部１５にデータ傾向の変化無しの判定結果を出力させる。すなわち、既存のモデルは検査データに十分対応できており、モデルの再学習は不要と判定される。
【００５５】
以上のように、本実施形態に係る情報処理装置１によれば、データ傾向の変化を迅速に検知でき、適切なタイミングでモデルの再学習を実行できる。例えば、対象システム２がメールシステムの場合には、ログデータのデータ傾向の変化を検知することで、早いタイミングでモデルの再学習をユーザに提案できる。その結果、再学習モデルによってスパムメール等の不正メールを高精度で検出できる。また、モデルの再学習を必要に応じて実行することで、モデル学習に要するコストも抑制できる。
【００５６】
［第２の実施形態］
本発明の第２の実施形態に係る情報処理装置２０について図１１乃至図１４を用いて説明する。なお、以下の説明において、第１の実施形態と同様の構成については、説明を省略又は簡略化する。
【００５７】
図１１は、本実施形態に係る情報処理装置２０の機能構成を示すブロック図である。図１１に示すように、本実施形態の学習部１２は、第１のクラスタリング部１２ｄ及び第２のクラスタリング部１２ｅを有する。第１のクラスタリング部１２ｄは、第１の実施形態のクラスタリング部１２ａに相当し、学習データをクラスタリングする。これに対し、第２のクラスタリング部１２ｅは、検査データをクラスタリングする。第２のクラスタリング部１２ｅは、例えば、学習データから構築したモデルによって検査データが属するクラスタを判別した後に、その判別結果に基づいて検査データをクラスタリングする。この場合、検査データのクラスタリングを短時間で完了できる。なお、第１の実施形態のクラスタリング部１２ａと同一の手法を用いることもできる。
【００５８】
本実施形態の判定部１４は、学習データと検査データの間におけるクラスタリングの結果を比較することで、モデルの再学習の要否を判定する。本実施形態の判定部１４は、第１の実施形態の期待度数分布算出部１４ａ及び観測度数分布算出部１４ｂを有さない。その代わりに、判定部１４は、第１のクラスタ解析部１４ｄ、第２のクラスタ解析部１４ｅ、及び比較部１４ｆを有する。
【００５９】
第１のクラスタ解析部１４ｄは、第１のクラスタリング部１２ｄにおける学習データのクラスタリング結果を解析することで、第１のクラスタ解析情報を作成する。これに対し、第２のクラスタ解析部１４ｅは、第２のクラスタリング部１２ｅにおける検査データのクラスタリング結果を解析することで、第２のクラスタ解析情報を作成する。クラスタ解析情報の具体例としては、各クラスタの重心座標、各クラスタに属するデータのデータ数、クラスタの総数、外れ値の数等が挙げられる。
【００６０】
比較部１４ｆは、第１のクラスタ解析情報と第２のクラスタ解析情報とを比較することで、データ傾向の変化の有無（モデルの再学習の要否）を判定する。判定方法の具体例としては、以下の（１）〜（５）のような方法が挙げられる。
【００６１】
（１）学習データと検査データの間において、クラスタリングによって生成されたクラスタの数を比較する。クラスタ数の増減があった場合には、比較部１４ｆは、データ傾向の変化有りと判定する。
【００６２】
（２）クラスタリングによって生成されたクラスタのうち、学習データと検査データの間において対応関係にあるクラスタの重心座標を比較する。部分空間におけるクラスタの重心座標の変動幅が所定の閾値を超える場合には、比較部１４ｆは、データ傾向の変化有りと判定する。
【００６３】
（３）学習データ及び検査データにおける異常データのデータ数、すなわち、どのデータにも属さないデータの数を比較する。そして、検査時の異常データの検出数の増加率が所定の閾値を超える場合には、比較部１４ｆは、データ傾向の変化有りと判定する。あるデータが異常データか否かについては、既存のクラスタに属するデータとの距離が一定以上離れているか否かによって判定できる。
【００６４】
（４）あるクラスタに属するデータの数の変化を比較する。例えば、クラスタＡに属するデータの一日当たりのデータ数が、学習データと検査データの間で大幅に異なる場合には、比較部１４ｆは、データ傾向の変化有りと判定する。
【００６５】
（５）上述の方法（１）においてクラスタの個数が同じ場合に、新しいクラスタ群（検査データのクラスタリング結果）を使用して過去のデータ（モデル学習時の学習データ）を判別し、過去のクラスタで判別した場合との異常データの検出数を比較する。
【００６６】
図１２は、本実施形態におけるデータ傾向の変化の判定方法を説明する模式図である。ここでは、破線の楕円Ａ１、Ｂ１は、学習データのクラスタの境界線を示している。また、実線の楕円Ａ２、Ｂ２及びＣは、検査データのクラスタの境界線を示している。また、Ａ１とＡ２は、例えば共通のクラスタＩＤを有する、対応関係にあるクラスタである。同様に、Ｂ１とＢ２も対応関係にあるクラスタである。Ｐ１、Ｐ２、Ｑ１、Ｑ２は、それぞれ楕円Ａ１、Ａ２、Ｂ１、Ｂ２に係るクラスタの重心座標の位置を示している。Ａ１とＡ２のクラスタ間の重心座標の変動幅、すなわち、点Ｐ１と点Ｐ２の間の距離はｄ１である。同様に、Ｂ１とＢ２のクラスタ間の重心座標の変動幅、すなわち、点Ｑ１と点Ｑ２の間の距離はｄ２である。この場合、距離（変動幅）ｄ１、ｄ２の一方又は両方が所定の閾値を超える場合には、判定部１４は、データ傾向の変化有りと判定できる。
【００６７】
これに対し、楕円Ｃに係るクラスタは、検査データのクラスタリングによって新たに生成されている。このように、クラスタ数が増加した場合にも、判定部１４は、データ傾向の変化有りと判定できる。なお、クラスタの数が減少した場合も同様である。
【００６８】
図１３は、本実施形態に係る情報処理装置２０のモデルの学習処理の一例を示すフローチャートである。この処理は、例えば、情報処理装置１のユーザからログデータの学習期間と共にモデルの学習処理の実行要求が入力されたときに開始される。
【００６９】
先ず、データ取得部１１は、対象システム２から学習期間に含まれるログデータを学習データとして取得し（ステップＳ３０１）、学習データをクラスタリング部１２ａに出力する。
【００７０】
次に、第１のクラスタリング部１２ｄは、データ取得部１１から入力された学習データを所定のアルゴリズムに従ってクラスタリングする（ステップＳ３０２）。このとき、第１のクラスタリング部１２ｄは、クラスタリング結果を記憶部１３に記憶する。
【００７１】
次に、モデル構築部１２ｂは、第１のクラスタリング部１２ｄにおけるクラスタリング結果から異常検知用のモデルを構築する（ステップＳ３０３）。このとき、モデル構築部１２ｂは、構築したモデルを記憶部１３に記憶する。
【００７２】
そして、第１のクラスタ解析部１４ｄは、クラスタリング結果を解析することで、第１のクラスタ解析情報を作成する（ステップＳ３０４）。このとき、第１のクラスタ解析部１４ｄは、作成した第１のクラスタ解析情報を記憶部１３に記憶する。なお、ステップＳ３０４の処理は、後述する図１４のフローチャートにおいて実行されてもよい。
【００７３】
図１４は、本実施形態に係る情報処理装置２０の検査処理の一例を示すフローチャートである。この処理は、例えば、情報処理装置１のユーザよりモデルの検査処理の実行要求が入力されたときに開始される。
【００７４】
先ず、データ取得部１１は、対象システム２から検査期間に含まれるログデータを検査データとして取得し（ステップＳ４０１）、検査データをクラスタ判別部１２ｃに出力する。
【００７５】
次に、第２のクラスタリング部１２ｅは、データ取得部１１から入力された検査データをクラスタリングする（ステップＳ４０２）。このとき、第２のクラスタリング部１２ｅは、クラスタリング結果を記憶部１３に記憶する。
【００７６】
次に、第２のクラスタ解析部１４ｅは、第２のクラスタリング部１２ｅにおけるクラスタリング結果を解析することで、第２のクラスタ解析情報を作成する（ステップＳ４０３）。このとき、第２のクラスタ解析部１４ｅは、作成した第２のクラスタ解析情報を記憶部１３に記憶する。
【００７７】
次に、比較部１４ｆは、学習時の第１のクラスタ解析情報と検査時の第２のクラスタ解析情報とを比較し（ステップＳ４０４）、クラスタ数の増減の有無を判定する（ステップＳ４０５）。ここで、比較部１４ｆは、クラスタ数の増減が有ると判定した場合には（ステップＳ４０５：ＹＥＳ）、ステップＳ４０８の処理へ移る。これに対し、比較部１４ｆは、クラスタ数の増減が無いと判定した場合には（ステップＳ４０５：ＮＯ）、ステップＳ４０６の処理へ移る。
【００７８】
ステップＳ４０６において、比較部１４ｆは、対応するクラスタ間における重心座標の変動幅が所定の閾値を超えるか否かを判定する。ここで、比較部１４ｆは、重心座標の変動幅が所定の閾値を超えると判定した場合には（ステップＳ４０６：ＹＥＳ）、ステップＳ４０８の処理へ移る。これに対し、比較部１４ｆは、重心座標の変動幅が所定の閾値を超えないと判定した場合には（ステップＳ４０６：ＮＯ）、ステップＳ４０７の処理へ移る。
【００７９】
ステップＳ４０７において、比較部１４ｆは、学習時を基準として、検査時における異常データの検出数の増加率が所定の閾値を超えるか否かを判定する。ここで、比較部１４ｆは、検出数の増加率が所定の閾値を超えると判定した場合には（ステップＳ４０７：ＹＥＳ）、ステップＳ４０８の処理へ移る。これに対し、比較部１４ｆは、検出数の増加率が所定の閾値を超えないと判定した場合には（ステップＳ４０７：ＮＯ）、ステップＳ４１０の処理へ移る。
【００８０】
次に、判定部１４は、出力部１５にデータ傾向の変化有りの判定結果を出力させると共に（ステップＳ４０８）、学習部１２に対して異常検知用のモデルの再学習を指示する（ステップＳ４０９）。このとき、学習部１２は、検査データを含む他の学習データに基づいてモデルの再学習を実行する。そして、学習部１２は、再学習による新たなモデルを記憶部１３に記憶する。なお、再学習の実行タイミングや使用する学習データは、これに限られない。
【００８１】
ステップＳ４１０において、判定部１４は、出力部１５にデータ傾向の変化無しの判定結果を出力させる。すなわち、既存のモデルは検査データに十分に対応できており、モデルの再学習は不要と判定される。
【００８２】
以上のように、本実施形態に係る情報処理装置２０によれば、第１の実施形態と同様に、データ傾向の変化を迅速に検知でき、適切なタイミングでモデルの再学習を実行できる。モデルの学習時と検査時におけるクラスタリング結果を比較するため、第１の実施形態の場合よりも様々な条件に基づいてデータ傾向の変化を検知できる。
【００８３】
［第３の実施形態］
本発明の第３の実施形態に係る情報処理装置３０について図１５を用いて説明する。図１５は、本実施形態に係る情報処理装置３０の機能構成を示すブロック図である。情報処理装置３０は、データ取得部３１及び判定部３２を備える。データ取得部３１は、対象システムにおける異常検知用のモデルの学習に使用された学習データ及びモデルの検査に使用する検査データを対象システムから取得する。判定部３２は、学習データのデータ分布と検査データのデータ分布との乖離度に基づいてモデルの再学習の要否を判定する。本実施形態に係る情報処理装置３０によれば、データ傾向の変化を迅速に検知でき、適切なタイミングでモデルの再学習を実行できる。
【００８４】
［変形実施形態］
以上、実施形態を参照して本発明を説明したが、本発明は上述の実施形態に限定されるものではない。本願発明の構成及び詳細には本発明の要旨を逸脱しない範囲で、当業者が理解し得る様々な態様に変形できる。
【００８５】
例えば、データ傾向の変化を検知する方法は、上述の実施形態で例示した方法に限られない。一定期間（例えば、一日間）のデータの総数が過去の総数よりも大幅に増えた、又は減ったことをもって、データ傾向の変化の有無（モデルの再学習の要否）を判定してもよい。会社の合併やシステムの統合等により、ユーザ数は急増する。この場合、従来とは異なるユーザが増えるため、データ傾向の変化が予想される。
【００８６】
また、上述の実施形態では、メールシステム、あるいは情報通信の技術領域への本発明の適用例を例示したが、本発明はメールシステム、情報通信以外の技術領域にも適用可能である。
【００８７】
例えば、本発明は、運送業における配送履歴のデータ分析にも適用できる。ユーザごとに配送品、配送先、配送サービスの種類等を含む履歴データのデータ傾向を解析し、モデルの再学習を適切なタイミングで実行できる。その結果、情報処理装置は、異常な配送、注文等を高精度で検出できる。
【００８８】
同様に、例えば、本発明は、小売業又は金融業におけるクレジットカードの使用履歴、及び送金データのデータ分析にも適用できる。ユーザごとに使用したクレジットカード、購入品等の履歴データや送金データのデータ傾向を解析し、モデルの再学習を適切なタイミングで実行できる。その結果、情報処理装置は、異常なクレジットカードの使用、他人によるカードの不正使用及び不正な送金データ等を高精度で検出可能できる。
【００８９】
また、上述の各実施形態の機能を実現するように該実施形態の構成を動作させるプログラムを記録媒体に記録させ、該記録媒体に記録されたプログラムをコードとして読み出し、コンピュータにおいて実行する処理方法も各実施形態の範疇に含まれる。すなわち、コンピュータ読取可能な記録媒体も各実施形態の範囲に含まれる。また、上述のコンピュータプログラムが記録された記録媒体はもちろん、そのコンピュータプログラム自体も各実施形態に含まれる。
【００９０】
記録媒体としては、例えばフロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Compact  Disc-Read  Only  Memory）、磁気テープ、不揮発性メモリカード、ＲＯＭを用いることができる。また、記録媒体に記録されたプログラム単体で処理を実行している構成に限らず、他のソフトウェア、拡張ボードの機能と共同して、ＯＳ（Operating  System）上で動作して処理を実行する構成も各実施形態の範疇に含まれる。
【００９１】
上述の各実施形態の機能により実現されるサービスは、ＳａａＳ（Software  as  a  Service）の形態でユーザに対して提供することもできる。
【００９２】
上述の実施形態の一部又は全部は、以下の付記のようにも記載できるが、以下には限られない。
【００９３】
（付記１）
対象システムにおける異常検知用のモデルの学習に使用された学習データ及び前記モデルの検査に使用する検査データを前記対象システムから取得するデータ取得部と、
前記学習データのデータ分布と前記検査データの前記データ分布との乖離度に基づいて前記モデルの再学習の要否を判定する判定部と、
を備えることを特徴とする情報処理装置。
【００９４】
（付記２）
前記学習データ及び前記検査データは、それぞれ異なる期間に生成されていることを特徴とする付記１に記載の情報処理装置。
【００９５】
（付記３）
前記検査データは、前記学習データよりも後の前記期間に生成されていることを特徴とする付記２に記載の情報処理装置。
【００９６】
（付記４）
前記学習データをクラスタリングするクラスタリング部と、
前記モデルに基づいて前記検査データが属するクラスタを判別するクラスタ判別部と、
を更に備え、
前記判定部は、前記クラスタリングの結果と前記判別の結果とを比較することで、前記再学習の要否を判定することを特徴とする付記１乃至３のいずれかに記載の情報処理装置。
【００９７】
（付記５）
前記判定部は、
前記クラスタリングの結果に基づいて、前記学習データが属する前記クラスタと前記クラスタごとのデータ数との関係を示す期待度数分布を算出する第１の算出部と、
前記判別の結果に基づいて、前記検査データが属する前記クラスタと前記クラスタごとの前記データ数との関係を示す観測度数分布を算出する第２の算出部と、
前記期待度数分布に対する前記観測度数分布の誤差が所定の有意水準値を超えるか否かを検定する検定部と、
を有することを特徴とする付記４に記載の情報処理装置。
【００９８】
（付記６）
前記学習データをクラスタリングする第１のクラスタリング部と、
前記検査データを前記クラスタリングする第２のクラスタリング部と、
を更に備え、
前記判定部は、前記学習データと前記検査データの間における前記クラスタリングの結果を比較することで、前記再学習の要否を判定することを特徴とする付記１乃至３のいずれかに記載の情報処理装置。
【００９９】
（付記７）
前記判定部は、前記学習データと前記検査データの間において、前記クラスタリングによって生成されたクラスタの数を比較することで、前記再学習の要否を判定することを特徴とする付記６に記載の情報処理装置。
【０１００】
（付記８）
前記判定部は、前記クラスタリングによって生成されたクラスタのうち、前記学習データと前記検査データの間において対応関係にある前記クラスタの重心座標を比較することで、前記再学習の要否を判定することを特徴とする付記６に記載の情報処理装置。
【０１０１】
（付記９）
対象システムにおける異常検知用のモデルの学習に使用された学習データ及び前記モデルの検査に使用する検査データを前記対象システムから取得するステップと、
前記学習データのデータ分布と前記検査データの前記データ分布との乖離度に基づいて前記モデルの再学習の要否を判定するステップと、
を備えることを特徴とする情報処理方法。
【０１０２】
（付記１０）
コンピュータに、
対象システムにおける異常検知用のモデルの学習に使用された学習データ及び前記モデルの検査に使用する検査データを前記対象システムから取得するステップと、
前記学習データのデータ分布と前記検査データの前記データ分布との乖離度に基づいて前記モデルの再学習の要否を判定するステップと、
を実行させることを特徴とするプログラムが記録された記録媒体。
【図１】
2019180778.tif 000003
【図２】
2019180778.tif 000004
【図３】
2019180778.tif 000005
【図４】
2019180778.tif 000006
【図５】
2019180778.tif 000007
【図６】
2019180778.tif 000008
【図７】
2019180778.tif 000009
【図８】
2019180778.tif 000010
【図９】
2019180778.tif 000011
【図１０】
2019180778.tif 000012
【図１１】
2019180778.tif 000013
【図１２】
2019180778.tif 000014
【図１３】
2019180778.tif 000015
【図１４】
2019180778.tif 000016
【図１５】
2019180778.tif 000017
【手続補正書】
【提出日】令和2年8月20日(2020.8.20)
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
本発明は、上述の問題に鑑みて行われたものであって、データ傾向の変化を迅速に検知でき、適切なタイミングでモデルの再学習を実行できる情報処理装置、情報処理方法及びプログラムを提供することを目的とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
本発明によれば、データ傾向の変化を迅速に検知でき、適切なタイミングでモデルの再学習を実行できる情報処理装置、情報処理方法及びプログラムを提供できる。
【手続補正５】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
対象システムにおける異常検知用のモデルの学習に使用された学習データ及び前記モデルの検査に使用する検査データを前記対象システムから取得するデータ取得部と、
前記学習データのデータ分布と前記検査データの前記データ分布との乖離度に基づいて前記モデルの再学習の要否を判定する判定部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記学習データ及び前記検査データは、それぞれ異なる期間に生成されていることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記検査データは、前記学習データよりも後の前記期間に生成されていることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記学習データをクラスタリングするクラスタリング部と、
前記モデルに基づいて前記検査データが属するクラスタを判別するクラスタ判別部と、
を更に備え、
前記判定部は、前記クラスタリングの結果と前記判別の結果とを比較することで、前記再学習の要否を判定することを特徴とする請求項１乃至３のいずれか一項に記載の情報処理装置。
【請求項５】
前記判定部は、
前記クラスタリングの結果に基づいて、前記学習データが属する前記クラスタと前記クラスタごとのデータ数との関係を示す期待度数分布を算出する第１の算出部と、
前記判別の結果に基づいて、前記検査データが属する前記クラスタと前記クラスタごとの前記データ数との関係を示す観測度数分布を算出する第２の算出部と、
前記期待度数分布に対する前記観測度数分布の誤差が所定の有意水準値を超えるか否かを検定する検定部と、
を有することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記学習データをクラスタリングする第１のクラスタリング部と、
前記検査データを前記クラスタリングする第２のクラスタリング部と、
を更に備え、
前記判定部は、前記学習データと前記検査データの間における前記クラスタリングの結果を比較することで、前記再学習の要否を判定することを特徴とする請求項１乃至３のいずれか一項に記載の情報処理装置。
【請求項７】
前記判定部は、前記学習データと前記検査データの間において、前記クラスタリングによって生成されたクラスタの数を比較することで、前記再学習の要否を判定することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記判定部は、前記クラスタリングによって生成されたクラスタのうち、前記学習データと前記検査データの間において対応関係にある前記クラスタの重心座標を比較することで、前記再学習の要否を判定することを特徴とする請求項６に記載の情報処理装置。
【請求項９】
対象システムにおける異常検知用のモデルの学習に使用された学習データ及び前記モデルの検査に使用する検査データを前記対象システムから取得するステップと、
前記学習データのデータ分布と前記検査データの前記データ分布との乖離度に基づいて前記モデルの再学習の要否を判定するステップと、
を備えることを特徴とする情報処理方法。
【請求項１０】
コンピュータに、
対象システムにおける異常検知用のモデルの学習に使用された学習データ及び前記モデルの検査に使用する検査データを前記対象システムから取得するステップと、
前記学習データのデータ分布と前記検査データの前記データ分布との乖離度に基づいて前記モデルの再学習の要否を判定するステップと、
を実行させることを特徴とするプログラム。
【国際調査報告】
2019180778.tif 000018
2019180778.tif 000019
2019180778.tif 000020
2019180778.tif 000021