(57)【特許請求の範囲】
【請求項１】
サービスを利用するユーザの行動の不正度を計算する不正度計算手段と、
前記行動が実際に不正であるか否かの確定結果を取得する確定結果取得手段と、
前記不正度と前記確定結果とに基づいて、前記ユーザごとの不正検知の精度を計算する精度計算手段と、
を含み、
前記不正度計算手段は、前記確定結果取得手段により取得された前記確定結果が示す、実際に不正であるか否かが確定した行動が予め学習された学習モデルに基づいて、不正であるか否かが確定していない行動の前記不正度を計算する、
不正検知システム。
【請求項２】
クレジットカードを利用した電子決済のサービスを利用するユーザにより行われた決済に関する行動の不正度を、当該行動を数値化して所定の計算式に代入することによって、又は、当該行動と不正度の関係を定義したプログラムコードに基づいて、計算する不正度計算手段と、
前記行動が実際に不正であるか否かの確定結果を取得する確定結果取得手段と、
前記不正度と前記確定結果とに基づいて、前記ユーザごとの不正検知の精度を計算する精度計算手段と、
を含む不正検知システム。
【請求項３】
サービスを利用するユーザの行動の不正度を計算する不正度計算手段と、
前記行動が実際に不正であるか否かの確定結果を取得する確定結果取得手段と、
前記不正度と前記確定結果とに基づいて、前記ユーザごとの不正検知の精度を計算する精度計算手段と、
を含み、
前記不正度計算手段は、過去に行われた行動に基づく前記不正度と、当該行動が実際に不正であったか否かの確定結果と、に基づいて、前記不正度の計算における重み付け係数を決定し、当該決定された重み付け係数に基づいて、前記不正度を計算する、
不正検知システム。
【請求項４】
前記不正度計算手段は、複数の前記行動の各々に基づいて、各行動の前記不正度を計算し、
前記確定結果取得手段は、各行動が実際に不正であるか否かの確定結果を取得し、
前記精度計算手段は、各行動の前記不正度と前記確定結果とに基づいて、前記精度を計算する、
請求項１〜３の何れかに記載の不正検知システム。
【請求項５】
前記精度計算手段は、前記不正度と前記確定結果とに基づいて、所定の損失関数の値を計算し、前記精度として取得する、
請求項１〜４の何れかに記載の不正検知システム。
【請求項６】
前記損失関数は、偽陰性が前記精度に与える影響が大きくなるように、係数が定められている、
請求項５に記載の不正検知システム。
【請求項７】
前記不正度計算手段は、実際に不正であるか否かが確定した他のユーザの行動が前記ユーザにより行われたと仮定して、前記不正度を計算し、
前記確定結果取得手段は、前記他のユーザの行動が実際に不正であるか否かの確定結果を取得し、
前記ユーザにより行われたと仮定した行動の前記不正度と、前記他のユーザの行動の確定結果と、に基づいて、前記精度を計算する、
請求項１〜６の何れかに記載の不正検知システム。
【請求項８】
前記不正度計算手段は、前記ユーザの認証方法と、前記ユーザの名義人と、の少なくとも一方に更に基づいて、前記不正度を計算する、
請求項１〜７の何れかに記載の不正検知システム。
【請求項９】
前記不正検知システムは、前記精度に応じた処理を実行する実行手段、
を更に含む請求項１〜８の何れかに記載の不正検知システム。
【請求項１０】
前記処理は、前記不正度計算手段により計算される前記不正度の値を変更する処理である、
請求項９に記載の不正検知システム。
【請求項１１】
前記処理は、前記サービスに関するクーポンを前記ユーザに付与する処理である、
請求項９に記載の不正検知システム。
【請求項１２】
コンピュータが、
サービスを利用するユーザの行動の不正度を計算する不正度計算ステップと、
前記行動が実際に不正であるか否かの確定結果を取得する確定結果取得ステップと、
前記不正度と前記確定結果とに基づいて、前記ユーザごとの不正検知の精度を計算する精度計算ステップと、
を実行し、
前記不正度計算ステップは、前記確定結果取得ステップにより取得された前記確定結果が示す、実際に不正であるか否かが確定した行動が予め学習された学習モデルに基づいて、不正であるか否かが確定していない行動の前記不正度を計算する、
不正検知方法。
【請求項１３】
コンピュータが、
クレジットカードを利用した電子決済のサービスを利用するユーザにより行われた決済に関する行動の不正度を、当該行動を数値化して所定の計算式に代入することによって、又は、当該行動と不正度の関係を定義したプログラムコードに基づいて、計算する不正度計算ステップと、
前記行動が実際に不正であるか否かの確定結果を取得する確定結果取得ステップと、
前記不正度と前記確定結果とに基づいて、前記ユーザごとの不正検知の精度を計算する精度計算ステップと、
を実行する不正検知方法。
【請求項１４】
コンピュータが、
サービスを利用するユーザの行動の不正度を計算する不正度計算ステップと、
前記行動が実際に不正であるか否かの確定結果を取得する確定結果取得ステップと、
前記不正度と前記確定結果とに基づいて、前記ユーザごとの不正検知の精度を計算する精度計算ステップと、
を実行し、
前記不正度計算ステップは、過去に行われた行動に基づく前記不正度と、当該行動が実際に不正であったか否かの確定結果と、に基づいて、前記不正度の計算における重み付け係数を決定し、当該決定された重み付け係数に基づいて、前記不正度を計算する、
不正検知方法。
【請求項１５】
サービスを利用するユーザの行動の不正度を計算する不正度計算手段、
前記行動が実際に不正であるか否かの確定結果を取得する確定結果取得手段、
前記不正度と前記確定結果とに基づいて、前記ユーザごとの不正検知の精度を計算する精度計算手段、
としてコンピュータを機能させるためのプログラムであって、
前記不正度計算手段は、前記確定結果取得手段により取得された前記確定結果が示す、実際に不正であるか否かが確定した行動が予め学習された学習モデルに基づいて、不正であるか否かが確定していない行動の前記不正度を計算する、
プログラム。
【請求項１６】
クレジットカードを利用した電子決済のサービスを利用するユーザにより行われた決済に関する行動の不正度を、当該行動を数値化して所定の計算式に代入することによって、又は、当該行動と不正度の関係を定義したプログラムコードに基づいて、計算する不正度計算手段、
前記行動が実際に不正であるか否かの確定結果を取得する確定結果取得手段、
前記不正度と前記確定結果とに基づいて、前記ユーザごとの不正検知の精度を計算する精度計算手段、
としてコンピュータを機能させるためのプログラム。
【請求項１７】
サービスを利用するユーザの行動の不正度を計算する不正度計算手段、
前記行動が実際に不正であるか否かの確定結果を取得する確定結果取得手段、
前記不正度と前記確定結果とに基づいて、前記ユーザごとの不正検知の精度を計算する精度計算手段、
としてコンピュータを機能させるためのプログラムであって、
前記不正度計算手段は、過去に行われた行動に基づく前記不正度と、当該行動が実際に不正であったか否かの確定結果と、に基づいて、前記不正度の計算における重み付け係数を決定し、当該決定された重み付け係数に基づいて、前記不正度を計算する、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不正検知システム、不正検知方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、サービスを利用するユーザの行動を解析し、ユーザの不正を検知する技術が知られている。例えば、特許文献１には、ユーザの就寝時刻や起床時刻といった行動履歴の情報を継続的に取得し、当該取得した行動履歴の情報と、ユーザのライフスタイル、性格、及び嗜好といったパラメータと、に基づいて、ユーザの不正度（信用スコア）を計算するシステムが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第６５１４８１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、不正度の計算の精度には限界があり、例えば、ユーザの不正度が高かったとしても、そのユーザが実際には不正をしていないことがある。逆に、ユーザの不正度が低かったとしても、そのユーザが実際には不正をしていることもある。特許文献１の技術では、システムが計算した不正度と、実際に不正であるか否かの確定結果と、の違いについて何ら記載されておらず、ユーザごとの不正検知の精度を計算することができない。【０００５】
本発明は上記課題に鑑みてなされたものであって、その目的は、ユーザごとの不正検知の精度を計算可能な不正検知システム、不正検知方法、及びプログラムを提供することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の一態様に係る不正検知システムは、サービスを利用するユーザの行動に基づいて、前記ユーザの不正度を計算する不正度計算手段と、前記行動が実際に不正であるか否かの確定結果を取得する確定結果取得手段と、前記不正度と前記確定結果とに基づいて、前記ユーザごとの不正検知の精度を計算する精度計算手段と、を含む。【０００７】
本発明の一態様に係る不正検知方法は、サービスを利用するユーザの行動に基づいて、前記ユーザの不正度を計算する不正度計算ステップと、前記行動が実際に不正であるか否かの確定結果を取得する確定結果取得ステップと、前記不正度と前記確定結果とに基づいて、前記ユーザごとの不正検知の精度を計算する精度計算ステップと、を含む。【０００８】
本発明の一態様に係るプログラムは、サービスを利用するユーザの行動に基づいて、前記ユーザの不正度を計算する不正度計算手段、前記行動が実際に不正であるか否かの確定結果を取得する確定結果取得手段、前記不正度と前記確定結果とに基づいて、前記ユーザごとの不正検知の精度を計算する精度計算手段、としてコンピュータを機能させる。【０００９】
本発明の一態様によれば、前記不正度計算手段は、複数の前記行動の各々に基づいて、各行動の前記不正度を計算し、前記確定結果取得手段は、各行動が実際に不正であるか否かの確定結果を取得し、前記精度計算手段は、各行動の前記不正度と前記確定結果とに基づいて、前記精度を計算する。【００１０】
本発明の一態様によれば、前記不正度計算手段は、前記確定結果取得手段により取得された前記確定結果が示す、実際に不正であるか否かが確定した行動が予め学習された学習モデルに基づいて、不正であるか否かが確定していない行動の前記不正度を計算する。【００１１】
本発明の一態様によれば、前記精度計算手段は、前記不正度と前記確定結果とに基づいて、所定の損失関数の値を計算し、前記精度として取得する。【００１２】
本発明の一態様によれば、前記損失関数は、偽陰性が前記精度に与える影響が大きくなるように、係数が定められている。【００１３】
本発明の一態様によれば、前記不正度計算手段は、実際に不正であるか否かが確定した他のユーザの行動が前記ユーザにより行われたと仮定して、前記不正度を計算し、前記確定結果取得手段は、前記他のユーザの行動の確定結果を取得し、前記ユーザにより行われたと仮定した行動の前記不正度と、前記他のユーザの行動の確定結果と、に基づいて、前記精度を計算する。【００１４】
本発明の一態様によれば、前記不正度計算手段は、過去に行われた行動に基づく前記不正度と、当該行動が実際に不正であったか否かの確定結果と、に基づいて、前記不正度の計算における重み付け係数を決定し、当該決定された重み付け係数に基づいて、前記不正度を計算する。【００１５】
本発明の一態様によれば、前記不正度計算手段は、前記ユーザの認証方法と、前記ユーザの名義人と、の少なくとも一方に更に基づいて、前記不正度を計算する。【００１６】
本発明の一態様によれば、前記不正検知システムは、前記精度に応じた処理を実行する実行手段、を更に含む。【００１７】
本発明の一態様によれば、前記処理は、前記不正度計算手段により計算される前記不正度の値を変更する処理である。【００１８】
本発明の一態様によれば、前記処理は、前記サービスに関するクーポンを前記ユーザに付与する処理である。
【発明の効果】
【００１９】
本発明によれば、ユーザごとの不正検知の精度を計算することができる。
【図面の簡単な説明】
【００２０】
【図１】不正検知システムの全体構成を示す図である。
【図２】不正度の計算方法の概要を示す図である。
【図３】不正検知システムで実現される機能の一例を示す機能ブロック図である。
【図４】ユーザデータベースのデータ格納例を示す図である。
【図５】行動履歴データベースのデータ格納例を示す図である。
【図６】精度データベースのデータ格納例を示す図である。
【図７】サービス利用処理の一例を示すフロー図である。
【図８】精度計算処理の一例を示すフロー図である。
【図９】変形例（２）における不正度の計算方法を示す図である。
【図１０】変形例（３）の概要を示す図である。
【発明を実施するための形態】
【００２１】
［１．不正検知システムの全体構成］
以下、本発明の一態様に係る不正検知システムの実施形態の例を説明する。図１は、不正検知システムの全体構成を示す図である。図１に示すように、不正検知システムＳは、サーバ１０とユーザ端末２０を含み、これらは、インターネットなどのネットワークＮに接続可能である。なお、図１では、サーバ１０とユーザ端末２０の各々を１台ずつ示しているが、これらは複数台あってもよい。
【００２２】
サーバ１０は、サーバコンピュータである。サーバ１０は、制御部１１、記憶部１２、及び通信部１３を含む。制御部１１は、少なくとも１つのプロセッサを含む。制御部１１は、記憶部１２に記憶されたプログラムやデータに従って処理を実行する。記憶部１２は、主記憶部及び補助記憶部を含む。例えば、主記憶部はＲＡＭなどの揮発性メモリであり、補助記憶部は、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、又はハードディスクなどの不揮発性メモリである。通信部１３は、有線通信又は無線通信用の通信インタフェースであり、ネットワークＮを介してデータ通信を行う。
【００２３】
ユーザ端末２０は、ユーザが操作するコンピュータである。例えば、ユーザ端末２０は、携帯電話機（スマートフォンを含む）、携帯情報端末（タブレット型コンピュータを含む）、又はパーソナルコンピュータ等である。本実施形態では、ユーザ端末２０は、制御部２１、記憶部２２、通信部２３、操作部２４、及び表示部２５を含む。制御部２１、記憶部２２、及び通信部２３の物理的構成は、それぞれ制御部１１、記憶部１２、及び通信部１３と同様であってよい。
【００２４】
操作部２４は、入力デバイスであり、例えば、タッチパネルやマウス等のポインティングデバイス、キーボード、又はボタン等である。操作部２４は、ユーザによる操作内容を制御部２１に伝達する。表示部２５は、例えば、液晶表示部又は有機ＥＬ表示部等である。表示部２５は、制御部２１の指示に従って画像を表示する。
【００２５】
なお、記憶部１２，２２に記憶されるものとして説明するプログラム及びデータは、ネットワークＮを介して供給されるようにしてもよい。また、上記説明した各コンピュータのハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部（例えば、光ディスクドライブやメモリカードスロット）や外部機器とデータの入出力をするための入出力部（例えば、ＵＳＢポート）が含まれていてもよい。例えば、情報記憶媒体に記憶されたプログラムやデータが読取部や入出力部を介して供給されるようにしてもよい。
【００２６】
［２．不正検知システムの概要］
本実施形態では、サーバ１０が、ニュースや動画などのサービスに関するウェブサイトをユーザに提供し、ウェブサイトにアクセスすることによって当該サービスを利用したユーザの行動を分析する場面を例に挙げて、不正検知システムＳの処理を説明する。例えば、サーバ１０は、ユーザがウェブサイトにアクセスしたときの行動の履歴を記憶する。サーバ１０は、ユーザごとに、行動の不正度を計算する。
【００２７】
不正度は、不正の度合いを示す情報である。別の言い方をすれば、不正度は、不正の疑いの高さを示す情報である。本実施形態では、確率（パーセンテージ）によって不正度が表現される場合を説明するが、不正度は、他の指標によって表現されてもよい。例えば、不正度は、確率以外の数値であるスコアによって表現されてもよいし、Ｓランク・Ａランク・Ｂランクといった文字によって表現されてもよい。不正度が数値によって表現される場合には、数値が高いほど不正の度合いが高いことを意味する。不正度が文字によって表現される場合には、個々の文字に不正の順位が定められているものとする。
【００２８】
図２は、不正度の計算方法の概要を示す図である。図２の例では、現時点が２０１９年１１月３０日であり、２０１９年におけるユーザＡ及びユーザＢの各々がサービスを利用した日付が示されている。本実施形態では、サービスが利用された後に、所定の確定タイミングが訪れると、サービス利用時の行動が実際に不正であるか否か（不正であるか正常であるか）が確定する。
【００２９】
本実施形態では、確定タイミングを利用日から３ヶ月後とするが、確定タイミングは、任意のタイミングであってよい。例えば、確定タイミングは、予め定められた日付（例えば、毎月１５日）であってもよいし、サービスの管理者が不正の有無を判断する業務をする時であってもよい。他にも例えば、確定タイミングは、第三者による不正ログイン（なりすまし）の疑いの報告をユーザから受けた時であってもよい。
【００３０】
図２の例では、２０１９年８月末までの行動は、確定タイミングが訪れているので、不正であるか否かが確定している。以降、不正であるか否かが確定した行動を確定済み行動と記載し、不正であるか否かが確定していない行動を未確定行動と記載する。
【００３１】
サーバ１０は、サービスが利用されるたびに、学習モデルを利用して不正度を計算する。例えば、サーバ１０は、ユーザによるアクセスを受け付けると、セッション中の行動に基づいて、リアルタイムで不正度を計算する。学習モデルは、機械学習で用いられるモデルであり、確定済み行動の内容（例えば、利用日時、利用場所、利用頻度）と、不正であるか否かの確定結果と、の関係を学習している。機械学習自体は、公知の種々の手法を利用可能であり、例えば、ニューラルネットワーク、強化学習、又は深層学習といった手法を利用可能である。機械学習は、教師有り機械学習に限られず、半教師有り機械学習が用いられてもよいし、教師無し機械学習が用いられてもよい。
【００３２】
サーバ１０は、サービス利用時の行動を学習モデルに入力し、学習モデルから出力された不正度を取得する。学習モデルは、自身に入力された行動の内容に応じた不正度を出力するようになっている。不正度は、学習モデルが計算した不正の蓋然性ということもできる。
【００３３】
図２の例であれば、２０１９年１月２日に行われたユーザＡの行動については、０．３０％の不正度が計算されている。この行動は、確定済み行動であり、正常であることが確定している。他の日の行動についても同様に、サーバ１０は、学習モデルを利用して、行動ごとに不正度を計算する。行動の確定タイミングが訪れると、不正であるか否かの確定結果がサーバ１０に記録される。
【００３４】
図２に示すように、ユーザＡの確定済み行動は、不正度が低ければ不正ではないことが確定しており、不正度が高ければ不正であることが確定している。このため、ユーザＡは、学習モデルによる不正検知の精度が高く、不正を検知しやすいユーザ（学習モデルによって捕捉しやすいユーザ）ということができる。例えば、ユーザＡが不正をしたとしても、不正度が高く計算され、リアルタイムで不正を検知できる可能性が高い。
【００３５】
一方、ユーザＢの確定済み行動には、不正度が高くても不正ではないことが確定しており、不正度が低くても不正であることが確定している行動が含まれる。このため、ユーザＢは、学習モデルによって不正を検知しにくいユーザ（学習モデルによって捕捉しにくいユーザ）ということができる。例えば、ユーザＢが不正をしたとしても、不正度が低く計算され、リアルタイムで不正を検知できない可能性がある。また例えば、ユーザＢが不正をしなかったとしても、不正度が高く計算され、誤って不正とされてしまう可能性がある。
【００３６】
そこで、本実施形態の不正検知システムＳは、学習モデルにより出力された不正度と、実際に不正であるか否かの確定結果と、に基づいて、ユーザごとの不正検知の精度を計算し、不正を検知しやすいユーザであるか否かを特定できるようにしている。以降、この技術の詳細を説明する。
【００３７】
［３．不正検知システムにおいて実現される機能］
図３は、不正検知システムＳで実現される機能の一例を示す機能ブロック図である。図３に示すように、サーバ１０では、データ記憶部１００、不正度計算部１０１、確定結果取得部１０２、精度計算部１０３、及び実行部１０４が実現される。
【００３８】
[３−１．データ記憶部]
データ記憶部１００は、記憶部１２を主として実現される。データ記憶部１００は、ユーザの不正検知の精度を計算するために必要なデータを記憶する。ここでは、データ記憶部１００が記憶するデータの一例として、ユーザデータベースＤＢ１、行動履歴データベースＤＢ２、及び精度データベースＤＢ３について説明する。
【００３９】
図４は、ユーザデータベースＤＢ１のデータ格納例を示す図である。図４に示すように、ユーザデータベースＤＢ１は、ユーザに関する各種情報が格納されたデータベースである。例えば、ユーザデータベースＤＢ１には、ユーザＩＤ、ユーザ名、認証情報、利用中心地、平均アクセス時間、及び平均アクセス頻度が格納される。ユーザＩＤは、ユーザを一意に識別する情報である。ユーザ名は、ユーザの氏名である。
【００４０】
認証情報は、認証時の正解（インデックス）となる情報である。認証自体は、種々のタイプの認証を利用可能であり、例えば、パスワード認証、証明書認証、又は生体認証を利用可能である。認証は、１段階であってもよいし、２段階以上であってもよい。ユーザがどの認証を利用するかを指定できるようにしてもよい。
【００４１】
利用中心地は、サービスの利用場所の平均値である。平均アクセス時間は、サービスの利用時間の平均値である。平均アクセス頻度は、サービスの利用頻度の平均値である。これらの平均値は、過去の全期間の平均値であってもよいし、直近の一部の期間の平均値であってもよい。更に、これらの平均値は、単純平均であってもよいし、加重平均であってもよい。加重平均の場合には、現時点に近いほど重み付け係数を高くしてもよい。
【００４２】
ユーザがサービスの利用登録をすませると、サーバ１０は、所定の発行ルールに基づいて、当該ユーザのユーザＩＤを発行する。サーバ１０は、ユーザデータベースＤＢ１に新たなレコードを作成し、当該発行されたユーザＩＤとともに、利用登録時に指定されたユーザ名と、認証情報と、を格納する。認証情報については、事後的に変更可能である。サーバ１０は、ユーザがサービスを利用した場合に、利用中心地、平均アクセス時間、及び平均アクセス頻度を更新する。
【００４３】
図５は、行動履歴データベースＤＢ２のデータ格納例を示す図である。図５に示すように、行動履歴データベースＤＢ２は、ユーザの行動履歴（サービスの利用状況）が格納されたデータベースである。例えば、行動履歴データベースＤＢ２には、行動履歴ＩＤ、ユーザＩＤ、ＩＰアドレス、ＵＲＬ、アクセス場所、アクセス日時、不正度、及び確定結果が格納される。
【００４４】
なお、本実施形態では、確定済み行動と未確定行動の両方が行動履歴データベースＤＢ２に格納される場合を説明するが、確定済み行動又は未確定行動の何れか一方のみが行動履歴データベースＤＢ２に格納されてもよい。また、行動履歴データベースＤＢ２には、他の情報が格納されてもよい。
【００４５】
行動履歴ＩＤは、行動を一意に識別する情報である。ＩＰアドレスは、サービス利用時に使用されたユーザ端末２０のＩＰアドレスである。ＵＲＬは、ユーザがアクセスしたページのＵＲＬである。例えば、サーバ１０とユーザ端末２０のセッションが確立している間のＵＲＬの履歴が格納される。アクセス場所は、サービス利用時におけるユーザ（ユーザ端末２０）の場所である。アクセス場所は、任意の方法によって取得可能であり、例えば、ＩＰアドレス、ＧＰＳ情報、アクセスポイント情報、又は携帯基地局情報を利用して取得されるようにすればよい。アクセス日時は、サービスの利用日時である。
【００４６】
サーバ１０は、ユーザ端末２０とのセッションが確立されるたびに、所定の発行ルールに基づいて、当該行動の行動履歴ＩＤを発行する。サーバ１０は、行動履歴データベースＤＢ２に新たなレコードを作成し、行動履歴ＩＤ、ユーザＩＤ、ＩＰアドレス、ＵＲＬ、アクセス場所、及びアクセス日時を格納する。ユーザＩＤ、ＩＰアドレス、及びＵＲＬは、サーバ１０がユーザ端末２０から受信したアクセス要求に含まれているものとする。アクセス日時は、アクセス要求を受け付けたときの現在日時である。
【００４７】
不正度は、個々の行動の不正度である。不正度は、後述する不正度計算部１０１によって格納される。確定結果は、個々の行動が不正であるか否かを示す結果である。確定結果は、後述する確定結果取得部１０２によって格納される。図５に示すように、確定済み行動についてのみ、確定結果が格納され、未確定行動については、確定結果は格納されない。
【００４８】
図６は、精度データベースＤＢ３のデータ格納例を示す図である。図６に示すように、精度データベースＤＢ３は、ユーザの不正検知の精度が格納されたデータベースである。例えば、精度データベースＤＢ３には、ユーザＩＤ、不正検知の精度、及び補正情報が格納される。
【００４９】
不正検知の精度は、不正度によって不正を検知できる蓋然性である。別の言い方をすれば、不正検知の精度は、不正度と確定結果の一致度又は乖離度である。本実施形態では、学習モデルによって不正度が計算されるので、不正検知の精度は、学習モデルの信用度又は不正度の信用度ということができる。不正度の高さと確定結果が一致しているほど、不正検知の精度は高くなる。不正度の高さと確定結果が違っているほど、不正検知の精度は低くなる。不正検知の精度は、精度計算部１０３によって格納される。
【００５０】
補正量は、不正度の補正の程度である。例えば、不正検知の精度が高いほど補正量は少なくなり、不正検知の精度が低いほど補正量は多くなる。また例えば、不正検知の精度が閾値以上の場合には補正量は設定されず、不正検知の精度が閾値未満の場合に補正量が設定されてもよい。補正量は、後述する実行部１０４により格納される。
【００５１】
なお、データ記憶部１００に記憶されるデータは、上記の例に限られない。例えば、データ記憶部１００は、学習モデルのプログラム（アルゴリズム）やパラメータを記憶する。学習モデルには教師データが学習済みであり、学習モデルのパラメータは、調整済みであるものとする。例えば、教師データには、確定済み行動の内容を入力とし、不正の有無の確定結果を出力としたペアが多数格納されている。このペアの入力は、学習モデルに入力される行動の内容と同じデータ形式である。
【００５２】
教師データの入力となる行動の内容は、行動の特徴を示す情報であり、例えば、ＩＰアドレス、ＵＲＬ、アクセス場所、アクセス日時、及びアクセス頻度のうちの少なくとも１つである。行動の内容は、行動履歴データベースＤＢ２に格納されているものとする。本実施形態では、行動の内容の一例として、アクセス場所とアクセス日時を説明する。教師データには、行動の内容として、アクセス場所等の情報がそのまま格納されていてもよいし、ベクトル又は配列等で表現した特徴量が格納されていてもよい。
【００５３】
教師データの出力となる確定結果は、不正であるか否かを示す情報であり、例えば、不正であることを示す１００％、又は、正常であることを示す０％の何れかの値となる。なお、確定結果は、これらの２値で表現されなければならないわけではなく、管理者が見ても不正であるか否かを断定できなかった行動については、３０％等の中間値が存在してもよい。また、確定結果は、数値で表現されなくてもよく、不正であるか否かを示す文字で表現されてもよい。
【００５４】
教師データは、データ記憶部１００に記憶されていてもよいし、サーバ１０以外のコンピュータ又は情報記憶媒体に記憶されていてもよい。例えば、教師データは、管理者によって作成される。サーバ１０は、教師データに基づいて、学習モデルの学習処理を実行する。学習処理自体は、機械学習で用いられる種々の手法を適用可能であり、例えば、ニューラルネットワークにおける学習処理を利用可能である。サーバ１０は、教師データが示す入力と出力の関係が得られるように、学習モデルのパラメータを調整する。
【００５５】
［３−２．不正度計算部］
不正度計算部１０１は、制御部１１を主として実現される。不正度計算部１０１は、サービスを利用するユーザの行動に基づいて、ユーザの不正度を計算する。不正度計算部１０１は、ユーザごとに、当該ユーザの行動に基づいて当該ユーザの不正度を計算する。不正度計算部１０１は、全てのユーザの不正度を計算してもよいし、一部のユーザの不正度を計算してもよい。
【００５６】
行動は、サービスをどのように利用したかを示す情報である。行動は、サービスの利用内容、又は、サービス利用時の挙動ということもできる。本実施形態では、行動履歴データベースＤＢ２に格納されたＩＰアドレス、ＵＲＬ、アクセス場所、及びアクセス日時がユーザの行動に相当する場合を説明するが、これらの一部だけが行動に相当してもよいし、サービス利用時にサーバ１０に入力される他の情報が行動に相当してもよい。
【００５７】
本実施形態では、不正度計算部１０１は、確定結果取得部１０２により取得された確定結果が示す、実際に不正であるか否かが確定した行動が予め学習された学習モデルに基づいて、不正であるか否かが確定していない行動の不正度を計算する。不正度計算部１０１は、ユーザの行動を示す情報（例えば、アクセス場所とアクセス日時）を学習モデルに入力する。学習モデルは、入力された情報の特徴量を計算し、特徴量に応じた不正度を出力する。不正度計算部１０１は、学習モデルから出力された不正度を取得する。なお、特徴量は、学習モデル以外のアルゴリズムによって計算されてもよい。この場合、当該アルゴリズムによって計算された特徴量が学習モデルに入力される。
【００５８】
例えば、不正度計算部１０１は、複数の行動の各々に基づいて、各行動の不正度を計算する。不正度計算部１０１は、行動が実行されるたびに、当該行動の内容に基づいて不正度を計算する。
【００５９】
例えば、不正度計算部１０１は、ＩＰアドレスにばらつきがあるほど不正度が高くなるように、不正度を計算する。また例えば、不正度計算部１０１は、ユーザがアクセスしたＵＲＬにばらつきがあるほど不正度が高くなるように、不正度を計算する。また例えば、不正度計算部１０１は、アクセス場所が利用中心地から離れているほど、又は、アクセス場所にばらつきがあるほど、不正度が高くなるように、不正度を計算する。また例えば、不正度計算部１０１は、アクセス日時が平均アクセス日時から離れているほど、又は、アクセス日時にばらつきがあるほど不正度が高くなるように、不正度を計算する。また例えば、不正度計算部１０１は、アクセス頻度が平均アクセス頻度から離れているほど、又は、アクセス頻度にばらつきがあるほど不正度が高くなるように、不正度を計算する。
【００６０】
なお、不正度は、予め定められた方法に基づいて計算されるようにすればよく、学習モデルを利用した例に限られない。例えば、不正度計算部１０１は、ユーザの行動を数値化し、所定の計算式に代入することによって、不正度を計算してもよい。また例えば、不正度計算部１０１は、ユーザの行動と不正度の関係を定義したプログラムコードに基づいて、不正度を計算してもよい。
【００６１】
［３−３．確定結果取得部］
確定結果取得部１０２は、制御部１１を主として実現される。確定結果取得部１０２は、ユーザの行動が実際に不正であるか否かの確定結果を取得する。確定結果取得部１０２は、ユーザごとに、当該ユーザの行動の確定結果を取得する。確定結果取得部１０２は、全てのユーザの確定結果を取得してもよいし、一部のユーザの確定結果を取得してもよい。
【００６２】
確定結果は、不正であることを示す第１の値、又は、不正ではないことを示す第２の値となる。例えば、確定結果は、サービスの管理者によって指定される。サービスの管理者は、全ての行動に対して確定結果を指定する必要はなく、一部の行動についてのみ確定結果を指定してもよい。
【００６３】
例えば、確定結果取得部１０２は、各行動の不正度に基づいて仮の確定結果を取得し、管理者に提示する。仮の確定結果は、不正度が閾値以上であれば不正となり、不正度が閾値未満であれば正常となる。管理者は、仮の確定結果をチェックし、誤りがあれば修正する。管理者は、ユーザがサービスを利用してから所定の期間（例えば、サービスの利用日から３ヶ月）が経過した後、仮の確定結果をチェックし、修正してもよい。また、管理者は、ユーザから不正ログインの疑いの報告があった場合、不正度が閾値未満であった仮の確定結果を修正してもよい。確定結果取得部１０２は、管理者により修正された確定結果を取得する。
【００６４】
本実施形態では、複数の行動が行われるので、確定結果取得部は、各行動が実際に不正であるか否かの確定結果を取得する。確定結果取得部は、行動ごとに、当該行動の確定結果を取得する。確定結果取得部１０２は、全ての行動の確定結果を取得してもよいし、一部の行動の確定結果を取得してもよい。
【００６５】
［３−４．精度計算部］
精度計算部１０３は、制御部１１を主として実現される。精度計算部１０３は、不正度と確定結果とに基づいて、ユーザごとの不正検知の精度を計算する。精度計算部１０３は、ユーザごとに、当該ユーザの不正度と確定結果に基づいて当該ユーザの不正検知の精度を計算する。精度計算部１０３は、全てのユーザの不正検知の精度を計算してもよいし、一部のユーザの不正検知の精度を計算してもよい。
【００６６】
本実施形態では、行動ごとに不正度が計算されるので、精度計算部１０３は、各行動の不正度と確定結果とに基づいて、不正検知の精度を計算する。例えば、精度計算部１０３は、各行動の不正度と確定結果を所定の計算式に代入し、不正検知の精度を計算する。この計算式は、各行動の不正度と確定結果を代入すると、不正検知の精度が算出される式であればよい。
【００６７】
精度計算部１０３は、不正度の高さと確定結果が一致しているほど精度が高くなるように、不正検知の精度を計算する。本実施形態において、不正度の高さと確定結果が一致するとは、不正度が閾値以上の行動の確定結果が不正であることを意味する。別の言い方をすれば、不正度の高さと確定結果が一致するとは、不正度が閾値未満の行動の確定結果が不正ではないことを意味する。
【００６８】
例えば、精度計算部１０３は、不正度と確定結果とに基づいて、所定の損失関数の値を計算し、精度として取得する。損失関数は、不正度と確定結果の誤差を計算するための関数である。損失関数自体は、種々の関数を利用可能であり、例えば、ニューラルネットワーク等の学習モデルの精度（いわゆるＬｏｓｓ又はＬｏｇＬｏｓｓ）を評価する関数を利用可能である。損失関数は、不正度と確定結果の誤差が大きいほど、計算結果として得られる精度が低くなり、誤差が小さいほど、計算結果として得られる精度が高くなる。
【００６９】
なお、不正検知の精度は、予め定められた方法に基づいて計算されるようにすればよく、損失関数等の計算式を利用した例に限られない。例えば、精度計算部１０３は、不正度及び確定結果と、不正検知の精度と、の関係を学習させた学習モデルを利用して、不正検知の精度を計算してもよい。また例えば、精度計算部１０３は、不正度及び確定結果と、不正検知の精度と、の関係を定義したプログラムコードに基づいて、不正検知の精度を計算してもよい。
【００７０】
［３−５．実行部］
実行部１０４は、制御部１１を主として実現される。実行部１０４は、不正検知の精度に応じた処理を実行する。実行部１０４は、ユーザごとに、当該ユーザの不正検知の精度に応じた処理を実行する。実行部１０４は、全てのユーザについて処理を実行してもよいし、一部のユーザについてのみ処理を実行してもよい。
【００７１】
不正検知の精度に応じた処理とは、実行するか否かが不正検知の精度によって決まる処理、又は、不正検知の精度によって内容が変わる処理である。本実施形態では、この処理の一例として、不正度計算部１０１により計算される不正度の値を変更する処理である処理を説明するが、この処理は、任意の処理であってよい。例えば、この処理は、後述する変形例のようにクーポンを付与する処理であってもよい。また例えば、この処理は、サービスの利用を制限する処理、追加の認証を要求する処理、又は、クーポン以外の優待を付与する処理であってもよい。
【００７２】
例えば、実行部１０４は、ユーザの不正検知の精度に基づいて、不正度の補正量を決定する。実行部１０４は、不正検知の精度が低いほど補正量が多くなるように、補正量を決定する。実行部１０４は、不正検知の精度が高いほど補正量が少なくなるように、補正量を決定する。また例えば、実行部１０４は、不正検知の精度が閾値未満のユーザには、補正量を設定し、不正検知の精度が閾値以上のユーザには、補正量を設定しないようにしてもよい。実行部１０４は、上記のように決定した補正量に基づいて、不正度計算部１０１により計算される不正度の値を変更する。
【００７３】
［４．本実施形態において実行される処理］
次に、不正検知システムＳにおいて実行される処理について説明する。ここでは、ユーザがサービスを利用するためのサービス利用処理と、ユーザの不正検知の精度を計算するための精度計算処理と、について説明する。
【００７４】
［４−１．サービス利用処理］
図７は、サービス利用処理の一例を示すフロー図である。図７に示すサービス利用処理は、制御部１１，２１が、それぞれ記憶部１２，２２に記憶されたプログラムに従って動作することによって実行される。下記に説明する処理は、図３に示す機能ブロックにより実行される処理の一例である。なお、サービス利用処理が実行されるにあたり、ユーザは、利用登録を済ませているものとする。
【００７５】
図７に示すように、ユーザ端末２０は、サーバ１０に対し、サービスにログインするためのログイン要求を送信する（Ｓ１００）。ログイン要求は、所定形式のデータが送信されることによって行われるようにすればよく、例えば、ユーザＩＤと認証情報が含まれる。認証情報は、ユーザ端末２０の記憶部２２に記憶されていてもよいし、操作部２４から入力されてもよい。他にも例えば、生体認証を利用する場合、ユーザ端末２０のカメラ等から認証情報が入力されてもよい。
【００７６】
サーバ１０は、ログイン要求を受信すると、ユーザ端末２０との間でセッションを確立させる（Ｓ１０１）。Ｓ１０１においては、サーバ１０は、ログイン要求に含まれるユーザＩＤと認証情報に基づいて、ユーザ認証を実行する。ユーザ認証が成功した場合、サーバ１０は、セッションを確立する。ユーザ認証が成功しなかった場合、セッションは確立されず、本処理は終了する。
【００７７】
サーバ１０は、ユーザのアクセス要求に応じて、ニュースや記事等のコンテンツを提供する（Ｓ１０２）。アクセス要求には、ユーザ端末２０のＩＰアドレスと、アクセス先のコンテンツへのＵＲＬと、が含まれるものとする。サーバ１０は、ＵＲＬに対応するコンテンツをユーザに提供する。サーバ１０は、行動履歴ＩＤを発行し、ユーザＩＤ、ＩＰアドレス、ＵＲＬ、アクセス場所、及びアクセス日時を行動履歴データベースＤＢ２に格納する。以降、セッションが切断されるまで、Ｓ１０２の処理が繰り返される。コンテンツが提供されるたびに、上記発行された行動履歴ＩＤのＵＲＬ、アクセス場所及びアクセス日時が追加される。
【００７８】
サーバ１０は、ユーザ端末２０とのセッションが切断されると、その間におけるユーザの行動と、記憶部１２に記憶された学習モデルと、に基づいて、この行動に応じた不正度を計算する（Ｓ１０３）。Ｓ１０３においては、サーバ１０は、セッション中のＩＰアドレス、ＵＲＬ、アクセス場所及びアクセス日時を学習モデルに入力し、学習モデルが出力した不正度を取得する。
【００７９】
サーバ１０は、精度データベースＤＢ３に基づいて、Ｓ１０３で計算した不正度を補正し（Ｓ１０４）、本処理は終了する。Ｓ１０４においては、サーバ１０は、精度データベースＤＢ３を参照し、ユーザに応じた補正量を取得する。サーバ１０は、この補正量に基づいて、Ｓ１０３で計算した不正度を補正し、行動履歴データベースＤＢ２に格納する。補正の必要がないユーザについては、Ｓ１０４の処理は実行されず、サーバ１０は、Ｓ１０３で計算した不正度を、行動履歴データベースＤＢ２に格納する。なお、サーバ１０は、Ｓ１０４の処理をセッション切断前に実行し、補正された不正度が非常に高かった場合には、コンテンツの提供を停止してもよい。
【００８０】
［４−２．精度計算処理］
図８は、精度計算処理の一例を示すフロー図である。図８に示す精度計算処理は、制御部１１が記憶部１２に記憶されたプログラムに従って動作することによって実行される。下記に説明する処理は、図３に示す機能ブロックにより実行される処理の一例である。精度計算処理は、任意のタイミングで実行されるようにすればよく、例えば、管理者が所定の操作をした場合に実行されてもよいし、所定の日時（例えば、サービスの利用日から３ヶ月後）が訪れた場合に実行されてもよい。
【００８１】
図８に示すように、まず、サーバ１０は、行動履歴データベースＤＢ２に基づいて、各ユーザの確定済み行動の不正度と確定結果を取得する（Ｓ２００）。Ｓ２００においては、サーバ１０は、行動履歴データベースＤＢ２を参照し、ユーザごとに、確定済み行動（３ヶ月以上前の行動）の不正度と確定結果のペアを取得する。
【００８２】
サーバ１０は、各ユーザの確定済み行動の不正度と確定結果に基づいて、各ユーザの不正検知の精度を計算する（Ｓ２０１）。Ｓ２０１においては、サーバ１０は、ユーザごとに、不正度と確定結果を損失関数に代入し、不正検知の精度を計算する。サーバ１０は、各ユーザの不正検知の精度を、精度データベースＤＢ３に格納する。
【００８３】
サーバ１０は、各ユーザの不正検知の精度に基づいて、不正度の補正量を決定し（Ｓ２０２）、本処理は終了する。Ｓ２０２においては、サーバ１０は、ユーザごとに、当該ユーザの不正検知の精度に応じた補正量を決定する。サーバ１０は、各ユーザに対して決定された補正量を、精度データベースＤＢ３に格納する。精度データベースＤＢ３に格納された補正量は、ユーザが次回ログインした際に有効となり、次回以降のサービス利用処理で参照される。
【００８４】
本実施形態の不正検知システムＳによれば、ユーザの行動に応じた不正度と、当該行動が実際に不正であるか否かの確定結果と、に基づいて、ユーザごとの不正検知の精度を計算することができる。ユーザごとの不正検知の精度を計算することによって、ユーザごとに、不正度の計算方法を評価することができる。これにより、現状の計算方法で捕捉可能なユーザであるか否かを特定し、不正検知システムＳにおけるセキュリティを向上させることができる。また、現状の計算方法で捕捉しやすいユーザについては、不正検知システムＳで止めることができ、このようなユーザについてまで管理者が注意を払う必要がなくなるので、管理者の負担を軽減することもできる。更に、ユーザごとの不正検知の精度を計算することによって、捕捉しにくいユーザが増加したか否かを特定することもできる。これにより、捕捉しにくいユーザが増加したときに、例えば、最新のトレンドに合うように用意した教師データを使って学習モデルを更新するといったこともできる。これにより、学習モデルの精度が向上し、不正検知システムＳにおけるセキュリティを向上させることもできる。
【００８５】
また、不正検知システムＳは、複数の行動の各々の不正度と確定結果とに基づいて、ユーザごとの不正検知の精度を計算することによって、複数の行動が総合的に考慮された不正検知の精度を計算し、計算精度を高めることができる。これにより、不正検知システムＳにおけるセキュリティを効果的に高めることができる。
【００８６】
また、不正検知システムＳは、実際に不正であるか否かが確定した行動が学習された学習モデルに基づいて、不正であるか否かが確定していない行動の不正度を計算することによって、不正度の計算精度を高めることができる。例えば、新しい教師データを学習モデルに学習させることによって、最新の不正のトレンドに対応した高精度の不正度を計算することができる。不正度の計算精度を高めることによって、不正検知システムＳにおけるセキュリティを効果的に高めることができる。
【００８７】
また、不正検知システムＳは、不正度と確定結果とに基づいて、所定の損失関数の値を計算し、不正検知の精度として取得することによって、不正度の計算精度を効果的に高めることができる。これにより、不正検知システムＳにおけるセキュリティを効果的に高めることができる。例えば、不正をしていないユーザが大半であることが予想される場合、不正検知システムＳは、行動履歴データベースＤＢ２に基づいて、クラスタリング等を利用して利用傾向が類似したユーザを一定数抽出し、これらの中で学習モデルの不正検知の精度を計算してもよい。このようにする場合、不正が起こっていないユーザ、又は、利用履歴が浅いユーザについても、不正検知の精度をある程度判定することができる。
【００８８】
また、不正検知システムＳは、不正検知の精度に応じた処理を実行することによって、例えば、不正検知の精度に応じたサービスを提供したり、不正検知の精度に応じた利用制限をしたりすることができる。
【００８９】
また、不正検知システムＳは、不正検知の精度に応じた処理として、不正度の値を変更させる処理を実行することによって、不正度の計算精度を効果的に高めることができる。これにより、不正検知システムＳで捕捉しにくいユーザをある程度は補足しやすくすることができ、不正検知システムＳにおけるセキュリティを効果的に高めることができる。
【００９０】
［５．変形例］
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【００９１】
（１）例えば、不正な行動であるにも関わらず、不正度が低く計算される事象（いわゆる偽陰性）や、正常な行動であるにも関わらず、不正度が高く計算される事象（いわゆる偽陽性）が多く発生した場合、その学習モデルは信用できないことを意味する。特に、偽陰性の損失を特に重大と評価するために、損失関数は、偽陰性が精度に与える影響が大きくなるように、係数が定められていてもよい。
【００９２】
本変形例の損失関数は、いわゆる重み付けされたＬｏｇＬｏｓｓである。この損失関数は、学習モデルが正誤を誤って判定した場合（偽陰性又は偽陽性が発生した場合）には、指数的に値が大きくなる性質を有する。損失関数は、管理者によって定められた係数によって偽陰性と偽陽性の重要度を調整できるようになっている。例えば、係数が所定値である場合には通常のＬｏｇＬｏｓｓとなるが、係数を小さくすることで偽陰性をより重視するように調整できる。
【００９３】
変形例（１）によれば、不正検知の精度の計算で用いられる損失関数の係数を、偽陰性が精度に与える影響が大きくなるように定めることによって、不正な行動であるにも関わらず不正度が低く計算されるといった最も信用できないケースが発生することを防止し、不正検知システムＳにおけるセキュリティを効果的に高めることができる。
【００９４】
（２）また例えば、確定結果取得部１０２は、他のユーザの行動の確定結果を取得し、不正度計算部１０１は、実際に不正であるか否かが確定した他のユーザの行動がユーザにより行われたと仮定して、不正度を計算してもよい。他のユーザとは、不正度の計算対象となるユーザ以外のユーザであり、例えば、不正度の計算対象となるユーザに似た行動特性を有するユーザであってもよい。
【００９５】
図９は、変形例（２）における不正度の計算方法を示す図である。図９の例では、２０１９年２月２１日と２０１９年２月２６日に行われた他のユーザの行動が不正な行動として確定されている。不正度計算部１０１は、これらの行動が、不正度の計算対象となるユーザに発生したと仮定して、不正度を計算する。不正度の計算方法自体は、実施形態で説明した通りであり、本来は発生していない行動を、疑似的に発生させて不正度を計算する点でのみ実施形態とは異なる。
【００９６】
精度計算部１０３は、ユーザにより行われたと仮定した行動の不正度と、他のユーザの行動の確定結果と、に基づいて、不正検知の精度を計算する。例えば、精度計算部１０３は、ユーザにより行われたと仮定した行動の不正度と、他のユーザの行動の確定結果と、が一致しているほど精度が高くなるように、不正検知の精度を計算する。
【００９７】
図９の例であれば、精度計算部１０３は、疑似的に発生させた他のユーザの行動の不正度が閾値以上の場合には、不正な行動が不正であると判定できているので、不正検知の精度が高くなるように、不正検知の精度を計算する。一方、精度計算部１０３は、疑似的に発生させた他のユーザの行動の不正度が閾値未満の場合には、不正な行動を不正と判定できていないので、不正検知の精度が低くなるように、不正検知の精度を計算する。
【００９８】
変形例（２）によれば、確定結果が得られた他のユーザの行動がユーザにより行われたと仮定して、不正度を計算することによって、不正度の計算精度を高めることができる。その結果、不正検知の精度を高めることもできる。例えば、疑似的な状況を作り出すことによって、利用履歴が浅いユーザや不正の被害を受けていないユーザに対しても、不正検知の精度を評価することができる。
【００９９】
（３）また例えば、不正度計算部１０１は、過去に行われた行動に基づく不正度と、当該行動が実際に不正であったか否かの確定結果と、に基づいて、不正度の計算における重み付け係数を決定し、当該決定された重み付け係数に基づいて、不正度を計算してもよい。重み付け係数は、不正度の計算に用いられる係数である。重み付け係数は、仮の不正度を補正するために用いられる。仮の不正度は、実施形態で説明した方法で計算された不正度である。例えば、不正度計算部１０１は、過去に計算した不正度と、その後の確定結果と、の分布から適切な重み付け係数を決定し、当該重み付け係数に基づいて不正度を計算する。
【０１００】
図１０は、変形例（３）の概要を示す図である。図１０についても、図２と同様に、現時点を２０１９年１１月３０日とする。図１０では、２０１９年におけるユーザＡの確定済み行動の不正度と、不正であるか否かの確定結果と、を示す。
【０１０１】
図１０に示すように、サーバ１０は、ユーザＡの行動に基づいて、複数のデータセットを抽出する。個々のデータセットに含まれる行動は、互いに異なる。例えば、サーバ１０は、ランダムに期間を区切ってデータセットを抽出する。他にも例えば、サーバ１０は、不正が確定した行動を探索し、不正が確定した行動を見つけた場合に、その時点までに含まれる行動をデータセットとして抽出してもよい。
【０１０２】
例えば、不正度の計算式の重み関数が時間の経過のみに依存する関数であったと仮定すると、学習モデルが出力する不正度と、実際に不正であるか否かの確定結果と、の乖離度（いわゆるＬｏｓｓ）を重み関数に応じて設定することができる。サーバ１０は、この乖離度をデータ全体に対して最小化するような重み関数を推定する。例えば、この推定は、損失関数と重み関数の定義によって解析的に解かれてもよいし、最適化ソルバー等によって近似的に解かれてもよい。重み関数としては、指数関数、ロジスティック曲線、又は線形関数などを定義することができる。
【０１０３】
例えば、不正度計算部１０１は、学習モデルが出力する不正度と、実際に不正であるか否かの確定結果と、の乖離度が小さくなるように、学習モデルが出力した仮の不正度を補正する。この補正量は、重み関数における重み付け係数によって決まる。この乖離度は、ユーザによって異なることがあるので、不正度計算部１０１は、乖離度が高いほど仮の不正度の補正量が多くなるように、仮の不正度を補正する。例えば、過去の確定済み行動から計算されたユーザごとに乖離度が高い場合には、不正度計算部１０１は、学習モデルが計算した仮の不正度が低くなるように補正する。
【０１０４】
変形例（３）によれば、過去に行われた行動に基づく不正度と、当該行動が実際に不正であったか否かの確定結果と、に更に基づいて、不正度を計算することによって、不正度の計算精度を高めることができる。不正度の計算精度を高めることによって、不正検知の精度も高めることができる。
【０１０５】
（４）また例えば、不正度計算部１０１は、ユーザの認証方法と、ユーザの名義人と、の少なくとも一方に更に基づいて、不正度を計算してもよい。例えば、不正度計算部１０１は、ユーザが指定した認証方法の強度が高いほど、不正度が低くなるように、不正度を計算する。認証方法の強度は、パスワードの強度、二段階認証の登録の有無、又は生体認証の種類によって判定されるようにすればよい。
【０１０６】
また例えば、不正度計算部１０１は、ユーザが登録したクレジッドカードの名義人と、ユーザがユーザデータベースＤＢ１に登録した氏名と、の差異が大きいほど、不正度が高くなるように、不正度を計算する。なお、上述したような名義人又は氏名と、不正度との関係を学習させた学習モデルを作成し、この学習モデルに基づいて不正度を計算し、不正検知の精度を計算することもできる。また、特に学習モデルを利用せずに、クレジットカードの名義人の文字列と、ユーザの氏名の文字列と、の間で相違する文字数に基づいて、不正度が計算されてもよい。
【０１０７】
変形例（４）によれば、ユーザの認証方法と、ユーザの名義人と、の少なくとも一方に更に基づいて、不正度を計算することによって、不正度の計算精度を高めることができる。不正度の計算精度を高めることによって、不正検知の精度の計算精度も高めることができる。
【０１０８】
（５）また例えば、実行部１０４が実行する処理は、実施形態で説明した例に限られない。例えば、不正検知の精度に応じた処理は、サービスに関するクーポンをユーザに付与する処理であってもよい。クーポンは、サービスに係るものであればよく、例えば、サービス利用時に割引を受けることができる権利、サービス利用時にポイントが付与される権利、又は、サービス利用時にコンテンツや物を受け取ることができる権利などである。
【０１０９】
例えば、実行部１０４は、不正検知の精度が閾値未満のユーザにはクーポンを付与せず、不正検知の精度が閾値以上のユーザに対し、クーポンを付与する。閾値は、固定値であってもよいし、可変値であってもよい。閾値は、ユーザごとに定められてもよい。また例えば、複数種類のクーポンが用意されている場合、実行部１０４は、ユーザの不正検知の精度に応じたクーポンを付与する。実行部１０４は、ユーザの不正検知の精度が高いほど価値が高いクーポンを付与する。この場合、クーポンは、不正検知の精度によってランク分けされているものとする。
【０１１０】
変形例（５）によれば、不正検知の精度に応じた処理として、クーポンを付与することによって、不正検知の精度に応じた優待を付与することができる。例えば、不正度が高く計算されがちなユーザにクーポンを付与したとしても、不正検知システムＳでこのユーザの不正を捕捉できる確率が高いため、クーポンを付与することによって、サービスの利用機会の低下を抑えることができる。
【０１１１】
（６）また例えば、上記変形例を組み合わせてもよい。
【０１１２】
また例えば、実施形態では、ユーザがサービスを利用してから所定の期間が経過すると、不正であるか否かが確定する場合を説明したが、ユーザがサービスを利用してすぐに、管理者の確認が行われて不正であるか否かが確定してもよい。また例えば、不正検知システムＳが不正検知の精度に応じた処理を実行する場合を説明したが、この処理は、特に実行されずに管理者によって不正検知の精度の解析が行われてもよいし、外部のシステムによって実行されるようにしてもよい。即ち、不正検知システムＳは、実行部１０４を含まなくてもよい。
【０１１３】
また例えば、サービスの一例としてコンテンツを提供するサービスを説明したが、不正検知システムＳは、決済サービス、電子商取引サービス、旅行予約サービス、金融サービス、保険サービス、又は通信サービスといった任意のサービスにおける不正検知の場面に適用可能である。例えば、不正検知システムＳを決済サービスに利用する場合には、ユーザの行動は、個々の決済となる。個々の決済は、トランザクションと呼ばれることもある。学習モデルは、決済における利用額や利用日時等に基づいて、不正度を計算する。不正検知の精度は、決済時の不正を捕捉する蓋然性となる。
【０１１４】
なお、決済は、種々のタイプの決済を利用可能である。例えば、クレジットカード決済、電子マネー決済、仮想通貨決済、ウォレット決済、ポイント決済、デビットカード決済、又は口座振替決済であってもよい。更に、これらの決済を実現する方法についても、種々の手法を利用可能である。例えば、ユーザ端末２０に含まれるＩＣチップを利用して決済が実現されてもよいし、ユーザ端末２０又は店舗の端末等に表示された一次元又は二次元コードを利用して決済が実現されてもよい。ユーザは、ユーザ端末２０を操作せずに、サービスを利用してもよい。例えば、ユーザは、実店舗の端末に、クレジットカードやＩＣカード等の媒体を読み込ませることによって、サービスを利用してもよい。また例えば、ユーザは、これらの媒体を利用せずに、生体認証を利用することによって、サービスを利用してもよい。更に、サービスの管理者は、クレジットカード会社ではなくてもよいし、クレジットカード会社であってもよい。
【０１１５】
また例えば、主な機能がサーバ１０で実現される場合を説明したが、各機能は、複数のコンピュータで分担されてもよい。例えば、サーバ１０とユーザ端末２０で機能が分担されてもよい。また例えば、不正検知システムＳが複数のサーバコンピュータを含む場合には、これら複数のサーバコンピュータで機能が分担されてもよい。また例えば、データ記憶部１００で記憶されるものとして説明したデータは、サーバ１０以外のコンピュータによって記憶されてもよい。
【要約】
不正検知システム（Ｓ）の不正度計算手段（１０１）は、サービスを利用するユーザの行動に基づいて、ユーザの不正度を計算する。確定結果取得手段（１０２）は、行動が実際に不正であるか否かの確定結果を取得する。精度計算手段（１０３）は、不正度と確定結果とに基づいて、ユーザごとの不正検知の精度を計算する。【図１】
0006933780.tif 000002
【図２】
0006933780.tif 000003
【図３】
0006933780.tif 000004
【図４】
0006933780.tif 000005
【図５】
0006933780.tif 000006
【図６】
0006933780.tif 000007
【図７】
0006933780.tif 000008
【図８】
0006933780.tif 000009
【図９】
0006933780.tif 000010
【図１０】
0006933780.tif 000011