(57)【特許請求の範囲】
【請求項１】
コンピュータの処理により、教師付き機械学習により構成された分類器に対する不正なデータによる攻撃を検出する方法であって、
特徴データと、ラベルと、時刻を含む複数の訓練データを用意するステップと、
前記訓練データを用いて分類器を構成するステップと、
前記訓練データを用いて、前記分類器によって分類されたクラスのデータをサブクラスに分類しつつ副分類器を構成するステップと、
特徴データと、ラベルと、時刻を含む複数のテスト・データを用意するステップと、
前記分類器を用いて前記複数のテスト・データを分類するステップと、
前記副分類器を用いて前記分類された前記複数のテスト・データをサブクラスに分類するステップと、
前記時刻の所定幅の時間窓において、前記同一のサブクラス毎に、前記訓練データに対する前記テスト・データの相対的な頻度をあらわす統計的データを計算するステップと、
前記統計的データの値が所定の閾値を超えることに応答して、不正なデータによる攻撃の可能性を警報するステップを有する、
情報識別方法。
【請求項２】
前記特徴データが、金融関係の申請書類の質問項目への回答を電子化した特徴ベクトルによりあらわされ、前記クラスが合格と不合格のクラスを含む、請求項１に記載の方法。
【請求項３】
前記分類器が、サポートベクターマシンにより構成される、請求項１に記載の方法。
【請求項４】
前記副分類器が、K-meansのアルゴリズムを利用する、請求項１に記載の方法。
【請求項５】
前記不正なデータが、偽合格のデータである、請求項２に記載の方法。
【請求項６】
前記統計データが、前記頻度の移動平均値とその分散を用いて計算される、請求項１に記載の方法。
【請求項７】
コンピュータの処理により、教師付き機械学習により構成された分類器に対する不正なデータによる攻撃を検出するプログラムであって、
前記コンピュータに、
特徴データと、ラベルと、時刻を含む複数の訓練データを用意するステップと、
前記訓練データを用いて分類器を構成するステップと、
前記訓練データを用いて、前記分類器によって分類されたクラスのデータをサブクラスに分類しつつ副分類器を構成するステップと、
特徴データと、ラベルと、時刻を含む複数のテスト・データを用意するステップと、
前記分類器を用いて前記複数のテスト・データを分類するステップと、
前記副分類器を用いて前記分類された前記複数のテスト・データをサブクラスに分類するステップと、
前記時刻の所定幅の時間窓において、前記同一のサブクラス毎に、前記訓練データに対する前記テスト・データの相対的な頻度をあらわす統計的データを計算するステップと、
前記統計的データの値が所定の閾値を超えることに応答して、不正なデータによる攻撃の可能性を警報するステップを実行させる、
情報識別プログラム。
【請求項８】
前記特徴データが、金融関係の申請書類の質問項目への回答を電子化した特徴ベクトルによりあらわされ、前記クラスが合格と不合格のクラスを含む、請求項７に記載のプログラム。
【請求項９】
前記分類器が、サポートベクターマシンにより構成される、請求項７に記載のプログラム。
【請求項１０】
前記副分類器が、K-meansのアルゴリズムを利用する、請求項７に記載のプログラム。
【請求項１１】
前記不正なデータが、偽合格のデータである、請求項８に記載のプログラム。
【請求項１２】
前記統計データが、前記頻度の移動平均値とその分散を用いて計算される、請求項７に記載のプログラム。
【請求項１３】
コンピュータの処理により、教師付き機械学習により構成された分類器に対する不正なデータによる攻撃を検出するシステムであって、
記憶手段と、
前記記憶手段に保存された、特徴データと、ラベルと、時刻を含む複数の訓練データと、
前記訓練データを用いて構成された分類器と、
前記訓練データを用いて構成された、前記分類器によって分類されたクラスのデータをサブクラスに分類するための副分類器と、
前記訓練データに前記副分類器を適用して作成され、前記記憶手段に保存された、前記訓練データのサブクラスのデータと、
前記記憶手段に保存された、特徴データと、ラベルと、時刻を含む複数のテスト・データと、
前記テスト・データに前記副分類器を適用して作成され、前記記憶手段に保存された、前記訓練データのサブクラスのデータと、
前記時刻の所定幅の時間窓において、前記同一のサブクラス毎に、前記訓練データに対する前記テスト・データの相対的な頻度をあらわす統計的データを計算する手段と、
前記統計的データの値が所定の閾値を超えることに応答して、不正なデータによる攻撃の可能性を警報する手段とを有する、
情報識別システム。
【請求項１４】
前記特徴データが、金融関係の申請書類の質問項目への回答を電子化した特徴ベクトルによりあらわされ、前記クラスが合格と不合格のクラスを含む、請求項１３に記載のシステム。
【請求項１５】
前記分類器が、サポートベクターマシンにより構成される、請求項１３に記載のシステム。
【請求項１６】
前記副分類器が、K-meansのアルゴリズムを利用する、請求項１３に記載のシステム。
【請求項１７】
前記不正なデータが、偽合格のデータである、請求項１４に記載のシステム。
【請求項１８】
前記統計データが、前記頻度の移動平均値とその分散を用いて計算される、請求項１３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、教師付き機械学習による情報の識別に関し、特に、情報の悪意ある改竄による攻撃に対する対応技法に関する。
【背景技術】
【０００２】
従来より、保険会社での保険請求の査定、金融会社でのローンやクレジットカードの審査や与信などは根幹の重要な業務であり、その会社の経験ある専門家が担当している。しかし近年、処理件数の増大により、専門家の手作業では次第に捌ききれなくなってきた。【０００３】
そこで、専門家の負荷を軽減するために、最近になって、コンピュータを利用した機械学習の技法をもちいて、保険請求の査定やクレジットカードの与信を行う方法が採用されるようになってきた。【０００４】
申請者から送られた査定や与信を行うための情報は、質問に対するはい／いいえの回答や、年齢、年収などの数値、その他の記述的なテキスト情報などを含む。そのような情報が紙で与えられた場合は、所定のオペレータがコンピュータのキーボードで打ち込んだり、ＯＣＲにかけたりして、情報を電子化する。一方、ウェブブラウザ上での操作で申請者から情報がサーバ上に送られた場合は、情報の電子化の手間は不要である。【０００５】
このようにして電子的な申請情報が集まると、専門家は先ず個々の申請情報を見て、合格／不合格の判定を下し、そのラベルを電子的に記録していく。そのように専門家が予め判定するための、個々の申請情報の特徴ベクトルxi(i = 1,...,n)と、判別結果（クラス・ラベル）yi(i = 1,...,n)の組の教師（訓練）データ集合を、下記のとおりとする。
Dtraining = {(x1,y1),...,(xn,yn)}
ここで、yi ∈ Cで、Cはクラス・ラベルの集合であるが、例えば、C = {0,1}であり、1が合格、0が不合格である。【０００６】
そのような訓練データの例を図１に示す。すなわち、教師データは、合格（ラベル1）のデータ１０２、１０４、１０６、１０８と、不合格（ラベル0）のデータ１１０、１１２、１１４を含む。これらは個々に、個別の申請情報に対応する。【０００７】
教師付き機械学習のシステムは、このような訓練データを用いて、分類器を構成する。分類器とは、申請情報の特徴ベクトルをx、ラベルをyとしたとき、
h : x → y のような関数hに相当する。【０００８】
このように分類器を構成した後、その分類器でテスト・データの申請情報を分類した場合の様子を図２に示す。すなわち、データ２０２、２０４、２０６、２０８が合格として分類されたデータであり、データ２１０、２１２、２１４、２１６が不合格と分類されたデータである。ここでデータ２０８とデータ２１０に注目されたい。データ２０８は、正しくは不合格と分類されるべきなのに、分類器によって合格と分類されてしまったものであり、偽合格(FP = false positive)と呼ばれる。また、データ２１０は、正しくは合格と分類されるべきなのに、分類器によって不合格と分類されてしまったものであり、偽不合格(FN = false negative)と呼ばれる。【０００９】
分類器は確率的に構成されるので、どのような機械学習の方式を採用しても、偽合格や偽不合格を完全に根絶することは困難である。【００１０】
さて、あるサンプルのテスト・データに対して、図３に示すように分類器が分類した結果、データ３０２、３０４、３０６、３０８、３１０、３１２が合格として分類されたデータであり、データ３１４、３１６、３１８、３２０、３２２が不合格と分類されたデータであるとする。そこでたまたま、悪意ある人が、データ３１２が偽合格であると気づいたとする。すると、データ３１２の記載内容を解析して、どの項目をどう書き直せば、本来落とされるデータが合格になるかという悪意の知識を得て、マニュアル化する。例えば、「無茶な保険請求を通りやすくする」マニュアルのようなものである。このマニュアルを悪意の人が有償で頒布し、それを読んだ人達が、図３の参照番号３２４で示すように、偽合格になり得る一連のケースを作成して送りつけてくる、ということがありえる。【００１１】
このような悪意ある攻撃を検出するための技術として、以下の文献に記載されたものが知られている。【００１２】
Shohei Hido, Yuta Tsuboi, Hisashi Kashima,  Masashi Sugiyama, Takafumi Kanamori, "Inlier-based Outlier Detection via Direct Density Ratio Estimation", ICDM 2008 http://sugiyama-www.cs.titech.ac.jp/~sugi/2008/ICDM2008.pdfは、訓練データとテストデータにおける密度比をとって異常検出することを開示する。【００１３】
Daniel Lowd, Christopher Meek, "Adversarial Learning", KDD 2005 http://portal.acm.org/citation.cfm?id=1081950は、スパムフィルタリングで単一の攻撃者が手を変え品を変え攻撃してくるのに連続的に対応していくという問題設定において、攻撃者側がすり抜けさせたい理想的なサンプルからの距離を敵対コストとして、それが最小となる（すり抜けられる中で一番すり抜けさせたい）サンプル、それより高々k倍コストのサンプルを多項式回の攻撃で見つけるアルゴリズムを開示する。【００１４】
Adam J. Oliner, Ashutosh V. Kulkarni,  Alex Aiken, Community Epidemic Detection using Time-Correlated Anomalies, RAID 2010 http://dx.doi.org/10.1007/978-3-642-15512-3_19に記述されている技法は、コンピュータが悪意ある攻撃受けた時にそれを検出するために、複数の同条件クライアントを束ねておいて、周囲との挙動の違いを異常度として計算する。単一のクライアントで一時的に異常度が上がるのは、正常時にもありえることだが、一定数異常の複数クライアントで同時に異常度が上昇するのは、攻撃発生を示している。これをTime-correlated anomalyと呼び、それを検出するモニタリング方法を提案している。【００１５】
杉山  将、「共変量シフト下での教師付き学習」, 日本神経回路学会誌 13(3), 2006は、訓練データとテストデータで確率分布が異なる場合の教師付き学習を対象に、どのように予測モデルを補正するかを議論している。特に、この文献には、テストデータがよく出現する領域にある訓練データサンプルの重要度を上げることで、テストデータの分類が上手くいくようにする手法が記載されている。【００１６】
上記従来技術は、特定の状況では、悪意ある攻撃を検出可能であるが、データの均質性やデータの個別の異常度など、データに特殊な性質を仮定したりする点で制約があったり、攻撃の受けやすさはアセスするものの、偽合格に集中攻撃を受けているという事実を検出できなかったりするという問題点があった。
【先行技術文献】
【非特許文献】
【００１７】
【非特許文献１】Shohei Hido, Yuta Tsuboi, Hisashi Kashima,  Masashi Sugiyama, Takafumi Kanamori, "Inlier-based Outlier Detection via Direct Density Ratio Estimation", ICDM 2008
【非特許文献２】Daniel Lowd, Christopher Meek, "Adversarial Learning", KDD 2005 http://portal.acm.org/citation.cfm?id=1081950
【非特許文献３】Adam J. Oliner, Ashutosh V. Kulkarni,  Alex Aiken, Community Epidemic Detection using Time-Correlated Anomalies, RAID 2010 http://dx.doi.org/10.1007/978-3-642-15512-3_19
【非特許文献４】杉山  将、「共変量シフト下での教師付き学習」, 日本神経回路学会誌 13(3), 2006
【発明の概要】
【発明が解決しようとする課題】
【００１８】
従って、この発明の目的は、教師付き機械学習によって申請書類の審査や査定を行う処理において、悪意で作成された偽合格のデータを高い精度で検出することができる技法を提供することにある。【００１９】
この発明の別の目的は、教師付き機械学習によって申請書類の審査や査定を行う処理において、避けられない誤り判別を糸口に被害が広がることを防止することにある。【００２０】
この発明のさらに別の目的は、教師付き機械学習によって申請書類の審査や査定を行う処理において、被害を受けているのにそれに気づかないという状況を回避することにある。
【課題を解決するための手段】
【００２１】
この発明は、上記課題を解決するためになされたものであり、この発明よればまず、教師（学習）データを用意する際と、テスト・データを用意する際の両方の場合に、時刻を加えてデータの記録が行われる。この時刻は、例えば、データの入力があった時刻である。【００２２】
次に、本発明に従うシステムは、対象クラス（典型的には合格のクラス）の学習データをクラスタリングする。同様に、対象クラス（典型的には合格のクラス）のテスト・データをクラスタリングする。【００２３】
次に、本発明に従うシステムは、学習データについては、様々な時刻と幅の時間枠毎に、また、テスト・データについては、直近の様々な幅の時間枠毎に、上記クラスタリングで得られた各部分クラスへの識別確率密度を集計する。【００２４】
次に、本発明に従うシステムは、時間枠毎の各部分クラス毎、学習時とテスト時の確率密度の比を相対頻度とし、相対頻度が統計的に大きく増加している入力を異常として検知し、攻撃であるかどうかを詳細に調べるようアラートを発報する。すなわち、本発明の知見によれば、このような場合は、潜在的に、悪意ある者が学習データによる学習の裏をかいている可能性が高いのである。
【発明の効果】
【００２５】
この発明によれば、教師付き機械学習によって申請書類の審査や査定を行う処理において、学習データを用意する際と、テスト・データを用意する際の両方の場合に、時刻を加えてデータの記録をするとともに、クラスタリングした後の時間枠毎の頻度を学習データとテスト・データの間で比較することにより、潜在的に悪意のあるデータを検出するようにしたので、データの均質性やデータの個別の異常度など、データに特殊な性質を仮定したりすることなく、高い精度で悪意のあるデータが検出可能であり、結果的に、審査の信頼性を高めるということがが得られる。また、攻撃者のソーシャルな連携まで考慮に入れることができる。
【図面の簡単な説明】
【００２６】
【図１】教師付き機械学習処理を説明するための図である。
【図２】教師付き機械学習処理により構成した分類器で分類する処理を説明するための図である。
【図３】教師付き機械学習処理により構成した分類器に対して偽合格のデータで攻撃する様子を示す図である。
【図４】本発明を実施するためのハードウェア構成のブロック図である。
【図５】本発明を実施するための機能構成のブロック図である。
【図６】訓練入力解析処理のフローチャートを示す図である。
【図７】副分類器生成処理のフローチャートを示す図である。
【図８】テスト入力データの解析処理のフローチャートを示す図である。
【図９】各時間窓での頻度解析処理のフローチャートを示す図である。
【図１０】訓練データとテスト・データのサブクラスにおける個別の頻度を示す図である。
【図１１】異常データの可能性のあるデータの頻度を示す図である。
【発明を実施するための形態】
【００２７】
以下、図面に基づき、この発明の実施例を説明する。特に断わらない限り、同一の参照番号は、図面を通して、同一の対象を指すものとする。尚、以下で説明するのは、本発明の一実施形態であり、この発明を、この実施例で説明する内容に限定する意図はないことを理解されたい。
【００２８】
図４を参照すると、本発明の一実施例に係るシステム構成及び処理を実現するためのコンピュータ・ハードウェアのブロック図が示されている。図４において、システム・パス４０２には、ＣＰＵ４０４と、主記憶（ＲＡＭ）４０６と、ハードディスク・ドライブ（ＨＤＤ）４０８と、キーボード４１０と、マウス４１２と、ディスプレイ４１４が接続されている。ＣＰＵ４０４は、好適には、３２ビットまたは６４ビットのアーキテクチャに基づくものであり、例えば、インテル社のＰｅｎｔｉｕｍ（商標）  ４、Ｃｏｒｅ（商標）２  Ｄｕｏ、Ｘｅｏｎ（商標）、ＡＭＤ社のＡｔｈｌｏｎ（商標）などを使用することができる。主記憶４０６は、好適には、４ＧＢ以上の容量をもつものである。ハードディスク・ドライブ４０８は、保険会社での保険請求の査定、金融会社でのローンやクレジットカードの審査や与信などの大量の申請情報の訓練データとテスト・データを格納できるように、例えば、５００ＧＢ以上の容量をもつものであることが望ましい。
【００２９】
ハードディスク・ドライブ４０８には、個々に図示しないが、オペレーティング・システムが、予め格納されている。オペレーティング・システムは、Ｌｉｎｕｘ（商標）、マイクロソフト社のＷｉｎｄｏｗｓ  ＸＰ（商標）、Ｗｉｎｄｏｗｓ（商標）２０００、アップルコンピュータのＭａｃ  ＯＳ（商標）などの、ＣＰＵ４０４に適合する任意のものでよい。
【００３０】
ハードディスク・ドライブ４０８には、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（商標）などのプログラム言語処理系も格納されていてもよい。このプログラム言語処理系は、後で説明する、本発明に係る処理用のルーチンまたはツールを作成し、維持するために使用される。ハードディスク・ドライブ４０８にはさらに、プログラム言語処理系でコンパイルするためのソースコードを書くためのテキスト・エディタ、及び、Ｅｃｌｉｐｓｅ（商標）などの開発環境を含んでいてもよい。
【００３１】
キーボード４１０及びマウス４１２は、オペレーティング・システムまたは、ハードディスク・ドライブ４０８から主記憶４０６にロードされ、ディスプレイ４１４に表示されたプログラム（図示しない）を起動したり、文字を打ち込んだりするために使用される。
【００３２】
ディスプレイ４１４は、好適には、液晶ディスプレイであり、例えば、ＸＧＡ（１０２４×７６８の解像度）、またはＵＸＧＡ（１６００×１２００の解像度）などの任意の解像度のものを使用することができる。ディスプレイ４１４は、図示しないが、悪意で作成された惧れのある偽合格のデータを含むクラスタを表示したりするために使用される。
【００３３】
図５は、本発明に係る処理ルーチンと、訓練データ５０２と、テスト・データ５０４を示す機能ブロック図である。これらのルーチンは、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（商標）など既存のプログラム言語で書かれ、実行可能バイナリ形式でハードディスク・ドライブ４０８に格納され、マウス４１２またはキーボード４１０の操作に応答して、オペレーティング・システム（図示しない）の働きで、主記憶４０６に呼び出されて、実行される。
【００３４】
訓練データ５０２は、ハードディスク・ドライブ４０８に保存され、以下に示すようなデータ構造をもつ。
D(training) = {(x1(training),y1(training),t1(training)),...,(xn(training),yn(training),tn(training))}
ここで、xi(training)は、i番目の訓練データの特徴ベクトル、yi(training)はi番目の訓練データのクラス・ラベル、ti(training)は、i番目の訓練データのタイム・スタンプである。特徴ベクトルxi(training)(i = 1,...,n)は、電子的な申請情報の項目から好適にはコンピュータの処理により自動的に生成される。その際、必要に応じて、テキスト・マイニングなどの技術も使用される。クラス・ラベルyi(training)(i = 1,...,n)は、申請情報を予め熟練した専門の担当者が目で見て判断した結果に従い、セットされる。タイム・スタンプti(training)は、好適には、その申請情報が入力された日時であり、例えば、日付＋時刻のフォーマットである。
【００３５】
分類器生成ルーチン５０４は、訓練データ５０２から、分類器５１０がテスト・データ５０４の分類処理に使用する分類パラメータ５０８を生成する機能をもつ。
【００３６】
テスト・データ５０４は、ハードディスク・ドライブ４０８に保存され、以下に示すようなデータ構造をもつ。
D'(test) = {(x1(test),t1(test)),...,(xm(test),tm(test))}
ここで、xi(test)は、i番目のテスト・データの特徴ベクトル、ti(test)は、i番目のテスト・データのタイム・スタンプである。特徴ベクトルxi(test)(i = 1,...,m)は、電子的な申請情報の項目から好適にはコンピュータの処理により自動的に生成される。タイム・スタンプti(test)は、好適には、その申請情報が入力された日時であり、例えば、日付＋時刻のフォーマットである。
【００３７】
分類器５１０は、既知の教師付き機械学習処理によって、個々のテスト・データ(xi(test),ti(test))にクラス・ラベルyi(test)を付与する。分類器５１０の機能を関数h()と見立てて、yi(test) = h(xi(test)) と表記することもできる。
【００３８】
なお、既知の教師付き機械学習には大きく分けて分類問題と回帰問題があり、この発明の目的に使用できるのは分類問題である。分類問題として知られている技法には、線形分類器としてフィッシャーの線形判別関数、ロジスティック回帰、単純ベイズ分類器、パーセプトロン、それ以外にQuadratic classifier、k近傍法、ブースティング、決定木、ニューラルネットワーク、ベイジアンネットワーク、サポートベクターマシン、隠れマルコフモデルがあり、本発明はこのうちの任意の技法を使用することが可能であるが、この実施例では特に、サポートベクターマシンを用いるものとする。より詳しい記述は、Christopher M. Bishop, "Pattern Recognition And Machine Learning", 2006, Springer Verlag.などを参照されたい。 
【００３９】
分類器５１０は、テスト・データ５０４を読み込んで、クラス・ラベルを付与して、下記のような分類されたデータ５１２を生成する。
D(test) = {(x1(test),y1(test),t1(test)),...,(xm(test),ym(test),tm(test))}
【００４０】
クラスタ解析ルーチン５１４は、訓練データ５０２のデータの特徴ベクトルの間に、ユークリッド距離、マッハッタン距離などの距離を定義し、この距離をもちいてK-meansなどの既知の方法でクラスタリングを行うことで結果のクラスタリングの区画データ５１６を生成する。区画データ５１６は、好適にはハードディスク・ドライブ４０８に保存される。区画データ５１６は、個々のクラスタの境界または中心などの位置情報を規定するので、区画データ５１６に対照することで、任意のデータがどのクラスタに属するかが分かる。すなわち、区画データ５１６が副分類器の役割を果たす。なお、この発明で利用可能なクラスタリング技法はK-meansに限らず、ガウス混合モデル、凝集法、分枝クラスタリング、自己組織化マップなど、この発明に適合する任意のクラスタリング技法を使用することができる。あるいは、グリッド分割により、分割されたデータ群を得るようにしてもよい。
【００４１】
クラスタ解析ルーチン５１４は、クラスタリングした結果をあらわす区画データ５１６をハードディスク・ドライブ４０８に書き出す。
【００４２】
時系列解析ルーチン５１８は、訓練データ５０２を読み込み、区画データ５１６に従うクラスタ（サブクラス）毎の所定の時間窓毎のデータの頻度、その他の統計データを計算して、時系列データ５２０として好適にはハードディスク・ドライブ４０８に保存する。
【００４３】
時系列解析ルーチン５２２は、テスト・データ５０４を読み込み、区画データ５１６に従うクラスタ（サブクラス）毎の所定の時間窓毎のデータの頻度、その他の統計データを計算して、時系列データ５２４として好適にはハードディスク・ドライブ４０８に保存する。
【００４４】
異常検出ルーチン５２６は、時系列データ５２０と時系列データ５２４の対応するクラスタの対応する時間窓に関するデータを計算して、その値が所定の閾値より大きい場合に、警報ルーチン５２８を起動する機能をもつ。
【００４５】
警報ルーチン５２８は、ディスプレイ４１４に、異常が検出されたクラスタと時間窓などを表示して、オペレータに通知する機能をもつ。
【００４６】
以下、図６〜図９のフローチャートを参照して、実行される処理を順次説明する。先ず図６は、訓練データ解析処理のフローチャートを示す図である。
【００４７】
図６のステップ６０２では、分類器生成ルーチン５０６が、分類パラメータ５０８を生成することにより、分類器５１０を生成する。
【００４８】
ステップ６０４では、クラスタ解析ルーチン５１４が、副分類器、すなわちクラスタリングのための区画５１６を生成する。
【００４９】
ステップ６０６では、時系列解析ルーチン５１８が、各サブクラスと時間窓毎に入力頻度統計を計算することにより、時系列データ５２０を生成する。
【００５０】
図７は、ステップ６０４の処理を具体的に示すフローチャートを示す図である。すなわち、この処理では、クラスタ解析ルーチン５１４が、ステップ７０２からステップ７０６までのクラス毎に亘るループにおいて、ステップ７０４で、当該クラスのデータに関して、副分類器を生成する。
【００５１】
なお、図７のフローチャートの処理で、全てのクラスを亘る必要はなく、例えば、あるクラスでの攻撃を検出したいなら、そのクラスだけ処理すればよい。
【００５２】
図８は、テスト・データを解析するための処理のフローチャートを示す図である。ステップ８０２からステップ８１０まではループで、テスト・データ５０４に含まれる全データに亘っての処理である。
【００５３】
ステップ８０４では、分類器５１０がテスト・データ５０４の個々のデータを分類する。すると、ステップ８０６では、分類されたデータを以って、時系列解析ルーチン５２２が、区画データ５１６に基づき、サブクラスに分類（すなわち、クラスタリング）し、ステップ８０８で時系列解析ルーチン５２２は、所定幅の時間窓をずらしながら、現在の時間窓におけるサブクラスでの入力頻度をインクリメントする。
【００５４】
ステップ８０２からステップ８１０までの処理のループがテスト・データ５０４に含まれる全データに亘って完了すると、時系列解析ルーチン５２２は、時系列データ５２４をハードディスク・ドライブ４０８に書き出す。
【００５５】
図９は、所定時間窓で異常検出ルーチン５２６が異常の可能性を検出するための処理のフローチャートを示す図である。ステップ９０２で、異常検出ルーチン５２６は、当該時間窓でテスト入力頻度の、訓練データ頻度に対する比を計算する。
【００５６】
ステップ９０４では、異常検出ルーチン５２６は、各サブクラスで統計的に有意な頻度の増加スコアを計算する。ここで、統計的に有意とは、十分な数のサンプルが揃っているという意味である。有意な頻度の増加スコアは、単純な比計算でもよいが、この実施例では、より正確に計算するために、下記のような式を用いる。
【００５７】
まず、時間窓の幅をWとする。また、関数g()を、サブクラスを求めるための関数とする。すると、当該時間窓において、時間tでjとラベルされる入力特徴ベクトルの集合は、次の式であらわされる。
【数１】
0005568183.tif 000002
ここで、modeは、訓練データを意味するtraining、またはテスト・データを意味するtestのどちらかである。また、ラベルjをもつ入力データの発生確率を次のように定義する。
【数２】
0005568183.tif 000003
すると、異常増加スコアは次の式で定義される。
【数３】
0005568183.tif 000004
この式で、E()は期待値、σ()は分散をあらわす。
【００５８】
この式は基本的には頻度の移動平均値とその分散を用いるものであるが、ウェーブレット変換などの周波数変換を適用して、周期的な相対頻度の揺らぎを考慮してもよい。
【００５９】
ステップ９０６では、異常検出ルーチン５２６は、上記の異常増加スコアの値が、閾値を超えているかどうか判断し、もしそうなら、ステップ９０８で、警報ルーチン５２８が起動され、そのサブクラスで不正の可能性があることが、ディスプレイ４１４上に表示される。
【００６０】
この判断において、必要に応じて、サンプル毎のコストの大小で重み付けたり、攻撃となりうる改竄の特徴を利用して自然変動と区別するようにしてもよい。
【００６１】
図９のフローチャートの処理は、時間窓毎に実行される。
【００６２】
図１０は、訓練データとテスト・データで、クラスＡの各サブクラスＡ１、Ａ２、・・・Ａｎ毎の時間に沿ったデータの分布を示す図である。本発明の処理は、訓練データとテスト・データの間の、同一クラスの同一サブクラスにおける、所定時間窓における頻度の比で、異常の可能性を検出するものである。
【００６３】
図１１は、そのような異常の可能性が検出された例を示す。すなわち、ある特定の時間枠において、参照番号１１０４で示すように４番目のクラスタ（サブクラス）で、テスト・データの頻度が訓練データの頻度に対して、実質的に大きいことを異常検出ルーチン５２６が検出して、不正なデータの存在の可能性を警報ルーチン５２８に通知する。
【００６４】
警報ルーチン５２８の作動によって、オペレータは、当該時間窓の当該クラスタでのデータに問題がある可能性がある、と問題を特定すべきデータを絞り込むことができる。そして、それらのデータを解析した結果、検知した、攻撃の原因となった誤判別が特定されることで、ラベルを一旦修正してこれらを不合格に移動させるとともに、今後の判別モデル修正のきっかけを得ることになる。
【００６５】
また、認識時の入力中、統計が大きく外れる原因となった、頻出の特徴をもったサブクラスが同定できる場合に限定することにより、自動認識の裏をつくマニュアルなどを推定できる場合に限定して報告してもよい。
【００６６】
以上、この発明を特定の実施例に基づき説明してきたが、この発明は、この特定の実施例に限定されず、当業者が自明に思いつく様々な変形、置換などの構成、技法適用可能であることを理解されたい。
【００６７】
例えば、この実施例では、保険会社での保険請求の査定、金融会社でのローンやクレジットカードの審査や与信のための申請書類の審査への適用例を説明したが、記載内容が特徴ベクトル化できるような、審査される任意の文書に適用可能である。
【符号の説明】
【００６８】
４０４・・・ＣＰＵ
４０８・・・ハードディスク・ドライブ
５０２・・・訓練データ
５０４・・・テスト・データ
５０６・・・分類器生成ルーチン
５１０・・・分類器
５１４・・・クラスタ解析ルーチン
５１６・・・区画データ
５１８、５２２・・・時系列解析ルーチン
５２０、５２４・・・時系列データ
５２６・・・異常検出ルーチン
【図１】
0005568183.tif 000005
【図２】
0005568183.tif 000006
【図３】
0005568183.tif 000007
【図４】
0005568183.tif 000008
【図５】
0005568183.tif 000009
【図６】
0005568183.tif 000010
【図７】
0005568183.tif 000011
【図８】
0005568183.tif 000012
【図９】
0005568183.tif 000013
【図１０】
0005568183.tif 000014
【図１１】
0005568183.tif 000015