(58)【調査した分野】(Int.Cl.,DB名)
特定の活動に対するグローバルモデルを取得するステップであって、前記グローバルモデルは、ユーザの集合によって実行される前記特定の活動に関連付けられた複数の観察を表す入力データに基づいて導き出され、前記入力データは、前記ユーザのクライアントデバイスの1つまたは複数のセンサを用いて測定され、前記グローバルモデルは、前記入力データを使用してトレーニングを行うことによって生成される、ステップと、
前記グローバルモデルを使用して、特定のユーザによって実行される前記特定の活動に関連付けられた期待される観察を表す期待されるデータを決定するステップと、
前記特定のユーザによって操作されるコンピューティングデバイスによって、前記特定のユーザによって実行される前記特定の活動に関連付けられた実際の観察を表す特定のデータを受信するステップと、
前記コンピューティングデバイスによって、ならびに(i)前記期待されるデータおよび(ii)前記特定のデータを使用することによって、前記特定のユーザの残差データを決定するステップと、
前記グローバルモデルと前記残差データとに基づいてトレーニングを行うことによって前記特定のユーザのローカルモデルを導き出すステップと
を含むコンピュータに実装された方法。
(i)前記期待されるデータおよび(ii)前記特定のデータを使用して、前記残差データを決定するステップは、前記期待されるデータと前記特定のデータとの差に基づいて、前記残差データを決定するステップを含む請求項1に記載の方法。
前記ローカルモデルを使用して、前記特定のユーザによって実行される前記特定の活動に関連付けられた期待される観察を表す特定の期待されるデータを決定するステップであって、前記ローカルモデルによって決定された前記特定の期待されるデータは、前記特定のデータと実質的に一致する、ステップ
を含む請求項1に記載の方法。
前記グローバルモデルは、第1の複数の主軸によって構成された第1のベクトル空間を含み、前記ローカルモデルは、前記第1の複数の主軸とは異なる第2の複数の主軸によって構成された第2のベクトル空間を含む請求項1に記載の方法。
前記特定の活動とは異なる第2の活動に対する第2のグローバルモデルを取得するステップであって、前記第2のグローバルモデルは、ユーザの集合によって実行される前記第2の活動に関連付けられた複数の観察を表す第2の入力データに基づいて導き出される、ステップと、
前記第2のグローバルモデルを使用して、前記特定のユーザによって実行される前記第2の活動に関連付けられた期待される観察を表す第2の期待されるデータを決定するステップと、
前記特定のユーザによって操作される前記コンピューティングデバイスによって、前記特定のユーザによって実行される前記第2の活動に関連付けられた実際の観察を表す第2の特定のデータを受信するステップと、
前記コンピューティングデバイスによって、ならびに(i)前記第2の期待されるデータおよび(ii)前記第2の特定のデータを使用することによって、前記特定のユーザの第2の残差データを決定するステップと
を含む請求項1に記載の方法。
前記特定のユーザの前記ローカルモデルを導き出すステップは、少なくとも(i)前記残差データおよび(ii)前記第2の残差データに基づいて、前記特定のユーザの前記ローカルモデルを導き出すステップを含む請求項7に記載の方法。
前記グローバルモデルは、第1の複数の主軸によって構成された第1のベクトル空間を含み、前記ローカルモデルは、前記第1の複数の主軸とは異なる第2の複数の主軸によって構成された第2のベクトル空間を含む請求項10に記載のコンピュータ可読媒体。
【発明を実施するための形態】
【0014】
様々な図面における同様の参考番号および名称は、同様の要素を示している。
【0015】
図1Aは、例示的なシステム100を示すブロック図である。システム100は、ユーザ活動に対する期待される観察を決定するためにグローバルモデルを評価するために使用され得る。システム100は、また、期待される観察と実際の観察との比較に基づいて残差データを決定するために使用され得る。グローバルモデルは、1つまたは複数のそれぞれのコンピューティングデバイスを操作するユーザの集合から集団レベルのデータを使用してトレーニングされたモデルを指す。グローバルモデルは、特定のユーザに対する特定のコンピューティングデバイスに送信され得て、ローカルに評価され得る。グローバルモデルによって予測された期待される観察とユーザの実際の観察との比較は、ユーザの一意の特徴を表すことができる残差データを提供する。
【0016】
システム100は、クライアントデバイス110、コンピューティングシステム120、およびネットワーク130を含む。一般的に、コンピューティングシステム120は、クライアントデバイス110に、トレーニングされたグローバルモデル142に基づいて、代表的なグローバルモデル144を提供するリモートサーバシステムの場合がある。コンピューティングシステム120は、トレーニングするユーザの群に関連付けられた1つまたは複数の活動または振る舞いに対する集団レベルのベースラインを提供するために、トレーニングされたグローバルモデル142を導き出すためのモデルトレーニングモジュール140を含む。コンピューティングシステム120によって実行される機能は、個々のコンピュータシステムによって実行され得るか、または複数のコンピュータシステムを横断して分散され得る。
【0017】
システム100において、クライアントデバイス110は、たとえば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ウェアラブルコンピュータ、セルラー方式の電話、スマートフォン、音楽プレイヤー、電子ブックリーダ、ナビゲーションシステム、または他の適切なコンピューティングデバイスの場合がある。一部の実装では、クライアントデバイス110は、クライアントデバイス110のユーザの1つまたは複数の特性を測定するために1つまたは複数のセンサを含むことができる。たとえば、クライアントデバイス110は、加速度計、GPS受信機、ジャイロスコープ、磁力計、マイクロホン、タッチパネル、カメラ、ユーザ操作(たとえばキーボード、アプリケーションの使用など)、または他の適切なセンサを含むことができる。一部の実装では、ユーザの活動についての観察は、活動の間におけるユーザからの1つまたは複数の測定された特性の組合せを含む。一部の実装では、1つまたは複数のソフトウェアモジュールまたはエンジンによって処理されるように、観察は、1つまたは複数の測定された特性の組合せを含むことができる。活動の例は、歩行、ランニング、運転、メール送信、電話での会話、写真の記録、ビデオの記録、またはクライアントデバイス110が測定することができる他の活動を含む。
【0018】
一部の実装では、クライアントデバイス110、たとえばユーザの電話は、コンピューティングシステム120から代表的なグローバルモデル144を受信することができ、代表的なグローバルモデル144は、トレーニングされたグローバルモデル142の圧縮または簡素化されたバージョンの場合がある。クライアントデバイス110は、残差データ158を決定するために残差モジュール150を含む。クライアントデバイス110は、代表的なグローバルモデル144を記憶し、代表的なグローバルモデル144をローカルに評価し、リモートサーバシステム(たとえばコンピューティングシステム120)と通信することなく、残差データ158を決定することができる。その結果、ユーザ102の特定の観察は、リモートサーバシステムから保留され得る。さらに、
図1Bに関してより詳細に下に記述するように、残差データ158は、ユーザ102のより正確な表現を提供するために、ユーザ102に対するローカルモデルをトレーニングするために使用され得る。
【0019】
ネットワーク130は、有線もしくは無線、または両方の組合せの場合がある。ネットワーク130は、たとえば、無線セルラーネットワーク、無線ローカルエリアネットワーク(WLAN)もしくはWi-Fiのネットワーク、第3世代(3G)もしくは第4世代(4G)の移動体通信ネットワーク、有線イーサネット(登録商標)ネットワーク、イントラネットなどプライベートネットワーク、インターネットなどパブリックネットワーク、またはネットワークの任意の適切な組合せを含むことができる。
【0020】
図1Aは、また、ステージ(A)から(F)に示すように、データの例示的な流れを示している。ステージ(A)から(F)は、図示された順序で発生するか、または図示された順序とは異なる適切な順序で発生し得る。一部の実装では、ステージ(A)から(F)の1つまたは複数は、オフラインで発生する場合があり、クライアントデバイス110がネットワーク130に接続されていない場合、コンピューティングシステム120またはクライアントデバイス110は、計算を実行することができる。
【0021】
ステージ(A)の間に、コンピューティングシステム120は、集団レベルのトレーニングデータ122の集合を取得し、モデルトレーニングモジュール140に集団レベルのトレーニングデータ122を入力する。一般的に、集団レベルのトレーニングデータ122は、複数のクライアントデバイスによって収集された複数の観察を表し、観察は、ユーザの集合の各々によって実行される1つまたは複数の活動に関連付けられる。一部の実装では、集団レベルのトレーニングデータ122は記憶され、コンピューティングシステム120によってアクセス可能の場合がある。たとえば、クライアントデバイスは、方向、場所、動き、速さ、タイプのパターン、電話の使用、またはクライアントデバイスによる他の測定可能なパラメータを測定するために1つまたは複数のセンサを含むことができる。これらの測定は、活動に対する観察を生成するために、クライアントデバイスのユーザによって実行される活動と関連される場合がある。複数のクライアントデバイスからの観察は、集団レベルのトレーニングデータ122の集合を形成するために集約され得る。一部の実装では、集団レベルのトレーニングデータ122は、ユーザによって実行される単一の観察を含むことができる。他の一部の実装では、集団レベルのトレーニングデータ122は、同じユーザによって実行された複数の観察を含むことができる。
【0022】
一部の実装では、集団レベルのトレーニングデータ122は、活動に関連付けられた特定のタイプの測定されたデータを含むことができる。他の一部の実装では、集団レベルのトレーニングデータ122は、活動に関連付けられた複数のタイプの測定されたデータを含むことができる。一部の実装では、集団レベルのトレーニングデータ122は、ユーザの集合の人口統計を表すデータを含むことができる。たとえば、コンピューティングシステム120は、集団レベルのトレーニングデータ122に対するユーザの性別に基づいて、トレーニングデータを選択することができる。一部の実装では、集団レベルのトレーニングデータ122は、匿名の場合がある。
【0023】
一部の実装では、集団レベルのトレーニングデータ122は、指定された形式に正規化され得る。たとえば、異なる製造業者によって製造されたクライアントデバイスから収集されたトレーニングデータは、集団レベルのトレーニングデータ122へと集約する前に標準的な形式に正規化され得る。別の例として、異なるオペレーティングシステムを実行するクライアントデバイスから収集されたトレーニングデータは、集団レベルのトレーニングデータ122へと集約する前に標準的な形式に正規化され得る。一部の実装では、複数のタイプの測定されたデータは、特定の形式に正規化され得る。たとえば、ユーザに対する特定の活動に関連付けられた複数のタイプの測定されたデータは、単一のベクトルによって表され得る。一部の実装では、1つまたは複数の重みは、複数のタイプの測定されたデータの1つまたは複数に割り当てられ得る。
【0024】
段階(B)の間に、コンピューティングシステム120のモデルトレーニングモジュール140は、グローバルモデルをトレーニングするために集団レベルのトレーニングデータ122を使用し、結果としてトレーニングされたグローバルモデル142が得られる。たとえば、モデルトレーニングモジュール140は、主成分分析(PCA)に基づいてグローバルモデルをトレーニングすることができる。別の例として、非時系列のグローバルモデルは、確率的勾配降下法に基づいてトレーニングされ得る。例示的な非時系列モデルの記述は、「Wsabie: Scaling Up To Large Vocabulary Image Annotation」、Westonら、Proceedings of the International Joint Conference on Artificial Intelligence、IJCAI (2011)に見られ得る。別の例として、再発性のニューラルネットワークなど時系列のグローバルモデルは、ベクトル値の集団レベルのトレーニングデータを使用してトレーニングされ得る。例示的な時系列モデルの記述は、「Generating sequences with recurrent neural networks」、Gravesら、CoRR abs/1308.0850に見られ得る。一部の実装では、グローバルモデルは、特定の活動に関連付けられた集団レベルのトレーニングデータ122に基づいてトレーニングされる。他の一部の実装では、グローバルモデルは、複数の活動に関連付けられた集団レベルのトレーニングデータ122に基づいてトレーニングされる。
【0025】
トレーニングの間に、1つまたは複数の目的関数124は、モデルトレーニングモジュール140への入力として提供され得る。一部の実装では、目的関数124は、トレーニングされたグローバルモデルがトレーニングの後に生成するべき望まれる出力として指定された目標ベクトルの場合がある。目的関数124は、トレーニングされたグローバルモデル142を最適化するためのしきい値を指定することができる。たとえば、目的関数124は、PCAに基づいてグローバルモデルを導き出すために信号およびノイズの変動の最小の信号対雑音比を指定することができる。目的関数124は、トレーニングされたグローバルモデル142の集団レベルのトレーニングデータ122を分類するために1つまたは複数の条件を提供することができる。たとえば、目的関数124は、ユーザは歩いていることを特徴付けるために第1の条件を指定することができ、ユーザが走っていることを特徴付けるために第2の条件を指定することができる。
【0026】
1つまたは複数の目的関数124を満たすモデルは、トレーニングされたグローバルモデル142として指示され得る。一部の実装では、モデルトレーニングモジュール140のパラメータは、コンピューティングシステム120によって自動的に調整される。他の一部の実装では、モデルトレーニングモジュール140のパラメータは、コンピューティングシステム120のオペレータによって手作業で調整される。
【0027】
ステージ(C)の間に、グローバルモデルがトレーニングされると、トレーニングされたグローバルモデル142に基づいて代表的なグローバルモデル144が、ネットワーク130を通じて、コンピューティングシステム120からクライアントデバイス110に送信される。一部の実装では、代表的なグローバルモデル144は、トレーニングされたグローバルモデル142の圧縮または簡素化されたバージョンの場合があるため、代表的なグローバルモデル144は、トレーニングされたグローバルモデル142の部分、またはサブセットを含むことができる。たとえば、トレーニングされたグローバルモデル142が、m個の直交軸を有するベクトル空間としてPCA下でトレーニングされる場合、代表的なグローバルモデル144は、(m-1)個の直交軸を有するベクトル空間を含むことができ、ここでmは、1を超える整数である。
【0028】
ステージ(D)の間に、クライアントデバイス110を操作するユーザ102は、クライアントデバイス110に活動データ152を提供する。活動データ152は、ユーザ102が特定の活動を実行している間に、クライアントデバイス110の1つまたは複数のセンサによって測定されるデータの場合がある。一部の実装では、活動データ152は、活動に関連付けられた特定のタイプの測定されたデータを含む。他の一部の実装では、活動データ152は、活動に関連付けられた複数のタイプの測定されたデータを含む。クライアントデバイス110は、ユーザ102が特定の活動を実行したことを確認するために、ユーザ102とともに検証することができる。一部の実装では、クライアントデバイス110は、活動データ152を記憶する。
【0029】
活動データ152は、単一の観察を通じて測定されたデータを含むことができる。あるいは、活動データ152は、複数の観察を通じて測定されたデータを含むことができる。たとえば、ユーザ102は、複数の日数を通じて特定の時間、クライアントデバイス110を用いてジョギングする場合がある。活動データ152は、1日を通じて1度のランニングの間に測定されたデータ、または複数の日数を通じて複数のランニングの間に測定されたデータを含むことができる。
【0030】
クライアントデバイス110は、特定の形式へと活動データ152を正規化することができる。加えて、1つまたは複数の重みは、活動データ152の1つまたは複数の測定に割り当てられ得る。
【0031】
ステージ(E)の間に、クライアントデバイス110は、期待される出力データ156を決定するために代表的なグローバルモデル144を評価する。一般的に、期待される出力データ156は、ユーザ102によって実行された活動に関連付けられた特性の予測を表す。一部の実装では、期待される出力データ156は、ベクトルの場合がある。たとえば、代表的なグローバルモデル144は、PCAに基づいて(m-1)個の主軸を持つ縮小された次元のベクトル空間を有するモデルの場合があり、ここで、各主軸に沿ったデータは、ガウス分布している。代表的なグローバルモデル144は、縮小された次元のベクトル空間で平均されたベクトルを決定することができ、次いで、m個の直交軸を用いて元のベクトル空間に平均されたベクトルを射影する。期待される出力データ156は、元のベクトル空間の射影されたベクトルの場合がある。
【0032】
一部の実装では、クライアントデバイス110は、期待される出力データ156を決定するために、代表的なグローバルモデル144にユーザ102のプロファイルデータを入力することができる。たとえば、クライアントデバイス110は、ユーザ102の年齢層に対する期待される出力データ156を決定するために、代表的なグローバルモデル144にユーザ102の年齢を入力することができる。この決定は、クライアントデバイス110でローカルに実行されるため、したがって、ユーザのプロファイルは、コンピューティングシステム120に送信されない。
【0033】
ステージ(F)の間に、クライアントデバイス110の残差モジュール150は、活動データ152と、代表的なグローバルモデル144からの期待される出力データ156とを比較し、残差データ158を決定する。一般的に、残差データ158は、ユーザ102の特徴的な識別特性を表す。一部の実装では、残差モジュール150は、活動データ152と期待される出力データ156との差を決定することによって、残差データ158を決定する。たとえば、残差モジュール150は、活動データ152を表す第1のベクトルと、期待される出力データ156を表す第2のベクトルとの間のベクトル距離を決定することによって、残差データ158を決定することができる。
【0034】
図1Bは、ユーザ102に対するローカルモデルをトレーニングするために残差データを使用することができる例示的なシステム100を示すブロック図である。一般的に、モデル(たとえばグローバルモデルまたはローカルモデル)は、可逆である任意の表現モデルf(x)を指すことができ、ここで、f(x)によって出力された表現を想定すると、最大尤度の擬似観察(maximum likelihood pseudo-observation)f
-1(f(x))が見つけられ得る。たとえば、ローカルモデルは、ベクトル値f
-1(f(x))-xを予測するためにトレーニングされ得る。一部の実装では、モデルは、可逆でない表現モデル(representational model)f(x)を指す場合があるが、推論関数gは、擬似観察g(f(x))を推定するためにf(x)によって出力された表現に適用され得る。たとえば、グローバルモデルまたはローカルモデルは、複数の隠れ層を用いるニューラルネットワークの場合があるため、出力を反転するのは難しいが、推論関数は、入力観察を推定するために出力に適用され得る。
【0035】
一般的に、クライアントデバイス110は、代表的なグローバルモデル144より正確にユーザ102を表すローカルモデルをトレーニングするように構成されたモデルトレーニングモジュール160を含む。ローカルモデルは、観察の間に測定された実際のデータを開示することなく、ユーザ102の表現としてコンピューティングシステム120に送信され得る。有利なことに、実際の観察は、クライアントデバイス110にローカルに記憶され、コンピューティングシステム120に送信されないので、ユーザ102のプライバシーが保護される。一部の実装では、ユーザ102は、コンピューティングシステム120への実際の観察の開示を制御することができる。
【0036】
図1Bは、また、ステージ(G)から(I)に示したように、データの例示的な流れを示している。ステージ(G)から(I)は、図示した順序で発生する場合があるか、または図示した順序とは異なる適切な順序で発生することができる。一部の実装では、ステージ(G)から(I)の1つまたは複数がオフラインで発生する場合があり、クライアントデバイス110がネットワーク130に接続されていない場合、コンピューティングシステム120またはクライアントデバイス110は計算を実行することができる。
【0037】
ステージ(G)の間に、クライアントデバイス110はモデルトレーニングモジュール160に、残差データ158、代表的なグローバルモデル144、および1つまたは複数の目的関数162を入力する。ステージ(H)の間に、モデルトレーニングモジュール160は、ユーザ102に対してトレーニングされたローカルモデル164を決定する。一部の実装では、ローカルモデルに対するトレーニングプロセスは、グローバルモデルに対するトレーニングプロセスに類似している。たとえば、PCAを使用して、モデルトレーニングモジュール160は、実際の観察からの信号およびノイズの変動の信号対雑音比を最小限にする代表的なグローバルモデル144の更新される主軸を決定するために、残差データ158を使用することができる。一部の実装では、ローカルモデルに対するトレーニングプロセスは、異なるモデルクラスを使用することができる。たとえば、モデルトレーニングモジュール160は、異なる活動に関連付けられたローカルモデルを決定するために残差データ158を使用することができる。
【0038】
ユーザ102がクライアントデバイス110を操作していないときに、トレーニングプロセスが発生する場合がある。あるいはまたは代わりに、クライアントデバイス110が電源アウトレットに接続されているときに、トレーニングプロセスが発生する場合がある。一部の実装では、クライアントデバイス110は、バッチでトレーニングプロセスを実行し、複数のローカルモデルは、異なる活動に対してトレーニングされ得る。一部の実装では、クライアントデバイス110は、残差データ158を受信すると直ちにトレーニングプロセスを実行する。一部の実装では、クライアントデバイス110は、トレーニングプロセスを定期的に実行する。
【0039】
一部の実装では、モデルトレーニングモジュール160は、時間とともにトレーニングされたローカルモデル164を更新する。たとえば、ユーザ102が毎日走る場合、残差モジュール150は、これらのランニングに対する実際の観察を表すデータを現在のトレーニングされたローカルモデル164によって決定された期待される出力データと比較ことができる。残差モジュール150は、更新された残差データを決定することができ、モデルトレーニングモジュール160は、それに応じて更新されたローカルモデルを決定することができる。このプロセスは、クライアントデバイス110が、ユーザ102が時間とともに経験する可能性がある姿勢または他の変更を取り込むことを許可する。
【0040】
ステージ(I)の間に、クライアントデバイス110は、コンピューティングシステム120に代表的なローカルモデル166を送信する。一部の実装では、代表的なローカルモデル166は、トレーニングされたローカルモデル164とは異なる。たとえば、代表的なローカルモデル166は、トレーニングされたローカルモデル164の圧縮されたバージョンの場合がある。別の例として、クライアントデバイス110は、代表的なローカルモデル166を生成するために、トレーニングされたローカルモデル164からユーザ102に関するプライベート情報を削除することができる。
【0041】
図1Bに図示していないが、一部の実装では、ローカルモデルは、コンピューティングシステム120によってトレーニングされる。たとえば、クライアントデバイス110は、コンピューティングシステム120に残差データ158を送信することができ、コンピューティングシステム120は、ユーザ102を表すために更新されたモデルをトレーニングする際に、トレーニングデータまたは目的関数として残差データ158を使用することができる。
【0042】
図1Cは、ユーザの識別情報を認証するために残差データを使用することができる例示的なシステム101を示すブロック図である。一般的に、残差データ158がクライアントデバイス110によって決定された後、クライアントデバイス110は、ユーザ102の識別情報を検証するために、後に生成される新しい残差データを残差データ158と比較することができる。クライアントデバイス110は、ユーザ102の癖に基づいて、ユーザ102の識別情報を検証するように構成された検証モジュール170を含む。
【0043】
図1Cは、また、ステージ(J)から(O)に示したように、データの例示的な流れを示している。ステージ(J)から(O)は、図示された順序で発生するか、または図示された順序とは異なる適切な順序で発生し得る。一部の実装では、ステージ(J)から(O)の1つまたは複数がオフラインで発生する場合があり、クライアントデバイス110がネットワーク130に接続されていない場合、クライアントデバイス110は、計算を実行することができる。
【0044】
ステージ(J)の間に、ユーザ102は活動を実行し、クライアントデバイス110は、第2の活動データ172を測定および収集する。たとえば、歩いている間に、ユーザ102は、特定の方向にクライアントデバイス110を保持することができる。クライアントデバイス110は、クライアントデバイス110の方向を継続的または定期的に測定することができる。別の例として、走っている間に、ユーザ102は、特定の範囲の速度で移動することができる。クライアントデバイス110は、クライアントデバイス110の動きを継続的または定期的に測定することができる。別の例として、クライアントデバイス110で話している間に、ユーザ102は、1つまたは複数の会話の特徴を用いて話すことがある。クライアントデバイス110は、ユーザの発言を測定し、会話の特徴を継続的または定期的に分析することができる。ステージ(K)の間に、第2の活動172および期待される出力データ156は、残差モジュール150への入力として使用される。ステージ(L)の間に、残差モジュール150は、第2の残差データ178を決定する。
【0045】
ステージ(M)の間に、残差データ158および第2の残差データ178は、検証モジュール180への入力として使用される。ステージ(N)の間に、検証モジュール180は、第2の残差データ178がユーザ102の残差データ158と実質的に一致するかどうかを決定する。一部の実装では、第2の残差データ178と残差データ158との差が、しきい値条件を満たしている場合、第2の残差データ178は、実質的に残差データ158に一致する。検証モジュール180は、検証結果182を出力することができる。
【0046】
ステージ(O)の間に、クライアントデバイス110は、ユーザ102に検証結果182を表す表示を提供することができる。一部の実装では、クライアントデバイス110がユーザ102の識別情報を受け入れた場合、クライアントデバイス110は、ユーザ102に、検証が成功したことの視覚または音声による表示を送ることができる。他の一部の実装では、クライアントデバイス110がユーザ102の識別情報を受け入れた場合、クライアントデバイス110は、ユーザ102に検証結果182を提示することなく、その動作を継続することができる。
【0047】
クライアントデバイス110がユーザ102の識別情報を拒否した場合、クライアントデバイス110は、ユーザ102に、検証が拒否されたことの視覚または音声による表示を送ることができる。一部の実装では、クライアントデバイス110がユーザ102の識別情報を拒否した場合、クライアントデバイス110は、ユーザ102の識別情報を検証する別の方法をユーザ102に促す。試みの数がしきい値を超えた場合、クライアントデバイス110は、ユーザ102がユーザの識別情報の検証をさらに試みることを許可しない場合がある。
【0048】
図2は、ユーザに対するローカルモデルをトレーニングするために複数の活動の残差データを使用する例示的なシステム200を示すブロック図である。一般的に、コンピューティングシステム120は、各活動に対してそれぞれのグローバルモデルをトレーニングすることができる。クライアントシステム110が、各活動に関連付けられた癖、または残差データを決定すると、総合的なユーザモデルは、ユーザの総合的なプロファイルを表すようにトレーニングされ得る。たとえば、クライアントデバイス110は、ユーザによって実行されている様々な活動を分類するために総合的なユーザモデルを使用することができる。別の例として、複数の総合的なユーザモデルがクライアントデバイス110に記憶されている場合、クライアントデバイス110は、特定のユーザの癖によって複数の潜在的なユーザの中で特定のユーザを識別することができる。
【0049】
システム200は、入力として複数の残差データ201a〜201nを受信し、出力としてユーザモデル209を決定するように構成された総合的なモデルトレーニングモジュール207を含む。一部の実装では、ユーザモデル209は、たとえば
図1Bのクライアントデバイス110などのクライアントデバイスでトレーニングされ得る。他の一部の実装では、ユーザモデル209は、たとえば
図1Aのコンピューティングシステム120などのコンピューティングシステムでトレーニングされ得る。
【0050】
一部の実装では、総合的なモデルトレーニングモジュール207は、入力として1つまたは複数の追加の入力信号203を受信する。入力信号203は、総合的なモデルトレーニングモジュール207が、ユーザモデル209を生成するために使用することができるデータ、モデル、目的関数、または他の信号の1つまたは複数を含むことができる。たとえば、入力信号203は、1つまたは複数の活動に対する期待される出力データを含むことができる。別の例として、入力信号203は、1つまたは複数の活動に対する実際の観察を含むことができる。別の例として、入力信号203は、1つまたは複数の活動に対して1つまたは複数のグローバルモデルおよび/または1つまたは複数のローカルモデルを含むことができる。
【0051】
一部の実装では、総合的なモデルトレーニングモジュール207は、時間とともにユーザモデル209を更新する。たとえば、総合的なモデルトレーニングモジュール207は、ユーザモデル209を定期的に更新することができる。あるいは別の例では、総合的なモデルトレーニングモジュール207は、更新されている1つまたは複数の活動に対する残差データに応じて、ユーザモデル209を更新することができる。
【0052】
図3は、ローカルモデルを導き出すための例示的なプロセス300を示す流れ図である。プロセス300は、上に記述したクライアントデバイス110など、データ処理装置によって実行され得る。あるいはまたは加えて、プロセス300は、コンピューティングシステム120または別のデータ処理装置によって実行され得る。
【0053】
システムは、特定の活動に対してグローバルモデルを取得する(302)。一部の実装では、グローバルモデルは、ユーザの集合によって実行される特定の活動に関連付けられた複数の観察を表す入力データに基づいて導き出され得る。たとえば、クライアントデバイス110は、コンピューティングシステム120から代表的なグローバルモデル144を受信することができる。
【0054】
システムは、グローバルモデルを使用して、特定のユーザによって実行される特定の活動に関連付けられた期待される観察を表す、期待されるデータを決定する(304)。たとえば、クライアントデバイス110は、期待される出力データ156を決定するために代表的なグローバルモデル144を使用することができる。
【0055】
システムは、特定のユーザによって実行された特定の活動に関連付けられた実際の観察を表す特定のデータを受信する(306)。たとえば、クライアントデバイス110は、ユーザ102から活動データ152を受信することができる。
【0056】
システムは、(i)期待されるデータおよび(ii)特定のデータを使用して、残差データを決定する(308)。たとえば、残差モジュール150は、活動データ152および期待される出力データ156に基づいて、残差データ158を決定することができる。
【0057】
一部の実装では、システムは、期待されるデータと特定のデータとの差に基づいて残差データを決定する。たとえば、期待される出力データ156および活動データ152が等しい次元のベクトルである場合、残差モジュール150は、2つのベクトル間の差に基づいて残差データ158を決定することができる。
【0058】
一部の実装では、システムは、特定の活動に関連付けられた第2の特定のデータを受信する。たとえば、クライアントデバイス110は、ユーザ102から第2の活動データ172を受信することができる。システムは、(i)期待されるデータおよび(ii)第2の特定のデータを使用して、第2の残差データを決定ことができる。たとえば、残差モジュール150は、第2の活動データ172および期待される出力データ156に基づいて、第2の残差データ178を決定することができる。システムは、第2の残差データが残差データと実質的に一致しないと決定することができる。たとえば、検証モジュール180は、第2の残差データ178が残差データ158と実質的に一致しないと決定することができる。一部の実装では、第2の残差データ178と残差データ158との差が、しきい値を満たさない場合、第2の残差データ178は、残差データ158と実質的に一致しない。第2の残差データが残差データと実質的に一致しないとの決定に応じて、システムは、特定のユーザの識別情報が検証されていないと決定することができる。たとえば、検証モジュール180は、検証結果182を出力し、ユーザ102の識別情報が検証されていないとユーザに通知することができる。
【0059】
システムは、残差データに基づいて特定のユーザのローカルモデルを導き出す(310)。一部の実装では、ローカルモデルは、コンピューティングデバイスによって導き出され得る。たとえば、クライアントデバイス110のモデルトレーニングモジュール160は、ローカルモデル164を導き出すことができる。コンピューティングデバイスは、特定のユーザの表現として、1つまたは複数のリモートコンピュータに特定のユーザのローカルモデルを送信することができる。たとえば、クライアントデバイス110は、コンピューティングシステム120に代表的なローカルモデル166を送信することができる。
【0060】
一部の実装では、コンピューティングデバイスは、1つまたは複数のリモートコンピュータに残差データを送信することができ、ローカルモデルは、1つまたは複数のリモートコンピュータによって導き出され得る。たとえば、クライアントデバイス110は、コンピューティングシステム120に残差データ158を送信することができ、コンピューティングシステム120のモデルトレーニングモジュール140は、ユーザ102に対するローカルモデルを導き出すことができる。
【0061】
一部の実装では、システムは、ローカルモデルを使用して、特定のユーザによって実行された特定の活動に関連付けられた期待される観察を表す特定の期待されるデータを決定し、ローカルモデルによって決定された特定の期待されるデータは、特定のデータと実質的に一致する。たとえば、クライアントデバイス110は、活動に関連付けられた期待される出力データを生成するために、トレーニングされたローカルモデル164を使用することができ、期待される出力データは、活動データ152と実質的に一致する。特定の期待されるデータと特定のデータとの差が、しきい値を満たす場合、特定の期待されるデータは、特定のデータと実質的に一致するものとして決定され得る。
【0062】
一部の実装では、システムは、特定の活動とは異なる第2の活動に対する第2のグローバルモデルを取得する。第2のグローバルモデルは、複数のユーザによって実行される第2の活動に関連付けられた複数の観察を表す第2の入力データに基づいて導き出され得る。システムは、第2のグローバルモデルを使用して、ユーザによって実行される第2の活動に関連付けられた期待される観察を表す第2の期待されるデータを決定することができる。システムは、特定のユーザによって操作されるコンピューティングデバイスによって、特定のユーザによって実行される第2の活動に関連付けられた実際の観察を表す第2の特定のデータを受信することができる。システムは、コンピューティングデバイスによって、ならびに(i)第2の期待されるデータおよび(ii)第2の特定のデータを使用することによって、特定のユーザの第2の残差データを決定することができる。
【0063】
一部の実装では、システムは、少なくとも(i)残差データおよび(ii)第2の残差データに基づいて、特定のユーザのローカルモデルを導き出すことができる。たとえば、総合的なモデルトレーニングモジュール207は、残差データ201a〜nに基づいて、ユーザモデル209を導き出すことができる。
【0064】
図4は、主成分分析に基づいてローカルモデルを導き出す例示的なプロセス400を示す流れ図である。プロセス400は、上に記述したシステム100などのデータ処理装置または別のデータ処理装置によって実行され得る。
【0065】
コンピューティングシステム120は、集団レベルのトレーニングデータを受信する(402)。たとえば、特定の活動を実行したすべてのトレーニングするユーザについて、それぞれのクライアントデバイスは、コンピューティングシステム120に合計n個の観察を提供した場合があり、ここで、nは、1以上の整数である。各観察は、m種類の測定を含むことができ、ここで、mは、1以上の整数である。集団レベルのトレーニングデータは、n×mの行列として構成され得る。
【0066】
コンピューティングシステム120は、m次元ベクトル空間へ集団レベルのトレーニングデータをマッピングし、ここで、mは1以上の整数の場合がある(404)。たとえば、次元としてm種類の測定の各々を割り当てることによって、n個の観察の各々は、サイズmを有するベクトルに割り当てられ得る。コンピューティングシステム120は、m個の直交軸を有するベクトル空間にn個のベクトルをマッピングすることができる。
【0067】
コンピューティングシステム120は、マッピングされた集団レベルのトレーニングデータに基づいて、1つまたは複数の主軸を決定する(406)。たとえば、主成分分析を使用して、コンピューティングシステム120は、ベクトル空間の主軸を決定するために共分散の固有ベクトルを見つけることができる。
【0068】
コンピューティングシステム120は、縮小されたベクトル空間次元を有するグローバルモデルを導き出す(408)。たとえば、コンピューティングシステム120は、主軸の各々に沿って変動を決定することができる。特定の主軸の変動がしきい値を満たす場合、コンピューティングシステム120は、特定の主軸に沿ったデータが、本質的なデータを表すと決定することができる。特定の主軸の変動がしきい値を満たさない場合、コンピューティングシステム120は、特定の主軸に沿ったデータがノイズを表すと決定することができ、コンピューティングシステム120は、ベクトル空間の次元を縮小するために、ベクトル空間から特定の主軸を削除することができる。たとえば、1つの主軸が本質的なデータを運ばないとコンピューティングシステム120が決定した場合、コンピューティングシステム120は、(m-1)個の主軸を持つベクトル空間を有するグローバルモデルを生成することができる。n個の観察は、それに応じて縮小されたベクトル空間にマッピングされ、ここで、各ベクトルは(m-1)個の要素を持つ。
【0069】
クライアントデバイス110は、グローバルモデルを受信する(410)。たとえば、クライアントデバイス110は、グローバルモデルとしてn個のベクトルを有する(m-1)個の主軸を持つ、縮小されたベクトル空間を受信することができる。
【0070】
クライアントデバイス110は、期待されるデータを決定する(412)。たとえば、クライアントデバイスは、縮小されたベクトル空間においてn個のベクトルを使用して、平均ベクトルを決定することができる。平均ベクトルは、(m-1)個の要素を持つ。
【0071】
クライアントデバイス110は、m次元ベクトル空間に期待されるデータを再マッピングする(414)。たとえば、クライアントデバイス110は、m個の直交軸を持つ元のベクトル空間へ平均ベクトルを再マッピングすることができる。再マッピングされた平均ベクトルは、活動を実行するユーザに対する期待される擬似観察を表す。
【0072】
クライアントデバイス110は、ユーザデータを受信する(416)。たとえば、ユーザ102が活動を実行している間に、クライアントデバイス110は、ユーザ102からm種類の測定データを含む観察を受信することができる。一部の実装では、クライアントデバイス110は、ユーザ102からk個の観察を受信することができ、ここで、kは、1以上の整数である。
【0073】
クライアントデバイス110は、m次元ベクトル空間にユーザデータをマッピングする(418)。たとえば、クライアントデバイス110は、元のベクトル空間に実際の観察をマッピングすることができる。
【0074】
クライアントデバイス110は、残差データを決定する(420)。たとえば、クライアントデバイス110は、マッピングされた実際の観察と、残差データとして再マッピングされた平均ベクトルとのベクトル距離を決定することができる。
【0075】
クライアントデバイス110は、ローカルモデルを導き出す(422)。たとえば、クライアントデバイス110は、ユーザ102に対するローカルモデルを導き出す際に、トレーニングターゲットとしてベクトル距離を使用することができる。
【0076】
いくつかの実装について記述してきた。しかしながら、本開示の主旨および範囲から逸脱することなく、様々な変更が行われ得ることが理解されるであろう。たとえば、ステップを再順序付け、追加し、または取り除いて、上に示した流れの様々な形式が使用され得る。
【0077】
本明細書に記述した実施形態および機能的な動作のすべては、デジタル電子回路、または本明細書に開示した構造およびそれらの構造的な等価物を含む、コンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらの1つまたは複数の組合せに実装され得る。実施形態は、1つまたは複数のコンピュータプログラム製品、すなわち、データ処理装置によって、またはその動作を制御するために実行するためにコンピュータ可読媒体上にエンコードされたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。コンピュータ可読媒体は、機械可読の記憶デバイス、機械可読の記憶基板、メモリデバイス、機械可読の伝播された信号に影響する合成物、またはそれらの1つまたは複数の組合せの場合がある。コンピュータ可読媒体は、非一時的コンピュータ可読媒体の場合がある。「データ処理装置」という用語は、例をあげると、1つのプログラマブルプロセッサ、1つのコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての装置、デバイス、および機械を包含する。装置は、ハードウェアに加えて、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの1つまたは複数の組合せを構成するコードなど、当該のコンピュータプログラムに対して実行環境を作成するコードを含むことができる。伝播された信号は、人工的に生成された信号、たとえば、適切な受信機装置への送信のために情報をエンコードするために生成される、機械に生成された電気的、光学的、または電磁気的な信号である。
【0078】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られている)は、コンパイルされた言語または解釈された言語を含むプログラミング言語の任意の形式で書かれ得て、独立型プログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境で使用するのに適した他のユニットとしてなど、任意の形式で展開され得る。コンピュータプログラムは、ファイルシステムのファイルに必ずしも対応しない。プログラムは、他のプログラムまたはデータ(たとえば、マークアップ言語文書に保存される1つまたは複数のスクリプト)を保持するファイルの一部、当該のプログラム専用の単一のファイル、または複数の組織されたファイル(たとえば、1つまたは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイル)に記憶され得る。コンピュータプログラムは、1台のコンピュータ、または1つのサイトに位置するか、もしくは複数のサイトに分散され通信ネットワークによって相互に接続された複数のコンピュータで実行されるように展開され得る。
【0079】
本明細書に記述したプロセスおよびロジックの流れは、入力データに対して動作し出力を生成することによって機能を実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なプロセッサによって実行され得る。プロセスおよびロジックの流れは、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)など、専用論理回路によって実行され得て、装置も、また、専用論理回路として実装され得る。
【0080】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの1つまたは複数のプロセッサを含む。一般的に、プロセッサは、読み取り専用メモリまたはランダムアクセスメモリまたは両方から命令およびデータを受信する。コンピュータの必須の要素は、命令を実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般的に、コンピュータは、また、たとえば磁気、光磁気ディスク、または光ディスクなど、データを記憶するための1つまたは複数の大容量記憶デバイスを含むか、またはこれらに対してデータの受信もしくは転送もしくは両方を実行するために動作可能に結合される。しかし、コンピュータには、そのようなデバイスは必要ない。さらに、コンピュータは、たとえば、2、3の例をあげると、タブレットコンピュータ、携帯電話、携帯情報端末(PDA)、モバイル型のオーディオプレイヤー、全地球測位システム(GPS)受信機など、別のデバイスに組み込まれ得る。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例をあげると、たとえばEPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、たとえば内部ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、不揮発性メモリ、メディア、およびメモリデバイスのすべての形式を含む。プロセッサおよびメモリは、専用論理回路によって補足され得るか、または組み込まれ得る。
【0081】
ユーザとの対話を提供するために、実施形態は、ユーザに情報を表示するためのたとえばCRT(陰極線管)またはLCD(液晶ディスプレイ)のモニタなどのディスプレイデバイス、ならびにそれによってユーザがコンピュータに入力を提供できるキーボード、およびマウスまたはトラックボールなどのポインティングデバイスを持つコンピュータに実装され得る。他の種類のデバイスは、同様に、ユーザとの対話を提供するために使用され得る。たとえば、ユーザに提供されるフィードバックは、たとえば視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形式の感覚フィードバックの場合があり、ユーザからの入力は、音響、言語、または触覚の入力を含む任意の形式で受信され得る。
【0082】
実施形態は、たとえば、データサーバとしてなどバックエンドコンポーネントを含む、またはたとえばアプリケーションサーバとしてミドルウェアコンポーネントを含む、またはたとえばユーザが開示された手法の実装と対話することができるようにするグラフィカルユーザインターフェースまたはウエブブラウザを持つクライアントコンピュータなど、フロントエンドコンポーネントを含む、または1つ以上のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムに実装され得る。システムのコンポーネントは、たとえば通信ネットワークなど、デジタルデータ通信の任意の形式または媒体によって相互に接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびたとえばインターネットなどのワイドエリアネットワーク(「WAN」)を含む。
【0083】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般的に、相互に離れており、典型的には、通信ネットワークを通じて対話する。クライアントとサーバの関係は、それぞれのコンピュータで実行されていて、相互にクライアントサーバ関係を持つコンピュータプログラムによって発生する。
【0084】
本明細書は多くの詳細を含むが、これらは制限としてではなく、特定の実施形態に特有の特徴の記述として解釈されるべきである。個別の実施形態の文脈において本明細書に記述した特定の機能は、また、単一の実施形態の組合せにも実装され得る。反対に、単一の実施形態の文脈において記述した様々な機能は、また、複数の実施形態で別々に、または適切な下位の組合せにおいて実装され得る。さらに、機能は、特定の組合せで機能するものとして上に記述され、そのようなものと最初に請求さえされているが、請求された組合せからの1つまたは複数の機能は、一部の場合には、組合せから削除することができ、請求された組合せは、下位の組合せまたは下位の組合せの変形へと導かれ得る。
【0085】
同様に、動作は、特定の順で図面に描写されているが、これは望ましい結果を達成するために、そのような動作が、図示された特定の順もしくは順番に実行されたり、またはすべての図示された動作が実行されたりすることを必要とするものとして理解されるべきではない。特定の状況では、マルチタスクおよび並列処理が有利な場合がある。さらに、上に記述した実施形態の様々なシステムコンポーネントの分離は、すべての実施形態においてそのような分離を必要とするものと理解されるべきではなく、記述されたプログラムコンポーネントおよびシステムは、一般的に、単一のソフトウェア製品に統合されるか、または複数のソフトウェア製品にパッケージ化され得ることを理解されるべきである。
【0086】
したがって、特定の実施形態について記述してきた。他の実施形態は、以下の請求項の範囲内にある。たとえば、請求項に詳述された動作は、異なる順で実行され得て、それでも望ましい結果を達成することができる。