[1.学習システムの全体構成]
以下、本発明に係る学習システムの実施形態の例を説明する。図1は、学習システムの全体構成を示す図である。図1に示すように、学習システムSは、サーバ10、ユーザ端末20、及び管理者端末30を含み、これらは、インターネットなどのネットワークNに接続可能である。なお、図1では、サーバ10、ユーザ端末20、及び管理者端末30の各々を1台ずつ示しているが、これらは複数台あってもよい。
サーバ10は、サーバコンピュータである。サーバ10は、制御部11、記憶部12、及び通信部13を含む。制御部11は、少なくとも1つのプロセッサを含む。制御部11は、記憶部12に記憶されたプログラムやデータに従って処理を実行する。記憶部12は、主記憶部及び補助記憶部を含む。例えば、主記憶部はRAMなどの揮発性メモリであり、補助記憶部は、ROM、EEPROM、フラッシュメモリ、又はハードディスクなどの不揮発性メモリである。通信部13は、有線通信又は無線通信用の通信インタフェースであり、ネットワークNを介してデータ通信を行う。
ユーザ端末20は、ユーザが操作するコンピュータである。例えば、ユーザ端末20は、携帯電話機(スマートフォンを含む)、携帯情報端末(タブレット型コンピュータを含む)、又はパーソナルコンピュータ等である。本実施形態では、ユーザ端末20は、制御部21、記憶部22、通信部23、操作部24、及び表示部25を含む。制御部21、記憶部22、及び通信部23の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。
操作部24は、入力デバイスであり、例えば、タッチパネルやマウス等のポインティングデバイス、キーボード、又はボタン等である。操作部24は、ユーザによる操作内容を制御部21に伝達する。表示部25は、例えば、液晶表示部又は有機EL表示部等である。表示部25は、制御部21の指示に従って画像を表示する。
管理者端末30は、管理者が操作するコンピュータである。例えば、管理者端末30は、携帯電話機(スマートフォンを含む)、携帯情報端末(タブレット型コンピュータを含む)、又は、パーソナルコンピュータ等である。本実施形態では、管理者端末30は、制御部31、記憶部32、通信部33、操作部34、及び表示部35を含む。制御部31、記憶部32、通信部33、操作部34、及び表示部35の物理的構成は、それぞれ制御部21、記憶部22、通信部23、操作部24、及び表示部25と同様であってよい。
なお、記憶部12,22,32に記憶されるものとして説明するプログラム及びデータは、ネットワークNを介して供給されるようにしてもよい。また、上記説明した各コンピュータのハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、光ディスクドライブやメモリカードスロット)や外部機器とデータの入出力をするための入出力部(例えば、USBポート)が含まれていてもよい。例えば、情報記憶媒体に記憶されたプログラムやデータが読取部や入出力部を介して、各コンピュータに供給されるようにしてもよい。
[2.学習システムの概要]
本実施形態では、サーバ10が、ニュースや動画などのウェブサイトをユーザに提供し、ウェブサイトにアクセスしたユーザの行動を分析する場面を例に挙げて、学習システムSの処理を説明する。例えば、学習システムSは、ユーザがウェブサイトにアクセスした場合に行動データを生成し、機械学習モデル及びルールを利用して行動データを分析し、正常ユーザ又は不正ユーザの何れかに分類する。
行動データは、ユーザの行動に関するデータである。行動データは、少なくとも1つの項目を含み、ユーザの行動内容が格納される。例えば、行動データは、ユーザがアクセスしたウェブサイトのURL、ユーザが使用したユーザ端末20の識別情報(例えば、IPアドレス、個体識別情報、電話番号、又はSIM情報など)、ユーザがユーザ端末20を使用した場所、ウェブサイトにアクセスした日時、又は、操作部24からの入力内容を含む。
正常ユーザは、正常な行動をしたユーザであり、不正ユーザではないユーザである。不正ユーザは、不正な行動をしたユーザであり、正常ユーザではないユーザである。不正な行動とは、サービス提供者又は他のユーザなどに不利益となる行動であり、例えば、ハッキング、クラッキング、悪意のある投稿、意図的に多量のアクセスを行うこと、他のユーザへの迷惑行為、サービス規約に反する行為、又は法律違反となる行為などである。
例えば、正常ユーザに対するサービスは制限されず、不正ユーザに対するサービスは制限される。ただし、不正ユーザに分類された場合に、直ちにサービスが制限される必要はなく、管理者の審査が行われた後にサービスが制限されてもよいし、ユーザに対する追加の認証が行われた後にサービスが制限されてもよい。
機械学習モデルは、学習済みのモデルである。機械学習モデルは、学習器、分類器、又は分類学習器と呼ばれることもある。本実施形態では、不正ユーザであるか否かを分類するための機械学習モデルが用いられる。機械学習自体は、公知の種々の手法を利用可能であり、例えば、ニューラルネットワーク、強化学習、又は深層学習といった手法を利用可能である。機械学習は、教師有り機械学習に限られず、半教師有り機械学習が用いられてもよいし、教師無し機械学習が用いられてもよい。
例えば、機械学習モデルは、入力されたデータの特徴量を計算し、データに関する分類を行う。特徴量は、データの特徴を示す数値であり、例えば、n(nは自然数)次元のベクトル、又は、n個の要素からなる配列で示される。なお、機械学習モデルとは別に、特徴量を計算するためのアルゴリズムを用意してもよい。この場合、機械学習モデルは、特徴量を計算する必要がなく、当該アルゴリズムによって計算された特徴量が機械学習モデルに入力される。
例えば、不正ユーザが、ある特定の時間帯にアクセスしたり、一定頻度以上でアクセスしたりする傾向にある場合には、機械学習モデルには、不正ユーザのアクセス時間帯やアクセス頻度などの特徴が学習される。この場合、機械学習モデルは、ウェブサイトにアクセスしたユーザの行動データに基づいて、アクセス時間帯やアクセス頻度などの特徴量を計算し、正常ユーザ又は不正ユーザの何れかに分類する。
一方、ルールは、機械学習モデルとは別に用意された条件を含む。ルールに含まれる条件は、1つだけであってもよいし、複数であってもよい。本実施形態では、不正ユーザであるか否か分類するためのルールが用いられる。複数の条件がルールに含まれる場合には、これら複数の条件をAND条件としてもよいしOR条件としてもよい。
本実施形態では、ルールは、人手によって定められるものとして説明するが、ルールを生成するアルゴリズムを用意してもよい。行動データが数値を含んでいれば、ルールには、数値範囲を示す条件が含まれる。また例えば、行動データが文字を含んでいれば、ルールには、所定の文字と一致するか否かを示す条件が含まれる。なお、Word2Vec等によって文字の特徴量が表現される場合には、ルールには、特徴量の差(距離)に関する条件が含まれてもよい。
なお、行動データが複数の項目を含む場合には、ルールは、これら複数の項目全てに関する条件が示されてもよいし、一部の項目に関する条件だけが示されてもよい。また、行動データに含まれる値そのものがルールと比較されてもよいし、行動データに含まれる値に基づいて計算された値がルールと比較されてもよい。
ルールは、原則として、機械学習モデルに学習させていない観点で作成される。例えば、アクセス時間帯及びアクセス頻度の特徴が機械学習モデルに学習されていたとすると、ルールは、アクセス場所やユーザ名などの他の観点で作成される。ここでは、下記の3つのルールを例に挙げる。なお、ルール1の利用中心地とは、過去におけるユーザのアクセス場所の平均値である。また、ルール3のホワイトリストとは、管理者により正常ユーザと判断されたユーザの名前のリストである。
(ルール1)利用中心地からの距離が100km以上である場合には、不正ユーザとする。
(ルール2)IPアドレスが日本以外の国である場合には、不正ユーザとする。
(ルール3)ホワイトリストにユーザ名が登録されている場合には、正常ユーザとする。
先述したように、悪意のある第三者の行動は日々変化するので、次第にルールの数が増加することが予想される。行動データと比較するルールの数が増えると、サーバ10の処理負荷が増大し、正常ユーザであるか否かの判定処理に時間がかかってしまう。このため、なるべく機械学習モデルにルールを学習させ、ルールの数を減らした方が好ましいと考えられる。
しかしながら、ルールの中には、学習に向くルールもあれば、学習に向かないルールもある。例えば、ルールを満たす行動データが少なかったり行動データの内容に一貫性がなかったりした場合には、機械学習モデルは、これらの特徴を学習することができない可能性がある。このようなルールを学習させようとすると、かえって機械学習モデルの精度低下を招く可能性がある。
そこで、学習システムSは、ルールを満たす行動データに関する統計的な情報に基づいて、ルールを学習させるか否かを判定し、学習に向くルールに絞って学習させることにより、機械学習モデルの精度を向上させてルールの数を減らすようにしている。以降、この技術の詳細を説明する。
[3.学習システムにおいて実現される機能]
図2は、学習システムSで実現される機能の一例を示す機能ブロック図である。図2に示すように、サーバ10では、データ記憶部100、受付部101、第1分類部102、第2分類部103、判定部104、第1評価部105、学習部106、除外部107、第2評価部108、及び切替部109が実現される。
[3−1.データ記憶部]
データ記憶部100は、記憶部12を主として実現される。データ記憶部100は、本実施形態で説明する処理を実行するために必要なデータを記憶する。ここでは、データ記憶部100が記憶するデータの一例として、機械学習モデルM、行動データベースDB、及びルールリストLについて説明する。
データ記憶部100は、機械学習モデルMのプログラム(アルゴリズム)やパラメータを記憶する。機械学習モデルMのパラメータは、教師データを利用して調整済みであるものとする。例えば、この教師データは、過去におけるユーザの行動データを入力とし、管理者による分類結果(正常ユーザ又は不正ユーザの何れであるかを示す値)が出力となるように作成される。
先述した例では、管理者は、アクセス時間帯及びアクセス頻度に不正ユーザの傾向が表れていると考えており、これらの特徴を入力とし、不正ユーザであることを出力とする教師データが作成される。機械学習モデルMは、当該教師データに基づいて学習済みであり、主にアクセス時間帯及びアクセス頻度に関する特徴に基づいて、分類結果を出力する。例えば、機械学習モデルMは、入力された行動データの特徴量を計算し、分類結果を示す値(ラベル)を出力する。
本実施形態では、機械学習モデルMは、あるユーザの行動に関する行動データに基づいて、当該ユーザを正常ユーザ又は不正ユーザの何れかに分類するので、正常ユーザを示す値又は不正ユーザを示す値の何れかを出力する。なお、機械学習モデルMは、分類の蓋然性(確度)を示すスコアを出力してもよい。この場合、機械学習モデルMは、正常ユーザの蓋然性を示すスコアと、不正ユーザの蓋然性を示すスコアと、の少なくとも一方を出力してもよい。なお、以降の説明では、機械学習モデルMの符号を省略する。
図3は、行動データベースDBのデータ格納例を示す図である。図3に示すように、行動データベースDBには、行動データと、機械学習モデル及びルールによる診断結果と、が格納される。例えば、行動データには、ユーザID、ユーザ名、IPアドレス、アクセスしたウェブサイトのURL、アクセス場所、及びアクセス日時が格納される。なお、本実施形態では、ユーザは予め利用登録を済ませており、ユーザIDやユーザ名などの基本情報は、予めデータ記憶部100に登録されているものとする。
ユーザIDは、ユーザを一意に識別する情報である。ユーザ名は、ユーザが利用登録時に入力した名前である。IPアドレスは、ユーザがサーバ10にアクセスした時に使用したユーザ端末20のIPアドレスである。アクセス場所は、ユーザがサーバ10にアクセスした時に使用したユーザ端末20の場所に関する情報である。アクセス場所は、IPアドレス、GPS情報(緯度経度情報又は座標情報)、無線基地局情報、又はアクセスポイント情報などを利用して推定される。アクセス日時は、ユーザがサーバ10にアクセスした時の日時である。
機械学習モデルの診断結果は、行動データを機械学習モデルに入力した場合の分類結果である。機械学習モデルがスコアを出力する場合には、機械学習モデルの診断結果にスコアが含まれていてもよい。ルールの診断結果は、行動データをルールに照らし合わせた場合の分類結果である。複数のルールが用意されている場合、各ルールの診断結果が格納される。本実施形態では、機械学習モデル及びルールの各々により、正常ユーザ又は不正ユーザの何れかに分類されるので、診断結果としては、正常ユーザ又は不正ユーザの何れかの値が格納される。
サーバ10は、ユーザによるアクセスを受け付けた場合に、ユーザID、ユーザ名、IPアドレス、アクセス場所、及びアクセス時間を含む行動データを生成し、行動データベースDBに格納する。当該生成された行動データは、後述する第1分類部102及び第2分類部103の処理により、正常ユーザ又は不正ユーザの何れかに分類され、機械学習モデルの診断結果と、ルールの診断結果と、が格納される。
図4は、ルールリストLのデータ格納例を示す図である。図4に示すように、ルールリストLには、ルールに関するデータが格納される。本実施形態では、3つのルールについて説明するが、ルールの数は、任意であってよく、例えば、1つ、2つ、又は4つ以上であってもよい。例えば、ルールリストLには、ルールID、ルールの内容、診断結果、及び学習対象フラグが格納される。
ルールIDは、ルールを一意に識別する情報である。ルールIDは、新たなルールが追加されるたびに発行される。ルールの内容は、行動データに含まれる複数の項目の少なくとも1つに関する条件が格納される。例えば、行動データが数値を含む場合、ルールの内容は、数値範囲となる。数値範囲としては、閾値以上、閾値未満、又は、第1の閾値以上かつ第2の閾値未満といった条件が格納される。また例えば、行動データが文字を含む場合、ルールの内容は、所定の文字が含まれるか否かを示す条件となる。
例えば、ルールIDが「r00001」のルールは、行動データの「アクセス場所」に基づいて計算される「利用中心地からの距離」という数値が「100km以上」といった内容となる。また例えば、ルールIDが「r00002」のルールは、行動データの「IPアドレス」の数値が日本のIPアドレスの範囲に含まれないといった内容となる。また例えば、ルールIDが「r00003」のルールは、行動データの「ユーザ名」が示す文字列がホワイトリスト内に存在するといった内容となる。
診断結果は、ルールを満たした場合の分類結果であり、例えば、ルールを満たした場合に正常ユーザ又は不正ユーザの何れに分類されるかが示される。学習対象フラグは、学習対象のルールであるか否かを示す情報である。例えば、学習対象フラグがオンの場合には、学習対象であることを示し、学習対象フラグがオフの場合には、学習対象ではないことを示す。
本実施形態では、学習対象のルールだけが後述する判定部104及び学習部106の処理対象となり、学習対象ではないルールは、判定部104及び学習部106の処理対象から除外される。例えば、学習対象ではないルールは、学習には向かないルールであり、例外のルールということができる。一方、学習対象のルールは、統計によっては学習に向くルールであり、非例外のルールということができる。
学習システムSの管理者は、新たなルールを追加する場合、当該ルールの内容、診断結果、及び学習対象フラグを指定する。サーバ10は、ルールIDを新たに発行し、これら指定された情報とともに、ルールリストLに格納することによって、新たなルールが追加される。ルールリストLには、後述する第2分類部103が利用するルールだけが格納されていてもよいし、使用されなくなった古いルールが残っていてもよい。
なお、データ記憶部100に記憶されるデータは、上記の例に限られない。例えば、データ記憶部100は、ユーザの利用登録情報が格納されたユーザデータベースを記憶してもよい。例えば、ユーザデータベースには、ユーザID、ユーザ名、パスワードなどの認証情報、メールアドレス、住所、電話番号、及び利用中心地などの情報が格納される。
また例えば、データ記憶部100は、正常ユーザのリストを示すホワイトリストを記憶してもよいし、不正ユーザのリストを示すブラックリストを記憶してもよい。ホワイトリスト及びブラックリストは、学習システムSの管理者によって編集されてもよいし、第1分類部102又は第2分類部103によって編集されもよい。例えば、ホワイトリスト及びブラックリストの各々には、ユーザID、ユーザ名、メールアドレス、住所、及び電話番号などの基本情報が格納される。
[3−2.受付部]
受付部101は、制御部11を主として実現される。受付部101は、複数のルールのうち、学習対象となるルールの指定を受け付ける。学習対象とは、機械学習モデルに学習させる対象となるルールであり、例えば、ルールの作成者により指定されてもよいし、他の者により指定されてもよい。例えば、管理者は管理者端末30を操作して新たなルールを作成する際に、当該ルールを学習対象とするか否かを指定する。また例えば、管理者は、登録済みのルールについて、学習対象とするか否かを事後的に指定してもよい。受付部101は、管理者端末30から管理者による指定結果を受信することによって、学習対象となるルールの指定を受け付ける。
[3−3.第1分類部]
第1分類部102は、制御部11を主として実現される。第1分類部102は、機械学習モデルに基づいて、行動データに関する分類を行う。行動データに関する分類とは、行動データそのものの分類を意味してもよいし、データに関連付けられた情報の分類を意味してもよい。本実施形態では、ユーザが正常ユーザ又は不正ユーザに分類されるので、行動データそのものが分類されるというよりは、行動データに関連付けられたユーザIDやユーザ名などが分類されることになる。なお、分類は、種類又は属性ということもできるし、機械学習モデルにより付与されたラベルということもできる。
例えば、第1分類部102は、行動データを機械学習モデルに入力し、機械学習モデルにより出力された分類を取得することによって、行動データに関する分類を行う。この場合、機械学習モデルは、入力された行動データの特徴量を計算し、当該特徴量に基づいて、分類結果を出力する。
なお、機械学習モデルとは別に、特徴量を計算するアルゴリズムを用意する場合には、第1分類部102は、特徴量を計算するアルゴリズムに行動データを入力し、当該アルゴリズムが計算した特徴量を機械学習モデルに入力することによって、行動データに関する分類を行う。この場合、機械学習モデルは、特徴量を計算する処理を実行せず、入力された特徴量に基づいて、行動データを分類することになる。
なお、機械学習モデルが分類のスコアを出力する場合には、第1分類部102は、スコアに基づいて、行動データに関する分類をしてもよい。例えば、機械学習モデルが複数の分類の各々のスコアを出力する場合には、第1分類部102は、最も高いスコアの分類を分類結果として取得してもよいし、スコアが閾値以上の全ての分類を分類結果として取得してもよい。
[3−4.第2分類部]
第2分類部103は、制御部11を主として実現される。第2分類部103は、所定のルールに基づいて、行動データに関する分類を行う。本実施形態では、複数のルールが定められているので、第2分類部103は、複数のルールの各々に基づいて、行動データに関する分類を行う。例えば、第2分類部103は、ルールリストLに格納されたルールごとに、行動データが当該ルールを満たすか否かを判定し、行動データに関する分類を行う。
例えば、ルールとして、行動データに含まれる所定項目の数値範囲が定められている場合、第2分類部103は、行動データの当該所定項目の数値を参照し、ルールが示す範囲であるか否かを判定する。また例えば、ルールとして、行動データに含まれる所定項目に基づいて計算される数値の範囲が定められている場合、第2分類部103は、行動データの当該所定項目の数値に基づいて計算した数値が、ルールが示す範囲であるか否かを判定する。
例えば、ルールIDが「r00001」のルールであれば、第2分類部103は、行動データのアクセス場所に基づいて、利用中心地からの距離を計算する。第2分類部103は、当該距離が閾値(例えば、100km)以上であるか否かを判定する。第2分類部103は、当該距離が閾値以上である場合、行動データが示すユーザを不正ユーザに分類する。なお、第2分類部103は、当該距離が閾値未満である場合、ユーザを正常ユーザに分類してもよいし、正常ユーザ及び不正ユーザの何れでもないユーザとして分類してもよい。
また例えば、ルールIDが「r00002」のルールであれば、第2分類部103は、行動データのIPアドレスに基づいて、日本のIPアドレスであるか否かを判定する。日本のIPアドレスは、予め管理者等によって指定されており、データ記憶部100に記憶させておけばよい。第2分類部103は、行動データのIPアドレスが、予め指定された範囲に含まれるか否かを判定する。第2分類部103は、IPアドレスが日本でない場合、行動データが示すユーザを不正ユーザに分類する。なお、第2分類部103は、IPアドレスが日本である場合、ユーザを正常ユーザに分類してもよいし、正常ユーザ及び不正ユーザの何れでもないユーザとして分類してもよい。
なお、数値に関する条件をルールとする場合、距離やIPアドレス以外の数値がルールとして定められていてもよい。例えば、ユーザのアクセス時間帯やアクセス頻度を機械学習モデルに学習させていないのであれば、これらの数値をルールとして定めておいてもよい。この場合、第2分類部103は、行動データが示すアクセス時間帯又はアクセス頻度などが所定の数値範囲であるか否かを判定することによって、ルールに基づく分類を行えばよい。他にも例えば、ユーザの電話番号に関するルールが定められていてもよい。この場合、第2分類部103は、行動データが示すユーザの電話番号が所定の番号であるか否かを判定することによって、ルールに基づく分類を行えばよい。
また例えば、ルールとして、行動データに含まれる所定項目の文字が定められている場合、第2分類部103は、行動データの当該所定項目の文字を参照し、ルールに示された文字であるか否かを判定する。第2分類部103は、文字の完全一致を判定してもよいし部分一致を判定してもよい。
例えば、ルールIDが「r00003」のルールであれば、第2分類部103は、行動データのユーザ名に基づいて、ホワイトリストに存在するか否かを判定する。第2分類部103は、ユーザ名がホワイトリストに存在する場合、行動データが示すユーザを正常ユーザに分類する。なお、第2分類部103は、ユーザ名がホワイトリストに存在しない場合、ユーザを不正ユーザに分類してもよいし、正常ユーザ及び不正ユーザの何れでもないユーザとして分類してもよい。
なお、ホワイトリストではなく、ブラックリストに関するルールが定められていてもよい。例えば、「ユーザ名がブラックリストにある場合に不正ユーザとする」といったルールが定められていてもよい。この場合、第2分類部103は、行動データのユーザ名に基づいて、ブラックリストに存在するか否かを判定する。第2分類部103は、ユーザ名がブラックリストに存在する場合、行動データが示すユーザを不正ユーザに分類する。なお、第2分類部103は、ユーザ名がブラックリストに存在しない場合、ユーザを正常ユーザに分類してもよいし、正常ユーザ及び不正ユーザの何れでもないユーザとして分類してもよい。
また、文字に関する条件をルールとする場合、ユーザ名以外の文字がルールとして定められていてもよい。例えば、ユーザID、メールアドレス、又は住所などを示す文字をルールとして定めておいてもよい。この場合、第2分類部103は、行動データが示すユーザのユーザID、メールアドレス、又は住所などが所定の文字であるか否かを判定することによって、ルールに基づく分類を行えばよい。
[3−5.判定部]
判定部104は、制御部11を主として実現される。判定部104は、ルールを満たす行動データに関する統計情報に基づいて、ルールを学習させるか否かを判定する。
統計情報とは、ルールを満たす行動データの統計に関する情報であり、例えば、ルールを満たす行動データの数、又は、ルールを満たす行動データの分布である。分布は、行動データが示す値の分布であり、例えば、尖度、歪度、モーメント、密度、平均値、又は標準偏差などである。統計情報は、数や分布以外の統計的な情報であってもよく、例えば、数と分布を所定の計算式に代入して得られた評価値を用いてもよいし、行動データのヒストグラムの形状などであってもよい。
ルールを学習させるとは、ルールによる行動データの分類結果に基づいて教師データを作成し、当該教師データを利用して機械学習モデルを学習させることである。例えば、ルールを満たす行動データに基づいて教師データが作成されてもよいし、これとは逆に、ルールを満たさない行動データに基づいて教師データが作成されてもよい。他にも例えば、ルールを満たすか否かに関係なく、行動データに基づいて教師データが作成されてもよい。なお、教師データは、人手で作成してもよいし、サーバ10などのコンピュータによって作成されてもよい。
本実施形態では、ルールを満たす行動データを入力とし、当該ルールを満たした場合の分類結果(ルールの診断結果)を出力とする教師データが作成される場合を説明する。なお、機械学習モデルとは別に、特徴量を計算するアルゴリズムを用意する場合には、ルールを満たす行動データの特徴量を入力とし、当該ルールを満たした場合の分類結果(ルールの診断結果)を出力とする教師データが作成される。
本実施形態では、複数のルールが存在するので、判定部104は、ルールごとに、当該ルールを満たす行動データに基づいて統計情報を取得し、当該ルールを学習させるか否かを判定する。判定部104は、統計情報が所定の統計を示さない場合には、ルールを学習させると判定せず、統計情報が所定の統計を示す場合に、ルールを学習させると判定する。
所定の統計は、学習に向くと思われる統計であればよく、本実施形態では、下記に説明するように、ルールを満たす行動データの数が閾値以上であること、又は、ルールを満たす行動データの分布が所定の分布になることを例に挙げて説明する。
例えば、判定部104は、統計情報に基づいて、ルールを満たす行動データの数が閾値以上であるか否かを判定する。判定部104は、ルールを満たす行動データの数が閾値未満である場合には、ルールを学習させると判定せず、ルールを満たす行動データの数が閾値以上である場合に、ルールを学習させると判定する。閾値は、固定値であってもよいし、可変値であってもよい。閾値を可変値とする場合には、ユーザが指定してもよいし、ルールの内容や行動データの総数などに応じて変化させてもよい。
例えば、ルールIDが「r00001」のルールであれば、判定部104は、利用中心地からの距離が100km以上である行動データを集計して統計情報として取得し、当該集計した数が閾値以上であれば、ルールを学習させると判定する。また例えば、ルールIDが「r00002」のルールであれば、判定部104は、IPアドレスが日本ではない行動データを集計して統計情報として取得し、当該集計した数が閾値以上であれば、ルールを学習させると判定する。なお、本実施形態では、ルールIDが「r00003」のルールについては、学習対象フラグがオフなので、判定部104は、ルール3の統計情報は取得しない。
図5は、ルールを満たす行動データが少ない場合の一例を示す図であり、図6は、ルールを満たす行動データが多い場合の一例を示す図である。なお、図5及び図6では、行動データがn次元のベクトルで示されており、n次元空間上に行動データをプロットした場合について説明する。このため、図5及び図6における小さな円は、行動データを示す。なお、図5及び図6では、ルールを満たす行動データの集合を「G」の符号で示している。これらの点は、後述する図7及び図8も同様である。
例えば、図5に示すように、ルールを満たす行動データが比較的少ない場合には、教師データの分量も少なくなるので、行動データの特徴を学習させることが難しい。このため、判定部104は、ルールを満たす行動データを学習させないと判定する。一方、図6に示すように、ルールを満たす行動データが比較的多い場合には、教師データの分量が十分にあるので、行動データの特徴を学習させることが可能である。このため、判定部104は、ルールを満たす行動データを学習させると判定する。
また例えば、判定部104は、統計情報に基づいて、ルールを満たす行動データの分布が所定の分布であるか否かを判定してもよい。判定部104は、ルールを満たす行動データの分布が所定の分布ではない場合には、ルールを学習させると判定せず、ルールを満たす行動データの分布が所定の分布である場合に、ルールを学習させると判定する。
所定の分布とは、ルールを学習させるための条件である。ルールを満たす行動データの特徴が偏っている場合、行動データに共通の特徴が存在し、学習に向く可能性がある。このため、本実施形態では、行動データの特徴の偏り具合が所定の偏り以上であることが所定の分布に相当する場合を説明する。偏りは、バイアスと呼ばれることもある。
分布の偏りは、任意の指標を用いて表現可能であり、例えば、尖度、歪度、分散、頻度、又はモーメントによって示される。判定部104は、分布の偏りを示すこれらの指標が所定範囲でない場合に、所定の分布ではないと判定し、当該指標が所定範囲である場合に、所定の分布であると判定する。本実施形態では、尖度を利用する場合を例に挙げて説明する。
図7は、ルールを満たす行動データが偏っていない場合の一例を示す図であり、図8は、ルールを満たす行動データが偏っている場合の一例を示す図である。図7に示すように、ルールを満たす行動データが偏っておらず、分散している場合には、共通の特徴が存在しない可能性があるので、判定部104は、ルールを満たす行動データを学習させないと判定する。一方、図8に示すように、ルールを満たす行動データが偏っている場合には、共通の特徴が存在する可能性があるので、判定部104は、ルールを満たす行動データを学習させると判定する。
なお、ルールリストLに格納された全てのルールが学習対象になってもよいが、本実施形態では、学習対象となるルールが指定され、ルールリストLには学習対象フラグが格納されるので、判定部104は、複数のルールのうち、学習対象として指定されたルールを満たす行動データに関する統計情報に基づいて、学習対象として指定されたルールを学習させるか否かを判定する。判定部104は、学習対象として指定されなかったルールについては、学習させないと判定する。
[3−6.第1評価部]
第1評価部105は、制御部11を主として実現される。第1評価部105は、機械学習モデルにおけるルールの不確かさを評価する。ここでの機械学習モデルとは、第1分類部102が利用する機械学習モデルであり、ルールを学習させる前の既存の機械学習モデルである。
不確かさとは、機械学習モデルによる分類結果と、ルールによる分類結果と、がどの程度一致しないかを示す指標である。別の言い方をすれば、不確かさは、機械学習モデルがルールと同じ分類結果を出力できる確率の低さである。不確かであるほど、機械学習モデルによる分類結果と、ルールによる分類結果と、が一致せず、確かであるほどこれらが一致する。不確かさは、機械学習モデルによる予測の確実性ということもできる。
不確かさの評価方法は、機械学習モデルに応じた方法を利用すればよい。例えば、第1評価部105は、機械学習モデル及びルールの各々に、一定数の行動データを分類させ、これらの一致度に基づいて評価をしてもよい。一致度は、分類結果が一致した行動データの数であってもよいし、割合又は確率であってもよい。対象となる行動データは、行動データベースに格納された全ての行動データであってもよいし、一部の行動データであってもよい。一部の行動データとする場合には、ルールを満たす行動データだけであってもよいし、ランダムに選出された行動データであってもよい。
第1評価部105は、一致度が閾値以上であれば、機械学習モデルにおけるルールが確かであると評価し、一致度が閾値未満であれば、機械学習モデルにおけるルールが不確かであると評価する。第1評価部105は、ルールリストLに格納された全てのルールについて不確かさを評価してもよいし、一部のルールについてだけ不確かさを評価してもよい。一部のルールについてだけ評価する場合には、第1評価部105は、判定部104により学習させると判定されたルールだけを評価してもよいし、学習対象フラグがオンになっているルールだけを評価してもよい。
[3−7.学習部]
学習部106は、制御部11を主として実現される。学習部106は、判定部104により学習させると判定されたルールの学習処理を実行する。
学習処理は、機械学習モデルを学習させるための処理であり、例えば、教師データを作成すること、及び、教師データに基づいて機械学習モデルのパラメータを調整することの少なくとも一方を意味する。例えば、学習部106は、判定部104により学習させると判定されたルールによる行動データの分類結果に基づいて、教師データを作成する。
例えば、教師データは、行動データを入力とし、ルールによる分類結果を出力としてもよいし、行動データの特徴量を入力とし、ルールによる分類結果を出力としてもよい。学習部106は、当該作成された教師データに基づいて、学習処理を実行する。教師データを利用した学習方法自体は、教師有り機械学習で用いられる種々の手法を適用可能であり、学習部106は、教師データが示す結果が得られるように、機械学習モデルのパラメータを調整する。
例えば、学習部106は、第1分類部102が利用中の機械学習モデルに、追加でルールを学習させる。第1分類部102が利用中の機械学習モデルは、他の教師データに基づいて学習済みの機械学習モデルであり、データ記憶部100に記憶された既存の機械学習モデルである。学習部106は、判定部104により学習させると判定されたルールに基づいて作成された教師データに基づいて、データ記憶部100に記憶された既存の機械学習モデルを追加学習させる。
また例えば、学習部106は、新たな機械学習モデルに、ルールを学習させてもよい。新たな機械学習モデルは、第1分類部102が利用していない機械学習モデルであり、例えば、教師データに基づくパラメータの調整が行われていないモデルである。学習部106は、第1分類部102が利用する機械学習モデルの学習時に使用した教師データと、判定部104により学習させると判定されたルールに基づいて作成された教師データと、に基づいて、新たな機械学習モデルを学習させる。
本実施形態では、学習部106は、第1評価部105の評価結果に基づいて、学習処理を実行する。例えば、学習部106は、第1評価部105の評価結果に基づいて、学習処理を実行するか否かを決定する。学習部106は、第1評価部105により不確かであるとの評価が得られない場合(即ち、確かであるとの評価が得られた場合)には、学習処理を実行せず、第1評価部105により不確かであるとの評価が得られた場合に、学習処理を実行する。即ち、学習部106は、第1評価部105により不確かであるとの評価が得られないルールについては、機械学習モデルで既に判断できる内容の可能性があるので、過学習を防止するために、当該ルールの学習処理は実行しないようにする。
また例えば、学習部106は、第1評価部105の評価結果に基づいて、学習処理における学習係数を決定してもよい。学習部106は、第1評価部105により不確かであるとの評価が得られない場合の学習係数を、第1評価部105により不確かであるとの評価が得られた場合の学習係数よりも低くする。即ち、学習部106は、第1評価部105により不確かであるとの評価が得られない場合には、機械学習モデルで既に判断できる内容の可能性があるので、過学習を防止するために、第1評価部105により不確かであるとの評価が得られた場合よりも学習への影響を小さくする。
[3−8.除外部]
除外部107は、制御部11を主として実現される。除外部107は、第1評価部105により不確かではないと評価されたルールが用いられないように除外する。第1評価部105により不確かではないと評価されたルールについては、機械学習モデルで既に判断できる内容の可能性があるので、除外部107は、ルールを除外することによって、行動データとの判定対象にならないようにする。
除外とは、第2分類部103により参照されないようにすることであり、行動データと比較されないようにすることである。本実施形態では、ルールリストLからルールを削除することによって、ルールの除外が行われる場合を説明するが、除外するか否かを示す除外フラグを用意しておく場合には、特にルールリストLからルールを削除することなく、ルールの除外が行われてもよい。
除外部107は、学習処理により学習されたルールが用いられないように除外してもよい。学習処理により学習されたルールについては、機械学習モデルで既に判断できる内容の可能性があるので、除外部107は、ルールを除外することによって、行動データとの判定対象にならないようにする。ただし、本実施形態では、除外部107は、後述する第2評価部108の評価に基づいて、学習済みのルールを本当に削除するか否かを決定する。例えば、除外部107は、第2評価部108により不確かであると評価された場合には、学習処理が実行されたルールを除外せず、第2評価部108により不確かであると評価された場合に、学習処理が実行されたルールを除外する。
[3−9.第2評価部]
第2評価部108は、制御部11を主として実現される。第2評価部108は、学習処理によりルールが学習された機械学習モデルにおける当該ルールの不確かさを評価する。不確かさの評価方法は、機械学習モデルに応じた方法を利用すればよく、第1評価部105と同様の方法であってもよいし、第1評価部105とは異なる方法であってもよい。
本実施形態では、第1評価部105の評価方法と第2評価部108の評価方法とが同じである場合を説明する。このため、第2評価部108は、学習処理によりルールが学習された機械学習モデル及び当該ルールの各々に、一定数の行動データを分類させ、これらの一致度に基づいて評価をしてもよい。第1評価部105は、一致度が閾値以上であれば、機械学習モデルにおけるルールが確かであると評価し、一致度が閾値未満であれば、機械学習モデルにおけるルールが不確かであると評価する。
[3−10.切替部]
切替部109は、制御部11を主として実現される。切替部109は、第2評価部108の評価結果に基づいて、学習処理によりルールが学習された機械学習モデルに切り替える。例えば、切替部109は、第2評価部108により不確かであると評価された場合には、機械学習モデルを切り替えずに既存の機械学習モデルのまま運用し、第2評価部108により不確かであると評価されない場合に、機械学習モデルを切り替える。切替部109は、機械学習モデルを切り替える場合、データ記憶部100から古い機械学習モデルを削除し、学習部106により学習済みの機械学習モデルに置き換える。
[4.本実施形態において実行される処理]
次に、学習システムSにおいて実行される処理について説明する。ここでは、ユーザを正常ユーザ又は不正ユーザに分類するための分類処理と、機械学習モデルにルールを学習させるための学習処理と、について説明する。
[4−1.分類処理]
図9は、分類処理の一例を示すフロー図である。図9に示す分類処理は、制御部11,21が、それぞれ記憶部12,22に記憶されたプログラムに従って動作することによって実行される。下記に説明する処理は、図2に示す機能ブロックにより実行される処理の一例である。なお、分類処理が実行されるにあたり、ユーザは、利用登録を済ませており、サーバ10にログイン済みであるものとする。
図9に示すように、まず、ユーザ端末20において、制御部21は、ユーザがサーバ10のURLを指定した場合に、サーバ10に対し、アクセス要求を送信する(S100)。S100におけるアクセス要求には、ユーザが指定したURL、ユーザID、ユーザ名、及びユーザ端末20のIPアドレスが含まれているものとする。
サーバ10においては、アクセス要求を受信すると、制御部11は、行動データを生成し、行動データベースDBに格納する(S101)。S101においては、制御部11は、行動データベースDBに新たなレコードを作成し、当該新たなレコードに、アクセス要求に含まれるユーザID、ユーザ名、IPアドレス、及びURLを格納する。また、制御部11は、IPアドレスから推測した場所をアクセス場所として格納し、リアルタイムクロックやGPS情報等を利用して取得した現在日時をアクセス日時として格納する。
制御部11は、機械学習モデルに基づいて、S100で生成した行動データに関する分類を行う(S102)。S102においては、制御部11は、行動データを機械学習モデルに入力する。機械学習モデルは、入力された行動データの特徴量を計算し、当該特徴量に基づいて、正常ユーザ又は不正ユーザの何れであるかを分類する。制御部11は、機械学習モデルから出力された分類結果を取得し、行動データベースDBに格納する。
制御部11は、ルールリストLが示すルールに基づいて、S103で生成した行動データに関する分類を行う(S103)。S103においては、制御部11は、ルールリストLが示すルールごとに、行動データが当該ルールを満たすか否かを判定する。制御部11は、ルールを満たすと判定した場合には、当該ルールに関連付けられた診断結果を行動データベースDBに格納する。行動データが満たさなかったルールについては、特に何も格納されなくてよい。S102又はS103の処理により不正ユーザと分類された場合には、管理者に電子メール等の通知が送信され、管理者の判断を仰ぐようにしてもよいし、ユーザに対して追加の認証を要求してもよい。
[4−2.学習処理]
図10は、学習処理の一例を示すフロー図である。図10に示す学習処理は、制御部11が記憶部12に記憶されたプログラムに従って動作することによって実行される。下記に説明する処理は、図2に示す機能ブロックにより実行される処理の一例である。なお、学習処理が実行されるにあたり、管理者が作成したルールがルールデータベースに格納されているものとする。学習処理は、任意のタイミングで実行されるようにすればよく、例えば、管理者が所定の操作をした場合に実行されてもよいし、所定の日時が訪れた場合に実行されてもよい。
図10に示すように、まず、制御部11は、ルールデータベースに基づいて、学習対象のルールを特定する(S200)。S200においては、制御部11は、ルールデータベースに格納された全てのルールの学習対象フラグを参照し、学習対象フラグがオンになっているルールを特定する。以降説明するS201〜S208の処理は、学習対象のルールごとに実行される。
制御部11は、行動データベースDBに基づいて、既存の機械学習モデルにおける学習対象のルールの不確かさを評価する(S201)。S201においては、制御部11は、行動データベースDBに格納された機械モデルの診断結果と、学習対象のルールの診断結果と、の一致度に基づいて、不確かさを評価する。ここでは、一致度が閾値以上であれば、確かであるとの評価が得られ、一致度が閾値未満であれば、不確かであるとの評価が得られる。
学習対象のルールが確かであるとの評価が得られた場合(S201;確か)、ルールの内容が既存の機械学習モデルで判断できる可能性があるので、制御部11は、ルールリストLから学習対象のルールを除外し(S202)、S208の処理に移行する。このルールは、機械学習モデルに学習されない。
一方、学習対象のルールが不確かであるとの評価が得られた場合(S201;不確か)、制御部11は、行動データベースDBに基づいて、学習対象のルールを満たす行動データの数を取得する(S203)。S203おいては、制御部11は、行動データベースDBのルール診断結果を参照し、学習対象のルールの分類結果が格納されている行動データをカウントする。なお、S203時点で、制御部11は、行動データベースDBに格納された行動データが学習対象のルールを満たすか否かを判定し(S103と同様の処理を実行し)、ルールを満たす行動データをカウントしてもよい。
制御部11は、学習対象のルールを満たす行動データの数が閾値以上であるか否かを判定する(S204)。学習対象のルールを満たす行動データの数が閾値以上であると判定された場合(S204Y)、制御部11は、当該ルールを満たす行動データに基づいて、教師データを作成する(S205)。S205においては、制御部11は、ルールを満たす行動データ又は当該行動データの特徴量を入力とし、ルールによる分類結果を出力とする教師データを作成する。
一方、学習対象のルールを満たす行動データの数が閾値以上であると判定されない場合(S204;N)、制御部11は、行動データベースDBに基づいて、学習対象のルールを満たす行動データの分布を取得する(S206)。S206においては、制御部11は、学習対象のルールを満たす行動データの尖度を計算する。なお、先述したように、尖度以外に任意の指標を利用可能であり、例えば、歪度又はモーメントを利用してもよい。
制御部11は、学習対象のルールを満たす行動データの分布が所定の分布であるか否かを判定する(S207)。S207においては、制御部11は、S206で計算した尖度が閾値以上であるか否かを判定する。制御部11は、尖度が閾値以上であれば、分布が偏っているので所定の分布であると判定し、尖度が閾値未満であれば、分布が偏っていないので所定の分布であると判定しない。
学習対象のルールを満たす行動データの分布が所定の分布であると判定された場合(S207;Y)、S205の処理に移行し、教師データが作成される。一方、学習対象のルールを満たす行動データの分布が所定の分布であると判定されない場合(S207;N)、制御部11は、学習対象の全てのルールについて、処理を実行したか否かを判定する(S208)。
学習対象の全てのルールについて処理を実行したと判定されない場合(S208;N)、S201の処理に戻り、まだ判定されていないルールについての処理が実行される。一方、学習対象の全てのルールについて処理を実行したと判定された場合(S208;Y)、制御部11は、S205の処理で作成した教師データに基づいて、機械学習モデルの学習処理を実行し(S209)、検証モードに移行する(S210)。
検証モードは、既存の機械学習モデルと、S209で学習処理をした機械学習モデルと、を共存させるモードである。この場合、分類処理のS102では、これら両方の機械学習モデルによる分類が行われてもよいし、所定の確率のもとで何れかの機械学習モデルが選択されてもよい。検証モードは、一定の期間継続される。一定期間経過後に、以降の処理が実行される。
制御部11は、検証中の機械学習モデルが不確かであるか否かを判定する(S211)。S211の処理は、S202と同様であるが、既存の機械学習モデルの診断結果ではなく、S209で学習させた機械学習モデルの診断結果が参照される点でS202とは異なる。
検証中の機械学習モデルが不確かであると判定された場合(S211;不確か)、制御部11は、機械学習モデルを切り替えず(S212)、本処理を終了する。この場合、学習処理により学習させたはずのルールがうまく機械学習モデルに学習されなかったので、検証中の機械学習モデルは適用されず、既存の機械学習モデルに戻される。この場合、ルールは削除されずに残ったままとなる。
一方、検証中の機械学習モデルが確かであると判定された場合(S211;確か)、制御部11は、機械学習モデルを切り替えて(S213)、ルールリストLから学習済みのルールを除外する(S214)。以降、検証モードが終了し、S213において切替られた機械学習モデルに基づいて、分類処理のS102の処理が実行される。
本実施形態の学習システムSによれば、ルールを満たすデータに関する統計情報に基づいて、ルールを学習させるか否かを判定し、学習させると判定されたルールの学習処理を実行する。これにより、学習に向くルールを統計的な観点で絞りこんで学習させ、機械学習モデルの精度を向上させてルールの数を減らすことができる。例えば、ルールの数が多くなると、行動データとルールを比較する処理を数多く実行しなければならないので、サーバ10の処理負荷が増大し、分類結果が決定されるまでにより多くの時間を要することになるが、ルールの数を減らすことで、行動データとルールを比較する処理を減らし、サーバ10の処理負荷を軽減し、処理速度を向上させることができる。更に、ルールを減らすことによるサーバ10のメモリ容量削減も図ることができる。
また、ルールを満たすデータの数が閾値未満である場合には、ルールを学習させると判定せず、ルールを満たすデータの数が閾値以上である場合に、ルールを学習させると判定することで、学習に十分な量のデータがないにも関わらず学習処理が実行されることを防止することができる。これにより、機械学習モデルの精度が低下することを防止することができる。
また、ルールを満たすデータの分布が所定の分布ではない場合には、ルールを学習させると判定せず、ルールを満たすデータの分布が所定の分布ではない場合には、ルールを学習させると判定することで、学習に適した分布ではないにも関わらず学習処理が実行されることを防止することができる。これにより、機械学習モデルの精度が低下することを防止することができる。
また、機械学習モデルにおけるルールの不確かさを評価して学習処理を実行することで、機械学習モデルが十分に判断できる内容のルールが学習されることを防止することができる。これにより、機械学習モデルの過学習を防止できる。例えば、不確かではないとの評価が得られたルールについては学習させず、不確かであるとの評価が得られたルールを学習させることで、機械学習モデルが判断できない内容のルールを学習させ、機械学習モデルの精度を効果的に高めることができる。
また、不確かではないと評価されたルールについては、機械学習モデルが判断できる可能性があるので、このようなルールについては、分類で用いられないように除外することで、ルールの数を効果的に減らすことができる。その結果、データとの比較対象となるルールを削減し、サーバ10の処理負荷を効果的に軽減し、処理速度を効果的に向上させることができる。
また、学習処理により学習されたルールについては、機械学習モデルで判断可能になっている可能性があるので、このルールが用いられないように除外することにより、ルールの数を効果的に減らすことができる。その結果、データとの比較対象となるルールを削減し、サーバ10の処理負荷を効果的に軽減し、処理速度を効果的に向上させることができる。
また、ルールを学習させた後にすぐに機械学習モデルを切り替えるのではなく、ルールが学習された機械学習モデルにおけるルールの不確かさの評価結果に基づいて、ルールが学習された機械学習モデルに切り替えることで、機械学習モデルの精度の低下を防止することができる。
また、全てのルールを機械学習モデルに学習させるのではなく、学習対象として指定されたルールを学習させることにより、不要なルールが学習されることを防止し、機械学習モデルの精度の低下を防止することができる。
また、ユーザの行動に関する行動データに関する分類を行うことで、ユーザの行動を分類する精度を高めることができる。
[5.変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
例えば、実施形態では、ルールを満たす行動データの数と、ルールを満たす行動データの分布と、の両方に基づいて、ルールを学習させるか否かが決定される場合を説明したが、これらの何れか一方だけに基づいて、ルールを学習させるか否かが決定されてもよい。また例えば、数及び分布以外の統計情報に基づいて、ルールを学習させるか否かが決定されてもよい。また例えば、ルールの不確かさの評価を実行する処理は、省略してもよい。また例えば、学習処理により学習されたルールを除外する場合を説明したが、特に除外せず、ルールが参照される頻度を減らしてもよい。また例えば、一定期間の検証モードを設ける場合を説明したが、特に検証モードは設けなくてもよい。また例えば、学習対象となるルールが指定される場合を説明したが、特に指定が行われず、全てのルールが学習対象となってもよい。
また例えば、実施形態では、ウェブサイトにアクセスしたユーザの不正を検知する場合について説明したが、学習システムSは、データに関する分類が行われる場合に適用可能であり、他の場面に適用してもよい。例えば、ユーザの不正を検知する場面以外の場面にも学習システムSを適用可能であり、自然言語処理、機械翻訳、文章変換、又はチャットボットなどの機械学習モデルが用いられる場合にも、ルールを学習させるか否かを判定してもよい。
また例えば、ユーザがインターネット上で商品を購入する場合の不正行為を検出する場面に学習システムSを適用してもよい。この場合、サーバ10は、オンラインショッピングモールのウェブサイトをユーザに提供する。ユーザは、利用登録を行い、カード番号などの決済情報を予めサーバ10に登録しているものとする。決済情報としては、商品を購入した店舗の店舗ID、店舗名、商品の商品ID、商品名、数量、決済金額、及びカード番号といった情報が含まれるようにしてもよい。例えば、ユーザが商品を購入すると、サーバ10は、ユーザの決済情報などを含む行動データを生成する。管理者は、ルールとして、決済金額や配送先住所などに関する条件を指定可能である。学習システムSは、ユーザの決済情報などを含む行動データに基づいて、ルールを満たすか否かを判定する。学習システムSは、ルールを満たす行動データに関する統計情報に基づいて、ルールを学習させるか否かを判定すればよい。この判定処理や学習処理の詳細については、実施形態で説明した通りである。
また例えば、行動データに関する分類が行われる場合を説明したが、ユーザの行動以外のデータに関する分類が行われてもよい。例えば、機械学習モデルやルールを利用して、画像データに撮影された被写体を分類する場面に学習システムSを用いてもよい。また例えば、機械学習モデルやルールを利用して、気象データが示す温度や湿度などに基づいて天候を分類する場面に学習システムSを用いてもよい。また例えば、機械学習モデルやルールを利用して、文章データの要約を作成する画面に学習システムSを用いてもよい。他にも、任意の内容のデータに関する分類をする場面に学習システムSを適用可能である。
また例えば、主な機能がサーバ10で実現される場合を説明したが、各機能は、複数のコンピュータで分担されてもよい。例えば、サーバ10、ユーザ端末20、及び管理者端末30の各々で機能が分担されてもよい。例えば、分類などの処理がサーバ10で実行されるのではなく、ユーザ端末20又は管理者端末30で実行されてもよい。また例えば、学習システムSが複数のサーバコンピュータを含む場合には、これら複数のサーバコンピュータで機能が分担されてもよい。また例えば、データ記憶部100で記憶されるものとして説明したデータは、サーバ10以外のコンピュータによって記憶されてもよい。