(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-01-26
(45)【発行日】2022-02-03
(54)【発明の名称】学習モデル適用システム、学習モデル適用方法、及びプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20220127BHJP
G06F 21/55 20130101ALI20220127BHJP
【FI】
G06N20/00 130
G06F21/55
(21)【出願番号】P 2020539117
(86)(22)【出願日】2019-09-09
(86)【国際出願番号】 JP2019035376
(87)【国際公開番号】W WO2021048902
(87)【国際公開日】2021-03-18
【審査請求日】2020-07-15
【審判番号】
【審判請求日】2021-02-26
【早期審査対象出願】
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】110000154
【氏名又は名称】特許業務法人はるか国際特許事務所
(72)【発明者】
【氏名】友田 恭輔
【合議体】
【審判長】田中 秀人
【審判官】篠原 功一
【審判官】金子 秀彦
(56)【参考文献】
【文献】特開2019-102960(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 21/00-21/88
(57)【特許請求の範囲】
【請求項1】
学習モデルの学習で用いられる学習用データ
と、複数の前処理コンポーネントと、に基づいて、複数の特徴量を計算する計算手段と、
前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも1つを選択する選択手段と、
前記選択手段により選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用手段と、
前記複数の前処理コンポーネントのうち、前記選択手段により選択された特徴量の計算で用いられる前処理コンポーネントを、前記学習済みの学習モデルに入力される特徴量の計算で用いるように設定することによって、前記選択手段により選択された特徴量を計算し、前記選択手段により選択されなかった特徴量を計算しないように、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定手段と、
を含むことを特徴とする学習モデル適用システム。
【請求項2】
前記計算手段は、複数の計算式に基づいて、前記複数の特徴量を計算し、
前記設定手段は、前記複数の計算式のうち、前記選択手段により選択された特徴量の計算で用いられる計算式を、前記学習済みの学習モデルに入力される特徴量の計算で用いるように設定する、
ことを特徴とする請求項1に記載の学習モデル適用システム。
【請求項3】
前記計算手段は、集計処理を実行することによって、前記複数の特徴量のうちの少なくとも1つを計算し、
前記設定手段は、前記選択手段により前記少なくとも1つの特徴量が選択された場合に、前記集計処理が実行されるように設定する、
ことを特徴とする請求項1又は2に記載の学習モデル適用システム。
【請求項4】
前記計算手段は、平均値の算出処理、標準偏差の算出処理、確率分布の作成処理、又は統計値の算出処理を実行することによって、前記複数の特徴量のうちの少なくとも1つを計算し、
前記設定手段は、前記選択手段により前記少なくとも1つの特徴量が選択された場合に、前記平均値の算出処理、前記標準偏差の算出処理、前記確率分布の作成処理、又は前記統計値の算出処理が実行されるように設定する、
ことを特徴とする請求項1~3の何れかに記載の学習モデル適用システム。
【請求項5】
前記学習モデル適用システムは、各前処理コンポーネントに対し、互いに同じ形式のデータを入力する入力手段を更に含み、
各前処理コンポーネントは、他の前処理コンポーネントに入力されるデータと同じ形式のデータに基づいて、計算処理を実行する、
ことを特徴とする請求項
1~4の何れかに記載の学習モデル適用システム。
【請求項6】
前記学習モデル適用システムは、新たな特徴量を計算するための新たな前処理コンポーネントを追加する追加手段を更に含み、
前記計算手段は、前記新たな前処理コンポーネントに基づいて、前記新たな特徴量を計算し、
前記設定手段は、前記選択手段により前記新たな特徴量が選択された場合には、前記新たな前処理コンポーネントを、前記学習済みの学習モデルに入力される特徴量の計算で用いるように設定する、
ことを特徴とする請求項
1~5
の何れかに記載の学習モデル適用システム。
【請求項7】
前記学習モデル適用システムは、各特徴量の計算時間を取得する取得手段を更に含み、
前記選択手段は、前記学習モデルにおける各特徴量の影響と、各特徴量の計算時間と、に基づいて、前記複数の特徴量のうちの少なくとも1つを選択する、
ことを特徴とする請求項1~
6の何れかに記載の学習モデル適用システム。
【請求項8】
前記学習モデル適用システムは、前記複数の特徴量の中から、互いに関連する特徴量の組み合わせを特定する特定手段を更に含み、
前記選択手段は、前記互いに関連する特徴量の組み合わせが存在する場合には、当該組み合わせのうちの一部を選択する、
ことを特徴とする請求項1~
7の何れかに記載の学習モデル適用システム。
【請求項9】
前記学習モデル適用システムは、
各特徴量の計算時間を取得する取得手段と、
各特徴量の計算時間が所定時間以上であるか否かを判定する判定手段と、
を更に含み
前記選択手段は、計算時間が所定時間以上の特徴量が存在する場合には、当該特徴量を欠損値として扱い、前記学習モデルにおける影響を評価する、
ことを特徴とする請求項1~
8の何れかに記載の学習モデル適用システム。
【請求項10】
前記学習モデルは、ウェブサイトにおける不正を検知するためのモデルであり、
前記学習モデル適用システムは、前記ウェブサイトにユーザがアクセスした場合に、前記学習済みの学習モデルと、前記設定手段により行われた設定と、に基づいて、当該ユーザの不正を推定する推定手段を更に含み、
前記選択手段、前記適用手段、及び前記設定手段の各々の処理は、前記推定手段の処理とは異なるバックグラウンド処理として実行される、
ことを特徴とする請求項1~
9の何れかに記載の学習モデル適用システム。
【請求項11】
前記学習モデルは、ウェブサイトにおける不正を検知するためのモデルであり、
前記学習モデル適用システムは、前記ウェブサイトの管理者に対し、前記選択手段により選択された特徴量に関する情報を通知する通知手段、
を更に含むことを特徴とする請求項1~1
0の何れかに記載の学習モデル適用システム。
【請求項12】
コンピュータが、
学習モデルの学習で用いられる学習用データ
と、複数の前処理コンポーネントと、に基づいて、複数の特徴量を計算する計算ステップと、
前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも1つを選択する選択ステップと、
前記選択ステップにより選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用ステップと、
前記複数の前処理コンポーネントのうち、前記選択ステップにより選択された特徴量の計算で用いられる前処理コンポーネントを、前記学習済みの学習モデルに入力される特徴量の計算で用いるように設定することによって、前記選択ステップにより選択された特徴量を計算し、前記選択ステップにより選択されなかった特徴量を計算しないように、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定ステップと、
を実行することを特徴とする学習モデル適用方法。
【請求項13】
学習モデルの学習で用いられる学習用データ
と、複数の前処理コンポーネントと、に基づいて、複数の特徴量を計算する計算手段、
前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも1つを選択する選択手段、
前記選択手段により選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用手段、
前記複数の前処理コンポーネントのうち、前記選択手段により選択された特徴量の計算で用いられる前処理コンポーネントを、前記学習済みの学習モデルに入力される特徴量の計算で用いるように設定することによって、前記選択手段により選択された特徴量を計算し、前記選択手段により選択されなかった特徴量を計算しないように、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習モデル適用システム、学習モデル適用方法、及びプログラムに関する。
【背景技術】
【0002】
従来、機械学習分野において、データの特徴量を計算して学習モデルに学習させる技術が知られている。例えば、特許文献1には、ウェブサイトにアクセスしたユーザの行動に関する行動データから抽出した特徴量を入力とし、当該ユーザの正当性の判定結果を出力とする教師データを学習モデルに学習させ、不正ユーザを検知する学習モデルを作成するシステムが記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術では、悪意のある第三者の行動が変化したとしても、学習モデルに入力される特徴量の計算に関する設定は変わらないので、行動の変化に対応することができず、学習モデルの精度が低下する可能性がある。この点、データサイエンティストに行動の変化を分析させ、特徴量の計算に関する設定を変えることも考えられる。しかし、この場合には、データサイエンティストによる分析や設定の反映に非常に手間がかかるので、学習モデルの適用が遅れることが予想される。
【0005】
本発明は上記課題に鑑みてなされたものであって、その目的は、学習モデルを迅速に適用することが可能な学習モデル適用システム、学習モデル適用方法、及びプログラムを提供することである。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明に係る学習モデル適用システムは、学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する計算手段と、前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも1つを選択する選択手段と、前記選択手段により選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用手段と、前記選択手段により選択された特徴量に基づいて、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定手段と、を含むことを特徴とする。
【0007】
本発明に係る学習モデル適用方法は、学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する計算ステップと、前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも1つを選択する選択ステップと、前記選択ステップにより選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用ステップと、前記選択ステップにより選択された特徴量に基づいて、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定ステップと、を含むことを特徴とする。
【0008】
本発明に係るプログラムは、学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する計算手段、前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも1つを選択する選択手段、前記選択手段により選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用手段、前記選択手段により選択された特徴量に基づいて、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定手段、としてコンピュータを機能させる。
【0009】
本発明の一態様によれば、前記計算手段は、複数の前処理コンポーネントに基づいて、前記複数の特徴量を計算し、前記設定手段は、前記複数の前処理コンポーネントのうち、前記選択手段により選択された特徴量の計算で用いられる前処理コンポーネントを、前記学習済みの学習モデルに入力される特徴量の計算で用いるように設定する、ことを特徴とする。
【0010】
本発明の一態様によれば、前記学習モデル適用システムは、各前処理コンポーネントに対し、互いに同じ形式のデータを入力する入力手段を更に含み、各前処理コンポーネントは、他の前処理コンポーネントに入力されるデータと同じ形式のデータに基づいて、計算処理を実行する、ことを特徴とする。
【0011】
本発明の一態様によれば、前記学習モデル適用システムは、新たな特徴量を計算するための新たな前処理コンポーネントを追加する追加手段を更に含み、前記計算手段は、前記新たな前処理コンポーネントに基づいて、前記新たな特徴量を計算し、前記設定手段は、前記選択手段により前記新たな特徴量が選択された場合には、前記新たな前処理コンポーネントを、前記学習済みの学習モデルに入力される特徴量の計算で用いるように設定する、ことを特徴とする。
【0012】
本発明の一態様によれば、前記学習モデル適用システムは、各特徴量の計算時間を取得する取得手段を更に含み、前記選択手段は、前記学習モデルにおける各特徴量の影響と、各特徴量の計算時間と、に基づいて、前記複数の特徴量のうちの少なくとも1つを選択する、ことを特徴とする。
【0013】
本発明の一態様によれば、前記学習モデル適用システムは、前記複数の特徴量の中から、互いに関連する特徴量の組み合わせを特定する特定手段を更に含み、前記選択手段は、前記互いに関連する特徴量の組み合わせが存在する場合には、当該組み合わせのうちの一部を選択する、ことを特徴とする。
【0014】
本発明の一態様によれば、前記学習モデル適用システムは、各特徴量の計算時間を取得する取得手段と、各特徴量の計算時間が所定時間以上であるか否かを判定する判定手段と、を更に含み、前記選択手段は、計算時間が所定時間以上の特徴量が存在する場合には、当該特徴量を欠損値として扱い、前記学習モデルにおける影響を評価する、ことを特徴とする。
【0015】
本発明の一態様によれば、前記学習モデルは、ウェブサイトにおける不正を検知するためのモデルであり、前記学習モデル適用システムは、前記ウェブサイトにユーザがアクセスした場合に、前記学習済みの学習モデルと、前記設定手段により行われた設定と、に基づいて、当該ユーザの不正を推定する推定手段を更に含み、前記選択手段、前記適用手段、及び前記設定手段の各々の処理は、前記推定手段の処理とは異なるバックグラウンド処理として実行される、ことを特徴とする。
【0016】
本発明の一態様によれば、前記学習モデルは、ウェブサイトにおける不正を検知するためのモデルであり、前記学習モデル適用システムは、前記ウェブサイトの管理者に対し、前記選択手段により選択された特徴量に関する情報を通知する通知手段、を更に含むことを特徴とする。
【発明の効果】
【0017】
本発明によれば、学習モデルを迅速に適用することが可能となる。
【図面の簡単な説明】
【0018】
【
図1】学習モデル適用システムの全体構成を示す図である。
【
図2】学習モデル適用システムの概要を示す図である。
【
図3】学習モデル適用システムで実現される機能の一例を示す機能ブロック図である。
【
図4】行動データベースのデータ格納例を示す図である。
【
図5】評価用の教師データセットのデータ格納例を示す図である。
【
図6】本番用の教師データセットのデータ格納例を示す図である。
【
図7】計算設定データのデータ格納例を示す図である。
【
図8】バックグラウンド処理の一例を示すフロー図である。
【
図9】リアルタイム処理の一例を示すフロー図である。
【発明を実施するための形態】
【0019】
[1.学習モデル適用システムの全体構成]
以下、本発明の実施形態に係る学習モデル適用システムの例を説明する。
図1は、学習モデル適用システムの全体構成を示す図である。
図1に示すように、学習モデル適用システムSは、データベースサーバ10、バックグラウンドサーバ20、前処理サーバ30、リアルタイムサーバ40、サービス提供サーバ50、及びユーザ端末60を含み、これらは、インターネットなどのネットワークNに接続可能である。
【0020】
データベースサーバ10は、種々のデータを記憶するサーバコンピュータである。データベースサーバ10は、制御部11、記憶部12、及び通信部13を含む。制御部11は、少なくとも1つのプロセッサを含む。制御部11は、記憶部12に記憶されたプログラムやデータに従って処理を実行する。記憶部12は、主記憶部及び補助記憶部を含む。例えば、主記憶部はRAMなどの揮発性メモリであり、補助記憶部は、ROM、EEPROM、フラッシュメモリ、又はハードディスクなどの不揮発性メモリである。通信部13は、有線通信又は無線通信用の通信インタフェースであり、ネットワークNを介してデータ通信を行う。
【0021】
バックグラウンドサーバ20は、後述する特徴量を選択したり学習モデルを学習させたりするサーバコンピュータである。バックグラウンドサーバ20は、制御部21、記憶部22、及び通信部23を含む。制御部21、記憶部22、及び通信部23の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。
【0022】
前処理サーバ30は、後述する特徴量を計算するサーバコンピュータである。前処理サーバ30は、制御部31、記憶部32、及び通信部33を含む。制御部31、記憶部32、及び通信部33の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。
【0023】
リアルタイムサーバ40は、後述する学習モデルが適用されるサーバコンピュータである。リアルタイムサーバ40は、制御部41、記憶部42、及び通信部43を含む。制御部41、記憶部42、及び通信部43の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。
【0024】
サービス提供サーバ50は、ウェブサイトを介して任意のサービスを提供するサーバコンピュータである。サービス提供サーバ50は、制御部51、記憶部52、及び通信部53を含む。制御部51、記憶部52、及び通信部53の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。
【0025】
ユーザ端末60は、ユーザが操作するコンピュータである。例えば、ユーザ端末60は、携帯電話機(スマートフォンを含む)、携帯情報端末(タブレット型コンピュータを含む)、又はパーソナルコンピュータ等である。本実施形態では、ユーザ端末60は、制御部61、記憶部62、通信部63、操作部64、及び表示部65を含む。制御部61、記憶部62、及び通信部63の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。
【0026】
操作部64は、入力デバイスであり、例えば、タッチパネルやマウス等のポインティングデバイス、キーボード、又はボタン等である。操作部64は、ユーザによる操作内容を制御部61に伝達する。表示部65は、例えば、液晶表示部又は有機EL表示部等である。表示部65は、制御部61の指示に従って画像を表示する。
【0027】
なお、記憶部12,22,32,42,52,62に記憶されるものとして説明するプログラム及びデータは、ネットワークNを介して供給されるようにしてもよい。また、上記説明した各コンピュータのハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、光ディスクドライブやメモリカードスロット)や外部機器とデータの入出力をするための入出力部(例えば、USBポート)が含まれていてもよい。例えば、情報記憶媒体に記憶されたプログラムやデータが読取部や入出力部を介して、各コンピュータに供給されるようにしてもよい。
【0028】
[2.学習モデル適用システムの概要]
図2は、学習モデル適用システムSの概要を示す図である。本実施形態では、サービス提供サーバ50が、ニュースや動画などのウェブサイトをユーザに提供し、ウェブサイトにアクセスしたユーザの行動を分析する場面を例に挙げて、学習モデル適用システムSの処理を説明する。例えば、学習モデル適用システムSは、ユーザがウェブサイトにアクセスした場合に行動データを生成し、学習モデルを利用して行動データを分析し、正常ユーザ又は不正ユーザの何れかに分類する。
【0029】
行動データは、ユーザの行動に関するデータである。行動データは、少なくとも1つの項目を含み、ユーザの行動内容が格納される。ウェブサイトにアクセスしたユーザ全員について行動データが生成されてもよいし、一部のユーザについてのみ行動データが生成されてもよい。行動データには、ある一時点における行動が示されてもよいし、一定の期間における行動の履歴が示されてもよい。例えば、行動データは、ウェブサイトにアクセスした時間、ウェブサイトにアクセスしたときのユーザの場所、又はウェブサイトにおけるユーザの操作内容などを示す。
【0030】
正常ユーザは、正常な行動をしたユーザであり、不正ユーザではないユーザである。不正ユーザは、不正な行動をしたユーザであり、正常ユーザではないユーザである。不正な行動とは、サービス提供者又は他のユーザなどに不利益となる行動であり、例えば、ハッキング、クラッキング、悪意のある投稿、意図的に多量のアクセスを行うこと、他のユーザへの迷惑行為、サービス規約に反する行為、又は法律違反となる行為などである。
【0031】
例えば、正常ユーザに対するサービスは制限されず、不正ユーザに対するサービスは制限される。ただし、不正ユーザに分類された場合に、直ちにサービスが制限される必要はなく、管理者の審査が行われた後にサービスが制限されてもよいし、ユーザに対する追加の認証が行われた後にサービスが制限されてもよい。
【0032】
学習モデルは、機械学習を利用したモデルである。学習モデルは、学習器、分類器、又は分類学習器と呼ばれることもある。本実施形態では、不正ユーザであるか否かを分類するための学習モデルが用いられる。機械学習自体は、公知の種々の手法を利用可能であり、例えば、ニューラルネットワーク、強化学習、又は深層学習といった手法を利用可能である。機械学習は、教師有り学習に限られず、半教師有り学習が用いられてもよいし、教師なし学習に基づく学習モデルが用いられてもよい。
【0033】
学習モデルには、行動データがそのまま入力されてもよいが、本実施形態では、行動データに基づいて計算された複数の特徴量が学習モデルに入力される。学習モデルは、入力された複数の特徴量に基づいて、ユーザを正常ユーザ又は不正ユーザの何れかに分類する。
【0034】
特徴量は、学習モデルの処理対象となるデータの特徴を示す情報である。本実施形態では、行動データが処理対象となるので、特徴量は、ユーザの行動の特徴を示す情報ということができる。特徴量は、数値で示されてもよいし、文字などの他の情報で示されてもよい。特徴量は、行動データから計算可能な特徴であればよく、例えば、ユーザの平均的なアクセス場所からの距離、ユーザの前回のアクセスからの経過時間、ユーザのアクセス頻度、又はユーザによるサービスの利用状況(例えば、決済金額や決済頻度)などである。他にも例えば、特徴量は、国外からのアクセスであるか否か、又は、サービスに利用登録してから一定期間が経過しているか否か、といったような2値で表現される情報であってもよい。
【0035】
図2に示すように、前処理サーバ30には、特徴量の計算で用いられるm個(m:自然数)の前処理コンポーネントC
mが用意されている。前処理コンポーネントC
mは、バックグラウンドサーバ20だけでなく、リアルタイムサーバ40でも用いられる。本実施形態では、リアルタイムサーバ40の方が、バックグラウンドサーバ20よりも迅速な処理が求められるので、リアルタイムサーバ40の処理では間に合わないような特徴量計算は行われないものとする。即ち、リアルタイムサーバ40の処理の限界は、バックグラウンドサーバ20の処理の限界となっている。
【0036】
本実施形態では、m個の前処理コンポーネントCmで計算可能な特徴量をn種類(n:自然数)とする。n種類の特徴量の全てが学習で用いられてもよいが、n種類の特徴量の中には、学習モデルにおける影響が小さい(不正検知の際に重要ではない)特徴量も存在する。このような特徴量が学習されると、学習モデルの精度が低下したり、処理に時間を要したりすることがある。そこで、本実施形態では、影響が相対的に大きいk種類(k:n以下の自然数)の特徴量が選択され、学習モデルに学習される。
【0037】
本実施形態では、データベースサーバ10は、過去にウェブサイトにアクセスした種々のユーザの行動データの履歴と、当該ユーザが不正ユーザであるか否かの診断結果と、を蓄積している。バックグラウンドサーバ20は、リアルタイムサーバ40に適用する学習モデルを作成するために、データベースサーバ10から、直近の一定期間の行動データを取得する。バックグラウンドサーバ20は、データベースサーバ10から取得した行動データを前処理サーバ30に送信する。バックグラウンドサーバ20は、前処理サーバ30に総当たり的に特徴量を計算させ、n種類の特徴量を取得する(S1)。
【0038】
バックグラウンドサーバ20は、学習モデルにおける特徴量の影響を評価し、n種類の特徴量の中からk種類の特徴量を選択する(S2)。特徴量の選択自体は、公知の特徴量選択手法を適用可能であり、例えば、学習モデルを使用せずにデータセットのみで完結するFilter-Method、学習モデルを使用して最適な特徴量の組み合わせを探索するWrapper-Method、又は、学習時に特徴量選択を行うEmbedded-Methodを利用可能である。
【0039】
本実施形態では、n種類の特徴量の各々の影響度(重要度)に基づいて、k種類の特徴量が選択される場合について説明する。特徴量の影響度は、公知の手法(例えば、評価対象の特徴量のみを変化させたときに、予測された結果に対してどれだけの違いをもたらすかを評価する手法、いわゆるPermutation Importance)を利用する場合を例に挙げる。この手法によれば、特徴量ごとに、学習モデルにおける影響度を示す数値が出力される。例えば、バックグラウンドサーバ20は、n種類の特徴量の中から、影響度の高い順にk種類の特徴量を選択する。
【0040】
バックグラウンドサーバ20は、選択されたk種類の特徴量に基づいて学習モデルを学習させる(S3)。n種類の特徴量のうち、選択されたk種類の特徴量以外の特徴量は、学習モデルにおける影響が小さい。このため、本実施形態では、影響が小さい特徴量は、学習で用いられないものとするが、影響が小さい特徴量は、全く学習で用いられないのではなく、学習係数を下げる等して多少は学習させてもよい。
【0041】
バックグラウンドサーバ20は、リアルタイムサーバ40に対し、学習済みの学習モデルを送信して適用する(S4)。学習済みの学習モデルには、k種類の特徴量が入力されるので、不正検知の際には、n種類の特徴の全てを計算する必要はない。このため、バックグラウンドサーバ20は、前処理サーバ30に対し、n種類の全ての特徴量を計算するのではなく、k種類の特徴量だけを計算するように、前処理サーバ30に対し、特徴量の計算に関する設定を行う(S5)。学習モデルの適用と特徴量の計算に関する設定は、同時に行われてもよいし、何れか一方が先に行われてもよい。
【0042】
以上の処理により、リアルタイムサーバ40は、適用された学習モデルを利用して不正検知をすることができるようになる。例えば、ユーザがサービス提供サーバ50のウェブサイトにアクセスすると、サービス提供サーバ50は、ウェブサイトにおけるユーザの行動に基づいて行動データを生成する。リアルタイムサーバ40は、生成された行動データを収集して前処理サーバ30に送信する。リアルタイムサーバ40は、前処理サーバ30にk種類の特徴量を計算させて取得する(S6)。前処理サーバ30は、バックグラウンドサーバ20から計算を依頼された場合とは異なり、n種類の特徴量の全てを計算せず、k種類の特徴だけを計算することになる。
図2の例では、n種類の特徴量の計算で利用された前処理コンポーネントc
2やc
mは、k種類の特徴量の計算では利用されない。このような特徴量計算の設定は、S5において行われている。
【0043】
リアルタイムサーバ40は、適用された学習モデルに対し、前処理サーバ30から受信したk種類の特徴量を入力して不正検知を行う(S7)。リアルタイムサーバ40は、学習モデルから不正ユーザである旨の出力を取得した場合には、ユーザに対して追加認証を求めたり、サービスの提供を制限したりする。
【0044】
上記のような不正検知では、悪意のある第三者の行動は日々変化するので、学習モデルにおける影響が大きい特徴量の種類が変わることがある。例えば、ある時期における不正検知で重要な特徴量が、「平均的なアクセス場所からの距離」であったとしても、悪意のある第三者の行動が変わると、不正検知で重要な特徴量が、「前回のアクセスからの経過時間」に変わることがある。この場合、古い学習モデルでは行動の変化に対応することができず、ユーザの不正を検知できなくなるので、「平均的なアクセス場所からの距離」の特徴量は、学習モデルに学習させないようにして、その代わりに、「前回のアクセスからの経過時間」の特徴量を学習させる方が好ましい。
【0045】
そこで、学習モデル適用システムSは、定期的に、学習モデルにおける特徴量の影響を評価し、学習モデルに学習させる特徴量を選択しなおすようにしている。バックグラウンドサーバ20が選択する特徴量の種類が変わった場合には、それに応じて前処理サーバ30の特徴量計算の設定も変える必要がある。このため、バックグラウンドサーバ20は、最新の特徴量を計算するように、前処理サーバ30の設定を変更することになる。
【0046】
例えば、ある時期t1において選択されたk1種類の特徴量を計算するために、前処理コンポーネントc1,c2,c5が必要だったとする。この場合、時期t1における前処理サーバ30の設定は、前処理コンポーネントc1,c2,c5を利用して、k1種類の特徴量を計算するように設定される。時期t1において適用される学習モデルには、前処理コンポーネントc1,c2,c5を利用して計算されたk1種類の特徴量が入力される。
【0047】
その後の時期t2において、悪意のある第三者の行動が変化し、k2種類の特徴量の影響が大きくなったとする。この場合、k1種類の特徴量の組み合わせと、k2種類の特徴量の組み合わせと、が完全一致せず、k2種類の特徴量の計算のために、前処理コンポーネントc1,c3,c4が必要だったとする。時期t2における前処理サーバ30の設定は、前処理コンポーネントc1,c3,c4を利用して、k2種類の特徴量を計算するように設定が変更される。時期t2において適用される学習モデルには、前処理コンポーネントc1,c3,c4を利用して計算されたk2種類の特徴量が入力されることになる。
【0048】
以上のように、本実施形態の学習モデル適用システムSは、悪意のある第三者の行動が変化したとしても、それに応じた特徴量を選択して学習モデルを学習し、行動の変化に対応するようにしている。更に、学習モデル適用システムSは、学習済みの学習モデルを適用するとともに、最新の学習モデルに必要な特徴量を計算できるように設定を行うことで、学習モデルの適用を迅速に行うようにしている。以降、この技術の詳細を説明する。
【0049】
[3.学習モデル適用システムにおいて実現される機能]
図3は、学習モデル適用システムSで実現される機能の一例を示す機能ブロック図である。ここでは、データベースサーバ10、バックグラウンドサーバ20、前処理サーバ30、及びリアルタイムサーバ40の各々で実現される機能について説明する。
【0050】
[3-1.データベースサーバにおいて実現される機能]
図3に示すように、データベースサーバ10では、データ記憶部100が実現される。データ記憶部100は、記憶部12を主として実現される。データ記憶部100は、学習に必要なデータを記憶する。本実施形態では、データ記憶部100が記憶するデータの一例として、行動データベースDBについて説明する。
【0051】
図4は、行動データベースDBのデータ格納例を示す図である。
図4に示すように、行動データベースDBは、過去に行われた行動の履歴が蓄積されたデータベースである。例えば、行動データベースDBには、過去に生成された行動データと、不正ユーザであるか否かを示す不正フラグと、が関連付けられて格納される。
【0052】
なお、
図4に示す「No」は、行動データベースDBの個々のレコードを識別するレコード番号である。本実施形態では、レコード番号によって、データベース内のデータが一意に識別されるものとする。また、本実施形態では、行動データベースDBの中に不正フラグが格納されている場合を説明するが、行動データベースDBには不正フラグが格納されていなくてもよい。この場合、後述する評価用の教師データセットDS1が作成されるときに、不正フラグが付与されるようにすればよい。
【0053】
行動データには、任意の情報が格納されてよく、例えば、ユーザID、ユーザ名、IPアドレス、アクセスしたウェブサイトのURL、アクセス場所、アクセス日時、決済金額、又は決済日時等が格納される。先述したように、行動データは、これらの履歴が格納されていてもよい。行動データに行動の履歴が格納される場合には、1つの行動データによって、ユーザの平均的なアクセス場所からの距離、ユーザの前回のアクセスからの経過時間、又はユーザのアクセス頻度といった統計的な特徴量を計算可能となる。行動データに行動の履歴が格納されない場合には、複数の行動データによって、これらの統計的な特徴量が計算される。なお、行動データに含まれる情報は、これらに限られず、操作部64からの入力内容などの他の情報を含んでもよい。
【0054】
ユーザIDは、ユーザを一意に識別する情報である。ユーザ名は、ユーザが利用登録時に入力した名前である。IPアドレスは、ユーザがサービス提供サーバ50にアクセスした時に使用したユーザ端末60のIPアドレスである。アクセス場所は、ユーザがサービス提供サーバ50にアクセスした時に使用したユーザ端末60の場所に関する情報である。アクセス場所は、IPアドレス、GPS情報(緯度経度情報又は座標情報)、無線基地局情報、又はアクセスポイント情報などを利用して推定される。アクセス日時は、ユーザがサービス提供サーバ50にアクセスした時の日時である。決済金額は、ユーザの支払額であり、例えば、有料サービスを利用したり、商品を購入したりしたときの金額である。決済日時は、決済が行われた日時であり、例えば、サービスの利用日時、又は、商品の購入日時である。
【0055】
不正フラグは、不正ユーザであるか否かを示す情報である。不正フラグが第1の値(オン)であれば、不正ユーザであることを意味し、不正フラグが第2の値(オフ)であれば、正当ユーザである(不正ユーザではない)ことを意味する。不正フラグの値は、学習モデルにとっての正解となる情報であり、例えば、管理者によって指定される。管理者は、全ての行動データに対し、不正フラグの値を入力してもよいし、学習モデルの判定結果を閲覧し、間違っている値だけを修正してもよい。
【0056】
例えば、データベースサーバ10は、リアルタイムサーバ40又はサービス提供サーバ50から行動データを取得し、新たなレコード番号を発行して行動データベースDBに格納する。管理者は、行動データベースDBに格納された行動データの内容を閲覧し、不正フラグの値を指定する。データベースサーバ10は、サービス提供サーバに対するアクセスが発生した場合に、行動データを取得し、管理者が指定した不正フラグとともに行動データベースDBに格納する。行動データベースDBの内容は、バックグラウンドサーバ20に対して提供される。
【0057】
[3-2.バックグラウンドサーバにおいて実現される機能]
図3に示すように、バックグラウンドサーバ20では、データ記憶部200、選択部201、適用部202、設定部203、及び通知部204が実現される。選択部201、適用部202、及び設定部203の各々の処理は、リアルタイムサーバ40における推定部401の処理とは異なるバックグラウンド処理として実行される。
【0058】
本実施形態では、バックグラウンド処理は、本番用の学習モデルM2が適用されるコンピュータとは異なるコンピュータで実行される処理である。即ち、バックグラウンド処理とリアルタイム処理とは、互いに異なるコンピュータで実行される。なお、バックグラウンド処理は、リアルタイム処理と同じコンピュータで実行されてもよいが、この場合、リアルタイム処理は、バックグラウンド処理よりも優先的に実行される。例えば、バックグラウンド処理は、リアルタイム処理が実行される頻度が相対的に低い時間帯等に実行される。
【0059】
[データ記憶部]
データ記憶部200は、記憶部22を主として実現される。データ記憶部200は、特徴量を選択して学習モデルを適用するために必要なデータを記憶する。本実施形態では、データ記憶部200が記憶するデータの一例として、評価用の学習モデルM1、評価用の教師データセットDS1、本番用の学習モデルM2、及び本番用の教師データセットDS2について説明する。
【0060】
評価用の学習モデルM1は、n種類の特徴量の各々を評価するために用いられるモデルである。別の言い方をすれば、評価用の学習モデルM1は、n種類の特徴量の中から、影響が相対的に大きいk種類の特徴量を選択するために用いられるモデルである。本実施形態では、評価用の学習モデルM1は、あくまで特徴量の選択のために用いられるので、リアルタイムサーバ40には適用されない。なお、Filter-Methodのように、特徴量の影響を評価するために学習モデルを利用しない場合には、評価用の学習モデルM1は、データ記憶部200に記憶されないものとする。
【0061】
データ記憶部200は、評価用の学習モデルM1のプログラム(アルゴリズム)やパラメータを記憶する。評価用の学習モデルM1には、評価用の教師データセットDS1が学習され、例えば、評価用の学習モデルM1のパラメータは、評価用の教師データセットDS1によって調整される。学習方法自体は、公知の手法を利用可能であり、例えば、ニューラルネットワークの学習手法を利用可能である。評価用の学習モデルM1は、後述する評価用の教師データの入力と出力の関係が得られるように学習される。
【0062】
図5は、評価用の教師データセットDS1のデータ格納例を示す図である。
図5に示すように、評価用の教師データセットDS1には、評価用の学習モデルM1に学習させる教師データが格納される。教師データの数は、任意であってよく、例えば、十個~数百個程度であってもよいし、千個以上であってもよい。本実施形態では、評価用の教師データセットDS1に格納される個々の教師データを、評価用の教師データと記載する。評価用の教師データは、
図5の個々のレコードであり、評価用の教師データセットDS1は、評価用の教師データの集まりである。
【0063】
評価用の教師データには、評価用の学習モデルM1における入力と出力の関係が示されている。本実施形態では、評価用の教師データには、n種類の全ての特徴量と、不正フラグと、の関係が示されている。本実施形態では、評価用の教師データは、行動データベースDBに格納された行動データごとに作成されるものとする。このため、行動データベースDBに格納された行動データと、評価用の教師データセットDS1に格納された教師データと、は1対1で対応する。
【0064】
例えば、
図4の行動データベースDBにおける「No」が「1」の行動データからn種類の特徴量が計算され、
図5の評価用データベースにおける「No」が「1」の教師データの特徴量として格納される。行動データに格納された不正フラグは、そのまま教師データの不正フラグとして格納される。このようにして、行動データベースDBのうち、直近の一定期間における行動データについて、n種類の特徴量と不正フラグの関係を示す評価用の教師データが作成される。
【0065】
なお、本実施形態では、行動データベースDBのうち直近の一定期間における行動データについて、評価用の教師データが作成される場合を説明するが、行動データベースDBの全て行動データについて、評価用の教師データが作成されてもよい。他にも例えば、行動データベースDBの中からランダムに選択された一部の行動データについてのみ、評価用の教師データが作成されてもよいし、特定のユーザの行動を示す行動データについてのみ、評価用の教師データが作成されてもよい。
【0066】
本番用の学習モデルM2は、選択部201により選択されたk種類の特徴量によって学習された学習モデルである。別の言い方をすれば、本番用の学習モデルM2は、これからリアルタイムサーバ40に適用される学習モデル、又は、既にリアルタイムサーバ40に適用された学習モデルである。本番用の学習モデルM2は、最新の学習モデルということもできる。
【0067】
データ記憶部200は、本番用の学習モデルM2のプログラム(アルゴリズム)やパラメータを記憶する。本番用の学習モデルM2は、本番用の教師データセットDS2が学習され、例えば、本番用の学習モデルM2のパラメータは、本番用の教師データセットDS2によって調整される。学習方法自体は、公知の手法を利用可能であり、例えば、ニューラルネットワークの学習手法を利用可能である。本番用の学習モデルM2は、後述する本番用の教師データの入力と出力の関係が得られるように学習される。
【0068】
図6は、本番用の教師データセットDS2のデータ格納例を示す図である。
図6に示すように、本番用の教師データセットDS2には、本番用の学習モデルM2に学習させる教師データが格納される。教師データの数は、任意であってよく、例えば、十個~数百個程度であってもよいし、千個以上であってもよい。本実施形態では、本番用の教師データセットDS2に格納される個々のレコードを、本番用の教師データと記載する。本番用の教師データは、
図6の個々のレコードであり、本番用の教師データセットDS2は、本番用の教師データの集まりである。
【0069】
本番用の教師データには、本番用の学習モデルM2における入力と出力の関係が示されている。本実施形態では、本番用の教師データには、k種類の特徴量と、不正フラグと、の関係が示されている。本実施形態では、本番用の教師データは、評価用の教師データセットDS1に格納された評価用の教師データごとに作成されるものとする。このため、本番用の教師データと評価用の教師データとは、1対1で対応する。
【0070】
例えば、
図5の評価用の教師データセットDS1における「No」が「1」の教師データのn種類の特徴量のうち、k種類の特徴量が本番用の教師データの特徴量として格納される。評価用の教師データに格納された不正フラグは、そのまま本番用の教師データの不正フラグとして格納される。このようにして、評価用の教師データセットDS1に格納された全ての教師データについて、k種類の特徴量と不正フラグの関係を示す本番用の教師データが作成される。
【0071】
なお、本実施形態では、評価用の教師データセットDS1に格納された全ての評価用の教師データについて、本番用の教師データが作成される場合を説明するが、評価用の教師データセットDS1の一部についてのみ、本番用の教師データが作成されてもよい。他にも例えば、評価用の教師データセットDS1に含まれていない行動データに基づいて、本番用の教師データが作成されてもよい。例えば、数十個程度の評価用の教師データに基づいて、k種類の特徴量が選択されたうえで、数百個~数千個程度の行動データから本番用の評価データが作成されてもよい。
【0072】
[選択部]
選択部201は、制御部21を主として実現される。選択部201は、学習モデルにおける各特徴量の影響に基づいて、複数の特徴量のうちの少なくとも1つを選択する。本実施形態では、評価用の学習モデルM1が用意されているので、選択部201は、評価用の学習モデルM1に基づいて、各特徴量の影響を評価する。
【0073】
特徴量の影響は、学習モデルの出力に対する影響である。別の言い方をすれば、特徴量の影響は、学習モデルが着目している度合、学習モデルの出力における重要性、又は、学習モデルが出力内容を決定する際の根拠ということもできる。例えば、特徴量の影響は、Permutation Importance又はGini Importance等の公知の特徴量選択手法によって計算される影響度によって示される。本実施形態では、影響度が数値によって示される場合を説明するが、特徴量の影響は、文字等の他の情報によって示されてもよい。影響度が示す数値が大きくなるほど影響が大きいことを意味する。例えば、特徴量の値を変化させたときに出力にどの程度影響を与えるかを計算することによって、特徴量の影響度が計算される。出力への影響が大きいほど影響度が示す数値が大きくなる。
【0074】
選択部201は、任意の数の特徴量を選択可能であり、例えば、特徴量を1つだけ選択してもよいし、複数の特徴量を選択してもよい。更に、選択部201は、n種類の特徴量の全てを選択してもよいし(この場合、nの数値はkの数値と同じとなる)、n種類の特徴量の一部だけを選択してもよい(この場合、kの数値はnの数値よりも小さくなる)。
【0075】
選択部201は、n種類の特徴量の中で、学習モデルにおける影響が相対的に高いk種類の特徴量を選択する。例えば、選択部201は、評価用の教師データセットDS1に格納されたn種類の特徴量の各々の影響度を取得し、取得した影響度に基づいて、k種類の特徴量を選択する。例えば、選択部201は、影響度が高い順にk種類の特徴量を選択する。また例えば、選択部201は、影響度が閾値以上の特徴量を全て選択してもよい。この場合、影響度が閾値以上の特徴量の数がkの数値となる。また例えば、選択部201は、影響度が上位所定パーセントの特徴量を選択してもよい。この場合、影響度が上位所定パーセントの特徴量の数がkの数値となる。
【0076】
[適用部]
適用部202は、制御部21を主として実現される。適用部202は、選択部201により選択された特徴量に基づいて学習された学習済みの学習モデルを適用する。学習済みの学習モデルは、選択部201により選択されたk種類の特徴量を含む教師データに基づいて学習されたモデルである。本実施形態では、本番用の学習モデルM2が学習済みの学習モデルに相当する。このため、本実施形態で本番用の学習モデルM2と記載した箇所は、学習済みの学習モデルと読み替えることができる。
【0077】
適用とは、学習モデルを差し替えることである。このため、適用は、エクスポート、切り替え、上書き、又は有効化ということもできる。本実施形態では、本番用の学習モデルM2は、リアルタイムサーバ40に適用されるので、適用部202は、本番用の教師データセットDS2が学習された本番用の学習モデルM2を、リアルタイムサーバ40に送信することによって、本番用の学習モデルM2を適用する。
【0078】
[設定部]
設定部203は、制御部21を主として実現される。設定部203は、選択部201により選択された特徴量に基づいて、本番用の学習モデルM2に入力される特徴量の計算に関する設定を行う。
【0079】
特徴量の計算に関する設定とは、特徴量を計算するか否かを設定することである。別の言い方をすれば、特徴量の計算に関する設定は、選択部201により選択された特徴量を計算し、選択部201により選択されなかった特徴量は計算しないようにすることである。本実施形態では、n種類の特徴量のうちのk種類が選択されるので、設定部203は、k種類以外の特徴量については、計算の対象から除外するように設定する。各特徴量を計算するか否かを識別する情報は、後述する計算設定データDに示されている。このため、設定部203は、計算設定データDに格納された情報を設定することによって、特徴量を計算するか否かの設定を行うことになる。
【0080】
本実施形態では、前処理コンポーネントCmを利用して特徴量が計算されるので、設定部203は、複数の前処理コンポーネントCmのうち、選択部201により選択された特徴量の計算で用いられる前処理コンポーネントCmを、学習済みの学習モデルに入力される特徴量の計算で用いるように設定する。前処理コンポーネントCmを利用するか否かを示す情報は、後述する計算設定データDに示されている。このため、設定部203は、計算設定データDに格納された情報を設定することによって、利用する前処理コンポーネントCmを設定する。設定部203は、選択部201により選択された特徴量の計算に必要な前処理コンポーネントCmは利用するものとして設定し、それ以外の前処理コンポーネントCmは利用しないものとして設定する。
【0081】
[通知部]
通知部204は、制御部21を主として実現される。本実施形態の学習モデルは、ウェブサイトにおける不正を検知するためのモデルなので、通知部204は、ウェブサイトの管理者に対し、選択部201により選択された特徴量に関する情報を通知する。ウェブサイトの管理者は、サービスの提供者であり、例えば、学習モデルの分析を行うデータサイエンティストではなく、ビジネス側の担当者である。通知は、任意の媒体を利用可能であり、例えば、電子メール、メッセージアプリ、SNS、SMS、チャット、又は電子掲示板等を利用すればよい。
【0082】
特徴量に関する情報とは、選択部201により選択された特徴量の内容を示す情報である。例えば、「平均的なアクセス場所からの距離」の特徴量が選択された場合には、通知部204は、「平均的なアクセス場所からの距離」が選択されたことを通知し、「前回のアクセスからの経過時間」の特徴量が選択された場合には、通知部204は、「前回のアクセスからの経過時間」が選択されたことを通知する。ウェブサイトの管理者は、通知された特徴量の内容を見てウェブサイトのデザインを変更したり、サービスを提供する際の仕様変更をしたりする。
【0083】
[3-3.前処理サーバにおいて実現される機能]
図3に示すように、前処理サーバ30では、データ記憶部300、入力部301、及び計算部302が実現される。
【0084】
[データ記憶部]
データ記憶部300は、記憶部32を主として実現される。データ記憶部300は、特徴量の計算に必要なデータを記憶する。本実施形態では、データ記憶部300が記憶するデータの一例として、計算設定データDと前処理コンポーネントC
mについて説明する。なお、
図3では、前処理コンポーネントC
mを1つだけ示しているが、実際には、m個の前処理コンポーネントC
mが記憶される。データ記憶部300は、前処理コンポーネントC
mに含まれるプログラムや計算式などを記憶する。
【0085】
図7は、計算設定データDのデータ格納例を示す図である。
図7に示すように、計算設定データDには、前処理サーバ30が計算可能な特徴量ごとに、その計算方法と、選択フラグと、が格納される。別の言い方をすれば、計算設定データDには、n種類の特徴量の各々について、計算方法と選択フラグとが格納される。
【0086】
例えば、計算方法としては、特徴量の計算で用いられる前処理コンポーネントCmを識別する情報が格納される。本実施形態では、前処理コンポーネントCmは、特徴量の計算に必要な前処理を実行するので、計算方法としては、前処理コンポーネントCmから出力された値から特徴量を計算するための計算式が格納される。前処理コンポーネントCmが特徴量そのものを計算する場合には、前処理コンポーネントCmから出力された特徴量を取得すればよいので、特に計算式は計算設定データDに示されない。
【0087】
選択フラグは、選択部201により選択されたか否かを示す情報である。別の言い方をすれば、選択フラグは、k種類の特徴量に含まれるか否かを示す情報である。選択フラグが第1の値(オン)であれば、選択部201により選択されたことを意味し、選択フラグが第2の値(オフ)であれば、選択部201により選択されていないことを意味する。選択フラグの値は、後述する設定部203によって設定される。
【0088】
[入力部]
入力部301は、制御部31を主として実現される。入力部301は、前処理コンポーネントCmに対し、特徴量の計算に必要なデータを入力する。本実施形態では、各行動データが同じ形式であり、入力部301は、各前処理コンポーネントCmに対し、互いに同じ形式のデータを入力する。例えば、入力部301は、処理対象の行動データをそのままの形式で各前処理コンポーネントCmに入力する。また例えば、行動データを加工する場合には、入力部301は、同じ加工が施された行動データを、各前処理コンポーネントCmに入力する。
【0089】
各前処理コンポーネントCmは、他の前処理コンポーネントCmに入力されるデータと同じ形式のデータに基づいて、計算処理を実行する。前処理コンポーネントCmは、予め自身に定められた計算式に基づいて計算処理を実行すればよく、例えば、集計処理、平均値の算出処理、標準偏差の算出処理、確率分布の作成処理、又はその他統計値の算出処理などを実行する。前処理コンポーネントCmが特徴量そのものを計算する場合には、前処理コンポーネントCmは、特徴量の計算処理を実行する。
【0090】
[計算部]
計算部302は、制御部31を主として実現される。計算部302は、学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する。学習用データは、学習モデルを学習させるために用いられるデータであればよく、教師データそのものを意味してもよいし、教師データを作成する元となるデータを意味してもよい。本実施形態では、行動データが学習用データに相当する。このため、本実施形態で行動データと記載した箇所は、学習用データと読み替えることができる。
【0091】
計算部302は、予め定められた計算式に基づいて、特徴量を計算すればよい。本実施形態では、計算設定データDに特徴量の計算方法が定められているので、計算部302は、計算設定データDに示された計算方法に基づいて、特徴量を計算する。本実施形態では、複数の前処理コンポーネントCmが用意されているので、計算部302は、複数の前処理コンポーネントCmに基づいて、複数の特徴量を計算することになる。
【0092】
例えば、計算部302は、バックグラウンドサーバ20から計算の要求を受け付けた場合には、n種類の特徴量の全てを計算する。即ち、計算部302は、前処理コンポーネントCmを利用して計算可能な特徴量を総当たり的に計算する。一方、計算部302は、リアルタイムサーバ40から計算の要求を受け付けた場合には、k種類の特徴量を計算し、それ以外の特徴量は計算しない。どの特徴量を計算すべきかは、計算設定データDに示されているので、計算部302は、計算設定データDを参照して計算すべき特徴量を特定し、当該特定した特徴量を計算する。
【0093】
[3-4.リアルタイムサーバにおいて実現される機能]
図3に示すように、リアルタイムサーバ40では、データ記憶部400及び推定部401が実現される。
【0094】
[データ記憶部]
データ記憶部400は、記憶部42を主として実現される。データ記憶部400は、本番用の学習モデルM2を記憶する。データ記憶部400に記憶される本番用の学習モデルM2は、データ記憶部200に記憶される本番用の学習モデルM2と同様のため、説明を省略する。適用部203により新たな本番用の学習モデルM2が適用されると、データ記憶部400に記憶された本番用の学習モデルM2が差し替えられることになる。
【0095】
[推定部]
推定部401は、制御部41を主として実現される。本実施形態の学習モデルは、ウェブサイトにおける不正を検知するためのモデルであり、推定部401は、ウェブサイトにユーザがアクセスした場合に、学習済みの学習モデルと、設定部203により行われた設定と、に基づいて、当該ユーザの不正を推定する。例えば、サービス提供サーバ50は、ウェブサイトにアクセスしたユーザの行動データを生成し、リアルタイムサーバ40に送信する。推定部401は、ウェブサイトにアクセスしたユーザの行動データの特徴量の計算を、前処理サーバ30に依頼する。推定部401は、前処理サーバ30から受信したk種類の特徴量を、本番用の学習モデルM2に入力する。本番用の学習モデルM2は、入力された特徴量に基づいて、ユーザを不正ユーザ又は正常ユーザの何れかに分類する。推定部401は、本番用の学習モデルM2から出力された分類結果を取得し、ユーザの不正を推定する。
【0096】
[4.本実施形態において実行される処理]
次に、学習モデル適用システムSにおいて実行される処理について説明する。本実施形態では、特徴量を選択して本番用の学習モデルM2を適用するバックグラウンド処理と、ウェブサイトにアクセスしたユーザの不正を検知するリアルタイム処理と、について説明する。
【0097】
[4-1.バックグラウンド処理]
図8は、バックグラウンド処理の一例を示すフロー図である。
図8に示すバックグラウンド処理は、制御部21,31が、それぞれ記憶部22,32に記憶されたプログラムに従って動作することによって実行される。下記に説明する処理は、
図3に示す機能ブロックにより実行される処理の一例である。なお、バックグラウンド処理が実行されるのは、任意のタイミングであればよく、所定の日時が訪れた場合に実行されてもよいし、現状の本番用の学習モデルM2の精度が低下した場合に実行されてもよい。
【0098】
図8に示すように、まず、バックグラウンドサーバ20は、データベースサーバ10から、行動データベースDBに格納された行動データを取得する(S100)。S100においては、バックグラウンドサーバ20は、データベースサーバ10に対し、行動データの取得要求を送信する。データベースサーバ10は、取得要求を受信すると、行動データベースDBのうち、直近の所定期間の行動データを取得し、バックグラウンドサーバ20に対して送信する。
【0099】
バックグラウンドサーバ20は、S100で取得した行動データに基づいて、前処理サーバ30に対し、特徴量の計算依頼を送信する(S101)。S101における計算依頼は、所定形式のデータが送信されることによって行われるようにすればよく、例えば、S100で取得した行動データが含まれているものとする。
【0100】
前処理サーバ30は、バックグラウンドサーバ20から計算依頼を受信すると、全ての前処理コンポーネントCmに対し、計算依頼に含まれる複数の行動データの各々を入力する(S102)。S102においては、前処理サーバ30は、全ての前処理コンポーネントCmに対し、行動データをそのまま入力するので、互いに同じ形式の行動データが全ての前処理コンポーネントCmに入力されることになる。
【0101】
前処理サーバ30は、計算設定データDに定義された計算方法と、前処理コンポーネントCmから出力された値と、に基づいて、n種類の全ての特徴量を計算する(S103)。S103においては、前処理サーバ30は、特徴量ごとに、前処理コンポーネントCmから出力された値を所定の計算式に代入することによって、特徴量の値を計算する。なお、前処理コンポーネントCmが特徴量そのものを計算する場合には、前処理サーバ30は、計算式の代入は行わず、前処理コンポーネントCmから出力された値を、そのまま特徴量として取得する。
【0102】
前処理サーバ30は、バックグラウンドサーバ20に対し、S103で計算したn種類の特徴量を送信する(S104)。
【0103】
バックグラウンドサーバ20は、n種類の特徴量を受信すると、評価用の教師データを作成し、評価用の教師データセットDS1に追加する(S105)。S105においては、バックグラウンドサーバ20は、前処理サーバ30から受信したn種類の特徴量を入力とし、行動データの不正フラグを出力とする教師データを作成する。
【0104】
バックグラウンドサーバ20は、S100で取得した全ての行動データについて、n種類の特徴量を取得したか否かを判定する(S106)。まだ特徴量を取得していない行動データが存在すると判定された場合(S106;N)、S101の処理に戻り、次の行動データの特徴量が計算される。
【0105】
一方、全ての行動データの特徴量が取得されたと判定された場合(S106;Y)、バックグラウンドサーバ20は、評価用の教師データセットDS1に基づいて、評価用の学習モデルM1を学習させる(S107)。S107においては、バックグラウンドサーバ20は、公知の学習アルゴリズムに基づいて、評価用の教師データセットDS1が示す入力と出力の関係が得られるように、評価用の学習モデルM1のパラメータを調整する。
【0106】
バックグラウンドサーバ20は、評価用の学習モデルM1における各特徴量の影響に基づいて、n種類の特徴量の中からk種類の特徴量を選択する(S108)。S108においては、バックグラウンドサーバ20は、n種類の特徴量の各々の影響度を取得し、影響度が高い順にk種類の特徴量を選択する。
【0107】
バックグラウンドサーバ20は、S108で選択したk種類の特徴量に基づいて、本番用の教師データを作成する(S109)。S109においては、バックグラウンドサーバ20は、評価用の教師データごとに、当該教師データのn種類の特徴量のうちのk種類の特徴量を入力とし、当該教師データの不正フラグを出力とする教師データを作成する。
【0108】
バックグラウンドサーバ20は、本番用の教師データセットDS2に基づいて、本番用の学習モデルM2を学習させる(S110)。S110においては、バックグラウンドサーバ20は、公知の学習アルゴリズムに基づいて、本番用の教師データセットDS2が示す入力と出力の関係が得られるように、本番用の学習モデルM2のパラメータを調整する。
【0109】
バックグラウンドサーバ20は、リアルタイムサーバ40に対し、本番用の学習モデルM2を適用する(S111)。S111においては、バックグラウンドサーバ20は、リアルタイムサーバ40に対し、本番用の学習モデルM2を送信する。リアルタイムサーバ40は、本番用の学習モデルM2を受信すると、それまで使用していた本番用の学習モデルM2を、新たに受信した本番用の学習モデルM2に差し替える。
【0110】
バックグラウンドサーバ20は、前処理サーバ30に対し、k種類の特徴量の計算に関する設定を行い(S112)、本処理は終了する。S112においては、バックグラウンドサーバ20は、前処理サーバ30に対し、k種類の特徴量の各々を識別する情報を含む設定指示を送信する。前処理サーバ30は、設定指示を受信すると、計算設定データDの選択フラグの値を更新する。これにより、リアルタイムサーバ40から計算要求を受信した際に、k種類の特徴量が計算されるようになる。
【0111】
[4-2.リアルタイム処理]
図9は、リアルタイム処理の一例を示すフロー図である。
図9に示すリアルタイム処理は、制御部31,41,51,61が、それぞれ記憶部32,42,52,62に記憶されたプログラムに従って動作することによって実行される。下記に説明する処理は、
図3に示す機能ブロックにより実行される処理の一例である。
【0112】
図9に示すように、まず、ユーザ端末60は、サービス提供サーバ50が提供するウェブサイトにアクセスする(S200)。S200においては、ユーザが操作部64を操作してウェブサイトのURLを入力したり、URL入りのリンクを指定したりすると、ユーザ端末60は、ウェブサイトにアクセスする。なお、ユーザは、サービス提供サーバ50に対してログイン済みであり、サービス提供サーバ50は、どのユーザがアクセスしているかを特定できるようになっている。
【0113】
以降、サービス提供サーバ50とユーザ端末60との間で、サービスの提供処理が実行される(S201)。S201においては、ユーザの操作に応じて、ウェブサイトを介してニュースや動画などがユーザに提供される。ユーザが有料サービスの購入操作をした場合には、予めサービス提供サーバ50に登録されたクレジットカード等の決済情報に基づいて、決済処理が実行される。サービス提供サーバ50は、ユーザ端末60からユーザの操作内容等を受信すると、ユーザの行動として記録する。
【0114】
サービス提供サーバ50は、S201の処理結果に基づいて、ウェブサイトにアクセスしたユーザの行動データを生成し、リアルタイムサーバ40に対し、行動データの解析要求を送信する(S202)。
【0115】
リアルタイムサーバ40は、解析要求を受信すると、前処理サーバ30に対し、特徴量の計算依頼を送信する(S203)。S203における計算依頼は、所定形式のデータが送信されることによって行われるようにすればよく、例えば、サービス提供サーバ50から受信した行動データが含まれているものとする。
【0116】
前処理サーバ30は、リアルタイムサーバ40から計算依頼を受信すると、計算設定データDに基づいて、k種類の特徴量を計算するための所定の前処理コンポーネントCmに対し、計算依頼に含まれる行動データを入力する(S204)。S204においては、前処理サーバ30は、k種類の特徴量を計算するための前処理コンポーネントCmに対し、行動データをそのまま入力するので、互いに同じ形式の行動データが前処理コンポーネントCmに入力されることになる。
【0117】
前処理サーバ30は、計算設定データDに定義された計算方法と、前処理コンポーネントCmから出力された値と、に基づいて、k種類の特徴量を計算する(S205)。S205においては、前処理サーバ30は、特徴量ごとに、前処理コンポーネントCmから出力された値を所定の計算式に代入することによって、特徴量の値を計算する。なお、前処理コンポーネントCmが特徴量そのものを計算する場合には、前処理サーバ30は、計算式の代入は行わず、前処理コンポーネントCmから出力された値を、そのまま特徴量として取得する。
【0118】
前処理サーバ30は、リアルタイムサーバ40に対し、S205で計算したk種類の特徴量を送信する(S206)。
【0119】
バックグラウンドサーバ20は、計算依頼した行動データのk種類の特徴量を受信すると、現状の本番用の学習モデルM2に入力し、学習モデルからの出力を取得する(S207)。S207においては、バックグラウンドサーバ20は、k種類の特徴量をk次元のベクトルとして、本番用の学習モデルM2に入力する。本番用の学習モデルM2は、入力されたk次元のベクトルに基づいて、不正ユーザ又は正常ユーザの何れかを示す値を出力する。
【0120】
制御部41は、本番用の学習モデルM2からの出力に基づいて、所定の処理を実行し(S208)、本処理は終了する。S208においては、制御部41は、本番用の学習モデルM2からの出力が不正ユーザを示す場合に、管理者にその旨を通知したり、ユーザに対して追加認証を求めたりする。一方、本番用の学習モデルM2からの出力が正常ユーザを示す場合には、特にサービスの制限等は行われない。
【0121】
本実施形態の学習モデル適用システムSによれば、学習モデルにおける各特徴量の影響に基づいて、少なくとも1つの特徴量を選択して本番用の学習モデルM2を適用し、本番用の学習モデルM2に入力される特徴量の計算に関する設定を行うことによって、本番用の学習モデルM2を迅速に適用することができる。例えば、データサイエンティストに特徴量の分析や設定作業をさせる手間を省くことができ、悪意のある第三者の行動の変化等に迅速に対応することができる。また、学習モデルにおける影響が相対的に小さい特徴量を、学習の対象から除外する場合には、学習モデルにおける影響が相対的に大きい特徴量に絞って学習させることができる。その結果、学習モデルの精度を高めることができる。更に、学習モデルにおける影響が相対的に小さい特徴量は、本番用の学習モデルM2には入力されないので、計算対象から除外することができる。その結果、不要な特徴量の計算をする必要がなくなり、前処理サーバ30の処理負荷を軽減させることができる。また、学習モデルに入力される特徴量の数を絞ることにより、学習モデルの処理速度を高速化することもできる。
【0122】
また、学習モデル適用システムSは、複数の前処理コンポーネントCmのうち、選択された特徴量の計算で用いられる前処理コンポーネントCmを、学習済みの学習モデルに入力される特徴量の計算で用いるように設定することによって、必要な特徴量を計算するための設定を正確に行うことができる。また、不要な前処理コンポーネントCmについては、処理を実行させないように設定することによって、不要な処理が実行されることを防止し、前処理サーバ30の処理負荷を軽減させることができる。
【0123】
また、学習モデル適用システムSは、各前処理コンポーネントCmに対し、互いに同じ形式のデータを入力することによって、特徴量の計算を高速化することができる。例えば、前処理コンポーネントCmごとに、入力されるデータの形式が異なると、データを加工する処理を実行する必要があるが、学習モデル適用システムSは、そのような処理を実行する必要がないので、特徴量の計算を高速化することができる。
【0124】
また、学習モデル適用システムSは、特徴量の選択、学習モデルの適用、及び特徴量計算の設定の各々を、バックグラウンド処理として実行することによって、リアルタイム処理に支障をきたすことなく、これらの処理を実行することができる。その結果、例えば、リアルタイム処理で実行される不正検知を止めることなく、最新の傾向に合った学習モデルを作成し、リアルタイム処理の精度(不正検知の精度)を高めることができる。
【0125】
また、学習モデル適用システムSは、ウェブサイトの管理者に対し、選択された特徴量に関する情報を通知することにより、管理者による対策を促すことができる。例えば、悪意のある第三者の行動が変化し、学習モデルにおける影響が大きい特徴量が変化した場合に、その変化を管理者に伝えることにより、ウェブサイトの内容を変更させたり、サービス提供サーバ50が実行するプログラムの設計変更をさせたりするなどの対策を講じさせることができる。
【0126】
[5.変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【0127】
図10は、変形例における機能ブロック図である。
図10に示すように、以降説明する変形例では、実施形態で説明した機能に加えて、取得部205、特定部206、判定部207、及び追加部303が実現される。
【0128】
(1)例えば、悪意のある第三者の行動が変化した場合に、既存の特徴量では、精度の高い不正検知を実現できないことがある。この場合、既存の前処理コンポーネントCmでは計算できない新たな特徴量を計算し、悪意のある第三者の行動の変化に対応する必要がある。そこで、新たな特徴量を計算するための新たな前処理コンポーネントが前処理サーバ30に追加されるようにしてもよい。
【0129】
変形例(1)の前処理サーバ30は、追加部303を含む。追加部303は、制御部31を主として実現される。追加部303は、新たな特徴量を計算するための新たな前処理コンポーネントを追加する。
【0130】
新たな特徴量は、既存の前処理コンポーネントCmでは計算できない特徴量である。別の言い方をすれば、新たな特徴量は、n種類の特徴量には含まれない特徴量である。新たな前処理コンポーネントは、学習モデル適用システムSにおける不正検知を担当する担当者によって作成され、既存の前処理コンポーネントCmとは異なる処理を実行するコンポーネントである。新たな前処理コンポーネントは、新たな特徴量そのものを計算してもよいし、新たな特徴量を計算するために必要な集計処理等を実行してもよい。
【0131】
例えば、追加部303は、データ記憶部300に、新たな前処理コンポーネントを記録する。また例えば、追加部303は、計算設定データに対し、新たな特徴量を計算するための設定を行う。追加部303は、新たな特徴量の計算方法を計算設定データに格納する。新たな前処理コンポーネント及び新たな特徴量の計算方法は、不正検知の担当者の端末等からアップロードされるようにすればよい。なお、新たな特徴量は、適用中の本番用の学習モデルM2には入力されないので、選択フラグは、オフとなる。
【0132】
追加部303による設定が完了すると、新たな前処理コンポーネントを利用して新たな特徴量を計算することができるようになる。計算部302は、新たな前処理コンポーネントに基づいて、新たな特徴量を計算する。特徴量の計算自体は、実施形態で説明した通りである。計算部302は、バックグラウンド処理において、新たな特徴量を計算する。計算部302が計算する新たな特徴量は、1種類であってもよいし、複数種類であってもよい。新たな特徴量をp種類(p:自然数)とすると、バックグラウンド処理では、n+p種類の特徴量が計算されるようになる。
【0133】
設定部203は、選択部201により新たな特徴量が選択された場合には、新たな前処理コンポーネントを、本番用の学習モデルM2に入力される特徴量の計算で用いるように設定する。設定部203の処理自体は、実施形態で説明した通りであり、例えば、設定部203は、選択部201により新たな特徴量が選択された場合に、計算設定データDの選択フラグをオンにすることによって、設定を行うようにすればよい。
【0134】
変形例(1)によれば、新たな特徴量が選択された場合には、新たな前処理コンポーネントを、学習済みの学習モデルに入力される特徴量の計算で用いるように設定することにより、学習モデルの精度を高めることができる。例えば、悪意のある第三者の行動が変化し、既存の特徴量では不正検知をすることが難しくなったとしても、前処理コンポーネントを追加して新たな特徴量の計算設定をしておけば、バックグラウンド処理で影響の大きさが判定されて選択されるので、行動の変化に対応した学習モデルを容易に作成することができる。
【0135】
(2)また例えば、リアルタイム処理では、迅速な処理が求められるので、特徴量の計算に時間がかかると、リアルタイム処理に支障をきたすことがある。このため、学習モデルにおける特徴量の影響だけでなく、特徴量の計算のために必要な計算時間も考慮して、特徴量が選択されるようにしてもよい。例えば、影響が同程度の特徴量が多数存在した場合には、計算時間が短い特徴量が優先的に選択されるようにしてもよい。
【0136】
変形例(2)のバックグラウンドサーバ20は、取得部205を含む。取得部205は、制御部21を主として実現される。取得部205は、各特徴量の計算時間を取得する。特徴量の計算時間は、特徴量の計算を開始してから終了するまでの時間である。例えば、取得部205は、前処理サーバ30に各特徴量の計算時間を計測させ、前処理サーバ30から計測結果を取得する。
【0137】
前処理サーバ30は、リアルタイムクロック等を利用して計時処理を実行することによって、各特徴量の計算時間を計測する。例えば、前処理サーバ30は、前処理コンポーネントCmに行動データを入力した場合に計時を開始する。前処理サーバ30は、特徴量ごとに、計時を開始してから特徴量の計算が完了するまでの時間を計測し、バックグラウンドサーバ20に各特徴量の計算時間を送信する。
【0138】
取得部205により各特徴量の計算時間が取得されると、選択部201は、学習モデルにおける各特徴量の影響と、各特徴量の計算時間と、に基づいて、複数の特徴量のうちの少なくとも1つを選択する。例えば、選択部201は、学習モデルにおける影響と計算時間を総合的に評価したスコアを計算し、各特徴量のスコアに基づいて、k種類の特徴量を選択する。スコアは、所定の計算式に基づいて計算されるようにすればよく。影響が大きく計算時間が短いほどスコアが高くなる。
【0139】
例えば、選択部201は、スコアが高い順にk種類の特徴量を選択する。また例えば、選択部201は、スコアが閾値以上の特徴量を全て選択してもよい。この場合、スコアが閾値以上の特徴量の数がkの数値となる。また例えば、選択部201は、スコアが上位所定パーセントの特徴量を選択してもよい。この場合、スコアが上位所定パーセントの特徴量の数がkの数値となる。なお、選択部201による特徴量の選択方法は、上記の例に限られない。例えば、選択部201は、学習モデルにおける影響度が閾値以上の特徴量が一定数存在する場合に、計算時間が短い順に所定個数の特徴量を取得してもよい。
【0140】
変形例(2)によれば、学習モデルにおける各特徴量の影響と、各特徴量の計算時間と、に基づいて、複数の特徴量のうちの少なくとも1つを選択することにより、リアルタイム処理を高速化することができる。また、リアルタイム処理における前処理サーバ30の処理負荷を軽減することもできる。
【0141】
(3)また例えば、複数の特徴量の各々の内容が互いに関連していると、何れかが無くても学習モデルの出力結果に対して影響を与えないことがある。例えば、「平均的なアクセス場所からの距離が1km未満であるか否か」の特徴量と、「平均的なアクセス場所からの距離が5km未満であるか否か」の特徴量と、が存在していた場合には、これらの特徴量の内容は、互いに関連している。一見するとこれら2つの特徴量の影響が大きいように見えたとしても、実際には、互いに関連している特徴量については、何れか一方だけを選択すれば十分なこともある。そこで、変形例(3)では、互いに関連する特徴量については、その一部だけを選択するようにしている。
【0142】
変形例(3)のバックグラウンドサーバ20は、特定部206を含む。特定部206は、制御部21を主として実現される。特定部206は、複数の特徴量の中から、互いに関連する特徴量の組み合わせを特定する。互いに関連する特徴量とは、特徴量が示す内容が似ていることである。同じ前処理コンポーネントCmを利用して計算される特徴量は、互いに関連する特徴量といえる。例えば、特定部206は、特徴量ごとの影響度だけでなく、任意の特徴量の組み合わせごとの影響度を取得し、影響度が相対的に高い組み合わせの中に、互いに関連する特徴量が存在するか否かを判定する。例えば、特定部206は、影響度が相対的に高い組み合わせのうち、任意の特徴量を欠損値として扱って出力における影響を計算し、影響が小さい特徴量同士を互いに関連する特徴量の組み合わせとして特定する。
【0143】
選択部201は、互いに関連する特徴量の組み合わせが存在する場合には、当該組み合わせのうちの一部を選択する。互いに関連する特徴量がq種類(q:2以上の自然数)存在したとすると、選択部201は、これらq種類の特徴量の中から、q未満の個数の特徴量を選択すればよい。例えば、選択部201は、q種類の特徴量の中から、影響度が相対的に高い特徴量を選択する。また例えば、選択部201は、q種類の特徴量の中からランダムに特徴量を選択してもよい。
【0144】
変形例(3)によれば、複数の特徴量の中から、互いに関連する特徴量の組み合わせを特定し、互いに関連する特徴量の組み合わせが存在する場合には、当該組み合わせのうちの一部を選択することにより、計算する特徴量の減らすことができ、前処理サーバ30の処理負荷を軽減することもできる。
【0145】
(4)また例えば、特徴量の計算時間が長すぎると、リアルタイム処理に支障をきたすことがある。一方、リアルタイム処理の処理速度を重視すると、不正検知の精度が低下することがある。不正検知の精度と処理速度の間のトレードオフを評価するために、計算時間が長い特徴量については、欠損値として扱い、学習モデルにおける影響を評価してもよい。
【0146】
例えば、リアルタイム処理において、ある1つの前処理コンポーネントCmの処理に時間を要した場合に、タイムアウトさせて不正検知自体をしないようにしてもよいが、時間を要した前処理コンポーネントCmについては処理を中断して欠損値とした方が、不正検知の運用上好ましいことがある。このため、本変形例では、対象となる特徴量が欠損値として扱われた場合の精度低下が評価される。即ち、対象となる特徴量のみを欠損値とみなして不正検知が行われた場合に、どの程度の精度低下となるのかが評価される。
【0147】
変形例(4)のバックグラウンドサーバ20は、取得部205と判定部207を含む。取得部205については、変形例(2)で説明した通りである。判定部207は、制御部21を主として実現される。判定部207は、各特徴量の計算時間が所定時間以上であるか否かを判定する。所定時間は、閾値となりうる任意の時間であればよく、例えば、0.5秒~数秒程度であってもよいし、10秒~30秒程度は許容してもよい。所定時間の数値は、データ記憶部200に予め記録されているものとする。
【0148】
選択部201は、計算時間が所定時間以上の特徴量が存在する場合には、当該特徴量を欠損値として扱い、学習モデルにおける影響を評価する。例えば、選択部201は、計算時間が所定時間以上の特徴量は無いものとみなし、学習モデルの精度を評価する。選択部201は、当該特徴量がある場合の精度と無い場合の精度とを比較し、精度の差が閾値未満であれば、当該特徴量については選択しない。一方、選択部201は、精度の差が閾値以上であれば、当該特徴量を選択する。
【0149】
例えば、TP(True Positive)、TN(True Negative)、FP(False Positive)、及びFN(False Negative)に対しての精度の変換に関する情報を得られる場合には、選択部201は、正規の学習モデルにおける1件当たりの予測精度と、欠損となった学習モデルにおける1件当たりの予測精度と、を算出し、実際の処理速度の検証におけるタイムアウトの割合を以って、対象となる特徴量を入力した場合の予測精度を算出してもよい。
【0150】
また例えば、予測精度の誤差に対しての精度低下の情報が得られる場合には、選択部201は、対象となる特徴量の値を一定間隔(例えば、標準偏差の定数倍など)で欠損としてパラメータを振った場合に、予測対象に対してどの程度の影響度を有しているかを検証し、欠損の場合に最大又は平均でどの程度の誤差を生み出すかを算出し、実際の処理速度の検証におけるタイムアウトの割合を以って、対象となる特徴量を入力した場合の予測精度を算出してもよい。
【0151】
なお、上記の例においては、複数の特徴量が互いに依存していることも考えられる。このため、複数の特徴量の組み合わせに対して、Grid Serch等によってパラメータが振られるようにしてもよい。例えば、Grid Serchの対象には、欠損値を含めることによって、欠損によってもたらされる精度低下が正しく評価される。この点、学習プロセスに要する時間が組み合わせ的に増大するので、バックグラウンドサーバ20のリソースや計算時間等によって適宜定めるようにすればよい。
【0152】
変形例(4)によれば、計算時間が所定時間以上の特徴量が存在する場合には、当該特徴量を欠損値として扱い、学習モデルにおける影響を評価することにより、リアルタイム処理に支障をきたすような計算時間の長い特徴量を正当に評価することができる。
【0153】
(5)また例えば、上記変形例を組み合わせてもよい。
【0154】
また例えば、前処理コンポーネントCmに入力されるデータの形式は互いに異なっていてもよい。また例えば、特に前処理コンポーネントCmを用意せずに、特徴量ごとに、当該特徴量を計算するプログラムや計算式が用意されていてもよい。また例えば、実施形態では、ウェブサイトにアクセスしたユーザの不正を検知する場合について説明したが、学習モデル適用システムSは、新たに作成した学習モデルを適用する場合に適用可能であり、他の場面に適用してもよい。例えば、ユーザの不正を検知する場面以外の場面にも学習モデル適用システムSを適用可能であり、自然言語処理、機械翻訳、文章変換、又はチャットボットなどの学習モデルが用いられる場合にも適用可能である。
【0155】
また例えば、ユーザがインターネット上で商品を購入する場合の不正行為を検出する場面に学習モデル適用システムSを適用してもよい。この場合、サービス提供サーバ50は、オンラインショッピングモールのウェブサイトをユーザに提供する。ユーザは、利用登録を行い、カード番号などの決済情報を予めサービス提供サーバ50に登録しているものとする。決済情報としては、商品を購入した店舗の店舗ID、店舗名、商品の商品ID、商品名、数量、決済金額、及びカード番号といった情報が含まれるようにしてもよい。例えば、ユーザが商品を購入すると、サービス提供サーバ50は、ユーザの決済情報などを含む行動データを生成する。学習モデル適用システムSは、ユーザの決済情報などを含む行動データに基づいて、n種類の特徴量を計算し、学習モデルにおける影響が大きいk種類の特徴量を選択する。学習モデル適用システムSは、選択したk種類の特徴量を学習モデルに学習させて適用すればよい。
【0156】
また例えば、行動データに関する分類が行われる場合を説明したが、ユーザの行動以外のデータに関する分類が行われてもよい。例えば、画像データに撮影された被写体を分類する場面に学習モデル適用システムSを用いてもよい。また例えば、気象データが示す温度や湿度などに基づいて天候を分類する場面に学習モデル適用システムSを用いてもよい。また例えば、文章データの要約を作成する画面に学習モデル適用システムSを用いてもよい。他にも、任意の内容のデータに関する分類をする場面に学習モデル適用システムSを適用可能である。
【0157】
また例えば、学習モデル適用システムSに含まれるコンピュータは、
図1の例に限られない。学習モデル適用システムSには、少なくとも1つのコンピュータが含まれるようにすればよく、例えば、バックグラウンド処理とリアルタイム処理とが同じコンピュータで実現されてもよい。同様に、特徴量を計算するコンピュータと、学習モデルを作成するコンピュータと、が同じであってもよい。また例えば、
図3及び
図10で説明した機能は、任意のコンピュータで実現されるようにすればよく、各機能が1つのコンピュータで実現されてもよいし、任意の数のコンピュータで各機能が分担されてもよい。また例えば、実施形態及び変形例で説明したデータは、学習モデル適用システムS外のコンピュータによって記憶されてもよい。