(57)【要約】  学習モデル適用システム（Ｓ）の計算手段（３０２）は、学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する。選択手段（２０１）は、学習モデルにおける各特徴量の影響に基づいて、複数の特徴量のうちの少なくとも１つを選択する。適用手段（２０２）は、選択手段（２０１）により選択された特徴量に基づいて学習された学習済みの学習モデルを適用する。設定手段（２０３）は、選択手段（２０１）により選択された特徴量に基づいて、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う。
2021048902.tif 000002
【特許請求の範囲】
【請求項１】
学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する計算手段と、
前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも１つを選択する選択手段と、
前記選択手段により選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用手段と、
前記選択手段により選択された特徴量に基づいて、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定手段と、
を含むことを特徴とする学習モデル適用システム。
【請求項２】
前記計算手段は、複数の前処理コンポーネントに基づいて、前記複数の特徴量を計算し、
前記設定手段は、前記複数の前処理コンポーネントのうち、前記選択手段により選択された特徴量の計算で用いられる前処理コンポーネントを、前記学習済みの学習モデルに入力される特徴量の計算で用いるように設定する、
ことを特徴とする請求項１に記載の学習モデル適用システム。
【請求項３】
前記学習モデル適用システムは、各前処理コンポーネントに対し、互いに同じ形式のデータを入力する入力手段を更に含み、
各前処理コンポーネントは、他の前処理コンポーネントに入力されるデータと同じ形式のデータに基づいて、計算処理を実行する、
ことを特徴とする請求項２に記載の学習モデル適用システム。
【請求項４】
前記学習モデル適用システムは、新たな特徴量を計算するための新たな前処理コンポーネントを追加する追加手段を更に含み、
前記計算手段は、前記新たな前処理コンポーネントに基づいて、前記新たな特徴量を計算し、
前記設定手段は、前記選択手段により前記新たな特徴量が選択された場合には、前記新たな前処理コンポーネントを、前記学習済みの学習モデルに入力される特徴量の計算で用いるように設定する、
ことを特徴とする請求項２又は３に記載の学習モデル適用システム。
【請求項５】
前記学習モデル適用システムは、各特徴量の計算時間を取得する取得手段を更に含み、
前記選択手段は、前記学習モデルにおける各特徴量の影響と、各特徴量の計算時間と、に基づいて、前記複数の特徴量のうちの少なくとも１つを選択する、
ことを特徴とする請求項１〜４の何れかに記載の学習モデル適用システム。
【請求項６】
前記学習モデル適用システムは、前記複数の特徴量の中から、互いに関連する特徴量の組み合わせを特定する特定手段を更に含み、
前記選択手段は、前記互いに関連する特徴量の組み合わせが存在する場合には、当該組み合わせのうちの一部を選択する、
ことを特徴とする請求項１〜５の何れかに記載の学習モデル適用システム。
【請求項７】
前記学習モデル適用システムは、
各特徴量の計算時間を取得する取得手段と、
各特徴量の計算時間が所定時間以上であるか否かを判定する判定手段と、
を更に含み
前記選択手段は、計算時間が所定時間以上の特徴量が存在する場合には、当該特徴量を欠損値として扱い、前記学習モデルにおける影響を評価する、
ことを特徴とする請求項１〜６の何れかに記載の学習モデル適用システム。
【請求項８】
前記学習モデルは、ウェブサイトにおける不正を検知するためのモデルであり、
前記学習モデル適用システムは、前記ウェブサイトにユーザがアクセスした場合に、前記学習済みの学習モデルと、前記設定手段により行われた設定と、に基づいて、当該ユーザの不正を推定する推定手段を更に含み、
前記選択手段、前記適用手段、及び前記設定手段の各々の処理は、前記推定手段の処理とは異なるバックグラウンド処理として実行される、
ことを特徴とする請求項１〜７の何れかに記載の学習モデル適用システム。
【請求項９】
前記学習モデルは、ウェブサイトにおける不正を検知するためのモデルであり、
前記学習モデル適用システムは、前記ウェブサイトの管理者に対し、前記選択手段により選択された特徴量に関する情報を通知する通知手段、
を更に含むことを特徴とする請求項１〜８の何れかに記載の学習モデル適用システム。
【請求項１０】
学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する計算ステップと、
前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも１つを選択する選択ステップと、
前記選択ステップにより選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用ステップと、
前記選択ステップにより選択された特徴量に基づいて、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定ステップと、
を含むことを特徴とする学習モデル適用方法。
【請求項１１】
学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する計算手段、
前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも１つを選択する選択手段、
前記選択手段により選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用手段、
前記選択手段により選択された特徴量に基づいて、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習モデル適用システム、学習モデル適用方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、機械学習分野において、データの特徴量を計算して学習モデルに学習させる技術が知られている。例えば、特許文献１には、ウェブサイトにアクセスしたユーザの行動に関する行動データから抽出した特徴量を入力とし、当該ユーザの正当性の判定結果を出力とする教師データを学習モデルに学習させ、不正ユーザを検知する学習モデルを作成するシステムが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１９／０４９２１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、悪意のある第三者の行動が変化したとしても、学習モデルに入力される特徴量の計算に関する設定は変わらないので、行動の変化に対応することができず、学習モデルの精度が低下する可能性がある。この点、データサイエンティストに行動の変化を分析させ、特徴量の計算に関する設定を変えることも考えられる。しかし、この場合には、データサイエンティストによる分析や設定の反映に非常に手間がかかるので、学習モデルの適用が遅れることが予想される。【０００５】
本発明は上記課題に鑑みてなされたものであって、その目的は、学習モデルを迅速に適用することが可能な学習モデル適用システム、学習モデル適用方法、及びプログラムを提供することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明に係る学習モデル適用システムは、学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する計算手段と、前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも１つを選択する選択手段と、前記選択手段により選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用手段と、前記選択手段により選択された特徴量に基づいて、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定手段と、を含むことを特徴とする。【０００７】
本発明に係る学習モデル適用方法は、学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する計算ステップと、前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも１つを選択する選択ステップと、前記選択ステップにより選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用ステップと、前記選択ステップにより選択された特徴量に基づいて、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定ステップと、を含むことを特徴とする。【０００８】
本発明に係るプログラムは、学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する計算手段、前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも１つを選択する選択手段、前記選択手段により選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用手段、前記選択手段により選択された特徴量に基づいて、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定手段、としてコンピュータを機能させる。【０００９】
本発明の一態様によれば、前記計算手段は、複数の前処理コンポーネントに基づいて、前記複数の特徴量を計算し、前記設定手段は、前記複数の前処理コンポーネントのうち、前記選択手段により選択された特徴量の計算で用いられる前処理コンポーネントを、前記学習済みの学習モデルに入力される特徴量の計算で用いるように設定する、ことを特徴とする。【００１０】
本発明の一態様によれば、前記学習モデル適用システムは、各前処理コンポーネントに対し、互いに同じ形式のデータを入力する入力手段を更に含み、各前処理コンポーネントは、他の前処理コンポーネントに入力されるデータと同じ形式のデータに基づいて、計算処理を実行する、ことを特徴とする。【００１１】
本発明の一態様によれば、前記学習モデル適用システムは、新たな特徴量を計算するための新たな前処理コンポーネントを追加する追加手段を更に含み、前記計算手段は、前記新たな前処理コンポーネントに基づいて、前記新たな特徴量を計算し、前記設定手段は、前記選択手段により前記新たな特徴量が選択された場合には、前記新たな前処理コンポーネントを、前記学習済みの学習モデルに入力される特徴量の計算で用いるように設定する、ことを特徴とする。【００１２】
本発明の一態様によれば、前記学習モデル適用システムは、各特徴量の計算時間を取得する取得手段を更に含み、前記選択手段は、前記学習モデルにおける各特徴量の影響と、各特徴量の計算時間と、に基づいて、前記複数の特徴量のうちの少なくとも１つを選択する、ことを特徴とする。【００１３】
本発明の一態様によれば、前記学習モデル適用システムは、前記複数の特徴量の中から、互いに関連する特徴量の組み合わせを特定する特定手段を更に含み、前記選択手段は、前記互いに関連する特徴量の組み合わせが存在する場合には、当該組み合わせのうちの一部を選択する、ことを特徴とする。【００１４】
本発明の一態様によれば、前記学習モデル適用システムは、各特徴量の計算時間を取得する取得手段と、各特徴量の計算時間が所定時間以上であるか否かを判定する判定手段と、を更に含み、前記選択手段は、計算時間が所定時間以上の特徴量が存在する場合には、当該特徴量を欠損値として扱い、前記学習モデルにおける影響を評価する、ことを特徴とする。【００１５】
本発明の一態様によれば、前記学習モデルは、ウェブサイトにおける不正を検知するためのモデルであり、前記学習モデル適用システムは、前記ウェブサイトにユーザがアクセスした場合に、前記学習済みの学習モデルと、前記設定手段により行われた設定と、に基づいて、当該ユーザの不正を推定する推定手段を更に含み、前記選択手段、前記適用手段、及び前記設定手段の各々の処理は、前記推定手段の処理とは異なるバックグラウンド処理として実行される、ことを特徴とする。【００１６】
本発明の一態様によれば、前記学習モデルは、ウェブサイトにおける不正を検知するためのモデルであり、前記学習モデル適用システムは、前記ウェブサイトの管理者に対し、前記選択手段により選択された特徴量に関する情報を通知する通知手段、を更に含むことを特徴とする。
【発明の効果】
【００１７】
本発明によれば、学習モデルを迅速に適用することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】学習モデル適用システムの全体構成を示す図である。
【図２】学習モデル適用システムの概要を示す図である。
【図３】学習モデル適用システムで実現される機能の一例を示す機能ブロック図である。
【図４】行動データベースのデータ格納例を示す図である。
【図５】評価用の教師データセットのデータ格納例を示す図である。
【図６】本番用の教師データセットのデータ格納例を示す図である。
【図７】計算設定データのデータ格納例を示す図である。
【図８】バックグラウンド処理の一例を示すフロー図である。
【図９】リアルタイム処理の一例を示すフロー図である。
【図１０】変形例における機能ブロック図である。
【発明を実施するための形態】
【００１９】
［１．学習モデル適用システムの全体構成］
以下、本発明の実施形態に係る学習モデル適用システムの例を説明する。図１は、学習モデル適用システムの全体構成を示す図である。図１に示すように、学習モデル適用システムＳは、データベースサーバ１０、バックグラウンドサーバ２０、前処理サーバ３０、リアルタイムサーバ４０、サービス提供サーバ５０、及びユーザ端末６０を含み、これらは、インターネットなどのネットワークＮに接続可能である。
【００２０】
データベースサーバ１０は、種々のデータを記憶するサーバコンピュータである。データベースサーバ１０は、制御部１１、記憶部１２、及び通信部１３を含む。制御部１１は、少なくとも１つのプロセッサを含む。制御部１１は、記憶部１２に記憶されたプログラムやデータに従って処理を実行する。記憶部１２は、主記憶部及び補助記憶部を含む。例えば、主記憶部はＲＡＭなどの揮発性メモリであり、補助記憶部は、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、又はハードディスクなどの不揮発性メモリである。通信部１３は、有線通信又は無線通信用の通信インタフェースであり、ネットワークＮを介してデータ通信を行う。
【００２１】
バックグラウンドサーバ２０は、後述する特徴量を選択したり学習モデルを学習させたりするサーバコンピュータである。バックグラウンドサーバ２０は、制御部２１、記憶部２２、及び通信部２３を含む。制御部２１、記憶部２２、及び通信部２３の物理的構成は、それぞれ制御部１１、記憶部１２、及び通信部１３と同様であってよい。
【００２２】
前処理サーバ３０は、後述する特徴量を計算するサーバコンピュータである。前処理サーバ３０は、制御部３１、記憶部３２、及び通信部３３を含む。制御部３１、記憶部３２、及び通信部３３の物理的構成は、それぞれ制御部１１、記憶部１２、及び通信部１３と同様であってよい。
【００２３】
リアルタイムサーバ４０は、後述する学習モデルが適用されるサーバコンピュータである。リアルタイムサーバ４０は、制御部４１、記憶部４２、及び通信部４３を含む。制御部４１、記憶部４２、及び通信部４３の物理的構成は、それぞれ制御部１１、記憶部１２、及び通信部１３と同様であってよい。
【００２４】
サービス提供サーバ５０は、ウェブサイトを介して任意のサービスを提供するサーバコンピュータである。サービス提供サーバ５０は、制御部５１、記憶部５２、及び通信部５３を含む。制御部５１、記憶部５２、及び通信部５３の物理的構成は、それぞれ制御部１１、記憶部１２、及び通信部１３と同様であってよい。
【００２５】
ユーザ端末６０は、ユーザが操作するコンピュータである。例えば、ユーザ端末６０は、携帯電話機（スマートフォンを含む）、携帯情報端末（タブレット型コンピュータを含む）、又はパーソナルコンピュータ等である。本実施形態では、ユーザ端末６０は、制御部６１、記憶部６２、通信部６３、操作部６４、及び表示部６５を含む。制御部６１、記憶部６２、及び通信部６３の物理的構成は、それぞれ制御部１１、記憶部１２、及び通信部１３と同様であってよい。
【００２６】
操作部６４は、入力デバイスであり、例えば、タッチパネルやマウス等のポインティングデバイス、キーボード、又はボタン等である。操作部６４は、ユーザによる操作内容を制御部６１に伝達する。表示部６５は、例えば、液晶表示部又は有機ＥＬ表示部等である。表示部６５は、制御部６１の指示に従って画像を表示する。
【００２７】
なお、記憶部１２，２２，３２，４２，５２，６２に記憶されるものとして説明するプログラム及びデータは、ネットワークＮを介して供給されるようにしてもよい。また、上記説明した各コンピュータのハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部（例えば、光ディスクドライブやメモリカードスロット）や外部機器とデータの入出力をするための入出力部（例えば、ＵＳＢポート）が含まれていてもよい。例えば、情報記憶媒体に記憶されたプログラムやデータが読取部や入出力部を介して、各コンピュータに供給されるようにしてもよい。
【００２８】
［２．学習モデル適用システムの概要］
図２は、学習モデル適用システムＳの概要を示す図である。本実施形態では、サービス提供サーバ５０が、ニュースや動画などのウェブサイトをユーザに提供し、ウェブサイトにアクセスしたユーザの行動を分析する場面を例に挙げて、学習モデル適用システムＳの処理を説明する。例えば、学習モデル適用システムＳは、ユーザがウェブサイトにアクセスした場合に行動データを生成し、学習モデルを利用して行動データを分析し、正常ユーザ又は不正ユーザの何れかに分類する。
【００２９】
行動データは、ユーザの行動に関するデータである。行動データは、少なくとも１つの項目を含み、ユーザの行動内容が格納される。ウェブサイトにアクセスしたユーザ全員について行動データが生成されてもよいし、一部のユーザについてのみ行動データが生成されてもよい。行動データには、ある一時点における行動が示されてもよいし、一定の期間における行動の履歴が示されてもよい。例えば、行動データは、ウェブサイトにアクセスした時間、ウェブサイトにアクセスしたときのユーザの場所、又はウェブサイトにおけるユーザの操作内容などを示す。
【００３０】
正常ユーザは、正常な行動をしたユーザであり、不正ユーザではないユーザである。不正ユーザは、不正な行動をしたユーザであり、正常ユーザではないユーザである。不正な行動とは、サービス提供者又は他のユーザなどに不利益となる行動であり、例えば、ハッキング、クラッキング、悪意のある投稿、意図的に多量のアクセスを行うこと、他のユーザへの迷惑行為、サービス規約に反する行為、又は法律違反となる行為などである。
【００３１】
例えば、正常ユーザに対するサービスは制限されず、不正ユーザに対するサービスは制限される。ただし、不正ユーザに分類された場合に、直ちにサービスが制限される必要はなく、管理者の審査が行われた後にサービスが制限されてもよいし、ユーザに対する追加の認証が行われた後にサービスが制限されてもよい。
【００３２】
学習モデルは、機械学習を利用したモデルである。学習モデルは、学習器、分類器、又は分類学習器と呼ばれることもある。本実施形態では、不正ユーザであるか否かを分類するための学習モデルが用いられる。機械学習自体は、公知の種々の手法を利用可能であり、例えば、ニューラルネットワーク、強化学習、又は深層学習といった手法を利用可能である。機械学習は、教師有り学習に限られず、半教師有り学習が用いられてもよいし、教師なし学習に基づく学習モデルが用いられてもよい。
【００３３】
学習モデルには、行動データがそのまま入力されてもよいが、本実施形態では、行動データに基づいて計算された複数の特徴量が学習モデルに入力される。学習モデルは、入力された複数の特徴量に基づいて、ユーザを正常ユーザ又は不正ユーザの何れかに分類する。
【００３４】
特徴量は、学習モデルの処理対象となるデータの特徴を示す情報である。本実施形態では、行動データが処理対象となるので、特徴量は、ユーザの行動の特徴を示す情報ということができる。特徴量は、数値で示されてもよいし、文字などの他の情報で示されてもよい。特徴量は、行動データから計算可能な特徴であればよく、例えば、ユーザの平均的なアクセス場所からの距離、ユーザの前回のアクセスからの経過時間、ユーザのアクセス頻度、又はユーザによるサービスの利用状況（例えば、決済金額や決済頻度）などである。他にも例えば、特徴量は、国外からのアクセスであるか否か、又は、サービスに利用登録してから一定期間が経過しているか否か、といったような２値で表現される情報であってもよい。
【００３５】
図２に示すように、前処理サーバ３０には、特徴量の計算で用いられるｍ個（ｍ：自然数）の前処理コンポーネントＣｍが用意されている。前処理コンポーネントＣｍは、バックグラウンドサーバ２０だけでなく、リアルタイムサーバ４０でも用いられる。本実施形態では、リアルタイムサーバ４０の方が、バックグラウンドサーバ２０よりも迅速な処理が求められるので、リアルタイムサーバ４０の処理では間に合わないような特徴量計算は行われないものとする。即ち、リアルタイムサーバ４０の処理の限界は、バックグラウンドサーバ２０の処理の限界となっている。
【００３６】
本実施形態では、ｍ個の前処理コンポーネントＣｍで計算可能な特徴量をｎ種類（ｎ：自然数）とする。ｎ種類の特徴量の全てが学習で用いられてもよいが、ｎ種類の特徴量の中には、学習モデルにおける影響が小さい（不正検知の際に重要ではない）特徴量も存在する。このような特徴量が学習されると、学習モデルの精度が低下したり、処理に時間を要したりすることがある。そこで、本実施形態では、影響が相対的に大きいｋ種類（ｋ：ｎ以下の自然数）の特徴量が選択され、学習モデルに学習される。
【００３７】
本実施形態では、データベースサーバ１０は、過去にウェブサイトにアクセスした種々のユーザの行動データの履歴と、当該ユーザが不正ユーザであるか否かの診断結果と、を蓄積している。バックグラウンドサーバ２０は、リアルタイムサーバ４０に適用する学習モデルを作成するために、データベースサーバ１０から、直近の一定期間の行動データを取得する。バックグラウンドサーバ２０は、データベースサーバ１０から取得した行動データを前処理サーバ３０に送信する。バックグラウンドサーバ２０は、前処理サーバ３０に総当たり的に特徴量を計算させ、ｎ種類の特徴量を取得する（Ｓ１）。
【００３８】
バックグラウンドサーバ２０は、学習モデルにおける特徴量の影響を評価し、ｎ種類の特徴量の中からｋ種類の特徴量を選択する（Ｓ２）。特徴量の選択自体は、公知の特徴量選択手法を適用可能であり、例えば、学習モデルを使用せずにデータセットのみで完結するＦｉｌｔｅｒ−Ｍｅｔｈｏｄ、学習モデルを使用して最適な特徴量の組み合わせを探索するＷｒａｐｐｅｒ−Ｍｅｔｈｏｄ、又は、学習時に特徴量選択を行うＥｍｂｅｄｄｅｄ−Ｍｅｔｈｏｄを利用可能である。
【００３９】
本実施形態では、ｎ種類の特徴量の各々の影響度（重要度）に基づいて、ｋ種類の特徴量が選択される場合について説明する。特徴量の影響度は、公知の手法（例えば、評価対象の特徴量のみを変化させたときに、予測された結果に対してどれだけの違いをもたらすかを評価する手法、いわゆるＰｅｒｍｕｔａｔｉｏｎ  Ｉｍｐｏｒｔａｎｃｅ）を利用する場合を例に挙げる。この手法によれば、特徴量ごとに、学習モデルにおける影響度を示す数値が出力される。例えば、バックグラウンドサーバ２０は、ｎ種類の特徴量の中から、影響度の高い順にｋ種類の特徴量を選択する。
【００４０】
バックグラウンドサーバ２０は、選択されたｋ種類の特徴量に基づいて学習モデルを学習させる（Ｓ３）。ｎ種類の特徴量のうち、選択されたｋ種類の特徴量以外の特徴量は、学習モデルにおける影響が小さい。このため、本実施形態では、影響が小さい特徴量は、学習で用いられないものとするが、影響が小さい特徴量は、全く学習で用いられないのではなく、学習係数を下げる等して多少は学習させてもよい。
【００４１】
バックグラウンドサーバ２０は、リアルタイムサーバ４０に対し、学習済みの学習モデルを送信して適用する（Ｓ４）。学習済みの学習モデルには、ｋ種類の特徴量が入力されるので、不正検知の際には、ｎ種類の特徴の全てを計算する必要はない。このため、バックグラウンドサーバ２０は、前処理サーバ３０に対し、ｎ種類の全ての特徴量を計算するのではなく、ｋ種類の特徴量だけを計算するように、前処理サーバ３０に対し、特徴量の計算に関する設定を行う（Ｓ５）。学習モデルの適用と特徴量の計算に関する設定は、同時に行われてもよいし、何れか一方が先に行われてもよい。
【００４２】
以上の処理により、リアルタイムサーバ４０は、適用された学習モデルを利用して不正検知をすることができるようになる。例えば、ユーザがサービス提供サーバ５０のウェブサイトにアクセスすると、サービス提供サーバ５０は、ウェブサイトにおけるユーザの行動に基づいて行動データを生成する。リアルタイムサーバ４０は、生成された行動データを収集して前処理サーバ３０に送信する。リアルタイムサーバ４０は、前処理サーバ３０にｋ種類の特徴量を計算させて取得する（Ｓ６）。前処理サーバ３０は、バックグラウンドサーバ２０から計算を依頼された場合とは異なり、ｎ種類の特徴量の全てを計算せず、ｋ種類の特徴だけを計算することになる。図２の例では、ｎ種類の特徴量の計算で利用された前処理コンポーネントｃ２やｃｍは、ｋ種類の特徴量の計算では利用されない。このような特徴量計算の設定は、Ｓ５において行われている。
【００４３】
リアルタイムサーバ４０は、適用された学習モデルに対し、前処理サーバ３０から受信したｋ種類の特徴量を入力して不正検知を行う（Ｓ７）。リアルタイムサーバ４０は、学習モデルから不正ユーザである旨の出力を取得した場合には、ユーザに対して追加認証を求めたり、サービスの提供を制限したりする。
【００４４】
上記のような不正検知では、悪意のある第三者の行動は日々変化するので、学習モデルにおける影響が大きい特徴量の種類が変わることがある。例えば、ある時期における不正検知で重要な特徴量が、「平均的なアクセス場所からの距離」であったとしても、悪意のある第三者の行動が変わると、不正検知で重要な特徴量が、「前回のアクセスからの経過時間」に変わることがある。この場合、古い学習モデルでは行動の変化に対応することができず、ユーザの不正を検知できなくなるので、「平均的なアクセス場所からの距離」の特徴量は、学習モデルに学習させないようにして、その代わりに、「前回のアクセスからの経過時間」の特徴量を学習させる方が好ましい。
【００４５】
そこで、学習モデル適用システムＳは、定期的に、学習モデルにおける特徴量の影響を評価し、学習モデルに学習させる特徴量を選択しなおすようにしている。バックグラウンドサーバ２０が選択する特徴量の種類が変わった場合には、それに応じて前処理サーバ３０の特徴量計算の設定も変える必要がある。このため、バックグラウンドサーバ２０は、最新の特徴量を計算するように、前処理サーバ３０の設定を変更することになる。
【００４６】
例えば、ある時期ｔ１において選択されたｋ１種類の特徴量を計算するために、前処理コンポーネントｃ１，ｃ２，ｃ５が必要だったとする。この場合、時期ｔ１における前処理サーバ３０の設定は、前処理コンポーネントｃ１，ｃ２，ｃ５を利用して、ｋ１種類の特徴量を計算するように設定される。時期ｔ１において適用される学習モデルには、前処理コンポーネントｃ１，ｃ２，ｃ５を利用して計算されたｋ１種類の特徴量が入力される。
【００４７】
その後の時期ｔ２において、悪意のある第三者の行動が変化し、ｋ２種類の特徴量の影響が大きくなったとする。この場合、ｋ１種類の特徴量の組み合わせと、ｋ２種類の特徴量の組み合わせと、が完全一致せず、ｋ２種類の特徴量の計算のために、前処理コンポーネントｃ１，ｃ３，ｃ４が必要だったとする。時期ｔ２における前処理サーバ３０の設定は、前処理コンポーネントｃ１，ｃ３，ｃ４を利用して、ｋ２種類の特徴量を計算するように設定が変更される。時期ｔ２において適用される学習モデルには、前処理コンポーネントｃ１，ｃ３，ｃ４を利用して計算されたｋ２種類の特徴量が入力されることになる。
【００４８】
以上のように、本実施形態の学習モデル適用システムＳは、悪意のある第三者の行動が変化したとしても、それに応じた特徴量を選択して学習モデルを学習し、行動の変化に対応するようにしている。更に、学習モデル適用システムＳは、学習済みの学習モデルを適用するとともに、最新の学習モデルに必要な特徴量を計算できるように設定を行うことで、学習モデルの適用を迅速に行うようにしている。以降、この技術の詳細を説明する。
【００４９】
［３．学習モデル適用システムにおいて実現される機能］
図３は、学習モデル適用システムＳで実現される機能の一例を示す機能ブロック図である。ここでは、データベースサーバ１０、バックグラウンドサーバ２０、前処理サーバ３０、及びリアルタイムサーバ４０の各々で実現される機能について説明する。
【００５０】
[３−１．データベースサーバにおいて実現される機能]
図３に示すように、データベースサーバ１０では、データ記憶部１００が実現される。データ記憶部１００は、記憶部１２を主として実現される。データ記憶部１００は、学習に必要なデータを記憶する。本実施形態では、データ記憶部１００が記憶するデータの一例として、行動データベースＤＢについて説明する。
【００５１】
図４は、行動データベースＤＢのデータ格納例を示す図である。図４に示すように、行動データベースＤＢは、過去に行われた行動の履歴が蓄積されたデータベースである。例えば、行動データベースＤＢには、過去に生成された行動データと、不正ユーザであるか否かを示す不正フラグと、が関連付けられて格納される。
【００５２】
なお、図４に示す「Ｎｏ」は、行動データベースＤＢの個々のレコードを識別するレコード番号である。本実施形態では、レコード番号によって、データベース内のデータが一意に識別されるものとする。また、本実施形態では、行動データベースＤＢの中に不正フラグが格納されている場合を説明するが、行動データベースＤＢには不正フラグが格納されていなくてもよい。この場合、後述する評価用の教師データセットＤＳ１が作成されるときに、不正フラグが付与されるようにすればよい。
【００５３】
行動データには、任意の情報が格納されてよく、例えば、ユーザＩＤ、ユーザ名、ＩＰアドレス、アクセスしたウェブサイトのＵＲＬ、アクセス場所、アクセス日時、決済金額、又は決済日時等が格納される。先述したように、行動データは、これらの履歴が格納されていてもよい。行動データに行動の履歴が格納される場合には、１つの行動データによって、ユーザの平均的なアクセス場所からの距離、ユーザの前回のアクセスからの経過時間、又はユーザのアクセス頻度といった統計的な特徴量を計算可能となる。行動データに行動の履歴が格納されない場合には、複数の行動データによって、これらの統計的な特徴量が計算される。なお、行動データに含まれる情報は、これらに限られず、操作部６４からの入力内容などの他の情報を含んでもよい。
【００５４】
ユーザＩＤは、ユーザを一意に識別する情報である。ユーザ名は、ユーザが利用登録時に入力した名前である。ＩＰアドレスは、ユーザがサービス提供サーバ５０にアクセスした時に使用したユーザ端末６０のＩＰアドレスである。アクセス場所は、ユーザがサービス提供サーバ５０にアクセスした時に使用したユーザ端末６０の場所に関する情報である。アクセス場所は、ＩＰアドレス、ＧＰＳ情報（緯度経度情報又は座標情報）、無線基地局情報、又はアクセスポイント情報などを利用して推定される。アクセス日時は、ユーザがサービス提供サーバ５０にアクセスした時の日時である。決済金額は、ユーザの支払額であり、例えば、有料サービスを利用したり、商品を購入したりしたときの金額である。決済日時は、決済が行われた日時であり、例えば、サービスの利用日時、又は、商品の購入日時である。
【００５５】
不正フラグは、不正ユーザであるか否かを示す情報である。不正フラグが第１の値（オン）であれば、不正ユーザであることを意味し、不正フラグが第２の値（オフ）であれば、正当ユーザである（不正ユーザではない）ことを意味する。不正フラグの値は、学習モデルにとっての正解となる情報であり、例えば、管理者によって指定される。管理者は、全ての行動データに対し、不正フラグの値を入力してもよいし、学習モデルの判定結果を閲覧し、間違っている値だけを修正してもよい。
【００５６】
例えば、データベースサーバ１０は、リアルタイムサーバ４０又はサービス提供サーバ５０から行動データを取得し、新たなレコード番号を発行して行動データベースＤＢに格納する。管理者は、行動データベースＤＢに格納された行動データの内容を閲覧し、不正フラグの値を指定する。データベースサーバ１０は、サービス提供サーバに対するアクセスが発生した場合に、行動データを取得し、管理者が指定した不正フラグとともに行動データベースＤＢに格納する。行動データベースＤＢの内容は、バックグラウンドサーバ２０に対して提供される。
【００５７】
[３−２．バックグラウンドサーバにおいて実現される機能]
図３に示すように、バックグラウンドサーバ２０では、データ記憶部２００、選択部２０１、適用部２０２、設定部２０３、及び通知部２０４が実現される。選択部２０１、適用部２０２、及び設定部２０３の各々の処理は、リアルタイムサーバ４０における推定部４０１の処理とは異なるバックグラウンド処理として実行される。
【００５８】
本実施形態では、バックグラウンド処理は、本番用の学習モデルＭ２が適用されるコンピュータとは異なるコンピュータで実行される処理である。即ち、バックグラウンド処理とリアルタイム処理とは、互いに異なるコンピュータで実行される。なお、バックグラウンド処理は、リアルタイム処理と同じコンピュータで実行されてもよいが、この場合、リアルタイム処理は、バックグラウンド処理よりも優先的に実行される。例えば、バックグラウンド処理は、リアルタイム処理が実行される頻度が相対的に低い時間帯等に実行される。
【００５９】
［データ記憶部］
データ記憶部２００は、記憶部２２を主として実現される。データ記憶部２００は、特徴量を選択して学習モデルを適用するために必要なデータを記憶する。本実施形態では、データ記憶部２００が記憶するデータの一例として、評価用の学習モデルＭ１、評価用の教師データセットＤＳ１、本番用の学習モデルＭ２、及び本番用の教師データセットＤＳ２について説明する。
【００６０】
評価用の学習モデルＭ１は、ｎ種類の特徴量の各々を評価するために用いられるモデルである。別の言い方をすれば、評価用の学習モデルＭ１は、ｎ種類の特徴量の中から、影響が相対的に大きいｋ種類の特徴量を選択するために用いられるモデルである。本実施形態では、評価用の学習モデルＭ１は、あくまで特徴量の選択のために用いられるので、リアルタイムサーバ４０には適用されない。なお、Ｆｉｌｔｅｒ−Ｍｅｔｈｏｄのように、特徴量の影響を評価するために学習モデルを利用しない場合には、評価用の学習モデルＭ１は、データ記憶部２００に記憶されないものとする。
【００６１】
データ記憶部２００は、評価用の学習モデルＭ１のプログラム（アルゴリズム）やパラメータを記憶する。評価用の学習モデルＭ１には、評価用の教師データセットＤＳ１が学習され、例えば、評価用の学習モデルＭ１のパラメータは、評価用の教師データセットＤＳ１によって調整される。学習方法自体は、公知の手法を利用可能であり、例えば、ニューラルネットワークの学習手法を利用可能である。評価用の学習モデルＭ１は、後述する評価用の教師データの入力と出力の関係が得られるように学習される。
【００６２】
図５は、評価用の教師データセットＤＳ１のデータ格納例を示す図である。図５に示すように、評価用の教師データセットＤＳ１には、評価用の学習モデルＭ１に学習させる教師データが格納される。教師データの数は、任意であってよく、例えば、十個〜数百個程度であってもよいし、千個以上であってもよい。本実施形態では、評価用の教師データセットＤＳ１に格納される個々の教師データを、評価用の教師データと記載する。評価用の教師データは、図５の個々のレコードであり、評価用の教師データセットＤＳ１は、評価用の教師データの集まりである。
【００６３】
評価用の教師データには、評価用の学習モデルＭ１における入力と出力の関係が示されている。本実施形態では、評価用の教師データには、ｎ種類の全ての特徴量と、不正フラグと、の関係が示されている。本実施形態では、評価用の教師データは、行動データベースＤＢに格納された行動データごとに作成されるものとする。このため、行動データベースＤＢに格納された行動データと、評価用の教師データセットＤＳ１に格納された教師データと、は１対１で対応する。
【００６４】
例えば、図４の行動データベースＤＢにおける「Ｎｏ」が「１」の行動データからｎ種類の特徴量が計算され、図５の評価用データベースにおける「Ｎｏ」が「１」の教師データの特徴量として格納される。行動データに格納された不正フラグは、そのまま教師データの不正フラグとして格納される。このようにして、行動データベースＤＢのうち、直近の一定期間における行動データについて、ｎ種類の特徴量と不正フラグの関係を示す評価用の教師データが作成される。
【００６５】
なお、本実施形態では、行動データベースＤＢのうち直近の一定期間における行動データについて、評価用の教師データが作成される場合を説明するが、行動データベースＤＢの全て行動データについて、評価用の教師データが作成されてもよい。他にも例えば、行動データベースＤＢの中からランダムに選択された一部の行動データについてのみ、評価用の教師データが作成されてもよいし、特定のユーザの行動を示す行動データについてのみ、評価用の教師データが作成されてもよい。
【００６６】
本番用の学習モデルＭ２は、選択部２０１により選択されたｋ種類の特徴量によって学習された学習モデルである。別の言い方をすれば、本番用の学習モデルＭ２は、これからリアルタイムサーバ４０に適用される学習モデル、又は、既にリアルタイムサーバ４０に適用された学習モデルである。本番用の学習モデルＭ２は、最新の学習モデルということもできる。
【００６７】
データ記憶部２００は、本番用の学習モデルＭ２のプログラム（アルゴリズム）やパラメータを記憶する。本番用の学習モデルＭ２は、本番用の教師データセットＤＳ２が学習され、例えば、本番用の学習モデルＭ２のパラメータは、本番用の教師データセットＤＳ２によって調整される。学習方法自体は、公知の手法を利用可能であり、例えば、ニューラルネットワークの学習手法を利用可能である。本番用の学習モデルＭ２は、後述する本番用の教師データの入力と出力の関係が得られるように学習される。
【００６８】
図６は、本番用の教師データセットＤＳ２のデータ格納例を示す図である。図６に示すように、本番用の教師データセットＤＳ２には、本番用の学習モデルＭ２に学習させる教師データが格納される。教師データの数は、任意であってよく、例えば、十個〜数百個程度であってもよいし、千個以上であってもよい。本実施形態では、本番用の教師データセットＤＳ２に格納される個々のレコードを、本番用の教師データと記載する。本番用の教師データは、図６の個々のレコードであり、本番用の教師データセットＤＳ２は、本番用の教師データの集まりである。
【００６９】
本番用の教師データには、本番用の学習モデルＭ２における入力と出力の関係が示されている。本実施形態では、本番用の教師データには、ｋ種類の特徴量と、不正フラグと、の関係が示されている。本実施形態では、本番用の教師データは、評価用の教師データセットＤＳ１に格納された評価用の教師データごとに作成されるものとする。このため、本番用の教師データと評価用の教師データとは、１対１で対応する。
【００７０】
例えば、図５の評価用の教師データセットＤＳ１における「Ｎｏ」が「１」の教師データのｎ種類の特徴量のうち、ｋ種類の特徴量が本番用の教師データの特徴量として格納される。評価用の教師データに格納された不正フラグは、そのまま本番用の教師データの不正フラグとして格納される。このようにして、評価用の教師データセットＤＳ１に格納された全ての教師データについて、ｋ種類の特徴量と不正フラグの関係を示す本番用の教師データが作成される。
【００７１】
なお、本実施形態では、評価用の教師データセットＤＳ１に格納された全ての評価用の教師データについて、本番用の教師データが作成される場合を説明するが、評価用の教師データセットＤＳ１の一部についてのみ、本番用の教師データが作成されてもよい。他にも例えば、評価用の教師データセットＤＳ１に含まれていない行動データに基づいて、本番用の教師データが作成されてもよい。例えば、数十個程度の評価用の教師データに基づいて、ｋ種類の特徴量が選択されたうえで、数百個〜数千個程度の行動データから本番用の評価データが作成されてもよい。
【００７２】
［選択部］
選択部２０１は、制御部２１を主として実現される。選択部２０１は、学習モデルにおける各特徴量の影響に基づいて、複数の特徴量のうちの少なくとも１つを選択する。本実施形態では、評価用の学習モデルＭ１が用意されているので、選択部２０１は、評価用の学習モデルＭ１に基づいて、各特徴量の影響を評価する。
【００７３】
特徴量の影響は、学習モデルの出力に対する影響である。別の言い方をすれば、特徴量の影響は、学習モデルが着目している度合、学習モデルの出力における重要性、又は、学習モデルが出力内容を決定する際の根拠ということもできる。例えば、特徴量の影響は、Ｐｅｒｍｕｔａｔｉｏｎ  Ｉｍｐｏｒｔａｎｃｅ又はＧｉｎｉ  Ｉｍｐｏｒｔａｎｃｅ等の公知の特徴量選択手法によって計算される影響度によって示される。本実施形態では、影響度が数値によって示される場合を説明するが、特徴量の影響は、文字等の他の情報によって示されてもよい。影響度が示す数値が大きくなるほど影響が大きいことを意味する。例えば、特徴量の値を変化させたときに出力にどの程度影響を与えるかを計算することによって、特徴量の影響度が計算される。出力への影響が大きいほど影響度が示す数値が大きくなる。
【００７４】
選択部２０１は、任意の数の特徴量を選択可能であり、例えば、特徴量を１つだけ選択してもよいし、複数の特徴量を選択してもよい。更に、選択部２０１は、ｎ種類の特徴量の全てを選択してもよいし（この場合、ｎの数値はｋの数値と同じとなる）、ｎ種類の特徴量の一部だけを選択してもよい（この場合、ｋの数値はｎの数値よりも小さくなる）。
【００７５】
選択部２０１は、ｎ種類の特徴量の中で、学習モデルにおける影響が相対的に高いｋ種類の特徴量を選択する。例えば、選択部２０１は、評価用の教師データセットＤＳ１に格納されたｎ種類の特徴量の各々の影響度を取得し、取得した影響度に基づいて、ｋ種類の特徴量を選択する。例えば、選択部２０１は、影響度が高い順にｋ種類の特徴量を選択する。また例えば、選択部２０１は、影響度が閾値以上の特徴量を全て選択してもよい。この場合、影響度が閾値以上の特徴量の数がｋの数値となる。また例えば、選択部２０１は、影響度が上位所定パーセントの特徴量を選択してもよい。この場合、影響度が上位所定パーセントの特徴量の数がｋの数値となる。
【００７６】
［適用部］
適用部２０２は、制御部２１を主として実現される。適用部２０２は、選択部２０１により選択された特徴量に基づいて学習された学習済みの学習モデルを適用する。学習済みの学習モデルは、選択部２０１により選択されたｋ種類の特徴量を含む教師データに基づいて学習されたモデルである。本実施形態では、本番用の学習モデルＭ２が学習済みの学習モデルに相当する。このため、本実施形態で本番用の学習モデルＭ２と記載した箇所は、学習済みの学習モデルと読み替えることができる。
【００７７】
適用とは、学習モデルを差し替えることである。このため、適用は、エクスポート、切り替え、上書き、又は有効化ということもできる。本実施形態では、本番用の学習モデルＭ２は、リアルタイムサーバ４０に適用されるので、適用部２０２は、本番用の教師データセットＤＳ２が学習された本番用の学習モデルＭ２を、リアルタイムサーバ４０に送信することによって、本番用の学習モデルＭ２を適用する。
【００７８】
［設定部］
設定部２０３は、制御部２１を主として実現される。設定部２０３は、選択部２０１により選択された特徴量に基づいて、本番用の学習モデルＭ２に入力される特徴量の計算に関する設定を行う。
【００７９】
特徴量の計算に関する設定とは、特徴量を計算するか否かを設定することである。別の言い方をすれば、特徴量の計算に関する設定は、選択部２０１により選択された特徴量を計算し、選択部２０１により選択されなかった特徴量は計算しないようにすることである。本実施形態では、ｎ種類の特徴量のうちのｋ種類が選択されるので、設定部２０３は、ｋ種類以外の特徴量については、計算の対象から除外するように設定する。各特徴量を計算するか否かを識別する情報は、後述する計算設定データＤに示されている。このため、設定部２０３は、計算設定データＤに格納された情報を設定することによって、特徴量を計算するか否かの設定を行うことになる。
【００８０】
本実施形態では、前処理コンポーネントＣｍを利用して特徴量が計算されるので、設定部２０３は、複数の前処理コンポーネントＣｍのうち、選択部２０１により選択された特徴量の計算で用いられる前処理コンポーネントＣｍを、学習済みの学習モデルに入力される特徴量の計算で用いるように設定する。前処理コンポーネントＣｍを利用するか否かを示す情報は、後述する計算設定データＤに示されている。このため、設定部２０３は、計算設定データＤに格納された情報を設定することによって、利用する前処理コンポーネントＣｍを設定する。設定部２０３は、選択部２０１により選択された特徴量の計算に必要な前処理コンポーネントＣｍは利用するものとして設定し、それ以外の前処理コンポーネントＣｍは利用しないものとして設定する。
【００８１】
［通知部］
通知部２０４は、制御部２１を主として実現される。本実施形態の学習モデルは、ウェブサイトにおける不正を検知するためのモデルなので、通知部２０４は、ウェブサイトの管理者に対し、選択部２０１により選択された特徴量に関する情報を通知する。ウェブサイトの管理者は、サービスの提供者であり、例えば、学習モデルの分析を行うデータサイエンティストではなく、ビジネス側の担当者である。通知は、任意の媒体を利用可能であり、例えば、電子メール、メッセージアプリ、ＳＮＳ、ＳＭＳ、チャット、又は電子掲示板等を利用すればよい。
【００８２】
特徴量に関する情報とは、選択部２０１により選択された特徴量の内容を示す情報である。例えば、「平均的なアクセス場所からの距離」の特徴量が選択された場合には、通知部２０４は、「平均的なアクセス場所からの距離」が選択されたことを通知し、「前回のアクセスからの経過時間」の特徴量が選択された場合には、通知部２０４は、「前回のアクセスからの経過時間」が選択されたことを通知する。ウェブサイトの管理者は、通知された特徴量の内容を見てウェブサイトのデザインを変更したり、サービスを提供する際の仕様変更をしたりする。
【００８３】
[３−３．前処理サーバにおいて実現される機能]
図３に示すように、前処理サーバ３０では、データ記憶部３００、入力部３０１、及び計算部３０２が実現される。
【００８４】
［データ記憶部］
データ記憶部３００は、記憶部３２を主として実現される。データ記憶部３００は、特徴量の計算に必要なデータを記憶する。本実施形態では、データ記憶部３００が記憶するデータの一例として、計算設定データＤと前処理コンポーネントＣｍについて説明する。なお、図３では、前処理コンポーネントＣｍを１つだけ示しているが、実際には、ｍ個の前処理コンポーネントＣｍが記憶される。データ記憶部３００は、前処理コンポーネントＣｍに含まれるプログラムや計算式などを記憶する。
【００８５】
図７は、計算設定データＤのデータ格納例を示す図である。図７に示すように、計算設定データＤには、前処理サーバ３０が計算可能な特徴量ごとに、その計算方法と、選択フラグと、が格納される。別の言い方をすれば、計算設定データＤには、ｎ種類の特徴量の各々について、計算方法と選択フラグとが格納される。
【００８６】
例えば、計算方法としては、特徴量の計算で用いられる前処理コンポーネントＣｍを識別する情報が格納される。本実施形態では、前処理コンポーネントＣｍは、特徴量の計算に必要な前処理を実行するので、計算方法としては、前処理コンポーネントＣｍから出力された値から特徴量を計算するための計算式が格納される。前処理コンポーネントＣｍが特徴量そのものを計算する場合には、前処理コンポーネントＣｍから出力された特徴量を取得すればよいので、特に計算式は計算設定データＤに示されない。
【００８７】
選択フラグは、選択部２０１により選択されたか否かを示す情報である。別の言い方をすれば、選択フラグは、ｋ種類の特徴量に含まれるか否かを示す情報である。選択フラグが第１の値（オン）であれば、選択部２０１により選択されたことを意味し、選択フラグが第２の値（オフ）であれば、選択部２０１により選択されていないことを意味する。選択フラグの値は、後述する設定部２０３によって設定される。
【００８８】
［入力部］
入力部３０１は、制御部３１を主として実現される。入力部３０１は、前処理コンポーネントＣｍに対し、特徴量の計算に必要なデータを入力する。本実施形態では、各行動データが同じ形式であり、入力部３０１は、各前処理コンポーネントＣｍに対し、互いに同じ形式のデータを入力する。例えば、入力部３０１は、処理対象の行動データをそのままの形式で各前処理コンポーネントＣｍに入力する。また例えば、行動データを加工する場合には、入力部３０１は、同じ加工が施された行動データを、各前処理コンポーネントＣｍに入力する。
【００８９】
各前処理コンポーネントＣｍは、他の前処理コンポーネントＣｍに入力されるデータと同じ形式のデータに基づいて、計算処理を実行する。前処理コンポーネントＣｍは、予め自身に定められた計算式に基づいて計算処理を実行すればよく、例えば、集計処理、平均値の算出処理、標準偏差の算出処理、確率分布の作成処理、又はその他統計値の算出処理などを実行する。前処理コンポーネントＣｍが特徴量そのものを計算する場合には、前処理コンポーネントＣｍは、特徴量の計算処理を実行する。
【００９０】
［計算部］
計算部３０２は、制御部３１を主として実現される。計算部３０２は、学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する。学習用データは、学習モデルを学習させるために用いられるデータであればよく、教師データそのものを意味してもよいし、教師データを作成する元となるデータを意味してもよい。本実施形態では、行動データが学習用データに相当する。このため、本実施形態で行動データと記載した箇所は、学習用データと読み替えることができる。
【００９１】
計算部３０２は、予め定められた計算式に基づいて、特徴量を計算すればよい。本実施形態では、計算設定データＤに特徴量の計算方法が定められているので、計算部３０２は、計算設定データＤに示された計算方法に基づいて、特徴量を計算する。本実施形態では、複数の前処理コンポーネントＣｍが用意されているので、計算部３０２は、複数の前処理コンポーネントＣｍに基づいて、複数の特徴量を計算することになる。
【００９２】
例えば、計算部３０２は、バックグラウンドサーバ２０から計算の要求を受け付けた場合には、ｎ種類の特徴量の全てを計算する。即ち、計算部３０２は、前処理コンポーネントＣｍを利用して計算可能な特徴量を総当たり的に計算する。一方、計算部３０２は、リアルタイムサーバ４０から計算の要求を受け付けた場合には、ｋ種類の特徴量を計算し、それ以外の特徴量は計算しない。どの特徴量を計算すべきかは、計算設定データＤに示されているので、計算部３０２は、計算設定データＤを参照して計算すべき特徴量を特定し、当該特定した特徴量を計算する。
【００９３】
[３−４．リアルタイムサーバにおいて実現される機能]
図３に示すように、リアルタイムサーバ４０では、データ記憶部４００及び推定部４０１が実現される。
【００９４】
［データ記憶部］
データ記憶部４００は、記憶部４２を主として実現される。データ記憶部４００は、本番用の学習モデルＭ２を記憶する。データ記憶部４００に記憶される本番用の学習モデルＭ２は、データ記憶部２００に記憶される本番用の学習モデルＭ２と同様のため、説明を省略する。適用部２０３により新たな本番用の学習モデルＭ２が適用されると、データ記憶部４００に記憶された本番用の学習モデルＭ２が差し替えられることになる。
【００９５】
［推定部］
推定部４０１は、制御部４１を主として実現される。本実施形態の学習モデルは、ウェブサイトにおける不正を検知するためのモデルであり、推定部４０１は、ウェブサイトにユーザがアクセスした場合に、学習済みの学習モデルと、設定部２０３により行われた設定と、に基づいて、当該ユーザの不正を推定する。例えば、サービス提供サーバ５０は、ウェブサイトにアクセスしたユーザの行動データを生成し、リアルタイムサーバ４０に送信する。推定部４０１は、ウェブサイトにアクセスしたユーザの行動データの特徴量の計算を、前処理サーバ３０に依頼する。推定部４０１は、前処理サーバ３０から受信したｋ種類の特徴量を、本番用の学習モデルＭ２に入力する。本番用の学習モデルＭ２は、入力された特徴量に基づいて、ユーザを不正ユーザ又は正常ユーザの何れかに分類する。推定部４０１は、本番用の学習モデルＭ２から出力された分類結果を取得し、ユーザの不正を推定する。
【００９６】
［４．本実施形態において実行される処理］
次に、学習モデル適用システムＳにおいて実行される処理について説明する。本実施形態では、特徴量を選択して本番用の学習モデルＭ２を適用するバックグラウンド処理と、ウェブサイトにアクセスしたユーザの不正を検知するリアルタイム処理と、について説明する。
【００９７】
［４−１．バックグラウンド処理］
図８は、バックグラウンド処理の一例を示すフロー図である。図８に示すバックグラウンド処理は、制御部２１，３１が、それぞれ記憶部２２，３２に記憶されたプログラムに従って動作することによって実行される。下記に説明する処理は、図３に示す機能ブロックにより実行される処理の一例である。なお、バックグラウンド処理が実行されるのは、任意のタイミングであればよく、所定の日時が訪れた場合に実行されてもよいし、現状の本番用の学習モデルＭ２の精度が低下した場合に実行されてもよい。
【００９８】
図８に示すように、まず、バックグラウンドサーバ２０は、データベースサーバ１０から、行動データベースＤＢに格納された行動データを取得する（Ｓ１００）。Ｓ１００においては、バックグラウンドサーバ２０は、データベースサーバ１０に対し、行動データの取得要求を送信する。データベースサーバ１０は、取得要求を受信すると、行動データベースＤＢのうち、直近の所定期間の行動データを取得し、バックグラウンドサーバ２０に対して送信する。
【００９９】
バックグラウンドサーバ２０は、Ｓ１００で取得した行動データに基づいて、前処理サーバ３０に対し、特徴量の計算依頼を送信する（Ｓ１０１）。Ｓ１０１における計算依頼は、所定形式のデータが送信されることによって行われるようにすればよく、例えば、Ｓ１００で取得した行動データが含まれているものとする。
【０１００】
前処理サーバ３０は、バックグラウンドサーバ２０から計算依頼を受信すると、全ての前処理コンポーネントＣｍに対し、計算依頼に含まれる複数の行動データの各々を入力する（Ｓ１０２）。Ｓ１０２においては、前処理サーバ３０は、全ての前処理コンポーネントＣｍに対し、行動データをそのまま入力するので、互いに同じ形式の行動データが全ての前処理コンポーネントＣｍに入力されることになる。
【０１０１】
前処理サーバ３０は、計算設定データＤに定義された計算方法と、前処理コンポーネントＣｍから出力された値と、に基づいて、ｎ種類の全ての特徴量を計算する（Ｓ１０３）。Ｓ１０３においては、前処理サーバ３０は、特徴量ごとに、前処理コンポーネントＣｍから出力された値を所定の計算式に代入することによって、特徴量の値を計算する。なお、前処理コンポーネントＣｍが特徴量そのものを計算する場合には、前処理サーバ３０は、計算式の代入は行わず、前処理コンポーネントＣｍから出力された値を、そのまま特徴量として取得する。
【０１０２】
前処理サーバ３０は、バックグラウンドサーバ２０に対し、Ｓ１０３で計算したｎ種類の特徴量を送信する（Ｓ１０４）。
【０１０３】
バックグラウンドサーバ２０は、ｎ種類の特徴量を受信すると、評価用の教師データを作成し、評価用の教師データセットＤＳ１に追加する（Ｓ１０５）。Ｓ１０５においては、バックグラウンドサーバ２０は、前処理サーバ３０から受信したｎ種類の特徴量を入力とし、行動データの不正フラグを出力とする教師データを作成する。
【０１０４】
バックグラウンドサーバ２０は、Ｓ１００で取得した全ての行動データについて、ｎ種類の特徴量を取得したか否かを判定する（Ｓ１０６）。まだ特徴量を取得していない行動データが存在すると判定された場合（Ｓ１０６；Ｎ）、Ｓ１０１の処理に戻り、次の行動データの特徴量が計算される。
【０１０５】
一方、全ての行動データの特徴量が取得されたと判定された場合（Ｓ１０６；Ｙ）、バックグラウンドサーバ２０は、評価用の教師データセットＤＳ１に基づいて、評価用の学習モデルＭ１を学習させる（Ｓ１０７）。Ｓ１０７においては、バックグラウンドサーバ２０は、公知の学習アルゴリズムに基づいて、評価用の教師データセットＤＳ１が示す入力と出力の関係が得られるように、評価用の学習モデルＭ１のパラメータを調整する。
【０１０６】
バックグラウンドサーバ２０は、評価用の学習モデルＭ１における各特徴量の影響に基づいて、ｎ種類の特徴量の中からｋ種類の特徴量を選択する（Ｓ１０８）。Ｓ１０８においては、バックグラウンドサーバ２０は、ｎ種類の特徴量の各々の影響度を取得し、影響度が高い順にｋ種類の特徴量を選択する。
【０１０７】
バックグラウンドサーバ２０は、Ｓ１０８で選択したｋ種類の特徴量に基づいて、本番用の教師データを作成する（Ｓ１０９）。Ｓ１０９においては、バックグラウンドサーバ２０は、評価用の教師データごとに、当該教師データのｎ種類の特徴量のうちのｋ種類の特徴量を入力とし、当該教師データの不正フラグを出力とする教師データを作成する。
【０１０８】
バックグラウンドサーバ２０は、本番用の教師データセットＤＳ２に基づいて、本番用の学習モデルＭ２を学習させる（Ｓ１１０）。Ｓ１１０においては、バックグラウンドサーバ２０は、公知の学習アルゴリズムに基づいて、本番用の教師データセットＤＳ２が示す入力と出力の関係が得られるように、本番用の学習モデルＭ２のパラメータを調整する。
【０１０９】
バックグラウンドサーバ２０は、リアルタイムサーバ４０に対し、本番用の学習モデルＭ２を適用する（Ｓ１１１）。Ｓ１１１においては、バックグラウンドサーバ２０は、リアルタイムサーバ４０に対し、本番用の学習モデルＭ２を送信する。リアルタイムサーバ４０は、本番用の学習モデルＭ２を受信すると、それまで使用していた本番用の学習モデルＭ２を、新たに受信した本番用の学習モデルＭ２に差し替える。
【０１１０】
バックグラウンドサーバ２０は、前処理サーバ３０に対し、ｋ種類の特徴量の計算に関する設定を行い（Ｓ１１２）、本処理は終了する。Ｓ１１２においては、バックグラウンドサーバ２０は、前処理サーバ３０に対し、ｋ種類の特徴量の各々を識別する情報を含む設定指示を送信する。前処理サーバ３０は、設定指示を受信すると、計算設定データＤの選択フラグの値を更新する。これにより、リアルタイムサーバ４０から計算要求を受信した際に、ｋ種類の特徴量が計算されるようになる。
【０１１１】
［４−２．リアルタイム処理］
図９は、リアルタイム処理の一例を示すフロー図である。図９に示すリアルタイム処理は、制御部３１，４１，５１，６１が、それぞれ記憶部３２，４２，５２，６２に記憶されたプログラムに従って動作することによって実行される。下記に説明する処理は、図３に示す機能ブロックにより実行される処理の一例である。
【０１１２】
図９に示すように、まず、ユーザ端末６０は、サービス提供サーバ５０が提供するウェブサイトにアクセスする（Ｓ２００）。Ｓ２００においては、ユーザが操作部６４を操作してウェブサイトのＵＲＬを入力したり、ＵＲＬ入りのリンクを指定したりすると、ユーザ端末６０は、ウェブサイトにアクセスする。なお、ユーザは、サービス提供サーバ５０に対してログイン済みであり、サービス提供サーバ５０は、どのユーザがアクセスしているかを特定できるようになっている。
【０１１３】
以降、サービス提供サーバ５０とユーザ端末６０との間で、サービスの提供処理が実行される（Ｓ２０１）。Ｓ２０１においては、ユーザの操作に応じて、ウェブサイトを介してニュースや動画などがユーザに提供される。ユーザが有料サービスの購入操作をした場合には、予めサービス提供サーバ５０に登録されたクレジットカード等の決済情報に基づいて、決済処理が実行される。サービス提供サーバ５０は、ユーザ端末６０からユーザの操作内容等を受信すると、ユーザの行動として記録する。
【０１１４】
サービス提供サーバ５０は、Ｓ２０１の処理結果に基づいて、ウェブサイトにアクセスしたユーザの行動データを生成し、リアルタイムサーバ４０に対し、行動データの解析要求を送信する（Ｓ２０２）。
【０１１５】
リアルタイムサーバ４０は、解析要求を受信すると、前処理サーバ３０に対し、特徴量の計算依頼を送信する（Ｓ２０３）。Ｓ２０３における計算依頼は、所定形式のデータが送信されることによって行われるようにすればよく、例えば、サービス提供サーバ５０から受信した行動データが含まれているものとする。
【０１１６】
前処理サーバ３０は、リアルタイムサーバ４０から計算依頼を受信すると、計算設定データＤに基づいて、ｋ種類の特徴量を計算するための所定の前処理コンポーネントＣｍに対し、計算依頼に含まれる行動データを入力する（Ｓ２０４）。Ｓ２０４においては、前処理サーバ３０は、ｋ種類の特徴量を計算するための前処理コンポーネントＣｍに対し、行動データをそのまま入力するので、互いに同じ形式の行動データが前処理コンポーネントＣｍに入力されることになる。
【０１１７】
前処理サーバ３０は、計算設定データＤに定義された計算方法と、前処理コンポーネントＣｍから出力された値と、に基づいて、ｋ種類の特徴量を計算する（Ｓ２０５）。Ｓ２０５においては、前処理サーバ３０は、特徴量ごとに、前処理コンポーネントＣｍから出力された値を所定の計算式に代入することによって、特徴量の値を計算する。なお、前処理コンポーネントＣｍが特徴量そのものを計算する場合には、前処理サーバ３０は、計算式の代入は行わず、前処理コンポーネントＣｍから出力された値を、そのまま特徴量として取得する。
【０１１８】
前処理サーバ３０は、リアルタイムサーバ４０に対し、Ｓ２０５で計算したｋ種類の特徴量を送信する（Ｓ２０６）。
【０１１９】
バックグラウンドサーバ２０は、計算依頼した行動データのｋ種類の特徴量を受信すると、現状の本番用の学習モデルＭ２に入力し、学習モデルからの出力を取得する（Ｓ２０７）。Ｓ２０７においては、バックグラウンドサーバ２０は、ｋ種類の特徴量をｋ次元のベクトルとして、本番用の学習モデルＭ２に入力する。本番用の学習モデルＭ２は、入力されたｋ次元のベクトルに基づいて、不正ユーザ又は正常ユーザの何れかを示す値を出力する。
【０１２０】
制御部４１は、本番用の学習モデルＭ２からの出力に基づいて、所定の処理を実行し（Ｓ２０８）、本処理は終了する。Ｓ２０８においては、制御部４１は、本番用の学習モデルＭ２からの出力が不正ユーザを示す場合に、管理者にその旨を通知したり、ユーザに対して追加認証を求めたりする。一方、本番用の学習モデルＭ２からの出力が正常ユーザを示す場合には、特にサービスの制限等は行われない。
【０１２１】
本実施形態の学習モデル適用システムＳによれば、学習モデルにおける各特徴量の影響に基づいて、少なくとも１つの特徴量を選択して本番用の学習モデルＭ２を適用し、本番用の学習モデルＭ２に入力される特徴量の計算に関する設定を行うことによって、本番用の学習モデルＭ２を迅速に適用することができる。例えば、データサイエンティストに特徴量の分析や設定作業をさせる手間を省くことができ、悪意のある第三者の行動の変化等に迅速に対応することができる。また、学習モデルにおける影響が相対的に小さい特徴量を、学習の対象から除外する場合には、学習モデルにおける影響が相対的に大きい特徴量に絞って学習させることができる。その結果、学習モデルの精度を高めることができる。更に、学習モデルにおける影響が相対的に小さい特徴量は、本番用の学習モデルＭ２には入力されないので、計算対象から除外することができる。その結果、不要な特徴量の計算をする必要がなくなり、前処理サーバ３０の処理負荷を軽減させることができる。また、学習モデルに入力される特徴量の数を絞ることにより、学習モデルの処理速度を高速化することもできる。
【０１２２】
また、学習モデル適用システムＳは、複数の前処理コンポーネントＣｍのうち、選択された特徴量の計算で用いられる前処理コンポーネントＣｍを、学習済みの学習モデルに入力される特徴量の計算で用いるように設定することによって、必要な特徴量を計算するための設定を正確に行うことができる。また、不要な前処理コンポーネントＣｍについては、処理を実行させないように設定することによって、不要な処理が実行されることを防止し、前処理サーバ３０の処理負荷を軽減させることができる。
【０１２３】
また、学習モデル適用システムＳは、各前処理コンポーネントＣｍに対し、互いに同じ形式のデータを入力することによって、特徴量の計算を高速化することができる。例えば、前処理コンポーネントＣｍごとに、入力されるデータの形式が異なると、データを加工する処理を実行する必要があるが、学習モデル適用システムＳは、そのような処理を実行する必要がないので、特徴量の計算を高速化することができる。
【０１２４】
また、学習モデル適用システムＳは、特徴量の選択、学習モデルの適用、及び特徴量計算の設定の各々を、バックグラウンド処理として実行することによって、リアルタイム処理に支障をきたすことなく、これらの処理を実行することができる。その結果、例えば、リアルタイム処理で実行される不正検知を止めることなく、最新の傾向に合った学習モデルを作成し、リアルタイム処理の精度（不正検知の精度）を高めることができる。
【０１２５】
また、学習モデル適用システムＳは、ウェブサイトの管理者に対し、選択された特徴量に関する情報を通知することにより、管理者による対策を促すことができる。例えば、悪意のある第三者の行動が変化し、学習モデルにおける影響が大きい特徴量が変化した場合に、その変化を管理者に伝えることにより、ウェブサイトの内容を変更させたり、サービス提供サーバ５０が実行するプログラムの設計変更をさせたりするなどの対策を講じさせることができる。
【０１２６】
［５．変形例］
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【０１２７】
図１０は、変形例における機能ブロック図である。図１０に示すように、以降説明する変形例では、実施形態で説明した機能に加えて、取得部２０５、特定部２０６、判定部２０７、及び追加部３０３が実現される。
【０１２８】
（１）例えば、悪意のある第三者の行動が変化した場合に、既存の特徴量では、精度の高い不正検知を実現できないことがある。この場合、既存の前処理コンポーネントＣｍでは計算できない新たな特徴量を計算し、悪意のある第三者の行動の変化に対応する必要がある。そこで、新たな特徴量を計算するための新たな前処理コンポーネントが前処理サーバ３０に追加されるようにしてもよい。
【０１２９】
変形例（１）の前処理サーバ３０は、追加部３０３を含む。追加部３０３は、制御部３１を主として実現される。追加部３０３は、新たな特徴量を計算するための新たな前処理コンポーネントを追加する。
【０１３０】
新たな特徴量は、既存の前処理コンポーネントＣｍでは計算できない特徴量である。別の言い方をすれば、新たな特徴量は、ｎ種類の特徴量には含まれない特徴量である。新たな前処理コンポーネントは、学習モデル適用システムＳにおける不正検知を担当する担当者によって作成され、既存の前処理コンポーネントＣｍとは異なる処理を実行するコンポーネントである。新たな前処理コンポーネントは、新たな特徴量そのものを計算してもよいし、新たな特徴量を計算するために必要な集計処理等を実行してもよい。
【０１３１】
例えば、追加部３０３は、データ記憶部３００に、新たな前処理コンポーネントを記録する。また例えば、追加部３０３は、計算設定データに対し、新たな特徴量を計算するための設定を行う。追加部３０３は、新たな特徴量の計算方法を計算設定データに格納する。新たな前処理コンポーネント及び新たな特徴量の計算方法は、不正検知の担当者の端末等からアップロードされるようにすればよい。なお、新たな特徴量は、適用中の本番用の学習モデルＭ２には入力されないので、選択フラグは、オフとなる。
【０１３２】
追加部３０３による設定が完了すると、新たな前処理コンポーネントを利用して新たな特徴量を計算することができるようになる。計算部３０２は、新たな前処理コンポーネントに基づいて、新たな特徴量を計算する。特徴量の計算自体は、実施形態で説明した通りである。計算部３０２は、バックグラウンド処理において、新たな特徴量を計算する。計算部３０２が計算する新たな特徴量は、１種類であってもよいし、複数種類であってもよい。新たな特徴量をｐ種類（ｐ：自然数）とすると、バックグラウンド処理では、ｎ＋ｐ種類の特徴量が計算されるようになる。
【０１３３】
設定部２０３は、選択部２０１により新たな特徴量が選択された場合には、新たな前処理コンポーネントを、本番用の学習モデルＭ２に入力される特徴量の計算で用いるように設定する。設定部２０３の処理自体は、実施形態で説明した通りであり、例えば、設定部２０３は、選択部２０１により新たな特徴量が選択された場合に、計算設定データＤの選択フラグをオンにすることによって、設定を行うようにすればよい。
【０１３４】
変形例（１）によれば、新たな特徴量が選択された場合には、新たな前処理コンポーネントを、学習済みの学習モデルに入力される特徴量の計算で用いるように設定することにより、学習モデルの精度を高めることができる。例えば、悪意のある第三者の行動が変化し、既存の特徴量では不正検知をすることが難しくなったとしても、前処理コンポーネントを追加して新たな特徴量の計算設定をしておけば、バックグラウンド処理で影響の大きさが判定されて選択されるので、行動の変化に対応した学習モデルを容易に作成することができる。
【０１３５】
（２）また例えば、リアルタイム処理では、迅速な処理が求められるので、特徴量の計算に時間がかかると、リアルタイム処理に支障をきたすことがある。このため、学習モデルにおける特徴量の影響だけでなく、特徴量の計算のために必要な計算時間も考慮して、特徴量が選択されるようにしてもよい。例えば、影響が同程度の特徴量が多数存在した場合には、計算時間が短い特徴量が優先的に選択されるようにしてもよい。
【０１３６】
変形例（２）のバックグラウンドサーバ２０は、取得部２０５を含む。取得部２０５は、制御部２１を主として実現される。取得部２０５は、各特徴量の計算時間を取得する。特徴量の計算時間は、特徴量の計算を開始してから終了するまでの時間である。例えば、取得部２０５は、前処理サーバ３０に各特徴量の計算時間を計測させ、前処理サーバ３０から計測結果を取得する。
【０１３７】
前処理サーバ３０は、リアルタイムクロック等を利用して計時処理を実行することによって、各特徴量の計算時間を計測する。例えば、前処理サーバ３０は、前処理コンポーネントＣｍに行動データを入力した場合に計時を開始する。前処理サーバ３０は、特徴量ごとに、計時を開始してから特徴量の計算が完了するまでの時間を計測し、バックグラウンドサーバ２０に各特徴量の計算時間を送信する。
【０１３８】
取得部２０５により各特徴量の計算時間が取得されると、選択部２０１は、学習モデルにおける各特徴量の影響と、各特徴量の計算時間と、に基づいて、複数の特徴量のうちの少なくとも１つを選択する。例えば、選択部２０１は、学習モデルにおける影響と計算時間を総合的に評価したスコアを計算し、各特徴量のスコアに基づいて、ｋ種類の特徴量を選択する。スコアは、所定の計算式に基づいて計算されるようにすればよく。影響が大きく計算時間が短いほどスコアが高くなる。
【０１３９】
例えば、選択部２０１は、スコアが高い順にｋ種類の特徴量を選択する。また例えば、選択部２０１は、スコアが閾値以上の特徴量を全て選択してもよい。この場合、スコアが閾値以上の特徴量の数がｋの数値となる。また例えば、選択部２０１は、スコアが上位所定パーセントの特徴量を選択してもよい。この場合、スコアが上位所定パーセントの特徴量の数がｋの数値となる。なお、選択部２０１による特徴量の選択方法は、上記の例に限られない。例えば、選択部２０１は、学習モデルにおける影響度が閾値以上の特徴量が一定数存在する場合に、計算時間が短い順に所定個数の特徴量を取得してもよい。
【０１４０】
変形例（２）によれば、学習モデルにおける各特徴量の影響と、各特徴量の計算時間と、に基づいて、複数の特徴量のうちの少なくとも１つを選択することにより、リアルタイム処理を高速化することができる。また、リアルタイム処理における前処理サーバ３０の処理負荷を軽減することもできる。
【０１４１】
（３）また例えば、複数の特徴量の各々の内容が互いに関連していると、何れかが無くても学習モデルの出力結果に対して影響を与えないことがある。例えば、「平均的なアクセス場所からの距離が１ｋｍ未満であるか否か」の特徴量と、「平均的なアクセス場所からの距離が５ｋｍ未満であるか否か」の特徴量と、が存在していた場合には、これらの特徴量の内容は、互いに関連している。一見するとこれら２つの特徴量の影響が大きいように見えたとしても、実際には、互いに関連している特徴量については、何れか一方だけを選択すれば十分なこともある。そこで、変形例（３）では、互いに関連する特徴量については、その一部だけを選択するようにしている。
【０１４２】
変形例（３）のバックグラウンドサーバ２０は、特定部２０６を含む。特定部２０６は、制御部２１を主として実現される。特定部２０６は、複数の特徴量の中から、互いに関連する特徴量の組み合わせを特定する。互いに関連する特徴量とは、特徴量が示す内容が似ていることである。同じ前処理コンポーネントＣｍを利用して計算される特徴量は、互いに関連する特徴量といえる。例えば、特定部２０６は、特徴量ごとの影響度だけでなく、任意の特徴量の組み合わせごとの影響度を取得し、影響度が相対的に高い組み合わせの中に、互いに関連する特徴量が存在するか否かを判定する。例えば、特定部２０６は、影響度が相対的に高い組み合わせのうち、任意の特徴量を欠損値として扱って出力における影響を計算し、影響が小さい特徴量同士を互いに関連する特徴量の組み合わせとして特定する。
【０１４３】
選択部２０１は、互いに関連する特徴量の組み合わせが存在する場合には、当該組み合わせのうちの一部を選択する。互いに関連する特徴量がｑ種類（ｑ：２以上の自然数）存在したとすると、選択部２０１は、これらｑ種類の特徴量の中から、ｑ未満の個数の特徴量を選択すればよい。例えば、選択部２０１は、ｑ種類の特徴量の中から、影響度が相対的に高い特徴量を選択する。また例えば、選択部２０１は、ｑ種類の特徴量の中からランダムに特徴量を選択してもよい。
【０１４４】
変形例（３）によれば、複数の特徴量の中から、互いに関連する特徴量の組み合わせを特定し、互いに関連する特徴量の組み合わせが存在する場合には、当該組み合わせのうちの一部を選択することにより、計算する特徴量の減らすことができ、前処理サーバ３０の処理負荷を軽減することもできる。
【０１４５】
（４）また例えば、特徴量の計算時間が長すぎると、リアルタイム処理に支障をきたすことがある。一方、リアルタイム処理の処理速度を重視すると、不正検知の精度が低下することがある。不正検知の精度と処理速度の間のトレードオフを評価するために、計算時間が長い特徴量については、欠損値として扱い、学習モデルにおける影響を評価してもよい。
【０１４６】
例えば、リアルタイム処理において、ある１つの前処理コンポーネントＣｍの処理に時間を要した場合に、タイムアウトさせて不正検知自体をしないようにしてもよいが、時間を要した前処理コンポーネントＣｍについては処理を中断して欠損値とした方が、不正検知の運用上好ましいことがある。このため、本変形例では、対象となる特徴量が欠損値として扱われた場合の精度低下が評価される。即ち、対象となる特徴量のみを欠損値とみなして不正検知が行われた場合に、どの程度の精度低下となるのかが評価される。
【０１４７】
変形例（４）のバックグラウンドサーバ２０は、取得部２０５と判定部２０７を含む。取得部２０５については、変形例（２）で説明した通りである。判定部２０７は、制御部２１を主として実現される。判定部２０７は、各特徴量の計算時間が所定時間以上であるか否かを判定する。所定時間は、閾値となりうる任意の時間であればよく、例えば、０．５秒〜数秒程度であってもよいし、１０秒〜３０秒程度は許容してもよい。所定時間の数値は、データ記憶部２００に予め記録されているものとする。
【０１４８】
選択部２０１は、計算時間が所定時間以上の特徴量が存在する場合には、当該特徴量を欠損値として扱い、学習モデルにおける影響を評価する。例えば、選択部２０１は、計算時間が所定時間以上の特徴量は無いものとみなし、学習モデルの精度を評価する。選択部２０１は、当該特徴量がある場合の精度と無い場合の精度とを比較し、精度の差が閾値未満であれば、当該特徴量については選択しない。一方、選択部２０１は、精度の差が閾値以上であれば、当該特徴量を選択する。
【０１４９】
例えば、ＴＰ（Ｔｒｕｅ  Ｐｏｓｉｔｉｖｅ）、ＴＮ（Ｔｒｕｅ  Ｎｅｇａｔｉｖｅ）、ＦＰ（Ｆａｌｓｅ  Ｐｏｓｉｔｉｖｅ）、及びＦＮ（Ｆａｌｓｅ  Ｎｅｇａｔｉｖｅ）に対しての精度の変換に関する情報を得られる場合には、選択部２０１は、正規の学習モデルにおける１件当たりの予測精度と、欠損となった学習モデルにおける１件当たりの予測精度と、を算出し、実際の処理速度の検証におけるタイムアウトの割合を以って、対象となる特徴量を入力した場合の予測精度を算出してもよい。
【０１５０】
また例えば、予測精度の誤差に対しての精度低下の情報が得られる場合には、選択部２０１は、対象となる特徴量の値を一定間隔（例えば、標準偏差の定数倍など）で欠損としてパラメータを振った場合に、予測対象に対してどの程度の影響度を有しているかを検証し、欠損の場合に最大又は平均でどの程度の誤差を生み出すかを算出し、実際の処理速度の検証におけるタイムアウトの割合を以って、対象となる特徴量を入力した場合の予測精度を算出してもよい。
【０１５１】
なお、上記の例においては、複数の特徴量が互いに依存していることも考えられる。このため、複数の特徴量の組み合わせに対して、Ｇｒｉｄ  Ｓｅｒｃｈ等によってパラメータが振られるようにしてもよい。例えば、Ｇｒｉｄ  Ｓｅｒｃｈの対象には、欠損値を含めることによって、欠損によってもたらされる精度低下が正しく評価される。この点、学習プロセスに要する時間が組み合わせ的に増大するので、バックグラウンドサーバ２０のリソースや計算時間等によって適宜定めるようにすればよい。
【０１５２】
変形例（４）によれば、計算時間が所定時間以上の特徴量が存在する場合には、当該特徴量を欠損値として扱い、学習モデルにおける影響を評価することにより、リアルタイム処理に支障をきたすような計算時間の長い特徴量を正当に評価することができる。
【０１５３】
（５）また例えば、上記変形例を組み合わせてもよい。
【０１５４】
また例えば、前処理コンポーネントＣｍに入力されるデータの形式は互いに異なっていてもよい。また例えば、特に前処理コンポーネントＣｍを用意せずに、特徴量ごとに、当該特徴量を計算するプログラムや計算式が用意されていてもよい。また例えば、実施形態では、ウェブサイトにアクセスしたユーザの不正を検知する場合について説明したが、学習モデル適用システムＳは、新たに作成した学習モデルを適用する場合に適用可能であり、他の場面に適用してもよい。例えば、ユーザの不正を検知する場面以外の場面にも学習モデル適用システムＳを適用可能であり、自然言語処理、機械翻訳、文章変換、又はチャットボットなどの学習モデルが用いられる場合にも適用可能である。
【０１５５】
また例えば、ユーザがインターネット上で商品を購入する場合の不正行為を検出する場面に学習モデル適用システムＳを適用してもよい。この場合、サービス提供サーバ５０は、オンラインショッピングモールのウェブサイトをユーザに提供する。ユーザは、利用登録を行い、カード番号などの決済情報を予めサービス提供サーバ５０に登録しているものとする。決済情報としては、商品を購入した店舗の店舗ＩＤ、店舗名、商品の商品ＩＤ、商品名、数量、決済金額、及びカード番号といった情報が含まれるようにしてもよい。例えば、ユーザが商品を購入すると、サービス提供サーバ５０は、ユーザの決済情報などを含む行動データを生成する。学習モデル適用システムＳは、ユーザの決済情報などを含む行動データに基づいて、ｎ種類の特徴量を計算し、学習モデルにおける影響が大きいｋ種類の特徴量を選択する。学習モデル適用システムＳは、選択したｋ種類の特徴量を学習モデルに学習させて適用すればよい。
【０１５６】
また例えば、行動データに関する分類が行われる場合を説明したが、ユーザの行動以外のデータに関する分類が行われてもよい。例えば、画像データに撮影された被写体を分類する場面に学習モデル適用システムＳを用いてもよい。また例えば、気象データが示す温度や湿度などに基づいて天候を分類する場面に学習モデル適用システムＳを用いてもよい。また例えば、文章データの要約を作成する画面に学習モデル適用システムＳを用いてもよい。他にも、任意の内容のデータに関する分類をする場面に学習モデル適用システムＳを適用可能である。
【０１５７】
また例えば、学習モデル適用システムＳに含まれるコンピュータは、図１の例に限られない。学習モデル適用システムＳには、少なくとも１つのコンピュータが含まれるようにすればよく、例えば、バックグラウンド処理とリアルタイム処理とが同じコンピュータで実現されてもよい。同様に、特徴量を計算するコンピュータと、学習モデルを作成するコンピュータと、が同じであってもよい。また例えば、図３及び図１０で説明した機能は、任意のコンピュータで実現されるようにすればよく、各機能が１つのコンピュータで実現されてもよいし、任意の数のコンピュータで各機能が分担されてもよい。また例えば、実施形態及び変形例で説明したデータは、学習モデル適用システムＳ外のコンピュータによって記憶されてもよい。
【図１】
2021048902.tif 000003
【図２】
2021048902.tif 000004
【図３】
2021048902.tif 000005
【図４】
2021048902.tif 000006
【図５】
2021048902.tif 000007
【図６】
2021048902.tif 000008
【図７】
2021048902.tif 000009
【図８】
2021048902.tif 000010
【図９】
2021048902.tif 000011
【図１０】
2021048902.tif 000012
【手続補正書】
【提出日】令和2年10月30日(2020.10.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する計算手段と、
前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも１つを選択する選択手段と、
前記選択手段により選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用手段と、
前記選択手段により選択された特徴量に基づいて、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定手段と、
を含むことを特徴とする学習モデル適用システム。
【請求項２】
前記計算手段は、複数の計算式に基づいて、前記複数の特徴量を計算し、
前記設定手段は、前記複数の計算式のうち、前記選択手段により選択された特徴量の計算で用いられる計算式を、前記学習済みの学習モデルに入力される特徴量の計算で用いるように設定する、
ことを特徴とする請求項１に記載の学習モデル適用システム。
【請求項３】
前記計算手段は、集計処理を実行することによって、前記複数の特徴量のうちの少なくとも１つを計算し、
前記設定手段は、前記選択手段により前記少なくとも１つの特徴量が選択された場合に、前記集計処理が実行されるように設定する、
ことを特徴とする請求項１又は２に記載の学習モデル適用システム。
【請求項４】
前記計算手段は、平均値の算出処理、標準偏差の算出処理、確率分布の作成処理、又は統計値の算出処理を実行することによって、前記複数の特徴量のうちの少なくとも１つを計算し、
前記設定手段は、前記選択手段により前記少なくとも１つの特徴量が選択された場合に、前記平均値の算出処理、前記標準偏差の算出処理、前記確率分布の作成処理、又は前記統計値の算出処理が実行されるように設定する、
ことを特徴とする請求項１〜３の何れかに記載の学習モデル適用システム。
【請求項５】
前記計算手段は、複数の前処理コンポーネントに基づいて、前記複数の特徴量を計算し、
前記設定手段は、前記複数の前処理コンポーネントのうち、前記選択手段により選択された特徴量の計算で用いられる前処理コンポーネントを、前記学習済みの学習モデルに入力される特徴量の計算で用いるように設定する、
ことを特徴とする請求項１〜４の何れかに記載の学習モデル適用システム。
【請求項６】
前記学習モデル適用システムは、各前処理コンポーネントに対し、互いに同じ形式のデータを入力する入力手段を更に含み、
各前処理コンポーネントは、他の前処理コンポーネントに入力されるデータと同じ形式のデータに基づいて、計算処理を実行する、
ことを特徴とする請求項５に記載の学習モデル適用システム。
【請求項７】
前記学習モデル適用システムは、新たな特徴量を計算するための新たな前処理コンポーネントを追加する追加手段を更に含み、
前記計算手段は、前記新たな前処理コンポーネントに基づいて、前記新たな特徴量を計算し、
前記設定手段は、前記選択手段により前記新たな特徴量が選択された場合には、前記新たな前処理コンポーネントを、前記学習済みの学習モデルに入力される特徴量の計算で用いるように設定する、
ことを特徴とする請求項５又は６に記載の学習モデル適用システム。
【請求項８】
前記学習モデル適用システムは、各特徴量の計算時間を取得する取得手段を更に含み、
前記選択手段は、前記学習モデルにおける各特徴量の影響と、各特徴量の計算時間と、に基づいて、前記複数の特徴量のうちの少なくとも１つを選択する、
ことを特徴とする請求項１〜７の何れかに記載の学習モデル適用システム。
【請求項９】
前記学習モデル適用システムは、前記複数の特徴量の中から、互いに関連する特徴量の組み合わせを特定する特定手段を更に含み、
前記選択手段は、前記互いに関連する特徴量の組み合わせが存在する場合には、当該組み合わせのうちの一部を選択する、
ことを特徴とする請求項１〜８の何れかに記載の学習モデル適用システム。
【請求項１０】
前記学習モデル適用システムは、
各特徴量の計算時間を取得する取得手段と、
各特徴量の計算時間が所定時間以上であるか否かを判定する判定手段と、
を更に含み
前記選択手段は、計算時間が所定時間以上の特徴量が存在する場合には、当該特徴量を欠損値として扱い、前記学習モデルにおける影響を評価する、
ことを特徴とする請求項１〜９の何れかに記載の学習モデル適用システム。
【請求項１１】
前記学習モデルは、ウェブサイトにおける不正を検知するためのモデルであり、
前記学習モデル適用システムは、前記ウェブサイトにユーザがアクセスした場合に、前記学習済みの学習モデルと、前記設定手段により行われた設定と、に基づいて、当該ユーザの不正を推定する推定手段を更に含み、
前記選択手段、前記適用手段、及び前記設定手段の各々の処理は、前記推定手段の処理とは異なるバックグラウンド処理として実行される、
ことを特徴とする請求項１〜１０の何れかに記載の学習モデル適用システム。
【請求項１２】
前記学習モデルは、ウェブサイトにおける不正を検知するためのモデルであり、
前記学習モデル適用システムは、前記ウェブサイトの管理者に対し、前記選択手段により選択された特徴量に関する情報を通知する通知手段、
を更に含むことを特徴とする請求項１〜１１の何れかに記載の学習モデル適用システム。
【請求項１３】
コンピュータが、
学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する計算ステップと、
前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも１つを選択する選択ステップと、
前記選択ステップにより選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用ステップと、
前記選択ステップにより選択された特徴量に基づいて、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定ステップと、
を実行することを特徴とする学習モデル適用方法。
【請求項１４】
学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する計算手段、
前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも１つを選択する選択手段、
前記選択手段により選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用手段、
前記選択手段により選択された特徴量に基づいて、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定手段、
としてコンピュータを機能させるためのプログラム。
【手続補正書】
【提出日】令和3年2月26日(2021.2.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する計算手段と、
前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも１つを選択する選択手段と、
前記選択手段により選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用手段と、
前記選択手段により選択された特徴量を計算し、前記選択手段により選択されなかった特徴量を計算しないように、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定手段と、
を含むことを特徴とする学習モデル適用システム。
【請求項２】
前記計算手段は、複数の計算式に基づいて、前記複数の特徴量を計算し、
前記設定手段は、前記複数の計算式のうち、前記選択手段により選択された特徴量の計算で用いられる計算式を、前記学習済みの学習モデルに入力される特徴量の計算で用いるように設定する、
ことを特徴とする請求項１に記載の学習モデル適用システム。
【請求項３】
前記計算手段は、集計処理を実行することによって、前記複数の特徴量のうちの少なくとも１つを計算し、
前記設定手段は、前記選択手段により前記少なくとも１つの特徴量が選択された場合に、前記集計処理が実行されるように設定する、
ことを特徴とする請求項１又は２に記載の学習モデル適用システム。
【請求項４】
前記計算手段は、平均値の算出処理、標準偏差の算出処理、確率分布の作成処理、又は統計値の算出処理を実行することによって、前記複数の特徴量のうちの少なくとも１つを計算し、
前記設定手段は、前記選択手段により前記少なくとも１つの特徴量が選択された場合に、前記平均値の算出処理、前記標準偏差の算出処理、前記確率分布の作成処理、又は前記統計値の算出処理が実行されるように設定する、
ことを特徴とする請求項１〜３の何れかに記載の学習モデル適用システム。
【請求項５】
前記計算手段は、複数の前処理コンポーネントに基づいて、前記複数の特徴量を計算し、
前記設定手段は、前記複数の前処理コンポーネントのうち、前記選択手段により選択された特徴量の計算で用いられる前処理コンポーネントを、前記学習済みの学習モデルに入力される特徴量の計算で用いるように設定する、
ことを特徴とする請求項１〜４の何れかに記載の学習モデル適用システム。
【請求項６】
前記学習モデル適用システムは、各前処理コンポーネントに対し、互いに同じ形式のデータを入力する入力手段を更に含み、
各前処理コンポーネントは、他の前処理コンポーネントに入力されるデータと同じ形式のデータに基づいて、計算処理を実行する、
ことを特徴とする請求項５に記載の学習モデル適用システム。
【請求項７】
前記学習モデル適用システムは、新たな特徴量を計算するための新たな前処理コンポーネントを追加する追加手段を更に含み、
前記計算手段は、前記新たな前処理コンポーネントに基づいて、前記新たな特徴量を計算し、
前記設定手段は、前記選択手段により前記新たな特徴量が選択された場合には、前記新たな前処理コンポーネントを、前記学習済みの学習モデルに入力される特徴量の計算で用いるように設定する、
ことを特徴とする請求項５又は６に記載の学習モデル適用システム。
【請求項８】
前記学習モデル適用システムは、各特徴量の計算時間を取得する取得手段を更に含み、
前記選択手段は、前記学習モデルにおける各特徴量の影響と、各特徴量の計算時間と、に基づいて、前記複数の特徴量のうちの少なくとも１つを選択する、
ことを特徴とする請求項１〜７の何れかに記載の学習モデル適用システム。
【請求項９】
前記学習モデル適用システムは、前記複数の特徴量の中から、互いに関連する特徴量の組み合わせを特定する特定手段を更に含み、
前記選択手段は、前記互いに関連する特徴量の組み合わせが存在する場合には、当該組み合わせのうちの一部を選択する、
ことを特徴とする請求項１〜８の何れかに記載の学習モデル適用システム。
【請求項１０】
前記学習モデル適用システムは、
各特徴量の計算時間を取得する取得手段と、
各特徴量の計算時間が所定時間以上であるか否かを判定する判定手段と、
を更に含み
前記選択手段は、計算時間が所定時間以上の特徴量が存在する場合には、当該特徴量を欠損値として扱い、前記学習モデルにおける影響を評価する、
ことを特徴とする請求項１〜９の何れかに記載の学習モデル適用システム。
【請求項１１】
前記学習モデルは、ウェブサイトにおける不正を検知するためのモデルであり、
前記学習モデル適用システムは、前記ウェブサイトにユーザがアクセスした場合に、前記学習済みの学習モデルと、前記設定手段により行われた設定と、に基づいて、当該ユーザの不正を推定する推定手段を更に含み、
前記選択手段、前記適用手段、及び前記設定手段の各々の処理は、前記推定手段の処理とは異なるバックグラウンド処理として実行される、
ことを特徴とする請求項１〜１０の何れかに記載の学習モデル適用システム。
【請求項１２】
前記学習モデルは、ウェブサイトにおける不正を検知するためのモデルであり、
前記学習モデル適用システムは、前記ウェブサイトの管理者に対し、前記選択手段により選択された特徴量に関する情報を通知する通知手段、
を更に含むことを特徴とする請求項１〜１１の何れかに記載の学習モデル適用システム。
【請求項１３】
コンピュータが、
学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する計算ステップと、
前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも１つを選択する選択ステップと、
前記選択ステップにより選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用ステップと、
前記選択ステップにより選択された特徴量を計算し、前記選択ステップにより選択されなかった特徴量を計算しないように、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定ステップと、
を実行することを特徴とする学習モデル適用方法。
【請求項１４】
学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する計算手段、
前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも１つを選択する選択手段、
前記選択手段により選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用手段、
前記選択手段により選択された特徴量を計算し、前記選択手段により選択されなかった特徴量を計算しないように、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定手段、
としてコンピュータを機能させるためのプログラム。
【国際調査報告】
2021048902.tif 000013
2021048902.tif 000014
2021048902.tif 000015
2021048902.tif 000016