(57)【特許請求の範囲】
【請求項１】
機械学習モデルに基づいて、データに関する分類を行う第１分類手段と、
所定のルールに基づいて、前記データに関する分類を行う第２分類手段と、
前記ルールを満たすデータに関する統計情報に基づいて、前記ルールを学習させるか否かを判定する判定手段と、
前記判定手段により学習させると判定されたルールの学習処理を実行する学習手段と、
を含むことを特徴とする学習システム。
【請求項２】
前記統計情報は、前記ルールを満たすデータの数を示し、
前記判定手段は、
前記ルールを満たすデータの数が閾値未満である場合には、前記ルールを学習させると判定せず、
前記ルールを満たすデータの数が前記閾値以上である場合に、前記ルールを学習させると判定する、
ことを特徴とする請求項１に記載の学習システム。
【請求項３】
前記統計情報は、前記ルールを満たすデータの分布を示し、
前記判定手段は、
前記ルールを満たすデータの分布が所定の分布ではない場合には、前記ルールを学習させると判定せず、
前記ルールを満たすデータの分布が前記所定の分布である場合に、前記ルールを学習させると判定する、
ことを特徴とする請求項１又は２に記載の学習システム。
【請求項４】
前記学習システムは、前記機械学習モデルにおける前記ルールの不確かさを評価する評価手段を更に含み、
前記学習手段は、前記評価手段の評価結果に基づいて、前記学習処理を実行する、
ことを特徴とする請求項１〜３の何れかに記載の学習システム。
【請求項５】
学習システムは、前記評価手段により不確かではないと評価されたルールが用いられないように除外する除外手段を更に含む、
ことを特徴とする請求項４に記載の学習システム。
【請求項６】
前記学習システムは、前記学習処理により学習されたルールが用いられないように除外する除外手段を更に含む、
ことを特徴とする請求項１〜５の何れかに記載の学習システム。
【請求項７】
前記学習システムは、
前記学習処理によりルールが学習された機械学習モデルにおける当該ルールの不確かさを評価する評価手段と、
前記評価手段の評価結果に基づいて、前記学習処理によりルールが学習された機械学習モデルに切り替える切替手段と、
を更に含むことを特徴とする請求項１〜６の何れかに記載の学習システム。
【請求項８】
前記第２分類手段は、複数の前記ルールの各々に基づいて、前記データに関する分類を行い、
前記学習システムは、前記複数のルールのうち、学習対象となるルールの指定を受け付ける受付手段を更に含み、
前記判定手段は、前記複数のルールのうち、前記学習対象として指定されたルールを満たすデータに関する統計情報に基づいて、前記学習対象として指定されたルールを学習させるか否かを判定する、
ことを特徴とする請求項１〜７の何れかに記載の学習システム。
【請求項９】
前記データは、ユーザの行動に関する行動データであり、
前記機械学習モデルは、不正ユーザであるか否かを分類するための機械学習モデルであり、
前記ルールは、不正ユーザであるか否か分類するためのルールである、
ことを特徴とする請求項１〜８の何れかに記載の学習システム。
【請求項１０】
コンピュータが、機械学習モデルに基づいて、データに関する分類を行う第１分類ステップと、
コンピュータが、所定のルールに基づいて、前記データに関する分類を行う第２分類ステップと、
コンピュータが、前記ルールを満たすデータに関する統計情報に基づいて、前記ルールを学習させるか否かを判定する判定ステップと、
コンピュータが、前記判定ステップにより学習させると判定されたルールの学習処理を実行する学習ステップと、
を含むことを特徴とする学習方法。
【請求項１１】
機械学習モデルに基づいて、データに関する分類を行う第１分類手段、
所定のルールに基づいて、前記データに関する分類を行う第２分類手段、
前記ルールを満たすデータに関する統計情報に基づいて、前記ルールを学習させるか否かを判定する判定手段、
前記判定手段により学習させると判定されたルールの学習処理を実行する学習手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習システム、学習方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、機械学習モデルに基づいてデータに関する分類を行う技術が検討されている。例えば、特許文献１には、ウェブサイトにアクセスしたユーザの行動に関する行動データの特徴量を入力とし、当該ユーザの正当性の判定結果を出力とする教師データを機械学習モデルに学習させ、ユーザの不正を検知する機械学習モデルを作成するシステムが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１９／０４９２１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のような機械学習モデルの分類精度には限界があるため、発明者は、機械学習モデルとは別にルールを用意し、機械学習モデルとルールの両方を活用することを独自に検討している。例えば、特許文献１のシステムにおいて、機械学習モデルとは別に、機械学習モデルでは判断しきれない特徴に関するルールを用意しておき、不正検知の精度を高めることが考えられる。【０００５】
例えば、悪意のある第三者の行動は日々変化するので、発明者は、ルールの数が次第に増加すると考えている。このため、発明者は、ルールを減らすために、なるべく、機械学習モデルにルールを学習させた方がよいと考えている。しかしながら、ルールの中には、学習に向くルールもあれば、学習に向かないルールもある。例えば、学習に向かないルールを機械学習モデルに学習させてしまうと、かえって機械学習モデルの精度が低下する可能性がある。【０００６】
本発明は上記課題に鑑みてなされたものであって、その目的は、機械学習モデルの精度を向上させてルールの数を減らすことが可能な学習システム、学習方法、及びプログラムを提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明に係る学習システムは、機械学習モデルに基づいて、データに関する分類を行う第１分類手段と、所定のルールに基づいて、前記データに関する分類を行う第２分類手段と、前記ルールを満たすデータに関する統計情報に基づいて、前記ルールを学習させるか否かを判定する判定手段と、前記判定手段により学習させると判定されたルールの学習処理を実行する学習手段と、を含むことを特徴とする。【０００８】
本発明に係る学習方法は、機械学習モデルに基づいて、データに関する分類を行う第１分類ステップと、所定のルールに基づいて、前記データに関する分類を行う第２分類ステップと、前記ルールを満たすデータに関する統計情報に基づいて、前記ルールを学習させるか否かを判定する判定ステップと、前記判定ステップにより学習させると判定されたルールの学習処理を実行する学習ステップと、を含むことを特徴とする。【０００９】
本発明に係るプログラムは、機械学習モデルに基づいて、データに関する分類を行う第１分類手段、所定のルールに基づいて、前記データに関する分類を行う第２分類手段、前記ルールを満たすデータに関する統計情報に基づいて、前記ルールを学習させるか否かを判定する判定手段、前記判定手段により学習させると判定されたルールの学習処理を実行する学習手段、としてコンピュータを機能させる。【００１０】
本発明の一態様によれば、前記統計情報は、前記ルールを満たすデータの数を示し、前記判定手段は、前記ルールを満たすデータの数が閾値未満である場合には、前記ルールを学習させると判定せず、前記ルールを満たすデータの数が前記閾値以上である場合に、前記ルールを学習させると判定する、とを特徴とする。【００１１】
本発明の一態様によれば、前記統計情報は、前記ルールを満たすデータの分布を示し、前記判定手段は、前記ルールを満たすデータの分布が所定の分布ではない場合には、前記ルールを学習させると判定せず、前記ルールを満たすデータの分布が前記所定の分布である場合に、前記ルールを学習させると判定する、ことを特徴とする。【００１２】
本発明の一態様によれば、前記学習システムは、前記機械学習モデルにおける前記ルールの不確かさを評価する評価手段を更に含み、前記学習手段は、前記評価手段の評価結果に基づいて、前記学習処理を実行する、ことを特徴とする。【００１３】
本発明の一態様によれば、学習システムは、前記評価手段により不確かではないと評価されたルールが用いられないように除外する除外手段を更に含むことを特徴とする。【００１４】
本発明の一態様によれば、前記学習システムは、前記学習処理により学習されたルールが用いられないように除外する除外手段を更に含む、ことを特徴とする。【００１５】
本発明の一態様によれば、前記学習システムは、前記学習処理によりルールが学習された機械学習モデルにおける当該ルールの不確かさを評価する評価手段と、前記評価手段の評価結果に基づいて、前記学習処理によりルールが学習された機械学習モデルに切り替える切替手段と、を更に含むことを特徴とする。【００１６】
本発明の一態様によれば、前記第２分類手段は、複数の前記ルールの各々に基づいて、前記データに関する分類を行い、前記学習システムは、前記複数のルールのうち、学習対象となるルールの指定を受け付ける受付手段を更に含み、前記判定手段は、前記複数のルールのうち、前記学習対象として指定されたルールを満たすデータに関する統計情報に基づいて、前記学習対象として指定されたルールを学習させるか否かを判定する、ことを特徴とする。【００１７】
本発明の一態様によれば、前記データは、ユーザの行動に関する行動データであり、前記機械学習モデルは、不正ユーザであるか否かを分類するための機械学習モデルであり、前記ルールは、不正ユーザであるか否か分類するためのルールである、ことを特徴とする。
【発明の効果】
【００１８】
本発明によれば、機械学習モデルの精度を向上させてルールの数を減らすことが可能となる。
【図面の簡単な説明】
【００１９】
【図１】学習システムの全体構成を示す図である。
【図２】学習システムで実現される機能の一例を示す機能ブロック図である。
【図３】行動データベースのデータ格納例を示す図である。
【図４】ルールリストのデータ格納例を示す図である。
【図５】ルールを満たす行動データが少ない場合の一例を示す図である。
【図６】ルールを満たす行動データが多い場合の一例を示す図である。
【図７】ルールを満たす行動データが偏っていない場合の一例を示す図である。
【図８】ルールを満たす行動データが偏っている場合の一例を示す図である。
【図９】分類処理の一例を示すフロー図である。
【図１０】学習処理の一例を示すフロー図である。
【発明を実施するための形態】
【００２０】
［１．学習システムの全体構成］
以下、本発明に係る学習システムの実施形態の例を説明する。図１は、学習システムの全体構成を示す図である。図１に示すように、学習システムＳは、サーバ１０、ユーザ端末２０、及び管理者端末３０を含み、これらは、インターネットなどのネットワークＮに接続可能である。なお、図１では、サーバ１０、ユーザ端末２０、及び管理者端末３０の各々を１台ずつ示しているが、これらは複数台あってもよい。
【００２１】
サーバ１０は、サーバコンピュータである。サーバ１０は、制御部１１、記憶部１２、及び通信部１３を含む。制御部１１は、少なくとも１つのプロセッサを含む。制御部１１は、記憶部１２に記憶されたプログラムやデータに従って処理を実行する。記憶部１２は、主記憶部及び補助記憶部を含む。例えば、主記憶部はＲＡＭなどの揮発性メモリであり、補助記憶部は、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、又はハードディスクなどの不揮発性メモリである。通信部１３は、有線通信又は無線通信用の通信インタフェースであり、ネットワークＮを介してデータ通信を行う。
【００２２】
ユーザ端末２０は、ユーザが操作するコンピュータである。例えば、ユーザ端末２０は、携帯電話機（スマートフォンを含む）、携帯情報端末（タブレット型コンピュータを含む）、又はパーソナルコンピュータ等である。本実施形態では、ユーザ端末２０は、制御部２１、記憶部２２、通信部２３、操作部２４、及び表示部２５を含む。制御部２１、記憶部２２、及び通信部２３の物理的構成は、それぞれ制御部１１、記憶部１２、及び通信部１３と同様であってよい。
【００２３】
操作部２４は、入力デバイスであり、例えば、タッチパネルやマウス等のポインティングデバイス、キーボード、又はボタン等である。操作部２４は、ユーザによる操作内容を制御部２１に伝達する。表示部２５は、例えば、液晶表示部又は有機ＥＬ表示部等である。表示部２５は、制御部２１の指示に従って画像を表示する。
【００２４】
管理者端末３０は、管理者が操作するコンピュータである。例えば、管理者端末３０は、携帯電話機（スマートフォンを含む）、携帯情報端末（タブレット型コンピュータを含む）、又は、パーソナルコンピュータ等である。本実施形態では、管理者端末３０は、制御部３１、記憶部３２、通信部３３、操作部３４、及び表示部３５を含む。制御部３１、記憶部３２、通信部３３、操作部３４、及び表示部３５の物理的構成は、それぞれ制御部２１、記憶部２２、通信部２３、操作部２４、及び表示部２５と同様であってよい。
【００２５】
なお、記憶部１２，２２，３２に記憶されるものとして説明するプログラム及びデータは、ネットワークＮを介して供給されるようにしてもよい。また、上記説明した各コンピュータのハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部（例えば、光ディスクドライブやメモリカードスロット）や外部機器とデータの入出力をするための入出力部（例えば、ＵＳＢポート）が含まれていてもよい。例えば、情報記憶媒体に記憶されたプログラムやデータが読取部や入出力部を介して、各コンピュータに供給されるようにしてもよい。
【００２６】
［２．学習システムの概要］
本実施形態では、サーバ１０が、ニュースや動画などのウェブサイトをユーザに提供し、ウェブサイトにアクセスしたユーザの行動を分析する場面を例に挙げて、学習システムＳの処理を説明する。例えば、学習システムＳは、ユーザがウェブサイトにアクセスした場合に行動データを生成し、機械学習モデル及びルールを利用して行動データを分析し、正常ユーザ又は不正ユーザの何れかに分類する。
【００２７】
行動データは、ユーザの行動に関するデータである。行動データは、少なくとも１つの項目を含み、ユーザの行動内容が格納される。例えば、行動データは、ユーザがアクセスしたウェブサイトのＵＲＬ、ユーザが使用したユーザ端末２０の識別情報（例えば、ＩＰアドレス、個体識別情報、電話番号、又はＳＩＭ情報など）、ユーザがユーザ端末２０を使用した場所、ウェブサイトにアクセスした日時、又は、操作部２４からの入力内容を含む。
【００２８】
正常ユーザは、正常な行動をしたユーザであり、不正ユーザではないユーザである。不正ユーザは、不正な行動をしたユーザであり、正常ユーザではないユーザである。不正な行動とは、サービス提供者又は他のユーザなどに不利益となる行動であり、例えば、ハッキング、クラッキング、悪意のある投稿、意図的に多量のアクセスを行うこと、他のユーザへの迷惑行為、サービス規約に反する行為、又は法律違反となる行為などである。
【００２９】
例えば、正常ユーザに対するサービスは制限されず、不正ユーザに対するサービスは制限される。ただし、不正ユーザに分類された場合に、直ちにサービスが制限される必要はなく、管理者の審査が行われた後にサービスが制限されてもよいし、ユーザに対する追加の認証が行われた後にサービスが制限されてもよい。
【００３０】
機械学習モデルは、学習済みのモデルである。機械学習モデルは、学習器、分類器、又は分類学習器と呼ばれることもある。本実施形態では、不正ユーザであるか否かを分類するための機械学習モデルが用いられる。機械学習自体は、公知の種々の手法を利用可能であり、例えば、ニューラルネットワーク、強化学習、又は深層学習といった手法を利用可能である。機械学習は、教師有り機械学習に限られず、半教師有り機械学習が用いられてもよいし、教師無し機械学習が用いられてもよい。
【００３１】
例えば、機械学習モデルは、入力されたデータの特徴量を計算し、データに関する分類を行う。特徴量は、データの特徴を示す数値であり、例えば、ｎ（ｎは自然数）次元のベクトル、又は、ｎ個の要素からなる配列で示される。なお、機械学習モデルとは別に、特徴量を計算するためのアルゴリズムを用意してもよい。この場合、機械学習モデルは、特徴量を計算する必要がなく、当該アルゴリズムによって計算された特徴量が機械学習モデルに入力される。
【００３２】
例えば、不正ユーザが、ある特定の時間帯にアクセスしたり、一定頻度以上でアクセスしたりする傾向にある場合には、機械学習モデルには、不正ユーザのアクセス時間帯やアクセス頻度などの特徴が学習される。この場合、機械学習モデルは、ウェブサイトにアクセスしたユーザの行動データに基づいて、アクセス時間帯やアクセス頻度などの特徴量を計算し、正常ユーザ又は不正ユーザの何れかに分類する。
【００３３】
一方、ルールは、機械学習モデルとは別に用意された条件を含む。ルールに含まれる条件は、１つだけであってもよいし、複数であってもよい。本実施形態では、不正ユーザであるか否か分類するためのルールが用いられる。複数の条件がルールに含まれる場合には、これら複数の条件をＡＮＤ条件としてもよいしＯＲ条件としてもよい。
【００３４】
本実施形態では、ルールは、人手によって定められるものとして説明するが、ルールを生成するアルゴリズムを用意してもよい。行動データが数値を含んでいれば、ルールには、数値範囲を示す条件が含まれる。また例えば、行動データが文字を含んでいれば、ルールには、所定の文字と一致するか否かを示す条件が含まれる。なお、Ｗｏｒｄ２Ｖｅｃ等によって文字の特徴量が表現される場合には、ルールには、特徴量の差（距離）に関する条件が含まれてもよい。
【００３５】
なお、行動データが複数の項目を含む場合には、ルールは、これら複数の項目全てに関する条件が示されてもよいし、一部の項目に関する条件だけが示されてもよい。また、行動データに含まれる値そのものがルールと比較されてもよいし、行動データに含まれる値に基づいて計算された値がルールと比較されてもよい。
【００３６】
ルールは、原則として、機械学習モデルに学習させていない観点で作成される。例えば、アクセス時間帯及びアクセス頻度の特徴が機械学習モデルに学習されていたとすると、ルールは、アクセス場所やユーザ名などの他の観点で作成される。ここでは、下記の３つのルールを例に挙げる。なお、ルール１の利用中心地とは、過去におけるユーザのアクセス場所の平均値である。また、ルール３のホワイトリストとは、管理者により正常ユーザと判断されたユーザの名前のリストである。
（ルール１）利用中心地からの距離が１００ｋｍ以上である場合には、不正ユーザとする。
（ルール２）ＩＰアドレスが日本以外の国である場合には、不正ユーザとする。
（ルール３）ホワイトリストにユーザ名が登録されている場合には、正常ユーザとする。
【００３７】
先述したように、悪意のある第三者の行動は日々変化するので、次第にルールの数が増加することが予想される。行動データと比較するルールの数が増えると、サーバ１０の処理負荷が増大し、正常ユーザであるか否かの判定処理に時間がかかってしまう。このため、なるべく機械学習モデルにルールを学習させ、ルールの数を減らした方が好ましいと考えられる。
【００３８】
しかしながら、ルールの中には、学習に向くルールもあれば、学習に向かないルールもある。例えば、ルールを満たす行動データが少なかったり行動データの内容に一貫性がなかったりした場合には、機械学習モデルは、これらの特徴を学習することができない可能性がある。このようなルールを学習させようとすると、かえって機械学習モデルの精度低下を招く可能性がある。
【００３９】
そこで、学習システムＳは、ルールを満たす行動データに関する統計的な情報に基づいて、ルールを学習させるか否かを判定し、学習に向くルールに絞って学習させることにより、機械学習モデルの精度を向上させてルールの数を減らすようにしている。以降、この技術の詳細を説明する。
【００４０】
［３．学習システムにおいて実現される機能］
図２は、学習システムＳで実現される機能の一例を示す機能ブロック図である。図２に示すように、サーバ１０では、データ記憶部１００、受付部１０１、第１分類部１０２、第２分類部１０３、判定部１０４、第１評価部１０５、学習部１０６、除外部１０７、第２評価部１０８、及び切替部１０９が実現される。
【００４１】
[３−１．データ記憶部]
データ記憶部１００は、記憶部１２を主として実現される。データ記憶部１００は、本実施形態で説明する処理を実行するために必要なデータを記憶する。ここでは、データ記憶部１００が記憶するデータの一例として、機械学習モデルＭ、行動データベースＤＢ、及びルールリストＬについて説明する。
【００４２】
データ記憶部１００は、機械学習モデルＭのプログラム（アルゴリズム）やパラメータを記憶する。機械学習モデルＭのパラメータは、教師データを利用して調整済みであるものとする。例えば、この教師データは、過去におけるユーザの行動データを入力とし、管理者による分類結果（正常ユーザ又は不正ユーザの何れであるかを示す値）が出力となるように作成される。
【００４３】
先述した例では、管理者は、アクセス時間帯及びアクセス頻度に不正ユーザの傾向が表れていると考えており、これらの特徴を入力とし、不正ユーザであることを出力とする教師データが作成される。機械学習モデルＭは、当該教師データに基づいて学習済みであり、主にアクセス時間帯及びアクセス頻度に関する特徴に基づいて、分類結果を出力する。例えば、機械学習モデルＭは、入力された行動データの特徴量を計算し、分類結果を示す値（ラベル）を出力する。
【００４４】
本実施形態では、機械学習モデルＭは、あるユーザの行動に関する行動データに基づいて、当該ユーザを正常ユーザ又は不正ユーザの何れかに分類するので、正常ユーザを示す値又は不正ユーザを示す値の何れかを出力する。なお、機械学習モデルＭは、分類の蓋然性（確度）を示すスコアを出力してもよい。この場合、機械学習モデルＭは、正常ユーザの蓋然性を示すスコアと、不正ユーザの蓋然性を示すスコアと、の少なくとも一方を出力してもよい。なお、以降の説明では、機械学習モデルＭの符号を省略する。
【００４５】
図３は、行動データベースＤＢのデータ格納例を示す図である。図３に示すように、行動データベースＤＢには、行動データと、機械学習モデル及びルールによる診断結果と、が格納される。例えば、行動データには、ユーザＩＤ、ユーザ名、ＩＰアドレス、アクセスしたウェブサイトのＵＲＬ、アクセス場所、及びアクセス日時が格納される。なお、本実施形態では、ユーザは予め利用登録を済ませており、ユーザＩＤやユーザ名などの基本情報は、予めデータ記憶部１００に登録されているものとする。
【００４６】
ユーザＩＤは、ユーザを一意に識別する情報である。ユーザ名は、ユーザが利用登録時に入力した名前である。ＩＰアドレスは、ユーザがサーバ１０にアクセスした時に使用したユーザ端末２０のＩＰアドレスである。アクセス場所は、ユーザがサーバ１０にアクセスした時に使用したユーザ端末２０の場所に関する情報である。アクセス場所は、ＩＰアドレス、ＧＰＳ情報（緯度経度情報又は座標情報）、無線基地局情報、又はアクセスポイント情報などを利用して推定される。アクセス日時は、ユーザがサーバ１０にアクセスした時の日時である。
【００４７】
機械学習モデルの診断結果は、行動データを機械学習モデルに入力した場合の分類結果である。機械学習モデルがスコアを出力する場合には、機械学習モデルの診断結果にスコアが含まれていてもよい。ルールの診断結果は、行動データをルールに照らし合わせた場合の分類結果である。複数のルールが用意されている場合、各ルールの診断結果が格納される。本実施形態では、機械学習モデル及びルールの各々により、正常ユーザ又は不正ユーザの何れかに分類されるので、診断結果としては、正常ユーザ又は不正ユーザの何れかの値が格納される。
【００４８】
サーバ１０は、ユーザによるアクセスを受け付けた場合に、ユーザＩＤ、ユーザ名、ＩＰアドレス、アクセス場所、及びアクセス時間を含む行動データを生成し、行動データベースＤＢに格納する。当該生成された行動データは、後述する第１分類部１０２及び第２分類部１０３の処理により、正常ユーザ又は不正ユーザの何れかに分類され、機械学習モデルの診断結果と、ルールの診断結果と、が格納される。
【００４９】
図４は、ルールリストＬのデータ格納例を示す図である。図４に示すように、ルールリストＬには、ルールに関するデータが格納される。本実施形態では、３つのルールについて説明するが、ルールの数は、任意であってよく、例えば、１つ、２つ、又は４つ以上であってもよい。例えば、ルールリストＬには、ルールＩＤ、ルールの内容、診断結果、及び学習対象フラグが格納される。
【００５０】
ルールＩＤは、ルールを一意に識別する情報である。ルールＩＤは、新たなルールが追加されるたびに発行される。ルールの内容は、行動データに含まれる複数の項目の少なくとも１つに関する条件が格納される。例えば、行動データが数値を含む場合、ルールの内容は、数値範囲となる。数値範囲としては、閾値以上、閾値未満、又は、第１の閾値以上かつ第２の閾値未満といった条件が格納される。また例えば、行動データが文字を含む場合、ルールの内容は、所定の文字が含まれるか否かを示す条件となる。
【００５１】
例えば、ルールＩＤが「ｒ００００１」のルールは、行動データの「アクセス場所」に基づいて計算される「利用中心地からの距離」という数値が「１００ｋｍ以上」といった内容となる。また例えば、ルールＩＤが「ｒ００００２」のルールは、行動データの「ＩＰアドレス」の数値が日本のＩＰアドレスの範囲に含まれないといった内容となる。また例えば、ルールＩＤが「ｒ００００３」のルールは、行動データの「ユーザ名」が示す文字列がホワイトリスト内に存在するといった内容となる。
【００５２】
診断結果は、ルールを満たした場合の分類結果であり、例えば、ルールを満たした場合に正常ユーザ又は不正ユーザの何れに分類されるかが示される。学習対象フラグは、学習対象のルールであるか否かを示す情報である。例えば、学習対象フラグがオンの場合には、学習対象であることを示し、学習対象フラグがオフの場合には、学習対象ではないことを示す。
【００５３】
本実施形態では、学習対象のルールだけが後述する判定部１０４及び学習部１０６の処理対象となり、学習対象ではないルールは、判定部１０４及び学習部１０６の処理対象から除外される。例えば、学習対象ではないルールは、学習には向かないルールであり、例外のルールということができる。一方、学習対象のルールは、統計によっては学習に向くルールであり、非例外のルールということができる。
【００５４】
学習システムＳの管理者は、新たなルールを追加する場合、当該ルールの内容、診断結果、及び学習対象フラグを指定する。サーバ１０は、ルールＩＤを新たに発行し、これら指定された情報とともに、ルールリストＬに格納することによって、新たなルールが追加される。ルールリストＬには、後述する第２分類部１０３が利用するルールだけが格納されていてもよいし、使用されなくなった古いルールが残っていてもよい。
【００５５】
なお、データ記憶部１００に記憶されるデータは、上記の例に限られない。例えば、データ記憶部１００は、ユーザの利用登録情報が格納されたユーザデータベースを記憶してもよい。例えば、ユーザデータベースには、ユーザＩＤ、ユーザ名、パスワードなどの認証情報、メールアドレス、住所、電話番号、及び利用中心地などの情報が格納される。
【００５６】
また例えば、データ記憶部１００は、正常ユーザのリストを示すホワイトリストを記憶してもよいし、不正ユーザのリストを示すブラックリストを記憶してもよい。ホワイトリスト及びブラックリストは、学習システムＳの管理者によって編集されてもよいし、第１分類部１０２又は第２分類部１０３によって編集されもよい。例えば、ホワイトリスト及びブラックリストの各々には、ユーザＩＤ、ユーザ名、メールアドレス、住所、及び電話番号などの基本情報が格納される。
【００５７】
［３−２．受付部］
受付部１０１は、制御部１１を主として実現される。受付部１０１は、複数のルールのうち、学習対象となるルールの指定を受け付ける。学習対象とは、機械学習モデルに学習させる対象となるルールであり、例えば、ルールの作成者により指定されてもよいし、他の者により指定されてもよい。例えば、管理者は管理者端末３０を操作して新たなルールを作成する際に、当該ルールを学習対象とするか否かを指定する。また例えば、管理者は、登録済みのルールについて、学習対象とするか否かを事後的に指定してもよい。受付部１０１は、管理者端末３０から管理者による指定結果を受信することによって、学習対象となるルールの指定を受け付ける。
【００５８】
［３−３．第１分類部］
第１分類部１０２は、制御部１１を主として実現される。第１分類部１０２は、機械学習モデルに基づいて、行動データに関する分類を行う。行動データに関する分類とは、行動データそのものの分類を意味してもよいし、データに関連付けられた情報の分類を意味してもよい。本実施形態では、ユーザが正常ユーザ又は不正ユーザに分類されるので、行動データそのものが分類されるというよりは、行動データに関連付けられたユーザＩＤやユーザ名などが分類されることになる。なお、分類は、種類又は属性ということもできるし、機械学習モデルにより付与されたラベルということもできる。
【００５９】
例えば、第１分類部１０２は、行動データを機械学習モデルに入力し、機械学習モデルにより出力された分類を取得することによって、行動データに関する分類を行う。この場合、機械学習モデルは、入力された行動データの特徴量を計算し、当該特徴量に基づいて、分類結果を出力する。
【００６０】
なお、機械学習モデルとは別に、特徴量を計算するアルゴリズムを用意する場合には、第１分類部１０２は、特徴量を計算するアルゴリズムに行動データを入力し、当該アルゴリズムが計算した特徴量を機械学習モデルに入力することによって、行動データに関する分類を行う。この場合、機械学習モデルは、特徴量を計算する処理を実行せず、入力された特徴量に基づいて、行動データを分類することになる。
【００６１】
なお、機械学習モデルが分類のスコアを出力する場合には、第１分類部１０２は、スコアに基づいて、行動データに関する分類をしてもよい。例えば、機械学習モデルが複数の分類の各々のスコアを出力する場合には、第１分類部１０２は、最も高いスコアの分類を分類結果として取得してもよいし、スコアが閾値以上の全ての分類を分類結果として取得してもよい。
【００６２】
［３−４．第２分類部］
第２分類部１０３は、制御部１１を主として実現される。第２分類部１０３は、所定のルールに基づいて、行動データに関する分類を行う。本実施形態では、複数のルールが定められているので、第２分類部１０３は、複数のルールの各々に基づいて、行動データに関する分類を行う。例えば、第２分類部１０３は、ルールリストＬに格納されたルールごとに、行動データが当該ルールを満たすか否かを判定し、行動データに関する分類を行う。
【００６３】
例えば、ルールとして、行動データに含まれる所定項目の数値範囲が定められている場合、第２分類部１０３は、行動データの当該所定項目の数値を参照し、ルールが示す範囲であるか否かを判定する。また例えば、ルールとして、行動データに含まれる所定項目に基づいて計算される数値の範囲が定められている場合、第２分類部１０３は、行動データの当該所定項目の数値に基づいて計算した数値が、ルールが示す範囲であるか否かを判定する。
【００６４】
例えば、ルールＩＤが「ｒ００００１」のルールであれば、第２分類部１０３は、行動データのアクセス場所に基づいて、利用中心地からの距離を計算する。第２分類部１０３は、当該距離が閾値（例えば、１００ｋｍ）以上であるか否かを判定する。第２分類部１０３は、当該距離が閾値以上である場合、行動データが示すユーザを不正ユーザに分類する。なお、第２分類部１０３は、当該距離が閾値未満である場合、ユーザを正常ユーザに分類してもよいし、正常ユーザ及び不正ユーザの何れでもないユーザとして分類してもよい。
【００６５】
また例えば、ルールＩＤが「ｒ００００２」のルールであれば、第２分類部１０３は、行動データのＩＰアドレスに基づいて、日本のＩＰアドレスであるか否かを判定する。日本のＩＰアドレスは、予め管理者等によって指定されており、データ記憶部１００に記憶させておけばよい。第２分類部１０３は、行動データのＩＰアドレスが、予め指定された範囲に含まれるか否かを判定する。第２分類部１０３は、ＩＰアドレスが日本でない場合、行動データが示すユーザを不正ユーザに分類する。なお、第２分類部１０３は、ＩＰアドレスが日本である場合、ユーザを正常ユーザに分類してもよいし、正常ユーザ及び不正ユーザの何れでもないユーザとして分類してもよい。
【００６６】
なお、数値に関する条件をルールとする場合、距離やＩＰアドレス以外の数値がルールとして定められていてもよい。例えば、ユーザのアクセス時間帯やアクセス頻度を機械学習モデルに学習させていないのであれば、これらの数値をルールとして定めておいてもよい。この場合、第２分類部１０３は、行動データが示すアクセス時間帯又はアクセス頻度などが所定の数値範囲であるか否かを判定することによって、ルールに基づく分類を行えばよい。他にも例えば、ユーザの電話番号に関するルールが定められていてもよい。この場合、第２分類部１０３は、行動データが示すユーザの電話番号が所定の番号であるか否かを判定することによって、ルールに基づく分類を行えばよい。
【００６７】
また例えば、ルールとして、行動データに含まれる所定項目の文字が定められている場合、第２分類部１０３は、行動データの当該所定項目の文字を参照し、ルールに示された文字であるか否かを判定する。第２分類部１０３は、文字の完全一致を判定してもよいし部分一致を判定してもよい。
【００６８】
例えば、ルールＩＤが「ｒ００００３」のルールであれば、第２分類部１０３は、行動データのユーザ名に基づいて、ホワイトリストに存在するか否かを判定する。第２分類部１０３は、ユーザ名がホワイトリストに存在する場合、行動データが示すユーザを正常ユーザに分類する。なお、第２分類部１０３は、ユーザ名がホワイトリストに存在しない場合、ユーザを不正ユーザに分類してもよいし、正常ユーザ及び不正ユーザの何れでもないユーザとして分類してもよい。
【００６９】
なお、ホワイトリストではなく、ブラックリストに関するルールが定められていてもよい。例えば、「ユーザ名がブラックリストにある場合に不正ユーザとする」といったルールが定められていてもよい。この場合、第２分類部１０３は、行動データのユーザ名に基づいて、ブラックリストに存在するか否かを判定する。第２分類部１０３は、ユーザ名がブラックリストに存在する場合、行動データが示すユーザを不正ユーザに分類する。なお、第２分類部１０３は、ユーザ名がブラックリストに存在しない場合、ユーザを正常ユーザに分類してもよいし、正常ユーザ及び不正ユーザの何れでもないユーザとして分類してもよい。
【００７０】
また、文字に関する条件をルールとする場合、ユーザ名以外の文字がルールとして定められていてもよい。例えば、ユーザＩＤ、メールアドレス、又は住所などを示す文字をルールとして定めておいてもよい。この場合、第２分類部１０３は、行動データが示すユーザのユーザＩＤ、メールアドレス、又は住所などが所定の文字であるか否かを判定することによって、ルールに基づく分類を行えばよい。
【００７１】
［３−５．判定部］
判定部１０４は、制御部１１を主として実現される。判定部１０４は、ルールを満たす行動データに関する統計情報に基づいて、ルールを学習させるか否かを判定する。
【００７２】
統計情報とは、ルールを満たす行動データの統計に関する情報であり、例えば、ルールを満たす行動データの数、又は、ルールを満たす行動データの分布である。分布は、行動データが示す値の分布であり、例えば、尖度、歪度、モーメント、密度、平均値、又は標準偏差などである。統計情報は、数や分布以外の統計的な情報であってもよく、例えば、数と分布を所定の計算式に代入して得られた評価値を用いてもよいし、行動データのヒストグラムの形状などであってもよい。
【００７３】
ルールを学習させるとは、ルールによる行動データの分類結果に基づいて教師データを作成し、当該教師データを利用して機械学習モデルを学習させることである。例えば、ルールを満たす行動データに基づいて教師データが作成されてもよいし、これとは逆に、ルールを満たさない行動データに基づいて教師データが作成されてもよい。他にも例えば、ルールを満たすか否かに関係なく、行動データに基づいて教師データが作成されてもよい。なお、教師データは、人手で作成してもよいし、サーバ１０などのコンピュータによって作成されてもよい。
【００７４】
本実施形態では、ルールを満たす行動データを入力とし、当該ルールを満たした場合の分類結果（ルールの診断結果）を出力とする教師データが作成される場合を説明する。なお、機械学習モデルとは別に、特徴量を計算するアルゴリズムを用意する場合には、ルールを満たす行動データの特徴量を入力とし、当該ルールを満たした場合の分類結果（ルールの診断結果）を出力とする教師データが作成される。
【００７５】
本実施形態では、複数のルールが存在するので、判定部１０４は、ルールごとに、当該ルールを満たす行動データに基づいて統計情報を取得し、当該ルールを学習させるか否かを判定する。判定部１０４は、統計情報が所定の統計を示さない場合には、ルールを学習させると判定せず、統計情報が所定の統計を示す場合に、ルールを学習させると判定する。
【００７６】
所定の統計は、学習に向くと思われる統計であればよく、本実施形態では、下記に説明するように、ルールを満たす行動データの数が閾値以上であること、又は、ルールを満たす行動データの分布が所定の分布になることを例に挙げて説明する。
【００７７】
例えば、判定部１０４は、統計情報に基づいて、ルールを満たす行動データの数が閾値以上であるか否かを判定する。判定部１０４は、ルールを満たす行動データの数が閾値未満である場合には、ルールを学習させると判定せず、ルールを満たす行動データの数が閾値以上である場合に、ルールを学習させると判定する。閾値は、固定値であってもよいし、可変値であってもよい。閾値を可変値とする場合には、ユーザが指定してもよいし、ルールの内容や行動データの総数などに応じて変化させてもよい。
【００７８】
例えば、ルールＩＤが「ｒ００００１」のルールであれば、判定部１０４は、利用中心地からの距離が１００ｋｍ以上である行動データを集計して統計情報として取得し、当該集計した数が閾値以上であれば、ルールを学習させると判定する。また例えば、ルールＩＤが「ｒ００００２」のルールであれば、判定部１０４は、ＩＰアドレスが日本ではない行動データを集計して統計情報として取得し、当該集計した数が閾値以上であれば、ルールを学習させると判定する。なお、本実施形態では、ルールＩＤが「ｒ００００３」のルールについては、学習対象フラグがオフなので、判定部１０４は、ルール３の統計情報は取得しない。
【００７９】
図５は、ルールを満たす行動データが少ない場合の一例を示す図であり、図６は、ルールを満たす行動データが多い場合の一例を示す図である。なお、図５及び図６では、行動データがｎ次元のベクトルで示されており、ｎ次元空間上に行動データをプロットした場合について説明する。このため、図５及び図６における小さな円は、行動データを示す。なお、図５及び図６では、ルールを満たす行動データの集合を「Ｇ」の符号で示している。これらの点は、後述する図７及び図８も同様である。
【００８０】
例えば、図５に示すように、ルールを満たす行動データが比較的少ない場合には、教師データの分量も少なくなるので、行動データの特徴を学習させることが難しい。このため、判定部１０４は、ルールを満たす行動データを学習させないと判定する。一方、図６に示すように、ルールを満たす行動データが比較的多い場合には、教師データの分量が十分にあるので、行動データの特徴を学習させることが可能である。このため、判定部１０４は、ルールを満たす行動データを学習させると判定する。
【００８１】
また例えば、判定部１０４は、統計情報に基づいて、ルールを満たす行動データの分布が所定の分布であるか否かを判定してもよい。判定部１０４は、ルールを満たす行動データの分布が所定の分布ではない場合には、ルールを学習させると判定せず、ルールを満たす行動データの分布が所定の分布である場合に、ルールを学習させると判定する。
【００８２】
所定の分布とは、ルールを学習させるための条件である。ルールを満たす行動データの特徴が偏っている場合、行動データに共通の特徴が存在し、学習に向く可能性がある。このため、本実施形態では、行動データの特徴の偏り具合が所定の偏り以上であることが所定の分布に相当する場合を説明する。偏りは、バイアスと呼ばれることもある。
【００８３】
分布の偏りは、任意の指標を用いて表現可能であり、例えば、尖度、歪度、分散、頻度、又はモーメントによって示される。判定部１０４は、分布の偏りを示すこれらの指標が所定範囲でない場合に、所定の分布ではないと判定し、当該指標が所定範囲である場合に、所定の分布であると判定する。本実施形態では、尖度を利用する場合を例に挙げて説明する。
【００８４】
図７は、ルールを満たす行動データが偏っていない場合の一例を示す図であり、図８は、ルールを満たす行動データが偏っている場合の一例を示す図である。図７に示すように、ルールを満たす行動データが偏っておらず、分散している場合には、共通の特徴が存在しない可能性があるので、判定部１０４は、ルールを満たす行動データを学習させないと判定する。一方、図８に示すように、ルールを満たす行動データが偏っている場合には、共通の特徴が存在する可能性があるので、判定部１０４は、ルールを満たす行動データを学習させると判定する。
【００８５】
なお、ルールリストＬに格納された全てのルールが学習対象になってもよいが、本実施形態では、学習対象となるルールが指定され、ルールリストＬには学習対象フラグが格納されるので、判定部１０４は、複数のルールのうち、学習対象として指定されたルールを満たす行動データに関する統計情報に基づいて、学習対象として指定されたルールを学習させるか否かを判定する。判定部１０４は、学習対象として指定されなかったルールについては、学習させないと判定する。
【００８６】
［３−６．第１評価部］
第１評価部１０５は、制御部１１を主として実現される。第１評価部１０５は、機械学習モデルにおけるルールの不確かさを評価する。ここでの機械学習モデルとは、第１分類部１０２が利用する機械学習モデルであり、ルールを学習させる前の既存の機械学習モデルである。
【００８７】
不確かさとは、機械学習モデルによる分類結果と、ルールによる分類結果と、がどの程度一致しないかを示す指標である。別の言い方をすれば、不確かさは、機械学習モデルがルールと同じ分類結果を出力できる確率の低さである。不確かであるほど、機械学習モデルによる分類結果と、ルールによる分類結果と、が一致せず、確かであるほどこれらが一致する。不確かさは、機械学習モデルによる予測の確実性ということもできる。
【００８８】
不確かさの評価方法は、機械学習モデルに応じた方法を利用すればよい。例えば、第１評価部１０５は、機械学習モデル及びルールの各々に、一定数の行動データを分類させ、これらの一致度に基づいて評価をしてもよい。一致度は、分類結果が一致した行動データの数であってもよいし、割合又は確率であってもよい。対象となる行動データは、行動データベースに格納された全ての行動データであってもよいし、一部の行動データであってもよい。一部の行動データとする場合には、ルールを満たす行動データだけであってもよいし、ランダムに選出された行動データであってもよい。
【００８９】
第１評価部１０５は、一致度が閾値以上であれば、機械学習モデルにおけるルールが確かであると評価し、一致度が閾値未満であれば、機械学習モデルにおけるルールが不確かであると評価する。第１評価部１０５は、ルールリストＬに格納された全てのルールについて不確かさを評価してもよいし、一部のルールについてだけ不確かさを評価してもよい。一部のルールについてだけ評価する場合には、第１評価部１０５は、判定部１０４により学習させると判定されたルールだけを評価してもよいし、学習対象フラグがオンになっているルールだけを評価してもよい。
【００９０】
［３−７．学習部］
学習部１０６は、制御部１１を主として実現される。学習部１０６は、判定部１０４により学習させると判定されたルールの学習処理を実行する。
【００９１】
学習処理は、機械学習モデルを学習させるための処理であり、例えば、教師データを作成すること、及び、教師データに基づいて機械学習モデルのパラメータを調整することの少なくとも一方を意味する。例えば、学習部１０６は、判定部１０４により学習させると判定されたルールによる行動データの分類結果に基づいて、教師データを作成する。
【００９２】
例えば、教師データは、行動データを入力とし、ルールによる分類結果を出力としてもよいし、行動データの特徴量を入力とし、ルールによる分類結果を出力としてもよい。学習部１０６は、当該作成された教師データに基づいて、学習処理を実行する。教師データを利用した学習方法自体は、教師有り機械学習で用いられる種々の手法を適用可能であり、学習部１０６は、教師データが示す結果が得られるように、機械学習モデルのパラメータを調整する。
【００９３】
例えば、学習部１０６は、第１分類部１０２が利用中の機械学習モデルに、追加でルールを学習させる。第１分類部１０２が利用中の機械学習モデルは、他の教師データに基づいて学習済みの機械学習モデルであり、データ記憶部１００に記憶された既存の機械学習モデルである。学習部１０６は、判定部１０４により学習させると判定されたルールに基づいて作成された教師データに基づいて、データ記憶部１００に記憶された既存の機械学習モデルを追加学習させる。
【００９４】
また例えば、学習部１０６は、新たな機械学習モデルに、ルールを学習させてもよい。新たな機械学習モデルは、第１分類部１０２が利用していない機械学習モデルであり、例えば、教師データに基づくパラメータの調整が行われていないモデルである。学習部１０６は、第１分類部１０２が利用する機械学習モデルの学習時に使用した教師データと、判定部１０４により学習させると判定されたルールに基づいて作成された教師データと、に基づいて、新たな機械学習モデルを学習させる。
【００９５】
本実施形態では、学習部１０６は、第１評価部１０５の評価結果に基づいて、学習処理を実行する。例えば、学習部１０６は、第１評価部１０５の評価結果に基づいて、学習処理を実行するか否かを決定する。学習部１０６は、第１評価部１０５により不確かであるとの評価が得られない場合（即ち、確かであるとの評価が得られた場合）には、学習処理を実行せず、第１評価部１０５により不確かであるとの評価が得られた場合に、学習処理を実行する。即ち、学習部１０６は、第１評価部１０５により不確かであるとの評価が得られないルールについては、機械学習モデルで既に判断できる内容の可能性があるので、過学習を防止するために、当該ルールの学習処理は実行しないようにする。
【００９６】
また例えば、学習部１０６は、第１評価部１０５の評価結果に基づいて、学習処理における学習係数を決定してもよい。学習部１０６は、第１評価部１０５により不確かであるとの評価が得られない場合の学習係数を、第１評価部１０５により不確かであるとの評価が得られた場合の学習係数よりも低くする。即ち、学習部１０６は、第１評価部１０５により不確かであるとの評価が得られない場合には、機械学習モデルで既に判断できる内容の可能性があるので、過学習を防止するために、第１評価部１０５により不確かであるとの評価が得られた場合よりも学習への影響を小さくする。
【００９７】
［３−８．除外部］
除外部１０７は、制御部１１を主として実現される。除外部１０７は、第１評価部１０５により不確かではないと評価されたルールが用いられないように除外する。第１評価部１０５により不確かではないと評価されたルールについては、機械学習モデルで既に判断できる内容の可能性があるので、除外部１０７は、ルールを除外することによって、行動データとの判定対象にならないようにする。
【００９８】
除外とは、第２分類部１０３により参照されないようにすることであり、行動データと比較されないようにすることである。本実施形態では、ルールリストＬからルールを削除することによって、ルールの除外が行われる場合を説明するが、除外するか否かを示す除外フラグを用意しておく場合には、特にルールリストＬからルールを削除することなく、ルールの除外が行われてもよい。
【００９９】
除外部１０７は、学習処理により学習されたルールが用いられないように除外してもよい。学習処理により学習されたルールについては、機械学習モデルで既に判断できる内容の可能性があるので、除外部１０７は、ルールを除外することによって、行動データとの判定対象にならないようにする。ただし、本実施形態では、除外部１０７は、後述する第２評価部１０８の評価に基づいて、学習済みのルールを本当に削除するか否かを決定する。例えば、除外部１０７は、第２評価部１０８により不確かであると評価された場合には、学習処理が実行されたルールを除外せず、第２評価部１０８により不確かであると評価された場合に、学習処理が実行されたルールを除外する。
【０１００】
［３−９．第２評価部］
第２評価部１０８は、制御部１１を主として実現される。第２評価部１０８は、学習処理によりルールが学習された機械学習モデルにおける当該ルールの不確かさを評価する。不確かさの評価方法は、機械学習モデルに応じた方法を利用すればよく、第１評価部１０５と同様の方法であってもよいし、第１評価部１０５とは異なる方法であってもよい。
【０１０１】
本実施形態では、第１評価部１０５の評価方法と第２評価部１０８の評価方法とが同じである場合を説明する。このため、第２評価部１０８は、学習処理によりルールが学習された機械学習モデル及び当該ルールの各々に、一定数の行動データを分類させ、これらの一致度に基づいて評価をしてもよい。第１評価部１０５は、一致度が閾値以上であれば、機械学習モデルにおけるルールが確かであると評価し、一致度が閾値未満であれば、機械学習モデルにおけるルールが不確かであると評価する。
【０１０２】
［３−１０．切替部］
切替部１０９は、制御部１１を主として実現される。切替部１０９は、第２評価部１０８の評価結果に基づいて、学習処理によりルールが学習された機械学習モデルに切り替える。例えば、切替部１０９は、第２評価部１０８により不確かであると評価された場合には、機械学習モデルを切り替えずに既存の機械学習モデルのまま運用し、第２評価部１０８により不確かであると評価されない場合に、機械学習モデルを切り替える。切替部１０９は、機械学習モデルを切り替える場合、データ記憶部１００から古い機械学習モデルを削除し、学習部１０６により学習済みの機械学習モデルに置き換える。
【０１０３】
［４．本実施形態において実行される処理］
次に、学習システムＳにおいて実行される処理について説明する。ここでは、ユーザを正常ユーザ又は不正ユーザに分類するための分類処理と、機械学習モデルにルールを学習させるための学習処理と、について説明する。
【０１０４】
［４−１．分類処理］
図９は、分類処理の一例を示すフロー図である。図９に示す分類処理は、制御部１１，２１が、それぞれ記憶部１２，２２に記憶されたプログラムに従って動作することによって実行される。下記に説明する処理は、図２に示す機能ブロックにより実行される処理の一例である。なお、分類処理が実行されるにあたり、ユーザは、利用登録を済ませており、サーバ１０にログイン済みであるものとする。
【０１０５】
図９に示すように、まず、ユーザ端末２０において、制御部２１は、ユーザがサーバ１０のＵＲＬを指定した場合に、サーバ１０に対し、アクセス要求を送信する（Ｓ１００）。Ｓ１００におけるアクセス要求には、ユーザが指定したＵＲＬ、ユーザＩＤ、ユーザ名、及びユーザ端末２０のＩＰアドレスが含まれているものとする。
【０１０６】
サーバ１０においては、アクセス要求を受信すると、制御部１１は、行動データを生成し、行動データベースＤＢに格納する（Ｓ１０１）。Ｓ１０１においては、制御部１１は、行動データベースＤＢに新たなレコードを作成し、当該新たなレコードに、アクセス要求に含まれるユーザＩＤ、ユーザ名、ＩＰアドレス、及びＵＲＬを格納する。また、制御部１１は、ＩＰアドレスから推測した場所をアクセス場所として格納し、リアルタイムクロックやＧＰＳ情報等を利用して取得した現在日時をアクセス日時として格納する。
【０１０７】
制御部１１は、機械学習モデルに基づいて、Ｓ１００で生成した行動データに関する分類を行う（Ｓ１０２）。Ｓ１０２においては、制御部１１は、行動データを機械学習モデルに入力する。機械学習モデルは、入力された行動データの特徴量を計算し、当該特徴量に基づいて、正常ユーザ又は不正ユーザの何れであるかを分類する。制御部１１は、機械学習モデルから出力された分類結果を取得し、行動データベースＤＢに格納する。
【０１０８】
制御部１１は、ルールリストＬが示すルールに基づいて、Ｓ１０３で生成した行動データに関する分類を行う（Ｓ１０３）。Ｓ１０３においては、制御部１１は、ルールリストＬが示すルールごとに、行動データが当該ルールを満たすか否かを判定する。制御部１１は、ルールを満たすと判定した場合には、当該ルールに関連付けられた診断結果を行動データベースＤＢに格納する。行動データが満たさなかったルールについては、特に何も格納されなくてよい。Ｓ１０２又はＳ１０３の処理により不正ユーザと分類された場合には、管理者に電子メール等の通知が送信され、管理者の判断を仰ぐようにしてもよいし、ユーザに対して追加の認証を要求してもよい。
【０１０９】
［４−２．学習処理］
図１０は、学習処理の一例を示すフロー図である。図１０に示す学習処理は、制御部１１が記憶部１２に記憶されたプログラムに従って動作することによって実行される。下記に説明する処理は、図２に示す機能ブロックにより実行される処理の一例である。なお、学習処理が実行されるにあたり、管理者が作成したルールがルールデータベースに格納されているものとする。学習処理は、任意のタイミングで実行されるようにすればよく、例えば、管理者が所定の操作をした場合に実行されてもよいし、所定の日時が訪れた場合に実行されてもよい。
【０１１０】
図１０に示すように、まず、制御部１１は、ルールデータベースに基づいて、学習対象のルールを特定する（Ｓ２００）。Ｓ２００においては、制御部１１は、ルールデータベースに格納された全てのルールの学習対象フラグを参照し、学習対象フラグがオンになっているルールを特定する。以降説明するＳ２０１〜Ｓ２０８の処理は、学習対象のルールごとに実行される。
【０１１１】
制御部１１は、行動データベースＤＢに基づいて、既存の機械学習モデルにおける学習対象のルールの不確かさを評価する（Ｓ２０１）。Ｓ２０１においては、制御部１１は、行動データベースＤＢに格納された機械モデルの診断結果と、学習対象のルールの診断結果と、の一致度に基づいて、不確かさを評価する。ここでは、一致度が閾値以上であれば、確かであるとの評価が得られ、一致度が閾値未満であれば、不確かであるとの評価が得られる。
【０１１２】
学習対象のルールが確かであるとの評価が得られた場合（Ｓ２０１；確か）、ルールの内容が既存の機械学習モデルで判断できる可能性があるので、制御部１１は、ルールリストＬから学習対象のルールを除外し（Ｓ２０２）、Ｓ２０８の処理に移行する。このルールは、機械学習モデルに学習されない。
【０１１３】
一方、学習対象のルールが不確かであるとの評価が得られた場合（Ｓ２０１；不確か）、制御部１１は、行動データベースＤＢに基づいて、学習対象のルールを満たす行動データの数を取得する（Ｓ２０３）。Ｓ２０３おいては、制御部１１は、行動データベースＤＢのルール診断結果を参照し、学習対象のルールの分類結果が格納されている行動データをカウントする。なお、Ｓ２０３時点で、制御部１１は、行動データベースＤＢに格納された行動データが学習対象のルールを満たすか否かを判定し（Ｓ１０３と同様の処理を実行し）、ルールを満たす行動データをカウントしてもよい。
【０１１４】
制御部１１は、学習対象のルールを満たす行動データの数が閾値以上であるか否かを判定する（Ｓ２０４）。学習対象のルールを満たす行動データの数が閾値以上であると判定された場合（Ｓ２０４Ｙ）、制御部１１は、当該ルールを満たす行動データに基づいて、教師データを作成する（Ｓ２０５）。Ｓ２０５においては、制御部１１は、ルールを満たす行動データ又は当該行動データの特徴量を入力とし、ルールによる分類結果を出力とする教師データを作成する。
【０１１５】
一方、学習対象のルールを満たす行動データの数が閾値以上であると判定されない場合（Ｓ２０４；Ｎ）、制御部１１は、行動データベースＤＢに基づいて、学習対象のルールを満たす行動データの分布を取得する（Ｓ２０６）。Ｓ２０６においては、制御部１１は、学習対象のルールを満たす行動データの尖度を計算する。なお、先述したように、尖度以外に任意の指標を利用可能であり、例えば、歪度又はモーメントを利用してもよい。
【０１１６】
制御部１１は、学習対象のルールを満たす行動データの分布が所定の分布であるか否かを判定する（Ｓ２０７）。Ｓ２０７においては、制御部１１は、Ｓ２０６で計算した尖度が閾値以上であるか否かを判定する。制御部１１は、尖度が閾値以上であれば、分布が偏っているので所定の分布であると判定し、尖度が閾値未満であれば、分布が偏っていないので所定の分布であると判定しない。
【０１１７】
学習対象のルールを満たす行動データの分布が所定の分布であると判定された場合（Ｓ２０７；Ｙ）、Ｓ２０５の処理に移行し、教師データが作成される。一方、学習対象のルールを満たす行動データの分布が所定の分布であると判定されない場合（Ｓ２０７；Ｎ）、制御部１１は、学習対象の全てのルールについて、処理を実行したか否かを判定する（Ｓ２０８）。
【０１１８】
学習対象の全てのルールについて処理を実行したと判定されない場合（Ｓ２０８；Ｎ）、Ｓ２０１の処理に戻り、まだ判定されていないルールについての処理が実行される。一方、学習対象の全てのルールについて処理を実行したと判定された場合（Ｓ２０８；Ｙ）、制御部１１は、Ｓ２０５の処理で作成した教師データに基づいて、機械学習モデルの学習処理を実行し（Ｓ２０９）、検証モードに移行する（Ｓ２１０）。
【０１１９】
検証モードは、既存の機械学習モデルと、Ｓ２０９で学習処理をした機械学習モデルと、を共存させるモードである。この場合、分類処理のＳ１０２では、これら両方の機械学習モデルによる分類が行われてもよいし、所定の確率のもとで何れかの機械学習モデルが選択されてもよい。検証モードは、一定の期間継続される。一定期間経過後に、以降の処理が実行される。
【０１２０】
制御部１１は、検証中の機械学習モデルが不確かであるか否かを判定する（Ｓ２１１）。Ｓ２１１の処理は、Ｓ２０２と同様であるが、既存の機械学習モデルの診断結果ではなく、Ｓ２０９で学習させた機械学習モデルの診断結果が参照される点でＳ２０２とは異なる。
【０１２１】
検証中の機械学習モデルが不確かであると判定された場合（Ｓ２１１；不確か）、制御部１１は、機械学習モデルを切り替えず（Ｓ２１２）、本処理を終了する。この場合、学習処理により学習させたはずのルールがうまく機械学習モデルに学習されなかったので、検証中の機械学習モデルは適用されず、既存の機械学習モデルに戻される。この場合、ルールは削除されずに残ったままとなる。
【０１２２】
一方、検証中の機械学習モデルが確かであると判定された場合（Ｓ２１１；確か）、制御部１１は、機械学習モデルを切り替えて（Ｓ２１３）、ルールリストＬから学習済みのルールを除外する（Ｓ２１４）。以降、検証モードが終了し、Ｓ２１３において切替られた機械学習モデルに基づいて、分類処理のＳ１０２の処理が実行される。
【０１２３】
本実施形態の学習システムＳによれば、ルールを満たすデータに関する統計情報に基づいて、ルールを学習させるか否かを判定し、学習させると判定されたルールの学習処理を実行する。これにより、学習に向くルールを統計的な観点で絞りこんで学習させ、機械学習モデルの精度を向上させてルールの数を減らすことができる。例えば、ルールの数が多くなると、行動データとルールを比較する処理を数多く実行しなければならないので、サーバ１０の処理負荷が増大し、分類結果が決定されるまでにより多くの時間を要することになるが、ルールの数を減らすことで、行動データとルールを比較する処理を減らし、サーバ１０の処理負荷を軽減し、処理速度を向上させることができる。更に、ルールを減らすことによるサーバ１０のメモリ容量削減も図ることができる。
【０１２４】
また、ルールを満たすデータの数が閾値未満である場合には、ルールを学習させると判定せず、ルールを満たすデータの数が閾値以上である場合に、ルールを学習させると判定することで、学習に十分な量のデータがないにも関わらず学習処理が実行されることを防止することができる。これにより、機械学習モデルの精度が低下することを防止することができる。
【０１２５】
また、ルールを満たすデータの分布が所定の分布ではない場合には、ルールを学習させると判定せず、ルールを満たすデータの分布が所定の分布ではない場合には、ルールを学習させると判定することで、学習に適した分布ではないにも関わらず学習処理が実行されることを防止することができる。これにより、機械学習モデルの精度が低下することを防止することができる。
【０１２６】
また、機械学習モデルにおけるルールの不確かさを評価して学習処理を実行することで、機械学習モデルが十分に判断できる内容のルールが学習されることを防止することができる。これにより、機械学習モデルの過学習を防止できる。例えば、不確かではないとの評価が得られたルールについては学習させず、不確かであるとの評価が得られたルールを学習させることで、機械学習モデルが判断できない内容のルールを学習させ、機械学習モデルの精度を効果的に高めることができる。
【０１２７】
また、不確かではないと評価されたルールについては、機械学習モデルが判断できる可能性があるので、このようなルールについては、分類で用いられないように除外することで、ルールの数を効果的に減らすことができる。その結果、データとの比較対象となるルールを削減し、サーバ１０の処理負荷を効果的に軽減し、処理速度を効果的に向上させることができる。
【０１２８】
また、学習処理により学習されたルールについては、機械学習モデルで判断可能になっている可能性があるので、このルールが用いられないように除外することにより、ルールの数を効果的に減らすことができる。その結果、データとの比較対象となるルールを削減し、サーバ１０の処理負荷を効果的に軽減し、処理速度を効果的に向上させることができる。
【０１２９】
また、ルールを学習させた後にすぐに機械学習モデルを切り替えるのではなく、ルールが学習された機械学習モデルにおけるルールの不確かさの評価結果に基づいて、ルールが学習された機械学習モデルに切り替えることで、機械学習モデルの精度の低下を防止することができる。
【０１３０】
また、全てのルールを機械学習モデルに学習させるのではなく、学習対象として指定されたルールを学習させることにより、不要なルールが学習されることを防止し、機械学習モデルの精度の低下を防止することができる。
【０１３１】
また、ユーザの行動に関する行動データに関する分類を行うことで、ユーザの行動を分類する精度を高めることができる。
【０１３２】
［５．変形例］
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【０１３３】
例えば、実施形態では、ルールを満たす行動データの数と、ルールを満たす行動データの分布と、の両方に基づいて、ルールを学習させるか否かが決定される場合を説明したが、これらの何れか一方だけに基づいて、ルールを学習させるか否かが決定されてもよい。また例えば、数及び分布以外の統計情報に基づいて、ルールを学習させるか否かが決定されてもよい。また例えば、ルールの不確かさの評価を実行する処理は、省略してもよい。また例えば、学習処理により学習されたルールを除外する場合を説明したが、特に除外せず、ルールが参照される頻度を減らしてもよい。また例えば、一定期間の検証モードを設ける場合を説明したが、特に検証モードは設けなくてもよい。また例えば、学習対象となるルールが指定される場合を説明したが、特に指定が行われず、全てのルールが学習対象となってもよい。
【０１３４】
また例えば、実施形態では、ウェブサイトにアクセスしたユーザの不正を検知する場合について説明したが、学習システムＳは、データに関する分類が行われる場合に適用可能であり、他の場面に適用してもよい。例えば、ユーザの不正を検知する場面以外の場面にも学習システムＳを適用可能であり、自然言語処理、機械翻訳、文章変換、又はチャットボットなどの機械学習モデルが用いられる場合にも、ルールを学習させるか否かを判定してもよい。
【０１３５】
また例えば、ユーザがインターネット上で商品を購入する場合の不正行為を検出する場面に学習システムＳを適用してもよい。この場合、サーバ１０は、オンラインショッピングモールのウェブサイトをユーザに提供する。ユーザは、利用登録を行い、カード番号などの決済情報を予めサーバ１０に登録しているものとする。決済情報としては、商品を購入した店舗の店舗ＩＤ、店舗名、商品の商品ＩＤ、商品名、数量、決済金額、及びカード番号といった情報が含まれるようにしてもよい。例えば、ユーザが商品を購入すると、サーバ１０は、ユーザの決済情報などを含む行動データを生成する。管理者は、ルールとして、決済金額や配送先住所などに関する条件を指定可能である。学習システムＳは、ユーザの決済情報などを含む行動データに基づいて、ルールを満たすか否かを判定する。学習システムＳは、ルールを満たす行動データに関する統計情報に基づいて、ルールを学習させるか否かを判定すればよい。この判定処理や学習処理の詳細については、実施形態で説明した通りである。
【０１３６】
また例えば、行動データに関する分類が行われる場合を説明したが、ユーザの行動以外のデータに関する分類が行われてもよい。例えば、機械学習モデルやルールを利用して、画像データに撮影された被写体を分類する場面に学習システムＳを用いてもよい。また例えば、機械学習モデルやルールを利用して、気象データが示す温度や湿度などに基づいて天候を分類する場面に学習システムＳを用いてもよい。また例えば、機械学習モデルやルールを利用して、文章データの要約を作成する画面に学習システムＳを用いてもよい。他にも、任意の内容のデータに関する分類をする場面に学習システムＳを適用可能である。
【０１３７】
また例えば、主な機能がサーバ１０で実現される場合を説明したが、各機能は、複数のコンピュータで分担されてもよい。例えば、サーバ１０、ユーザ端末２０、及び管理者端末３０の各々で機能が分担されてもよい。例えば、分類などの処理がサーバ１０で実行されるのではなく、ユーザ端末２０又は管理者端末３０で実行されてもよい。また例えば、学習システムＳが複数のサーバコンピュータを含む場合には、これら複数のサーバコンピュータで機能が分担されてもよい。また例えば、データ記憶部１００で記憶されるものとして説明したデータは、サーバ１０以外のコンピュータによって記憶されてもよい。
【要約】
学習システム（Ｓ）の第１分類手段（１０２）は、機械学習モデルに基づいて、データに関する分類を行う。第２分類手段（１０３）は、所定のルールに基づいて、データに関する分類を行う。判定手段（１０４）は、ルールを満たすデータに関する統計情報に基づいて、ルールを学習させるか否かを判定する。学習手段（１０６）は、判定手段（１０４）により学習させると判定されたルールの学習処理を実行する。【図１】
0006706397.tif 000002
【図２】
0006706397.tif 000003
【図３】
0006706397.tif 000004
【図４】
0006706397.tif 000005
【図５】
0006706397.tif 000006
【図６】
0006706397.tif 000007
【図７】
0006706397.tif 000008
【図８】
0006706397.tif 000009
【図９】
0006706397.tif 000010
【図１０】
0006706397.tif 000011