以下の詳細な説明は、本出願の図面および例示的実装形態の更なる詳細を提供する。図面間の重複する要素の参照符号および説明は、明確にするために省略されている。明細書全体を通して使用されている用語は、例として提供されており、限定を意図するものではない。例えば、「自動(automatic)」という用語の使用は、本出願の実装形態を実行する当業者の所望の実装に応じて、実装形態の特定の態様に対するユーザまたはオペレータの制御を含む完全自動または半自動の実装形態を含んでもよい。
例示的な態様は、人のパターンを学習するシステムによって仕事のアクティビティに戻る人の準備状況を改善し、休憩のアクティビティに関連する推奨事項を提供することを容易にする。一例示的実装形態では、職場の人が休憩を取る準備ができているものとして検出されることができ、休憩を強化する可能性がある回復のアクティビティを行うように人をリダイレクトする推奨事項を受けることができる。
したがって、本発明の概念に関連する方法およびシステムの例示的実装形態は、アクティビティに関する情報を分析して、第1のパターンおよび第2のパターンを識別することを目的とする。例えば、ユーザが仕事をしているというアクティビティに関連付けた分類を第1のパターンに分類し、ユーザが休憩をしているというアクティビティに関連付けた分類を第2のパターンに分類することができる。
例示的実装形態は、第1のパターンに基づいて、第2のパターンである休憩中に行う回復のためのカスタマイズされた推奨モデルを生成することを含む。システムがユーザのパターンを学習すると、システムは、第1のパターンと第2のパターンとの間の相関を観測して、各パターン(例えば、フィードバック)中の肯定的なパフォーマンス、効果的な結果に寄与する回復のアクティビティ(すなわち、回復計画)を見分けることができる。カスタマイズされた推奨モデルは、第2のパターン中にユーザをリダイレクトする回復のアクティビティを提供することができる。
以下でより詳細に説明するように、例えば、仕事中であることを示す第1のパターンにおけるアクティビティがいくつかの座って行うアクティビティ(例えば、デスクワーク)を含む場合、第2のパターンのアクティビティである休憩のためのカスタマイズされた推奨モデルは、ユーザが(例えば、休憩のアクティビティ中に)第1のパターンから第2のパターンへ移行するときに、ユーザをリダイレクトするための身体的回復のアクティビティ(例えば、移動経路)を提供することができる。更に、推奨事項の出力は、第1のパターンのアクティビティに関与するユーザを中断することなく受動的に提供される。
一例示的実装形態では、仕事中であるというアクティビティである第1のパターンから休憩中を示すアクティビティである第2のパターンへの移行を示すトリガが検出される。より具体的には、例示的実装形態は、第1のパターンである仕事というアクティビティを中断することなく、第2のパターンである休憩への移行を確認するためにコンテキストファクタを使用することを含む。例えば、自分のオフィスを離れるユーザは、休憩のアクティビティ(例えば、第2のパターン)への移行を示す可能性があるが;ユーザのカレンダデータの検査時に、システムは、ユーザが会議に出席する(例えば、第1のパターン)ために離れていると判断することができ、回復のアクティビティでユーザの生産性を中断しない。別の例では、ストリーミングビデオサービスを開始するなどのユーザのモバイル機器使用状況の検査により、トリガが休憩への移行を示すことを確認することができる。
ユーザが第2のパターンである休憩に移行することに応答して、推奨モデルは、回復のためのアクティビティを実行するようにユーザをリダイレクトする。例えば、推奨モデルは、ストリーミングビデオサービスに対する代替の休憩のアクティビティとして、移動経路などの身体的アクティビティのオプションをユーザに提供することができる。以下でより詳細に説明するように、カスタマイズされた推奨モデルは、例えば、トレーニングデータ、ユーザ選好、環境制御、臨床ガイドライン、安全規制、ソーシャルグラフなどを適用する機械学習を使用して生成される。
例示的実装形態の態様は、検知データ(例えば、ウェアラブルデバイス、カメラなどから検知されるデータ)、ピンポイントデータ(例えば、位置追跡、コンピュータ使用量、カレンダスケジュール、ソーシャルグラフなど)、および環境データ(例えば、地域の天気、建物のレイアウト、室内の雰囲気制御、会議室のスケジュール、企業の方針など)を含む情報の使用を目的とする。ユーザのアクティビティや行動のパターンを検出し、回復計画のコンテキストに応じた推奨モデルを作成するために、この情報を使用することができる。モデルは、第1のパターンに基づいて回復計画を実行するための推奨事項を生成する。更に、例示的実装形態は、フィードバック情報、生産性測定値、および検知データを組み入れて、推奨モデルを改良することを目的とする。
本発明の概念は、第1のパターンに分類される仕事中であり休憩に移行する前の仕事の生産性を中断しないように、ユーザに推奨事項を受動的に提供することを含む。例示的実装形態は、休憩を示すトリガを検出することを目的とし、トリガは、ユーザに関連する検知データに基づいており、また、ピンポイントデータおよび/または環境データなどのコンテキストパラメータに基づいて、仕事(第1のパターンに分類されるアクティビティ)から休憩(第2のパターンに分類されるアクティビティ)への移行に関連していることを確認することを目的とする。トリガが休憩(第2のパターン)への移行を示すと判定したことに応答して、システムは、第2のパターンのための推奨モデルの出力を提供する。
例示的実装形態の態様は、オフィス環境、組立ライン、建設現場、小売りスタンドなどの職場設定を参照して説明される。ただし、例示的実装形態の範囲は特定の環境に限定されず、本発明の範囲から逸脱することなく他の環境に置き換えられてもよい。例えば、限定ではないが、回復のアクティビティが実施され得る他の環境として、ジムのようなオフィスまたは職場以外のレクリエーション環境、ならびに治療環境(例えば、病院、理学療法センタなど)が挙げられるが、これらに限定されるものではない。
図1は、例示的実装形態によるシステム100の概要を示している。システム100は、1つまたは複数のクライアントデバイス105a〜105nと通信して、コンテキストアウェアな回復推奨事項をユーザに提供するように構成されたアクティビティエンジン110を含んでいる。アクティビティエンジン110は、クラウドサービス105nとして、ネットワーク102を介して遠隔的に、1つまたは複数のクライアントデバイス105a〜105dのような1つまたは複数の処理デバイス上で動作するソフトウェアの形態(例えば、非一時的なコンピュータ可読媒体上の命令)で、または当業者に既知の他の構成で実装されてもよい。
用語「コンピュータ」、「コンピュータプラットフォーム」、「処理デバイス」、および「クライアントデバイス」は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、メインフレームコンピュータ、サーバ、ハンドヘルドデバイス、デジタル信号プロセッサ(DSP)、埋め込みプロセッサなどの任意のデータ処理デバイス、またはデータを処理することができる任意の他のデバイスを含むことを意図されている。コンピュータ/コンピュータプラットフォームは、1つまたは複数の非一時的なコンピュータ可読媒体および1つまたは複数のネットワークに通信可能に接続された1つまたは複数のマイクロプロセッサを含むように構成される。
アクティビティエンジン110は、1つまたは複数のデータストア103(例えば、RAM、ROM、および/または内部ストレージ、磁気、光学、ソリッドステートストレージ、および/またはオーガニック)などのメモリを直接的または間接的に含み、情報を通信するための通信機構(またはバス)上でそのいずれかを接続することができる。
一例示的実装形態では、アクティビティエンジン110を、クラウドサービス105nによってホストすることができ、データを送受信するために、ネットワーク102を介してクライアントデバイス105a〜105nに通信可能に接続することができる。「通信可能に接続する」という用語は、データが通信されるかもしれない有線または無線の任意のタイプの接続を含むことを意図している。「通信可能に接続する」という用語は、単一のコンピュータ内のデバイスおよび/またはプログラム間の、あるいはネットワーク102を介したデバイスおよび/または個別のコンピュータ間の接続を含むことを意図しているが、これに限定されない。「ネットワーク」という用語は、非限定的に、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、TCP/IP(インターネット)などのパケット交換ネットワークを含むことを意図しており、非限定的に、WiFi(登録商標)、Bluetooth(登録商標)、Zigbee(登録商標)、シックスロウパン(6LowPAN;Internet Protocol version 6 over Low power Wireless Area Networks)、電力線通信(PLC)、イーサネット(登録商標)(例えば、10メガバイト(Mb)、100Mbおよび/または1ギガバイト(Gb)イーサネット(登録商標))、または他の通信プロトコルなどのさまざまな通信手段を使用することができる。
ユーザまたはユーザの環境に関連するデータは、異なるタイプのクライアントデバイス105a〜105nから来てもよい。クライアントデバイス105a〜105nは、例えば、センサシステム105a(例えば、フィットネストラッカ、生理センサ、生体センサ、位置センサ、GPSユニット、Bluetooth(登録商標)ビーコン、カメラなどを含むウェアラブル技術)、モバイルコンピューティングデバイス105b(例えば、スマートフォン、ラップトップ、タブレットなど)、コンピューティングデバイス105c(例えば、デスクトップ、メインフレーム、ネットワーク機器など)、位置情報システム105d(例えば、制御システム、建物環境制御デバイス、セキュリティシステム、企業インフラなど)、ならびにクラウドサービス105n(例えば、遠隔的に利用可能なプロプライエタリまたはパブリックコンピューティングリソース)を含むことができる。
クライアントデバイス105a〜105nは、例えば、検知データを収集および/または格納し、位置を追跡し、外部デバイスとの通信を管理するなどの機能を備えたクライアントサービスを含むことができる。例えば、モバイルコンピューティングデバイス105bは、ユーザをカメラで観測し、ウェアラブルセンサシステム105aでユーザの心拍情報を監視し、企業のメインフレームから組織構造を収集するためのクライアントサービスを含むことができる。例示的実装形態では、アクティビティエンジン110は、複数のクライアントデバイス105a〜105nから情報を受信する。
クライアントデバイス105a〜105nはまた、1つまたは複数の他のクライアントデバイス105a〜105nから情報を収集し、収集した情報をアクティビティエンジン110に提供することが可能である。例えば、クライアントデバイス105a〜105nを、WiFi(登録商標)、Bluetooth(登録商標)、Zigbee(登録商標)、シックスロウパン(6LowPAN;Internet Protocol version 6 over Low power Wireless Area Networks)、電力線通信(PLC)、イーサネット(登録商標)(例えば、10メガバイト(Mb),100Mbおよび/または1ギガバイト(Gb)イーサネット(登録商標))、または他の通信プロトコルを使用して他のクライアントデバイスに通信可能に接続することができる。
一例示的実装形態では、ユーザは、1つまたは複数のクライアントデバイス105a〜105nを含むオフィス環境に配置されてもよく、ユーザは、クライアントサービスによって監視される仕事のアクティビティ(例えば、第1のパターン)および休憩のアクティビティ(例えば、第2のパターン)を実行する。ユーザが、デスクでコンピュータのようなデバイスを操作する、または倉庫内のアイテムを動かすなどの仕事のアクティビティを実行している間に、クライアントサービスは、アクティビティエンジン110に通信されるユーザに関するさまざまなタイプの情報を収集する。
例えば、位置センサは、オフィスまたは倉庫内のユーザの動きを受信し、スケジューリングアプリケーションはユーザの会議スケジュールを提供し、ウェアラブルデバイスはユーザの心拍数を取得し、情報はアクティビティエンジン110に送信される。
ユーザが第1のパターン中に仕事のアクティビティから休憩に入る準備ができたとき、アクティビティエンジン110は、情報を使用して第2のパターン(例えば、休憩のアクティビティ)への移行を示すトリガを検出することができる。以下により詳細に説明するように、例示的実装形態では、アクティビティエンジン110は、ユーザのアクティビィティまたは行動のパターンを学習することに基づいてカスタマイズされた推奨モデルを生成する。例示的実装形態では、カスタマイズされた推奨モデルは、トレーニングデータ、規則、フィードバックなどを使用して生成される。
アクティビティエンジン110は、カスタマイズされた推奨モデルに基づいて、ユーザが第2のパターン(例えば、休憩のアクティビティ)に移行したことが確認されたことに応答して、異なる回復のアクティビティ(例えば、回復計画)を実行するためにユーザに指示を出力することができる。例えば、オフィス内のユーザが休憩を取るために自分のデスクを離れると、ユーザのモバイル機器は、ユーザに、仕事のアクティビティからの回復を助ける身体的な刺激として、オフィス周辺の異なる場所に移動することを推奨し、指示するアプリケーションを起動してもよい。一例示的実装形態では、ユーザは、休憩または報酬プログラムのゲーミフィケーションによって推奨されるアクティビティを実行するようにインセンティブを与えられる。
別の例では、ユーザ(例えば、倉庫内)が休憩を取るために座ったとき、ユーザのモバイル機器は、回復のための行動としてストレッチのアクティビティを実行するようにユーザに推奨し、指示するアプリケーションを起動してもよいし、仕事のアクティビティからの回復を助ける精神的な刺激としてメディアコンテンツを提供してもよい。例では、ユーザは、ゲーム設定においてトークン、ポイント、またはクレジットで報酬を受けてもよいし、報酬プログラムに進んでもよい。
更に、いくつかの例では、モデルへのフィードバックとして第1のパターンおよび第2のパターン中にユーザの心拍数を監視し、その後の回復計画を改善する。例えば、身体障害者の患者が理学療法を行っているとき、アクティビティエンジン110は、以前の理学療法セッション中に検知されたユーザの生体データに基づいて、設定された回数の運動を行うように、ユーザに推奨し、指示することができる。
したがって、クライアントサービスによって収集された情報を使用することで、ユーザの休憩のアクティビティが強化される。機械学習を通じて、アクティビティエンジン110は、ユーザが休憩のアクティビティをリダイレクトするために行うことができる推奨回復計画を生成し、提供する。提案された回復計画は、ユーザのアクティビティまたは行動パターンが示す精神的、身体的、および社会的刺激の1つまたは複数を含むことができ、リダイレクション後の第1のパターン(例えば、仕事のアクティビティ)に戻るユーザの準備状況を改善する可能性がある。
図2は、例示的実装形態によるアクティビティエンジン210を含む例示的なシステム200を示している。アクティビティエンジン210は、1つまたは複数のI/Oインタフェース212、アクティビティ検出器220、意思決定支援システム(DSS)230、およびフィードバックモジュール240を含む。アクティビティエンジン210は、データ(例えば、情報、モデル、フィードバック、ユーザプロファイルなど)を格納するための1つまたは複数のデータストア203に接続される。
一例示的実装形態では、I/Oインタフェース212は、アクティビティに関連する情報(例えば、検知データ206、ピンポイントデータ207、および/または環境データ208)を受信するために、直接またはネットワーク202を介して異なるタイプのクライアントデバイス205(例えば、図1のクライアントデバイス105a〜105n)と通信可能に接続された1つまたは複数の通信インタフェースを含む。
I/Oインタフェース212は、異なるタイプのクライアントデバイス205(例えば、クライアントデバイス105a〜105n)またはクライアントサービスからデータを受信することができる。更に、各クライアントデバイス205は、複数のタイプのデータ、例えば、検知データ206、ピンポイントデータ207、および/または環境データ208を提供することができる。アクティビティエンジン210は、I/Oインタフェース212を介して、監視データ、アプリケーションデータなどの情報を受信し、DSS230を通じて情報を分析して、ユーザのパターン(例えば、第1のパターンおよび第2のパターン)を識別する。
検知データ206は、ユーザの身体アクティビティに関する情報を含むことができる。例えば、ユーザは、ユーザの動き、睡眠行動、摂食行動などを収集するさまざまなセンサを有するモバイル機器205を携行するかもしれない。
ピンポイントデータ207は、ユーザの第1のパターンおよび第2のパターンに関する格納された情報を含むことができる。一例示的実装形態では、監視ソフトウェアは、ユーザのデジタルインタラクションに関する情報を収集することができる。例えば、監視ソフトウェアは、ユーザのコンピュータ使用量、マシンインタラクション、通信パターン、スケジューリング情報などを収集することができる。
環境データ208(例えば、周囲データ)は、第1のパターンおよび第2のパターンに関連付けられた場所または組織に関する情報を含むことができる。一例示的実装形態では、サービスは、場所の物理的レイアウト、その場所の人物間の関係、気象情報、安全情報、位置情報ポリシーなどに関する環境データを提供することができる。例えば、オフィスでは、環境データは、オフィスレイアウト、労働者の組織構造、施設および指定された休憩所、ならびに雇用者の休憩ポリシーに関する情報を含むことができる。
アクティビティエンジン210は、特定のユーザに関連する入力と、共通の環境を共有する複数のユーザに使用され得る入力とを受け取るために、1つまたは複数のクライアントサービスと対話することができる。例えば、クライアントサービスは、例えば、ある場所の複数のユーザの位置情報を含む建物センサシステムから環境データを;例えば、その場所の各ユーザ用の仕事場のコンピュータからピンポイントデータを;および、例えば個人用の健康追跡センサから検知データを、提供することができる。
アクティビティ検出器220は、ユーザに関連するアクティビティを監視することができる。いくつかの実装形態では、アクティビティ検出器220は、アクティビティエンジン210に含まれ、クライアントデバイス105a〜105nによってホストされてもよく、ユーザのアクティビティに関連するデータ(例えば、情報)をアクティビティエンジン210に通知してもよい。一例示的実装形態では、アクティビティ検出器220は、特定のアクティビティレベルにおける変化を識別するためにユーザアクティビティを追跡する。例えば、アクティビティ検出器220は、心拍センサからのデータを監視し、ユーザの心拍数データを追跡し、閾値、百分率、偏差などを満たすユーザの心拍数の変化に基づいて、ユーザのアクティビティレベルの変化を識別することができる。
ユーザのアクティビティを監視するアクティビティ検出器220を、ユーザのパターンに関連する変化を検出するように構成することができる。例えば、ユーザがパターン間で移行していることを検出するために、ユーザの位置が変化したときに、ユーザの位置を追跡し、アクティビティエンジン210に信号を送るように、アクティビティ検出器220を構成することができる。
例えば、カメラを使用して、ユーザの視線を測定し、頭部の向き、瞳孔の拡張などを判断することができる。機能的には、カメラは、ユーザが行っているアクティビティを受信し、ディスプレイ上で観測することができ、コンピュータベースのイベントを見ることもできる。一例では、ユーザは、カメラから見えなくてもよく(例えば、マーカ用ボードに書いているユーザ)、異なるタイプのセンサを用いて、骨格追跡によるユーザの動きなどの身体アクティビティを追跡することができる。
DSS230は、パターンモジュール233、コンテキストモジュール236、およびモデルモジュール239を含むことができる。一例示的実装形態では、DSS230は、ユーザのアクティビティまたは行動のパターンを学習するトレーニングプロセスを含み、ユーザをリダイレクトするための推奨モデルを生成する。パターンモジュール233は、特定のユーザに関連する受信データ(例えば、検知データ、ピンポイントデータ、環境データなど)を分析して、第1のパターン(例えば、仕事のアクティビティ)および第2のパターン(例えば、休憩のアクティビティ)を識別する。コンテキストモジュール236は、データからコンテキストファクタを決定して、第2のパターンへの移行を確認する。モデルモジュール239は、第1のパターンに基づいて第2のパターンのためのカスタマイズされた推奨モデルを生成する。一例示的実装形態では、DSS230は、共同環境内のユーザのセットからのデータを分析して、フィードバックモジュール240からの入力を介してカスタマイズされたベースラインパターンおよびモジュールを開発することができる。
ユーザに関連する第1のパターンおよび第2のパターンを識別するために、パターンモジュール233は、受信したデータ(例えば、アクティビティに関する情報)を分析するように構成される。一例示的実装形態では、パターンモジュール233は、第1のパターンおよび第2のパターンに関連付けられたユーザのアクティビティを分類することができる。例えば、パターンモジュール233は、異なるイベントをラベル付けして、分類し、アクション、メッセージ、および/またはコマンドを関連付ける。一例示的実装形態では、DSS230は、パターンモジュール233によるパターンの機械学習に基づく検出を使用する。一例示的実装形態では、ユーザは、第1のパターンおよび第2のパターンを示すために、ラベルおよび/または分類によって、アクティビティ、時間帯、場所などをマークすることができる。いくつかの例では、システム200は、アクティビティを第1のパターンおよび第2のパターンに関連付けられたものとしてマークし、ユーザは、フィードバックまたはエラー訂正を提供するためにシステムのマーキングを修正または変更してもよい。
一例示的実装形態では、デスクから離れていた時間を、休憩または仕事、短時間または非短時間、ソーシャルまたは非ソーシャル、などとして分類することができる。デスクから離れていた時間の大半が会議室で費やされていた場合、またはデスクから離れていた時間がユーザのカレンダのイベントに対応する場合、その時間は第1のパターンに関連付けられた「仕事」として分類されてもよい。デスクから離れていた時間が時間閾値(例えば、2分)を下回る場合、デスクから離れていた時間は「短時間の休憩」として分類されてもよい。情報の分類は、パターンを識別し、推奨事項のタイミングを改善し、仕事を再開するためのユーザの準備状況を改善する推奨事項のタイプを強化するのに役立つことができる。例えば、短時間の休憩を示す要因を特定することが、ユーザのデスクの近くでの簡単な回復のアクティビティを推奨するために使用されてもよい。デスクから離れていた勤務時間が他の同僚と一緒に費やされていた場合、デスクから離れていた時間を、「仕事」および/または「ソーシャル」と分類することができる。ソーシャル要因は、以下で説明されるように、単独の回復のアクティビティを推奨するために用いられてもよい。
一例示的実装形態では、パターンモジュール233は、受信データを第1のパターンおよび第2のパターンに関連付けるためにトレーニングデータのセットを使用する。トレーニングデータのセットは、第1のパターンの肯定的な例および否定的な例、ならびに第2のパターンの肯定的な例および否定的な例の集合を含むことができる。肯定的な例はパターンと一致するものとして分類されることができ、否定的な例はパターンと矛盾するものとして分類されることができる。トレーニングデータのセットを、ユーザの環境に基づいて作成することができる。例えば、オフィス環境用のトレーニングデータのセットは、デスクで座ったり、取引先担当者と話したり、ビジネスコンピュータアプリケーションを使用するなどの第1のパターンの肯定的な例を含んでもよい。第1のパターンの否定的な例は、仕事スペースを離れること、個人的なアイテムをピックアップすること、ソーシャルメディアのウェブサイトを起動することなどを含むことができる。更に、オフィス環境用のトレーニングデータのセットは、休憩所にいる、個人的な相手と話しているなどの第2のパターンの肯定的な例を含む。第2のパターンの否定的な例は、会議室への入室、取引先担当者との通話、メモ帳の持ち込み、仕事関連のモバイルアプリケーションの起動などを含んでもよい。
別の例では、建設環境のためのトレーニングデータのセットは、アクティブな作業ゾーンに位置すること、重機を操作すること、標識を保持することなどの、第1のパターンの肯定的な例を含む。第1のパターンの否定的な例は、休憩ゾーンで座ること、個人的なアイテムをピックアップすること、安全装置を取り外すことなどを含むことができる。
パターンモジュール233はまた、第1のパターンから第2のパターンへの移行を示すトリガを識別するために情報を分析する。例えば、パターンモジュール233は、受信データを分析して、パターン間の変化を示すアクティビティの検出レベルを比較することによって移行を示すトリガを識別することができる。一例では、自分のデスクを離れているとして検出されたユーザは、ユーザが休憩(例えば、第2のパターン)に移行していることを示すトリガに分類されてもよい。パターンモジュール233は、アクティビティ検出器220がトリガを検出するための命令を生成することができる。
アクティビティ検出器220は、検知データ206の変化などのトリガを検出するように構成される。パターンモジュール233によって識別されたトリガに基づいて、アクティビティ検出器220は、第2のパターンへの移行(例えば、ユーザが休憩を開始した)を示すデータの変化を監視する。検出されたトリガデータは、例えば、時刻、デスクを離れること、特定のコンピュータアプリケーションを閉じること、携帯電話のような個人的なアイテムを使用すること、プリンタのような周辺デバイスを使用すること、あくびや眼球運動などの無意識の行動を行うことなどを含んでもよい。第1のパターンのいくつかの否定的な例は、第2のパターンの肯定的な例と一致してもよいし、一致しなくてもよく、逆の場合も同じである。したがって、DSS230のコンテキストモジュール236は、機械学習プロセスによる追加のパラメータに基づいてトリガに重み係数を割り当てることを含むことができる規則を作成する。
コンテキストモジュール236は、DSS230が第2のパターンへの移行が第1のパターンを中断しないことを確認するために使用できるコンテキストファクタを認識するためにデータ(およびフィードバックモジュール240からのフィードバック)を使用する。例えば、コンテキストモジュール236は、第2のパターンへの移行を誤って識別するトリガをオーバライドする(無効にする)ために、第1のパターンに関連付けられたスケジュールされたアクティビティを示す可能性があるピンポイント情報を認識することができる。この例では、ユーザは自分のデスクを離れる(例えば、第2のパターンを示すトリガ)として検出されるかもしれないが、カレンダシステム(例えば、ピンポイント情報)は、ユーザが会議(例えば、第1のパターン)に向かっていて、休憩中ではない(例えば、第2のパターンに移行していない)ことを示すかもしれない。この状況では、コンテキストモジュール236は、第1のパターン中にアクティビティエンジン210がユーザを中断させないように、第2のパターンと矛盾する第1のパターンに関連するデータを認識する。
一例示的実装形態では、コンテキストモジュール236は、情報が機械学習を通じてトリガをオーバライドするための基準として有用であるかどうかを判断するポリシーのセットを含むことができる。コンテキストモジュール236は、統計分析に基づいて情報に重みを割り当てることができる。例えば、コンテキストモジュール236は、ユーザの過去の行動パターンを統計的に分析することに基づいて、ファクタのセットを重み付けしてもよい。例えば、昼食を食べた1時間後にオフィス空間を離れる場合、カレンダシステムは会議が予定されていないことを示すかもしれない。ファクタが組み合わせて存在するときにユーザの過去の行動が休憩を取っている場合、コンテキストモジュール236は第2のパターンに対応するファクタを重み付けする。コンテキストモジュール236は、アクティビティ検出器220がトリガをオーバライドするための命令を生成することができる。
モデルモジュール239は、図3〜図5を参照して以下でより詳細に説明されるように、第2のパターン(例えば、休憩のアクティビティ)を補うためのリダイレクション(例えば、回復計画)を提供するユーザのためのカスタマイズされた推奨モデルを生成する。いくつかの例示的実装形態では、モデルモジュール239は、第1のパターン(例えば、仕事のアクティビティ)に基づいて、第2のパターン(例えば、休憩のアクティビティ)のための推奨モデルを適合させる。一例示的実装形態では、モデルモジュール239は、コンテキストモジュール236を使用してカスタマイズされた推奨モデルを生成することができる。
例えば、コンテキストモジュール236は、スケジュール情報に基づいた推奨事項(例えば、予定される会議スケジュールとぶつからない回復計画を実行する持続時間)を設定するためにモデルモジュール239に命令を提供することができる。更に、コンテキストモジュール236は、モデルモジュール239に推奨事項のタイプを有効または無効にさせることが可能である。例えば、コンテキストモジュール236は、環境データ208(例えば、テラスの場所、天気予報など)に基づいて、モデルモジュール239が推奨事項(例えば、テラスに歩く)を含むことを可能にすることができる。別の例では、コンテキストモジュール236は、ピンポイントデータ207(例えば、食事の予約)および/または検知データ206(例えば、食べる行動など)に基づいて、モデルモジュール239が推奨事項(例えば、カフェテリアに歩く)を含むことを無効にすることができる。
モデルモジュール239は、少なくとも第1のパターン(例えば、検知データ206、ピンポイントデータ207、環境データ208)に関連するデータを使用して、カスタマイズされた推奨モデルを生成する。例えば、アクティビティ検出器220が、第1のパターン(例えば、仕事のアクティビティ)が座っていて動いていない静止中の心拍数などを含むことを検出すると、モデルモジュール239は推奨事項を適合させて、第2のパターン(例えば、休憩のアクティビティ)中に、例えば、直接的または間接的にユーザが一定の歩数を歩くことをもたらすアクティビティや、ユーザの心拍数を所望のレベルに上昇させるアクティビティなどを提案する、アクティブな回復計画を実行するようにユーザをリダイレクトする。別の例では、アクティビティ検出器220が、第1のパターン(例えば、仕事のアクティビティ)がユーザは身体的にアクティブであった(例えば、ウェアラブルデバイス、カメラ、位置追跡などを介して検知された)ことを示すデータを含むことを検出すると、モデルモジュール239は推奨事項を適合させて、第2のパターン(例えば、休憩のアクティビティ)中に、落ち着いた回復計画、例えば、直接的または間接的にストレッチや精神的な刺激などをもたらす提案アクティビティを実行するようにユーザをリダイレクトする。別の例では、第1のパターン(例えば、仕事のアクティビティ)が、ユーザが精神的に要求の厳しいアクティビティに関与した(例えば、瞳孔拡張に基づいて検知された)ことを示す検知データを含むことを、アクティビティ検出器220が検出すると、モデルモジュール239は推奨事項を適合させて、第2のパターン(例えば、休憩のアクティビティ)中に、低認知性の回復計画、例えば単純なゲームを実行するようにユーザをリダイレクトする。
モデルモジュール239は、第1のパターン(例えば、仕事のアクティビティ)と第2のパターン(例えば、休憩のアクティビティ)とのサイクルで学習し、第2のパターンでは、ユーザは推奨事項を拒否するか、または完了しない場合がある。モデルモジュール239は、観測された相関からモデルを生成し、これにより、特定のユーザがモデルを反復的に改善し、したがって推奨事項を改善するために積極的に寄与する。
フィードバックモジュール240は、DSS230の機能を改良および改善するために評価情報をDSS230に提供するように構成される。例えば、推奨事項を拒否して第1のパターンを実行するユーザは、アクティビティ検出器220によってもっともらしいものを低減するためのパターン(例えば、ユーザが第1のパターンに関与しているときに推奨事項を提供すること)を改良するために使用されることができる。DSS230は、コンテキストファクタが第2のパターンへの移行と矛盾していることを考慮して、トリガを学習する。フィードバックモジュール240はまた、推奨事項が第2のパターン中に受け入れられない場合、収集されたデータと比較したリダイレクションの有効性を示すフィードバック情報を収集することができる。
モデルモジュール239は、フィードバックモジュール240によって収集されたデータの相関を観測することによって、推奨モデルを更にカスタマイズすることができる。一例示的実装形態では、モデルモジュール239は、第2のパターン(例えば、休憩)中に監視されたデータ使用して、第1のパターンに移行して戻った後に測定されたパフォーマンスと積極的に相関させる。すなわち、モデルモジュール239は、第2のパターンの前のサイクルからの監視データに基づいて回復のアクティビティを促進する。場合によっては、推奨事項が受け入れられなかった場合(例えば、休憩中にユーザが回復計画を実行しない)、第1のパターンに移行した後に測定された肯定的なパフォーマンスを使用して、新しい回復のアクティビティを含むようにモデルを更新することで、次の推奨事項を改善することができる。
一例示的実装形態では、ユーザのアクティビティレベルが第1のパターンから第2のパターンに変化し、次いで第1のパターン(例えば、仕事、休憩、仕事)に戻るとき、サイクルの生産性測定値を前のサイクル(例えば、第1のパターンおよび第1のパターンへの復帰)と比較することができ、その後、フィードバックモジュール240は、各サイクルの推奨事項出力に適用されるファクタを評価することができる。例えば、フィードバックモジュール240は、後続のサイクル(例えば、推奨事項を拒否するユーザが行った休憩と、推奨事項を受け入れたユーザが行ったその後の休憩)間のデータ(例えば、休憩中の心拍数)を比較することによって、推奨事項(例えば、回復計画)の有効性を評価することができる。
一例示的実装形態では、フィードバックモジュール240は、第1のパターンと第2のパターンとの間のパフォーマンスのレベルを比較する。一例示的実装形態では、フィードバックモジュール240は、休憩中の検知データ206(例えば、心拍数、発汗)のレベルを観測する。このフィードバックは、DSS230によって使用されて、推奨される回復計画を適合させることができる。例えば、フィードバックモジュール240からのフィードバックに基づいて、アクティビティエンジン210は、心拍数の所望の増加に達していないと判断することができ、システムは、より身体的に回復のアクティビティに影響を及ぼすこと(例えば、リダイレクション)を含むように回復計画を適合させてもよい。
スマートフォン205上で動作するモバイルアプリケーションなどの回復のアクティビティアプリケーション(例えば、クライアントサービス)を使用して、アクティビティエンジン210と対話して、入力を提供し、アクティビティエンジン210からの出力を受け取ることができる。回復のアクティビティアプリケーションは、ネットワークなどを介して直接または間接的にアクティビティエンジン210と対話することができる。一例示的実装形態では、回復のアクティビティアプリケーションは、第1のパターンを中断することなく、推奨事項に基づく第2のパターンをリダイレクトする命令を受信する。例えば、回復のアクティビティアプリケーションは、図6A〜図6Bおよび図7A〜図7Bを参照して以下により詳細に説明するように、ユーザに回復計画を実行するように指示するアクティビティエンジン210の出力を実行することができる。
図3は、例示的実装形態によるユーザシーケンスの一例を示している。例示的なサイクルでは、ある人が、仕事のアクティビティを行いながら自分のデスクで仕事をし(310)、そして、自分のデスクを離れて(320)、休憩に入り(330)、休憩のアクティビティに関与し(340)、その後、自分のデスクに戻って(350)仕事に戻るかもしれない。一例示的実装形態では、ユーザの仕事のアクティビティおよび休憩のアクティビティに関連する情報が収集され、分析されて、仕事のアクティビティを行うことに関連する第1のパターンおよび休憩のアクティビティに関連する第2のパターンを識別する。
更に、例示的実装形態は、ユーザが自分のデスクを離れて(320)ユーザが休憩中であることを示すような、第2のパターンへの移行を示すトリガを検出する。ただし、トリガは第2のパターンへの移行を単に示すだけであり、移行が発生したことを確認するのには不十分である可能性がある。検出されたトリガは、アクティビティエンジン210に、他の検知データ206、ピンポイントデータ207、環境データ208などの追加の情報に基づいてユーザの状態(例えば、第1のパターンまたは第2のパターン)を更に決定させる。例えば、いくつかの行動が第1のパターンと第2のパターンの両方に関連する可能性があるため、トリガはもっともらしいかもしれない。
例えば、ユーザが自分のデスクを離れて(320)(例えば、第2のパターンを示すトリガ)、会議に行くか、別の場所で仕事のアクティビティを行う(例えば、第1のパターン)場合、第1のパターンおよび第2のパターンに関連する追加のパラメータが、ユーザの状態にコンテキストを提供することができる。このように、コンテキストファクタを組み合わせて、ユーザが第1のパターンに関連するアクティビティ(例えば、仕事のアクティビティ)または第2のパターンに関連するアクティビティ(例えば、休憩のアクティビティ)を実行しているかどうかを評価する。この例では、自分のデスクを離れる(320)ユーザを検出することを、第2のパターン(例えば、休憩中(330))と第1のパターン(例えば、自分のデスクから離れて仕事をする(325))との両方に関連付けてもよい。一例示的実装形態では、トリガおよびコンテキストファクタは、第1のパターンと第2のパターンを識別するための情報の分析に基づいて重みを割り当てられる。
反復機械学習を通じて、アクティビティエンジン210は、第1のパターンから第2のパターンへの移行を示すトリガを識別し、第2のパターンと矛盾する第1のパターンに関連するコンテキストファクタを認識することを反復的に改善することができる。したがって、ユーザがデスクで仕事をする(310)ことから切り替えて(例えば、デスクを離れて(320))、会議室で仕事をして(325)、カフェテリアで仕事をする(325)場合、自分のデスクに戻って(350)仕事に戻る前に、デスクを離れる(320)トリガが検出され、アクティビティエンジン210は、第2のパターン(例えば、休憩のアクティビティに関与(340))と矛盾するコンテキストファクタ(例えば、時刻、会議スケジュール、会議室の場所、監督者の存在、特定の場所での仕事の履歴など)を学習してもよい。
ユーザが第2のパターン(例えば、休憩のアクティビティに関与(340))に移行したかどうかを確認するために、アクティビティエンジン210は、機械学習を使用して閾値を計算することができる。一例示的実装形態では、アクティビティエンジン210は、トリガおよびコンテキストファクタを重み付けして、コンテキストファクタを考慮したトリガが閾値を満たすかどうかを判定する。コンテキストファクタが第2のパターン(例えば、推奨イベント)への移行を示すことを考慮してトリガを確認することに応答して、アクティビティエンジン210は、ユーザにリダイレクションを提供する。
図4〜図5および図8を参照して以下に説明するように、コンテキストファクタが閾値を満足しないことを考慮してトリガを決定することに応答して、アクティビティエンジン210は他のトリガのユーザアクティビティを監視することができる。いくつかの例示的実装形態では、コンテキストファクタがトリガをオーバライドすることができる。例えば、トリガを考慮したコンテキストファクタの検査が第2のパターンと矛盾するアクティビティを示す場合、第2のパターンへの移行は確認されない。例えば、アクティビティエンジン210は、重み付けされたコンテキストファクタおよび検出されたトリガが閾値を満たさない場合を評価することによって、アクティビティが第2のパターンと矛盾していると判断することができる。したがって、320、325、350のシーケンスは非推奨イベントであり、アクティビティエンジン210は、自分のデスクから離れて仕事をするユーザの生産性を妨げることを回避する。
アクティビティエンジン210がトリガを確認し、コンテキストファクタが第2のパターン(例えば、休憩時間)の移行に関連付けられると、回復計画を実行するようにユーザをリダイレクトするための推奨事項が提供される。
図4は、例示的実装形態によりカスタマイズされたモデルのための方法400のサーバフロー図を示している。方法400は処理ロジックによって実行され、処理ロジックは、ハードウェア(回路、専用ロジックなど)、ソフトウェア(汎用コンピュータシステムまたは専用マシン上で動作するものなど)、またはその両方の組み合わせを含んでもよい。方法400は、図1のアクティビティエンジン110によって実行されてもよい。方法400は、以下にアクティビティエンジンによって実行されるものとして説明されるが、方法400は、他の処理ロジックによって実行されてもよい。
401において、処理デバイスは、アクティビティに関連する情報を受信する。一例示的実装形態では、情報を、検知データ206、ピンポイントデータ207、環境データ208を含むクライアントサービスによって収集することができる。ユーザに関連する情報を、複数のクライアントサービスから並行して提供することができる。クライアントサービスは、クラウドサービス、データリポジトリ、スケジューリングアプリケーション、ビル管理システム、モバイル機器、スマートフォン、健康追跡センサ、カメラなどの、データを収集するための任意の数のリソースを含むことができる。
403において、処理デバイスは、第1のパターンおよび第2のパターンを識別するために情報を分析する。一例示的実装形態では、第1のパターンおよび第2のパターンは、身体位置、場所、心拍数、血糖値、血圧、視線、声のアクティビティ、体温などのユーザの生理データにおける変化を検知することによって示されてもよい。例えば、カメラが、ユーザが位置を変えたとき、または仕事場を離れるとき、または仕事場に訪問者がいるかどうかを監視してもよい。また、ユーザのパターンは、アクティビティの変化を示すピンポイントデータを解釈することによって示されてもよい。例えば、ユーザのパターンは、コンピュータのアクティビティ、ノイズレベル、ソーシャルインタラクション、予定されたアクティビティ、周辺機器の使用量などによって示されてもよい。
ユーザのパターンは、照明システムのアクティビティまたは建物の内部もしくは外部の温度などの環境データを介して更に示されてもよい。例えば、処理デバイスは、ユーザに関連付けられた検知データに基づいて、ユーザが指定された仕事場から遠ざかったことを判断するために位置データを分析することができる。別の例では、処理デバイスは、ユーザの第2のパターン(例えば、休憩中)を暖房または空調システムの起動と相関させ、環境データを他のデータとのファクタとして使用して、ユーザが第2のパターンに移行していることを示すトリガ(または一連のトリガ)を識別してもよい。例示的実装形態では、処理デバイスは、トレーニングデータを使用して、受信した情報を第1のパターンおよび第2のパターンと相関させる。例示的なトレーニングデータのセットでは、ユーザは、第1のパターンおよび/または第2のパターンで情報を分類するための期間をラベル付けするように促されてもよい。
一例示的実装形態では、処理デバイスは、第1のパターンおよび第2のパターンの間でユーザのアクティビティを区別するトリガを識別するために情報を分析する。例えば、ユーザの身体位置、場所、心拍数、血糖値、アドレナリン、血圧、視線などの変化のような検知された行動を分析して、トリガが第1のパターンまたは第2のパターンのいずれかと排他的に相関するかどうかを判定することができる。ただし、上述したように、移行を確認することができるコンテキストファクタが認識される。
405において、処理デバイスは、第1のパターンに基づいて第2のパターンのためのカスタマイズされた推奨モデルを生成する。カスタマイズされた推奨モデルは、情報および第1のパターンに基づいて回復のアクティビティを推奨するための命令を含むことができる。カスタマイズされたモデルは、トレーニングデータ、ユーザ選好、環境制御、臨床ガイドライン、安全規制、ソーシャルグラフのセットと関連する1つまたは複数の機械学習技術を使用して生成される。
一例示的実装形態では、処理デバイスは、モデルの階層ライブラリに基づいてカスタマイズされた推奨モデルを生成することができる。処理デバイスは、異なるデータ(例えば、センサデータ、ピンポイントデータなど)に基づいてモデルの階層ライブラリから選択することができる。例えば、カスタマイズされた推奨モデルは、異なる時刻の異なるモデル(例えば、午前と午後で異なるモデル)を含むことができる。モデルの階層ライブラリの各モデルは、回復のアクティビティ(例えば、回復計画)の異なるセットを含むことができ、第1のパターンまたはデータに基づいて設計されることができる。例えば、モデルの階層ライブラリは、異なる空間に対してさまざまなモデル(例えば、オフィスにおける仕事/休憩を識別するため、休憩室における仕事/休憩を識別するためなど)を含むことができる。処理デバイスは、ユーザのパターンに基づいてモデルの階層ライブラリからモデルを組み込むことによって、カスタマイズされた推奨モデルを生成することができる。カスタマイズされた推奨モデルは、異なるワークタイプに対して異なるモデルを含むことができる。例えば、座っている(例えば、デスクで仕事をしている)と分類されたアクティビティを含む第1のパターンを有するユーザのためのカスタマイズされた推奨モデルは、モデルの階層ライブラリからの座っているモデル(例えば、推奨の身体アクティビティ)を含むことができる。例えば、身体的(例えば、建設現場で仕事をしている)と分類されたアクティビティを含む第1のパターンを有するユーザのためのカスタマイズされた推奨モデルは、モデルの階層ライブラリからの身体的モデル(例えば、推奨の座っているアクティビティ)を含むことができる。
407において、処理デバイスはユーザアクティビティを監視する。409において、処理デバイスは、第2のパターンへの移行を示すトリガを検出する。いくつかの実装形態では、図1〜図3を参照して上述したように、例えば、別の処理デバイスを使用して、407でユーザアクティビティを監視し、409でトリガを検出することができる。トリガを検出したことに応答して、処理デバイスは411に進み、コンテキストファクタを評価して、第1のパターンを中断することなく第2のパターンへの移行を確認する。処理デバイスは、ユーザの第1のパターン(例えば、仕事のアクティビティ)を中断することなく、ユーザに推奨事項を受動的に提供し、第1のパターン(例えば、仕事のアクティビティ)に戻るためのユーザの準備状態に影響を及ぼす(例えば、改善する)。409でトリガが検出されなかった場合、またはコンテキストファクタがトリガをオーバライドする場合、処理デバイスは407に戻って、移行のためのユーザアクティビティを監視し続けることができる。処理デバイスは、ブロック407とは独立して、ユーザ情報、フィードバック、パフォーマンスなどを収集するなど、ユーザアクティビティを引き続き監視することに留意されたい。
413において、処理デバイスは、カスタマイズされた推奨モデルを適用して、推奨事項に基づく第2のパターンのリダイレクションを提供する。リダイレクションを、精神的刺激、身体的刺激、または社会的刺激のうちの1つまたは複数を含むことができる回復計画とすることができる。例えば、回復計画は、職場設定内の場所にユーザを誘導する電子ゲームを表示することを含んでもよい。カスタマイズされた推奨モデルを、図2を参照して詳細に上述したように、リアルタイムデータに基づいて動的に適用することができる。例えば、回復計画は、ユーザに、ユーザのソーシャルグラフに基づいてオフィスの異なる場所に歩いて行き、スケジュール内の次の会議または検知された心拍閾値などに基づいて持続時間を個人向けにするように指示することができる。
例示的実装形態では、処理デバイスは、第2のパターンに関連するフィードバック情報を受信する。処理デバイスは、受信したフィードバック情報に基づいてモデルを更に更新することができる。機械学習プロセスは、パターン検出、コンテキストファクタ分析、および回復計画の推奨事項を反復的に改善する。フィードバック情報は、回復計画を実行するための推奨事項のユーザの受け入れ、第1のパターン(例えば、仕事のアクティビティに戻った後のユーザの生産性)および/または第2のパターン(例えば、規則的な休憩のアクティビティおよび/または回復計画中の検知データ)のパフォーマンス中に記録されたフィードバック、推奨事項に対する満足度に関するユーザからのフィードバックなどを示すことができる。
例えば、フィードバック情報は、第1のパターンに移行して戻るための持続時間、追跡している別のユーザの共存、ユーザ位置データ、ユーザ調査、および休憩後のアクティビティを含むことができる。一例示的実装形態では、処理デバイスは、特定の回復のアクティビティで推奨モデルをカスタマイズする(例えば、回復計画をより長く、より短く、多かれ少なかれ影響を及ぼすように適合させる)ためにセンサデータ(例えば、取られたステップの数)に基づくフィードバックを使用する。ユーザが特定の時間に推奨される回復のアクティビティを繰り返し拒否する場合、システムは回復のアクティビティの重みをユーザの推奨事項として低減するようにモデルを適合させてもよい。ユーザが特定のコンテキストにおいて推奨された回復のアクティビティを繰り返し拒絶する場合、処理デバイスは、カスタマイズされた推奨モデルを更新して、コンテキストに基づいて修正されたまたは異なる回復計画(例えば、回復のアクティビティがより短い回復計画)を推奨することができる。
ユーザが第1のパターン(例えば、仕事のアクティビティ)へ移行して戻った後、処理デバイスは、ユーザのアクティビティを追跡して分析し続けて、カスタマイズされた推奨モデルを改善することができる。一例示的実装形態では、生産性ファクタを特定し、測定し、追跡して、推奨事項の有効性を決定することができる。例えば、第1のパターンが、50個の箱を移動するなど、仕事時間中に測定可能な目標を有する場合、複数の第1のパターンにわたる生産性(例えば、仕事時間)が、カスタマイズされた推奨モデルを改良して、より効果的に目標に到達することができる。ユーザは、推奨事項が第1のパターンに戻る準備状況に及ぼす影響を示すフィードバックを提供することもできる。例えば、ユーザは、選好を調整し、満足度調査を完了することができる。したがって、推奨モデルへのフィードバックは、モデルをカスタマイズして、ユーザが第1のパターン(例えば、仕事のアクティビティ)に戻る準備をする回復のアクティビティ(例えば、リダイレクトされた休憩のアクティビティ)のより効果的な推奨事項を提供する。
いくつかの例示的実装形態では、方法400は、異なる、より少ない、または、より多いブロックで実施されてもよい。一例示的実装形態では、ブロック401〜405は、ブロック407〜413とは独立して実施されてもよい。例えば、ブロック401〜405を、モデルを生成するデバイスによってトレーニング段階の一部として実施することができ、ブロック407〜413を、モデルを繰り返し適用するために他のデバイスによってアクティビティ段階の一部として実施することができる。いくつかの例示的実装形態では、図2および図8を参照してより詳細に説明するように、プロセスは、ブロック401〜405の1つに周期的に戻って、フィードバックを組み込み、モデルを更新することができる。方法400は、媒体に格納することができ、1つまたは複数のコンピューティングデバイスの1つまたは複数のプロセッサにロードすることができ、コンピュータ実装方法として実行することができるコンピュータ実行可能命令として実施されてもよい。
図5は、例示的実装形態によるカスタマイズされたモデルのための方法500のクライアントフロー図を示している。方法500は処理ロジックによって実行され、処理ロジックは、ハードウェア(回路、専用ロジックなど)、ソフトウェア(汎用コンピュータシステムまたは専用マシン上で実行するものなど)、またはその両方の組み合わせを含んでもよい。方法500は、図1のクライアントデバイス105a〜105n上で動作するクライアントサービスによって実行されてもよい。方法500は、以下にクライアントサービスによって実行されるものとして説明されるが、方法500は、他の処理ロジックによって実行されてもよい。
551において、クライアントサービスは、ユーザから情報を取得する。553において、クライアントサービスは、アクティビティエンジンに情報を提供する。555において、クライアントサービスは、アクティビティエンジンから回復計画を受信し、回復計画はユーザのパターンに基づいている。557において、クライアントサービスは、回復計画を実行するための推奨事項を、第1のパターン(例えば、仕事のアクティビティ)を中断することなく、ユーザに提供する。559において、クライアントサービスは、ユーザとの回復計画を実行し、ユーザのパフォーマンスを記録してもよい。561において、クライアントサービスはフィードバックを収集し、更新された情報をアクティビティエンジンに提供する。
図6Aおよび図6Bは、例示的実装形態による例示的な回復計画のためのインタフェース例を示している。スマートフォン上で動作するモバイルアプリケーションなどの回復のアクティビティアプリケーションを、ユーザが回復計画を実行するために使用することができる。図6Aに示すように、モバイル機器は、回復のアクティビティアプリケーションの例示的なホームインタフェース610を提供することができる。ホームインタフェース610は、以前の回復計画からのユーザの成果を表示することができ、これにより、ユーザが選好をプログラムし、修正し、回復計画を実行することを可能になる。回復のアクティビティアプリケーションの推奨インタフェース620は、図5のブロック557のようなアクティビティエンジンから提案された推奨事項を示す。
一例示的実装形態では、ユーザは自分のオフィスに位置し、静止している。システムはユーザの位置を監視し、移動状態への任意の変化を探す。システムは、ユーザの心拍数を記録して、休憩前の静止状態の心拍数を計算することもできる。システムが、ユーザが静止しておらず、自分のデスクから離れたと判断すると、ユーザは、620において、自分の電話で、回復のアクティビティが利用可能であるという振動通知を受信する。ユーザは、“Accept”をタップするか、(“Ignore”をタップして)明示的に拒否することができ、あるいは、何もしないで単に無視することができる。この対話は、ユーザがすでに移動しているとき、または自分のデスクから離れているときに提供され、その結果、仕事(すなわち、第1のパターン)の中断を回避する。更に、ユーザは休憩中でない(例えば、ユーザは会議に行く)場合があるため、または、ユーザが、アプリケーションに関与できないか、関与しないことを望む場合、ユーザは容易に推奨事項(例えば、モバイル機器上の通知)を拒否することができる。
回復計画インタフェース630は、ユーザが実行する回復計画の例を示している。この例示的実装形態では、回復計画は、ユーザが仮想の星印を収集するためにオフィス周辺の場所を提供する。回復計画インタフェース630は、ユーザの仕事環境のレイアウトを示す。
一例示的実装形態では、ユーザが回復計画を実行するための推奨事項を受け入れる場合、アプリケーションは、モバイル機器上に仕事環境のマップと、移動先のターゲット位置とを表示する。画面上部のラベルには、場所名が表示される。ユーザがターゲットの近くに移動すると、マップ上のターゲットの外観が変化する(例えば、発展する)。ユーザがターゲットに十分に接近すると、マップ上のターゲットの外観が変化し(例えば、大きな星印に変化する)、モバイル機器が振動する。「異なる星印を取得する(“Get a Different Star”)」という機能により、ユーザは別の場所にあるターゲットをリクエストすることが可能である。「私はそこにいる(“I am There”)」という機能により、例えば、ユーザがシステムによって誤ってローカライズされた場合に、ユーザがターゲット位置にいることをユーザは示すことが可能になる。
アクティビティエンジンは、ユーザの保存可能なパターンによって変更され、ユーザの最新のアクティビティレベルに合わせて調節され、個人の選好やコンテキストファクタを満たすように調整された、選択モデルに基づいてユーザのためにカスタマイズされた個人用の回復計画を決定する。例えば、個人用の回復計画は、ユーザの前回の回復計画のパフォーマンスに基づいて休憩中にユーザが収集する星印の数を設定し、ユーザのソーシャルグラフまたは場所履歴に基づいてユーザが各星印を収集する場所を選択的に選び、仕事の準備ができるとユーザが仕事のアクティビティに戻るように回復計画を調整してもよい。
回復のアクティビティアプリケーションのダッシュボードインタフェース640は、回復計画の間のユーザのパターン、行動、およびパフォーマンスに関する情報をユーザに提供することができる。例えば、ユーザが自分のデスクに戻り、静止状態(例えば、第1のパターン)を再開すると、モバイル機器は、振動して、ダッシュボードインタフェース640を表示することができる。ダッシュボードインタフェース640は、ユーザのデスクから離れた時間(例えば、第2のパターン)をまとめることができる。ダッシュボード情報は、例えば、回復のアクティビティの持続時間、収集された星印の数、歩行した歩数、および第2のパターン(例えば、休憩のアクティビティ)中の記録されたユーザの心拍数と第1のパターン(例えば、休憩前または休憩後のアクティビティ)の静止状態の心拍数との差を含むことができる。図6Bに示すように、フィードバックインタフェース670は、ユーザ満足度などのフィードバックを収集するために、ユーザからの入力を受け取る。ユーザのフィードバックは、アクティビティエンジンにフィードバックされ、第2のパターンへの次の移行のためのユーザのカスタマイズされた推奨モデル(例えば、回復期間)を改善する。
インタフェース650および660は、回復計画を実行するためのユーザ対話の例を示している。例えば、ターゲット位置に十分近い場合、ターゲットはマップ上に星印として表示されてもよい。星印が現れた後、ユーザはマップ上の任意の場所をタップし、星印をボックスにドラッグすることによって星印を「収集」し、アプリケーションはランダムな「事実」、ささいな質問、またはビデオなどのメディアコンテンツをユーザに提示する。
図7Aおよび図7Bは、例示的実装形態による例示的な回復計画に関連するビーコン処理を示している。屋内環境では、追加の位置追跡サービスがユーザのアクティビティを検出するのに役立つ場合がある。一般に、壁は信号を送信することを制限し、したがって屋内のモバイル機器によって指示される特定の回復のアクティビティの実施を禁止する。いくつかの実装形態では、ユーザは、第1のパターン(例えば、仕事のアクティビティ)および第2のパターン(例えば、回復計画)の間にユーザを追跡および/または案内するためのデバイス(例えば、図1のクライアントデバイス105a〜105b、図6A〜図6B)を携行するまたは身に付けることができる。更に、いくつかの環境は、第1のパターンおよび第2のパターン中にユーザを追跡および/または案内することができるインフラストラクチャ(図1のクライアントデバイス105a〜105d、カメラシステム、追跡システム、スマートビルディングセンサシステムなどの)に統合されたクライアントサービスを含んでもよい。
一例示的実装形態では、オフィスには、空間を識別するビーコンを装備することができる。ビーコンを使用して、ユーザの仕事場所を割り当てたり、休憩場所を特定したり、立ち入り禁止場所を指定することができる。例えば、周波数をスキャンする近くのポータブルデバイスに識別子をブロードキャストするための標準化されたプロトコルを使用するWifiまたはBLE(Bluetooth(登録商標) Low Energy)デバイスを使用することができる。次いで、識別子を使用して、ユーザ(例えば、モバイル機器)のコンテキストを識別し、対応する動作をトリガすることができる。例えば、オフィス内のさまざまな場所にユーザを連れ出す借り物競走を含む回復計画では、ビーコンを使用して、モバイル機器または統合クライアントサービスを使用して仮想の星印または報酬を収集するためにユーザをオフィス周辺に誘導することができる。
環境は、ホームビーコンおよびターゲットビーコンを含むことができる。スマートフォン上で動作するモバイルアプリケーションなどの回復のアクティビティアプリケーションは、部屋名を使用したビーコン識別子のマッピングを含むことができる。環境データを使用して、異なる環境に配置するためのビルディングレイアウトとオフィスディレクトリを収集することができる。更に、ユーザは、ユーザのワークスペースが位置する部屋に対応する「ホーム」ビーコンをスキャンするようにアプリケーションを構成することができる。ホームビーコンから報告された距離に関する閾値を使用して、ユーザが自分のデスクにいるかデスクを離れているかを判断することができる。各ユーザに対して、環境内の他のビーコンは潜在的な「ターゲット」ビーコンである。
特定の環境が、推奨される回復のアクティビティの実行には適していない場合がある。例えば、空間が同僚によって使用されている場合、または空間が同僚のオフィスのような通常は立ち入り禁止の場所である場合、特定の場所での回復計画(例えば、第2のパターンのリダイレクション)を実行することは望ましくないかもしれない。ビーコンは、アクセス可能またはアクセスできないかもしれない空間内に存在する場合があるので、ビーコンからの閾値距離を使用して、ターゲットビーコンの場所に入ることなく、ユーザが回復のアクティビティを完了する選択を可能にする範囲内にターゲットがあることを決定することができる。
一例示的実装形態では、ビーコン検出のためのスライディングウィンドウ技術を使用して、回復のアクティビティアプリケーションによる間欠的なビーコン観測の問題および屋内環境における距離精度の高いばらつきに対処することができる。一例示的実装形態では、図7Aのプロセス700に示すように、705において、デバイス(例えば、モバイル機器の通信センサまたは処理デバイス)がターゲットビーコン識別子を識別することができる。710において、デバイスは、ビーコン識別子が最後のN回のスキャン中に存在したかどうかを判定する。例えば、特定のBluetooth(登録商標)ビーコンの最新のN回のスキャンを表すサイズNのアレイまたはウィンドウは、特定のビーコンを検知するために使用される。スキャンがその特定のビーコン観測を含まない場合、ヌル値がウィンドウ内のプレースホルダとして使用される。デバイスで実行されている回復のアクティビティアプリケーションは、複数のウィンドウを維持することができ、例えば、ユーザのホームビーコンの最新のスキャンを表すものと、現在のターゲットビーコンのものがある。ビーコン識別子が最後のN回のスキャンで存在しなかった場合、デバイスは、ターゲットビーコン識別子を検索するために705に戻るか、または検索するために新しいビーコン識別子を選択することができる。
ビーコン識別子が最後のN回のスキャンに存在すると判定したことに応答して、プロセスは距離が閾値内にあるかどうかを判定するために715に進むことができる。720において、距離が閾値内であると判定したことに応答して、ターゲットは取得されたとみなされる。
図7Bに更に示すように、ターゲットビーコンに関する状態を、以下のように記述することができる。
ビーコンのウィンドウからのすべての値がヌルである場合、ユーザはそのビーコンから「範囲外」とみなされる。
ビーコンのウィンドウ内に少なくとも1つの非ヌル値がある場合、これらの値の平均がそれぞれの閾値と比較される。
ウィンドウによって返された距離が閾値より大きい場合、ビーコンは「遠い」とみなされ、そうでない場合は「近く」とみなされる。
したがって、位置検知は、異なる環境に適応し、回復のアクティビティアプリケーションのパフォーマンスを向上させるために、回復のアクティビティ(例えば、休憩のアクティビティのリダイレクション)を実行するように調整される。図2〜図5を参照してより詳細に上述したように、回復のアクティビティアプリケーションは、モデルを更新するための検知データとともにビーコン距離データをログすることを含むことができるフィードバックデータを収集する。
図8は、例示的実装形態によるカスタマイズされたモデルを実行するためのフロー図を示している。いくつかの例示的実装形態では、プロセス800は、異なる、より少ない、または、より多いブロックで実施されてもよい。図4を参照して上述したように、例示的実装形態は、トレーニング段階およびアクティビティ段階を含むことができる。一例示的実装形態では、ブロック805および820は、ブロック810、815、825〜840の順番に実施されてもよい。プロセス800は、媒体に格納することができ、1つまたは複数のコンピューティングデバイス(例えば、図2のシステム200)の1つまたは複数のプロセッサにロードすることができ、コンピュータ実装方法として実行することができるコンピュータ実行可能命令として実装されてもよい。
805において、システムはユーザのパターンを学習する。一例示的実装形態では、システムは、機械学習を使用して、アクティビティに関連する受信した情報に基づいてユーザの第1のパターンおよび第2のパターンを識別する。例示的実装形態では、システムは、時間間隔またはトリガリングファクタの階層に基づいて、リアルタイムでユーザアクティビティに関連する情報を能動的に監視することができる。リアルタイムでの監視を、例えば、カメラシステムによって実施することができる。更に、時間間隔は固定されていてもよく、非常に多くの秒、分、または時間ごとにユーザのアクティビティをチェックする(例えば、アクティビティのレベルの変化を検出する)ために予めプログラムされてもよい。
動的時間間隔を徐々に調整して、ユーザのアクティビティに関連する情報をチェックする間隔を変更してもよい。一例示的実装形態では、システムは、パターンを考慮したカウントダウン間隔に基づいて情報をチェックする。例えば、ユーザが3〜4時間ごとに第1のパターンから第2のパターン(例えば、休憩を取る)へと日常的に移行する場合、システムは、第1のパターンへの前回の移行(例えば、休憩の終了)が3〜4時間の観測間隔へと増加するので、情報をチェックする間隔を短くすることができる。
810において、システムは、図2〜図5を参照して上述したように、第2のパターンへの移行を示すトリガを検出する。更に、トリガリングファクタの階層を使用して、移行を検出してもよいし、および/または情報をチェックするための間隔を調整してもよい。一例示的実装形態では、システムは、第2のパターンへの移行において示される行動(例えば、休憩が近づいていることを示す行動)を検知してもよい。例えば、システムは、あくびを検出し、次いでユーザの視線をチェックする間隔を短くしてもよい。別の例では、特定の連絡先から電話を受けた後に頻繁に休憩することが観測された場合、その連絡先からの電話を検出した後の情報の確認を増やすことができる。1つまたは複数の観測された行動は、ユーザが第2のパターンに移行している(例えば、休憩する準備ができている)ことを示すトリガとして検出されてもよく、コンテキストファクタを評価することによってオーバライドされてもよい。
第2のパターンへの移行を示すトリガに応答して、815において、システムはコンテキストファクタを検査して、トリガを確認するかオーバライドするかを決定する。例えば、コンテキストファクタが、ユーザアクティビティが第2のパターンと矛盾していることを示す場合、システムはトリガをオーバライドして805に戻り、ユーザのパターンの学習を更新することができる。したがって、システムは、第1のパターン(例えば、仕事のアクティビティ)中にユーザを中断させることなく、第2のパターン(例えば、休憩を取る)に移行することによって得られる純生産性を高める。コンテキストファクタが、ユーザアクティビティが第2のパターンと一致することを示す場合、システムはトリガを確認して820に進むことができる。
820において、システムは、ユーザのパターンに基づいてカスタマイズされた推奨モデルを生成する。825において、システムは、モデルに基づいてユーザにリダイレクションを提案する。図2〜図5を参照して上述したように、カスタマイズされた推奨モデルを生成するための例示的実装形態は、トレーニングデータ、コンテキストファクタ、モデルの階層ライブラリなどを含むことができる。更に、提案されたリダイレクションは、第1のパターン(例えば、仕事のアクティビティのタイプ、検知データ、環境、コンテキストファクタなど)に基づいて、第2のパターン(例えば、回復計画)に対する異なるリダイレクションを提案するために、コンテキストファクタ、フィードバック情報、機械学習などを組み込むことができる。
830において、システムは、リダイレクションがユーザによって受け入れられるかどうかを判断する。ユーザがリダイレクションを受け入れることに応答して、835において、ユーザはリダイレクションを実行することができ、システムはユーザアクティビティを追跡および記録するためのサービス(例えば、クライアントサービス)を利用する。ユーザがリダイレクションを受け入れるか拒否するかにかかわらず、システムは、第2のパターン(例えば、休憩のアクティビティ)中のユーザアクティビティを追跡して監視し、パターン学習および推奨事項のカスタマイズを改善することができる。したがって、第2のパターンへの移行がパターン認識プロセスによって確認されない限りは、推奨事項を抑制することによって、および、第1のパターンに戻る前にユーザの回復を高める第2のアクティビティをリダイレクトするための提案を反復的に改善することによって、ユーザの生産性を向上させるかもしれない。
840において、システムは、ユーザが第1のパターンにスイッチバックするのを監視することができる。ユーザが第1のパターンにスイッチバックしなかった場合、システムは、リダイレクションが受け入れられたかどうかにかかわらず、第2のパターン中にユーザを監視するために830に戻ることができる。ユーザが第1のパターンに移行したと判断したことに応答して、システムは805に戻ってユーザの行動をフィードバックして、ユーザのパターンを学習し更新することができる。
図9は、いくつかの例示的実装形態における使用のための外部ホストに関連付けられた例示的なコンピューティングデバイスを有するコンピューティング環境の例を示している。コンピューティング環境900内のコンピューティングデバイス905は、1つまたは複数の処理ユニット、コア、またはプロセッサ910、メモリ915(例えば、RAM、ROMなど)、内部ストレージ920(例えば、磁気、光学、ソリッドステートストレージ、および/またはオーガニック)、および/またはI/Oインタフェース925を含むことができ、これらのうちの任意のものを、情報を通信するため、またはコンピューティングデバイス905に埋め込まれるために通信機構またはバス930上で接続することができる。
コンピューティングデバイス905を、入力/ユーザインタフェース935および出力デバイス/インタフェース940に通信可能に接続することができる。入力/ユーザインタフェース935および出力デバイス/インタフェース940の一方または両方を、有線または無線インタフェースとすることができ、取り外し可能とすることができる。入力/ユーザインタフェース935は、入力(例えば、ボタン、タッチスクリーンインタフェース、キーボード、ポインティング/カーソル制御、マイクロフォン、カメラ、点字、モーションセンサ、光学式リーダなど)を提供するために物理的または仮想的に使用することができる任意のデバイス、コンポーネント、センサ、またはインタフェースを含んでもよい。
出力デバイス/インタフェース940は、ディスプレイ、テレビ、モニタ、プリンタ、スピーカ、点字などを含んでもよい。いくつかの例示的実装形態では、入力/ユーザインタフェース935および出力デバイス/インタフェース940を、コンピューティングデバイス905に埋め込むか、または物理的に接続することができる。他の例示的実装形態では、他のコンピューティングデバイスは、コンピューティングデバイス905のための入力/ユーザインタフェース935および出力デバイス/インタフェース940の機能として動作するかまたはその機能を提供してもよい。
コンピューティングデバイス905の例は、高度モバイル機器(例えば、スマートフォン、車両および他のマシンのデバイス、人間および動物が携行するデバイスなど)、モバイル機器(例えば、タブレット、ノートパソコン、ラップトップ、パーソナルコンピュータ、ポータブルテレビ、ラジオなど)、および移動式に設計されていないデバイス(例えば、デスクトップコンピュータ、他のコンピュータ、情報キオスク、1つまたは複数のプロセッサが埋め込まれたテレビ、および/またはそれに接続されたテレビ、ラジオなど)を含んでもよいが、これらに限定されるものではない。
コンピューティングデバイス905は、同じ構成または異なる構成の1つまたは複数のコンピューティングデバイスを含む任意の数のネットワークコンポーネント、デバイス、およびシステムと通信するために、外部ストレージ945およびネットワーク950に(例えば、I/Oインタフェース925を介して)通信可能に接続され得る。コンピューティングデバイス905または任意の接続されたコンピューティングデバイスは、サーバ、クライアント、シンサーバ、汎用マシン、専用マシン、または別のラベルとして機能するか、これらのサービスを提供するか、またはこれらを指すことができる。
I/Oインタフェース925は、音声および/またはデータネットワークを介した無線通信を容易にする無線通信コンポーネント(図示せず)を含んでもよい。無線通信コンポーネントは、1つまたは複数のアンテナを有するアンテナシステム、無線システム、ベースバンドシステム、またはそれらの任意の組み合わせを含んでもよい。無線周波数(RF)信号は、無線システムの管理下で、アンテナシステムによって空気を介して送受信されてもよい。
I/Oインタフェース925は、コンピューティング環境900内の少なくともすべての接続されたコンポーネント、デバイス、およびネットワークに、および/またはそれらから情報を通信するために、任意の通信またはI/Oプロトコルもしくは規格(例えば、イーサネット(登録商標)、802.11x、ユニバーサルシステムバス、WiMax、モデム、セルラネットワークプロトコルなど)を使用した有線および/または無線インタフェースを含むことができるが、これらに限定されるものではない。ネットワーク950を、任意のネットワークまたはネットワークの組み合わせ(例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、電話ネットワーク、セルラネットワーク、衛星ネットワークなど)とすることができる。
コンピューティングデバイス905は、一時的媒体および非一時的媒体を含むコンピュータ使用可能媒体またはコンピュータ可読媒体を使用する、および/またはこれを使用して通信することができる。一時的媒体には、伝送媒体(例えば、金属ケーブル、光ファイバ)、信号、搬送波などが含まれる。非一時的媒体には、磁気媒体(例えば、ディスクおよびテープ)、光媒体(例えば、CD−ROM、デジタルビデオディスク、Blu−ray(登録商標)ディスク)、固体媒体(例えば、RAM、ROM、フラッシュメモリ、ソリッドステートストレージ)、および他の不揮発性ストレージまたはメモリが含まれる。
コンピューティングデバイス905を、いくつかの例示的なコンピューティング環境において、技法、方法、アプリケーション、プロセス、またはコンピュータ実行可能命令を実装するために使用することができる。コンピュータ実行可能命令は、一時的媒体から検索され、非一時的媒体に記憶され、そこから検索され得る。実行可能命令を、プログラミング、スクリプティング、および機械語(例えば、C、C++、C#、Java(登録商標)、Visual Basic、Python、Perl、JavaScript(登録商標)など)のうちの1つまたは複数から生成することができる。
1つまたは複数のプロセッサ910は、ネイティブ環境または仮想環境において、任意のオペレーティングシステム(OS)(図示せず)下で実行することができる。論理ユニット955、アプリケーションプログラミングインタフェース(API)ユニット960、入力ユニット965、出力ユニット970、アクティビティエンジン975、アクティビティ検出器980、意思決定支援システム985、およびフィードバックモジュール990を含む1つまたは複数のアプリケーションを配備することができる。
例えば、入力ユニット965、アクティビティエンジン975、アクティビティ検出器980、意思決定支援システム985、およびフィードバックモジュール990は、図2、図4〜図5、および図8に示す1つまたは複数のプロセスを実施してもよい。説明されたユニットおよび要素は、設計、機能、構成、または実装において変更されることができ、提供される説明に限定されない。
いくつかの例示的実装形態では、情報または実行命令がAPIユニット960によって受信されると、1つまたは複数の他のユニット(例えば、論理ユニット955、出力ユニット970、入力ユニット965、アクティビティエンジン975、アクティビティ検出器980、意思決定支援システム985、およびフィードバックモジュール990)に通信されてもよい。
入力ユニット965は、APIユニット960を介して、アクティビティエンジン975およびアクティビティ検出器980と対話して、アクティビティに関連する入力情報を提供してもよい。APIユニット960を使用して、意思決定支援システム985は、アクティビティのパターンを識別するために情報を分析し、回復計画を実行するためにリダイレクトするユーザのためのカスタマイズされた推奨モデルを生成することができる。フィードバックモジュール990は、例えば、更新された情報でカスタマイズされたモデルを改良してもよい。
いくつかの例では、論理ユニット955は、ユニット間の情報フローを制御し、上述のいくつかの例示的実装形態におけるAPIユニット960、入力ユニット965、出力ユニット970、入力ユニット965、アクティビティエンジン975、アクティビティ検出器980、意思決定支援システム985、およびフィードバックモジュール990によって提供されるサービスを指示するように構成されてもよい。例えば、1つまたは複数のプロセスまたは実装のフローは、論理ユニット955によって単独で、またはAPIユニット960と連携して制御されてもよい。
図10は、いくつかの例示的実装形態に適した例示的な環境を示している。環境1000は、デバイス1005〜1050を含み、それぞれは、例えばネットワーク1060を介して(例えば、有線および/または無線接続によって)少なくとも1つの他のデバイスに通信可能に接続される。いくつかのデバイスは、1つまたは複数のストレージデバイス1030および1045に通信可能に接続されてもよい。
1つまたは複数のデバイス1005〜1050の例は、それぞれ、図9に関して記載されるコンピューティングデバイス905であってもよい。デバイス1005〜1050は、ディスプレイと、上述したような関連するウェブカメラとを有するコンピュータ1005(例えば、ラップトップのコンピューティングデバイス)、モバイル機器1010(例えば、スマートフォンまたはタブレット)、テレビ1015、車両に関連するデバイス1020、サーバコンピュータ1025、コンピューティングデバイス1035〜1040、ストレージデバイス1030および1045を含んでもよいが、これらに限定されるものではない。上述したように、ユーザの会議環境はさまざまであってもよく、オフィス環境に限定されない。
いくつかの実装形態では、デバイス1005〜1020、1050は、企業のユーザに関連するユーザデバイスとみなされてもよい。デバイス1025〜1050は、(例えば、ユーザまたは管理者が、図1〜図2に関して上述したようなサービスを提供するのに使用するか、検知データ、ピンポイントデータ、環境データ、ウェブページ、テキスト、テキスト部分、画像、画像部分、オーディオ、オーディオセグメント、ビデオ、ビデオセグメント、および/またはその情報などのデータを格納するのに使用する)クライアントサービスに関連するデバイスであってもよい。
詳細な説明の一部は、コンピュータ内の動作のアルゴリズムおよび記号表現に関して提示される。これらのアルゴリズム記述および記号表現は、データ処理技術分野の当業者が、技術革新の本質を他の技術分野の当業者に伝えるために使用する手段である。アルゴリズムは、所望の終了状態または結果をもたらす一連の定義操作である。例示的実装形態では、実行される操作は、具体的な結果を達成するための明確な物理的操作を必要とする。
特に断りのない限り、説明から明らかなように、説明を通じて、「受信する」、「分析する」、「決定する」、「生成する」、「識別する」、「指示する」、「検出する」、「提供する」、「適用する」、「取得する」、「監視する」などの用語を使用した考察が、コンピュータシステムのレジスタおよびメモリ内の物理(電子)量として表されるデータを、コンピュータシステムのメモリもしくはレジスタまたは他の情報記憶、伝送もしくは表示デバイス内の物理量として同様に表される他のデータに操作して変換する、コンピュータシステムまたは他の情報処理デバイスの動作および処理を含むことができることを理解されたい。
また、例示的実装形態は、本明細書の動作を実行するための装置に関連してもよい。この装置は、必要な目的のために特に構成されてもよく、または1つまたは複数のコンピュータプログラムによって選択的に起動または再構成された1つまたは複数の汎用コンピュータを含んでもよい。このようなコンピュータプログラムは、コンピュータ可読記憶媒体またはコンピュータ可読信号媒体などのコンピュータ可読媒体に格納されてもよい。
コンピュータ可読記憶媒体は、光ディスク、磁気ディスク、読み出し専用メモリ、ランダムアクセスメモリ、固体デバイスおよびドライブなどの有形媒体、または電子情報を格納するのに適した任意の他のタイプの有形媒体または非一時的媒体を含んでもよいが、これらに限定されるものではない。コンピュータ可読信号媒体は、搬送波などの媒体を含んでもよい。本明細書で提示されたアルゴリズムおよびディスプレイは、任意の特定のコンピュータまたは他の装置に本質的に関連するものではない。コンピュータプログラムは、所望の実装形態の動作を実行する命令を含む純粋なソフトウェア実装を含むことができる。
さまざまな汎用システムが、本明細書の例に従ってプログラムおよびモジュールと共に使用されてもよく、所望の方法の動作を実行するためにより特化した装置を構築することが好都合であると判明するかもしれない。また、例示的実装形態は、任意の特定のプログラミング言語を参照して説明されていない。本明細書に記載される例示的実装形態の教示を実施するためにさまざまなプログラミング言語が使用されてもよいことが理解されよう。1つまたは複数のプログラミング言語の命令は、1つまたは複数の処理デバイス、例えば、中央処理装置(CPU)、プロセッサ、またはコントローラによって実行されてもよい。
当該技術分野で知られているように、上述の動作を、ハードウェア、ソフトウェア、またはソフトウェアとハードウェアのいくつかの組み合わせによって実行することができる。例示的実装形態のさまざまな態様は、回路および論理デバイス(ハードウェア)を使用して実装されてもよく、他の態様は、機械可読媒体(ソフトウェア)に格納された命令を使用して実装されてもよく、この命令は、プロセッサによって実行された場合、プロセッサに、本出願の実装形態を実行する方法を実施させる。
また、本出願のいくつかの例示的実装形態は、ハードウェアでのみ実行されてもよく、他の例示的実装形態は、ソフトウェアでのみ実行されてもよい。更に、説明されたさまざまな機能を、単一のユニットで実行することができ、または、任意の数の方法で複数のコンポーネントにわたって分散させることができる。ソフトウェアによって実行される場合、方法は、コンピュータ可読媒体に格納された命令に基づいて、汎用コンピュータなどのプロセッサによって実行されてもよい。必要に応じて、命令を、圧縮されたおよび/または暗号化されたフォーマットで媒体に格納することができる。
例示的実装形態は、関連技術に対してさまざまな相違点および利点を有するかもしれない。例えば、限定ではないが、関連技術に関して上述したようなJavaScript(登録商標)でウェブページを記述することと対照的に、テキストおよびマウス(例えば、ポインティング)動作がビデオ文書で検出され分析されてもよい。
更に、本出願の他の実装形態は、本明細書の留意事項および本出願の教示の実施から当業者には明らかとされよう。記載された例示的実装形態のさまざまな態様および/または構成要素は、単独で、または任意の組み合わせで使用されてもよい。本明細書および例示的実装形態は、単なる例として考えられ、本出願の真の範囲および趣旨は、添付の特許請求の範囲によって示されることが意図されている。