(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022154862
(43)【公開日】2022-10-13
(54)【発明の名称】情報処理方法、プログラム及び情報処理装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20221005BHJP
G06F 16/906 20190101ALI20221005BHJP
【FI】
G06N20/00
G06F16/906
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021058118
(22)【出願日】2021-03-30
(71)【出願人】
【識別番号】302064762
【氏名又は名称】株式会社日本総合研究所
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】打越 元信
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175FA03
(57)【要約】
【課題】クラスタリングモデルに採用する特徴量を好適に選択することができる情報処理方法等を提供する。
【解決手段】情報処理方法は、各データが複数の特徴量から成るデータ群であって、一定数のデータにラベルが付与されたデータ群を取得し、クラスタリングに用いる前記特徴量を選択し、前記データ群を複数のクラスタに分類したクラスタリングモデルを生成し、現時点で選択されている前記特徴量の組み合わせを強化学習モデルに入力することで、次に選択すべき前記特徴量の組み合わせを出力し、前記強化学習モデルからの出力に基づいて前記特徴量を逐次選択して前記クラスタリングモデルを生成し、各クラスタに分類された前記ラベル付きのデータ数に基づき、前記ラベル付きのデータが少数の前記クラスタに分類されている度合いを表す少数度を算出し、前記強化学習モデルを前記少数度に応じて逐次更新する処理をコンピュータが実行する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
各データが複数の特徴量から成るデータ群であって、一定数のデータにラベルが付与されたデータ群を取得し、
クラスタリングに用いる前記特徴量を選択し、
選択した前記特徴量に基づき、前記データ群を複数のクラスタに分類したクラスタリングモデルを生成し、
現時点で選択されている前記特徴量の組み合わせを入力した場合に、次に選択すべき前記特徴量の組み合わせを出力する強化学習モデルに、現時点で選択されている前記特徴量の組み合わせを入力することで、次に選択すべき前記特徴量の組み合わせを出力し、
前記強化学習モデルからの出力に基づいて前記特徴量を逐次選択して前記クラスタリングモデルを生成し、
各クラスタに分類された前記ラベル付きのデータ数に基づき、前記ラベル付きのデータが少数の前記クラスタに分類されている度合いを表す少数度を算出し、
前記強化学習モデルを前記少数度に応じて逐次更新する
処理をコンピュータが実行する情報処理方法。
【請求項2】
各クラスタに分類された前記ラベル付きのデータ数を、前記データ群全体における前記ラベル付きのデータの総数で除算した値を算出し、
算出した値に比例する前記少数度を算出する
請求項1に記載の情報処理方法。
【請求項3】
各クラスタに分類された前記ラベル付きのデータ数を、各クラスタにおけるデータの総数で除算した値を算出し、
算出した値に比例する前記少数度を算出する
請求項1又は2に記載の情報処理方法。
【請求項4】
一時点で選択した前記特徴量の組み合わせに対応する前記少数度と、前記一時点の次の時点で選択した前記特徴量の組み合わせに対応する前記少数度との差分に応じて報酬値を算出し、
算出した前記報酬値に応じて前記強化学習モデルを更新する
請求項1~3のいずれか1項に記載の情報処理方法。
【請求項5】
前記特徴量を選択する場合に、前記強化学習モデルから出力された前記特徴量の組み合わせを含む、複数の前記特徴量の組み合わせを選択し、
選択した各組み合わせに対応して、複数の前記クラスタリングモデルを生成し、
前記複数のクラスタリングモデルそれぞれにおける前記ラベル付きのデータの分類結果に基づき、前記各組み合わせに対応する前記少数度を算出し、
前記各組み合わせの少数度と、前時点で選択した前記特徴量の組み合わせに対応する前記少数度との差分に応じて、前記各組み合わせに対応する前記報酬値を算出し、
算出した前記各組み合わせの報酬値に応じて強化学習モデルを更新する
請求項4に記載の情報処理方法。
【請求項6】
各時点で選択した前記特徴量の組み合わせを示すオブジェクトであって、前時点から前記少数度が増加した前記特徴量の組み合わせを識別可能なオブジェクトを表示部に表示する
請求項5に記載の情報処理方法。
【請求項7】
前記強化学習モデルは、現時点で選択されている前記特徴量の組み合わせを入力した場合に、現時点の組み合わせから削減すべき前記特徴量を出力するモデルであり、
前記強化学習モデルからの出力に基づき、前記特徴量を逐次削減する
請求項1~6のいずれか1項に記載の情報処理方法。
【請求項8】
前記データ群は、複数の企業の会計データであり、
一定数の前記会計データに不正会計が有ることを示すラベルが付与された前記データ群を複数のクラスタに分類することで、前記会計データが入力された場合に不正会計の有無を分類する前記クラスタリングモデルを生成する
請求項1~6のいずれか1項に記載の情報処理方法。
【請求項9】
各データが複数の特徴量から成るデータ群であって、一定数のデータにラベルが付与されたデータ群を取得し、
クラスタリングに用いる前記特徴量を選択し、
選択した前記特徴量に基づき、前記データ群を複数のクラスタに分類したクラスタリングモデルを生成し、
現時点で選択されている前記特徴量の組み合わせを入力した場合に、次に選択すべき前記特徴量の組み合わせを出力する強化学習モデルに、現時点で選択されている前記特徴量の組み合わせを入力することで、次に選択すべき前記特徴量の組み合わせを出力し、
前記強化学習モデルからの出力に基づいて前記特徴量を逐次選択して前記クラスタリングモデルを生成し、
各クラスタに分類された前記ラベル付きのデータ数に基づき、前記ラベル付きのデータが少数の前記クラスタに分類されている度合いを表す少数度を算出し、
前記強化学習モデルを前記少数度に応じて逐次更新する
処理をコンピュータに実行させるプログラム。
【請求項10】
各データが複数の特徴量から成るデータ群であって、一定数のデータにラベルが付与されたデータ群を取得する取得部と、
クラスタリングに用いる前記特徴量を選択する選択部と、
選択した前記特徴量に基づき、前記データ群を複数のクラスタに分類したクラスタリングモデルを生成する生成部と、
現時点で選択されている前記特徴量の組み合わせを入力した場合に、次に選択すべき前記特徴量の組み合わせを出力する強化学習モデルに、現時点で選択されている前記特徴量の組み合わせを入力することで、次に選択すべき前記特徴量の組み合わせを出力する出力部と、
前記選択部は前記強化学習モデルからの出力に基づいて前記特徴量を逐次選択して、前記生成部は前記クラスタリングモデルを生成し、
各クラスタに分類された前記ラベル付きのデータ数に基づき、前記ラベル付きのデータが少数の前記クラスタに分類されている度合いを表す少数度を算出する算出部と、
前記強化学習モデルを前記少数度に応じて逐次更新する更新部と
を備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理方法、プログラム及び情報処理装置に関する。
【背景技術】
【0002】
機械学習モデルの入力に採用する特徴量を選択する方法として、フィルタ法(Filter Method)、ラッパー法(Wrapper Method)等がある。例えば特許文献1では、フィルタ法にAIC(Akaike Information Criteria:赤池情報量基準)を組み合わせて特徴量を選択し、選択したサンプルデータの特徴量を学習することでモデルを構築するデータ処理装置等が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1で採用されているフィルタ法等では、入力データを分類するクラスタリングモデルを構築する場合において、不適切な特徴量を採用してしまう恐れがある。
【0005】
一つの側面では、クラスタリングモデルに採用する特徴量を好適に選択することができる情報処理方法等を提供することを目的とする。
【課題を解決するための手段】
【0006】
一つの側面に係る情報処理方法は、各データが複数の特徴量から成るデータ群であって、一定数のデータにラベルが付与されたデータ群を取得し、クラスタリングに用いる前記特徴量を選択し、選択した前記特徴量に基づき、前記データ群を複数のクラスタに分類したクラスタリングモデルを生成し、現時点で選択されている前記特徴量の組み合わせを入力した場合に、次に選択すべき前記特徴量の組み合わせを出力する強化学習モデルに、現時点で選択されている前記特徴量の組み合わせを入力することで、次に選択すべき前記特徴量の組み合わせを出力し、前記強化学習モデルからの出力に基づいて前記特徴量を逐次選択して前記クラスタリングモデルを生成し、各クラスタに分類された前記ラベル付きのデータ数に基づき、前記ラベル付きのデータが少数の前記クラスタに分類されている度合いを表す少数度を算出し、前記強化学習モデルを前記少数度に応じて逐次更新する処理をコンピュータが実行する。
【発明の効果】
【0007】
一つの側面では、クラスタリングモデルに採用する特徴量を好適に選択することができる。
【図面の簡単な説明】
【0008】
【
図1】情報処理装置の構成例を示すブロック図である。
【
図4】学習結果の表示画面の一例を示す説明図である。
【
図5】サーバが実行する処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
(実施の形態1)
図1は、情報処理装置1の構成例を示すブロック図である。本実施の形態では、入力データを分類するクラスタリングモデルを構築(生成)する場合において、クラスタリングモデルの入力に採用するデータの特徴量を、強化学習モデルを用いて探索する形態について説明する。
【0010】
情報処理装置1は、種々の情報処理、情報の送受信が可能な情報処理装置であり、例えばサーバコンピュータ、パーソナルコンピュータ等である。本実施の形態では情報処理装置1がサーバコンピュータであるものとし、以下では簡潔のためサーバ1と読み替える。サーバ1は、各データが複数の特徴量から成る訓練用のデータ群であって、異常なデータを含むデータ群を複数のクラスタに分類することで、入力データの異常の有無を検知(分類)するクラスタリングモデルを生成する。
【0011】
具体的には、サーバ1は、複数の企業それぞれの会計データ(例えばBL(Balance Sheet)及びPL(Profit and Loss statement)のデータ)から、不正会計の有無を検知(分類)するクラスタリングモデルを生成する。すなわち、サーバ1は、不正会計の無い会計データを正常なデータとし、不正会計の有る会計データを異常なデータとして学習することで、複数の会計項目(特徴量)から成る会計データから、不正会計の有無を検知するモデルを生成する。
【0012】
なお、本実施の形態ではクラスタリングモデルの一例として不正会計検知用のモデルを挙げるが、クラスタリングの対象とするデータは会計データに限定されず、その他のデータであってもよい(後述の変形例1等を参照)。すなわち、不正会計の検知は異常検知の一例に過ぎない。また、異常検知はクラスタリングモデルの利用用途の一例に過ぎず、クラスタリングモデルは任意のデータを分類可能なモデルであればよい。
【0013】
上述の如く、サーバ1は、異常であることが既知のデータ(不正会計の有るデータ)を含むデータ群を複数のクラスタに分類することで、クラスタリングモデルを生成する。具体的には後述するように、サーバ1は、各データを構成する複数の特徴量から、クラスタリングの基準として相応しい特徴量の組み合わせを選択し、選択した組み合わせの特徴量に基づいて入力データを分類するクラスタリングモデルを生成する。
【0014】
このように大量のデータを学習(クラスタリング)する場合において、全体のデータ群の中に異常なデータが一定数存在することは経験的に知られているものの、異常だと判明しているデータ数は、本来の異常なデータ数と比較して少数であるという問題がある。例えば不正会計であれば、不正会計が行われたことが発覚しているもの以外に、不正会計が行われたことが発覚していないものが会計データ群に混在している恐れがある。
【0015】
このような状況下で、異常であることが既知のデータ以外のデータを正常なデータと見なして学習した場合、異常を見過ごされたデータが検知できないモデルが出来てしまう恐れがある。そこで本実施の形態では、クラスタリングモデルに採用する特徴量の組み合わせを、強化学習の手法を用いて探索する。
【0016】
サーバ1は、制御部11、主記憶部12、通信部13、表示部14、入力部15、及び補助記憶部16を備える。
制御部11は、一又は複数のCPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)等の演算処理装置を有し、補助記憶部16に記憶されたプログラムPを読み出して実行することにより、種々の情報処理、制御処理等を行う。主記憶部12は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、フラッシュメモリ等の一時記憶領域であり、制御部11が演算処理を実行するために必要なデータを一時的に記憶する。通信部13は、通信に関する処理を行うための通信モジュールであり、外部と情報の送受信を行う。表示部14は、液晶ディスプレイ等の表示画面であり、画像を表示する。入力部15は、キーボード、マウス等の操作インターフェイスであり、操作入力を受け付ける。
【0017】
補助記憶部16は、大容量メモリ、ハードディスク等の不揮発性記憶領域であり、制御部11が処理を実行するために必要なプログラムP、その他のデータを記憶している。また、補助記憶部16は、強化学習モデル52を記憶している。強化学習モデル52は、クラスタリングモデルに採用する特徴量として、現時点で選択されている特徴量の組み合わせを入力した場合に、次に選択すべき特徴量の組み合わせを出力するモデルである。強化学習モデル52は、人工知能ソフトウェアの一部を構成するプログラムモジュールとしての利用が想定される。
【0018】
なお、補助記憶部16はサーバ1に接続された外部記憶装置であってもよい。また、サーバ1は複数のコンピュータからなるマルチコンピュータであっても良く、ソフトウェアによって仮想的に構築された仮想マシンであってもよい。
【0019】
また、サーバ1は、非一時的なコンピュータ読取可能な記録媒体1aを読み取る読取部を備え、記録媒体1aからプログラムPを読み込んでもよい。また、プログラムPは単一のコンピュータ上で実行されてもよく、ネットワークNを介して相互接続された複数のコンピュータ上で実行されてもよい。
【0020】
図2は、実施の形態の概要を示す説明図である。
図2では、訓練用のデータ群を複数のクラスタに分類することでクラスタリングモデル51を生成する場合に、クラスタリングモデル51の入力として採用する特徴量を、強化学習モデル52からの出力に応じて選択する様子を図示している。
図2に基づき、本実施の形態の概要を説明する。
【0021】
サーバ1は、各データが複数の特徴量から成るデータ群を複数のクラスタに分類することで、クラスタリングモデル51を生成する。クラスタリングモデル51は、教師なし学習によりクラスタリングを行うモデルであり、例えば混合ガウスモデル(GMM;Gaussian Mixture Model)である。なお、クラスタリングモデル51はSVM(Support Vector Machine)等の他のクラスタリングモデルであってもよい。
【0022】
上述の如く、訓練対象とするデータ群は各企業の会計データである。例えばサーバ1は、各データを行で表し、データ内の各特徴量を列で表す行列データとして当該データ群を扱う(
図3も参照)。データ群に含まれる一定数のデータには、異常なデータであることを表すラベル(
図2では「既知異常」と図示)が付与されている。当該ラベルは、例えば不正会計が有ることを示すラベルであるが、データの異常はクラスタリングの目的に応じて任意に定義され得る。
【0023】
サーバ1は、各データを構成するN個(Nは整数)の特徴量から、クラスタリングに用いる特徴量を選択する。そしてサーバ1は、選択した特徴量を説明変数に用いて、データ群を複数のクラスタに分類する。これにより、
図2に示すように、好適には異常なデータと正常なデータとが別々のクラスタに分類されるクラスタリングモデル51が生成される。
【0024】
一方で、
図2左側の点線枠内に「未知異常」(及び「正常」)と図示してあるように、元のデータ群には、異常であることが未知のデータが含まれる恐れがある。この場合に、異常であることが既知のデータに基づいて特徴量を選択し、クラスタリングを行った場合、異常であることが未知のデータを正常なデータとして分類するクラスタリングモデル51が出来上がる恐れがある。そこで本実施の形態では、異常であることが未知のデータを異常なデータとして分類するクラスタリングモデル51(
図2右側参照)が出来上がるように、強化学習モデル52を用いて最適な特徴量の組み合わせを逐次探索し、クラスタリングモデル51を生成する。
【0025】
以下の説明では簡潔のため、異常であることを示すラベルが付与されたデータを「既知異常データ」と呼ぶ。また、既知異常データ以外のデータのうち、異常であることが未知のデータを「未知異常データ」と呼び、既知異常データ及び未知異常データ以外の正常なデータを「正常データ」と呼ぶ。
【0026】
図3は、特徴量の選択過程を示す説明図である。
図3では、強化学習モデル52を用いて、クラスタリングに用いる特徴量を逐次選択(削減)する過程を概念的に図示している。
図3に基づき、サーバ1が実行する処理内容について説明する。
【0027】
サーバ1は、各データを構成するN個の特徴量から、クラスタリングに用いる特徴量の組み合わせを逐次選択(変更)し、特徴量を選択する都度、新たに選択した特徴量の組み合わせに応じてクラスタリングモデル51を逐次生成する。特徴量の組み合わせは、強化学習モデル52からの出力に応じて選択される。
【0028】
強化学習モデル52は、現時点で選択されている特徴量の組み合わせを入力した場合に、次に選択すべき特徴量の組み合わせを出力するモデルであり、例えばDQN(Deep Q-Network)である。なお、強化学習モデル52はDQN以外のモデルであってもよい。強化学習モデル52は、現時点で選択されている特徴量の組み合わせを状態(s;state)、次に選択する特徴量の組み合わせを行動(a;action)として定義し、現時点の特徴量の組み合わせから次に選択すべき特徴量の組み合わせを出力する。
【0029】
本実施の形態においてサーバ1は、特徴量の選択(抽出)のため、1行×N列のフィルタを導入する。当該フィルタは、各特徴量に対応する列の値が「0」又は「1」で規定される行列式であり、選択する特徴量の列に「1」を、選択しない特徴量の列に「0」を格納するフィルタである。サーバ1は、各データを行、データ内の各特徴量を列で表すデータ群(行列データ)に当該フィルタを適用することで、元のデータ群から、選択された特徴量の部分を抽出する。サーバ1は、当該フィルタ内の各列の値を逐次変更することで、特徴量の組み合わせを逐次選択(変更)する。
【0030】
本実施の形態においてサーバ1は、N個の特徴量を一つずつ削減することで、クラスタリングモデル51に採用すべき特徴量の組み合わせを探索する。具体的には、サーバ1は、フィルタ内の各列の値を「1」から「0」に逐次変更する。これにより、サーバ1は、現時点で選択されている特徴量から一の特徴量を逐次削減する。サーバ1は、特徴量を削減する都度、削減後の特徴量の組み合わせに応じたクラスタリングモデル51を生成する。
【0031】
なお、本実施の形態では特徴量を逐次削減することで最適な組み合わせを探索するものとするが、選択する特徴量を逐次増加させるなどしてもよい。
【0032】
ここでサーバ1は、最適な特徴量の組み合わせを探索するため、クラスタリングモデル51を生成する都度、生成したクラスタリングモデル51の適否を評価するための少数度を算出する。少数度は、既知異常データ(異常であることを表すラベル付きのデータ)が少数のクラスタに分類されている度合いを表す値であり、既知異常データが可能な限り少ないクラスタに集中している程、高くなるように設計された値である。
【0033】
具体的には、全体のデータ集合をS、未知異常データの集合をA、既知異常データの集合をB、クラスタ数をnとして、各データ集合をS={S1,S2,…,Sn}、A={a1,a2,…,an}、B={b1,b2,…,bn}と定義した場合に、少数度は以下の数式(1)で定義される。
【0034】
【0035】
n(bk)は、k番目のクラスタに含まれる既知異常データ数を表す。n(B)は、既知異常データの総数を表す。n(Sk)は、k番目のクラスタに含まれる、既知異常データ以外のデータも含むデータの総数である。
【0036】
数式(1)で示すように、サーバ1は、各クラスタに分類された既知異常データ数n(bk)を、データ群全体における既知異常データの総数n(B)で除算した値n(bk)/n(B)を算出する。また、サーバ1は、各クラスタに分類された既知異常データ数n(bk)を、各クラスタにおけるデータの総数n(Sk)で除算した値n(bk)/n(Sk)を算出する。サーバ1は、両者の乗算値n(bk)/n(B)×n(bk)/n(Sk)をクラスタ毎(k=1,2,…,n)に算出し、最大値を取る乗算値を少数度に決定する。
【0037】
n(bk)/n(B)は既知異常データが一のクラスタに集中している割合を表し、n(bk)/n(Sk)は一のクラスタに占める既知異常データの割合を表す。両者に比例するように少数度を算出することで、単純に既知異常データが少数のクラスタに分類されているかだけではなく、既知異常データが一のクラスタに集中しているかまで考慮して少数度を算出する。
【0038】
なお、数式(1)は少数度の一例であり、少数度は、既知異常データが少数のクラスタに分類されている度合いを適切に表現されていればよい。例えばサーバ1は、n(bk)/n(Sk)を捨象し、n(bk)/n(B)の最大値を少数度として算出してもよい。また、例えばサーバ1は、n(bk)/n(B)を捨象し、n(bk)/n(Sk)の最大値を少数度として算出してもよい。また、サーバ1は、最大値ではなく最小値を少数度としてもよい。
【0039】
すなわち、サーバ1は、各クラスタに分類された既知異常データ数n(bk)に基づき、既知異常データが少数のクラスタに分類されている度合いを表す少数度を算出可能であればよく、その具体的な計算式は数式(1)に限定されない。
【0040】
なお、上記では既知異常データを含む各データの数、すなわちデータのサンプル数を基準に少数度を定義したが、既知異常データが分類されたクラスタ数を基準にすることで、既知異常データが分類されるクラスタ数を最小化させる問題に帰着させることもできる。しかしながら、本願の研究者の研究に依れば、クラスタ数を基準にする場合、既知異常データに過度に適応したモデルが出来やすく、過学習が起こりやすい。そのため、本実施の形態ではサンプル数(既知異常データ数)を基準に少数度を定義する。
【0041】
サーバ1は、強化学習モデル52からの出力に応じて特徴量の組み合わせを選択(変更)し、クラスタリングモデル51を生成する都度、少数度を算出する。そしてサーバ1は、組み合わせの変更前後の少数度の差分に応じて、強化学習モデル52に与える報酬値(r;reward)を算出する。サーバ1は、算出した報酬値に応じて強化学習モデル52を逐次更新し、最終的に最適な特徴量の組み合わせ、すなわち最適なクラスタリングモデル51を選択する。
【0042】
具体的な処理工程を、
図3に則して説明する。
図3では説明の簡略化のため、特徴量が3つのケースについて説明する。まずサーバ1は、フィルタを[1,1,1]に設定することで全ての特徴量を選択し、クラスタリングモデル51を生成する。そしてサーバ1は、生成されたクラスタリングモデル51における各クラスタの既知異常データ数n(b
k)、既知異常データの総数n(B)、及び各クラスタのデータの総数n(S
k)に基づき、少数度(
図3では「0.3」)を算出する。
【0043】
サーバ1は、現時点で選択されている特徴量の組み合わせを強化学習モデル52に入力することで、次に選択すべき特徴量の組み合わせを出力する。具体的には、強化学習モデル52は、現時点の組み合わせから削減すべき一の特徴量を出力する。サーバ1は、強化学習モデル52から出力された特徴量を削減した組み合わせを、クラスタリングに用いる特徴量として選択し、クラスタリングモデル51を再生成する。そしてサーバ1は、再生成したクラスタリングモデル51の少数度を算出する。
【0044】
図3では、「特徴量3」がフィルタの変更箇所として強化学習モデル52から出力される様子を図示している。サーバ1は、出力されたフィルタの変更箇所を「1」から「0」に変更し、元のデータ群に変更後のフィルタを適用して、「特徴量1」及び「特徴量2」の部分を抽出する。サーバ1は、「特徴量1」及び「特徴量2」に基づきデータ群を分類することで、クラスタリングモデル51を再生成する。そしてサーバ1は、再生成したクラスタリングモデル51の少数度(
図3では「0.6」)を算出する。
【0045】
ここでサーバ1は、強化学習モデル52から出力された組み合わせ以外に、削減する特徴量を変えた別の組み合わせについてもクラスタリングモデル51を生成し、少数度を算出する。
【0046】
図3では、削減すべき特徴量として強化学習モデル52から出力された「特徴量3」以外に、「特徴量1」、及び「特徴量2」を削減した場合それぞれについて、少数度を算出する様子を図示している。
図3に示すように、サーバ1は、強化学習モデル52から出力された変更箇所とは別のフィルタ内の列(特徴量)を変更箇所に選択し、フィルタを変更する。すなわち、サーバ1は、強化学習モデル52から出力された組み合わせとは異なる組み合わせを選択する。サーバ1は、当該組み合わせについてもクラスタリングを行い、クラスタリング結果から少数度(
図3では「0.3」及び「0.8」)を算出する。例えばサーバ1は、選択(削減)され得る全ての特徴量の組み合わせについてクラスタリングを行い、少数度を算出する。
【0047】
なお、上記では全ての組み合わせについて少数度を算出したが、特徴量の組み合わせの選択数は一定数に制限してもよい。例えばサーバ1は、選択(削減)され得る全ての特徴量について、選択すべき度合いを確率値で出力するように強化学習モデル52を構成し、強化学習モデル52から出力される各特徴量の確率値に応じて選択順位を設定し、一定順位以上の特徴量を削減した組み合わせを選択するようにしてもよい。
【0048】
また、本実施の形態に係る強化学習モデル52が出力する特徴量の組み合わせ(次に削減する特徴量)は一パターンであり、他の組み合わせはサーバ1が選択(特定)するものとするが、強化学習モデル52が複数の特徴量の組み合わせを出力するようにしてもよい。すなわち、強化学習モデル52は1番目に尤もらしい組み合わせ、2番目の組み合わせ、3番目の組み合わせ…を出力し、サーバ1は各組み合わせを選択してクラスタリングを行い、少数度を算出するようにしてもよい。このように、強化学習モデル52の出力(次に選択すべき特徴量の組み合わせ)は一パターンに限定されない。
【0049】
上述の如く、サーバ1は、強化学習モデル52から出力された組み合わせを含む、複数の組み合わせそれぞれに対応して少数度を算出する。サーバ1は、前時点の組み合わせの少数度と、組み合わせ変更後の現時点における各組み合わせの少数度との差分に応じて、強化学習モデル52に与える報酬値を算出する。
【0050】
具体的には、サーバ1は、現時点の組み合わせの少数度から前時点の組み合わせの少数度を差し引いた差分が0を超過する場合、報酬値として正の値「+1」を付与する。また、現時点の組み合わせの少数度から前時点の組み合わせの少数度を差し引いた差分が0未満である場合、サーバ1は、報酬値として負の値「-1」を付与する。本願の発明者の研究に依れば、少数度が増加した場合に正の報酬値を与えるだけでなく、少数度が減少又は同一の場合に負の報酬値を与えることで、学習効率を高めることができる。
【0051】
なお、例えばサーバ1は、少数度の差分の絶対値(大きさ)に比例して、報酬値の絶対値を変動させるなどしてもよい。
【0052】
サーバ1は、強化学習モデル52から出力された組み合わせ以外に、他の組み合わせについても変更前の組み合わせからの少数度の差分を算出し、報酬値を算出する。
図3の例では、前時点の少数度は「0.3」、強化学習モデル52からの出力に従い「特徴量3」を削減した場合の少数度は「0.6」であるため、報酬値は「+1」となる。一方で、「特徴量1」を選択した場合の少数度は「0.3」であるため報酬値は「-1」となり、「特徴量2」を選択した場合の少数度は「0.8」であるため報酬値は「+1」となる。
【0053】
なお、本実施の形態では全ての組み合わせについて少数度を学習するものとするが、サーバ1は、少数度に応じて学習対象とする組み合わせを選択してもよい。例えばサーバ1は、少数度が最大となる組み合わせを学習対象に選択し、前時点からの差分に応じた報酬値を強化学習モデル52に与えるようにしてもよい。
【0054】
サーバ1は、上述の処理を繰り返し、特徴量を逐次削減すると共に、少数度を逐次算出する。すなわち、サーバ1は、現時点の特徴量の組み合わせを強化学習モデル52に再度入力することで、次に削減すべき特徴量を出力する。サーバ1は、強化学習モデル52から出力された特徴量を現時点の組み合わせから削減し、クラスタリングモデル51を再生成して、少数度を算出する。
【0055】
図3の例では、現時点の組み合わせ(「特徴量1」及び「特徴量2」)を強化学習モデル52に入力した場合に、「特徴量2」がフィルタの変更箇所として出力されている。この場合、サーバ1は「特徴量2」を削減した組み合わせ(「特徴量1」のみ)に基づいてクラスタリングを行い、少数度を算出する。また、サーバ1は、「特徴量2」以外に「特徴量1」を削減した場合の組み合わせ(「特徴量2」のみ)についてもクラスタリングを行い、少数度を算出する。
【0056】
なお、
図3の例では強化学習モデル52が選択した組み合わせ(「特徴量1」及び「特徴量2」)を変更するものとして図示しているが、本実施の形態はこれに限定されるものではなく、少数度が最も高い他の組み合わせ(「特徴量1」及び「特徴量3」)を変更するなどしてもよい。
【0057】
サーバ1は、特徴量の削減、すなわち特徴量の組み合わせの変更を、所定のステップ数i
max(i
maxはN未満の整数)だけ実行する。ステップ数は、例えばユーザが任意に指定する。
図3ではステップ数が2回の場合を図示している。
【0058】
なお、ステップ数を手動で指定するものとせず、特徴量の総数Nに基づいて自動的に設定してもよい。例えばサーバ1は、ステップ数をN-1に自動設定してもよい。
【0059】
サーバ1は、指定されたステップ数だけ特徴量の組み合わせを変更することを一回の試行とし、当該試行を繰り返す。例えばサーバ1は、一回の試行が完了した場合、現時点で選択している特徴量の組み合わせをクリアし、全ての特徴量を再度選択する。サーバ1は、一回の試行が完了する都度、i回目(i=0,1,2,…imax-1)のステップの少数度と、i+1回目のステップの少数度との差分を算出する。そしてサーバ1は、各ステップ間の少数度の差分に応じた報酬値を算出し、強化学習モデル52を更新する。このように、サーバ1は一回の試行が完了する都度、強化学習モデル52を逐次更新する。
【0060】
なお、上記では指定ステップ数だけ特徴量の組み合わせを変更した後に強化学習モデル52を更新するものとしたが、例えば各ステップで少数度を算出する都度報酬値を算出し、強化学習モデル52を更新するなどしてもよい。すなわち、サーバ1は強化学習モデル52を逐次更新可能であればよく、強化学習モデル52を更新するタイミングは特に限定されない。
【0061】
例えばサーバ1は、強化学習モデル52の学習結果が所定の収束条件を満たすまで、当該試行を繰り返す。例えばサーバ1は、Q値が一定値以下となった場合に学習結果が収束したと判定する。
【0062】
なお、例えばサーバ1は、試行回数に予め上限値を設け、当該上限値に達した場合に学習を終了するなどしてもよい。あるいはサーバ1は、少数度等を基準にして学習を終了するか否かを判定してもよい。すなわち、学習の終了条件は強化学習モデル52の学習結果の収束に限定されない。
【0063】
また、本実施の形態では価値関数ベースの強化学習モデル52(DQN)について説明したが、強化学習モデル52は価値関数ベースのモデルに限定されず、方策勾配法等を用いて方策関数を更新(学習)する方策ベースのモデルであってもよい。
【0064】
サーバ1は、逐次生成した各クラスタリングモデル51、51、51…から、いずれかのクラスタリングモデル51を最適なクラスタリングモデル51として選択する。例えばサーバ1は、少数度が最大のクラスタリングモデル51を、最適なクラスタリングモデル51として選択する。なお、例えばサーバ1は、最後に選択した組み合わせのクラスタリングモデル51を選択するなどしてもよく、その選択基準は特に限定されない。
【0065】
図4は、学習結果の表示画面の一例を示す説明図である。
図4では、学習完了後にサーバ1が表示する画面例を図示している。当該画面は、作成モデル表示欄41、樹形図表示欄42を含む。
【0066】
作成モデル表示欄41は、最終的に生成したクラスタリングモデル51に関する情報を表示する表示欄である。例えばサーバ1は、最適なモデルとして選択したクラスタリングモデル51における特徴量の組み合わせ、学習時に指定されたステップ数、試行回数等を作成モデル表示欄41に表示する。また、サーバ1は、クラスタリングモデル51を構成するクラスタ毎に、各クラスタに含まれる既知異常データ数と、既知異常データ数以外のデータ数(正常データ及び未知異常データの総数。
図4では「正常」と図示)とを一覧で示す表411を作成モデル表示欄41に表示する。
【0067】
樹形図表示欄42は、特徴量の探索過程を示す樹形図(オブジェクト)を表示する表示欄である。例えばサーバ1は、上述の試行毎に、各ステップ(時点)で選択した特徴量の組み合わせと、各組み合わせの少数度とを樹形図として表示する。
図4に示す樹形図では、各階層が特徴量選択の各ステップを表す。また、各階層で最も左側に位置する組み合わせが、強化学習モデル52からの出力に従って選択された組み合わせを表す。例えばサーバ1は、前ステップ(前時点)から少数度が増加した組み合わせが識別可能なように、前ステップの組み合わせと、少数度が増加した組み合わせとを繋ぐノード(線)を、他のノードと異なる表示態様で表示(例えば色分け表示)する。なお、
図4では便宜上、少数度が増加したノードを実線で、その他のノードを点線で図示している。
【0068】
ユーザは当該画面を参照することで、生成されたクラスタリングモデル51の妥当性を判断することができると共に、元のデータ群の理解を深めることができる。例えば表411において、既知異常データが含まれるクラスタには、未知異常データが存在する可能性が高く、新たな異常データの発見に資する。更に、強化学習モデル52により選択された特徴量に基づき、既知異常データが異常であると判断された要因を把握し、異常データに解釈性を付与することを期待できる。
【0069】
以上より、本実施の形態によれば、少数度という概念を導入して強化学習モデル52を逐次更新し、強化学習モデル52の出力に従って特徴量を選択することで、クラスタリングモデル51を好適に生成することができる。
【0070】
図5は、サーバ1が実行する処理手順の一例を示すフローチャートである。
図5に基づき、サーバ1が実行する処理について説明する。
サーバ1の制御部11は、各データが複数の特徴量から成るデータ群を取得する(ステップS11)。制御部11は、特徴量を変更(削減)するステップ数の指定入力を受け付ける(ステップS12)。
【0071】
まず制御部11は、全ての特徴量に基づいてデータ群を複数のクラスタに分類し、クラスタリングモデル51を生成する(ステップS13)。そして制御部11は、各クラスタに分類された既知異常データ数(異常を表すラベル付きのデータ数)に基づき、既知異常データが少数のクラスタに分類されている度合いを表す少数度を算出する(ステップS14)。具体的には、制御部11は、各クラスタの既知異常データ数n(bk)を、既知異常データの総数n(B)で除算した値n(bk)/n(B)を算出すると共に、各クラスタの既知異常データ数n(bk)を、各クラスタのデータの総数n(Sk)で除算した値n(bk)/n(Sk)を算出する。制御部11は、両者の乗算値n(bk)/n(B)×n(bk)/n(Sk)をクラスタ毎に算出し、最大値となるクラスタに係る乗算値を少数度に決定する。
【0072】
制御部11は、現時点で選択されている特徴量の組み合わせを強化学習モデル52に入力することで、次に選択すべき特徴量の組み合わせを出力する(ステップS15)。具体的には、制御部11は、現時点で選択されている特徴量の組み合わせから、削減すべき一の特徴量を出力する。ステップS14からステップS15に移行する場合、制御部11はまず、全特徴量から一つ特徴量を削減した組み合わせを出力する。
【0073】
制御部11は、ステップS15で強化学習モデル52から出力された組み合わせを含む、複数の特徴量の組み合わせを選択する(ステップS16)。すなわち、制御部11は、削減する特徴量を互いに変えた複数の組み合わせを選択する。
【0074】
制御部11は、ステップS16で選択した組み合わせ毎に、各組み合わせの特徴量に基づいてデータ群を分類した複数のクラスタリングモデル51、51、51…を生成する(ステップS17)。そして制御部11は、生成したクラスタリングモデル51(特徴量の組み合わせ)毎に少数度を算出する(ステップS18)。
【0075】
制御部11は、ステップS15~S18の処理を行った回数が、ステップS12で指定されたステップ数に到達したか否かを判定する(ステップS19)。ステップ数に到達していないと判定した場合(S19:NO)、制御部11はステップS15に処理を戻す。この場合、制御部11は特徴量の選択(削減)を再度行い、クラスタリングモデル51を再生成する。
【0076】
指定されたステップ数に到達したと判定した場合(S19:YES)、制御部11は、各組み合わせ(クラスタリングモデル51)に応じて算出した少数度に基づき、強化学習モデル52に与える報酬値を算出する(ステップS20)。具体的には、制御部11は、一時点(ステップ数=i)で強化学習モデル52から出力された組み合わせに対応する少数度と、次の時点(ステップ数=i+1)で選択した複数の組み合わせそれぞれに対応する少数度との差分を算出する。制御部11は、次の時点(ステップ数=i+1)の少数度から前時点(ステップ数=i)の少数度を差し引いた差分が0を超過する場合、正の報酬値(+1)を付与する。一方で、次の時点の少数度から前時点の少数度を差し引いた差分が0未満である場合、制御部11は、負の報酬値(-1)を付与する。制御部11は、各組み合わせに応じて算出した報酬値に基づき、強化学習モデル52を更新する(ステップS21)。
【0077】
制御部11は、強化学習モデル52の学習結果が所定の収束条件を満たすか否かを判定する(ステップS22)。収束条件を満たさないと判定した場合(S22:NO)、制御部11は処理をステップS15に戻す。この場合、制御部11は、現時点で選択している特徴量の組み合わせをクリアし、特徴量の選択、クラスタリングモデル51の生成、及び強化学習モデル52の更新を再試行する。
【0078】
収束条件を満たすと判定した場合(S22:YES)、制御部11は、生成した複数のクラスタリングモデル51、51、51…から、最適なクラスタリングモデル51を選択する(ステップS23)。例えば制御部11は、少数度が最大となるクラスタリングモデル51を選択する。制御部11は、学習結果を表示部14に表示し(ステップS24)、一連の処理を終了する。
【0079】
以上より、本実施の形態によれば、クラスタリングモデルに採用する特徴量を好適に選択することができる。
【0080】
以下では、本実施の形態を応用した変形例について述べる。
(変形例1)
上記では不正会計検知用のクラスタリングモデル51を生成する形態について説明したが、分類対象とするデータは企業の会計データに限定されず、本システムを他の用途で利用することが想定される。
【0081】
例えば本システムを、金融取引上の不正検知(セキュリティ上の異常検知)に応用することが考えられる。この場合、例えばサーバ1は、ブラックリストユーザ及び他のユーザの金融取引データ(送金履歴等)を分類対象のデータ群として扱い、ブラックリストユーザのデータを既知異常データとして、クラスタリングモデル51を生成することが考えられる。
【0082】
また、例えば本システムを、データベースサーバの障害検知に応用することが考えられる。例えばサーバ1は、障害発生時及び通常時それぞれのデータベースサーバの通信ログデータを分類対象のデータ群として扱い、障害発生時のログデータを既知異常データとして、クラスタリングモデル51を生成することが考えられる。
【0083】
このように、本システムの用途は不正会計検知用のクラスタリングモデル51の生成に限定されず、他の用途であってもよい。
【0084】
(変形例2)
上記ではクラスタリングモデル51を新規に生成する形態について説明したが、既存のクラスタリングモデル51の更新、具体的にはクラスタリングモデル51の入力に採用する特徴量を新たに追加する場合に、本システムを応用してもよい。
【0085】
すなわち、サーバ1は、既に生成済みのクラスタリングモデル51において採用されている特徴量と、他の特徴量とから成るデータ群から、新たにクラスタリングモデル51を生成する。この場合にサーバ1は、既存のクラスタリングモデル51で採用されている特定の特徴量を、各ステップで削減対象とする特徴量から外し、常時選択する。サーバ1は、強化学習モデル52からの出力に応じて他の特徴量を選択し、特定の特徴量と組み合わせて、クラスタリングモデル51を生成する。これにより、既存のクラスタリングモデル51に追加すべき特徴量を探索する際に、本システムを応用することができる。
【0086】
(変形例3)
上記では、訓練用のデータ群以外の新規のデータから異常を検出すべく、クラスタリングモデル51を生成するものとして説明したが、本システムを、元のデータ群から未知異常データを除去するための手段として応用することもできる。
【0087】
例えば本システムを、ノイズが稀に出現するデータ群からノイズを除去すべく応用することが考えられる。サーバ1は、ノイズであることが既知のデータに対してラベルが付与されたデータ群を用いて、クラスタリングモデル51を生成する。サーバ1は、生成されたクラスタリングモデル51において、ノイズであることが既知のデータを含むクラスタ、すなわち既知異常データを含むクラスタを除去する。これにより、サーバ1は、既知異常データと、既知異常データと似たデータ、すなわち未知異常データである可能性が高いデータを除去する。このように、本システムを未知異常データの除去手段として応用することもできる。
【0088】
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0089】
1 サーバ(情報処理装置)
11 制御部
12 主記憶部
13 通信部
14 表示部
15 入力部
16 補助記憶部
P プログラム
51 クラスタリングモデル
52 強化学習モデル