(57)【要約】【課題】認証の利便性を確保しつつ、認証の安全性を高めること。【解決手段】本願に係る生成装置は、取得部と、算出部と、生成部とを有する。取得部は、ユーザのコンテキストに関する各種情報を取得する。算出部は、取得部によって取得された各種情報を素性として学習処理を実行することにより、ユーザを認証するためのモデルにおける、素性の各々に対する重み値を算出する。生成部は、算出部によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、ユーザに対応するモデルを生成する。【選択図】図１
2018147326.tif 000002
【特許請求の範囲】
【請求項１】
ユーザのコンテキストに関する各種情報を取得する取得部と、
前記取得部によって取得された各種情報を素性として学習処理を実行することにより、当該ユーザを認証するためのモデルにおける、当該素性の各々に対する重み値を算出する算出部と、
前記算出部によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、前記ユーザに対応するモデルを生成する生成部と、
を備えたことを特徴とする生成装置。
【請求項２】
前記生成部は、
ランダムな値を前記所定値として、前記モデルを生成する、
ことを特徴とする請求項１に記載の生成装置。
【請求項３】
前記生成部は、
前記算出部によって算出された重み値の少なくとも２つを掛けあわせた値を前記所定値として、前記モデルを生成する、
ことを特徴とする請求項１又は２に記載の生成装置。
【請求項４】
前記生成部は、
前記算出部によって算出された重み値のうち、所定の閾値より低い重み値を前記所定値に置き換えて、前記モデルを生成する、
ことを特徴とする請求項１〜３のいずれか一つに記載の生成装置。
【請求項５】
前記生成部は、
前記学習処理に用いられた情報量が所定量に達していない素性に対して算出された重み値を前記所定値に置き換えて、前記モデルを生成する、
ことを特徴とする請求項１〜４のいずれか一つに記載の生成装置。
【請求項６】
前記生成部は、
前記算出部によって算出された重み値のうち、最大となる値から所定範囲に属する値をとる重み値を前記所定値に置き換えて、前記モデルを生成する、
ことを特徴とする請求項１〜５のいずれか一つに記載の生成装置。
【請求項７】
判定処理の対象となるユーザから、当該ユーザのコンテキストに関する各種情報を受信する受信部と、
前記受信部によって前記ユーザのコンテキストに関する各種情報が受信された場合に、当該ユーザに対応するモデルを用いて、当該ユーザの本人性を判定する判定部と、
をさらに備えることを特徴とする請求項１〜６のいずれか一つに記載の生成装置。
【請求項８】
前記判定部は、
前記学習処理に用いられた情報量が所定量を超える素性のみを用いて、前記ユーザの本人性を判定する、
ことを特徴とする請求項７に記載の生成装置。
【請求項９】
前記判定部は、
前記ユーザごとに予め設定された素性のみを用いて、前記ユーザの本人性を判定する、
ことを特徴とする請求項７又は８に記載の生成装置。
【請求項１０】
コンピュータが実行する生成方法であって、
ユーザのコンテキストに関する各種情報を取得する取得工程と、
前記取得工程によって取得された各種情報を素性として学習処理を実行することにより、当該ユーザを認証するためのモデルにおける、当該素性の各々に対する重み値を算出する算出工程と、
前記算出工程によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、前記ユーザに対応するモデルを生成する生成工程と、
を含んだことを特徴とする生成方法。
【請求項１１】
ユーザのコンテキストに関する各種情報を取得する取得手順と、
前記取得手順によって取得された各種情報を素性として学習処理を実行することにより、当該ユーザを認証するためのモデルにおける、当該素性の各々に対する重み値を算出する算出手順と、
前記算出手順によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、前記ユーザに対応するモデルを生成する生成手順と、
をコンピュータに実行させることを特徴とする生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生成装置、生成方法及び生成プログラムに関する。
【背景技術】
【０００２】
近年、各ユーザが所有する端末装置においてユーザの行動情報を取得し、各種行動情報に基づいてユーザの認証を行う技術が提案されている。このような技術によれば、ユーザは、認証に要するパスワード等を記憶せずとも、自身の日常の行動に応じて認証を受けることが可能になる。
【０００３】
ユーザの行動情報を利用した認証に関する技術として、ユーザの様々な行動履歴情報を認証に用いることにより、行動履歴情報の偏りを防止し、他者による行動履歴情報の推測を困難にすることで、認証システムのセキュリティ強度の低下を防ぐ技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−５９８３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の従来技術では、認証の利便性を確保しつつ、認証の安全性を高めることができない可能性がある。例えば、従来技術では、ユーザの様々な行動履歴を認証に用いて安全性を高めているものの、認証のためにはユーザが情報を回答する必要があるため、利便性が高いとはいえない。
【０００６】
一方、認証の利便性を高めるために、ユーザの行動情報に基づいて自動的に認証を行う手法を採用すると、様々な行動履歴を認証に用いたとしても安全性を確保できない場合がある。例えば、ユーザの様々な行動のうち、認証に有効な行動（例えば、様々な行動のうち、当該ユーザの本人性の判定において重み値が高い行動）が第三者に知られた場合、悪意をもってユーザに似せた行動をとる第三者に、簡単に認証が破られてしまう可能性がある。すなわち、第三者は、認証に有効な行動のみを真似するだけで、当該ユーザと同じ効果を有する行動情報を取得することが可能になる。これにより、ユーザの認証が、ユーザ本人に成りすました第三者によって行われる危険性が高くなる。
【０００７】
本願は、上記に鑑みてなされたものであって、認証の利便性を確保しつつ安全性を高めることができる生成装置、生成方法及び生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願に係る生成装置は、ユーザのコンテキストに関する各種情報を取得する取得部と、前記取得部によって取得された各種情報を素性として学習処理を実行することにより、当該ユーザを認証するためのモデルにおける、当該素性の各々に対する重み値を算出する算出部と、前記算出部によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、前記ユーザに対応するモデルを生成する生成部と、を備えたことを特徴とする。
【発明の効果】
【０００９】
実施形態の一態様によれば、認証の利便性を確保しつつ安全性を高めることができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施形態に係る生成処理の一例を示す図である。
【図２】図２は、実施形態に係る生成処理システムの構成例を示す図である。
【図３】図３は、実施形態に係る生成装置の構成例を示す図である。
【図４】図４は、実施形態に係る生データ記憶部の一例を示す図である。
【図５】図５は、実施形態に係る個人情報記憶部の一例を示す図である。
【図６】図６は、実施形態に係る学習情報記憶部の一例を示す図である。
【図７】図７は、実施形態に係る仕様情報記憶部の一例を示す図である。
【図８】図８は、実施形態に係るモデルテーブルの一例を示す図である。
【図９】図９は、実施形態に係る条件テーブルの一例を示す図である。
【図１０】図１０は、実施形態に係るユーザ端末の構成例を示す図である。
【図１１】図１１は、実施形態に係る処理手順を示すフローチャート（１）である。
【図１２】図１２は、実施形態に係る処理手順を示すフローチャート（２）である。
【図１３】図１３は、変形例に係る生成処理の一例を示す図である。
【図１４】図１４は、生成装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【００１１】
以下に、本願に係る生成装置、生成方法及び生成プログラムを実施するための形態（以下、「実施形態」と呼ぶ）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る生成装置、生成方法及び生成プログラムが限定されるものではない。また、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【００１２】
〔１．生成処理の一例〕
まず、図１を用いて、実施形態に係る生成処理の一例について説明する。図１は、実施形態に係る生成処理の一例を示す図である。図１では、本願に係る生成装置１００によって、ユーザ端末１０から送信される情報に基づいてユーザの本人性に関する生成処理が行われる例を示す。
【００１３】
図１に示す生成装置１００は、ユーザ端末１０の認証に関する判定を行うサーバ装置である。また、ユーザ端末１０は、ユーザによって利用される情報処理端末である。図１では、ユーザ端末１０は、例えばスマートフォン（Smartphone）である。図１の例では、ユーザ端末１０は、ユーザの一例であるユーザＵ０１によって利用されるものとする。
【００１４】
実施形態において、生成装置１００は、ユーザ端末１０から送信される情報に基づいて、ユーザＵ０１の本人性の判定を行う。言い換えれば、生成装置１００は、ユーザＵ０１が真にユーザＵ０１本人であると認証する処理を行う。
【００１５】
実施形態では、生成装置１００は、ユーザ端末１０から送信される、ユーザＵ０１のコンテキスト（context）に関する各種情報に基づいて生成処理を行うものとする。実施形態においてコンテキストとは、ユーザ端末１０が利用されている状況や、ユーザ端末１０を利用するユーザＵ０１の状況のことをいう。すなわち、実施形態では、生成装置１００は、パスワードのような入力を要するクレデンシャル情報（Credential  Information）による認証を必ずしも要さず、ユーザ端末１０から取得されたコンテキストに関する情報に基づいて自動的にユーザＵ０１を認証する。
【００１６】
コンテキストに関する各種情報とは、例えば、異なる手段によって取得される情報や、異なる状況を示す情報を意味する。例えば、コンテキストに関する情報には、ユーザＵ０１によってユーザ端末１０が使用されている環境情報や、ユーザ端末１０を所持するユーザＵ０１が置かれている状態を示す情報や、ユーザＵ０１およびユーザＵ０１と関わりのある他のユーザに関する情報等が含まれる。また、コンテキスト情報には、ユーザＵ０１を識別する識別情報や、ユーザ端末１０を識別する識別情報（デバイスを一意に特定するデバイスＩＤなど）や、ユーザ端末１０のネットワーク情報も含まれる。ユーザ端末１０のネットワーク情報は、例えば、ユーザＵ０１のネットワーク上の行動履歴や、ネットワーク上においてユーザ端末１０を識別する情報（例えばクッキー（cookie）情報など）や、ユーザ端末１０と他の端末との接続状況等を含む。このように、コンテキストに関する各種情報には、ユーザやユーザ端末１０の状況を示すための要素となりうる情報であれば、いずれの情報が含まれてもよい。
【００１７】
そして、生成装置１００は、各種情報に基づいてユーザＵ０１を判定する、いわゆる多要素認証を行う。すなわち、生成装置１００は、ユーザＵ０１の位置情報の推移と、ユーザ端末１０の利用状況など、複数の要素を組み合わせてユーザＵ０１の認証を行う。なお、多要素認証においては、コンテキストに関する情報と、上記したパスワードのようなクレデンシャル情報とを組み合わせて認証が行われてもよい。例えば、多要素認証では、任意のユーザが入力したパスワードのみで認証を行うのではなく、パスワードが入力された際の位置情報が当該ユーザの本人性を示す情報であるか否かを判定することで、当該パスワードが有効か無効かを判定する。このため、多要素認証は、単独の要素を認証情報として用いるよりも安全性が高くなる。
【００１８】
一般に、コンテキスト認証では、処理の対象となるユーザごとに学習モデル（以下、単に「モデル」と表記する）が生成される。例えば、生成装置１００は、ユーザＵ０１の位置情報をユーザ端末１０から継続的に取得する。そして、生成装置１００は、取得したユーザＵ０１の位置情報を認証に用いる情報として機械学習を行う。言い換えれば、生成装置１００は、ユーザＵ０１が日常的に所在しうる位置を学習する。その後、生成装置１００は、ユーザＵ０１を認証するタイミングにおいて、ユーザ端末１０から取得された位置情報が、学習した位置情報と所定の閾値内であるか否かを判定する。すなわち、生成装置１００は、取得された位置情報が、日常的に観測されるユーザの位置情報と一致しているか否かを判定することで、ユーザの本人性を判定する。そして、生成装置１００は、所定の閾値内であると判定したのであれば、認証のタイミングの時点でユーザ端末１０を取り扱っているユーザが、ユーザＵ０１本人であると判定する。
【００１９】
生成装置１００は、コンテキストに関する各種情報について、上記のような学習処理を行い、ユーザごとにモデルを生成する。この場合、コンテキストに関する各種情報は、モデルにおける素性となる。例えば、素性は、位置情報であったり、ユーザ端末１０から観測される加速度（ユーザ端末１０の物理的な動作状況）であったり、ユーザ端末１０に対する操作の癖（電源のオンオフや、画面のオンオフのタイミング等）であったり、ユーザ端末１０と他の端末との通信状況であったりする。
【００２０】
上記のようにモデルが生成される場合、各素性には、重み値が設定される。学習が進むにつれ、ユーザの本人性を判定する要素として貢献する割合が高い素性は、重み値が自ずと重くなる。また、ユーザの本人性を判定する要素として貢献する割合が低い素性は、重み値が自ずと低くなる。例えば、ユーザＵ０１の本人性を判定するうえで、位置情報が貢献する割合が高い場合には、ユーザＵ０１に関するモデルにおいて、位置情報に対応する素性の重み値が重くなると想定される。具体的には、モデルを生成する過程において正解データ（すなわち、ユーザＵ０１であると確認された状態においてコンテキストに関する情報が送信された状態）と位置情報との組合せがサンプルとして多く取得された場合に、位置情報に対応する素性の重み値が重くなる。また、ユーザＵ０１の認証において位置情報が多く用いられた場合や、ユーザＵ０１が利用するユーザ端末１０から送信される情報のうち位置情報の情報量が多い場合などにも、位置情報に対応する素性の重み値が重くなる。このように、コンテキストを利用する多要素認証に関するモデルでは、各素性によって重み値の偏りが生じ得る。
【００２１】
ところで、このようなモデルは、ユーザの認証を行ったサービスを提供するような事業者に利用される場合がある。具体的には、ユーザ認証を要するアプリを開発する開発者等によって、モデルが利用される。また、モデルが生成された後であっても頻繁に情報が更新されたり、モデルへの情報の入出力が頻繁に行われたりするといった状況がある。このため、モデルは、モデルの仕様（例えば、モデルにおいて各素性がどのような重み値に対応するかといった仕様が記録された仕様書）とともに、比較的外部からアクセスしやすい環境に置かれる。
【００２２】
ここで、悪意のある第三者（以下、「不正ユーザ」と表記する）が、ユーザＵ０１に成りすまして認証を行おうとする事態について想定する。コンテキストによる認証が行われる場合、不正ユーザは、ユーザＵ０１に似せたコンテキストとなりうる行動を頻繁に採用することで、ユーザＵ０１に成りすますことができる。ここで、不正ユーザは、モデルを参照することにより、ユーザＵ０１の認証において各素性の重みを知得できる。さらに、不正ユーザは、モデルの仕様書を確認することで、ユーザごとのモデルにおいて重みの重い素性に対応するコンテキストを知得できる。言い換えれば、不正ユーザは、ユーザＵ０１のコンテキストに関する各種情報のうち、認証に有効な情報（一例として、位置情報）のみを似せた情報を取得することで、ユーザＵ０１に成りすますことのできる可能性を高めることができる。例えば、不正ユーザは、ユーザＵ０１と似た位置情報が取得されるような行動を採ることで、ユーザＵ０１に成りすますことができる。すなわち、モデルにおいて、各素性と重み値との関係が不正ユーザに知られた場合、不正な認証が行われる可能性が高まることとなる。
【００２３】
ここで、安全性を向上させるために、モデルやモデルの仕様書について、比較的安全性の高い記憶領域に保持するといった手法も考え得る。しかしながら、上述のように、モデルや仕様書は、アプリ開発者等が利用しやすいように、比較的外部からアクセスしやすい領域に置くことが要求される。また、ユーザ端末１０から送信されるコンテキストに関する情報を暗号化するといった手法も考え得るが、処理が複雑となり、コンテキスト認証の利便性を損なう可能性がある。すなわち、コンテキスト認証の利便性を確保しつつ不正な認証を防止するためには、記憶領域へのアクセスの困難性を高めることや、情報の暗号化等とは異なるアプローチを行うことが望ましい。
【００２４】
以上を前提として、実施形態に係る生成装置１００は、以下で説明する生成処理を実行してモデルを生成する。具体的には、生成装置１００は、コンテキストに関する各種情報を素性として学習処理を実行したうえで、各素性に対して算出した重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、モデルを生成する。具体的には、生成装置１００は、各素性のうち、所定の条件に該当する素性の重み値がダミーとなるようにモデルを生成する。これにより、生成装置１００は、不正ユーザがモデルと仕様書を参照したとしても、当該ユーザの認証において有効となる素性について、一見わからないようなモデルを生成することができる。かかる処理により、生成装置１００は、認証の利便性を確保しつつ、認証の安全性を高めることができる。以下、図１を用いて、生成装置１００による生成処理の一例について、流れに沿って説明する。なお、以下の説明では、コンテキストに関する情報を「コンテキスト情報」と表記する場合がある。
【００２５】
まず、図１に示す例において、生成装置１００は、ユーザ端末１０から、ユーザＵ０１のコンテキストに関する各種情報を取得する（ステップＳ０１）。例えば、生成装置１００は、所定時間ごとに、ユーザ端末１０の操作状況や、ユーザ端末１０の位置や、ユーザ端末１０の加速度状況等を示すコンテキスト情報をユーザ端末１０から取得する。
【００２６】
そして、生成装置１００は、取得した情報に基づいて学習を行う（ステップＳ０２）。具体的には、生成装置１００は、取得した情報が示すコンテキストの傾向から、ユーザＵ０１の本人性を示すことになるコンテキスト情報を学習する。このとき、生成装置１００は、ユーザ端末１０から取得した各種コンテキスト情報を、所定の定義のもと、モデルにおける各素性に分類する。例えば、生成装置１００は、情報の種別に従い、コンテキスト情報を、ユーザ端末１０の操作状況や、他の端末との通信状況や、位置情報や、ユーザ端末１０を利用したユーザＵ０１が行う行動（例えば、検索サービスの利用など）を示す素性に分類する。
【００２７】
そして、生成装置１００は、学習処理によって、各素性について認証に使用する重み値を算出する（ステップＳ０３）。生成装置１００が生成するモデルは、例えば以下のような式（１）で表されるものとする。なお、モデルの生成の詳細については後述する。
【００２８】
ｙ（ユーザＵ０１）  ＝  ω１・ｘ１  ＋  ω２・ｘ２  ＋  ω３・ｘ３  ＋・・・＋  ωＮ・ｘＮ      ・・・（１）（Ｎは任意の数）
【００２９】
上記式（１）は、各素性の重み値と、各素性に対応するコンテキスト情報と、ユーザＵ０１の本人らしさを示すスコアとの関係を示している。具体的には、上記式（１）における「ｙ（ユーザＵ０１）」は、ユーザＵ０１が本人であるか否かという本人らしさを示すスコアに対応する。また、上記式（１）における「ｘ」は、素性に対応する。また、上記式（１）における「ω」は、素性の重み値に対応する。
【００３０】
例えば、上記式（１）における「ｘ１」は、「ユーザ端末１０の操作（午前）」という素性に対応するものとする。「ユーザ端末１０の操作（午前）」とは、例えば、午前中の時間帯において、日常的にユーザ端末１０がどのくらい操作を受け付けるか、ユーザ端末１０がどのくらいの時間長で操作されるか、といったユーザ端末１０の利用状況に関するコンテキスト情報を示す。この場合、ユーザＵ０１が、午前中のユーザ端末１０の操作に関して有意な特徴を有する場合、言い換えれば、午前中のユーザ端末１０の操作によってユーザＵ０１本人であるということが特定しやすい情報であるほど、「ｘ１」の係数である重み値「ω１」の値が大きくなると想定される。
【００３１】
なお、「ｘ１」という素性がどのようなコンテキスト情報に対応するかといったモデルの仕様に関しては、生成装置１００が保持する仕様書に記憶される。モデルを利用する第三者は、仕様書を参照することにより、生成装置１００がユーザを認証する際に、どのようなコンテキスト情報を用いているかを把握することができる。
【００３２】
図１では、ユーザＵ０１に対して算出された重み値のみを示している。図１で示す例において、（０，０，０，０，２．３，３．９，０，・・・）と示されているものは、ステップＳ０３における学習において算出された数値を示す。図１の例では、生成装置１００は、「ω１」を「０」と算出し、「ω２」を「０」と算出し、「ω３」を「０」と算出し、「ω４」を「０」と算出し、「ω５」を「２．３」と算出し、「ω６」を「３．９」と算出し、「ω７」を「０」と算出したことを示している。
【００３３】
ここで、生成装置１００が保持する仕様書によれば、「ｘ１」が「ユーザ端末１０操作（午前）」であり、「ｘ２」が「ユーザ端末１０操作（午後）」であり、「ｘ３」が「通信状況（午前）」であり、「ｘ４」が「通信状況（午後）」であり、「ｘ５」が「位置情報（午前）」であり、「ｘ６」が「位置情報（午後）」であり、「ｘ７」が「検索状況（午前）」であるものとする。
【００３４】
すなわち、図１で示した例では、生成装置１００は、ユーザＵ０１の本人性を判定する処理において、「ｘ５」の「位置情報（午前）」と、「ｘ６」の「位置情報（午後）」との２つの素性が有用であると学習したことを示している。言い換えれば、生成装置１００は、重み値が「０」である素性を利用せずとも、重み値が「２．３」と「３．９」である素性（位置情報）のみを利用することで、ユーザＵ０１の本人性を判定することができるといえる。
【００３５】
ここで、不正ユーザが、かかる情報を参照した場合、「ｘ５」や「ｘ６」が「位置情報」であり、また、「ω５」や「ω６」が他の素性よりも重み値が高いことを知得できる。このため、不正ユーザは、ユーザＵ０１の「位置情報」のみを真似すれば、ユーザＵ０１に成りすませるということになる。
【００３６】
上記のような事態を防止するために、生成装置１００は、算出した重み値が所定の条件に該当する場合に、実際にユーザＵ０１を判定するモデルを生成する際に、重み値を置き換える処理を行う。具体的には、生成装置１００は、算出した重み値をダミー値（実施形態では、「ニセ重み」と称する）に置き換える（ステップＳ０４）。
【００３７】
例えば、生成装置１００は、学習によって算出された重み値のうち、所定の閾値より低い重み値をニセ重みに置き換えてモデルを生成する。図１の例では、生成装置１００は、重み値が０である素性に対応する重み値を、ニセ重みとしてランダムな値に置き換える。そして、生成装置１００は、算出した重み値と置き換えたニセ重みとを用いて、ユーザＵ０１に対応するモデルを生成する。
【００３８】
図１には、生成装置１００がユーザＵ０１に対応するモデルを生成するにあたり、ニセ重みを設定した場合の例を示す。例えば、生成装置１００は、ω５とω６以外の重み値について、「ω１」を「２」と置き換え、「ω２」を「１．９」と置き換え、「ω３」を「６．９」と置き換え、「ω４」を「−１．２」と置き換え、「ω７」を「０．１」と置き換える。このように、生成装置１００は、モデルにおいて、所定の条件に合致する重み値については、学習によって算出された値ではなく、ランダムに置き換えた重み値を採用する。生成装置１００は、このようにして生成したモデルを、ユーザＵ０１と対応付けて記憶する（ステップＳ０５）。
【００３９】
続いて、生成装置１００が、ユーザＵ０１を認証する処理について説明する。生成装置１００は、所定のタイミングで、ユーザ端末１０からコンテキストに関する各種情報を受信する（ステップＳ１１）。生成装置１００は、定期的にユーザ端末１０から情報を受信していてもよいし、例えば、認証を要するタイミング（ユーザＵ０１が利用したサービスから本人認証を求められた場合など）で情報を受信してもよい。
【００４０】
生成装置１００は、受信した情報をユーザＵ０１に対応するモデルに入力する（ステップＳ１２）。このとき、生成装置１００は、モデルのうち、認証に使用する素性を抽出する（ステップＳ１３）。かかる処理が行われる理由は、モデルに含まれる素性には、ランダムな重み値が設定されている素性があるため、そのままの重み値を利用してユーザＵ０１の本人らしさを算出しようとしても、正確な値が出力されないためである。
【００４１】
例えば、生成装置１００は、学習処理に用いられた情報量が所定量を超える素性を抽出する。これは、一般に、学習処理においてサンプルとなった情報量が少ない素性は、ユーザの本人性を判定するために貢献する程度が低いと想定されるという理由による。一方で、学習処理においてサンプルとなった情報量が多い素性は、ユーザの本人性の判定に貢献する程度が高いと想定される。このため、生成装置１００は、学習処理に用いられた情報量に所定の閾値を設けて、当該閾値を超える情報量に対応する素性のみを用いて、ユーザの本人性の判定を行う（ステップＳ１４）。
【００４２】
図１の例では、生成装置１００は、「ｘ５」及び「ｘ６」の素性を抽出したものとする。この場合、生成装置１００は、受信したコンテキスト情報をモデルに入力するものの、実際に生成処理に有効な数値は、ｘ５とｘ６に対応する素性（図１の例では位置情報）から得る。これにより、生成装置１００は、ランダムな値に置き換えられたモデルであっても、正確にユーザＵ０１の本人性を判定することができる。その後、生成装置１００は、受信した情報によってユーザＵ０１の本人性を判定することができたか否かを示す認証結果をユーザ端末１０に送信する（ステップＳ１５）。
【００４３】
このように、実施形態に係る生成装置１００は、ユーザのコンテキストに関する各種情報を取得する。そして、生成装置１００は、取得された各種情報を素性として学習処理を実行することにより、当該ユーザを認証するためのモデルにおける素性の各々に対する重み値を算出する。さらに、生成装置１００は、算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、ユーザに対応するモデルを生成する。
【００４４】
すなわち、生成装置１００は、暗号化のような複雑な処理を行わずとも、「ユーザの認証において何の要素が認証に効いているのか」といった情報を曖昧化することで、ユーザの認証において有効な素性を秘匿することができる。また、生成装置１００によれば、生成したモデルや、モデルの仕様を記載した情報については、アプリ開発者等がアクセスしやすい環境に置いたまま、モデルに設定される重み値を曖昧化することができる。これにより、生成装置１００は、認証の利便性を確保しつつ安全性を高めることができる。
【００４５】
〔２．生成処理システムの構成〕
次に、図２を用いて、実施形態に係る生成装置１００が含まれる生成処理システム１の構成について説明する。図２は、実施形態に係る生成処理システム１の構成例を示す図である。図２に例示するように、実施形態に係る生成処理システム１には、ユーザ端末１０と、生成装置１００とが含まれる。これらの各種装置は、ネットワークＮを介して、有線又は無線により通信可能に接続される。また、生成処理システム１には、複数のユーザ端末１０が含まれてもよい。すなわち、ユーザは、１台のユーザ端末１０のみならず、複数台のユーザ端末１０を所有し、利用してもよい。
【００４６】
ユーザ端末１０は、デスクトップ型ＰＣ（Personal  Computer）や、ノート型ＰＣや、タブレット端末や、スマートフォンを含む携帯電話機、ＰＤＡ（Personal  Digital  Assistant）等の情報処理端末である。また、ユーザ端末１０には、眼鏡型や時計型の情報処理端末であるウェアラブルデバイス（wearable  device）も含まれる。さらに、ユーザ端末１０には、情報処理機能を有する種々のスマート機器が含まれてもよい。例えば、ユーザ端末１０には、ＴＶ（Television）や冷蔵庫、掃除機などのスマート家電や、自動車などのスマートビークル（Smart  vehicle）や、ドローン（drone）、家庭用ロボットなどが含まれてもよい。
【００４７】
ユーザ端末１０は、ユーザによる操作や、ユーザ端末１０が有する機能に応じて、ユーザ端末１０のコンテキストを示すコンテキスト情報を取得する。例えば、ユーザ端末１０は、内蔵された各種センサにより、位置、加速度、温度、重力、回転（角速度）、照度、地磁気、圧力、近接、湿度、回転ベクトルといった、種々の物理量をコンテキスト情報として取得する。また、ユーザ端末１０は、内蔵する通信機能を利用して、各種装置との接続状況等のコンテキスト情報を取得する。なお、ユーザ端末１０と通信する装置とは、例えば、情報処理機能を有する種々のスマート機器である。
【００４８】
生成装置１００は、ユーザを認証するためのモデルを生成するサーバ装置である。また、生成装置１００は、ユーザ端末１０から所定のタイミングでコンテキスト情報を取得することにより、ユーザ端末１０を利用するユーザの本人性を判定する。
【００４９】
〔３．生成装置の構成〕
次に、図３を用いて、実施形態に係る生成装置１００の構成について説明する。図３は、実施形態に係る生成装置１００の構成例を示す図である。図３に示すように、生成装置１００は、通信部１１０と、記憶部１２０と、制御部１３０とを有する。なお、生成装置１００は、生成装置１００を利用する管理者等から各種操作を受け付ける入力部（例えば、キーボードやマウス等）や、各種情報を表示するための表示部（例えば、液晶ディスプレイ等）を有してもよい。
【００５０】
（通信部１１０について）
通信部１１０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。かかる通信部１１０は、ネットワークＮと有線又は無線で接続され、ネットワークＮを介して、ユーザ端末１０との間で情報の送受信を行う。
【００５１】
（記憶部１２０について）
記憶部１２０は、例えば、ＲＡＭ、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部１２０は、第三者が比較的アクセスしにくい環境の記憶領域（実施形態では、「セキュア（secure）環境１２０１」と称する）と、第三者が比較的アクセスしやすい環境の記憶領域（実施形態では、「プロダクション（production）環境１２０２」と称する）とを有する。
【００５２】
例えば、プロダクション環境１２０２には、ユーザごとに生成されたモデルや、モデルの仕様に関する情報が置かれ、第三者が利用することが可能である。また、コンテキスト認証では、ユーザ端末１０との情報のやり取りが頻繁に行われることから、比較的アクセスを素早く行うことができるプロダクション環境１２０２が利用される。一方、セキュア環境１２０１には、モデル生成に用いられるコンテキスト情報の生データや、ユーザの個人情報等が置かれ、第三者がアクセスすることが困難なように所定の設定がなされる。なお、プロダクション環境１２０２とセキュア環境１２０１とは、双方が必ずしも生成装置１００内部に備えられることを要しない。例えば、セキュア環境１２０１は、生成装置１００とは異なる装置（例えば、外部のストレージサーバ）に隔離するような態様で存在してもよい。
【００５３】
図３に示すように、記憶部１２０のうち、セキュア環境１２０１には、生データ記憶部１２１と、個人情報記憶部１２２と、学習情報記憶部１２３とが含まれる。また、プロダクション環境１２０２には、仕様情報記憶部１２４と、モデル記憶部１２５とが含まれる。以下、記憶部１２０に含まれる各記憶部について順に説明する。なお、重複する項目に関する説明は、適宜省略する。
【００５４】
（生データ記憶部１２１について）
生データ記憶部１２１は、ユーザ端末１０から取得されたコンテキストに関する各種情報の生データ（ログ）を記憶する。ここで、図４に、実施形態に係る生データ記憶部１２１の一例を示す。図４は、実施形態に係る生データ記憶部１２１の一例を示す図である。図４に示した例では、生データ記憶部１２１は、「ユーザＩＤ」、「生データＩＤ」、「取得日時」、「データ内容」といった項目を有する。
【００５５】
「ユーザＩＤ」は、ユーザを識別する識別情報である。なお、実施形態では、図４に示すような識別情報を参照符号として用いる場合がある。例えば、ユーザＩＤ「Ｕ０１」によって識別されるユーザを「ユーザＵ０１」と表記する場合がある。
【００５６】
「生データＩＤ」は、生データを識別する識別情報である。「取得日時」は、生データが取得された日時を示す。なお、実施形態では、生成装置１００は、１分ごとにユーザ端末１０から情報を取得している例を示しているが、生成装置１００が情報を取得するタイミングはこの例に限られない。また、実施形態では、生データは、ユーザ端末１０から送信された様々なコンテキスト情報を含む単位で管理されるものとする。すなわち、生成装置１００は、所定時間ごとにユーザ端末１０から送信された情報を一つの集合として生データを管理する。しかし、この例に限られず、生成装置１００は、生データを個別に管理してもよい。
【００５７】
「データ内容」は、生データが含む内容を示す。なお、図４の例において、「データ内容」には、「Ａ０１」といった概念的な情報が格納される例を示しているが、実際には、データ内容には、ユーザ端末１０から送信される各種情報が含まれる。例えば、データ内容には、生成装置１００に情報を送信してから、次に生成装置１００に送信するまでにユーザ端末１０内で蓄積されたコンテキスト情報が含まれる。
【００５８】
具体的には、データ内容には、ユーザ端末１０における操作履歴や、ユーザ端末１０の物理的な動作や加速度の状況や、ユーザ端末１０の位置情報の推移や、ユーザ端末１０においてユーザＵ０１がアクセスしたサービスページ（例えばウェブページ）の情報等が含まれる。なお、ユーザ端末１０から送信される情報量は、所定時間の間にユーザ端末１０内に蓄積される情報量となるため、例えば、コンテキスト情報によって情報量に偏りが生じる。例えば、ユーザＵ０１がユーザ端末１０を所持したまま頻繁に移動し、ユーザ端末１０自体を操作していない場合、データ内容には、位置情報が比較的多く含まれ、ユーザ端末１０の操作情報が比較的少なく含まれる。
【００５９】
すなわち、図４に示したデータの一例は、ユーザＩＤ「Ｕ０１」で識別されるユーザＵ０１が、生データＩＤ「Ｒ０１」で識別される生データＲ０１を生成装置１００に送信しており、生成装置１００がその情報を取得した日時は「２０１７年３月１日  １２：００」であり、そのデータ内容は「Ａ０１」であることを示している。
【００６０】
（個人情報記憶部１２２について）
個人情報記憶部１２２は、ユーザの個人情報が記憶する。ここで、図５に、実施形態に係る個人情報記憶部１２２の一例を示す。図５は、実施形態に係る個人情報記憶部１２２の一例を示す図である。図５に示した例では、個人情報記憶部１２２は、「ユーザＩＤ」、「個人情報」といった項目を有する。また、「個人情報」の項目は、「名前」、「性別」、「年齢」といった小項目を有する。
【００６１】
「個人情報」は、ユーザの個人情報を示す。「名前」、「性別」、「年齢」は、それぞれ、ユーザの名前、性別、年齢を示す。
【００６２】
すなわち、図５に示したデータの一例では、ユーザＵ０１の個人情報として、名前が「ＸＸＸ」であり、性別が「男性」であり、年齢が「３０」歳という情報が記憶されていることを示している。例えば、個人情報は、ユーザ認証が成功した場合に、サービス提供に際してユーザ認証を要求したサービス側に提供されるために利用される。
【００６３】
（学習情報記憶部１２３について）
学習情報記憶部１２３は、学習処理に関する情報を記憶する。ここで、図６に、実施形態に係る学習情報記憶部１２３の一例を示す。図６は、実施形態に係る学習情報記憶部１２３の一例を示す図である。図６に示した例では、学習情報記憶部１２３は、「ユーザＩＤ」、「学習データＩＤ」、「仕様ＩＤ」、「算出データ」といった項目を有する。また、「算出データ」の項目は、「素性番号」、「素性」、「重み値」、「学習データ量」といった小項目を有する。
【００６４】
「学習データＩＤ」は、学習データを識別する識別情報を示す。「仕様ＩＤ」は、モデルの仕様（ひいては、学習の仕様）を識別するための識別情報を示す。なお、モデルの仕様とは、モデルにおいて用いられる素性の種別や、モデルにおける素性の番号等に関する仕様を示す。「素性番号」は、モデルにおける素性の番号を示す。例えば、素性番号が「１」である素性は、上記式（１）における「ｘ１」に対応する。「素性」は、モデルにおける説明変数であり、モデルにおいてユーザの本人性を判定するために用いられるコンテキスト情報の種別を示す。
【００６５】
素性には、種々のコンテキスト情報が対応する。図６に示す例において、「通信状況（午前）」とは、例えば、午前中の時間帯において、日常的にユーザＵ０１が行う通信の状況を示す。かかる情報は、ユーザ端末１０の情報とは限らず、ユーザＵ０１が日常的に取り扱う端末装置や、据置きの機器から取得される情報であってもよい。また、「位置情報（午前）」とは、例えば、午前中の時間帯において、日常的にユーザＵ０１が所在する位置に関する情報を示す。具体的には、位置情報は、例えば、ＧＰＳ（Global  Positioning  System）等を利用して取得される緯度や経度である。また、位置情報は、例えば、ユーザ端末１０を提示して入退場した駅改札の入退場記録や、会社への入場記録等であってもよい。また、「検索状況（午前）」とは、例えば、午前中の時間帯において、日常的にユーザＵ０１が検索サービスを利用した利用状況をいう。検索状況についても、必ずしもユーザ端末１０から取得される情報に限られず、例えば、ユーザＵ０１の所持するアカウントで検索サービスにログインされた際の検索状況であれば、ユーザ端末１０以外の端末から取得された情報であってもよい。
【００６６】
「算出データ」は、学習において算出されたデータを示す。「重み値」は、学習において各素性に対して算出された重み値を示す。「学習データ量」は、学習に用いられたデータ量を示す。なお、図６の例において、「学習データ量」には、「Ｃ０１」といった概念的な情報が格納される例を示しているが、実際には、学習データ量の項目には、学習に用いられた具体的なデータ量（情報量）が記憶される。例えば、ユーザ端末１０から取得する情報のうち、位置情報が多く含まれる場合、位置情報に対応する素性に関する学習データ量は、他の素性の学習データ量よりも多くなる。
【００６７】
すなわち、図６に示したデータの一例では、ユーザＵ０１に関する学習データは、学習データＩＤ「Ｂ０１」で識別される学習データＢ０１であることを示している。また、学習データＢ０１には、仕様ＩＤ「Ｐ０１」で識別される仕様Ｐ０１が適用されることを示している。また、学習データＢ０１における算出データの一例として、素性番号「１」の素性は「ユーザ端末１０操作（午前）」であり、その重み値は「０」であり、その学習データ量は「Ｃ０１」であることを示している。
【００６８】
（仕様情報記憶部１２４について）
仕様情報記憶部１２４は、モデルの仕様を記憶する。ここで、図７に、実施形態に係る仕様情報記憶部１２４の一例を示す。図７は、実施形態に係る仕様情報記憶部１２４の一例を示す図である。図７に示した例では、仕様情報記憶部１２４は、「仕様ＩＤ」、「仕様」といった項目を有する。また、「仕様」の項目は、「素性番号」、「素性」といった小項目を有する。
【００６９】
「仕様ＩＤ」は、仕様を識別するための識別情報を示す。「仕様」は、生成装置１００が生成するモデルの仕様を示す。仕様は、例えば、学習処理を行う際に参照され、かかる仕様に基づいて学習された結果が、当該仕様に従う学習モデルとして生成される。
【００７０】
すなわち、図７に示したデータの一例では、仕様Ｐ０１を採用するモデルは、素性番号が「１」の素性として「ユーザ端末１０操作（午前）」を利用することが示されている。仕様情報記憶部１２４に記憶されている情報は、学習処理の際に生成装置１００に参照されるのみならず、例えば、生成装置１００が生成したモデルを利用する第三者に参照されるため、プロダクション環境１２０２に置かれる。
【００７１】
（モデル記憶部１２５について）
モデル記憶部１２５は、生成されたモデルに関する情報を記憶する。モデル記憶部１２５は、データテーブルとして、モデルテーブル１２６と、条件テーブル１２７とを有する。
【００７２】
（モデルテーブル１２６について）
モデルテーブル１２６は、モデルに関する情報を記憶する。ここで、図８に、実施形態に係るモデルテーブル１２６の一例を示す。図８は、実施形態に係るモデルテーブル１２６の一例を示す図である。図８に示した例では、モデルテーブル１２６は、「ユーザＩＤ」、「モデルＩＤ」、「仕様ＩＤ」、「モデル情報」といった項目を有する。また、「モデル情報」の項目は、「素性番号」、「素性」、「重み値」「学習データ量」といった小項目を有する。
【００７３】
「モデルＩＤ」は、モデルを識別する識別情報を示す。「モデル情報」は、生成されたモデルに関する情報を示す。なお、モデル情報における重み値は、学習により算出された値そのものではなく、算出された値から置き換えられた重み値が設定される場合もある。図８に示した例では、素性番号「１」、「２」、「３」、「４」、「７」について、重み値が置き換えられている。
【００７４】
すなわち、図８に示したデータの一例では、ユーザＵ０１に対応付けられたモデルは、モデルＩＤ「Ｍ０１」で識別されるモデルＭ０１であることを示している。また、モデルＭ０１には、仕様Ｐ０１が適用されることを示している。また、モデルＭ０１におけるモデル情報の一例として、素性番号「１」の素性は「ユーザ端末１０操作（午前）」であり、その重み値は「２」であり、その学習データ量は「Ｃ０１」であることを示している。
【００７５】
（条件テーブル１２７について）
条件テーブル１２７は、実際にユーザの本人性を判定する際に、モデルに含まれる素性のうち、いずれの素性を用いて判定を行うかを判断するために用いられる条件を記憶する。ここで、図９に、実施形態に係る条件テーブル１２７の一例を示す。図９は、実施形態に係る条件テーブル１２７の一例を示す図である。図９に示した例では、条件テーブル１２７は、「ユーザＩＤ」、「条件ＩＤ」、「条件」といった項目を有する。
【００７６】
「条件ＩＤ」は、条件を識別する識別情報を示す。「条件」は、モデルに含まれる素性のうち、いずれの素性を用いて判定を行うかを判断するために用いられる具体的な条件を示す。なお、条件は、例えば生成装置１００の管理者によって、任意に設定されてもよい。例えば、条件は、所定量を超える学習データを有する素性であってもよいし、あるいは、判定に用いる素性を指定（位置情報に対応する素性を用いる、など）するものであってもよい。
【００７７】
すなわち、図９に示したデータの一例では、ユーザＵ０１の本人性を判定するための素性を抽出するための条件として、条件ＩＤ「ＲＥ０１」で識別される条件ＲＥ０１には、「所定量を超える学習データを有する素性」が設定されていることを示している。なお、生成装置１００は、ユーザＵ０１に設定された全ての条件を満たす素性を抽出して判定を行ってもよいし、いずれか少なくとも一つの条件を満たす素性を抽出して判定を行ってもよい。
【００７８】
（制御部１３０について）
図３に戻って説明を続ける。制御部１３０は、コントローラ（controller）であり、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、生成装置１００内部の記憶装置に記憶されている各種プログラム（例えば、生成プログラム）がＲＡＭ（Random  Access  Memory)を作業領域として実行されることにより実現される。また、制御部１３０は、コントローラであり、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現される。
【００７９】
図３に示すように、制御部１３０は、取得部１３１と、算出部１３２と、生成部１３３と、受信部１３４と、判定部１３５と、送信部１３６とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部１３０の内部構成は、図３に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部１３０が有する各処理部の接続関係は、図３に示した接続関係に限られず、他の接続関係であってもよい。
【００８０】
（取得部１３１について）
取得部１３１は、各種情報を取得する。例えば、取得部１３１は、ユーザのコンテキストに関する各種情報を取得する。
【００８１】
具体的には、取得部１３１は、ユーザのコンテキストに関する各種情報として、ユーザが所有する端末装置（例えば、ユーザ端末１０）に対する操作に関する情報を取得する。また、取得部１３１は、ユーザ端末１０の通信状況に関する情報を取得する。
【００８２】
また、取得部１３１は、ユーザ端末１０が備えるセンサによって取得される各種情報を取得してもよい。例えば、取得部１３１は、ユーザ端末１０によって検知される環境情報を取得する。また、取得部１３１は、ユーザ端末１０自体のデバイス情報や、ユーザ端末１０と通信する外部装置に関する情報等を取得してもよい。
【００８３】
具体的には、取得部１３１は、ユーザ端末１０によって検知されるコンテキスト情報として、ユーザ端末１０（あるいは、ユーザ端末１０を利用するユーザ）が所在する位置を示す位置情報、ユーザ端末１０の周囲の温度、湿度情報、環境光の強さを示す光情報、ユーザ端末１０の周囲の騒音レベルを示す音情報等を取得する。また、取得部１３１は、ユーザ端末１０が備えるカメラで撮影された写真や映像に基づいて、ユーザ端末１０の周囲の環境情報を取得してもよい。例えば、取得部１３１は、カメラで撮影された画像情報や、画像情報に含まれる位置情報、撮影された日時等に基づいて、ユーザ端末１０の周囲の環境情報を取得する。
【００８４】
また、取得部１３１は、ユーザ端末１０自体のデバイス情報として、ユーザ端末１０のＣＰＵや、ＯＳ（Operating  System）、メモリ等に関する情報、アンテナ等のネットワーク機能、インストールされたソフトウェア、使用されるブラウザソフトウェア、ユーザ端末１０が備える認証手段（例えば、指紋データを取得する指紋リーダ機能や、虹彩を取得する機能を備えているか否か）等の情報を取得する。
【００８５】
また、取得部１３１は、ユーザ端末１０の動作状況を取得してもよい。例えば、取得部１３１は、ユーザ端末１０が起動状態にあるか否か、また、起動状態であれば、画面のＯＮ／ＯＦＦの状態や、ユーザ端末１０が移動／静止している状態か等の情報を取得する。かかる情報は、例えば、ユーザ端末１０にインストールされた所定のセンシング（sensing）機能を有するアプリによって取得され、ユーザ端末１０内部に保持される。また、取得部１３１は、ユーザ端末１０の動作状況として、ユーザ端末１０が観測する加速度を取得してもよい。
【００８６】
また、取得部１３１は、ユーザ端末１０と通信する外部装置に関する情報として、ユーザ端末１０と相互の通信状態にある外部装置を識別する情報や、確立している通信の種類や周波数帯域等を取得する。
【００８７】
また、取得部１３１は、コンテキスト情報として、ユーザの行動に関する情報を取得してもよい。例えば、取得部１３１は、ユーザがユーザ端末１０を利用して閲覧したサービスページの情報や、検索サービスに送信したクエリの情報等を取得してもよい。
【００８８】
取得部１３１は、ユーザ端末１０から定期的にコンテキスト情報を受け付けることにより、上述した情報を取得する。なお、取得部１３１は、ユーザ端末１０からの送信によらず、所定時間ごとにユーザ端末１０等と所定の通信を行い、ユーザ端末１０内部に保持されたコンテキスト情報をクロール（crawl）して、コンテキスト情報を取得してもよい。
【００８９】
また、取得部１３１は、ユーザの個人情報を取得してもよい。例えば、取得部１３１は、所定のサービスを利用するための登録情報として、ユーザの個人情報を受け付ける。なお、取得部１３１は、ユーザの個人情報をウェブサーバ等のサービス側から取得してもよい。
【００９０】
また、取得部１３１は、生成するモデルの仕様や、判定処理に用いる条件等を取得してもよい。例えば、取得部１３１は、生成装置１００の管理者等から入力を受け付けることで、かかる情報を取得する。
【００９１】
取得部１３１は、取得した情報を記憶部１２０内の各記憶部に格納する。また、取得部１３１は、記憶部１２０内に格納されている情報を適宜取得してもよい。
【００９２】
（算出部１３２について）
算出部１３２は、取得部１３１によって取得された各種情報を素性として学習処理を実行することにより、ユーザを認証するためのモデルにおける、素性の各々に対する重み値を算出する。具体的には、算出部１３２は、生成部１３３が生成しようとするモデルの仕様に規定される、各素性の重み値を算出する。
【００９３】
例えば、算出部１３２は、取得部１３１によって取得された各種情報と、その情報がユーザの本人性を判定するための正解データとなりうるかを示した正解データとの関係性を機械学習する。そして、算出部１３２は、取得部１３１によって取得された各種情報を素性とした場合に、それらの素性が正解を導き出すために貢献する度合いに基づいて、各素性の重み値を算出する。
【００９４】
以下に、算出部１３２が重み値を算出する際の算出手法を例示する。なお、以下で示す手法はあくまで一例であり、算出部１３２は、以下で示す手法に限らず、既知の種々の手法を用いて重み値を算出してもよい。
【００９５】
例えば、算出部１３２は、取得したコンテキスト情報と、当該コンテキスト情報がユーザの本人性を示すか否かという関係を示す式を生成する。そして、算出部１３２は、取得した個々のコンテキスト情報（素性）が、ユーザ本人であると判定する処理に対して、どのような重みを有するかを算出する。例えば、算出部１３２は、下記式（２）を作成する。
【００９６】
Ｙ  ＝  ω１・ｘ１  ＋  ω２・ｘ２  ＋  ω３・ｘ３  ＋・・・＋  ωＮ・ｘＮ      ・・・（２）（Ｎは任意の数）
【００９７】
上記式（２）は、学習処理において、例えばコンテキスト情報が取得される度に作成される。上記式（２）において、「Ｙ」は、ユーザ本人であるか否かという事象を２値で示す。例えば、ユーザ本人を示す場合、Ｙには「１」が入力され、ユーザ本人を示さない場合、Ｙには「０」が入力される。
【００９８】
また、上記式（２）において、「ｘ」及び「ω」は、式（１）と同様、素性と重み値に対応する。ここで、図６を参照し、具体例を挙げて説明する。すなわち、上記式（２）において、「ｘ１」が「ユーザ端末１０操作（午前）」に対応し、「ｘ２」が「ユーザ端末１０操作（午後）」に対応し、「ｘ３」が「通信状況（午前）」に対応する。この場合、ユーザＵ０１に対応する上記式（２）は、以下の式（３）のように表すことができる。なお、学習において取得するコンテキスト情報を、ユーザＵ０１から取得された情報（すなわち、ユーザＵ０１の本人を示す情報）であると仮定した場合には、Ｙには「１」が代入される。
【００９９】
Ｙ（ユーザＵ０１）（＝  １）  ＝  ω１・（ユーザ端末１０操作（午前））  ＋  ω２・（ユーザ端末１０操作（午後））  ＋  ω３・（通信状況（午前））＋・・・＋  ωＮ・ｘＮ      ・・・（３）
【０１００】
算出部１３２は、コンテキスト情報が取得される度に上記式（３）を作成する。そして、算出部１３２は、作成した複数の式（３）を機械学習のサンプルとする。そして、算出部１３２は、サンプルとなる複数の式（３）の演算処理を行うことにより、所定の重み値「ω」に対応する値を導出する。これにより、算出部１３２は、上記式（３）を満たすような所定の重み値「ω」を決定する。言い換えれば、算出部１３２は、所定の説明変数（上記式（３）では、各素性が対応する）が目的変数「Ｙ」に与える影響を示す重み値「ω」を決定する。
【０１０１】
素性ｘに代入される値は、例えば２値化データであり、所定の式（３）において、素性に対応する情報が存在するのであれば「１」を代入し、素性に対応する情報が存在しないのであれば「０」を代入する。一例を挙げると、「ｘ１」は、「ユーザ端末１０操作（午前）」の情報を用いたか否かを示す。この場合、例えば、ユーザの本人性の判定に「ユーザ端末１０操作（午前）」の情報を用いた場合には、「ｘ１」＝「１」となり、用いていない場合には、「ｘ１」＝「０」となる。なお、素性ｘに代入される値は、取得される情報量や、情報の種別によって調整が行われてもよい。例えば、算出部１３２は、ある式（３）が作成される場合に利用されるコンテキスト情報の内訳に応じて、ｘの値を適宜調整してもよい。すなわち、算出部１３２は、情報量の多い素性ほどユーザの本人性の判定における貢献が高くなると想定し、ｘの値を高めにするなどの調整を行ってもよい。
【０１０２】
上記のようにして、算出部１３２は、複数の式（３）を作成し、回帰的に重み値ωを求める。すなわち、算出部１３２は、ユーザが本人であるという事象を、ユーザ端末１０から取得するコンテキスト情報によって判定するための学習モデルにおける重み値を算出する。なお、上記式（２）及び（３）を用いた算出処理では、左辺を「１」や「０」そのものとするのではなく、所定の誤差を想定し、かかる誤差との差異を２乗した値が最小値となるよう近似する最小二乗法などの手法を用いて、「ω」の最適解を算出してもよい。また、算出部１３２は、既知の手法に従い、素性ｘに代入する値を算出において扱い易いよう正規化するなど、種々の処理を行ってもよい。
【０１０３】
算出部１３２は、算出した重み値や、算出に用いた学習データに関する情報を学習情報記憶部１２３に格納する。
【０１０４】
（生成部１３３について）
生成部１３３は、算出部１３２によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、ユーザに対応するモデルを生成する。この場合、所定値とは、図１で例示したニセ重みに対応する。すなわち、所定値とは、算出部１３２が機械学習を行って求めた重み値ではなく、ダミーとなる値を意味する。
【０１０５】
例えば、生成部１３３は、ランダムな値を所定値としてモデルを生成する。すなわち、生成部１３３は、所定の条件に該当する重み値については、算出部１３２によって算出された値によらず、ランダムな値に置き換える。これにより、生成部１３３によって生成されたモデルを不正ユーザが参照したとしても、不正ユーザは、いずれの素性の重みが本当に有効なのかを知得することができなくなる。
【０１０６】
生成部１３３は、例えば、算出部１３２によって算出された重み値のうち、所定の閾値より低い重み値を所定値に置き換えてモデルを生成する。例えば、生成部１３３は、算出された重み値のうち、全体の平均以下の重み値に該当する重み値を置き換えたり、他の重み値と比較して顕著に低い重み値を置き換えたりする。
【０１０７】
あるいは、生成部１３３は、学習処理に用いられた情報量が所定量に達していない素性に対して算出された重み値を所定値に置き換えて、モデルを生成してもよい。例えば、他の素性に比べて情報量が低い素性は、ユーザの本人性の判定に貢献しない可能性が高い。このため、生成部１３３は、学習処理において使用された情報量に所定の基準を設け、かかる基準に達しない素性については、算出部１３２によって算出された値ではなく、所定値に置き換えるようにしてもよい。
【０１０８】
なお、生成部１３３は、算出部１３２によって算出された重み値のうち、最大となる値から所定範囲に属する値をとる重み値を所定値に置き換えてモデルを生成するようにしてもよい。すなわち、生成部１３３は、ユーザの判定において有効である素性（重みのある素性）を選択して所定値に置き換える。このように、生成部１３３は、不正ユーザがユーザに成りすます際に利用すると想定される素性の重み値について、優先的にダミーの値に置き換えることで、本来、認証に有効であった素性が判明されないように対処することができる。なお、生成部１３３は、所定範囲として、任意の範囲を設定してもよい。また、生成部１３３は、必ずしも最大値となる重み値を置き換えることを要さない。すなわち、生成部１３３は、最大値となる重み値から、所定の数値だけ小さい値となる重み値を置き換えるようにしてもよい。このように、生成部１３３は、置き換える重み値を最大値とは限定しないことで、一見しただけでは、いずれの重み値を置き換えたかを不正ユーザ等に悟られないようにすることができる。
【０１０９】
生成部１３３は、上記の置き換え処理を経て、ユーザごとにモデルを生成する。生成部１３３は、生成したモデルをモデル記憶部１２５に記憶する。
【０１１０】
（受信部１３４について）
受信部１３４は、各種情報を受信する。例えば、受信部１３４は、判定処理の対象となるユーザから、当該ユーザのコンテキストに関する各種情報を受信する。判定処理の対象となるユーザとは、例えば、アクセスに際して認証を必要とするサービスページ（例えば、所定の制限付きサイト）にアクセスしたユーザ等のことをいう。
【０１１１】
上記の処理において、受信部１３４は、ユーザから送信される所定の制限付きサイトへのアクセス要求等を、ウェブサーバを経由して受信してもよい。すなわち、ユーザ端末１０がウェブサーバの管理するサイトへアクセスした場合、ウェブサーバは、アクセス要求があった旨、また、アクセスを承認するためにユーザ端末１０を認証することを要する旨を生成装置１００に送信する。受信部１３４は、ウェブサーバから送信された要求を受信するとともに、当該ユーザのコンテキストに関する各種情報を受信する。
【０１１２】
なお、受信部１３４は、上記のような判定処理が発生するタイミングに限らず、所定のタイミングで、判定処理の対象となるユーザからコンテキストに関する各種情報を受信してもよい。例えば、受信部１３４は、ユーザの行動において認証を要する明示がなくとも、定期的にコンテキストに関する各種情報を受信していてもよい。これにより、ユーザは、実際に認証を必要とする処理が発生した場合であっても、そのタイミングにおいて既に自動的に認証が済んでいるといった、利便性の高い認証を行うことができる。
【０１１３】
（判定部１３５について）
判定部１３５は、受信部１３４によってユーザのコンテキストに関する各種情報が受信された場合に、当該ユーザに対応するモデルを用いて、当該ユーザの本人性を判定する。
【０１１４】
図１で説明したように、生成部１３３が生成したモデルには、機械学習により求められた真の重み値と、ニセ重みとが混在する。このため、判定部１３５は、受信したコンテキスト情報のうち、実際にモデルに入力する素性（あるいは、モデルに入力された場合に有効なものとみなす素性）を抽出する。例えば、判定部１３５は、素性を抽出するための条件を条件テーブル１２７から参照する。
【０１１５】
例えば、判定部１３５は、学習処理に用いられた情報量が所定量を超える素性のみを用いて、処理対象ユーザの本人性を判定する。これは、一般に、学習処理においてサンプルとなった情報量が多い素性は、ユーザの本人性の判定に貢献する程度が高いと想定されることによる。具体的には、判定部１３５は、学習処理に用いられた情報量に所定の閾値を設けて、当該閾値を超える情報量に対応する素性のみを用いて、ユーザの本人性の判定を行う。なお、情報量とは、コンテキスト情報の実際の情報量（容量）でもよいし、コンテキスト情報が取得される頻度等であってもよい。
【０１１６】
あるいは、判定部１３５は、ユーザごとに予め設定された素性のみを用いて、ユーザの本人性を判定してもよい。すなわち、判定部１３５は、予め、ユーザごとに判定に用いる素性を設定する。例えば、判定部１３５は、ユーザＵ０１の判定を行う際には、「位置情報」を用いる、という設定を行う。かかる設定を行った場合、生成部１３３は、「位置情報」の素性に対応する重み値はニセ重みに置き換えないようにして、ユーザＵ０１に対応するモデルを生成する。このような設定を行うことにより、判定部１３５は、他の素性がどのような重み値に置き換えられたとしても、ユーザＵ０１に対して、常に正確な判定処理を行うことができる。なお、この場合、条件テーブル１２７は、セキュア環境１２０１に置かれることが望ましい。
【０１１７】
判定部１３５は、モデルにおいて有効となる素性を抽出したのち、受信部１３４によって受信されたコンテキスト情報と、モデルが生成される際に取得されたコンテキスト情報との変化に基づいて、ユーザの本人性を判定する。
【０１１８】
例えば、モデルが生成される際に観測されていた位置情報と、受信部１３４によって受信された位置情報とが、所定の閾値の範囲を超えて変化したと判定したとする。すなわち、学習の過程において観測された位置情報や位置情報の推移と、受信部１３４によって受信された位置情報とに、有意な変化が観測されたとする。具体的には、ユーザが日常的に利用する駅とは異なる駅の利用履歴が観測されたり、ユーザが通常所在する位置から異なる国や地方に移動していたりする状況が観測されたとする。この場合、受信したコンテキスト情報が入力されたモデルからは、ユーザの本人性を示すスコアとして、比較的低いスコアが出力される。そして、判定部１３５は、当該ユーザが、ユーザ本人ではないと判定する。このように、判定部１３５は、コンテキスト情報の変化率又は変化量に基づいて、ユーザの本人性を判定する。例えば、判定部１３５は、モデルから出力されたスコアが規定値（例えば、生成装置１００の管理者によって任意に設定される所定値）を超えた場合には、ユーザを本人と判定する。また、判定部１３５は、モデルから出力されたスコアが規定値を超えない場合には、ユーザを本人ではないと判定する。
【０１１９】
判定部１３５は、ユーザの本人性を判定し、ユーザが本人であると判定した場合には、当該ユーザが本人であると認証する。また、判定部１３５は、ユーザが本人であると確定できない場合には、当該ユーザを認証しない。判定部１３５は、ユーザを認証したか否かを示す認証結果を、後述する送信部１３６に送る。
【０１２０】
（送信部１３６について）
送信部１３６は、各種情報を送信する。例えば、送信部１３６は、認証の要求を行ったユーザ（あるいは、ユーザ端末１０）に対して、判定部１３５が行った認証処理の結果を送信する。判定部１３５がユーザを認証した場合、送信部１３６は、ユーザに認証が成功した旨を送信する。あるいは、送信部１３６は、認証が成功したことにより、例えば、所定のサイトへの接続が許可されたこと等を示す情報をユーザに通知する。一方、判定部１３５がユーザ端末１０を認証しない場合、送信部１３６は、認証が失敗した旨を送信する。
【０１２１】
〔４．ユーザ端末の構成〕
次に、図１０を用いて、実施形態に係るユーザ端末１０の構成について説明する。図１０は、実施形態に係るユーザ端末１０の構成例を示す図である。図１０に示すように、ユーザ端末１０は、通信部１１と、入力部１２と、表示部１３と、検知部１４と、記憶部１５と、制御部１６とを有する。
【０１２２】
（通信部１１について）
通信部１１は、ネットワークＮと有線又は無線で接続され、生成装置１００との間で情報の送受信を行う。例えば、通信部１１は、ＮＩＣ等によって実現される。
【０１２３】
（入力部１２及び表示部１３について）
入力部１２は、ユーザから各種操作を受け付ける入力装置である。例えば、入力部１２は、ユーザ端末１０に備えられた操作キー等によって実現される。表示部１３は、各種情報を表示するための表示装置である。例えば、表示部１３は、液晶ディスプレイ等によって実現される。なお、ユーザ端末１０にタッチパネルが採用される場合には、入力部１２の一部と表示部１３とは一体化される。
【０１２４】
（検知部１４について）
検知部１４は、ユーザ端末１０に関する各種情報を検知する。具体的には、検知部１４は、ユーザ端末１０に対するユーザの操作や、ユーザ端末１０の所在する位置情報や、ユーザ端末１０と接続されている機器に関する情報や、ユーザ端末１０における環境等を検知する。図１０に示す例では、検知部１４は、操作検知部１４１と、位置検知部１４２と、外部装置検知部１４３と、環境検知部１４４とを有する。
【０１２５】
（操作検知部１４１について）
操作検知部１４１は、ユーザ端末１０に対するユーザの操作を検知する。例えば、操作検知部１４１は、入力部１２に入力された情報に基づいて、ユーザの操作を検知する。すなわち、操作検知部１４１は、入力部１２に画面をタッチする操作の入力があったことや、音声の入力があったこと等を検知する。また、操作検知部１４１は、ユーザによって所定のアプリが起動されたことを検知してもよい。かかるアプリがユーザ端末１０内の撮像装置を動作させるアプリである場合、操作検知部１４１は、ユーザによって撮像機能が利用されていることを検知する。また、操作検知部１４１は、ユーザ端末１０内に備えられた加速度センサやジャイロセンサ等で検知されたデータに基づき、ユーザ端末１０自体が動かされているといった操作を検知してもよい。
【０１２６】
（位置検知部１４２について）
位置検知部１４２は、ユーザ端末１０の現在位置を検知する。具体的には、位置検知部１４２は、ＧＰＳ衛星から送出される電波を受信し、受信した電波に基づいてユーザ端末１０の現在位置を示す位置情報（例えば、緯度及び経度）を取得する。
【０１２７】
位置検知部１４２は、種々の手法により位置情報を取得することができる。例えば、ユーザ端末１０が駅改札や商店等で使用される非接触型ＩＣカードと同等の機能を備えている場合（もしくは、ユーザ端末１０が非接触型ＩＣカードの履歴を読み取る機能を備えている場合）、ユーザ端末１０によって駅での乗車料金の決済等が行われた情報とともに、使用された位置が記録される。位置検知部１４２は、かかる情報を検知し、位置情報として取得する。また、位置検知部１４２は、ユーザ端末１０が特定のアクセスポイントと通信を行う際には、アクセスポイントから取得可能な位置情報を検知してもよい。また、位置情報は、ユーザ端末１０が備える光学式センサや、赤外線センサや、磁気センサ等によって取得されてもよい。
【０１２８】
（外部装置検知部１４３について）
外部装置検知部１４３は、ユーザ端末１０に接続される外部装置を検知する。例えば、外部装置検知部１４３は、外部装置との相互の通信パケットのやり取りなどに基づいて、外部装置を検知する。そして、外部装置検知部１４３は、検知した外部装置をユーザ端末１０と接続される端末として認識する。また、外部装置検知部１４３は、外部装置との接続の種類を検知してもよい。例えば、外部装置検知部１４３は、外部装置と有線で接続されているか、無線通信で接続されているかを検知する。また、外部装置検知部１４３は、無線通信で用いられている通信方式等を検知してもよい。また、外部装置検知部１４３は、外部装置が発する電波を検知する電波センサや、電磁波を検知する電磁波センサ等によって取得される情報に基づいて、外部装置を検知してもよい。
【０１２９】
（環境検知部１４４について）
環境検知部１４４は、ユーザ端末１０における環境を検知する。環境検知部１４４は、ユーザ端末１０に備えられた各種センサや機能を利用し、環境に関する情報を検知する。例えば、環境検知部１４４は、ユーザ端末１０の周囲の音を収集するマイクロフォンや、ユーザ端末１０の周囲の照度を検知する照度センサや、ユーザ端末１０の物理的な動きを検知する加速度センサ（又は、ジャイロセンサなど）や、ユーザ端末１０の周囲の湿度を検知する湿度センサや、ユーザ端末１０の所在位置における磁場を検知する地磁気センサ等を利用する。そして、環境検知部１４４は、各種センサを用いて、種々の情報を検知する。例えば、環境検知部１４４は、ユーザ端末１０の周囲における騒音レベルや、ユーザ端末１０の周囲が撮像に適する照度であるか等を検知する。さらに、環境検知部１４４は、カメラで撮影された写真や映像に基づいて周囲の環境情報を検知してもよい。
【０１３０】
（記憶部１５について）
記憶部１５は、各種情報を記憶する。記憶部１５は、例えば、ＲＡＭ、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。例えば、記憶部１５は、検知部１４によって検知された各種情報を、検知された日時と対応付けて記憶する。
【０１３１】
（制御部１６について）
制御部１６は、コントローラであり、例えば、ＣＰＵやＭＰＵ等によって、ユーザ端末１０内部の記憶装置に記憶されている各種プログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部１６は、コントローラであり、例えば、ＡＳＩＣやＦＰＧＡ等の集積回路により実現される。
【０１３２】
図１０に示すように、制御部１６は、取得部１６１と、受信部１６２と、認証制御部１６３と、送信部１６４とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部１６の内部構成は、図１０に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【０１３３】
（取得部１６１について）
取得部１６１は、各種情報を取得する。例えば、取得部１６１は、検知部１４を制御することにより、検知部１４によって検知される各種情報を、ユーザ及びユーザ端末１０のコンテキストを示すコンテキスト情報として取得する。具体的には、取得部１６１は、位置検知部１４２を制御することにより、ユーザ端末１０の位置情報と、位置情報が検知された時間に対応する時間情報を取得する。
【０１３４】
取得部１６１は、所定の時間毎にコンテキスト情報を取得するようにしてもよい。例えば、取得部１６１は、定期的（１分毎や、３分毎や、５分毎等）に、上述した検知部１４を制御すること等により、コンテキスト情報を取得する。なお、取得部１６１がコンテキスト情報を取得するタイミングは、生成装置１００によって設定されてもよい。
【０１３５】
（受信部１６２について）
受信部１６２は、各種情報を受信する。例えば、受信部１６２は、生成装置１００から送信されるコンテキスト情報の要求を受信する。受信部１６２は、受信した情報を、制御部１６の各処理部へ送る。
【０１３６】
（認証制御部１６３について）
認証制御部１６３は、生成装置１００に対する認証処理を制御する。例えば、認証制御部１６３は、生成装置１００や、ウェブサーバから、ユーザ端末１０を利用するユーザの認証を求められた場合に、認証手続きに関する処理を行う。例えば、認証制御部１６３は、生成装置１００にユーザのコンテキストに関する各種情報を送信するための処理を行う。例えば、認証制御部１６３は、取得部１６１によって取得されたコンテキスト情報を、送信に適するようパケット化する。
【０１３７】
（送信部１６４について）
送信部１６４は、各種情報を送信する。例えば、送信部１６４は、認証制御部１６３による制御に従って、取得部１６１によって取得されたコンテキスト情報を生成装置１００に送信する。
【０１３８】
〔５．処理手順〕
次に、図１１及び図１２を用いて、実施形態に係る生成装置１００による処理の手順について説明する。まず、図１１を用いて、実施形態に係る生成装置１００によるモデルの生成処理の手順について説明する。図１１は、実施形態に係る処理手順を示すフローチャート（１）である。
【０１３９】
図１１に示すように、生成装置１００は、ユーザ端末１０からコンテキストに関する各種情報を取得する（ステップＳ１０１）。そして、生成装置１００は、各種情報を学習における素性として抽出する（ステップＳ１０２）。生成装置１００は、抽出した素性とユーザの本人性との関係性を学習することにより、各素性の重み値を算出する（ステップＳ１０３）。
【０１４０】
続いて、生成装置１００は、ある素性について、重み値が所定値より低いか否かを判定する（ステップＳ１０４）。重み値が所定値より低い場合（ステップＳ１０４；Ｙｅｓ）、生成装置１００は、算出された重み値をランダムな値に置き換える（ステップＳ１０５）。一方、重み値が所定値より低くない場合には（ステップＳ１０４；Ｎｏ）、生成装置１００は、算出された重み値を維持する（ステップＳ１０６）。
【０１４１】
生成装置１００は、各素性に対して算出した全ての重み値について判定したか否かを判定する（ステップＳ１０７）。全ての重み値を判定していない場合（ステップＳ１０７；Ｎｏ）、生成装置１００は、次の素性に処理を進めて（ステップＳ１０８）、ステップＳ１０４の処理を繰り返す。
【０１４２】
一方、全ての重み値を判定した場合（ステップＳ１０７；Ｙｅｓ）、生成装置１００は、算出した重み値と、ランダムな値に置き換えた重み値とを用いて、モデルを生成する（ステップＳ１０９）。生成装置１００は、ユーザと対応付けてモデルを記憶部１２０に格納する（ステップＳ１１０）。
【０１４３】
次に、図１２を用いて、実施形態に係る生成装置１００による判定処理の手順について説明する。図１２は、実施形態に係る処理手順を示すフローチャート（２）である。
【０１４４】
図１２に示すように、生成装置１００は、ユーザ端末１０からコンテキストに関する各種情報を受信したか否かを判定する（ステップＳ２０１）。コンテキストに関する各種情報を受信していない場合（ステップＳ２０１；Ｎｏ）、生成装置１００は、受信するまで待機する。
【０１４５】
一方、コンテキストに関する各種情報を受信した場合（ステップＳ２０１；Ｙｅｓ）、生成装置１００は、判定処理に先立って、モデルに関する条件を参照する（ステップＳ２０２）。
【０１４６】
そして、生成装置１００は、条件に合致する素性を判定する（ステップＳ２０３）。続いて、生成装置１００は、受信した情報をモデルに入力する（ステップＳ２０４）。このとき、生成装置１００は、判定処理において有効な重み値（条件に合致した素性に対応する重み値）に基づいてスコアを出力させる（ステップＳ２０５）。
【０１４７】
そして、生成装置１００は、スコアが所定値を超えたか否かを判定する（ステップＳ２０６）。スコアが所定値を超えている場合（ステップＳ２０６；Ｙｅｓ）、生成装置１００は、情報の送信元をユーザ本人と判定する（ステップＳ２０７）。この場合、生成装置１００は、認証が成功した旨をユーザ端末１０に送信する（ステップＳ２０８）。
【０１４８】
一方、スコアが所定値を超えていない場合（ステップＳ２０６；Ｎｏ）、生成装置１００は、情報の送信元がユーザ本人ではないと判定する（ステップＳ２０９）。この場合、生成装置１００は、認証が失敗した旨をユーザ端末１０に送信する（ステップＳ２１０）。
【０１４９】
〔６．変形例〕
上述した実施形態に係る処理は、上記実施形態以外にも種々の異なる形態にて実施されてよい。以下では、生成装置１００又は生成処理システム１の他の実施形態（変形例）について説明する。
【０１５０】
〔６−１．重み値〕
上記実施形態では、生成装置１００が、ランダムな値であるニセ重みを設定して、モデルを生成する例を示した。ここで、生成装置１００は、ランダムな値に置き換えるのではなく、算出した重み値同士を掛けあわせてモデルを生成してもよい。この点について、図１３を用いて説明する。
【０１５１】
図１３は、変形例に係る生成処理の一例を示す図である。図１３は、変形例に係るモデル生成処理の概念を示している。例えば、生成装置１００は、ユーザＵ０１に対応するモデルとして、素性番号１の素性が「加速度情報」であり、素性番号２の素性が「位置情報」であり、素性番号３の素性が「端末操作ログ」であり、素性番号４の素性が「端末操作時間」であるモデルを生成しようとしているとする。そして、生成装置１００は、学習処理を経て、素性番号１の素性に「ａ」という重み値を算出し、素性番号２の素性に「ｂ」という重み値を算出し、素性番号３の素性に「ｃ」という重み値を算出し、素性番号４の素性に「ｄ」という重み値を算出したものとする。
【０１５２】
このとき、生成装置１００は、算出した重み値の２つを互いに掛けあわせて、新たな重み値（「複合重み」と称する）を生成する（ステップＳ２１）。例えば、生成装置１００は、複合重みとして「ａ＊ｂ」や、「ａ＊ｃ」といった重み値を生成する。
【０１５３】
そして、生成装置１００は、複合重みによって表されるモデルを生成する。すなわち、生成装置１００は、学習により算出された各素性の重み値をそのまま用いるのではなく、少なくとも２つの素性の重み値を掛けあわせて求められた複合重みを用いて、モデルを生成する。
【０１５４】
この場合、不正ユーザは、生成されたモデルを参照したとしても、ユーザを判定するためにどのような要素が有効であるかを特定することが困難となる。例えば、不正ユーザは、「ａ＊ｂ」という重み値が比較的高く、かかる素性が判定に重要であることを知得したとしても、「ａ」と「ｂ」のどちらに対応する素性が重要なのかを判別することが難しい。具体的には、不正ユーザは、このモデルのユーザに成りすまそうとすると、少なくとも「加速度情報」と「位置情報」とのコンテキストを真似する必要が生じる。
【０１５５】
すなわち、不正ユーザは、モデルや、モデルの仕様を閲覧することで、モデルにおいて重要な素性を把握したとしても、その素性が複合的であるため、ユーザの行動を真似することによってユーザに成りすますことが難しくなる。なお、上記では、複合重みとして２つの素性を掛けあわせる例を示したが、生成装置１００は、３つ以上の素性を掛けあわせてもよい。これにより、生成装置１００は、素性の複雑性をより高めることができる。
【０１５６】
なお、図１等では説明を簡単にするため、重み値に「０」が算出される例を示したが、コンテキスト情報が取得される限り、重み値が「０」になる事態は多くないと想定される。このため、上記のような掛けあわせることで生じる複合的な素性において、発火しない素性は生じないと想定される。
【０１５７】
上記のように、生成装置１００は、算出された重み値の少なくとも２つを掛けあわせた値を所定値として、モデルを生成してもよい。
【０１５８】
かかる処理によって、生成装置１００は、認証に有効な情報を曖昧化することができるため、暗号化等の複雑な処理を行うことなく、不正ユーザによる成りすまし等を防止することができる。
【０１５９】
〔６−２．ユーザ端末の数〕
上記実施形態では、ユーザ端末１０が１台の装置である例を示したが、ユーザ端末１０は１台に限られない。例えば、ユーザは、通信可能な端末装置を複数台所有することも想定される。この場合、生成装置１００は、ユーザが利用する複数のユーザ端末１０から、ユーザのコンテキストを示す各種情報を取得してもよい。
【０１６０】
なお、生成装置１００は、複数のユーザ端末１０の識別において、必ずしも他の機器にも共通するようなグローバルな識別子を取得することを要さない。すなわち、生成装置１００は、実施形態において実行する処理において、ユーザ端末１０を一意に識別することが可能な識別子を取得しさえすればよく、必ずしも永続的に定まる識別子を取得しなくてもよい。
【０１６１】
〔６−３．ユーザ端末の構成〕
上記実施形態では、ユーザ端末１０の構成例について図１０を用いて説明した。しかし、ユーザ端末１０は、図１０で例示した全ての処理部を備えることを必ずしも要しない。例えば、ユーザ端末１０は、表示部１３や検知部１４を必ずしも備えていなくてもよい。また、ユーザ端末１０は、２以上の機器に分離されて図１０を示す構成が実現されてもよい。例えば、ユーザ端末１０は、少なくとも検知部１４を有する検知装置と、少なくとも通信部１１を有する通信装置とに分離された構成を有する、２台以上の機器により実現されてもよい。
【０１６２】
〔６−４．サービスを提供する装置〕
上記実施形態では、ユーザの認証が必要となる状況として、例えば、ユーザ端末１０が認証制限付きサイトにアクセスするような状況を例示した。すなわち、ユーザの認証が必要となる状況を生じさせるサービスの提供者として、ウェブサーバを例示した。しかし、このようなサービスを提供する装置は、ウェブサーバに限られない。例えば、サービスを提供する装置は、ウェブサービスに限らず、ＨＴＴＰ（Hypertext  Transfer  Protocol）ではない種類のプロトコルを扱うネットワークサービスや、ＩｏＴ（Internet  of  Things）を扱う通信やアプリケーションを提供する装置であってもよい。すなわち、サービスを提供する装置は、生成装置１００やユーザ端末１０等と通信可能であり、生成装置１００による生成処理や判定処理を利用する機能を有する装置であれば、ウェブサーバに限られず、どのような装置によって実現されてもよい。
【０１６３】
〔７．ハードウェア構成〕
上述してきた実施形態に係る生成装置１００やユーザ端末１０は、例えば図１４に示すような構成のコンピュータ１０００によって実現される。以下、生成装置１００を例に挙げて説明する。図１４は、生成装置１００の機能を実現するコンピュータ１０００の一例を示すハードウェア構成図である。コンピュータ１０００は、ＣＰＵ１１００、ＲＡＭ１２００、ＲＯＭ１３００、ＨＤＤ１４００、通信インターフェイス（Ｉ／Ｆ）１５００、入出力インターフェイス（Ｉ／Ｆ）１６００、及びメディアインターフェイス（Ｉ／Ｆ）１７００を有する。
【０１６４】
ＣＰＵ１１００は、ＲＯＭ１３００又はＨＤＤ１４００に記憶されたプログラムに基づいて動作し、各部の制御を行う。ＲＯＭ１３００は、コンピュータ１０００の起動時にＣＰＵ１１００によって実行されるブートプログラムや、コンピュータ１０００のハードウェアに依存するプログラム等を記憶する。
【０１６５】
ＨＤＤ１４００は、ＣＰＵ１１００によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を記憶する。通信インターフェイス１５００は、通信網５００（図２に示したネットワークＮに対応）を介して他の機器からデータを受信してＣＰＵ１１００へ送り、ＣＰＵ１１００が生成したデータを、通信網５００を介して他の機器へ送信する。
【０１６６】
ＣＰＵ１１００は、入出力インターフェイス１６００を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。ＣＰＵ１１００は、入出力インターフェイス１６００を介して、入力装置からデータを取得する。また、ＣＰＵ１１００は、入出力インターフェイス１６００を介して生成したデータを出力装置へ出力する。
【０１６７】
メディアインターフェイス１７００は、記録媒体１８００に記憶されたプログラム又はデータを読み取り、ＲＡＭ１２００を介してＣＰＵ１１００に提供する。ＣＰＵ１１００は、かかるプログラムを、メディアインターフェイス１７００を介して記録媒体１８００からＲＡＭ１２００上にロードし、ロードしたプログラムを実行する。記録媒体１８００は、例えばＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【０１６８】
例えば、コンピュータ１０００が実施形態に係る生成装置１００として機能する場合、コンピュータ１０００のＣＰＵ１１００は、ＲＡＭ１２００上にロードされたプログラム（例えば、実施形態に係る生成プログラム）を実行することにより、制御部１３０の機能を実現する。また、ＨＤＤ１４００には、記憶部１２０内のデータが記憶される。コンピュータ１０００のＣＰＵ１１００は、これらのプログラムを記録媒体１８００から読み取って実行するが、他の例として、他の装置から通信網５００を介してこれらのプログラムを取得してもよい。
【０１６９】
〔８．その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【０１７０】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図３に示した取得部１３１と、受信部１３４とは統合されてもよい。また、例えば、記憶部１２０に記憶される情報は、ネットワークＮを介して、外部に備えられた記憶装置に記憶されてもよい。
【０１７１】
また、例えば、上記実施形態では、生成装置１００が、ユーザからコンテキスト情報を取得する取得処理と、モデルを生成する生成処理と、ユーザの本人性を判定する判定処理とを行う例を示した。しかし、上述した生成装置１００は、取得処理を行う取得装置と、生成処理を行う生成装置と、判定処理を行う判定装置に分離されてもよい。この場合、例えば、実施形態に係る生成装置１００による処理は、取得装置と、生成装置と、判定装置といった各装置を有する生成処理システム１によって実現される。
【０１７２】
また、上述してきた各実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【０１７３】
〔９．効果〕
上述してきたように、実施形態に係る生成装置１００は、取得部１３１と、算出部１３２と、生成部１３３とを有する。取得部１３１は、ユーザのコンテキストに関する各種情報を取得する。算出部１３２は、取得部１３１によって取得された各種情報を素性として学習処理を実行することにより、ユーザを認証するためのモデルにおける、素性の各々に対する重み値を算出する。生成部１３３は、算出部１３２によって算出された重み値のうち、所定の条件に該当する重み値を所定値に置き換えて、ユーザに対応するモデルを生成する。
【０１７４】
このように、実施形態に係る生成装置１００は、生成するモデルにおいて、「ユーザの認証において何の要素が認証に効いているのか」といった情報を曖昧化することで、認証において有効な素性を秘匿することができる。これにより、生成装置１００は、認証の利便性を確保しつつ安全性を高めることができる。
【０１７５】
また、生成部１３３は、ランダムな値を所定値としてモデルを生成する。すなわち、実施形態に係る生成装置１００は、モデルに設定される重み値として意味のない無作為の値を設定する。これにより、生成装置１００は、不正ユーザにモデルを閲覧されたとしても、認証に有効な素性等を推定されにくくすることができる。
【０１７６】
また、生成部１３３は、算出部１３２によって算出された重み値の少なくとも２つを掛けあわせた値を所定値として、モデルを生成する。
【０１７７】
このように、実施形態に係る生成装置１００は、重み値を掛けあわせた複合重みを用いてモデルを生成してもよい。この場合、不正ユーザによってモデルにおいて重要な素性を把握されたとしても、その素性が複合的であるため、コンテキスト情報を真似することでユーザに成りすますことが難しくなる。これにより、生成装置１００は、認証の安全性を高めることができる。
【０１７８】
また、生成部１３３は、算出部１３２によって算出された重み値のうち、所定の閾値より低い重み値を所定値に置き換えて、モデルを生成する。
【０１７９】
このように、実施形態に係る生成装置１００は、本人性の判定において重要でないと想定される素性の重み値を置き換えて、モデルを生成する。このため、生成装置１００は、どのような素性が認証において重要かを効率良く秘匿することができる。これにより、生成装置１００は、認証の安全性を高めることができる。
【０１８０】
また、生成部１３３は、学習処理に用いられた情報量が所定量に達していない素性に対して算出された重み値を所定値に置き換えて、モデルを生成する。
【０１８１】
このように、実施形態に係る生成装置１００は、学習における情報量に基づいて、置き換える重み値を選択してもよい。これにより、生成装置１００は、どのような素性に対応する情報に基づいて学習が行われているかといった情報がわかりにくいモデルを生成することができるため、不正ユーザから認証に有効な素性を察知されることを防止することができる。
【０１８２】
また、生成部１３３は、算出部１３２によって算出された重み値のうち、最大となる値から所定範囲に属する値をとる重み値を、所定値に置き換えてモデルを生成する。
【０１８３】
このように、実施形態に係る生成装置１００は、認証において有効と想定される素性の重み値を置き換える。このため、不正ユーザは、モデルを参照したとしても、どのような素性が真に有効であるかを把握することが難しくなる。これにより、生成装置１００は、認証の安全性を高めることができる。
【０１８４】
また、実施形態に係る生成装置１００は、判定処理の対象となるユーザから、ユーザのコンテキストに関する各種情報を受信する受信部１３４をさらに備える。また、実施形態に係る生成装置１００は、受信部１３４によってユーザのコンテキストに関する各種情報が受信された場合に、ユーザに対応するモデルを用いて、ユーザの本人性を判定する判定部１３５をさらに備える。
【０１８５】
このように、実施形態に係る生成装置１００は、モデルを生成したのちに、当該モデルを用いてユーザの本人性を判定する。これにより、生成装置１００は、不正ユーザからの成りすましを防止しつつ、真のユーザに対する認証処理を実行することができる。
【０１８６】
また、判定部１３５は、学習処理に用いられた情報量が所定量を超える素性のみを用いて、ユーザの本人性を判定する。
【０１８７】
このように、実施形態に係る生成装置１００は、所定量を超えた情報を得た素性については、その素性を活かして、ユーザの本人性を判定する。これにより、生成装置１００は、ダミーの値が設定された重み値に対応する素性を処理に用いずに、本来の重み値が維持された素性のみを利用して判定を行うことができる。このため、生成装置１００は、判定処理の精度を向上させることができる。
【０１８８】
また、判定部１３５は、ユーザごとに予め設定された素性のみを用いて、ユーザの本人性を判定する。
【０１８９】
このように、実施形態に係る生成装置１００は、ユーザごとに設定を行い、判定に用いる素性を決めてしまってもよい。これにより、生成装置１００は、どのような素性が判定に使用されているか一見わからないモデルであっても、ユーザ本人を判定するために用いる素性については真の重み値を維持しておくこと等によって、支障なく判定を行うことができる。これにより、生成装置１００は、不正ユーザの成りすまし等を防止しつつ、本来のユーザには問題なく認証を行うことができる。
【０１９０】
以上、本願の実施形態を図面に基づいて詳細に説明したが、これは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０１９１】
また、上述してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。
【符号の説明】
【０１９２】
１  生成処理システム
１０  ユーザ端末
１００  生成装置
１１０  通信部
１２０  記憶部
１２０１  セキュア環境
１２０２  プロダクション環境
１２１  生データ記憶部
１２２  個人情報記憶部
１２３  学習情報記憶部
１２４  仕様情報記憶部
１２５  モデル記憶部
１２６  モデルテーブル
１２７  条件テーブル
１３０  制御部
１３１  取得部
１３２  算出部
１３３  生成部
１３４  受信部
１３５  判定部
１３６  送信部
【図１】
2018147326.tif 000003
【図２】
2018147326.tif 000004
【図３】
2018147326.tif 000005
【図４】
2018147326.tif 000006
【図５】
2018147326.tif 000007
【図６】
2018147326.tif 000008
【図７】
2018147326.tif 000009
【図８】
2018147326.tif 000010
【図９】
2018147326.tif 000011
【図１０】
2018147326.tif 000012
【図１１】
2018147326.tif 000013
【図１２】
2018147326.tif 000014
【図１３】
2018147326.tif 000015
【図１４】
2018147326.tif 000016