(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-27
(54)【発明の名称】行動バイオメトリクスについての時空間深層学習
(51)【国際特許分類】
G06V 40/20 20220101AFI20231220BHJP
G06T 1/20 20060101ALI20231220BHJP
G06T 7/00 20170101ALI20231220BHJP
G06V 10/82 20220101ALI20231220BHJP
G06F 21/62 20130101ALI20231220BHJP
G06F 21/31 20130101ALI20231220BHJP
G06N 20/00 20190101ALI20231220BHJP
【FI】
G06V40/20
G06T1/20 C
G06T7/00 510A
G06V10/82
G06F21/62 318
G06F21/31
G06N20/00
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023535704
(86)(22)【出願日】2021-12-10
(85)【翻訳文提出日】2023-06-12
(86)【国際出願番号】 IB2021061560
(87)【国際公開番号】W WO2022130147
(87)【国際公開日】2022-06-23
(32)【優先日】2020-12-16
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】リー、タエスン
(72)【発明者】
【氏名】モロイ、イアン、マイケル
(72)【発明者】
【氏名】パク、ヨンジャ
【テーマコード(参考)】
5B043
5B057
5L096
【Fターム(参考)】
5B043AA01
5B043AA09
5B043BA05
5B043DA05
5B043DA07
5B043EA05
5B043GA01
5B057AA20
5B057CH05
5B057DA20
5B057DB02
5B057DB05
5B057DB09
5B057DC30
5L096BA08
5L096DA02
5L096HA11
(57)【要約】
時空間入力データに基づいて動作する行動バイオメトリクス・ベースの認証コードを提供するように動作する機械学習コンピュータ・モデルの複数の段階を含む、行動バイオメトリクス深層学習(BBDL)パイプラインが提供される。BBDLパイプラインは、複数の時間間隔にわたるある時空間入力データを受信し、それぞれの時間間隔は時空間入力データの対応するサブセットを有する。それぞれの時間間隔で、対応する段階の機械学習コンピュータ・モデルは、時間間隔に対応する時空間入力データのサブセットを処理して、エンティティの時空間的特色の内部表現を示す値を有する出力ベクトルを生成する。出力ベクトルは、BBDLパイプラインの複数の段階にわたって蓄積されて、時空間入力データにおいて表されるエンティティの時空間的特色を示す最終出力ベクトルを生成する。エンティティは最終出力ベクトルに基づいて認証される。
【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサおよび少なくとも1つのメモリを含むデータ処理システムにおける方法であって、前記少なくとも1つのメモリは、前記方法を実施するように動作する機械学習コンピュータ・モデルの複数の段階を含む行動バイオメトリクス深層学習(BBDL)パイプラインを実施するように前記少なくとも1つのプロセッサを具体的に構成するように前記少なくとも1つのプロセッサによって実行される命令を含み、前記方法は、
1つまたは複数のセンサから、複数の時間間隔を含む所定の時間枠にわたるあるエンティティと関連付けられた入力に対応する時空間入力データを受信することであって、それぞれの時間間隔は前記時空間入力データの対応するサブセットを有し、前記時空間入力データは、前記1つまたは複数のセンサの少なくとも1つによって監視される物理領域に関して空間依存する、および時間依存する入力データを含む、前記時空間入力データを受信することと、
前記複数の時間間隔におけるそれぞれの時間間隔で、前記複数の段階における対応する段階の1つまたは複数の機械学習コンピュータ・モデルによって、前記時間間隔に対応する前記時空間入力データのサブセットを処理して、前記時空間入力データのサブセットにおいて表される前記エンティティの時空間的特色の内部表現を示す値を有する出力ベクトルを生成することと、
前記BBDLパイプラインの前記複数の段階にわたって出力ベクトルを蓄積して、前記時空間入力データにおいて表される前記エンティティの前記時空間的特色を示す最終出力ベクトル値を含む最終出力ベクトルを生成することと、
前記データ処理システムによって、前記最終出力ベクトルに基づいて前記エンティティを認証することと、を含む、方法。
【請求項2】
前記エンティティを認証することは、
前記最終出力ベクトルと、認定ユーザについてのユーザ・プロファイルに格納された前記BBDLパイプラインによって生成された少なくとも1つの以前に生成した出力ベクトルとを比較して、前記最終出力ベクトルが前記認定ユーザの時空間的特色にマッチするユーザの時空間的特色を表す確率を判断することと、
前記比較の結果に応じて保護されたリソースへのアクセスを制御することと、を含む、請求項1に記載の方法。
【請求項3】
保護されたリソースへのアクセスを制御することは、前記最終出力ベクトルが前記認定ユーザの時空間的特色にマッチする前記ユーザの時空間的特色を表すことを前記確率が示していると判断することに応じて、
前記ユーザに対して前記保護されたリソースへのアクセスを許可することと、
前記最終出力ベクトルを含むように前記ユーザ・プロファイルを更新することと、を含む、請求項2に記載の方法。
【請求項4】
前記BBDLパイプラインのそれぞれの段階は画像処理機械学習コンピュータ・モデルを含み、前記BBDLパイプラインのそれぞれの段階では、前記時間間隔に対応する前記時空間入力データのサブセットを処理することは、
前記時空間入力データのサブセットを処理して、前記時空間入力データのサブセットにおける時空間特徴をある画像に変換することと、
前記段階の前記画像処理機械学習コンピュータ・モデルによって、前記画像に関する画像解析を行って第1のベクトル出力を生成することと、を含む、請求項1に記載の方法。
【請求項5】
前記BBDLパイプラインのそれぞれの段階は、完全接続ニューラル・ネットワーク機械学習コンピュータ・モデルを含み、前記BBDLパイプラインのそれぞれの段階では、前記時間間隔に対応する前記時空間入力データのサブセットを処理することは、
前記時空間入力データのサブセットを処理して、前記時空間入力データのサブセットにおける時間的特徴を識別することと、
前記段階の前記完全接続ニューラル・ネットワーク機械学習モデルによって前記時間的特徴を処理して、第2のベクトル出力を生成することと、を含む、請求項4に記載の方法。
【請求項6】
前記BBDLパイプラインのそれぞれの段階は固定/カテゴリ・データ埋め込みロジックを含み、前記BBDLパイプラインのそれぞれの段階では、前記時間間隔に対応する前記時空間入力データのサブセットを処理することは、
前記時空間入力データのサブセットを処理して、前記時空間入力データのサブセットにおける固定/カテゴリ特徴を識別することと、
前記段階の前記固定/カテゴリ・データ埋め込みロジックによって、前記固定/カテゴリ特徴を処理して、第3のベクトル出力を生成することと、を含む、請求項5に記載の方法。
【請求項7】
前記BBDLパイプラインのそれぞれの段階は、前記第1の出力ベクトル、第2の出力ベクトル、および第3の出力ベクトルを組み合わせて、前記段階の主段階機械学習コンピュータ・モデルに入力される組み合わせ出力ベクトルを生成するように動作する組み合わせロジックを含む、請求項6に記載の方法。
【請求項8】
前記BBDLパイプラインのそれぞれの段階のそれぞれの主段階機械学習コンピュータ・モデルは、前記BBDLパイプラインの以前の段階からの入力と共にこの対応する段階の対応する組み合わせ出力ベクトルを処理して、段階出力ベクトルを生成し、前記BBDLパイプラインの前記複数の段階にわたって出力ベクトルを蓄積して最終出力ベクトルを生成することは、それぞれの段階について、前記BBDLパイプラインにおける次の段階への入力として前記段階出力ベクトルを出力することを含み、前記BBDLパイプラインの最後の段階の主段階機械学習コンピュータ・モデルの段階出力ベクトルは前記最終出力ベクトルである、請求項7に記載の方法。
【請求項9】
埋め込まれたデバイス情報は、前記BBDLパイプラインの第1の段階の主段階機械学習コンピュータ・モデルに入力され、前記主段階機械学習コンピュータ・モデルは、前記埋め込まれたデバイス情報と共に前記第1の段階と関連付けられた組み合わせ出力ベクトルを処理して、前記第1の段階に対する段階出力ベクトルを生成する、請求項8に記載の方法。
【請求項10】
前記1つまたは複数のセンサはタッチ・センシティブ・ディスプレイ・デバイスのタッチ・センサを含み、前記時空間入力データは、前記エンティティのタッチ入力の特性を示すセンサ・データを含む、請求項1に記載の方法。
【請求項11】
コンピュータ可読プログラムが格納されているコンピュータ可読媒体を含むコンピュータ・プログラム製品であって、前記コンピュータ可読プログラムは、コンピューティング・デバイス上で実行される場合、前記コンピューティング・デバイスに、機械学習コンピュータ・モデルの複数の段階を含む行動バイオメトリクス深層学習(BBDL)パイプラインを実施させ、前記機械学習コンピュータ・モデルは、
1つまたは複数のセンサから、複数の時間間隔を含む所定の時間枠にわたるあるエンティティと関連付けられた入力に対応する時空間入力データを受信することであって、それぞれの時間間隔は前記時空間入力データの対応するサブセットを有し、前記時空間入力データは、前記1つまたは複数のセンサの少なくとも1つによって監視される物理領域に関して空間依存する、および時間依存する入力データを含む、前記時空間入力データを受信することと、
前記複数の時間間隔におけるそれぞれの時間間隔で、前記複数の段階における対応する段階の1つまたは複数の機械学習コンピュータ・モデルによって、前記時間間隔に対応する前記時空間入力データのサブセットを処理して、前記時空間入力データのサブセットにおいて表される前記エンティティの時空間的特色の内部表現を示す値を有する出力ベクトルを生成することと、
前記BBDLパイプラインの前記複数の段階にわたって出力ベクトルを蓄積して、前記時空間入力データにおいて表される前記エンティティの前記時空間的特色を示す最終出力ベクトル値を含む最終出力ベクトルを生成することと、
前記データ処理システムによって、前記最終出力ベクトルに基づいて前記エンティティを認証することと、
を行うように動作する、コンピュータ・プログラム製品。
【請求項12】
前記エンティティを認証することは、前記最終出力ベクトルと、認定ユーザについてのユーザ・プロファイルに格納された前記BBDLパイプラインによって生成された少なくとも1つの以前に生成した出力ベクトルとを比較して、前記最終出力ベクトルが前記認定ユーザの時空間的特色にマッチするユーザの時空間特徴を表す確率を判断することと、
前記比較の結果に応じて保護されたリソースへのアクセスを制御することと、を含む、請求項11に記載のコンピュータ・プログラム製品。
【請求項13】
保護されたリソースへのアクセスを制御することは、前記最終出力ベクトルが前記認定ユーザの時空間的特色にマッチする前記ユーザの時空間的特色を表すことを前記確率が示していると判断することに応じて、
前記ユーザに対して前記保護されたリソースへのアクセスを許可することと、
前記最終出力ベクトルを含むように前記ユーザ・プロファイルを更新することと、を含む、請求項12に記載のコンピュータ・プログラム製品。
【請求項14】
前記BBDLパイプラインのそれぞれの段階は画像処理機械学習コンピュータ・モデルを含み、前記BBDLパイプラインのそれぞれの段階では、前記時間間隔に対応する前記時空間入力データのサブセットを処理することは、
前記時空間入力データのサブセットを処理して、前記時空間入力データのサブセットにおける時空間特徴をある画像に変換することと、
前記段階の前記画像処理機械学習コンピュータ・モデルによって前記画像に関する画像解析を行って、第1のベクトル出力を生成することと、を含む、請求項11に記載のコンピュータ・プログラム製品。
【請求項15】
前記BBDLパイプラインのそれぞれの段階は、完全接続ニューラル・ネットワーク機械学習コンピュータ・モデルを含み、前記BBDLパイプラインのそれぞれの段階では、前記時間間隔に対応する前記時空間入力データのサブセットを処理することは、
前記時空間入力データのサブセットを処理して、前記時空間入力データのサブセットにおける時間的特徴を識別することと、
前記段階の前記完全接続ニューラル・ネットワーク機械学習モデルによって前記時間的特徴を処理して、第2のベクトル出力を生成することと、を含む、請求項14に記載のコンピュータ・プログラム製品。
【請求項16】
前記BBDLパイプラインのそれぞれの段階は固定/カテゴリ・データ埋め込みロジックを含み、前記BBDLパイプラインのそれぞれの段階では、前記時間間隔に対応する前記時空間入力データのサブセットを処理することは、
前記時空間入力データのサブセットを処理して、前記時空間入力データのサブセットにおける固定/カテゴリ特徴を識別することと、
前記段階の前記固定/カテゴリ・データ埋め込みロジックによって前記固定/カテゴリ特徴を処理して、第3のベクトル出力を生成することと、を含む、請求項15に記載のコンピュータ・プログラム製品。
【請求項17】
前記BBDLパイプラインのそれぞれの段階は、前記第1の出力ベクトル、第2の出力ベクトル、および第3の出力ベクトルを組み合わせて、前記段階の主段階機械学習コンピュータ・モデルに入力される組み合わせ出力ベクトルを生成するように動作する組み合わせロジックを含む、請求項16に記載のコンピュータ・プログラム製品。
【請求項18】
前記BBDLパイプラインのそれぞれの段階のそれぞれの主段階機械学習コンピュータ・モデルは、前記BBDLパイプラインの以前の段階からの入力と共にこの対応する段階の対応する組み合わせ出力ベクトルを処理して、段階出力ベクトルを生成し、前記BBDLパイプラインの前記複数の段階にわたって出力ベクトルを蓄積して最終出力ベクトルを生成することは、それぞれの段階について、前記BBDLパイプラインにおける次の段階への入力として前記段階出力ベクトルを出力することを含み、前記BBDLパイプラインの最後の段階の主段階機械学習コンピュータ・モデルの段階出力ベクトルは前記最終出力ベクトルである、請求項17に記載のコンピュータ・プログラム製品。
【請求項19】
埋め込まれたデバイス情報は、前記BBDLパイプラインの第1の段階の主段階機械学習コンピュータ・モデルに入力され、前記主段階機械学習コンピュータ・モデルは、前記埋め込まれたデバイス情報と共に前記第1の段階と関連付けられた組み合わせ出力ベクトルを処理して、前記第1の段階に対する段階出力ベクトルを生成する、請求項18に記載のコンピュータ・プログラム製品。
【請求項20】
装置であって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに結合された少なくとも1つのメモリと、を備え、前記少なくとも1つのメモリは、前記少なくとも1つのプロセッサによって実行される場合、前記少なくとも1つのプロセッサに、機械学習コンピュータ・モデルの複数の段階を含む行動バイオメトリクス深層学習(BBDL)パイプラインを実施させる命令を含み、前記機械学習コンピュータ・モデルは、
1つまたは複数のセンサから、複数の時間間隔を含む所定の時間枠にわたるあるエンティティと関連付けられた入力に対応する時空間入力データを受信することであって、それぞれの時間間隔は前記時空間入力データの対応するサブセットを有し、前記時空間入力データは、前記1つまたは複数のセンサの少なくとも1つによって監視される物理領域に関して空間依存する、および時間依存する入力データを含む、前記時空間入力データを受信することと、
前記複数の時間間隔におけるそれぞれの時間間隔で、前記複数の段階における対応する段階の1つまたは複数の機械学習コンピュータ・モデルによって、前記時間間隔に対応する前記時空間入力データのサブセットを処理して、前記時空間入力データのサブセットにおいて表される前記エンティティの時空間的特色の内部表現を示す値を有する出力ベクトルを生成することと、
前記BBDLパイプラインの前記複数の段階にわたって出力ベクトルを蓄積して、前記時空間入力データにおいて表される前記エンティティの前記時空間的特色を示す最終出力ベクトル値を含む最終出力ベクトルを生成することと、
前記データ処理システムによって、前記最終出力ベクトルに基づいて前記エンティティを認証することと、
を行うように動作する、装置。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、一般的に、改善されたデータ処理装置および方法に関し、より詳細には、行動バイオメトリクス(behavioral biometrics)についての時空間深層学習を行うためのメカニズムに関する。
【背景技術】
【0002】
身体的バイオメトリクスは、通常、個人の識別情報を検証するために使用される、指紋、声紋、DNA、網膜紋などの独自の物理的特性の測定および解析を伴う。行動バイオメトリクスは、人間活動における独自の識別および測定可能パターンの測定に取り組む研究分野である。行動バイオメトリクスの例には、人がキーボード・デバイス上のキーを選択する時にリズムおよびタイミングのパターンが生じるキーストローク・ダイナミックス、歩行解析、コンピュータ・マウス使用特性、および署名解析などが含まれる。行動バイオメトリクスは、金融機関、商取引、政府施設、および小売販売時点管理(POS)(retail point of sale)デバイスなどを含めて安全な認証のために多くの業界で使用されている。
【発明の概要】
【0003】
この概要は、詳細な説明において本明細書でさらに説明される抜粋した概念を簡略化した形で紹介するために提供される。この概要は、特許請求される主題の重要な要因または本質的な特徴を識別することも意図されていないし、特許請求される主題の範囲を限定するために使用されることも意図されていない。
【0004】
本発明の一態様では、少なくとも1つのプロセッサおよび少なくとも1つのメモリを含むデータ処理システムにおける方法であって、少なくとも1つのメモリは、時空間入力データに基づいて動作する行動バイオメトリクス・ベースの認証メカニズムを提供するように動作する機械学習コンピュータ・モデルの複数の段階を含む行動バイオメトリクス深層学習(BBDL)パイプラインを実施するように少なくとも1つのプロセッサを具体的に構成するように少なくとも1つのプロセッサによって実行される命令を含む、方法が提供される。1つの例示的な実施形態によると、方法は、1つまたは複数のセンサから、複数の時間間隔を含む所定の時間枠(time window)にわたるあるエンティティと関連付けられた入力に対応する時空間入力データを受信することであって、それぞれの時間間隔は時空間入力データの対応するサブセットを有する、時空間入力データを受信することを含む。方法はまた、複数の時間間隔におけるそれぞれの時間間隔で、複数の段階における対応する段階の1つまたは複数の機械学習コンピュータ・モデルによって、時間間隔に対応する時空間入力データのサブセットを処理して、時空間入力データのサブセットにおいて表されるエンティティの時空間的特色(trait)の内部表現を示す値を有する出力ベクトルを生成することを含む。さらに、方法は、BBDLパイプラインの複数の段階にわたって出力ベクトルを蓄積して、時空間入力データにおいて表されるエンティティの時空間的特色を示す最終出力ベクトル値を含む最終出力ベクトルを生成することを含む。さらに、方法は、データ処理システムによって、最終出力ベクトルに基づいてエンティティを認証することを含む。
【0005】
時空間入力データは、1つまたは複数のセンサの少なくとも1つによって監視される物理領域に関して空間依存する、および時間依存する入力データを含む。よって、例示的な実施形態のBBDLパイプラインは、既存のメカニズムなどにおいて、入力特徴の固定された所定のセットを生成し、かつ時間的特性を取り除くために生の時空間入力データの前処理を必要としない。また、時空間入力データの処理によって、BBDLパイプラインは、特定のパターンに気付くいずれかのエンティティまたは複数のエンティティによって提供されてよい入力のパターンを単に認証するのではなくエンティティ(ユーザ)の行動バイオメトリクスを学習することが可能である。すなわち、時空間入力データは、エンティティ/ユーザが入力を生成することによるやり方で表示され、かつ単なる検出されたパターンではない、エンティティ/ユーザによって示される独自の行動を代表するものである。
【0006】
好ましくは、本発明は、方法であって、エンティティを認証することは、最終出力ベクトルと、認定ユーザについてのユーザ・プロファイルに格納されたBBDLパイプラインによって生成された少なくとも1つの以前に生成した出力ベクトルとを比較して、最終出力ベクトルが認定ユーザの時空間的特色を表す確率を判断することを含む、方法を提供する。また、エンティティを認証することは、比較の結果に応じて保護されたリソースへのアクセスを制御することをさらに含む。このように、以前に生成した出力ベクトルの小セットは、認定ユーザの行動バイオメトリクスを表すユーザ・プロファイルを定義するために使用されてよく、後続のユーザ入力は、そのような行動バイオメトリクス・データに対して認証されてよい。
【0007】
好ましくは、本発明は、方法であって、保護されたリソースへのアクセスを制御することは、最終出力ベクトルが認定ユーザの時空間的特色にマッチするユーザの時空間的特色を表すことを確率が示していると判断することに応じて、ユーザに対して保護されたリソースへのアクセスを許可することと、最終出力ベクトルを含むようにユーザ・プロファイルを更新することとを含む、方法を提供する。このように、ユーザ・プロファイルは、認定ユーザについての最新の行動バイオメトリクス情報を反映するように動的に更新されてよい。
【0008】
好ましくは、本発明は、方法であって、BBDLパイプラインのそれぞれの段階は画像処理機械学習コンピュータ・モデルを含み、BBDLパイプラインのそれぞれの段階では、時間間隔に対応する時空間入力データのサブセットを処理することは、時空間入力データのサブセットを処理して、時空間入力データのサブセットにおける時空間特徴をある画像に変換することと、段階の画像処理機械学習コンピュータ・モデルによって、画像に関する画像解析を行って第1のベクトル出力を生成することとを含む、方法を提供する。このように、時空間特徴は、さまざまな時空間特徴に関する時空間データを分類するように、機械学習モデルによる画像解析が行われ得るフォーマットで表されることが可能である。
【0009】
好ましくは、本発明は、方法であって、BBDLパイプラインのそれぞれの段階は、完全接続ニューラル・ネットワーク機械学習コンピュータ・モデルを含み、BBDLパイプラインのそれぞれの段階では、時間間隔に対応する時空間入力データのサブセットを処理することは、時空間入力データのサブセットを処理して、時空間入力データのサブセットにおける時間的特徴を識別することと、段階の完全接続ニューラル・ネットワーク機械学習モデルによって時間的特徴を処理して、第2のベクトル出力を生成することとを含む、方法を提供する。よって、時間的特徴は時空間入力データにおいて識別され得、この場合、時間的特徴は、特定の空間要素に左右されず、時空間特徴を解析した結果と組み合わせられる前に時空間特徴から別個に評価可能である。
【0010】
好ましくは、本発明は、方法であって、BBDLパイプラインのそれぞれの段階は固定/カテゴリ・データ埋め込みロジックを含み、BBDLパイプラインのそれぞれの段階では、時間間隔に対応する時空間入力データのサブセットを処理することは、時空間入力データのサブセットを処理して、時空間入力データのサブセットにおける固定/カテゴリ特徴を識別することと、段階の固定/カテゴリ・データ埋め込みロジックによって固定/カテゴリ特徴を処理して、第3のベクトル出力を生成することとを含む、方法を提供する。よって、例示的な実施形態のメカニズムは、さらに、入力データの評価を、固定/カテゴリ・データのみならず、時空間入力データにおける時空間特徴および時間的特徴に基づいて行うことができる。
【0011】
好ましくは、本発明は、方法であって、BBDLパイプラインのそれぞれの段階は、第1の出力ベクトル、第2の出力ベクトル、および第3の出力ベクトルを組み合わせて、段階の主段階(main stage)機械学習コンピュータ・モデルに入力される組み合わせ出力ベクトルを生成するように動作する組み合わせロジックを含む、方法を提供する。よって、時空間入力データにおける、時空間特徴、時間的特徴、および固定/カテゴリ特徴を処理した結果は、時空間入力データが認定ユーザと関連付けられているか否かを予測する際に使用するための入力の時空間特徴の内部表現を生成するために組み合わせられる。
【0012】
好ましくは、本発明は、方法であって、BBDLパイプラインのそれぞれの段階のそれぞれの主段階機械学習コンピュータ・モデルは、BBDLパイプラインの以前の段階からの入力と共にこの対応する段階の対応する組み合わせ出力ベクトルを処理して、段階出力ベクトルを生成し、BBDLパイプラインの複数の段階にわたって出力ベクトルを蓄積して最終出力ベクトルを生成することは、それぞれの段階について、BBDLパイプラインにおける次の段階への入力として段階出力ベクトルを出力することを含み、BBDLパイプラインの最後の段階の主段階機械学習コンピュータ・モデルの段階出力ベクトルは最終出力ベクトルである、方法を提供する。このように、時間枠の複数の時間間隔にわたる、時空間特徴、時間的特徴、および固定/カテゴリ特徴の処理は、行動バイオメトリクス・パターンが時間枠内で識別可能であるように蓄積される。
【0013】
好ましくは、本発明は、方法であって、埋め込まれたデバイス情報は、BBDLパイプラインの第1の段階の主段階機械学習コンピュータ・モデルに入力され、主段階機械学習コンピュータ・モデルは、埋め込まれたデバイス情報と共に第1の段階と関連付けられた組み合わせ出力ベクトルを処理して、第1の段階に対する段階出力ベクトルを生成する、方法を提供する。よって、BBDLパイプラインの評価は、時空間入力データと関連付けられた特定のデバイスにカスタマイズされ得る。
【0014】
好ましくは、本発明は、方法であって、1つまたは複数のセンサがタッチ・センシティブ・ディスプレイ・デバイス(touch sensitive display device)のタッチ・センサを含み、時空間入力データが、エンティティのタッチ入力の特性を示すセンサ・データを含む、方法を提供する。例えば、例示的な実施形態のメカニズムは、スマートフォンおよびタブレット・コンピュータなどの多くの現代の電子機器上のタッチ・センシティブ・ディスプレイ・デバイスと併せて実装され得る。
【0015】
好ましくは、本発明は、方法であって、コンピュータ可読プログラムを有するコンピュータ使用可能または可読媒体を含むコンピュータ・プログラム製品が提供される、方法を提供する。コンピュータ可読プログラムは、コンピューティング・デバイス上で実行される場合、コンピューティング・デバイスに、例示的な実施形態の方法に関して上に略述された動作のさまざまなものおよびこれらの組み合わせを実行させる。
【0016】
本発明の別の態様によると、システム/装置が提供される。システム/装置は、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合されたメモリとを含んでよい。メモリは、1つまたは複数のプロセッサによって実行される場合、1つまたは複数のプロセッサに、例示的な実施形態の方法に関して上に略述された動作のさまざまなものおよびこれらの組み合わせを実行させる命令を含み得る。
【0017】
本発明のこれらのならびに他の特徴および利点は、本発明の例示の実施形態の以下の詳細な説明において記載されるものになり、または該詳細な説明を考慮すると当業者には明らかとなるであろう。
【0018】
本発明、および、この使用の好ましい態様、ならびにさらなる目的および利点は、添付の図面と併せて読む場合に例示的な実施形態の以下の詳細な説明を参照することによって最も良く理解されるであろう。
【図面の簡単な説明】
【0019】
【
図1】(A)~(D)は、1つの例示的な実施形態による、ユーザ認証に使用され得る時空間特徴の例示のプロットを示す図である。
【
図1E】1つの例示的な実施形態による、ユーザ認証に使用され得る時間的特徴の例示のプロットを示す図である。
【
図2】1つの例示的な実施形態による、行動バイオメトリクス深層学習(BBDL)パイプラインの例示のブロック図である。
【
図3】1つの例示的な実施形態による、BBDLパイプラインをトレーニングするためのトレーニング・プロセスの高水準表現を示す例示のブロック図である。
【
図4】1つの例示的な実施形態による、BBDLパイプラインのランタイム動作の高水準表現を示す例示のブロック図である。
【
図5】1つの例示的な実施形態による、BBDLパイプラインの例示の動作を略述したフローチャートである。
【
図6】例示的な実施形態の態様が実装され得る分散データ処理システムの例示の図式である。
【
図7】例示的な実施形態の態様が実装され得るコンピューティング・デバイスの例示のブロック図である。
【発明を実施するための形態】
【0020】
行動バイオメトリクスは、身体的バイオメトリクスおよび知識ベースのメカニズム、例えば、パスワード・ベースのメカニズム、秘密の質問ベースのメカニズム、認証メカニズムによって通常は用いられるワンタイム認証とは対照的に連続認証を可能にする認証パラダイムである。例えば、スマートフォンまたはタブレット・デバイスなどにおいて、異なるユーザは、行動バイオメトリクス・メカニズムによって監視可能である異なるスワイプ速度およびピンチ角度などを有し得る。認証手法として行動バイオメトリクスを使用するためのメカニズムが存在し得、これは、可変長の入力特徴に対処することができないこれらの既存のアプローチの制限によるが、これらの既存のメカニズムは、時間次元を排除する固定次元を有する事前に定義された特徴のみを考慮に入れている。
【0021】
すなわち、既存のメカニズムは、予測または分類を行うようにコンピュータ・モデルをトレーニングするために固定次元を必要とするが、行動バイオメトリクスの時間的側面は可変である。よって、生の入力データの時間的側面は、生の入力データに関する前処理または事前計算を通してコンピュータ・モデルによって処理される入力データから減らされることで、特徴エンジニアリング(feature engineering)によって具体的にエンティティを互いに区別するように定義される高水準の特徴を生成しなければならず、例えば、スワイプ角度を計算しこれをある閾値に応じたブール値として表すことを伴うスワイプ角度特徴が定義され得、これはさらにまた、そのスワイプにおける角度回転または円形回転を、例えば、スワイプが角スワイプである場合は1または角度スワイプでない場合は0、円形回転である場合は1または円形回転でない場合は0で、スワイプ角度が表すかどうかを判断するために使用可能である。そのような特徴は、ユーザがスワイプ・ジェスチャを行う時に使用する回転タイプによってユーザを区別することが可能であってよいが、該特徴自体は、いずれの時間的側面も特定の空間的情報も含有しない。
【0022】
これが高水準のエンティティを区別する特徴を含む前処理データである。該データは、生の入力データを、取り除かれた、すなわち、既存の行動バイオメトリクス・コンピュータ・モデルによって処理された生の入力データの可変のタイミングの側面または空間的側面あるいはその両方を持つ事前に定義されたエンティティを区別する特徴を有する固定次元入力に変換することによって生成される。固定次元を有するそのような高水準の特徴は、固定次元入力を必要とする既存の行動バイオメトリクス・コンピュータ・モデルの制限により必要とされる。よって、既存のメカニズムは、それらが行動バイオメトリクスに関する時間次元の変動性を考慮に入れることができないため、生の時空間入力データに基づいてこれらの行動バイオメトリクス分類動作を行わない。
【0023】
一例として、タッチ・センシティブ・スクリーンなどに対するユーザのストロークまたはスワイプなどについてのセンサ・デバイスからの生の入力データは、時間tにおける座標(x、y)でのストローク/スワイプの感知された特性の値を示す時空間関数F(t、x、y)=v(または代替的には、F(t)=(x、y、v))とすることができ、ここで、xはスクリーンの水平座標であり、yはスクリーンの垂直座標であり、tは時点であり、vは、ストロークまたはスワイプの感知特性、例えば、圧力などの値である。既存のメカニズムはそのような可変入力を処理することができないが、これは、固定次元ベースのコンピュータ・モデルが固定次元特徴入力データを使用してトレーニングされなければならないからである。その代わりに、入力データは、入力データの前処理によって実施される特徴抽出変換を通して特徴を差別化する固定次元ユーザに変えなければならず、これには、例えば、入力の時間次元を取り除くように、スクリーンが座標(x、y)でタッチされたか否かに応じてF(x、y)=1または0であるように入力を前処理することによって、F(t、x、y)=vをブール入力値に変えるなどのブール値がある。すなわち、特徴エンジニアリングに基づいて行われる特徴抽出を通して、特徴抽出は、F1(セッション)=\max|F(t、x、y)-avg(F(t、x、y))|-\min|F(t、x、y)-avg(F(t、x、y))|を生成してよく、これによって、次元tまたはxおよびyあるいはその組み合わせのうちの1つまたは複数が効率的に排除される。max(F-avg(F))は、セッションの平均と比較してスワイプをどれくらい早くすることができるかなど、セッションの間のある特定の特徴はどれくらい大きいものとすることができるかを伝え、ここで、大きな数字は偏差が大きいことを意味する。この方程式は、絶対値の代わりに2ノルムを使用してさらに明確にされ得、例えば、F1(セッション)=\max||F(t、x、y)avg(F(t、x、y))||_2-\min||F(t、x、y)-avg(F(t、x、y))||_2であり、ここで「||_2」は2ノルムを示す。
【0024】
そのような前処理された入力は、入力の高水準の特徴、例えば、「このユーザは鋭角を成す」、「このユーザは迅速に/ゆっくりとズーム・インする」、「このユーザは交互に/繰り返しズーム・インおよびアウトする」などを表す固定次元値を生成し、これはさらにまた、時空間入力データが既に入力から取り除かれている場合に高水準の特徴に基づいて分類または予測を行うコンピュータ・モデルに送り込まれる。
【0025】
例示的な実施形態は、生の時空間入力データの時空間特性のパターンを学習するように動作する、機械学習画像解析コンピュータ・モデル、特徴分類機械学習モデル、および特徴埋め込みメカニズムなどを含む行動バイオメトリクス深層学習(BBDL)コンピュータ・モデル・パイプライン(以降、BBDLパイプラインと称される)を提供し、これは、既存のメカニズムにあるように、時間的特性または空間的特性あるいはその両方を取り除いて高水準の特徴を生成する必要はない。これらの時空間特性の学習済みパターンは、特定のユーザの行動バイオメトリクスを示しており、かつ、時空間特徴の機械学習済みパターンに基づいてユーザ・プロファイルを生成し、これはさらにまた、後続のユーザ入力の時空間特徴によって表される行動バイオメトリクスに関する後続のユーザ入力を認証するために使用可能である。BBDLパイプラインへの生の時空間入力が、それ自体では固有のエンティティを区別する特徴が存在するように設計されない生の入力データであり、すなわち、生の入力データが、特徴エンジニアリングに基づいて特徴抽出を行うように前処理されており、かつ生の時間的および空間的情報を依然含む前処理済み入力データではないことは認識されるべきである。すなわち、コンピュータ・モデルが、固有のエンティティを差別化しているように具体的にエンジニアリングされた入力がエンジニアリングされた固有の特徴を基に動作しなければならない既存のメカニズムとは違って、BBDLパイプラインへの入力は、特定の実施形態に対してどんな生の入力データが生じても、特定のスライド時間枠にわたって1つまたは複数のセンサ・デバイスからの生の前処理されていない時空間入力データを含む。
【0026】
生の入力データが収集されかつBBDLパイプラインに入力される時間枠は、それぞれの個々の時間間隔が重複または非重複であり得るスライドまたは移動時間枠である。例えば、時間枠が時点T1、…、T12を含む場合、個々の時間間隔(またはタイム・スライス)は、重複する時間間隔が特定の実装に所望されているか否かに応じて、(T1、T2)、(T2、T3)、…(T11、T12)または(T1、T3)、(T2、T4)、(T3、T5)、…(T10、T12)とすることができる。(例示的な目的で人間のユーザであると想定されるが、そのように限定はされない)エンティティからの観測可能な(1つまたは複数のセンサによって検出可能な)入力イベントは、この例では、T1~T12にいつでも生じる可能性がある。すなわち、T1=12:00:10(時:分:秒)である場合、(実際の経過時間に基づいて)T2=12:00:15であり、スワイプ・イベントは、第1の時間間隔(T1、T2)と関連付けられ得る12:00:12に発生する可能性がある。時間間隔を重複させることによって、情報を失う可能性は最小化され、例えば、12:00:11および12:00:13での2つのイベントを重複させることなく、同じ時間間隔に入ることが考えられるが、12:00:14および12:00:16での2つのイベントは、同じ時間差にもかかわらず2つの異なる時間間隔に入ることが考えられる。
【0027】
よって、BBDLパイプラインは、エンティティの行動の特定の高水準の特徴と直接相関関係がない生の時空間入力データを基に動作する。その結果、BBDLパイプラインのメカニズムは、以降により詳細に説明されるように、2つのスワイプ・セッションを埋め込みかつその埋め込みの類似点を比較することなど、非常に小さな例のセットのみによって、新しいユーザなどの新しい分類について動的にトレーニングされ得る。これに反して、既存のメカニズムは、コンピュータ・モデルが固定の分類セットに対してトレーニングされる、または別個のトレーニング済みのコンピュータ・モデルが異なる分類に対してトレーニングされることを必要とし、新しい分類が所望される場合、新しい分類によるコンピュータ・モデル全体を再トレーニングするまたは新しいコンピュータ・モデルを生成しなければならない。
【0028】
BBDLパイプラインは、1つの例示的な実施形態によると、コンピュータ・ロジックの複数の段階を含み、それぞれの段階は、時点t、t+1、t+2、最高t+nまでを含む特定の対応する時間間隔での時空間特徴、時間的特徴、および固定/カテゴリ特徴を評価する機械学習モデル(または、BBDLパイプライン全体をコンピュータ「モデル」であると見なす場合は「下位モデル」)のセットを実装するロジックを含み、ここで、nは、時空間特徴パターンが特定のユーザについての行動バイオメトリクスを判断するために評価される時間枠のサイズを示す。よって、BBDLパイプラインは、nの段階を有することになり、それぞれの段階は、コンピューティング・デバイスと関連付けられたユーザ入力デバイスの1つまたは複数のセンサによって生成され得るまたはコンピューティング・デバイス自体によって生成され得るあるいはその両方であり得るように、ユーザがインターフェース接続しているコンピューティング・デバイスへのユーザの入力の時空間特徴、時間的特徴、および固定/カテゴリ特徴を評価する複数の機械学習(ML)コンピュータ・モデル(またはBBDLパイプライン・モデル全体の「下位モデル」)を有し、例えば、複数のセンサは、スマートフォン、タブレット・コンピュータ、タッチスクリーン・デバイス、コンピュータ・マウス、トラックボール入力デバイス、画像取り込みデバイス、バイオメトリクス・リーダ・デバイス、またはバイオメトリクスもしくは行動バイオメトリクス入力データの任意の他のソースなどの1つまたは複数のユーザ操作デバイスと関連して提供され得る。
【0029】
例えば、いくつかの例示的な実施形態では、これらのセンサは、タッチ・センシティブ・スクリーン、デバイス自体と関連付けられた加速度計、環境光センサ、および入力がF(t、x、y)に関して表現され得るカメラ・デバイスなどのタッチ・センサを含み得る。そのようなセンサによって感知されかつBBDLパイプラインへの入力のためのデータとして提供される時空間特徴の例には、限定はされないが、特定のタッチスクリーン寸法に対する座標データを含むタッチスクリーン上の指スワイプ・データ、例えば、スワイプ・サイズ、スワイプ速度、スワイプ加速、スワイプ方向など、タッチスクリーン・デバイス上のタッチ圧に関する圧力情報、マウスオーバ情報、撮像デバイス(カメラなど)、タッチスクリーン、または任意の他のジェスチャ情報源からの検出されたジェスチャ情報、発話入力と関連付けられたボイスプリント情報、およびユーザによる特定のデバイスの動きを表す加速情報などが含まれる。1つの例示的な実施形態では、使用される時空間特徴は、ブール型のタッチ(Boolean touch)(以降の説明を参照)、タッチ・サイズ(例えば、F(t、x、y)の値が1である場合の点(x、y)の周りの領域はどれくらいの大きさか)、タッチ圧、(速度が{(t1、(x2-x1)/(t2-t1)、(y2-y1)/(t2-t1)、…}であり、かつF(t、x、y)およびF’(t、x、y)がこれらの値から構築される場合の点列{(t1、x1、y1)、(t2、x2、y2)、…}から判断される)(x、y)タッチ速度、(x、y)タッチ加速、スカラ型のタッチ速度、およびスカラ型のタッチ加速を含む。本明細書における例ではデカルト座標が使用されているが、例示的な実施形態がそれらに限定されず、本発明の範囲から逸脱することなく任意の他の座標系が利用されてよく、例えば、極座標系において同様の情報(タッチ・サイズ、速度、加速など)を表すために、F(t、x、y)がF(t、phi、r)に変換されてよいことは、認識されるべきである。
【0030】
一般に、時空間特徴は、デバイスの入力範囲、例えば、タッチスクリーン・デバイス、またはコンピュータ・マウス、トラックボール、もしくはグラフィカル・ユーザ・インターフェースなどへのユーザ入力を表す他のユーザ入力デバイスの動きに対するデバイスのスクリーン寸法またはグラフィカル・ユーザ・インターフェース寸法に対して変化し、かつ時間と共に変化する特徴の集合である。例えば、ブール時空間タッチ特徴は、デバイス・スクリーンのどの部分がある特定の時間ステップでタッチされたかを表す特徴の集合である。正式には、これは、$f_{Boolean touch}(x、y、t)$として表され得、ここで、デバイス・スクリーンにおいて時間ステップtでデバイス・スクリーン上の(x、y)をタッチする場合、値は1であり、その他の場合は0である。よって、時間ステップtでの(x、y)のそれぞれの値に対して、時空間特徴に対する値は1または0のどちらかであり、それによって、ユーザ入力のマトリックスまたはビットマップ表現が生成される。関数F(t、x、y)=vの場合、vに対する値はブール値に限定されない場合があり、その代わりに、感知された入力に応じてvに対する値の事前に定義された範囲内にあり得、例えば、vはmax(v)~min(v)(例えば、1~-1)であり得る。
【0031】
例示的な実施形態による時空間特徴の使用は、デバイスの入力範囲に対する場所を無視し、かつユーザ・アクションのジェスチャが時間と共に変化する以前のジェスチャ・ベースの認証メカニズムと大幅に異なっている(以前のジェスチャ・ベースの認証メカニズムは、先に論述したように、空間的特性または時間的特性あるいはその両方を排除する高水準の特徴のみに関係している)。以前のジェスチャ・ベースの認証メカニズムは、固定された一連のジェスチャを記憶し、かつ同じまたは異なる一連のジェスチャが入力されていることに基づいて認証することで、入力が全く同じ一連のジェスチャを有する場合、ユーザは認証され、そうでない場合、ユーザは認証されない。それ故に、記憶された固定パターンを知っている人は誰でも認証に成功することができる。他方では、例示的な実施形態は、生の入力データを使用し、かつ固定パターンと関連付けられていないユーザ(エンティティ)行動の細かい違いを基に動作する。すなわち、ユーザ行動の細かい違いは、ユーザがユーザのさまざまな入力で使用する特定のユーザの時空間的特色、例えば、曲線の描写速度、ならびにズーム角度および傾向などの時空間ユーザ入力特色の表現を提供する。これらの特色は、時間的情報に関してキャプチャされ、かつ入力の固定パターンを知っているいずれのユーザによっても複製され得る非時空間特徴の固定パターンではなく、特定のユーザに独自に識別可能である。
【0032】
例示的な実施形態では、ユーザ入力と関連付けられた時空間情報または非時空間情報が集約可能である特定のデバイスと関連付けられた入力範囲に依存しない時間的特徴が考慮される。例えば、加速度計の変化は、デバイスの特定の入力範囲、例えば、ユーザが入力を提供するデバイスのタッチスクリーンの寸法に依存しないが、単に以前の加速の測定値に比例する。すなわち、加速の変更は、特定のデバイスの入力範囲にかかわらず同じになる。正式には、$f_{accelerometer-x}(t)$は、時間ステップtにおけるx軸に沿った加速度計の変化である。そのような時間的特徴は、限定はされないが、ユークリッド座標/極座標における3次元加速計の値、加速の一次導関数、加速の二次導関数、時空間特徴の集約された値、および、例えば、グラフィカル・ユーザ・インターフェースまたはタッチスクリーンあるいはその両方のコンポーネントがタッチされるコンテキスト埋め込みを含む。
【0033】
また、時空間特徴入力データおよび時間的特徴入力データに加えて、例示的な実施形態は、さらに、バイオメトリクス・データ、行動バイオメトリクス・データ、またはユーザの入力と関連付けられた他のデータに依存しない情報源からデータを得る。例えば、他の特徴は、ユーザ操作デバイス自体の識別情報、例えば、製造およびモデル番号(例えば、アップルのiPhone(R)X、サムソンのGalaxy(R)S20など)、デバイスの構成(例えば、センサのタイプおよびそれらの特性など)、デバイスの寸法または操作の限度(例えば、スクリーンのサイズ、タッチ・パネルのサイズ、グラフィカル・ユーザ・インターフェースのサイズなど)、ならびに、入力を提供するためにエンティティ/ユーザがインターフェース接続する特定のアプリケーションなどのそのようなユーザ入力固有データに依存しない。これらの特徴は時間と共に変化しない特徴であり、すなわち、これらは固定された特徴であるが、それにもかかわらず、ユーザの識別情報を認証するために時空間特徴および時間的特徴と組み合わせて有用である。使用され得る固定された特徴のさらなる例には、測定可能な値の範囲を示す構成情報が含まれ、例えば、異なるデバイスは、異なる範囲の値または異なるユニットなどを使用して入力を測定してよい。
【0034】
これらの特徴は、デバイス自体の1つまたは複数のベクトル表現として埋め込まれてよい。カテゴリ別のいずれの特徴も埋め込み可能であり、埋め込まれたベクトルは、段階のネットワークの残りまたはBBDLパイプライン全体あるいはその両方に入力として提供される。このように埋め込まれ得る他の特徴の例には、限定はされないが、音量、スピーカフォンのオン/オフ、カメラの状態、カメラのフラッシュの状態、アクティブな/タッチされたアプリケーション、タッチされたユーザ・インターフェース要素、デバイス名/タイプ、オペレーティング・システムのバージョンなどが含まれる。
【0035】
特徴データ、例えば、時空間特徴および時間的特徴のソースは、複数の時点または時間間隔で特徴データを継続的にまたは周期的に、収集または生成あるいはその両方を行ってよく、その特徴データを、生の特徴データをBBDLパイプラインの段階のさまざまな機械学習モデルによって使用可能な形式、例えば、時空間特徴に対する時間×2D特徴マトリックスまたはマップ、時間的特徴に対する時間×1Dマトリックスまたはマップに変換するように動作するプリプロセッサに提供してよい。さらに、任意の固定デバイス特徴またはカテゴリ・タイプ特徴について、これらの特徴の埋め込みはプリプロセッサまたは他の埋め込みコンポーネントによって行われてよく、埋め込まれたベクトル表現は、以降に論述されるように、下流処理のためにニューラル・ネットワークの出力と共に提供されてよい。埋め込みは、入力された値のベクトル表現を生成するプロセスである。ニューラル・ネットワーク・メカニズムにおいて、埋め込みは、離散変数の低次元の学習済みの連続的なベクトル表現を生成するためのプロセスである。ベクトル表現に入力を埋め込むプロセスは、一般的に、当技術分野では既知である。
【0036】
いくつかの例示的な実施形態では、BBDLパイプラインのそれぞれの段階は、さまざまなソースから受信され、かつプリプロセッサによって時間×2D特徴マトリックスまたはマップ表現へと前処理された時空間特徴データの画像解析またはコンピュータ・バージョン・ベースの解析を行うように機械学習プロセスを通してトレーニングされる1つまたは複数の第1のMLコンピュータ・モデル(または「下位モデル」)を含む。1つまたは複数の第1のMLコンピュータ・モデルは、複数の異なる時空間特徴の分類またはカテゴリ化を行うようにトレーニングされる単一のMLコンピュータ・モデルを含んでよく、単一の時空間特徴の分類またはカテゴリ化を行うようにトレーニングされる単一のMLコンピュータ・モデルであってよく、または、それぞれが、異なる時空間特徴に関する分類またはカテゴリ化を行うようにトレーニングされる複数のMLコンピュータ・モデルの組み合わせであってよい。時空間特徴データを基に動作する複数のMLコンピュータ・モデルの場合、それぞれのMLコンピュータ・モデルの結果は、以降に説明されるように、BBDLパイプラインの次の段階への出力を生成する別のニューラル・ネットワークまたは機械学習モデルに最終ベクトル出力表現を出力するマージ・ロジックを通して、最終ベクトル出力表現に集約されてよい。
【0037】
BBDLパイプラインのそれぞれの段階のMLコンピュータ・モデルのトレーニングが全体的なBBDLパイプラインのトレーニング動作全体の一部として行われ得るため、それぞれの段階のそれぞれの個々のモデル(または「下位モデル」)が事前トレーニングされる必要はないが、これがいくつかの例示的な実施形態において行われ得ることは、認識されるべきである。よって、BBDLパイプライン(または「モデル」)は、全体的なBBDLパイプラインのトレーニング動作全体として、それぞれの段階のコンピュータ・モデル(または「下位モデル」)をトレーニングすることを含めてトレーニングされ得る。いくつかの実施形態では、段階のMLコンピュータ・モデルまたは「下位モデル」の1つまたは複数が、所望される場合に別個の機械学習ベースのトレーニング動作の一部として事前トレーニングまたはトレーニングが行われてよく、個々のMLコンピュータ・モデルまたは「下位モデル」をトレーニングするためのトレーニング・データが利用可能であることは、認識されるべきである。説明を容易にするために、BBDLパイプラインのそれぞれの段階におけるMLコンピュータ・モデルは、以降、「下位モデル」ではなくMLコンピュータ・モデルと称されるものとし、BBDLパイプラインは、BBDLパイプラインMLコンピュータ・モデルではなくBBDLパイプラインと称されるものとする。しかしながら、BBDLパイプラインが、それぞれの段階がBBDLパイプラインMLコンピュータ・モデル全体の1つまたは複数の「下位モデル」を含むさまざまな段階を有するコンピュータ・モデル全体であることは、認識されるべきである。
【0038】
時空間特徴データは、画像解析、またはコンピュータ・ビジョン・ニューラル・ネットワーク、または他の画像/ビジョン解析機械学習モデルによって処理され得る画像を基本的に提供して、入力された画像のカテゴリ化を表す出力ベクトルを生成する、時間×2D特徴マトリックスまたはマップ表現として表されてよい。BBDLパイプライン・コンピュータ・モデル全体の段階のそれぞれにおける画像/ビジョン解析機械学習モデルまたは「下位モデル」の例には、AllConvNet、ResNet、Inception、およびXceptionが含まれる。例示的な実施形態の画像/ビジョン解析機械学習モデルは、具体的には、固有の行動バイオメトリクス・カテゴリに関する時空間マトリックスまたはマップ表現を分類またはカテゴリ化するために機械学習プロセスを通してトレーニングされる。さまざまな時空間特徴についてのさまざまな時間×2d特徴マトリックスまたはマップに対するさまざまなカテゴリ化は、特定の時点または時間間隔に対する入力において存在する時空間特徴の分類のベクトル表現を生成するために組み合わせられてよい。
【0039】
本発明のいくつかの例示的な実施形態では、画像/ビジョン解析機械学習モデルの最終的なロジット層は使用されない場合がある。すなわち、ニューラル・ネットワークでは、層は、さらにまた、出力クラス数と同じ次元によってベクトルを生じさせるように、緻密層によって処理される特徴を生じさせる。これはロジット層と称され、最終的な活性化は、ロジック層、例えば、ソフトマックス活性化によって生成された出力に加えて施される。これらの最終的な2つの層、すなわち、ロジットおよび活性化層は、いくつかの例示的な実施形態では、例示的な実施形態の画像/ビジョン解析において使用されないため、ロジット層への入力は、BBDLパイプラインにおける次の段階に対する画像の内部表現として使用される。
【0040】
時間的特徴は、時間的特徴のカテゴリ化を表すベクトル出力を生成する1つまたは複数の第2のニューラル・ネットワークまたはトレーニング済みの機械学習コンピュータ・モデルに入力されてよい時間×1Dマトリックスまたはマップとして表されてよい。いくつかの例示的な実施形態では、1つまたは複数の第2のニューラル・ネットワークまたはトレーニング済みの機械学習コンピュータ・モデルは、1つまたは複数のトレーニング済みの完全接続ニューラル・ネットワークまたは他の緻密層のニューラル・ネットワークであり得る。1つまたは複数の第2のニューラル・ネットワークまたはトレーニング済みの機械学習コンピュータ・モデルは、時間間隔での時間的特徴の入力の分類の1つまたは複数のベクトル表現を出力し、これは、時空間特徴を処理する機械学習モデル、および、固定またはカテゴリ別の、すなわち、非時間依存の特徴に対する他の埋め込まれた特徴と組み合わせられて、BBDLパイプラインの次の段階への出力を生成するニューラル・ネットワークまたは機械学習コンピュータ・モデル(以降、主段階機械学習(ML)モデルと称される)に入力される最終ベクトル出力を生成し得る。
【0041】
それぞれの段階のモデルの出力、ひいては、それぞれの主段階MLモデルが、BBDLパイプライン全体をトレーニングする一部として学習される内部表現であることは、認識されるべきである。すなわち、BBDLパイプラインは2つの入力セッションが同じユーザからのものか否かを分類しようとするため、それぞれの段階のモデルは、ユーザの入力画像を最も良く表すことができる特徴を抽出しようとすることになる。その段階のコンピュータ・モデルのこれらの出力が内部表現であるため、これらの出力は、ある特定の特徴を生成するように明示的に/別個にトレーニングされず、むしろ、BBDLパイプライン全体の全体的な機械学習ベースのトレーニングの一部としてトレーニングされる。それぞれの主段階MLモデルの出力の次元は、エンティティ(ユーザ)のある程度の時空間的特色である。例えば、次元1が、(単一のズーム・インとは対照的に)スマートフォン画面上の何かの詳細をチェックするために、いくつかの連続的で迅速なズーム・インおよびアウトを行うユーザの時空間的特色を表すのに対し、次元2が単一のズーム・インの特色を表すと仮定する。両方の次元では、1は、この入力の実行者がその特色を有することを意味し、0は該実行者がそれを有さないことを意味する。BBDLパイプラインは、時間枠上での主段階MLモデルの検出された特色を蓄積する。例えば、第1の主段階MLモデルはズーム・インを検出し得、第2の主段階のMLモデルはズーム・アウトを検出し得、第3の主段階MLモデルは別のズーム・インを検出し得、第4の主段階MLモデルはズーム・アウトを検出し得る。BBDLパイプラインのさまざまな段階によるこれらの検出は時間枠上で蓄積されるため、BBDLパイプラインは、次元1が1であるものとする(単一のズーム・イン特色ではない)と判断する。
【0042】
1つの例示的な実施形態では、BBDLパイプラインの第1の段階についての主段階MLモデルは、入力として、それぞれの時間ステップにおいて提供されないデバイス情報または他の固定もしくはカテゴリ情報あるいはその組み合わせの埋め込みを受信する。BBDLパイプラインの後続の段階では、以前の段階の主段階MLモデルは次の段階の主段階MLモデルに結合され、かつ、次の段階の主段階MLモデルへの入力としてその出力を提供する。1つの例示的な実施形態では、BBDLパイプラインの段階のそれぞれの主段階MLモデルは、リカレント・ニューラル・ネットワーク(RNN)、例えば、長・短期記憶(LSTM)RNNであってよい。
【0043】
BBDLパイプラインに沿ったそれぞれの段階では、対応する段階のMLモデルは、対応する時点または時間間隔での特定の時空間特徴、時間的特徴、および他の固定/カテゴリ特徴に対するもの以外は上記と同様の機能を実行する。その段階のMLモデルの結果として生じる出力ベクトルは、次の段階の主段階MLモデルに入力されるベクトル出力を生成するために、その段階の主段階MLモデルによってその後処理される特徴入力として、現在の段階のMLモデルにおいて、以前の段階の主段階MLモデルからの入力と組み合わせられる。この処理は、BBDLパイプラインの最終段階まで継続し、これは次いで、時空間入力、時間的入力、および固定/カテゴリ入力に関する時間枠上でのユーザ入力を表す出力ベクトルKを生成する。「K」の値は、ユーザ入力の特色を表す出力ベクトルに含まれる値の数を表す。この出力ベクトルKは、特定のユーザの行動バイオメトリクス特徴に独自のものであるため、ユーザを認証するために使用可能である。
【0044】
1つの例示的な実施形態では、BBDLパイプラインの段階の機械学習モデルのトレーニングは、任意の適した機械学習プロセス、例えば、教師付きまたは教師なし機械学習プロセスを使用して行われてよい。BBDLパイプラインはさまざまな段階の複数の機械学習モデルを含むが、BBDLパイプライン機械学習トレーニングがBBDLパイプライン全体に関して行われることは認識されるべきである。
【0045】
一般に、機械学習は、(ネットワーク統計データおよび業績評価指標などの)入力された経験的データとして採用する技術の設計および開発に関係しており、これらのデータにおける複雑なパターンを認識する。機械学習技術の中の1つのパターンは、入力されたデータがあると考えると、Mに関連付けられた費用関数を最小化するようにパラメータが最適化されている、基となるモデルMの使用である。例えば、二項分類の文脈では、モデルMは、M=a*x+b*y+cのようにデータを2つのクラス(例えば、ラベル)に分離する直線であってよく、費用関数は誤分類点の数であることが考えられる。学習プロセスはさらにまた、誤分類点の数が最小になるようにパラメータa、b、cを調節することによって動作する。この最適化フェーズ(または学習フェーズ)後、モデルMは新しいデータ点を分類するために使用可能である。当然ながら、これは二項分類についての簡易な例であり、2つ以上のクラスへの分類を行う他のモデルは他の同様の技術を使用することになる。
【0046】
例示的な実施形態によって、機械学習プロセスは、一般的に、ユーザ入力の、時空間特徴、時間的特徴、および固定/カテゴリ特徴に関して特定のユーザの行動バイオメトリクスをどのように表すかを学習することを伴う。機械学習プロセスは、一般に、機械学習トレーニングのそれぞれのエポックのそれぞれの繰り返しでは、特定の周期または時間枠にわたるユーザ入力を表すユーザ・セッション情報の対を得ることを伴う。ユーザ・セッション情報の対は、対象ユーザに対応するセッション情報の第1のセットを伴う。この対における第2のセッション情報は、同じユーザまたは異なるユーザからのものであり得る。対応するラベル情報は、ユーザが同じユーザまたは異なるユーザであるかどうかを示す第2のセッション情報について得られる。第1のセッション情報および第2のセッション情報はそれぞれ、BBDLパイプラインを通して別個に処理されて、対応するK次元出力ベクトルを生成する。第1のセッション情報についてのK次元出力ベクトルは、セッション情報が、BBDLパイプラインによって、同じユーザまたは異なるユーザであるかで分類されるかどうかを判断するために、すなわち、両方のセッションについてのセッション情報が、同じユーザを表すほど十分類似しているか否かが判断される場合に、第2のセッション情報についてのK次元出力ベクトルと比較される。
【0047】
結果として生じたこの判断は、次いで、第2のセッション情報が実際に同じユーザまたは異なるユーザからのものであるかどうかを判断するために、第2のセッション情報についてのラベルと比較され得る。類似の結果が第2のセッション情報のラベルに基づいて不正確である場合、機械学習モデルの動作パラメータは、BBDLモデルによって生成されたKの値における誤差を低減するように調節される。すなわち、類似の比較が、2つのセッションに対するユーザが同じユーザであることを示し、かつこれらが第2のセッション情報のラベルによって示されるものと同じではない場合、機械学習モデルの動作パラメータは、生成されたKの値が異なるユーザに対して異なるように調節される。類似の比較が、2つのセッションに対するユーザが同じではないことを示し、かつこれらが第2のセッション情報のラベルによって示されるのと同じである場合、機械学習モデルの動作パラメータは、生成されたKの値が同じユーザによる異なるセッションについてより類似するように調節される。類似の比較が2つのセッションに対するユーザが同じであることを示し、かつこれらが第2のセッション情報のラベルにおいて示されるのと同じである場合、調節は必要ではない。このプロセスが同じユーザまたは異なるユーザあるいはその両方についての異なる第2のセッション情報に対して繰り返される、例えば、BBDLパイプラインの機械学習モデルをトレーニングするためのトレーニング・データにおいて提供されてよいことは、認識されるべきである。
【0048】
BBDLパイプラインは、トレーニングされると、固有のデバイスに対して認証されたユーザのユーザ入力を表すBBDLパイプラインの1つまたは複数のKの値の出力を格納する認定ユーザ・プロファイルを生成するために、対象ユーザの1つまたは複数のユーザ・セッションに対して実行されてよい。例えば、ユーザのセッション履歴情報は複数のユーザ・セッションに対して得られてよく、これらのそれぞれは、BBDLパイプラインによって処理されて、ユーザ・プロファイルに格納されたそれぞれのセッションについてのK次元出力ベクトルを生成し得る。ユーザ・セッションのこのグループ、すなわち、ユーザ・セッション履歴は、継続的に更新されたユーザ・セッション履歴のセットであり得、例えば、最後の10のセッションが維持されてよく、対応するユーザ・プロファイルはユーザによる新しいセッションが生じると動的に更新され得る。すなわち、それぞれの後続のユーザ・セッションについて、BBDLパイプラインは、対応するK次元出力ベクトルを生成するためにユーザ・セッションからの入力データに対して実行し、このK次元出力ベクトルは次いで、ユーザ・プロファイルにおける最も古いK次元出力ベクトル・エントリと置き換えるために使用される。よって、動的なユーザ・プロファイルは認定ユーザのために維持される。
【0049】
新しいセッションについての新しいユーザ入力情報が実際には認定ユーザからのものであるか否かは、新しいユーザ入力情報についてのK次元出力ベクトルが認定ユーザのプロファイルにおいて格納されたK次元出力ベクトル情報と十分類似しているかどうかを判断することによって、BBDLパイプラインのトレーニングに関して以前に説明したのと同様のやり方で判断されてよい。この場合、「十分に類似している」ことは、許容できる差分量を示す所定の閾値に対して判断されてよいが、2つのK次元出力ベクトルが同じユーザ(エンティティ)を代表するものであることを依然示している。ユーザのプロファイルと新しいユーザ入力情報についてのK次元出力ベクトルとの比較が、十分に類似していないとの判断になったことに応じて、ユーザは、例示的な実施形態の行動バイオメトリクス認証メカニズムによって保護された、コンピューティング・リソース、物理的施設、または任意の他のリソースへのアクセスが拒否される。さらに、ランタイム動作の間、新しいセッションについての新しいユーザ情報が認定ユーザからのものであるとの判断は、保護されたリソースへのアクセスが許可されることになることに加えて、所定数のK次元出力ベクトル・エントリがユーザ・プロファイルに存在する場合にユーザ・プロファイルにおける最も古いK次元出力ベクトル・エントリを置き換えることなどによって、更新エンジンに、ユーザ・プロファイルをこの新しいセッションについてのK次元出力ベクトルで更新させてよい。
【0050】
よって、例示的な実施形態は、行動バイオメトリクスについての時空間深層学習メカニズムを実装するためのメカニズムを提供する。例示的な実施形態は、それぞれの段階が時空間特徴、時間的特徴、および固定/カテゴリ特徴に関して対応する時点または時間間隔で入力データを分類またはカテゴリ化する機械学習モデルのセットを含む段階のパイプラインを提供する。いくつかの例示的な実施形態では、時空間特徴は画像データとしてレンダリングされた後、トレーニング済みの画像解析またはコンピュータ・ビジョン解析機械学習モデルによって処理され、時間的特徴は、完全接続されたまたは緻密層ベースのあるいはその両方の機械学習モデルを通して処理される。パイプラインの段階は、それらの対応する時点または時間間隔でのユーザ入力データのみならず、パイプラインにおける以前の段階からの出力を基に動作して、パイプラインによって処理される時間枠または期間にわたるユーザ入力の行動バイオメトリクスを表すK次元出力ベクトルを最終的に生成する。これは、ユーザ・プロファイルを生成するために使用可能であり、該ユーザ・プロファイルは、ユーザを認証するために後続のユーザ・セッションで使用可能である。
【0051】
例示的な実施形態のさまざまな態様、および例示的な実施形態によって行われる改善されたコンピュータ動作について続けて論じる前に、この説明全体を通して、「メカニズム」という用語がさまざまな動作および機能などを実行する本発明の要素に言及するために使用されることは、まず認識されるべきである。「メカニズム」は、該用語が本明細書で使用される際、装置、手順、またはコンピュータ・プログラム製品の形態における例示的な実施形態の機能または態様の実装形態であり得る。手順の場合、手順は、1つまたは複数のデバイス、装置、コンピュータ、またはデータ処理システムなどによって実施される。コンピュータ・プログラム製品の場合、コンピュータ・プログラム製品においてまたはコンピュータ・プログラム製品上で具現化されたコンピュータ・コードまたは命令によって表されるロジックは、固有の「メカニズム」と関連付けられた機能性を実装するまたは動作を行うために、1つまたは複数のハードウェア・デバイスによって実行される。よって、本明細書に説明されるメカニズムは、専用ハードウェアとして実装されてもよく、ハードウェア上で実行するソフトウェアとして実装されることで、その他の場合であれば該ハードウェアが実行できない本発明の専用の機能性を実装するように該ハードウェアを構成するようにしてもよく、媒体上に格納されたソフトウェア命令として実装されることで、この命令が、ハードウェアによって容易に実行可能であることによって、記載された機能性および本明細書に説明された固有のコンピュータ動作、機能を実行するための手順もしくは方法を実行するように具体的にハードウェアを構成するようにしてもよく、または上記のいずれかの組み合わせとして実装されてもよい。
【0052】
本発明の明細書および特許請求の範囲では、例示的な実施形態の特定の特徴および要素に関して「ある(a)」、「~の少なくとも1つ(at least one of)」、および「~の1つまたは複数(one or more of)」を利用し得る。これらの用語および語句が、特定の例示的な実施形態に特定の特徴または要素のうちの少なくとも1つが存在しているが、複数も存在する可能性がある状態を意図していることは認識されるべきである。すなわち、これらの用語/語句は、本明細書または特許請求の範囲を存在する単一の特徴/要素に限定することも、複数のそのような特徴/要素が存在することを必要とすることも意図されていない。それとは反対に、これらの用語/語句は、少なくとも単一の特徴/要素が、複数のそのような特徴/要素が本明細書および特許請求の範囲内にある可能性を有することのみを必要とする。
【0053】
また、「エンジン」という用語の使用が、本発明の実施形態および特徴を説明することに関して本明細書で使用される場合、エンジンに帰属可能なまたはエンジンによって実行されるあるいはその両方の、アクション、ステップ、プロセスなどを達成するまたは実行するあるいはその両方のためのいずれの特定の実装も限定することを意図していないことは、認識されるべきである。エンジンは、限定はされないが、ソフトウェア、ハードウェア、またはファームウェアあるいはその組み合わせ、または限定はされないが、機械可読メモリにロードまたは格納され、かつプロセッサによって実行される適切なソフトウェアと組み合わせた汎用プロセッサまたは専用プロセッサあるいはその両方の任意の使用を含む指定された機能を実行するこれらの任意の組み合わせであってよい。さらに、特定のエンジンと関連付けられた任意の名称は、別段指定されない限り、参照の利便性を目的とし、かつ固有の実装に限定することを意図するものではない。さらに、エンジンに帰属する任意の機能性は、複数のエンジンによって等しく実行されてよい、同じタイプまたは異なるタイプの別のエンジンの機能性に組み込まれてまたはこれと組み合わせられてあるいはその両方であってよい、または、さまざまな構成の1つまたは複数のエンジンにわたって分散されてよい。
【0054】
さらに、以下の説明では、例示的な実施形態の例示の実装形態をさらに例示するために、および例示的な実施形態のメカニズムの理解に役立つように、例示的な実施形態のさまざまな要素に対して複数のさまざまな例を使用することは、認識されるべきである。これらの例は、非限定的であり、かつ例示的な実施形態のメカニズムを実装するさまざまな可能性を網羅していないことが意図されている。本明細書の観点では、本発明の範囲から逸脱することなく、本明細書に提供される例に加えてまたはこれの代わりに利用され得るこれらのさまざまな要素に対して多くの他の代替的な実装形態があることは、当業者には明らかであろう。
【0055】
本発明は、システム、方法、またはコンピュータ・プログラム製品あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(単数または複数)を含んでよい。
【0056】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形デバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の適した組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストは、以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リードオンリ・メモリ(ROM)、消去可能プログラマブル・リードオンリ・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リードオンリ・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、機械的にエンコードされたデバイス、例えば、パンチカードまたは命令が記録された溝内の隆起構造、および前述の任意の適した組み合わせを含む。コンピュータ可読記憶媒体は、本明細書において使用される際、電波または他の自由に伝播する電磁波、導波路または他の伝送媒体を通して伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通して伝送される電気信号など、それ自体が一時的信号であると解釈されるべきではない。
【0057】
本明細書に説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各々のコンピューティング/処理デバイスへと、または、ネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークまたは無線ネットワーク、あるいはその組み合わせを介して外部コンピュータまたは外部ストレージ・デバイスへとダウンロード可能である。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組み合わせを含み得る。それぞれのコンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、かつ、該コンピュータ可読プログラム命令を、各々のコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【0058】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Java(R)、Smalltalk(R)、またはC++などのオブジェクト指向プログラミング言語、および、「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラム言語の任意の組み合わせで書き込まれたソース・コードまたはオブジェクト・コードのどちらかであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に実行されてもよいし、スタンドアロン・ソフトウェア・パッケージとしてユーザのコンピュータ上で部分的に実行されてもよいし、部分的にユーザのコンピュータ上で、かつ、部分的にリモート・コンピュータ上で実行されてもよいし、リモート・コンピュータまたはサーバ上で完全に実行されてもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザのコンピュータに接続されてよい、または、(例えば、インターネット・サービス・プロバイダを使用してインターネットを通して)外部コンピュータへの接続が行われてよい。いくつかの実施形態では、例えば、プログラマブル・ロジック回路、フィールドプログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行して、電子回路をパーソナライズしてよい。
【0059】
本発明の態様について、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の、フローチャート図またはブロック図あるいはその両方を参照して本明細書において説明する。フローチャート図またはブロック図あるいはその両方のそれぞれのブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせが、コンピュータ可読プログラム命令によって実施可能であることは理解されるであろう。
【0060】
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサまたは他のプログラマブル・データ処理装置を介して実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実装する手段をもたらすようにコンピュータのプロセッサまたは他のプログラマブル・データ処理装置に提供されて、マシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令はまた、命令が格納されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作の態様を実施する命令を含む製品を含むように、コンピュータ可読記憶媒体に格納され、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組み合わせに特定のやり方で機能するように指示することができるものであってもよい。
【0061】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作を実施するように、コンピュータ実装プロセスを作り出すべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【0062】
図におけるフローチャートおよびブロック図は、本発明のさまざまな実施形態によるシステム、方法、およびコンピュータ・プログラム製品の考えられる実装のアーキテクチャ、機能性、および動作を示す。これに関して、フローチャートまたはブロック図におけるそれぞれのブロックは、指定された論理関数を実施する1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または部分を表し得る。いくつかの代替的な実装形態において、ブロックに記される機能は、図に記される順序以外で行われる場合がある。例えば、連続して示される2つのブロックは、実際には、実質的に同時に実行されてよい、または、ブロックは、関与する機能性に応じて逆の順序で実行される時があり得る。ブロック図またはフローチャート図あるいはその両方のそれぞれのブロック、および、ブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせは、指定された機能または動作を実行する、または、専用ハードウェアとコンピュータ命令との組み合わせを実行する専用ハードウェアベースのシステムによって実装可能であることも留意されたい。
【0063】
上記のように、例示的な実施形態のメカニズムは、時間枠のさまざまな時間ステップまたは時間間隔で時空間特徴、時間的特徴、および固定/カテゴリ特徴に関する入力データを処理することによって、その入力データを、ユーザを認証するためにユーザ・プロファイルを生成するまたはユーザ・プロファイルと比較するあるいはその両方を行うために使用可能であるベクトル表現として特徴付ける機械学習コンピュータ・モデルの複数の段階を含む行動バイオメトリクス深層学習(BBDL)パイプラインを提供する。BBDLパイプラインは、生の行動バイオメトリクス・データを採用し、かつそのデータをBBDLパイプラインの段階の機械学習モデルによって使用可能なフォーマットに変えるデータ・プリプロセッサを含む。例えば、プリプロセッサは、生の入力データに存在する時空間特徴を時間×2D特徴マトリックスまたはマップに変える。プリプロセッサはまた、生の入力データの時間的特徴を時間×1D特徴マトリックスまたはマップに変える。さらに、プリプロセッサは、それ自体、または別個の埋め込みエンジンと併せて、固定/カテゴリ入力データを、BBDLパイプラインのロジックの対応する段階の他の機械学習モデルの出力で使用するために埋め込まれた値のベクトル表現に埋め込んでよい。
【0064】
図1(A)~
図1(D)は、1つの例示的な実施形態による、ユーザ認証に使用され得る時空間特徴の例示のプロットを示す。これらの例におけるこれらの時空間特徴のプロットは、時間×2D特徴プロットと称され、経時的なユーザ入力の2次元行動バイオメトリクス特徴を表す。
図1(A)~
図1(D)におけるそれぞれの時間×2D特徴プロットは、第1の特性を表す垂直軸に沿った点、および2次元(2D)特性の他の特性を表す網掛けまたは色としてプロットされる時空間特徴の2D特性を有する水平軸に沿った時間次元を含む。プロットされた特定の2D特性は、特定の時空間特徴がプロットされることに左右される。
図1(A)~
図1(D)から分かるように、時空間特徴のプロットによって、経時的な時空間特徴を表す画像がもたらされる。
【0065】
図1(A)~
図1(D)の示された時間×2D特徴では、スマートフォンまたはタブレット・コンピューティング・デバイスなどのユーザ操作デバイスのタッチスクリーン上のスワイプのユーザ入力と関連付けられた時空間特徴を表す。
図1(A)は、スワイプのユーザ入力に対する時間×2D特徴プロットの時間系列である。x軸およびy軸は、ユーザ操作デバイスのタッチスクリーン上の(x、y)座標に対応することで、2Dプロットを構成する。それぞれのプロットは特定の時点または時間間隔でのユーザの入力を表す。2D特徴プロットにおける画素の網掛けは、特定の座標における特徴の値を表し、この場合、特定の値および値の意味は、表される特定の特徴に左右され、例えば、ブール型のタッチは、特定の座標における(2つの異なる色によって表される)1または0であってよく、速度は、(例えば、白から黒の)考えられる網掛けなどのスペクトル上での異なる網掛けによって表される実数であってよい。
【0066】
図1(B)における時間×2D特徴プロットは、プロットされたスワイプのサイズ対時間の2D特性を表す。
図1(B)のプロットでは、2D特性は、特定の時点または時間間隔においてユーザによってタッチされるある画素の周りの画素領域またはエリアを示す値であってよい。
【0067】
図1(C)における時間×2D特徴プロットは、プロットされたスワイプ速度対時間の2D特性を表す。
図1(C)のプロットにおいて、2D特性は、速度のx成分であり得るスワイプ速度を含み得、(示されない)別のプロットは、速度のy成分を表し得る。プロットにおける網掛けは、記号が特定の軸に対するものである正/負の値を表し得る。示される図では、画素の網掛けは、運動の左半分が左から右に進んでおり(x軸に対する正の方向)、この右半分が右から左に進んでいる(x軸に対する負の方向)ことを示す。よって、示される運動は、ユーザがタッチスクリーン上でズーム・アウトしようとしている時などのピンチ動作である。上記の同様に、
図1(D)における時間×2D特徴プロットは、プロットされたスワイプ加速対時間の2D特性を表す。
【0068】
生のセンサ・データは、時空間特徴を、個々の時空間特徴を表す画像である時間×2Dマトリックスまたはマップに変えるための動作を行うプリプロセッサに生の入力データとして提供される。時間×2D特徴プロットのこのマトリックスまたはマップの生成の結果としてプリプロセッサによって生成された画像データは次いで、BBDLパイプラインの対応する段階の画像解析/コンピュータ・ビジョン機械学習モデルに入力され得る。それぞれの時空間特徴に対して単一の画像解析/コンピュータ・ビジョンMLモデルがあってよく、または複数の時空間特徴マトリックス/マップに対して画像解析/コンピュータ・ビジョン動作に対処する単一の画像解析/コンピュータ・ビジョンMLモデルがあってよい。
【0069】
さらに、以前に述べたように、プリプロセッサはまた、入力データにおける時間的特徴を時間×1Dマトリックスまたはマップに変えてよい。これらは、上記のように、デバイスの入力範囲にわたって、例えば、タッチスクリーンの場所にわたって変化しないが、経時的に変化する入力データにおける特徴である。よって、時間×1D特徴マトリックスまたはマップは、これらの時間的特徴のプロット時間および一次元特徴、すなわち、対応する時間的特徴の値を表すために使用されてよい。
図1Eは、1つの例示的な実施形態による、ユーザ認証に使用され得る時間的特徴の例示のプロットを示す。さらには、水平軸は時間を表し、垂直軸は、加速度計の記録のx軸などの時間的特徴の値を表す。破線のボックスは、時間的特徴をサンプリングするためのスライド時間枠を表す。時間×1Dマトリックスまたはマップは、時間的特徴を表すベクトル出力を生成する完全接続されたまたは緻密層ベースの機械学習モデルに入力されてよい。完全接続/緻密層ベースの機械学習モデルの出力は、画像解析/コンピュータ・ビジョン機械学習モデルの出力および固定/カテゴリ入力データの埋め込みと組み合わせられて、時点または時間間隔でのユーザ入力の組み合わせベクトル出力表現を生成してよく、これはさらにまた、処理するための入力として主段階MLモデルに提供可能である。
【0070】
図2は、1つの例示的な実施形態による、行動バイオメトリクス深層学習(BBDL)パイプラインの例示のブロック図である。
図2に示されかつ以前に上述したように、BBDLパイプライン200は複数の段階210~230を含み、それぞれの段階210~230は、1つまたは複数の時点、例えば、t、t+1、t+2、最高t+nまでを含む特定の対応する時間間隔での時空間特徴、時間的特徴、および固定/カテゴリ特徴を評価する機械学習モデルのセット212~218、222~228、および232~238を含み、ここで、nは、時空間特徴パターンが特定のユーザについての行動バイオメトリクスを判断するために評価される時間枠のサイズを示す。よって、BBDLパイプライン200は、nの段階を有することになり、それぞれの段階210~230は、ユーザがインターフェース接続しているコンピューティング・デバイスと関連付けられた入力デバイスを介して受信されたユーザの入力の時空間特徴、時間的特徴、および固定/カテゴリ特徴を評価する複数のトレーニング済みの機械学習(ML)コンピュータ・モデル212~218、222~228、および232~238を有する。
【0071】
ユーザ入力は、コンピューティング・デバイスと関連付けられたユーザ入力デバイスと関連付けられた1つまたは複数のセンサによってキャプチャもしくは集められてよく、またはコンピューティング・デバイス自体によって生成されてよく、あるいはその両方であってよい。すなわち、1つまたは複数の例示的な実施形態によると、複数のセンサ210~214は、スマートフォン、タブレット・コンピュータ、タッチスクリーン・デバイス、コンピュータ・マウス、トラックボール入力デバイス、画像取り込みデバイス、バイオメトリクス・リーダ・デバイス、またはバイオメトリクスもしくは行動バイオメトリクス入力データの任意の他のソースなどの1つまたは複数のユーザ操作デバイス(図示せず)と関連して提供される。例えば、いくつかの例示的な実施形態では、これらのセンサ201~204は、タッチ・センシティブ・スクリーンにおけるタッチ・センサおよびデバイス自体と関連付けられた加速度計などを含み得る。そのようなセンサ201~204によって感知されかつBBDLパイプライン200への入力のための入力データ205~208の一部として提供される時空間特徴の例には、限定はされないが、特定のタッチスクリーン寸法に対する座標データを含むタッチスクリーン上の指スワイプ・データ、例えば、スワイプ・サイズ、スワイプ速度、スワイプ加速、スワイプ方向など、タッチスクリーン・デバイス上のタッチ圧に関する圧力情報、マウスオーバ情報、撮像デバイス(カメラなど)、タッチスクリーン、または任意の他のジェスチャ情報源からの検出されたジェスチャ情報、発話入力と関連付けられたボイスプリント情報、およびユーザによる特定のデバイスの動きを表す加速情報などが含まれる。1つの例示的な実施形態では、使用される時空間特徴は、ブール型のタッチ(以降の説明を参照)、タッチ・サイズ、(x、y)タッチ加速、スカラ型のタッチ速度、およびスカラ型のタッチ加速を含む。
【0072】
一般に、時空間特徴は、ユーザ・インターフェース・デバイス292~294またはコンピューティング・デバイス290あるいはその両方の入力範囲、例えば、タッチスクリーン・デバイス、またはコンピュータ・マウス、トラックボール、もしくはグラフィカル・ユーザ・インターフェースなどへのユーザ入力を表す他のユーザ入力デバイスの動きに対するデバイスのスクリーン寸法またはグラフィカル・ユーザ・インターフェース寸法で変化し、かつ時間と共に変化する特徴の集合である。さらには、上に述べられるように、例示の時空間特徴は、デバイス・スクリーンのどの部分がある特定の時間ステップでタッチされたかを表す特徴の集合であり、電位値、例えば、圧力値などの範囲に沿ったさまざまな値を有する実際の値の特徴であるブール型の時空間タッチ特徴であってもよい。しかしながら、時空間特徴がユーザ入力デバイスまたはコンピューティング・デバイスあるいはその両方のセンサによってのみ感知可能である特徴に限定されないことは、認識されるべきである。いくつかの例示的な実施形態では、時空間データが得られ得るセンサによって監視される物理領域に対応する任意の時空間特徴など、他の時空間特徴も評価されてよく、例えば、環境光の値の場合、センサは、時間枠にわたってかつ特定の物理領域にわたって光レベルを検出してよく、この光レベル・データは時空間入力データを表し得る。
【0073】
例示的な実施形態ではまた、特定のユーザ入力デバイス292~295またはコンピューティング・デバイス290と関連付けられた入力範囲に依存しない時間的特徴が考慮される。上記のように、これらの時間的特徴は、ユーザ入力と関連付けられた集約された時空間情報または非時空間情報であってよい。そのような時間的特徴は、限定はされないが、ユークリッド座標/極座標における3次元加速度計の値、加速の一次導関数、加速の二次導関数、時空間特徴の集約された値、および、例えば、グラフィカル・ユーザ・インターフェースまたはタッチスクリーンあるいはその両方のコンポーネントがタッチされたコンテキスト埋め込みを含む。
【0074】
さらに、いずれの固定デバイス特徴またはカテゴリ・タイプ特徴についても、これらの特徴の埋め込みは、特定の段階210~230に対応するプリプロセッサ280、282、284、または段階210~230の他の埋め込みコンポーネント216、226、236によって行われてよい。埋め込みコンポーネント216、226、および236は、対応する固定/カテゴリ特徴を、これらの固定/カテゴリ特徴を表すベクトル表現に埋め込むようにトレーニングされた機械学習モデルであってよい。
【0075】
センサ201~204が、複数の時点または時間間隔のそれぞれに対して時空間特徴、時間的特徴、および固定/カテゴリ特徴を含む生の入力データ205~208を提供することは、認識されるべきである。これらの時点または時間間隔は共に、ユーザ入力の時間枠を表す。ユーザ入力の時間枠は、センサ201~204がユーザ・セッションの間にユーザ入力を監視し続けるように移動またはスライド枠であってよい。よって、時点/間隔t+n+1において、時間枠処理は、段階210の処理において開始され、すなわち、時点/間隔t+n+1は新しい時間枠に対する時点/間隔tになる。時間間隔は、以前に上述したように、重複または非重複であってよい。
【0076】
それぞれの生の入力データ205~208は、ロジックの特定の段階210~230に対して対応するプリプロセッサ280、282、294に提供される。プリプロセッサ280、282、284は、時間×2D特徴マトリックス/マップ、時間×1Dマトリックス/マップ、および固定/カテゴリ特徴を生成し、これらは、以前に説明したように、ロジックの段階210~230の対応する機械学習モデルに提供される。
【0077】
ユーザ入力データに加えて、デバイス・データ250は、コンピューティング・デバイス290またはユーザ・インターフェース・デバイスあるいはその両方から得られ、かつ埋め込まれてよい。例えば、ユーザ操作デバイス自体の識別情報、例えば、製造およびモデル番号(例えば、アップルのiPhone(R)X、サムソンのGalaxy(R)S20など)、デバイスの構成(例えば、センサのタイプおよびそれらの特性など)、およびデバイスの寸法または操作の限度(例えば、スクリーンのサイズ、タッチ・パネルのサイズ、グラフィカル・ユーザ・インターフェースのサイズなど)などのそのようなユーザ入力固有データに依存しない他のデバイス特徴は、ベクトル表現(埋め込み)260として埋め込まれ、かつ入力として、BBDLパイプライン200の第1の段階210の主段階MLモデル218に提供されてよい。
【0078】
ユーザ入力デバイス292~294またはコンピューティング・デバイス290あるいはその両方のセンサ201~204は、複数の時点または時間間隔で時空間特徴、時間的特徴、および固定/カテゴリ特徴を含む生の入力データ205~208を継続的にまたは周期的に、収集または生成あるいはその両方を行ってよく、その特徴データを、BBDLパイプライン200の段階210~230と関連付けられた対応するプリプロセッサ280~284に提供してよい。プリプロセッサ280~282は、生のユーザ入力データを、BBDLパイプライン200の段階210~230、例えば、時空間特徴に対する時間×2D特徴マトリックスまたはマップ、時間的特徴に対する時間×1Dマトリックスまたはマップ、および埋め込みのために提供される固定/カテゴリ特徴のさまざまな機械学習モデル212~218、222~228、および232~238によって使用可能な形式に変換するように動作する。プリプロセッサ280~282は、生の入力データ205~208に存在する異なるタイプの特徴を識別するように構成される。すなわち、プリプロセッサ280~284は、生の入力データ205~208をパースし、かつ、その構成に基づいて、生の入力データ205~208の部分を、それらの部分が、時空間特徴、時間的特徴、または固定/カテゴリ特徴を表すかどうかに関してカテゴリ化してよい。生の入力データ205~208の部分のカテゴリ化に基づいて、プロセッサ280~284による対応する処理は、埋め込みのための入力であり得る、時間×2Dマトリックス/マップ、時間×1Dマトリックス/マップ、および固定/カテゴリ特徴の識別情報を生成するために行われる。前処理されたユーザ入力データ240~244は、次いで、対応する段階210~230の機械学習モデルによる処理のために対応する段階210~230のロジックに提供される。
【0079】
図2に示されるように、BBDLパイプライン200のそれぞれの段階210~230は、対応する時点/スライスに対する前処理されたユーザ入力データ240~244に存在する時空間特徴データの画像解析またはコンピュータ・ビジョン・ベースの解析を行うように機械学習プロセスを通してトレーニングされる1つまたは複数の第1のMLコンピュータ・モデル212、222、232を含む。すなわち、1つまたは複数の第1のMLコンピュータ・モデル212、222、232は、複数の異なる時空間特徴の分類またはカテゴリ化を行うようにトレーニングされる単一のMLコンピュータ・モデルを含んでもよいし、単一の時空間特徴の分類またはカテゴリ化を行うようにトレーニングされる単一のMLコンピュータ・モデルであってもよいし、それぞれが、異なる時空間特徴に関する分類またはカテゴリ化を行うようにトレーニングされる複数のMLコンピュータ・モデルの組み合わせであってもよい。時空間特徴データを基に動作する複数のMLコンピュータ・モデルの場合、それぞれのMLコンピュータ・モデルの結果は、さまざまなMLコンピュータ・モデル212の出力を連結するあるいは集約した後、段階210~230の組み合わせロジック217、227、237によって組み合わせられて、BBDLパイプライン200の主段階MLモデル218への単一の最終ベクトル出力表現を生成し得る(示されない)マージ・ロジックを通して、最終ベクトル出力表現に集約されてよい。
【0080】
上に論じられるように、時空間特徴データは、画像解析、またはコンピュータ・ビジョン・ニューラル・ネットワーク、または他の画像/ビジョン解析機械学習モデルによって処理され得る画像を基本的には提供して、入力された画像のカテゴリ化を表す出力ベクトルを生成する、時間×2D特徴マトリックスまたはマップ表現として表されてよい。例示的な実施形態の画像/ビジョン解析機械学習モデルは、具体的には、固有の行動バイオメトリクス・カテゴリに関する時空間マトリックスまたはマップ表現を分類またはカテゴリ化するために機械学習プロセスを通してトレーニングされる。さまざまな時空間特徴についてのさまざまな時間×2D特徴マトリックス/マップに対するさまざまなカテゴリ化は、特定の時点または時間間隔に対する入力において存在する時空間特徴の分類のベクトル表現を生成するために組み合わせられてまたは集約されてよい。
【0081】
前処理されたユーザ入力240~244における時間的特徴は、時間的特徴のカテゴリ化を表すベクトル出力を生成する、1つまたは複数の第2のニューラル・ネットワークもしくはトレーニング済みの機械学習コンピュータ・モデル214、224、234に入力され得る時間×1Dマトリックスまたはマップとして表されてよい。いくつかの例示的な実施形態では、1つまたは複数の第2のニューラル・ネットワークまたはトレーニング済みの機械学習コンピュータ・モデル214、224、234は、1つまたは複数のトレーニング済みの完全接続ニューラル・ネットワークまたは他の緻密層ニューラル・ネットワークであってよい。1つまたは複数の第2のニューラル・ネットワークまたはトレーニング済みの機械学習コンピュータ・モデル214、224、234は、時間間隔での時間的特徴入力の分類の1つまたは複数のベクトル表現を出力し、これは、組み合わせロジック217、227、237によって、時空間特徴を処理する機械学習モデル212、222、232からの出力、および、固定またはカテゴリ別の、すなわち、非時間依存の特徴に対して埋め込みロジック216、226、236によって生成された他の埋め込まれた特徴と組み合わせられて、BBDLパイプライン200の次の段階への出力を生成する主段階機械学習モデル(ML)モデル218、228、238に入力される最終ベクトル出力を生成し得る。
【0082】
BBDLパイプライン200の第1の段階210についての主段階MLモデル218は、入力として、それぞれの時間ステップにおいて提供されないデバイス情報または他の固定もしくはカテゴリ情報250あるいはその両方の組み合わせの埋め込み268を受信する。BBDLパイプライン200の後続の段階220~230では、以前の段階の主段階MLモデルは次の段階の主段階MLモデルに結合され、かつ、次の段階の主段階MLモデルへの入力としてその出力を提供し、例えば、主段階MLモデル218の出力は段階220の主段階MLモデル228に入力され、主段階MLモデル228の出力は主段階MLモデル238への入力として提供される。1つの例示的な実施形態では、BBDLパイプライン200の段階210~230のそれぞれの主段階MLモデル218、228、238は、リカレント・ニューラル・ネットワーク(RNN)、例えば、長・短期記憶(LSTM)RNNであってよい。
【0083】
BBDLパイプライン200に沿ったそれぞれの段階210~230では、対応する段階のMLモデル212~218、222~228、および232~238は、対応する時点または時間間隔での特定の時空間特徴、時間的特徴、および他の固定/カテゴリ特徴に対するもの以外は上記と同様の機能を実行する。その段階のMLモデルの結果として生じる出力ベクトルは、その段階の主段階MLモデルによってその後処理される特徴入力として、現在の段階のMLモデルにおいて、以前の段階の主段階MLモデルからの入力と組み合わせられて、次の段階の主段階MLモデルに入力されるベクトル出力を生成する。この処理は、BBDLパイプライン200の最終段階、例えば、段階230まで継続し、これは次いで、時空間入力、時間的入力、および固定/カテゴリ入力に関する時間枠にわたるユーザ入力を表す出力ベクトルK270を生成する。このように、BBDLパイプライン200は、時間枠において表される時点での入力において表されるエンティティ(ユーザ)の特色を蓄積する。結果として生じる出力ベクトルK270は、特定のユーザの行動バイオメトリクス特徴(またはユーザ特色)に独自のものであるため、ユーザを認証するために使用可能である。
【0084】
BBDLパイプライン200の段階の機械学習モデルのトレーニングは、任意の適した機械学習プロセス、例えば、教師付きまたは教師なし機械学習プロセスを使用して行われてよい。
図3は、1つの例示的な実施形態による、BBDLパイプライン200をトレーニングするためのトレーニング・プロセスの高水準表現を示す例示のブロック図である。例示的な実施形態では、機械学習プロセスは、一般的に、特定のユーザの行動バイオメトリクスを、それらのユーザ入力の時空間特徴、時間的特徴、および固定/カテゴリ特徴に関してどのように表すかを学習することを伴う。機械学習プロセスは、一般に、機械学習トレーニングのそれぞれのエポックのそれぞれの繰り返しでは、特定の周期または時間枠にわたるユーザ入力を表すユーザ・セッション情報310および320の対を得ることを伴う。ユーザ・セッション情報310および329の対は、さまざまなセンサまたはコンピューティング・デバイスあるいはその両方から得られる生の入力データ205~208、および、ユーザ入力デバイス/コンピューティング・デバイスについてのデバイス情報250など、対象ユーザに対応するセッション情報310の第1のセットを伴う。この対における第2のセッション情報320は、同じユーザまたは異なるユーザからのものであってよく、他の生の入力データ305~308および対応するデバイス情報250を含んでよい。対応するラベル情報322は、ユーザが同じユーザまたは異なるユーザであるかどうかを示す第2のセッション情報320について得られる。いくつかの実施形態では、それぞれのユーザ・セッション情報310および320は、ユーザ・セッション情報310および320を提供するユーザの識別情報を指定するラベル・データ312、322を有し得ることで、ユーザ識別情報の比較によって、ユーザがトレーニング目的では同じであるまたは異なっているかどうかが判断可能である。
【0085】
第1のユーザ・セッション情報310および第2のユーザ・セッション情報320はそれぞれ、
図2におけるK次元出力ベクトル270などの対応するK次元出力ベクトル342、344を生成するためのプリプロセッサ280~284を含み得るプリプロセッサ330による前処理の後に、BBDLパイプライン200を含むモデル340を通して別個に処理される。第1のセッション情報についてのK次元出力ベクトル342は、セッション情報が、BBDLパイプライン200を含むモデル340によって、同じユーザまたは異なるユーザであるかで分類されるかどうかを判断するために、すなわち、両方のセッションについてのセッション情報が、同じユーザを表すほど十分類似しているか否かで判断される場合に、第2のセッション情報についてのK次元出力ベクトル344と比較される。
【0086】
K次元出力ベクトルK1 342およびK次元出力ベクトルK2 344は、K1出力ベクトル342およびK2出力ベクトル344が、ユーザ・セッション情報310を提供するユーザがユーザ・セッション情報320を提供するユーザと同じユーザまたは異なるユーザであると断定するほど十分類似している(K1およびK2出力ベクトルの個々の値の差異が所定のまたは学習済みの閾値以下である)かどうかを判断するために、比較ロジック350によって比較される。比較の結果によって、ユーザ・セッション情報310を提供するユーザがユーザ・セッション情報320を提供するユーザと同じである見込みを示す確率値を生成し、これは次いで、閾値確率と比較可能である。算出された確率が閾値確率を満たすまたはこれを超える場合、ユーザ・セッション情報310を提供するユーザはユーザ・セッション情報320を提供したのと同じユーザであることが予測される。
【0087】
予測が得られると、次いで、BBDLパイプライン200を含むBBDLモデル340がユーザ・セッション情報310、320についての正確な結果を生成したかどうかを判断するために、予測の精度がトレーニング・ロジック360によってチェックされる。例えば、ユーザ・セッション情報310、320についてのラベル312、322は、比較され得る、または第2のユーザ・セッション情報320のみが標示される実施形態では、ラベル322は、モデル340がトレーニングされている認定ユーザの識別情報と比較され得る。トレーニング・ロジック360によって行われた比較によって、第2のセッション情報が実際には同じユーザまたは異なるユーザからのものであるかどうかが判断される。類似予測がユーザ・セッション情報310、320のラベル312または322あるいはその両方に基づいて不正確である場合、トレーニング・ロジック360は、BBDLモデル340によって生成されたKの値における誤差(損失または費用)を低減するように、BBDLモデル340のBBDLパイプライン200の機械学習モデルの動作パラメータを調節する。
【0088】
BBDLモデル340およびBBDLパイプライン200のトレーニングが、BBDLパイプライン200およびBBDLモデル340が同じユーザおよび異なるユーザのインスタンスに対するKベクトル出力を精確に生成するようにトレーニングされる点でユーザに依存していることは、認識されるべきである。トレーニングでは、BBDLパイプライン200およびBBDLモデル340が、同じユーザに対して十分同じである、または異なるユーザに対して十分異なっているKベクトル出力を正しく生成することで、ユーザの認証の予測がユーザ入力に存在するそれらの行動バイオメトリクス・データに基づいて精確に行われるかどうかを判断する。異なるユーザに対して別個の機械学習モデルをトレーニングする必要があるのではなく、例示的な実施形態のメカニズムは、認定ユーザの入力を基に動作することによって認定ユーザのプロファイルを生成できる単一のBBDLパイプライン200およびBBDLモデル340を提供することができる。その後、BBDLパイプライン200およびBBDLモデル340は、ユーザ入力が認定ユーザからのものであるかを認証するために格納された認定ユーザのプロファイルとその後比較可能であるKベクトル出力を生成するために新しいユーザ入力を基に動作し得る。
【0089】
すなわち、BBDLパイプライン200を含むBBDLモデル340は、トレーニングされると、固有のデバイスに対する認定ユーザのユーザ入力を表すBBDLパイプラインの1つまたは複数のKの値の出力を格納する認定ユーザのプロファイルを生成するように、対象ユーザの1つまたは複数のユーザ・セッションに対して実行されてよい。
図4は、1つの例示的な実施形態による、BBDLパイプラインのランタイム動作の高水準表現を示す例示のブロック図である。
図4に示されるように、ユーザのセッション履歴情報410は複数のユーザ・セッションに対して得られてよく、これらのそれぞれは、対応するプリプロセッサ420およびモデル430のBBDLパイプライン200によって処理されて、ユーザ・プロファイル440に格納されたそれぞれのセッションについてのK次元出力ベクトルを生成し得る。ユーザ・セッションのこのグループ、すなわち、ユーザ・セッション履歴は、継続的に更新されたユーザ・セッション履歴410のセットであり得、例えば、最後の10のセッションが維持されてよく、対応するユーザ・プロファイル440はユーザによる新しいセッションが生じると動的に更新され得る。すなわち、それぞれの後続のユーザ・セッションについて、BBDLパイプライン200を含むモデル430は、対応するK次元出力ベクトルを生成するためにユーザ・セッションからの入力データに対して実行し、このK次元出力ベクトルは次いで、ユーザ・プロファイル440における最も古いK次元出力ベクトル・エントリと置き換えるために使用される。よって、動的なユーザ・プロファイル440は認定ユーザのために維持される。
【0090】
新しいセッションについての新しいユーザ入力情報が実際には認定ユーザからのものであるか否かは、モデル340およびBBDLパイプライン200のトレーニングに関して以前に説明したのと同様のやり方で判断されてよい。トレーニング動作に対する1つの例外として、トレーニング後のランタイム動作中に、後続のセッションに対するユーザが認定ユーザそのもの、またはセッション情報が得られる特定のデバイスの登録済みの認定ユーザにマッチしないとの判断により、保護されたリソースにアクセスする権限が拒否される場合がある。すなわち、プリプロセッサ420、およびBBDLパイプライン200を含むモデル430を介して処理された、新しいセッション450についての新しいユーザ入力情報は、ユーザ・プロファイル440に格納されたK次元出力ベクトルと比較され得るK次元出力ベクトル460をもたらす。K次元出力ベクトル460がユーザ・プロファイル440における格納されたK次元出力ベクトルのいずれかと十分マッチするかどうかを判断するために、K次元出力ベクトル460はそれぞれのK次元出力ベクトルを比較されてよい。K次元出力ベクトル460がユーザ・プロファイル440におけるこれらの格納されたK次元出力ベクトルのいずれか1つと十分マッチする場合、新しいセッション情報450を提供するユーザは認定ユーザであり、かつ保護されたリソースへのアクセスが許可されてよいと判断される。K次元出力ベクトル460がユーザ・プロファイルに格納されたK次元出力ベクトルのいずれかと十分マッチしない場合、新しいセッション情報450を提供するユーザは、認定ユーザではないため、保護されたリソースへのアクセスは拒否され得る。新しいセッション情報450が認定ユーザからのものであるとの判断は、保護されたリソースへのアクセスが許可されることになることに加えて、所定数のK次元出力ベクトルがユーザ・プロファイル440に存在する場合にユーザ・プロファイル440における最も古いK次元出力ベクトル・エントリを置き換えること、または最大数のエントリに達しなかった場合に新しいエントリを加えることなどによって、更新エンジン480に、ユーザ・プロファイル440をこの新しいセッション情報450についてのK次元出力ベクトル460で更新させてよい。
【0091】
よって、以前に述べたように、例示的な実施形態は、行動バイオメトリクスについての時空間深層学習メカニズムを実装するためのメカニズムを提供する。例示的な実施形態は、それぞれの段階が時空間特徴、時間的特徴、および固定/カテゴリ特徴に関して対応する時点または時間間隔で入力データを分類またはカテゴリ化する機械学習モデルのセットを含む段階のパイプラインを提供する。いくつかの例示的な実施形態では、時空間特徴は画像データとしてレンダリングされた後、トレーニング済みの画像解析またはコンピュータ・ビジョン解析機械学習モデルによって処理され、時間的特徴は、完全接続されたまたは緻密層ベースのあるいはその両方の機械学習モデルを通して処理される。パイプラインの段階は、それらの対応する時点または時間間隔でのユーザ入力データのみならず、パイプラインにおける以前の段階からの出力を基に動作して、パイプラインによって処理される時間枠または期間にわたるユーザ入力の行動バイオメトリクスを表すK次元出力ベクトルを最終的に生成する。これは、ユーザ・プロファイルを生成するために使用可能であり、該ユーザ・プロファイルは、ユーザを認証するために後続のユーザ・セッションで使用可能である。
【0092】
図5は、1つの例示的な実施形態による、BBDLパイプラインの例示の動作を略述したフローチャートである。
図5に略述された動作は、以前に上述したように、BBDLパイプラインが機械学習プロセスを通してトレーニングされていると想定して、ランタイム動作の一部としてBBDLパイプラインによって行われてよい。
【0093】
図5に示されるように、動作は、新しいセッションに対するユーザ入力を受信すること(ステップ510)によって開始する。ユーザ入力は、受信したユーザ入力に存在する時空間特徴、時間的特徴、および固定/カテゴリ特徴を識別しかつ前処理するために前処理される(ステップ520)。この前処理は、時間×2D特徴マトリックス/マップおよび時間×1D特徴マトリックス/マップの生成のみならず、受信したユーザ入力に存在する固定/カテゴリ特徴を識別することを含んでよい。ユーザ入力は、ユーザ入力に表される時間枠のそれぞれの時点で、BBDLパイプラインの対応する段階によって処理され、その段階の結果は、ユーザ入力の行動バイオメトリクスのKベクトル出力表現を生成するために組み合わせられる(ステップ530)。
【0094】
デバイスに対する認定ユーザの識別情報が判断され、認定ユーザについての対応するユーザ・プロファイルが引き出される(ステップ540)。ユーザの識別情報は、ユーザ入力、例えば、識別されたユーザについてのユーザ・プロファイルを取り出すために使用可能であるログオン・プロセスなどの間のユーザ識別子において指定され得る。他の場合では、デバイスの識別情報は、特定のデバイスに対する認定ユーザのレジストリにおいてルックアップ動作を行うために使用されてよい。
【0095】
ユーザ入力に対するKベクトル出力表現によるユーザ・プロファイルにおけるKベクトル・エントリの比較が行われて(ステップ550)、該ベクトルが、同じユーザを示すほど十分類似しているか、またはそれらが異なるユーザを表すように十分には類似していないかを判断する(ステップ560)。ユーザが同じユーザであることを予測によって示される場合、保護されたリソースへのアクセスは許可され(ステップ570)、ユーザ・プロファイルは、ユーザ入力についてのKベクトル出力で更新される(ステップ580)。ユーザが異なっていると予測によって示される場合、保護されたリソースへのアクセスは拒否される(ステップ590)。動作はその後終了する。
【0096】
例示的な実施形態は、多くの異なるタイプのデータ処理環境において、行動バイオメトリクス入力の時空間特徴、時間的特徴、および固定/カテゴリ特徴の解析に基づく行動バイオメトリクスに基づいて、さまざまなタイプのコンピューティング・リソースまたは物理的施設もしくはデバイスなどを保護するために利用されてよい。データ処理環境は、単一のコンピューティング・デバイスまたは分散データ処理環境あるいはその両方を含んでよい。
図6および
図7は、例示的な実施形態の態様が実装され得る例示の環境として以降に提供される。
図6および
図7が、単なる例であり、本発明の態様または実施形態が実施され得る環境に関していずれの限定も主張されることも含意することも意図されていないことは、認識されるべきである。示される実施形態への多くの変更は、本発明の範囲から逸脱することなく行われてよい。
【0097】
図6は、例示的な実施形態の態様が実装され得る例示の分散データ処理システムの図形表示を示す。分散データ処理システム600は、例示的な実施形態の態様が実装され得るコンピュータのネットワークを含み得る。分散データ処理システム600は、分散データ処理システム600内で共に接続されたさまざまなデバイスとコンピュータとの間の通信リンクを提供するために使用される媒体である少なくとも1つのネットワーク602を含有する。ネットワーク602は、有線通信リンク、無線通信リンク、または光ファイバ・ケーブルなどの接続を含み得る。
【0098】
示される例では、サーバ604およびサーバ606は、ストレージ・ユニット608と共にネットワーク602に接続される。さらに、クライアント610、612、および614も、ネットワーク602に接続される。これらのクライアント610、612、および614は、例えば、パーソナル・コンピュータまたはネットワーク・コンピュータなどであってよい。示される例では、サーバ604は、ブート・ファイル、オペレーティング・システム画像、およびアプリケーションなどのデータをクライアント610、612、および614に提供する。クライアント610、612、および614は、示される例ではサーバ604に対するクライアントである。分散データ処理システム600は、示されないさらなるサーバ、クライアント、および他のデバイスを含んでよい。
【0099】
示される例では、分散データ処理システム600は、ネットワーク602がプロトコルの伝送制御プロトコル/インターネット・プロトコル(TCP/IP)スイートを使用して互いに通信するネットワークおよびゲートウェイの世界的規模の集合を表すインターネットである。インターネットの中核には、データおよびメッセージをルーティングする何千もの商業用、政府用、教育用、および他のコンピュータ・システムで構成される、主要なノードまたはホスト・コンピュータ間の高速データ通信回線のバックボーンが存在する。当然ながら、分散データ処理環境600はまた、例えば、イントラネット、ローカル・エリア・ネットワーク(LAN)、またはワイド・エリア・ネットワーク(WAN)などの、いくつかの異なるタイプのネットワークを含むように実装されてよい。上記のように、
図6は、本発明の異なる実施形態に対するアーキテクチャ上の限定ではなく一例であることが意図され、従って、
図6に示される特定の要素は、本発明の例示的な実施形態が実施され得る環境に関する限定と見なされるべきではない。
【0100】
図6に示されるように、コンピューティング・デバイス、例えば、サーバ604の1つまたは複数は、具体的には、
図2におけるBBDLパイプライン200を含む
図3のBBDLモデル340などのBBDLパイプラインを含む行動バイオメトリクス深層学習(BBDL)モデルを実装するように構成されてよい。コンピューティング・デバイスの構成は、例示的な実施形態に関して本明細書に説明される動作の性能および出力の生成を促進するための特定用途向けハードウェアまたはファームウェアなどを提供することを含んでよい。コンピューティング・デバイスを構成することは、さらにまたは代替的には、1つまたは複数のストレージ・デバイスに格納され、かつサーバ604などのコンピューティング・デバイスのメモリにロードされるソフトウェア・アプリケーションを提供して、コンピューティング・デバイスの1つまたは複数のハードウェア・プロセッサに、例示的な実施形態に関して本明細書に説明される動作を行いかつ出力を生成するようにプロセッサを構成するソフトウェア・アプリケーションを実行させることを含んでよい。また、例示的な実施形態の範囲から逸脱することなく、特定用途向けハードウェア、ファームウェア、またはハードウェア上で実行されるソフトウェア・アプリケーションなどの任意の組み合わせが使用されてよい。
【0101】
コンピューティング・デバイスがこれらのやり方のうちの1つで構成されると、コンピューティング・デバイスが、例示的な実施形態のメカニズムを実装するように具体的に構成される専用コンピューティング・デバイスになり、汎用コンピューティング・デバイスではないことは、認識されるべきである。さらに、本明細書に説明されるように、例示的な実施形態のメカニズムの実装によって、コンピューティング・デバイスの機能性が改善され、かつユーザ入力デバイス205~208などのクライアント・コンピューティング・デバイス610のユーザ入力デバイスから、ユーザ入力205~208などのユーザ入力の評価を促進する有用で具体的な結果が提供される。ユーザ入力は、時空間特徴、時間的特徴、および固定/カテゴリ特徴に関する行動バイオメトリクスを表す。BBDLモデル340およびBBDLパイプライン200は、ユーザ入力の行動バイオメトリクスを特徴付け、かつ認定ユーザの保護されたリソースへのアクセスのために、ユーザ・プロファイル・レジストリ630にその後格納可能であるユーザのプロファイルを生成する。ユーザ・プロファイル・レジストリ630におけるユーザ・プロファイルは、後続のユーザ入力の行動バイオメトリクスの特徴付けと比較されることによって、後続のセッションにおいてユーザを認証してよい。
図4における比較ロジック470および更新ロジック480などの認証ロジック620は、例えば、ユーザを認証するために行動バイオメトリクスの特徴付けを比較し、ユーザが真のユーザではない場合、保護されたリソースへのアクセスは拒否され得る。ユーザが認定ユーザである場合、ユーザは保護されたリソースへのアクセスが許可され得、いくつかの実施形態では、認定ユーザのプロファイルは、セッションのユーザ入力の特徴付けによって、例えば、更新ロジック470を含む認証ロジック620によって更新されることによって、ユーザ・プロファイルが動的に更新されてよい。
【0102】
いくつかの実施形態では、ユーザ入力は、ユーザ・インターフェース・デバイス292~295のセンサから受信されてよく、これは、クライアント・コンピューティング・システム610の一部であり得、他のデータはクライアント・コンピューティング・システム610自体を特徴付けている。ユーザ入力またはデバイス情報あるいはその両方は、ネットワーク602を介してBBDLパイプライン200を実装するサーバ604に提供された後、そのユーザ入力を処理してユーザを認証してよい。サーバ604はさらにまた、保護されたリソースへのアクセスを認定するまたは拒否する出力を返してよい。クライアント/サーバ構成が
図6に示されているが、例示的な実施形態がそのように限定されないことは、認識されるべきである。さらに、クライアント・コンピューティング・デバイス610~614は、クライアント・コンピュータ、タブレット・コンピュータ、スマートフォン、他のスマート・デバイス、およびモノのインターネット(IoT)デバイスなどの多くの異なる形態を取り得る。手短に言えば、いずれのコンピューティング・デバイスもユーザ入力インターフェースを有し、これを通して、行動バイオメトリクス・ベースのユーザ入力は受信され、かつBBDLパイプラインに提供されてよく、BBDLモデルは本発明の範囲から逸脱することなく使用されてよい。
【0103】
上記のように、例示的な実施形態のメカニズムは、BBDLパイプライン200を実装し、かつユーザ入力の行動バイオメトリクス深層学習ベースの認証を行うための動作を行うために、具体的に構成されたコンピューティング・デバイスまたはデータ処理システムを利用する。これらのコンピューティング・デバイスまたはデータ処理システムは、ハードウェア構成、ソフトウェア構成、またはハードウェア構成とソフトウェア構成との組み合わせのいずれかによって、本明細書に説明されるシステム/サブシステムの1つまたは複数を実装するように具体的に構成されるさまざまなハードウェア要素を含んでよい。
図7は、例示的な実施形態の態様が実装され得る単なる1つの例示のデータ処理システムのブロック図である。データ処理システム700は、
図6におけるサーバ604などのコンピュータの一例であり、ここで、本発明の例示的な実施形態のプロセスおよび態様を実施するコンピュータ使用可能コードまたは命令が位置するまたは実行されるあるいはその両方であることで、本明細書に説明される例示的な実施形態の動作、出力、および外部効果を実現し得る。
【0104】
示される例では、データ処理システム700は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH)702と、サウス・ブリッジおよび入出力(I/O)コントローラ・ハブ(SB/ICH)704とを含むハブ・アーキテクチャを用いる。処理ユニット706、メイン・メモリ708、およびグラフィック・プロセッサ710は、NB/MCH702に接続される。グラフィック・プロセッサ710は、アクセラレーテッド・グラフィック・ポート(AGP)を通してNB/MCH702に接続されてよい。
【0105】
示される例では、ローカル・エリア・ネットワーク(LAN)アダプタ712はSB/ICH704に接続する。オーディオ・アダプタ716、キーボードおよびマウス・アダプタ720、モデム722、リードオンリ・メモリ(ROM)724、ハード・ディスク・ドライブ(HDD)726、CD-ROMドライブ730、ユニバーサル・シリアル・バス(USB)ポートおよび他の通信ポート732、ならびにPCI/PCIeデバイス734は、バス738およびバス740を通してSB/ICH704に接続する。PCI/PCIeデバイスは、例えば、イーサネット(R)アダプタ、アドイン・カード、およびノートブック・コンピュータ用のPCカードを含んでよい。PCIでは、カード・バス・コントローラを使用するが、PCIeでは使用しない。ROM724は、例えば、フラッシュ基本入出力システム(BIOS)であってよい。
【0106】
HDD726およびCD-ROMドライブ730は、バス740を通してSB/ICH704に接続する。HDD726およびCD-ROMドライブ730は、例えば、Integrated drive electronics(IDE)またはシリアル・アドバンスド・テクノロジ・アタッチメント(SATA)インターフェースを使用してよい。スーパI/O(SIO)デバイス736はSB/ICH704に接続されてよい。
【0107】
オペレーティング・システムは処理ユニット706上で実行する。オペレーティング・システムは、
図7におけるデータ処理システム700内のさまざまなコンポーネントの制御を調整しかつ提供する。クライアントとして、オペレーティング・システムは、マイクロソフト(R)のWindows10(R)などの市販のオペレーティング・システムであってよい。Java(TM)プログラミング・システムなどのオブジェクト指向プログラミング・システムは、オペレーティング・システムと併せて実行してよく、データ処理システム700上で実行するJava(TM)プログラムまたはアプリケーションからオペレーティング・システムへの呼び出しを提供する。
【0108】
サーバとして、データ処理システム700は、例えば、Advanced Interactive Executive(AIX(R))オペレーティング・システムまたはLINUX(R)オペレーティング・システムを実行するIBM(R)eServer(TM)System p(R)コンピュータ・システムまたはPower(TM)プロセッサ・ベースのコンピュータ・システムなどであってよい。データ処理システム700は、処理ユニット706に複数のプロセッサを含む対称マルチ・プロセッサ(SMP)システムであってよい。代替的には、単一のプロセッサ・システムが用いられてよい。
【0109】
オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムのための命令は、HDD726などのストレージ・デバイス上に位置し、処理ユニット706による実行のためにメイン・メモリ708にロードされてよい。本発明の例示的な実施形態のためのプロセスは、例えば、メイン・メモリ708、ROM724などのメモリ、または例えば1つもしくは複数の周辺デバイス726および730に位置し得るコンピュータ使用可能プログラム・コードを使用して、処理ユニット706によって実行されてよい。
【0110】
図7に示されるようなバス738またはバス740などのバス・システムは、1つまたは複数のバスで構成されてよい。当然ながら、バス・システムは、ファブリックまたはアーキテクチャに取り付けられた異なるコンポーネントまたはデバイス間のデータの転送を提供する任意のタイプの通信ファブリックまたはアーキテクチャを使用して実装されてよい。
図7のモデム722またはネットワーク・アダプタ712などの通信ユニットは、データを送信および受信するために使用される1つまたは複数のデバイスを含んでよい。メモリは、例えば、
図7におけるNB/MCH702などにおいて見出される、メイン・メモリ708、ROM724、またはキャッシュであってよい。
【0111】
上述されるように、いくつかの例示的な実施形態では、例示的な実施形態のメカニズムは、特定用途向けハードウェアもしくはファームウェアなど、または、処理ユニット706などの1つまたは複数のハードウェア・プロセッサによる実行のために、HDD726などのストレージ・デバイスに格納され、かつメイン・メモリ708などのメモリにロードされるアプリケーション・ソフトウェアとして実装され得る。そのように、
図7に示されるコンピューティング・デバイスは、例示的な実施形態のメカニズムを実装するように具体的に構成され、かつ
図2におけるBBDLパイプライン200、およびBBDLパイプライン200によって生成されるユーザ入力の特性に基づく認証メカニズムに関して本明細書に説明される動作を実行しかつ出力を生成するように具体的に構成されるようになる。
【0112】
図6および
図7におけるハードウェアが実装に応じて変わる場合があることを当業者は認識するであろう。フラッシュ・メモリ、同等の不揮発性メモリ、または光ディスク・ドライブなどの他の内部ハードウェアまたは周辺機器が、
図6および
図7に示されたハードウェアに加えてまたはその代わりに使用され得る。また、この例示的な実施形態のプロセスは、本発明の範囲から逸脱することなく、以前に述べたSMPシステム以外のマルチプロセッサ・データ処理システムに適用されてよい。
【0113】
さらに、データ処理システム700は、クライアント・コンピューティング・デバイス、サーバ・コンピューティング・デバイス、タブレット・コンピュータ、ラップトップ・コンピュータ、電話機もしくは他の通信デバイス、または携帯情報端末(PDA)などを含むいくつかの異なるデータ処理システムのいずれかの形態を取ってよい。いくつかの実例となる例では、データ処理システム700は、例えば、オペレーティング・システム・ファイルまたはユーザ生成データあるいはその両方を格納するための不揮発性メモリを提供するフラッシュ・メモリで構成されるポータブル・コンピューティング・デバイスであり得る。基本的に、データ処理システム700は、アーキテクチャ上の限定を設けずに、知られているまたは後に開発される任意のデータ処理システムであってよい。
【0114】
上記のように、例示的な実施形態が、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェア要素およびソフトウェア要素の両方を含有する実施形態の形態を取り得ることは、認識されるべきである。1つの例示の実施形態では、例示的な実施形態のメカニズムは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されないソフトウェアまたはプログラム・コードにおいて実装される。
【0115】
プログラム・コードを格納するまたは実行するあるいはその両方を行うのに適したデータ処理システムは、例えば、システム・バスなどの通信バスを通して記憶素子に直接または間接的に結合された少なくとも1つのプロセッサを含むことになる。記憶素子には、プログラム・コードの実際の実行中に用いられるローカル・メモリと、大容量記憶域と、コードが実行中に大容量記憶域から引き出されなければならない回数を減らすために、少なくとも何らかのプログラム・コードの一時的記憶をもたらすキャッシュ・メモリとが含まれ得る。メモリは、ROM、PROM、EPROM、EEPROM、DRAM、SRAM、フラッシュ・メモリ、およびソリッド・ステート・メモリなどを含むがこれらに限定されないさまざまなタイプのものであってよい。
【0116】
入出力デバイス、すなわちI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイスなどを含むがこれらに限定されない)は、直接、または介在する有線または無線のI/Oインターフェースまたはコントローラあるいはその両方などを通して、システムに結合可能である。I/Oデバイスは、例えば、スマートフォン、タブレット・コンピュータ、タッチスクリーン・デバイス、および音声認識デバイスなどを含むがこれらに限定されない、有線接続または無線接続を通して結合された通信デバイスなど、従来のキーボード、ディスプレイ、およびポインティング・デバイスなど以外の多くの異なる形態を取ってよい。知られているまたは後に開発されるいかなるI/Oデバイスも、例示的な実施形態の範囲内にあることが意図されている。
【0117】
ネットワーク・アダプタはまた、データ処理システムを、介在するプライベート・ネットワークまたはパブリック・ネットワークを通して他のデータ処理システムまたは遠隔プリンタまたはストレージ・デバイスに結合できるようにするためにシステムに結合されてよい。モデム、ケーブル・モデム、およびイーサネット・カードは、有線通信用のネットワーク・アダプタの市販のタイプのごくわずかにすぎない。802.11a/b/g/n無線通信アダプタおよびBluetooth(R)無線アダプタなどを含むがこれらに限定されない、無線通信ベースのネットワーク・アダプタも利用されてよい。知られているまたは後に開発されるいかなるネットワーク・アダプタも、本発明の範囲内にあることが意図されている。
【0118】
本発明の説明は、例示および説明の目的で提示されており、開示された形態で本発明を網羅することもそれに限定されることも意図するものではない。説明した実施形態の範囲から逸脱しない多くの変更および変形が、当業者には明らかになるであろう。実施形態は、本発明の原理や実際的応用を最も良く説明するために、かつ、当業者が、企図される特定の使用に適したさまざまな変更を伴うさまざまな実施形態について本発明を理解できるようにするために選定されかつ説明された。本明細書で使用される専門用語は、実施形態の原理、市場で見出される技術を凌ぐ実際的応用または技術的改善を最も良く説明するために、または、当業者が、本明細書に開示された実施形態を理解できるようにするために選定された。
【国際調査報告】