JP2015506617A - 状況に基づく機器動作の予測 - Google Patents

状況に基づく機器動作の予測 Download PDF

Info

Publication number
JP2015506617A
JP2015506617A JP2014550338A JP2014550338A JP2015506617A JP 2015506617 A JP2015506617 A JP 2015506617A JP 2014550338 A JP2014550338 A JP 2014550338A JP 2014550338 A JP2014550338 A JP 2014550338A JP 2015506617 A JP2015506617 A JP 2015506617A
Authority
JP
Japan
Prior art keywords
application
context
user
decision
decision engine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014550338A
Other languages
English (en)
Other versions
JP6198227B2 (ja
JP2015506617A5 (ja
Inventor
チュー,デイヴィッド
カンサル,アマン
リュウ,ジエ
ヤン,ティンシン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2015506617A publication Critical patent/JP2015506617A/ja
Publication of JP2015506617A5 publication Critical patent/JP2015506617A5/ja
Application granted granted Critical
Publication of JP6198227B2 publication Critical patent/JP6198227B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Telephone Function (AREA)
  • Stored Programmes (AREA)

Abstract

本明細書に記載の実装は自動的に機器動作を行うことに関する。実装の1つは、コンテクスタのコンテクスト値を得ることができる。本発明に係る実装形態は、意思決定エンジンを使用して、そのコンテクスト値に基づいて特定の動作をコンピューティング・デバイスで行うかどうかを決定することができる。意思決定エンジンが当該特定の動作を行うと決定した場合、本発明に係る実装形態は、その特定の動作をコンピューティング・デバイスで実行することができる。この実装形態は、当該特定の動作に関連するフィードバックを使用して意思決定エンジンを更新することもできる。具体例として、当該特定の動作は、ユーザがアプリケーションの実行を要求する前にそのアプリケーションを事前起動することである。アプリケーションを事前起動しておくことにより、起動する前にユーザがアプリケーションをアプリケーションの実行を要求するのを待つ場合に比べて、アプリケーション起動までの待ち時間を短縮することができる。

Description

ユーザ入力に対するアプリケーション・ソフトウェアの反応性は、アプリケーションが比較的リソースを多く必要とするかどうかや、アプリケーションを実行しているデバイスの利用可能なハードウェア資源がアプリケーションのリソース要求量を満たすのに充分であるか等の多数の要因に応じて異なる可能性がある。例えば、モバイル機器のアプリケーションの中には起動までの待ち時間が10〜15秒程度と比較的長いものがある。この問題は、古いハードウェアを使用して新しいアプリケーションを実行する時に特に深刻になる。何故ならば、新しいアプリケーションは古いアプリケーションに比べてリソースをより多く必要とする傾向があるためである。
アプリケーション起動までの待ち時間を短縮する一般的な手法の1つは、アプリケーションをメモリにロードするか、さらにはユーザが実際にアプリケーションを呼び出す前にアプリケーションの実行を開始しておくものである。しかし、モバイル機器はリソースが比較的制約されている傾向があり、現在使用されていないアプリケーションにメモリやプロセッサ資源を割り当てることが常に許容されるとは限らない。実際、場合によっては、この手法は、不必要なデータをロードしたり、不必要な命令を実行したりすることにより、不必要にバッテリ電力を消耗させてしまうことがある。
本明細書に記載された実装例は自動的に機器動作を行うことに関する。そのような実装例の1つは、1つまたは複数のコンテクスタ(contextor)から1つまたは複数のコンテクスト値を得ることを含む技術として顕在化される。この技術は、1つまたは複数の決定規則を備える意思決定エンジンを使用して、1つまたは複数のコンテクスト値および1つまたは複数の決定規則に基づいて、コンピューティング・デバイスで動作を行うかどうかを決定することを含むことができる。この技術は、意思決定エンジンが動作を行うと決定した場合にコンピューティング・デバイスでその動作を行うことも含むことができる。この技術は、動作に関連するフィードバックを使用して意思決定エンジンの決定規則を更新することも含むことができる。
本発明に係る別の実装例は、1つまたは複数のコンテクスト値に基づいて事前に起動しておくアプリケーションを特定することを含む技術として顕在化される。この技術は、アプリケーションを事前に起動してアプリケーションを事前起動状態にしておき、事前起動に関連するフィードバックを受け取ることも含むことができる。
本発明に係る別の実装例は、状況に基づく動作モジュールおよびコンピューティング・デバイスを含むシステムとして顕在化される。当該コンピューティング・デバイスは状況に基づく動作モジュールを実行するように構成することができる。状況に基づく動作モジュールは、第1の事例においては、コンテクスタのコンテクスト値を取得し、意思決定エンジンを使用して、コンテクスト値に基づいてコンピューティング・デバイスで特定の動作を行わないことを決定し、コンピューティング・デバイスでその特定の動作を行わないように構成することができる。状況に基づく動作モジュールは、動作に関連するフィードバックを意思決定エンジンに提供するように構成することもでき、意思決定エンジンが更新されて、コンテクスタがそのコンテクスト値を有する時に前記動作を行うことを学習することができる。状況に基づく動作モジュールは、第1の事例よりも後の第2の事例において、上述した第1の事例において取得されたコンテクスト値と同じコンテクスタのコンテクスト値を取得し、更新された意思決定エンジンを使用して、同じコンテクストに基づいてコンピューティング・デバイスで上記動作を行うことを決定し、当該動作をコンピューティング・デバイスで実行するように構成することもできる。
上記で列挙した例は読者を助けるための簡単な参照を提供するものであり、本明細書に記載される概念の範囲を定義することを目的とするものではない。
添付図面は、本特許で伝達される概念の実施を説明する。例示される実施の特徴は、添付図面と併せて以下の説明を参照することにより容易に理解できよう。各図面では、該当する場合は同様の参照符号を使用して同様の要素を示す。さらに、各参照符号の一番左の数字は、その参照符号が最初に登場する図およびそれに関連する説明を表す。
本明細書に記載の概念のいくつかの実装を用いることができる例示的なシナリオを示す図である。 本明細書に記載の概念のいくつかの実装によるモジュールの例示的アーキテクチャを示す図である。 本明細書に記載の概念のいくつかの実装による例示的なグラフィック・ユーザ・インターフェースを示す図である。 本明細書に記載の概念のいくつかの実装による例示的なグラフィック・ユーザ・インターフェースを示す図である。 本明細書に記載の概念のいくつかの実装による例示的な決定規則を示す図である。 本明細書に記載の概念のいくつかの実装による例示的な決定規則を示す図である。 本明細書に記載の概念のいくつかの実装による例示的な決定規則を示す図である。 本明細書に記載の概念のいくつかの実装による例示的方法のフローチャートである。 本明細書に記載の概念のいくつかの実装による例示的方法のフローチャートである。 本明細書に記載の概念のいくつかの実装によるシステムの一例を示す図である。
<概要>
本検討内容は、機器の意思決定エンジンが入手可能な情報に基づいて当該機器に自動的に各種動作を行わせることに関する。例えば、一部の実装例においては、ユーザが実際にその実行を要求する前に、特定のアプリケーションが起動される。場合によっては、ユーザがアプリケーションの実行を要求する前に当該アプリケーションを起動することでアプリケーション起動までの待ち時間を短縮することができ、より満足感の高いユーザ体験を提供することができる。本明細書において提供される具体例のいくつかは、モバイル機器との関係で説明される。これは、モバイル機器は比較的リソースが制約されており、本明細書中に開示される実装は、リソースが制約された機器で実施するのに特に適している可能性があるためである。ただし、本明細書中に開示される実装は、ラップトップ型PCやサーバー等の他の種類のコンピューティング・デバイスで実施することもできる。
一般に、ユーザは、例えばマウス、スクロール・ホイール、タッチ画面、または他の入力方法を使用して、アプリケーションを表すアイコン、タイル、または他のインターフェース要素を特定し、選択することによってアプリケーションの実行を要求することができる。アイコンは、デスクトップ、メニュー、または他のインターフェースから選択することができる。本文献では、用語「起動」は、アプリケーションの実行を求めるそのようなユーザ要求を受け取るのに応答して通例発生する各種の動作を含む一般的な用語である。例えば、起動は、アプリケーションのためにメモリを割り振ること、およびアプリケーションを記憶装置から割り振られたメモリにロードすることを含むことができる。起動は、ロードされたアプリケーション・コードを実行して、アプリケーションの初期化に関連する機能を行うことも含むことができる。例えば、ネットワークからウェブ・ページ、画像、映像等のデータを取得するアプリケーション・コードを起動の一部として実行することができる。スレッドやプロセスなどのプロセッサ資源もアプリケーション起動の一部として割り振ることができる。
アーキテクチャ的には、本明細書中に開示される技術は、1つまたは複数の「コンテクスタ」の値を種々の動作に対応付ける意思決定エンジンを使用して実施することができる。一般に、コンテクスタは、アプリケーションを起動する等の特定の動作を行うかどうかを決定するために意思決定エンジンが使用できる状態情報を提供する。例えば、あるコンテクスタは、加速度計、光センサ、全地球測位システム(「GPS」)、マイクロフォン、時計等のモバイル機器の1つまたは複数の物理センサから値を直接得る、または論理的に値を導出する。他のコンテクスタは、特定のアプリケーションを要求する、特定の家族に電話をする、特定の単語を含むテキスト・メッセージを送信する等のユーザの行動を反映することができる。
本明細書において、用語「コンテクスタ」は、一般に、例えばセンサ、オペレーティング・システム、個々のアプリケーション等から機器が入手することができる情報の供給源の意味で使用する。用語「コンテクスト値」は個々のコンテクスタの値の意味で使用し、直接的な値(例えば周囲温度)、または論理的に導出された値(例えば温度を「寒い」、「暖かい」等の単語に変換することによる)のいずれをも含む。一般に、意思決定エンジンは、1つまたは複数のコンテクスタの現在または過去のコンテクスト値(順序を含む)についてとるべき動作を学習することができる。様々な動作から暗黙的または明示的にフィードバックを提供して意思決定エンジンの精度を改善し、それにより、特定のコンテクスタについて特定のコンテクスト値を学習させ、それを使用して特定の動作を行わせる。意思決定エンジンは、意思決定エンジンがユーザに対して特定の動作を自動的に行うことを決定する事例と、ユーザが直接、すなわち意思決定エンジンの介在なしに動作を行った事例の両方から学習できることに留意されたい。
一般に、現在または過去のコンテクスト値を使用して個々の意思決定エンジンを学習させ、特定の動作を行うかどうかを決定することができる。特に断らない限り、本明細書で使用する用語「コンテクスト値」は、特定のコンテクスタに関しての現在の値または過去の値のいずれをも意味する。実装例によっては、コンテクスタ・ログを使用して、時間の経過に伴うコンテクスト値の履歴を記憶する。さらに、場合によっては、コンテクスト値の特定の系列をコンテクスタ・ログから取得し、個々の意思決定エンジンにより適用することができる。コンテクスト値の系列の一例としては、例えば、ユーザが常に3つの異なるアプリケーションを特定の順序で使用するなどのアプリケーションの使用パターンなどがある。
本発明に係る動作の一例は、上述のアプリケーションの起動である。本明細書で使用する用語「事前起動(prelaunch)」は、ユーザが何らかの種類の機器入力を提供することによってアプリケーションの立ち上げを実際に要求する前に少なくとも部分的にアプリケーションを起動しておくという意味で使用する。例えば、ユーザは、特定の相手との通話を終えた直後にソーシャル・ネットワーキング・アプリケーションを開いて、その人物のソーシャル・ネットワーキング・プロフィールにおいて最新の状況、写真、コメント等を確認することが多いとする。意思決定エンジンは、例えば通話の最中やユーザが通話を終了した直後等に、ユーザが実際にアプリケーションの実行を要求する前にソーシャル・ネットワーキング・アプリケーションを事前起動しておくことを学習することができる。ユーザのために先んじてソーシャル・ネットワーキング・アプリケーションを事前起動することにより、一旦意思決定エンジンが該当する状況下で事前起動を行うことを学習すると、ユーザがソーシャル・ネットワーキング・アプリケーションを呼び出す際に体験する待ち時間が比較的短縮される可能性がある。この場合は、電話ログのコンテクスタが、ユーザが電話で話をした様々な連絡先を示すコンテクスト値を提供することができる。一部の実装例では、例えば、通話が行われた時刻/日/日付、ボブがユーザに電話をかけたのか、もしくはユーザがボブに電話をかけたのか、ボブおよび/またはユーザが職場の電話番号から電話をかけたのか、もしくは個人の電話番号から電話をかけたのか等の通話に関する他の情報も電話ログのコンテクスタから得ることができる。
本発明に係る動作の別の例は、機器の着信音の音量を自動的に調節することである。マイクロフォンで検出された周囲雑音が比較的高い時に着信音の音量を上げることが多いユーザを考えたい。意思決定エンジンは、マイクロフォンで検出された周囲雑音のコンテクスタの値が一定の閾値を超える時に動作(着信音量の増大)を行うように学習することができる。この周囲雑音の閾値は、その動作を行わせる特定のコンテクスト値として意思決定エンジンで学習することができる。言い換えると、意思決定エンジンは、周囲雑音のコンテクスタから得られたコンテクスト値が、着信音量の増大が意思決定エンジンが行うのに適した動作であることを示す状況では、ユーザ入力がなくとも予測的に着信音の音量を増大させることができる。時間の経過に伴い、意思決定エンジンは、(1)周囲雑音が高い状況下では着信音量を上げる動作をとり、(2)意思決定エンジンにその動作をとらせる周囲雑音の量の精度を改善し、(3)例えば種々のレベルの周囲雑音および/またはユーザの設定に応じて、特定の音量レベルを高く、または低く調節することを学習することができる。
上記のように、意思決定エンジンは、特定の動作が適切であったかどうかを示すフィードバックを介して学習させることができる。したがって、意思決定エンジンは、ある動作を行った後にフィードバックを受け取り、そのフィードバックを使用して意思決定エンジンの精度を改善することができる。意思決定エンジンが着信音の音量を上げる上記の例を考えたい。その後、ユーザがかかってきた電話を無視したり、着信音の音量を下げたりすると、それは意思決定エンジンにとって否定的なフィードバックとなる可能性がある。上記のソーシャル・ネットワーキング・アプリケーションを事前起動する例では、フィードバックは、アプリケーションが起動されてから所定量の時間以内、例えば30秒以内にユーザが実際にソーシャル・ネットワーキング・アプリケーションを起動するための何らかの機器入力を提供することを決定したかどうかを示す。ユーザが機器入力を提供した場合、これは一般には意思決定エンジンにとって「肯定」のフィードバックと見なすことができ、ユーザが特定の家族に電話をした直後にアプリケーションを起動する動作をとる決定を強化する。反対に、所定量の時間内にユーザがソーシャル・ネットワーキング・アプリケーションを起動する機器入力を提供しない場合は、意思決定エンジンにとって「否定」のフィードバックと見なすことができ、意思決定エンジンに、そのような状況でソーシャル・ネットワーキング・アプリケーションを事前起動する確率を下げさせる。
この例では、アプリケーションは必ずしも明示的なフィードバックを意思決定エンジンに提供しないことに留意されたい。むしろ、フィードバックは暗黙的であり、例えばアプリケーションは、ユーザがアプリケーションを起動したか、または起動しなかったかを報告する必要はない。代わりに、その情報はモバイル機器のオペレーティング・システムから提供することができ、この場合、意思決定エンジンはオペレーティング・システムの一部となる。その他の場合においては、アプリケーションから、例えば、意思決定エンジンによって行われた特定の動作が適切であったかどうかを示すためにアプリケーションが意思決定エンジンに送る数値またはブール値から明示的なフィードバックを得ることができる。明示的なアプリケーションのフィードバックの一例として、アプリケーションは、アプリケーションを事前にロードするのにかかった時間を意思決定エンジンに通知することができる。一般に、あるアプリケーションの事前ロード時間が比較的長いことは、そのアプリケーションが事前ロードするのに適したアプリケーションであることを示唆し、したがって、アプリケーション起動決定エンジンにとって肯定的なフィードバックとして働く。逆に、事前ロード時間が比較的短いことは、そのアプリケーションを事前ロード時間することで得られる利益が比較的少ないことを示唆し、したがってアプリケーション起動決定エンジンにとって否定的なフィードバックとして働く。
上記のようなアプリケーションからのフィードバックは、コンテクスト値がアプリケーション使用パターンの非常に優れた、またはほぼ完璧な指標として機能する場合でも有用である可能性があることに留意されたい。例えば、1つまたは複数のコンテクスタが特定のアプリケーションが近い将来にほぼ確実にユーザによって起動される見込みであることを示す場合でも、通常通りのアプリケーションのロードを迅速に行えばユーザが待ち時間を全く知覚しない場合にはほとんど利益が得られない。逆に、1つまたは複数のコンテクスタが、ユーザが所与のアプリケーションを起動する比較的不確実な兆候しか提供しない場合でも、そのアプリケーションが事前起動しなければユーザに反応するようになるまでに長時間を要する場合には、アプリケーションを事前起動することがなお有用である可能性がある。
<例示的なシナリオ>
図1は、本発明に関し、状況を使用して先を見越して機器動作を行うことができるシナリオ100を説明する図である。シナリオ100は事例1および事例2を伴い、それぞれを以下において説明する。事例1から始めると、例示的シナリオ100は、ユーザが特定のアプリケーション、例えば上記のソーシャル・ネットワーキング・アプリケーションの起動を要求した直後、例えば5秒後のモバイル機器110を示している。例えば、ユーザは、(キーボード、音声指示、トラックボール、タッチ画面等を介して)アプリケーションを起動することを指示する何らかの種類の機器入力を提供している。しかし、アプリケーションは、何らかの初期化処理を行っているために、例えば、記憶装置からメモリにロード中、オペレーティング・システムによりアクティブなアプリケーション・コンテクスト(プロセスやスレッド)に切り替え中、ネットワークを通じてデータの取得を試みている等のために、ユーザ命令にはまだ反応しない可能性がある。
しかし、図1に示すように、モバイル機器110は、アプリケーションを事前起動してユーザに知覚される待ち時間を短縮するように構成することが可能な状況に基づく動作モジュール111を含むことができる。一般に、状況に基づく動作モジュール111は、モバイル機器からコンテクスト、例えば「事例1」ではモバイル機器を使用して「ボブ」に電話をかけたことを示す1つまたは複数のコンテクスト値を取得することができる。コンテクスト値は、その通話がソーシャル・ネットワーキング・アプリケーションを起動するユーザ要求を受け取る直前、例えば2分以内に発呼された、または着信されたことを示すこともできる。時間の経過に伴って、状況に基づく動作モジュール111は、ソーシャル・ネットワーキング・アプリケーションを事前起動することが、ユーザがボブに電話をかけた、またはボブからの電話を受けた後にユーザのために行うのに適した動作であることを学習することができる。したがって、「事例2」においては、状況に基づく動作モジュールは、ユーザが実際にアプリケーションを要求する前にソーシャル・ネットワーキング・アプリケーションを起動しておくことができる。したがって、次にユーザがボブに電話をかける際にはソーシャル・ネットワーキング・アプリケーションを初期化し、ユーザが使用できる状態にしておくことができる。これを事例2に概略的に示し、事例2では事前起動の一部としてソーシャル・ネットワーキング・アプリケーションが何枚かの写真を既にモバイル機器にダウンロードしている。
<例示的なアーキテクチャ>
図2は、状況に基づく動作モジュール111の例示的アーキテクチャを示す図である。図2に示すように、状況に基づく動作モジュール111は、コンテクスト・マネジャ210、マッピング・マネジャ220、および動作マネジャ230を含むことができる。一般に、コンテクスト・マネジャ210は、時間211、場所212、電話ログ213、周囲雑音214、周辺光215、アプリケーションの使用状況216等を含む1つまたは複数のコンテクスタを管理するように構成することができる。コンテクスト値は、時間211についてはローカル機器のクロックおよび/または時刻サーバにより、場所212についてはGPSシステムおよび/またはセルラー網による三角測量により、電話ログ213については通話記録アプリケーションにより、周囲雑音214についてはローカル機器のマイクロフォンにより、周辺光215についてはローカル機器の光センサにより取得することができ、およびアプリケーションの使用状況216についてはオペレーティング・システムから取得することができる。一般に、個々のコンテクスト値は、例えばセンサからモバイル機器でローカルに得ることができ、事例によっては1つまたは複数のローカルのコンテクスタ・ログに記憶される。ただし、事例によっては、コンテクスタ・ログをリモートで、例えばサーバに保持および記憶することができ、状況に基づく動作モジュールで使用するためにモバイル機器によって取り出すことができる。
図2に図示しないコンテクスタの他の例も企図される。一般に、他のコンテクスタは、モバイル機器110の各種機器センサ、および/またはオペレーティング・システム・ログ等、モバイル機器で保持される他の情報から得ることができる。下記で詳細に説明するように、コンテクスタは、例えば、コンテクスト・マネジャ210で使用するコンテクスタをユーザが選択できるグラフィック・ユーザ・インターフェース(「GUI」)を介してユーザが選択できるようにすることができる。
本発明に係る動作を行うために意思決定エンジンが使用できる新しいコンテクスタを開発者が構築できることにも留意されたい。例えば、モバイル機器に電子コンパスをインストールするサード・パーティのアプリケーションを考えたい。電子コンパスの値、例えば方位角や論理的な方向(北、北西等)を提供する対応するコンテクスタをこの時にインストールすることができる。既存の意思決定エンジンは、新たにインストールされたコンテクスタにそれ以上変更を加えずに使用して各種動作を行うことを学習することができ、例えば、新しいコンテクスタをコンテクスト・マネジャによって提供される既存の機構に「プラグ・イン」することができる。これは、新しいコンテクスタがモバイル機器の製造者によって提供されるのか、モバイル機器のオペレーティング・システムの開発者(「ファースト・パーティ」)によって提供されるのか、またはサード・パーティーのアプリケーション開発者によって提供されるのかに関係なく該当する可能性がある。
状況に基づく動作モジュール111はマッピング・マネジャ220も含むことができ、これは、個々のコンテクスタから提供されるコンテクスト値を対応する動作に対応付けるように構成することができる。マッピング・マネジャ220は、対応付けを行うように構成された1つまたは複数の意思決定エンジン、例えばアプリケーションまたは「アプリ」起動決定エンジン221、着信音量決定エンジン222、および/または画面輝度決定エンジン223を含むことができる。個々の意思決定エンジンは、確率論/統計/確率的モデル、機械学習技術を介したオンラインまたはオフライン学習等を含む種々の決定アルゴリズムを使用して実装することができる。意思決定エンジンの特定の実装に関係なく、意思決定エンジンで実装される決定アルゴリズムが、特定の動作を行うかどうかを判断することができる。一般に、以前の機器動作とコンテクスト値の履歴を使用して時間の経過と共に意思決定エンジンを学習させることができ、その結果、意思決定エンジンは、ユーザにとって有益な形で各種機器動作の選択の精度を改善することを学習する。以前の機器動作は、アプリケーションの事前起動など、以前に意思決定エンジンによって行われた機器動作、または、意思決定エンジンが事前起動することなくユーザ入力を介して直接アプリケーションを起動したなど、ユーザが同様の動作を行った事例である。上記でコンテクスタについて述べたように、ファースト・パーティまたはサード・パーティの開発者が、マッピング・マネジャに直接プラグ・インし、既存のコンテクスタを使用して決定を行って各種動作を行うことを開始することが可能な新しい意思決定エンジンを提供することができる。例えば、機器が単純ベイズ・ネットワーク(naive Bayesian)による意思決定エンジンを備えて製造され、その後サード・パーティーの開発者が、マッピング・マネジャにプラグ・インする時間ウィンドウ型の非常に高速の決定木意思決定エンジンを提供する。
動作マネジャ230は、マッピング・マネジャ220の意思決定エンジンによって行うことが可能な各種動作を管理するように構成することができる。例えば、そのような動作には、アプリケーションの事前起動動作231、着信音量調節動作232、および/または画面輝度調節動作233が含まれる。一般に、マッピング・マネジャで管理される各意思決定エンジンは、動作マネジャで管理される動作の1つまたは複数を行うことができる。実装によっては、動作は、例えば動作マネジャ230で使用される動作をユーザが選択できるグラフィック・ユーザ・インターフェース(「GUI」)を介して、ユーザ選択可能とすることもできる。コンテクスタおよび意思決定エンジンと同様に、動作は、ファースト・パーティまたはサード・パーティーの開発者によって別途提供することもできる。例えば、上記の電子コンパスが、コンパスを照明する動作を提供することができる。時間の経過と共に、意思決定エンジンは、特定の時刻や周囲光が低い時等にユーザのためにコンパスを照明することを学習することができる。より一般的には、新しい動作を動作マネジャにプラグ・インして、既存の意思決定エンジンが既存のコンテクスタに応答して新たに利用可能となった動作を行うことを学習することができる。
以下の説明では、アプリケーションの事前起動動作について全般的に説明すると共に、それぞれ事前起動動作の一部と見なすことができる個々の具体的な下位動作(例えばメモリからアプリケーション・コードをロードする、コードを実行する等)に関連して説明する。また、用語「事前起動」は、本明細書においては、ユーザがアプリケーションの実行を要求する前にアプリケーションの起動を少なくとも部分的に行うという意味で一般に使用することに留意されたい。したがって、事前起動ではアプリケーションの起動を少なくとも部分的に行って、アプリケーションを事前起動された状態(コード/データが既にメモリにロードされている、コードが既に実行されている等)にして、ユーザがその後アプリケーションの実行を要求した場合にアプリケーションを事前起動された状態から実行できるようにする。
実装によっては、個々の意思決定エンジンは複数の動作を行うことができ、例えば事前起動される各アプリケーションを異なる動作として概念化することができることにも留意されたい。同様に、着信音量の調節は、1つの動作と考えることも、例えば音量を上げ下げするための個別の動作などの複数の動作を含むと考えることもできる。これは画面輝度の調節についても同様である。
個々の意思決定エンジンが特定の動作を行うかどうかは、意思決定エンジンへの入力として機能するコンテクスタの値に応じて決まる。時間の経過に伴って、意思決定エンジンが動作を行った時に、個々の動作から肯定または否定的なフィードバックを得ることができる。そのフィードバックを使用して意思決定エンジンを更新して、例えば着信音量を自動的に上げたり、ユーザのためにアプリケーションを事前起動したりする等、機器のユーザに有用である可能性のある動作をとらせることができる。図2では、動作から意思決定エンジンへのフィードバックを、個々の動作と意思決定エンジンを結ぶ双方向の矢印で概略的に示している。
図2に示す特定のコンテクスタ、意思決定エンジン、および動作は例示的なものであり、他のコンテクスタ、意思決定エンジン、および動作が企図されることにも留意されたい。例えば、上記のように、コンテクスタの値は、加速度計、温度センサ、電子コンパスまたはGPS、光センサ、マイクロフォン、カメラ、無線周波識別(RFID)タグの読み取り(例えば近距離通信を使用する)等の種々のセンサ、ならびにネットワークの可用性やリンクの品質から得ることができる。コンテクスタは、各種アプリケーションおよび/またはモバイル機器110のオペレーティング・システムから得ることもでき、例えばオペレーティング・システムが、時間のコンテクスタに使用される機器クロックを備える場合がある。例えば、モバイル機器110は、種々のアプリケーションがいつ起動されるかを追跡するオペレーティング・システムを含み、特定のアプリケーションの起動がコンテクスタの役割を果たすことができる。具体的には、例えばユーザがいくつかのアプリケーションを特定の順序で要求する傾向がある場合には、一部のアプリケーションが、他のアプリケーションを事前起動させる「引き金(trigger)」となるアプリケーションである場合がある。所与のアプリケーションへのログインやキーの押下の順序等のユーザの振る舞いもコンテクスタの役割を果たすことができる。
所与のコンテクスタから得られるコンテクスト値は、未処理のデータであっても、より高いレベルの意思決定エンジンに提供してもよいことに留意されたい。例えば、未処理のGPSデータを、場所のコンテクスタにより、例えば自宅、職場、友人の家等の意味的に情報の多い論理的な場所に変換することができる。同様に、未処理の時計データを時間のコンテクスタにより、朝、午後、夕方、夜間等に変換することができる。
意思決定エンジンに適する決定アルゴリズムの具体例としては、ベイズ・ネットワーク(例えば単純ベイズ・ネットワーク)分類器、決定木(例えば非常に高速の決定木)、サポート・ベクトル・マシン(SVM)、隠れマルコフ・モデル(HMM)、ガウス混合モデル(GMM)等がある。現在の時刻と論理的な場所が単純ベイズ・ネットワークに基づく意思決定エンジンのコンテクスタとして使用される単純なシナリオを考えたい。意思決定エンジンが実行中のアプリケーションを認識すると、意思決定エンジンは、その認識が発生した時刻についてアプリケーション・カウンタc_xを増分することができる。意思決定エンジンは、その認識が発生した論理的な場所を表す別のカウンタc_yも増分することができる。意思決定エンジンは、アプリケーションについてのカウンタPriorも増分することができ、これはアプリケーションが実行された合計回数を表す。意思決定エンジンが次に実行するアプリケーションを決定すると、意思決定エンジンは、現在の時刻を表す値c_x’および現在の論理的場所を表す値c_y’を取得することができる。そして、意思決定エンジンは、c_x’*c_x’*Priorの値を各アプリケーションに割り当て、最も高い値のアプリケーションを実行することができる。
フィードバックは次のようにして発生する。予測が行われた後、ユーザが実際にアプリケーションを起動すると、意思決定エンジンは何れのアプリケーションが起動されたかを認識することができる。そして、その情報が、例えば変数c_x、c_y、およびPriorを使用して上記の手順に従って記録される。したがって、ユーザがこれまで特定のアプリケーションを同じ時刻および/または同じ場所で実行する傾向がある場合は、そのことが割り当てられる値を増大させ、次にユーザがその場所に滞在している時、および/または同じ時刻に意思決定エンジンがそのアプリケーションを実行する可能性を高くするように作用する。
具体的な実装の1つでは、実行時のオーバーヘッド(CPUおよびメモリの利用量)が比較的低く、オフラインの学習処理を必要としないことから、非常に高速の決定木を使用する。さらに、ユーザの振る舞いの変化に適合しやすいため、そのような決定木の時間ウィンドウ型の実装を使用することもできる。非常に高速の決定木の詳細については、Domingos et al., “Mining High−Speed Data Streams,” KDD “00, Proceedings of the sixth ACM SIGKDD international conference on Knowledge discovery and data mining (pp. 71−80), 2000. Boston, MA: ACM Pressで得ることができる。
一般に、コンテクスタの以前の値と動作のフィードバックを使用して意思決定エンジンを更新することができる。その結果、意思決定エンジンがそのフィードバックに基づいて学習するのにつれて、意思決定エンジンにより適切な動作をとらせることができる。実装によっては、コンテクスト値と動作のフィードバックを「ウィンドウ化」して古い値を割り引いて考慮する。例えば、ウィンドウ型ベイズ・アルゴリズムや決定木では、比較的最近(例えば、過去一週間、先月、過去45日間等)のデータのみをコンテクスタおよびフィードバックに使用して意思決定エンジンを訓練する。それにより、意思決定エンジンが、例えば急なユーザの振る舞いの変化に対応して、より迅速に学習することを助けることができる。
この決定木の具体例では、意思決定エンジンは反復的にコンテクスト値を区分して、特定の動作に対応する値または値の範囲とする。決定木の各末端ノードが個々の動作を表すことができ、コンテクスト値は区分に使用される属性として表される。時間の経過と共に、末端ノード(動作)を検査ノードに置き換えることができ、検査ノードを分割して決定木で新しい規則を学習する。
また、ここに開示されるアーキテクチャでは各種動作とコンテクスタ間の独立を可能とすることに留意されたい。ある意味では、動作とコンテクスタを図2のアーキテクチャに「プラグ・イン」することができる。言い換えると、新しいコンテクスタを追加して、意思決定エンジンがその新しいコンテクスタを使用して、モバイル機器で既に有効にされている特定の動作を行うかどうかを学習できるようにする。
例えば、モバイル機器の位置で周辺光を監視する周辺光センサをコンテクスタとして追加することができる。周辺光が特定の機器動作と相関する傾向がある場合は、特定の意思決定エンジンが、周辺光についての特定の値に応答して1つまたは複数の既存の動作を開始できることを学習することができる。すなわち、意思決定エンジンは、その新しいコンテクスタに基づいて既存の機器動作を行うか否かについて新しい規則を学習することができる。
コンテクスタと動作とが互いに独立していることにより得られる技術的利点の1つを以下の例で説明する。この例は、コンテクスト・マネジャ210で新しいコンテクスタを有効にすることによってユーザの満足度を向上させることができることを示す。上記の家族ボブと話をした直後に頻繁にソーシャル・ネットワーキング・アプリケーションを開くユーザを考えたい。このユーザは、毎朝、通常は1時間行う朝のジョギングから帰ってきた直後にソーシャル・ネットワーキング・アプリケーションを開く習慣もあるとする。通話コンテクスタだけを有効にし、他のすべてのコンテクスタを有効にしない場合、アプリケーション起動決定エンジンは、ユーザがモバイル機器でボブと通話をした後にソーシャル・ネットワーキング・アプリを事前起動することを学習することができる。しかし、時間のコンテクスタや周辺光のコンテクスタなど、時間に反応するコンテクスタがないため、意思決定エンジンは、ユーザが朝にソーシャル・ネットワーキング・アプリケーションを開く傾向があることを示すコンテクスト値を得ることができない。
意思決定エンジンはこの例のユーザの習慣を学習するのに適したコンテクスタを持たないため、意思決定エンジンは、ユーザが朝のジョギングから戻る前にユーザのためにソーシャル・ネットワーキング・アプリケーションを事前起動することを学習することができない。現在の機器時間や周辺光センサ(例えば機器を持ってジョギングをするユーザの場合)などの新しい時間に反応するコンテクスタを有効にすることにより、既存のアプリケーション起動決定エンジンは、朝の適切な時間にモバイル機器でソーシャル・ネットワーキング・アプリケーションを事前起動することを学習することができる。肯定的なフィードバックでこの動作を強化することができ、例えば、ユーザが実際に毎朝ソーシャル・ネットワーキング・アプリケーションの実行を要求する時に肯定的なフィードバックが受け取られる。
周辺光のコンテクスタと時間のコンテクスタとは互いに正確には連携しないことに留意されたい。例えば、両者の関係は、夏時間への切り替わり後または夏時間からの切り替わり後に急に変化する、または季節に伴って日の出の時刻が変わるのにつれて時間をかけて変化する。場合によっては、意思決定エンジンは、ユーザの習慣に応じて一方のコンテクスタまたは他方のコンテクスタを使用することを学習することができる。したがって、意思決定エンジンは、日の出の時間に関係なく決まった時刻に習慣的にジョギングをするユーザに対しては、時間のコンテクスタを使用してソーシャル・ネットワーキング・アプリケーションを事前起動することを学習することができる。逆に、時計の時間に関係なく日が昇る時間に習慣的にジョギングをするユーザには、意思決定エンジンは周辺光のコンテクスタを使用してソーシャル・ネットワーキング・アプリケーションを事前起動することを学習することができる。
コンテクスタと動作が独立していることが有益であるさらに別の例として、既存の意思決定エンジンおよび既存のコンテクスタと共に機能するように新しい動作を有効にする以下の例を考えたい。ユーザがソーシャル・ネットワーキング・アプリケーションを事前起動するという1つの動作のみを有効にしており、上記のように機器時間および/または周辺光のコンテクスタを有効にしているとする。時刻の変化または朝の周辺光の変化は、意思決定エンジンがソーシャル・ネットワーキング・アプリケーションを事前起動するために使用するコンテクスト値の役割を果たすことができる。ただし、ユーザは、毎晩着信音の音量を下げ、朝起きた時に着信音の音量を戻すのを忘れる傾向もあるとする。着信音量調節動作232を有効にすることにより、着信音量決定エンジン222は、朝の一定の時刻、または朝に周辺光が増してきた時に着信音の音量を上げることを学習することができる。この場合、着信音の音量を上げたことからのフィードバックは、(1)ユーザが電話に出るか、または(2)調節後に着信音の音量を下げない場合に肯定と見なすことができる。着信音量決定エンジンは、夜の特定の時刻および/または周辺光が低減する時に着信音の音量を下げることも学習することができることにも留意されたい。
上記の例では、周辺光のコンテクスタと併せて時間のコンテクスタを使用することが有益である場合がある。ユーザは日中にモバイル機器をポケットに入れる傾向があるとする。この場合、ユーザのポケットの中は昼間でも暗いため、周辺光がないことだけでは、着信音の音量を下げる適切な指示にはならない可能性がある。時間のコンテクスタも使用することにより、着信音量決定エンジンは、例えば、(1)周辺光が比較的低く、かつ(2)現在の時刻が例えば午後8時など比較的遅い時に着信音の音量を下げるという規則を学習することができる。
<例示的なGUI>
図3Aおよび図3Bは、それぞれ例示的なグラフィック・ユーザ・インターフェース(「GUI」)300および350の図である。GUI300でユーザは1つまたは複数のコンテクスタを選択的に有効/無効にすることができ、GUI350でユーザは1つまたは複数の動作を選択的に有効/無効にすることができる。例えば、GUI300および/または350をモバイル機器で提示して、モバイル機器で有効にするコンテクスタおよび/または動作をユーザが選択できるようにする。一般に、新しいコンテクスタを有効にすることにより、ユーザは、既存の動作を実行するかどうかを決定する時に新しいコンテクスタから得られるコンテクスト値を意思決定エンジンに使用させることができる。同様に、新しい動作を有効にすることにより、ユーザは、意思決定エンジンに、既存のコンテクスタから得られるコンテクスト値に基づいてその新しい動作を実行するかどうかを決定させることができる。
図3Aに関して、ユーザは、「有効にする」の列301から対応するブロックを選択することにより、GUI300を使用して個々のコンテクスタを有効にすることができる。所与のコンテクスタがユーザによって有効にされると、対応するブロックに「x」が表示され、それ以外の場合は空欄で表示される。したがって、図3Aは、ユーザが時間211と場所212を有効にし、電話ログ213、周囲雑音214、周辺光215、およびアプリケーションの使用状況216を無効にした設定を示している。
図3Bに関しては、ユーザは、「有効にする」の列351から対応するブロックを選択することによりGUI350を使用して個々の動作を有効にすることができる。所与の動作がユーザによって有効にされると、対応するブロックに「x」が表示され、それ以外の場合は空欄で表示される。図3Bは、ユーザが特定の動作について下位動作を個々に選択状態にできるように複雑性を増した場合を示す。ここでは、ユーザはアプリケーション事前起動動作231全般を有効にしているが、図3Bで電子メール・アプリケーションの事前起動352に対応するブロックが空欄であることで示されるように、電子メール・アプリケーションの事前起動は明確に無効にしている。したがって、図3Bは、ユーザがアプリケーションの事前起動と着信音の調節を有効にした設定を示している。ただし、すべてのアプリケーションの事前起動を有効にする代わりに、ユーザは、アプリケーション事前起動決定エンジンで電子メール・アプリケーションが事前起動されることを明確に阻止している。より一般的には、複数の下位動作を実施する意思決定エンジンの場合、ユーザは、上記のように下位動作単位で特定の下位動作の有効/無効を切り替えることができる。
<例示的な決定規則>
図4A、4B、および4Cは規則表400を示し、これは、各種の決定規則が時間の経過と共に変化する、または追加される様子を説明するために使用される例示的なデータ構造である。この例では、規則表400は、数個の意思決定エンジンに対応する組み合わせられた規則を示し、それらの規則は時間の経過と共にモバイル機器で進展する可能性がある。下記において詳細に説明するように、規則表400は、追加的なコンテクスタと動作が有効にされるのに従って、アプリケーション起動決定エンジン221および着信音量決定エンジン222が学習することが可能な決定規則を例示している。ただし、規則表400は、コンテクスタと動作を有効にすると新しい決定規則または更新された決定規則が発生することを例示するものであり、特定の意思決定エンジンがどのように決定規則を表すかを反映するとは限らないことに留意されたい。むしろ、個々の意思決定エンジンは、各自に備えられた特定の学習アルゴリズムを使用して決定規則を表すことができ、したがって決定規則は必ずしも別個の表で追跡する必要はない。例えば、決定木分類器は時間と共に変化し得る木構造を使用して決定規則を表すのに対し、単純ベイズ分類器は時間と共に変化し得る確率値を使用して決定規則を表すことができる。
図4Aは、例えばユーザが着信音量の調節とソーシャル・ネットワーキング・アプリケーションの事前起動に関する2つの動作を有効にした時の初回の規則表400を示し、それらの動作は上記のようにアプリケーションを事前起動する動作の下位動作とすることができる。上記のように、ユーザはGUI350などのGUIを使用してそれらの動作を有効にすることができる。さらに、ユーザは、時間のコンテクスタ211と電話ログのコンテクスタ213の2つのコンテクスタを有効にしている。時間の経過に伴って、着信音量決定エンジンは、毎朝午前8時に着信音の音量を上げることを学習することができる。図4Aではこれを規則401として示し、これは着信音量調節動作を午前8時のコンテクスト値に対応付ける。同様に、アプリケーション起動決定エンジンは、電話ログのコンテクスタがユーザがたった今ボブと電話で会話をしたことを示す時には必ずソーシャル・ネットワーキング・アプリケーションを事前起動することを学習することができる。図4Aではこれを規則402として示し、これは「ボブ」の電話ログのコンテクスト値を、ソーシャル・ネットワーキング・アプリケーションを事前起動する動作に対応付ける。
図4Bは、例えばユーザが電子メール・アプリケーションを事前起動する動作をさらに有効にした後の第2の規則表400を示す。上記のように、ユーザはGUI350などのGUIを使用してこれを行うことができる。この新しい動作を有効にすることにより、アプリケーション起動決定エンジン221は、ユーザが朝午前9時を少し過ぎた時に電子メール・アプリケーションを起動する傾向があることを時間の経過に伴って学習することができる。したがって、事前起動アプリケーション決定エンジンは、電子メール・アプリケーションを事前起動する動作を午前9時のコンテクスト値に対応付ける新しい規則403を学習することができる。
図4Cは、例えばユーザが周囲雑音を測定するコンテクスタをさらに有効にした後の第3の規則表400を示す。例えば、周囲雑音は、ユーザのモバイル機器のマイクロフォンで測定することができる。ユーザがこの新しいコンテクスタを有効にしたため、着信音量調節意思決定エンジンは、時間のコンテクスタと周囲雑音のコンテクスタの両方に依存するように規則401の精度を改善することができる。具体的には、図4Cの規則401は、周囲雑音が50dBを上回る時に午前8時より後にのみ着信音の音量を調節することを示している。上記のように、実装例によっては、着信音を調節する特定の音量、着信音の音量が調節される前にどの程度の周囲雑音があるか、周囲雑音のために着信音量を調節できる特定の時間等についての推定精度を継続して改善することができる。
上記の例を文脈に当てはめると、図4Cに示す規則401は、ユーザが一般に意思決定エンジンによって自動的に着信音量が上げられた時には音量をそのままにするが、周囲雑音が比較的低い時には着信音量を元の音量に下げる傾向があるという使用パターンを反映することができる。したがって、周囲雑音が比較的低かった状況では、着信音量を自動的に上げることが適切ではなかったという暗黙的な否定的なフィードバックをユーザが意思決定エンジンに提供したことになる。
上記の説明を展開するためのさらなる視点として、ユーザは通常午前8時までには比較的騒がしい職場で仕事をしているが、休日に自宅にいる時には背景雑音がはるかに少ないとする。ユーザから見ると、モバイル機器が、ユーザが職場にいる日に着信音量を上げることを学習したようにすら見える可能性がある。しかし、ユーザは、後に、午前8時より後に例えば混んでいる飲食店など職場以外の比較的騒がしい場所にいる時にもモバイル機器が着信音量を上げることに気付く可能性がある。
しかし、上記のように場所もコンテクスタとして使用することができる。上記の例では、例えば、ユーザが職場にいる時には着信音量を上げ、ユーザが自宅にいる時には着信音量を下げることを学習することにより、場所も、着信音量決定エンジンが規則401と同様の規則を学習するための適切なコンテクスタとなり得る。
<第1の方法の例>
図5は、上記のような状況に基づく動作を実施するために使用できる例示的方法500を説明する図である。実装例によっては、方法500は、モバイル機器110の状況に基づく動作モジュール111によって行うことができる。ただし、下記で詳細に説明するように、方法500に関連する処理の一部は、1つまたは複数の他の機器、例えば1つまたは複数のサーバに割り振ることもできる。
ブロック501において、1つまたは複数のコンテクスタが有効にされる。例えば、コンテクスト・マネジャ210が、モバイル機器110の製造者によって予めインストールされ有効にされた1つまたは複数のコンテクスタを備えることができる。他の実施では、コンテクスタは、例えばソフトウェアやファームウェアの更新を介して追加のコンテクスタをインストールすることにより、後に追加することができる。さらに他の実施では、状況に基づく動作モジュール111が、ユーザによりインストール可能な購入後付加用(aftermarket)ソフトウェアとして提供される。さらに他の実施例においては、コンテクスト・マネジャ210が、ユーザまたはソフトウェア/ファームウェアの更新で、コンテクスタ単位で個々のコンテクスタをインストールさせることができる。さらに、上記のように、実装によっては、ユーザが例えばGUI300を使用して適宜個々のコンテクスタをオンオフ設定(有効/無効)することができる。
次に、ブロック502において、1つまたは複数の動作が有効にされる。コンテクスタに関して上記で述べたように、動作は製造時に有効にする、ソフトウェア/ファームウェアの更新やインストールの一部として提供する、または動作単位で個々にインストールすることが可能である。同様に、実装例によっては、ユーザが例えばGUI350を使用して選択しながら個々の動作をオン/オフ設定(有効/無効)することができる。
次にブロック503において、各コンテクスタについて1つまたは複数のコンテクスト値が取得される。例えば、周辺光や音を反映する値を1つまたは複数のセンサから取得することができ、現在の機器時間を取得することができ、電話ログを入手することができ、機器のオペレーティング・システムと通信することにより最近のアプリケーションの振る舞いを監視する等が可能である。
次にブロック504において、コンテクスタの値に基づいて決定を行う。例えば、1つまたは複数の意思決定エンジンが上記の決定アルゴリズムを実装して、コンテクスタの値を対応付けて1つまたは複数の動作を選択することができる。
次にブロック505において、選択された1つまたは複数の動作が行われる。例えば、着信音量を調節して上げる、または下げる、1つまたは複数のアプリケーションを事前起動する等を行うことができる。
次に、ブロック506において、動作フィードバックを使用して意思決定エンジンの決定規則を更新する。例えば、動作がアプリケーションの起動を含む場合、フィードバックは、起動後ユーザが所定量の時間以内にアプリケーションの使用を要求する時に肯定となり、それ以外では否定になる。着信音量の調節の場合には、フィードバックは、ユーザが所定の時間内にその動作を元に戻さない、またはその時間内に着信音量を調節することなく1つまたは複数回の通話に出る場合に肯定と考えることができる。ユーザが着信音量を下げる、または上げて元に戻すことによって動作を元に戻した場合は、否定的なフィードバックと見なすことができる。一般に、肯定的なフィードバックは個々の動作を強化するように作用し、その結果、意思決定エンジンは肯定的なフィードバックが得られた時と同じ値またはそれに近い値をコンテクスタが持つ時にその動作を実行し続ける。同様に、否定的なフィードバックは、否定的なフィードバックが得られた時と同じ値または近い値をコンテクスタが持つ時にその動作を行わないように意思決定エンジンを学習させる。
方法500は、図5でブロック506からブロック503に戻る矢印で示すように反復的に行うことにより(1つまたは複数の)意思決定エンジンの精度を継続的に改善することができることにも留意されたい。一般に、ブロック503〜506は、各種動作が行われた時のより新しいコンテクスト値とより新しい事例に基づいて時間をかけて反復して行うことができる。新しいコンテクスタおよび/または新しい動作が有効にされた時には、それぞれブロック501および502が方法500への入り口点の役割を果たすことができる。また、意思決定エンジンの精度は時間の経過と共に改善されるので、特定の動作が事例によっては行われないが、コンテクスト値が同じである複数の後の事例で行われる可能性がある。これは、意思決定エンジンがその特定のコンテクストについてその動作を行うことを時間の経過と共に学習した場合に該当する。例えば、第1の事例では、着信音意思決定エンジンが規則401をまだ学習していない可能性があり、そのため午前8時に着信音量を調節しない可能性がある。後の第2の事例では、着信音量決定エンジンが規則401を学習しており、午前8時に着信音量を調節する可能性がある。同じように、意思決定エンジンの精度は継続的に改善され、最終的に、例えばユーザの振る舞いが変化するのに従って特定のコンテクスト値の場合は特定の動作を行わないことを学習することができる。
<第2の方法の例>
図6は、アプリケーションを事前起動する状況に基づく動作を実施するために使用できる例示的な方法600を説明する図である。概念的には、方法600は方法500におけるブロック505の処理動作内容の具体例と見なすことができる。実装例によっては、方法600はモバイル機器110のアプリケーション事前起動動作231によって行うことができる。
ブロック601において、事前起動するアプリケーションが特定される。例えば、このアプリケーションは、アプリケーション起動決定エンジン221によって特定することができる。上記の一例では、この決定を行って、ユーザが家族の一員であるボブとの電話を終えた直後の事例でソーシャル・ネットワーキング・アプリケーションを事前起動している。この例は、モバイル機器のユーザがソーシャル・ネットワーキング・アプリケーションの実行を要求する入力を提供する前にどのようにして動作が行われるかを説明するものであることに留意されたい。言い換えると、この決定が行われるのは、ユーザが電話の後比較的すぐにアプリケーションを要求する見込みが高いと意思決定エンジンが予想するようにするためである。
実装によっては、意思決定エンジンは、ブロック601で、アプリケーションに1つまたは複数の構成パラメータを設定することもできる。例えば、構成パラメータを使用して、例えばある電子メールについては電子メール署名を「ボブ」にし、他の電子メールについては「ボビー」にするなど、ユーザが電子メールをやり取りする相手に応じて異なる署名を設定することができる。別の例として、ユーザがWi−Fiアクセス環境のある地理的場所(例えば自宅)にいる時にはソーシャル・ネットワーキング・アプリケーションを比較的高い帯域幅機能に対応するよう設定し、ユーザがセルラー網サービスしか利用できない地理的場所(例えば自家用車)にいる時には比較的低い帯域幅機能に対応するよう設定することができる。
次に、ブロック602において、1つまたは複数の他のアプリケーションを退避させることができる。例えば、事前起動するアプリケーションが一定量のプロセッサおよび/またはメモリ資源を必要とする場合は、1つまたは複数の他のアプリケーションを終了して、事前起動対象のアプリケーションのために資源を解放することができる。具体的には、他のアプリケーションを終了することによってスレッドやプロセス等のプロセッサ資源を解放する、メモリを解放する、および/または他のアプリケーションのコードやデータをメモリから記憶装置に転送することができる。退避するアプリケーションを決めるためには各種の手法を使用することができ、例えば、現在実行されているアプリケーションの中で最も長い時間使用されていないもの、無作為に選択したアプリケーション、予測法、および/またはコストに基づく手法等がある。退避する(1つまたは複数の)アプリケーションは、記憶装置に移動する、メモリおよび/またはプロセッサ資源の割り当てを解放する等の「通常の」終了の振る舞いを用いることができる。
実装例によっては、上記のような退避させる(1つまたは複数の)アプリケーションは、1つまたは複数のコンテクスタの値に応じて意思決定エンジンが選択してもよく、例えば意思決定エンジンは、事前起動すべき(1つまたは複数の)アプリケーションだけでなく、退避する(1つまたは複数の)アプリケーションもコンテクスタの値に基づいて学習することができる。そのような実装では、アプリケーション起動決定エンジンは、退避されたアプリケーションを示すコンテクスト値を時間の経過と共に追跡するように構成することもできる。したがって、アプリケーション起動決定エンジンは、各種アプリケーションが退避された以前の事例からのフィードバックに基づいて、他のコンテクスタの値を考慮して、退避するのに適したアプリケーションを学習することができる。
次に、方法600は、ブロック603〜605の実行に進むことができる。一般に、ブロック603〜605の処理は、アプリケーションを事前起動して、アプリケーションを事前起動状態にすることに関連する。
ブロック603において、事前起動するアプリケーションに資源を割り振ることができる。例えば、アプリケーションは、モバイル機器のオペレーティング・システムにメモリ資源を要求し、メモリ資源をアプリケーションに割り振ることができる。同様に、プロセッサ資源、例えば1つまたは複数のスレッドやプロセスをブロック603の一部としてアプリケーションに割り振ることができる。
次に、ブロック604において、アプリケーション・コードおよび/またはデータをメモリにロードすることができる。例えば、実行可能なバイナリ・コードを含む1つまたは複数のアプリケーション・モジュールを記憶装置(例えばフラッシュやハード・ドライブなどの不揮発性メモリ)から取り出し、比較的高速の揮発性メモリ、例えばRAMにロードすることができる。例えば画像、映像、他の種類のデータ・ファイル等のアプリケーションで使用される各種データも記憶装置からメモリにロードすることができる。
次に、ブロック605において、ロードされたアプリケーション・コードをモバイル機器の1つまたは複数のプロセッサで実行することができる。例えば、当該アプリケーション・コードを実行することで、ネットワークからデータ(写真、映像等)をダウンロードする、ユーザをウェブ・サービスにログインさせる等の各種の初期化ステップを行うことができる。ゲーム・アプリケーションの場合、ブロック605は、1つまたは複数の点数をダウンロードする、1つまたは複数のピアもしくはサーバー(例えばマルチユーザ・ゲーム)に接続する等を含むことができる。
次に、ブロック606において、動作のフィードバックを受け取ることができる。実装例によっては、アプリケーションは、例えば肯定的なまたはマイナスのフィードバックを示す2進(ブール)値やより精緻な値(1〜10の整数の評価等)などのフィードバックを意思決定エンジンに提供するための明示的な呼び出しを行うことができる。他の実装例では、アプリケーションの明示的なフィードバックは使用されない。むしろ、意思決定エンジンは事前起動されたアプリケーションが事前起動から所定量の時間内に要求されるかどうかを監視することができる。例えば、意思決定エンジンは、事前起動から所定量の時間(例えば2分)以内にアプリケーションが使用されることを肯定的なフィードバックと見なし、その他の場合はフィードバックを否定と見なす。
方法600は、事前起動するアプリケーションのコードに変更を加えずに実行できることに留意されたい。例えば、アプリケーション起動決定エンジンの出力をモバイル機器のオペレーティング・システムのスケジューラに供給することができる。スケジューラは、単に事前起動されたアプリケーションを実行し、アプリケーションを所定の時間量、例えば15秒間実行させる。その時間中に、アプリケーション・コードを単に通常通りに実行して、通例はユーザが明示的にアプリケーションを起動した後に行われる初期化ステップを行うことができる。所定量の時間が経過すると、オペレーティング・システムのスケジューラは、ユーザが明示的にアプリケーションの実行を要求するまではアプリケーションをそれ以上実行しないでおく。例えば、オペレーティング・システムは、アプリケーション(フェッチされたデータを含む)を退避せずに引き続きメモリに置いておくが、ユーザ要求が実際に受け取られるまでは、プロセッサにアプリケーションをスケジュールするのを停止することができる。多くの場合、この手法は、アプリケーション・コードの変更を必要とせず、アプリケーションまたはオペレーティング・システムのスケジューラにさらに変更を加えることなく、意思決定エンジンの決定を取り込むことによって実装することができる。
他の実装例においては、アプリケーション・コードが、事前起動の目的に使用される明示的な呼び出しまたは「シンク(sync)動作」を提供することができる。そのような実装では、アプリケーションの設計者が、事前起動時にアプリケーションを実行するのに適した機能を決定することができる。そのような実装では、「通常の」起動手順の代わりにシンク動作が呼び出されるので、アプリケーションは自身が事前起動されていることに「気付く」。この実装例では、アプリケーション設計者が、事前起動の目的に適切な初期化機能を分けてシンク動作とすることができる。したがって、シンク動作を提供することにより、アプリケーション設計者は、事前起動段階で行われるアプリケーション機能と、ユーザがアプリケーションの実行を明示的に要求するまで実行を待つアプリケーション機能とをコントロールすることができる。
<その他の例>
上記のコンテクスタ、動作、および意思決定エンジンは例示的なものであり、ここに開示される概念をどのようにして実施できるかの具体例を示すために提供した。ただし、ここに開示される実装と整合性のある多くの他の使用事例も企図される。一般に、追加的な機能は、異なる種類のコンテクスタ、動作、および意思決定エンジンを有効にすることによって提供することができる。
例えば、特定のユーザの振る舞い、感情、活動等に関連するコンテクスタを提供することができる。実装によっては、ユーザが嬉しいか、怒っているか、悲しいか等を知らせることにより明示的に自分の気分を示すことができる。他の場合には、例えば声の調子や電子メール通信で使用される単語等からユーザの気分を推測することができる(気分の研究に関するさらなる詳細はhttp://affect.media.mit.edu/publications.phpで得ることができる)。そのような気分のコンテクスタが例えばユーザが悲しい気分であることを示す場合、着信音量決定エンジンは、悲しい時にはユーザは電話に出ないため、電話の着信音を消すことを学習することができる。別の例として、例えばユーザは比較的気分がよい時にソーシャル・ネットワーキング活動に参加する傾向があることから、アプリケーション起動決定エンジンは、ユーザが嬉しい気分であることを示す時にソーシャル・ネットワーキング・アプリケーションを起動することを学習することができる。
上記のように、ユーザの場所もコンテクスタとして使用することができる。実装によっては、物理的な場所(例えばGPS座標)に関連付けられた種々の論理的な場所を定義することができる。論理的な場所を定義することにより、ユーザが職を変えたり、新しい家に引っ越したりしても、学習された機能が整合性を保ち続けることができる。例えば、ユーザが職を変え、新しい物理的な職場への通勤を始めると、ユーザは新しい物理的な場所を「仕事」の論理的な場所として定義することができる。したがって、以前にユーザの古い職場に関して学習された規則は、2つの異なる職場の特定の物理的場所ではなく、「仕事」の論理的な場所に関連付けられるため、機能し続けることができる。
論理的な場所の別の例として、「飲食施設にいる」という一般的な概念を、ユーザのGPS座標がユーザがそのような施設にいることを示す時にはいつでも論理的な場所として使用することができる。したがって、ユーザが任意の種類のレストラン、カフェ、喫茶店等にいる時に頻繁にメールを書く習慣がある場合は、アプリケーション起動決定エンジンはテキスト・メッセージ・アプリケーションを開くことを学習することができる。したがって、「飲食施設」の論理的な場所を複数の場所と関連付け、ユーザがこれまでモバイル機器を持って訪れたことがない場所にも関連付けることができる。それに応じて、ユーザがこれまでその特定の場所でその動作を行ったことがなくとも、モバイル機器は、ユーザがいる場所の種類に基づいてメッセージ・アプリケーションを起動するなど、適切な動作をとることができる。むしろ、同様の場所におけるユーザの以前の動作に基づいて意思決定エンジンによって動作を推測することができる。
コンテクスタの別の例は、種々の動きに関連する。例えば、ユーザは、歩いている時と車を運転している時とで異なる習慣を有する場合がある。具体例として、ユーザは運転中は音声認識ソフトウェアを使用して電子メールおよび/またはテキスト・メッセージを作成するが、歩行中はキーボードを使用して電子メールおよび/またはテキスト・メッセージを作成する傾向があるとする。実装例によっては、ユーザが歩いているか運転しているかをユーザの最近の運動、例えば相対速度等に基づいて判定することができる。したがって、動きのコンテクスタが、「歩行中」、「運転中」、「自転車に乗っている」、「静止状態」等のコンテクスト値を提供することができる。さらに他の実装例においては、動きのコンテクスタが加速度計を使用して、ユーザが踊っているか、または他のその場で行う活動を行っているかどうかを判定することができる。
別の例として、コンテクスタは、モバイル機器の近くにいる人に関連することができる。例えば、ユーザが特定の友人や特定の家族等と一緒にいる場合、ユーザはモバイル機器を異なる形で使用する傾向がある場合がある。実装によっては、一緒にいる相手をユーザが明示的に特定する必要があるが、他の実装例においては、これは、例えばBluetooth(登録商標)等を介して他の人物のモバイル機器を認識することにより、モバイル機器によって自動的に判定することができる。子供と一緒にいる時には電話に一切出ない傾向があるが、特定の友人と一緒にいる時には常に電話に出るユーザを考えたい。そのような実装例においては、着信音量決定エンジンは、ユーザが子供と一緒にいる時には着信音量を下げるが、その特定の友人と一緒にいる時には音量を下げないようにすることを学習することができる。
これも上述したように、コンテクスタは、モバイル機器上の1つまたは複数のアプリケーションから提供される情報を反映することができる。例えば、電子メール・アプリケーションが、ユーザが外出中で職場にいないことを知らせるメッセージを有効にした、またはユーザが現在会議中であることを示すカレンダーの予定を有することを示すコンテクスト値を提供することができる。さらに別の例として、コンテクスタは、ユーザが最近特定の人物に電子メールを送信したことや、特定の単語が電子メールの件名および/または本文で使用されたかどうかを示すことができる。例えば、ユーザが文字列「http://...」を含む電子メールを受信した場合、意思決定エンジンは、例えばユーザが電子メール中のハイパーリンクをクリックしてブラウザ・アプリケーションを起動した以前の事例に基づいてこの動作を学習した後には、ブラウザ・アプリケーションを起動することができる。
実装例によっては、コンテクスタをモバイル機器によって1時間、1分、15分のブロック等の時間の「まとまり」に記録することができ、コンテクスト値を時間のまとまりごとの項目でコンテクスタ・ログに記録することができる。個々の意思決定エンジンは、時間のまとまりごとにアルゴリズムを更新することができる。実装例によっては、(1つまたは複数の)意思決定エンジンが対応する時間のまとまりを更新する相対的な頻度および/または時間のまとまりの大きさをユーザが設定できるようにすることができる。
上記の各種動作(アプリケーションの事前起動、着信音量の調節、画面輝度の調節等)も例示的なものであり、他の種類の動作も企図される。実装例によっては、モバイル機器を自動的にオン/オフする、飛行機モードにする等が可能である。さらに他の実装では、個々の意思決定エンジンが試験的に機器動作を学習することができる。例えば、意思決定エンジンは、ユーザがこれまでに電子コンパスを照明したことがなくとも、ユーザのために電子コンパスを照明する等の新しい動作を試みることができる。そのような実装では、それにより、ユーザが知りもしなかった可能性のあるモバイル機器の機能について知るのを助けることができる。
別の例として、一部の実装例は、バックグラウンド・サービスを特定の動作として抑制することができる。これには、ユーザが実行したいと思っている可能性のある他のアプリケーションのために演算資源(プロセッサ周期および/またはメモリ)を解放する効果がある。バックグラウンド抑制意思決定エンジンは、例えばユーザが仕事をしている時、特定の時刻、特定種類のファイル拡張子を持つ電子メールを受信した後等に、各種コンテクスト値がユーザが資源を多く要するアプリケーションを使用している可能性が高いことを示す時に、バックグラウンド・サービスを抑制することを学習することができる。
<例示的なシステム>
図7はシステム700の一例を示す図である。例示的システム700は、それぞれノート型クライアント機器702(1)およびモバイル・クライアント機器702(2)として示す1つまたは複数のクライアント機器702を含む。この場合、(1つまたは複数の)クライアント機器702は各々、プロセッサ704、メモリ706、記憶装置708、状況に基づく動作モジュール111、コンテクスタ・ログ710、およびオペレーティング・システム712を含むことができる。(添え字「(1)」は、クライアント機器702(1)に存在するモジュール、添え字「(2)」は、クライアント機器702(2)に存在するモジュールを表す意で使用する)状況に基づく動作モジュール111は一般に、図1〜図6に関して上述した処理を行うように構成することができる。コンテクスタ・ログ710は、有効にされているコンテクスタについて時間の経過と共に記憶された各種のコンテクスト値、ならびに動作がユーザまたは意思決定エンジンによって行われた時に行われた特定の動作の指示を含むことができる。
システム700は、1つまたは複数のサーバ714も含むことができる。(1つまたは複数の)サーバ714も、プロセッサ704(3)、メモリ706(3)、および記憶装置708(3)を含むコンピューティング・デバイスとすることができる。添え字(3)は、サーバ714のプロセッサまたは記憶装置の存在を表す意で使用することに留意されたい。サーバ714は状況に基づく動作モジュール111(3)も含み、上記で図1〜図6に関して述べた処理は、(1つまたは複数の)サーバ714の状況に基づく動作モジュール111(3)によって行うこともできる。特定の実装の1つでは、1つまたは複数の意思決定エンジンが(1つまたは複数の)サーバ714の状況に基づく動作モジュール111(3)によって実装され、動作自体は個々のクライアント機器で行われる。ある視点から見ると、この実装では、コンテクスト・マネジャ210および動作マネジャ230をクライアント機器に、マッピング・マネジャ220をサーバに分散することができる。
(1つまたは複数の)クライアント機器702とサーバ714は、これに限定されないがインターネットなどの1つまたは複数のネットワーク716を介して通信することができる。状況に基づく動作モジュール111は、ソフトウェア、ハードウェア、および/またはファームウェアとして実装することができる。(1つまたは複数の)プロセッサ704は、コンピュータ可読命令コードの形態を有するデータを実行して機能を提供することができる。データおよび/またはコンピュータ可読命令コードはメモリ706および/または記憶装置708に記憶することができる。メモリおよび記憶装置は、とりわけ、揮発性もしくは不揮発性メモリ、ハード・ドライブ、および/または光学記憶装置(例えばCD、DVD等)、の1つまたは複数を含むことができる。
実装によっては、メモリ706は記憶内容の保ち時間が比較的短い揮発性メモリであり、一方、記憶装置708は命令(コード)およびデータの長期間の記憶に使用される不揮発性メモリである。そのような実装例では、記憶装置708を使用して、コンピューティング・デバイスがパワーサイクルされ、コードおよび/またはデータの変更が揮発性メモリから失われる時にその変更を保持する。そのような実装例では、アプリケーションの事前起動は、上記で方法600のブロック604に関して説明したように、記憶装置708から一部またはすべてのアプリケーション・コードおよび/またはデータを取り出し、取り出したアプリケーション・コードまたはデータをメモリ706にロードすることを含むことができる。ユーザが特定のアプリケーションの実行を要求する前にそのようにすることで、アプリケーション・コードおよび/またはデータをユーザがアプリケーションの実行を要求した後に記憶装置から取り出す必要があった場合と比べて、アプリケーションはユーザによりよく反応するように見える。場合によっては、メモリ706は、記憶装置708に比べて読み出しおよび/または書き込みがかなり(例えば1桁またはそれ以上)「高速」または低待ち時間である場合もある。
また、状況に基づく動作モジュール111はオペレーティング・システム712と対話する、またはその一部とすることができることに留意されたい。実装例によっては、オペレーティング・システム712は、プロセッサ704で実行する個々のアプリケーションをスケジュールするスケジューラ機能を提供する。実装例によっては、オペレーティング・システムのスケジューラが、例えば方法600のブロック603において、スレッドおよび/またはプロセスなどのプロセッサ資源をスケジュールされたアプリケーションに割り振る。
(1つまたは複数の)クライアント機器702およびサーバ714は、外部の記憶装置718からコンピュータ可読命令の形態のデータを受け取るおよび/または生成するように構成することもできる。外部記憶装置718の例には、とりわけ、光学記憶装置(CD、DVD等)、ハード・ドライブ、およびフラッシュ記憶装置(例えばメモリ・スティックやメモリ・カード)がある。場合によっては、本明細書に記載されるモジュールを、組み立て時または少なくともユーザへの配送前にクライアント機器またはサーバにインストールすることができる。他の状況では、本明細書に記載のモジュールは、ネットワーク716を介して利用可能なダウンロード・モジュールとして、かつ/または外部記憶装置718から、配送後にユーザによってインストールすることができる。本明細書に記載のモジュールは、自立型アプリケーション、アプリケーションの部分、および/またはコンピューティング・デバイスのオペレーティング・システムの一部として顕在化することができる。
総合して、本明細書に記載のモジュールは、上記で図1〜図6に関して説明した機能を実現することができる。具体的には、状況に基づく動作モジュール111は、方法500および/または600を行うように構成することができる。事例によっては、分散環境などで、クライアント機器またはサーバが複数のコンピューティング・デバイスまたはマシンからなることが可能であることに留意されたい。そのような構成では、方法500および/または600は、複数のコンピューティング・デバイスまたはマシンに分散された処理を使用して実施することができる。
上記のように、一部の実装例においては、各種の意思決定エンジンをサーバー714で実行させる。そのような実装では、各クライアント機器がそれぞれローカルのコンテクスタ・ログ710(1)および710(2)を維持することができ、これらのログは、それぞれのクライアント機器の個々のコンテクスタについてのコンテクスト値の履歴、ならびに機器で行われた動作の履歴を含む。それらのコンテクスタ・ログをサーバー714にアップロードし、組み合わせてコンテクスタ・ログ710(3)とすることができる。
そのような実装例においては、サーバーの意思決定エンジンは、複数のユーザについてのコンテクスタ・ログに関して学習を行うことができる。これは特に、個々のユーザのコンテクスタ・データが比較的少ない事例で有用である場合がある。そのような実装では、個々の意思決定エンジンは、複数のユーザに適用できる可能性のある規則を学習することができる。一例は上記の電子メールに埋め込まれたハイパーリンクの例であり、例えば、多くの異なるユーザが、文字列「http://...」を電子メール中のどこかに含む電子メールを受信した直後にブラウザ・アプリケーションを要求する可能性が高い。より一般的には、各意思決定エンジンは、他のユーザに対して他の機器で行われたコンテクスタ・ログおよび行われた動作から情報を取り出す(mine)ように構成することができる。したがって、意思決定エンジンは、他のユーザの状況と動作の関係から学習してユーザの体験を向上させることができる。実装によっては、他のユーザの機器の意思決定エンジンから得られる値を使用して意思決定エンジンをシード(seed)、初期化、またはその他の形で変更することさえできる。ただし、本明細書で述べる処理のすべて(意思決定エンジンの訓練を含む)は代わりに個々のクライアント機器でローカルに行い、そのクライアント機器またはユーザに固有のコンテクスタ・ログだけに基づいて意思決定エンジンを訓練してもよいことに留意されたい。
本明細書で使用する用語「コンピュータ」、「クライアント機器」、「サーバ」、および「コンピューティング・デバイス」は、一定量の処理能力および/または記憶能力を有する任意種の機器を意味することができる。一般に、「モバイル機器」は、ユーザが自分で携行するのに適したフォーム・ファクタで具現化されたコンピューティング・デバイスを言う。処理能力は、コンピュータ可読命令コードの形態のデータを実行して機能を提供することが可能な1つまたは複数のプロセッサにより提供することができる。
上記のように、コンピュータ可読命令は記憶装置および/またはメモリ装置に記憶することができる。記憶装置および/またはメモリ装置は、コンピューティング・デバイスの内部にあっても、かつ/または外部にあってもよい。記憶装置および/またはメモリ装置は、とりわけ、揮発性もしくは不揮発性メモリ、ハード・ドライブ、フラッシュ記憶装置、および/または光学記憶装置(例えばCD、DVD等)の1つまたは複数を含む。本明細書で使用する用語「コンピュータ可読媒体」は、一時的および非一時的なコンピュータ可読命令を含むことができる。それに対して、用語「コンピュータ可読記憶媒体」は一時的な事例を除外する。コンピュータ可読記憶媒体は「コンピュータ可読記憶装置」を含む。コンピュータ可読記憶装置の例には、とりわけ、RAMなどの揮発性記憶媒体、ハード・ドライブ、光ディスク、フラッシュ・メモリなどの不揮発性記憶媒体がある。
コンピューティング・デバイスの例には、パーソナル・コンピュータ、携帯電話、スマートフォン、携帯情報端末などの従来のコンピューティング・デバイス、または常に進化するコンピューティング・デバイスもしくはまだ開発されていない多数の種類のコンピューティング・デバイスが含まれる。さらに、システム700の諸態様は1台のコンピューティング・デバイスで顕在化しても、複数のコンピューティング・デバイスに分散してもよい。
<結び>
本発明に関し、例示的な方法を説明する順序は制限とは解釈すべきでなく、ここに記載されるブロックまたはステップのうち任意数を任意の順序で組み合わせて記載の方法または代替の方法を実施することができる。さらに、本発明に係る方法は、コンピューティング・デバイスが方法を実装できるように、適切なハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせで実施することができる。一例においては、本発明に係る方法は、一連の命令として1つまたは複数のコンピュータ可読記憶媒体に記憶され、1つまたは複数のコンピューティング・デバイスによる実行で1つまたは複数のコンピューティング・デバイスに方法を行わせる。
本明細書で説明する技術、方法、装置、システム等は、構造的特徴および/または方法論的動作に固有の術語で説明するが、特許請求の範囲に定義される主題は必ずしも記載の具体的な特徴や動作に制限されないことを理解されたい。むしろ、具体的な特徴や動作は、特許請求される方法、装置、システム等を実施する例示的形態として開示するものである。

Claims (10)

  1. 1つまたは複数のコンテクスタから1つまたは複数のコンテクスト値を取得するステップと、
    1つまたは複数の決定規則を備える意思決定エンジンを使用して、前記1つまたは複数のコンテクスト値および前記1つまたは複数の決定規則に基づいて、コンピューティング・デバイスにおいて特定の動作を行うかどうかを決定するステップと、
    前記意思決定エンジンが前記動作を行うと決定した場合に前記コンピューティング・デバイスで前記特定の動作を行うステップと、
    前記特定の動作に関連するフィードバックを使用して、前記意思決定エンジンの前記決定規則を更新するステップと
    を含む方法。
  2. 個々のコンテクスト値が前記コンピューティング・デバイスの物理センサから取得される請求項1に記載の方法。
  3. 個々のコンテクスト値が、前記コンピューティング・デバイスのユーザによる行動、または他のコンピューティング・デバイスにおける他のユーザの行動を反映する、請求項1に記載の方法。
  4. 前記行動が、前記ユーザが前記コンピューティング・デバイスでアプリケーションを実行することを含む、請求項3に記載の方法。
  5. 前記行動が、前記ユーザが前記コンピューティング・デバイスを使用して別の人物と通信することを含む、請求項3に記載の方法。
  6. 個々のコンテクスト値が、現在の時刻または前記コンピューティング・デバイスの現在の位置を反映する、請求項1に記載の方法。
  7. 状況に基づく動作モジュールと、
    前記状況に基づく動作モジュールを実行するように構成されたコンピューティング・デバイスと
    を備えるシステムであって、前記状況に基づく動作モジュールは、
    第1の事例においては、
    コンテクスタのコンテクスト値を取得し、
    意思決定エンジンを使用して、前記コンテクスト値に基づいて前記コンピューティング・デバイスで動作を行わないことを決定し、
    前記コンピューティング・デバイスで前記動作を行わず、
    前記動作に関連するフィードバックを前記意思決定エンジンに提供し、前記意思決定エンジンが更新されて、前記コンテクスタがそのコンテクスト値を有する時に前記動作を行うことを学習し、
    第1の事例より後の第2の事例においては、
    前記第1の事例において取得されたコンテクスト値と同じ前記コンテクスタのコンテクスト値を取得し、
    前記更新された意思決定エンジンを使用して、前記同じコンテクストに基づいて前記コンピューティング・デバイスで前記動作を行うことを決定し、
    前記動作を前記コンピューティング・デバイスで行う
    ように構成されるシステム。
  8. 前記意思決定エンジンが決定木を備える請求項7に記載のシステム。
  9. 前記意思決定エンジンがベイズ分類器を備える請求項7に記載のシステム。
  10. 前記ベイズ分類器が単純ベイズ分類器である請求項9に記載のシステム。
JP2014550338A 2011-12-30 2012-12-19 状況に基づく機器動作の予測 Active JP6198227B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/340,702 2011-12-30
US13/340,702 US9189252B2 (en) 2011-12-30 2011-12-30 Context-based device action prediction
PCT/US2012/070431 WO2013101567A1 (en) 2011-12-30 2012-12-19 Context-based device action prediction

Publications (3)

Publication Number Publication Date
JP2015506617A true JP2015506617A (ja) 2015-03-02
JP2015506617A5 JP2015506617A5 (ja) 2016-01-21
JP6198227B2 JP6198227B2 (ja) 2017-09-20

Family

ID=48153754

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014550338A Active JP6198227B2 (ja) 2011-12-30 2012-12-19 状況に基づく機器動作の予測

Country Status (6)

Country Link
US (1) US9189252B2 (ja)
EP (1) EP2798530A4 (ja)
JP (1) JP6198227B2 (ja)
KR (1) KR101994505B1 (ja)
CN (1) CN103077224B (ja)
WO (1) WO2013101567A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180030105A (ko) * 2015-08-06 2018-03-21 삼성전자주식회사 컨텍스트 데이터를 기반으로 하는 어플리케이션 카드들
JP2018534670A (ja) * 2015-11-19 2018-11-22 グーグル エルエルシー バックグラウンドにおけるネイティブアプリケーションの事前インスタンス化
WO2022209209A1 (ja) * 2021-03-31 2022-10-06 ソニーグループ株式会社 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム

Families Citing this family (155)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5200204B2 (ja) 2006-03-14 2013-06-05 ディブエックス リミテッド ライアビリティー カンパニー 高信頼性システムを含む連合型デジタル権限管理機構
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
JP5681641B2 (ja) 2009-01-07 2015-03-11 ソニック アイピー, インコーポレイテッド オンラインコンテンツのためのメディアガイドの特異的、収集的および自動的な生成
US10255566B2 (en) 2011-06-03 2019-04-09 Apple Inc. Generating and processing task items that represent tasks to perform
EP2507995A4 (en) 2009-12-04 2014-07-09 Sonic Ip Inc SYSTEMS AND METHODS FOR TRANSPORTING ELEMENTARY BIT TRAIN CRYPTOGRAPHIC MATERIAL
US9323844B2 (en) 2010-06-11 2016-04-26 Doat Media Ltd. System and methods thereof for enhancing a user's search experience
US9529918B2 (en) 2010-06-11 2016-12-27 Doat Media Ltd. System and methods thereof for downloading applications via a communication network
US9552422B2 (en) 2010-06-11 2017-01-24 Doat Media Ltd. System and method for detecting a search intent
US9141702B2 (en) 2010-06-11 2015-09-22 Doat Media Ltd. Method for dynamically displaying a personalized home screen on a device
US10713312B2 (en) 2010-06-11 2020-07-14 Doat Media Ltd. System and method for context-launching of applications
US9247312B2 (en) 2011-01-05 2016-01-26 Sonic Ip, Inc. Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol
US9880604B2 (en) 2011-04-20 2018-01-30 Microsoft Technology Licensing, Llc Energy efficient location detection
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
PL398136A1 (pl) 2012-02-17 2013-08-19 Binartech Spólka Jawna Aksamit Sposób wykrywania kontekstu urzadzenia przenosnego i urzadzenie przenosne z modulem wykrywania kontekstu
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US20140006599A1 (en) * 2012-06-29 2014-01-02 Dirk Hohndel Probabilities of potential actions based on system observations
US9483308B2 (en) 2012-06-29 2016-11-01 Intel Corporation Performance of predicted actions
US8990143B2 (en) * 2012-06-29 2015-03-24 Intel Corporation Application-provided context for potential action prediction
US9684398B1 (en) 2012-08-06 2017-06-20 Google Inc. Executing a default action on a touchscreen device
US9443272B2 (en) * 2012-09-13 2016-09-13 Intel Corporation Methods and apparatus for providing improved access to applications
US9407751B2 (en) 2012-09-13 2016-08-02 Intel Corporation Methods and apparatus for improving user experience
US9310881B2 (en) 2012-09-13 2016-04-12 Intel Corporation Methods and apparatus for facilitating multi-user computer interaction
US9246982B2 (en) * 2012-09-14 2016-01-26 Microsoft Technology Licensing, Llc Reducing network usage of computing device
EP2904822A1 (en) * 2012-10-04 2015-08-12 Huawei Technologies Co., Ltd. User behavior modeling for intelligent mobile companions
JP2015535639A (ja) * 2012-12-03 2015-12-14 トムソン ライセンシングThomson Licensing 動的ユーザインターフェース
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
KR20150104615A (ko) 2013-02-07 2015-09-15 애플 인크. 디지털 어시스턴트를 위한 음성 트리거
US10649619B2 (en) * 2013-02-21 2020-05-12 Oath Inc. System and method of using context in selecting a response to user device interaction
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US9344517B2 (en) * 2013-03-28 2016-05-17 Sonic Ip, Inc. Downloading and adaptive streaming of multimedia content to a device with cache assist
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US20140373032A1 (en) * 2013-06-12 2014-12-18 Microsoft Corporation Prefetching content for service-connected applications
US9508040B2 (en) * 2013-06-12 2016-11-29 Microsoft Technology Licensing, Llc Predictive pre-launch for applications
US9998866B2 (en) 2013-06-14 2018-06-12 Microsoft Technology Licensing, Llc Detecting geo-fence events using varying confidence levels
US9820231B2 (en) 2013-06-14 2017-11-14 Microsoft Technology Licensing, Llc Coalescing geo-fence events
US9967305B2 (en) 2013-06-28 2018-05-08 Divx, Llc Systems, methods, and media for streaming media content
DE112014003653B4 (de) 2013-08-06 2024-04-18 Apple Inc. Automatisch aktivierende intelligente Antworten auf der Grundlage von Aktivitäten von entfernt angeordneten Vorrichtungen
US20150095771A1 (en) * 2013-09-30 2015-04-02 Lenovo (Singapore) Pte. Ltd. Journal launch based on context
US9648431B1 (en) * 2013-10-31 2017-05-09 Allscripts Software, Llc Adaptive auditory alerts
US20150128058A1 (en) * 2013-11-05 2015-05-07 Avaya Inc. System and method for predictive actions based on user communication patterns
US9218497B2 (en) * 2014-02-24 2015-12-22 Microsoft Technology Licensing, Llc Incentive-based app execution
US10338938B2 (en) * 2014-03-11 2019-07-02 Lenovo (Singapore) Pte. Ltd. Presenting elements based on configuration of device
US9405377B2 (en) 2014-03-15 2016-08-02 Microsoft Technology Licensing, Llc Trainable sensor-based gesture recognition
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
US20150312375A1 (en) * 2014-04-25 2015-10-29 Microsoft Corporation Pre-fetching grid blocks by user intent
CN103995716B (zh) * 2014-05-06 2018-02-13 华为技术有限公司 一种终端的应用启动方法及终端
CN103970861B (zh) 2014-05-07 2017-11-17 华为技术有限公司 信息呈现方法和设备
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
EP3149728B1 (en) 2014-05-30 2019-01-16 Apple Inc. Multi-command single utterance input method
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US11095743B2 (en) * 2014-07-16 2021-08-17 Tensera Networks Ltd. Optimized content-delivery network (CDN) for the wireless last mile
US11489941B2 (en) 2014-07-16 2022-11-01 Tensera Networks Ltd. Pre-loading of user applications including skipping of selected launch actions
US11483415B2 (en) 2014-07-16 2022-10-25 Tensera Networks Ltd. Background pre-rendering of user applications
CN104281472B (zh) * 2014-09-18 2017-12-26 青岛海信移动通信技术股份有限公司 一种资源预加载方法和装置
US10320913B2 (en) * 2014-12-05 2019-06-11 Microsoft Technology Licensing, Llc Service content tailored to out of routine events
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9760399B1 (en) 2015-03-17 2017-09-12 Amazon Technologies, Inc. Dynamic process management
CN106462320B (zh) * 2015-04-13 2020-04-28 华为技术有限公司 启动任务管理界面的方法、装置及设备
US9652395B2 (en) * 2015-05-08 2017-05-16 Lenovo (Singapore) Pte. Ltd. Configuration of standby portion of memory based on context
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US10097973B2 (en) 2015-05-27 2018-10-09 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US20160349961A1 (en) * 2015-06-01 2016-12-01 International Business Machines Corporation Dynamic tidy correlated icon depending on the favorite
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
CN105245712B (zh) * 2015-10-15 2019-02-19 Oppo广东移动通信有限公司 一种移动终端的来电处理方法、装置以及移动终端
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US10769189B2 (en) 2015-11-13 2020-09-08 Microsoft Technology Licensing, Llc Computer speech recognition and semantic understanding from activity patterns
US11429883B2 (en) 2015-11-13 2022-08-30 Microsoft Technology Licensing, Llc Enhanced computer experience from activity prediction
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
GB201602308D0 (en) 2016-02-09 2016-03-23 Touchtype Ltd System and method for generating predictions
CN107193577B (zh) * 2016-03-15 2021-08-03 斑马智行网络(香港)有限公司 一种应用启动方法、装置和智能终端
US10747554B2 (en) * 2016-03-24 2020-08-18 Google Llc Contextual task shortcuts
US10712906B2 (en) * 2016-05-25 2020-07-14 Lenovo (Singapore) Pte. Ltd. Systems and methods for presentation of elements on a display based on context
CN105939416A (zh) * 2016-05-30 2016-09-14 努比亚技术有限公司 移动终端及其应用预启动方法
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
CN108377290B (zh) * 2016-06-16 2021-06-01 Oppo广东移动通信有限公司 一种音频流处理方法及移动终端和介质产品
USD823862S1 (en) 2016-07-13 2018-07-24 Google Llc Display screen with graphical user interface
CN108228270B (zh) * 2016-12-19 2021-04-16 腾讯科技(深圳)有限公司 启动资源加载方法及装置
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
CN110312995B (zh) * 2017-04-19 2022-12-16 Oppo广东移动通信有限公司 应用程序加速启动方法、装置及终端
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
CN107451694B (zh) * 2017-08-03 2020-10-02 重庆大学 一种用于移动系统中上下文感知与自适应的应用预测方法
CN107728772B (zh) * 2017-09-30 2020-05-12 Oppo广东移动通信有限公司 应用程序的处理方法、装置、存储介质及电子设备
CN107704876B (zh) * 2017-09-30 2020-09-08 Oppo广东移动通信有限公司 应用控制方法、装置、存储介质以及电子设备
CN107766892B (zh) * 2017-10-31 2020-04-10 Oppo广东移动通信有限公司 应用程序管控方法、装置、存储介质及终端设备
US11113604B2 (en) * 2017-11-06 2021-09-07 Google Llc Training and/or utilizing an interaction prediction model to determine when to interact, and/or prompt for interaction, with an application on the basis of an electronic communication
CN107783801B (zh) * 2017-11-06 2021-03-12 Oppo广东移动通信有限公司 应用程序预测模型建立、预加载方法、装置、介质及终端
CN109814937A (zh) * 2017-11-20 2019-05-28 广东欧珀移动通信有限公司 应用程序预测模型建立、预加载方法、装置、介质及终端
CN109814938A (zh) * 2017-11-20 2019-05-28 广东欧珀移动通信有限公司 应用程序预测模型建立、预加载方法、装置、介质及终端
CN109947496B (zh) * 2017-12-20 2020-09-15 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及移动终端
CN109947495A (zh) 2017-12-20 2019-06-28 广东欧珀移动通信有限公司 应用程序预加载方法、装置、存储介质及移动终端
CN109947498B (zh) * 2017-12-20 2021-06-29 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及移动终端
CN109947497B (zh) * 2017-12-20 2021-06-08 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及移动终端
CN108345478B (zh) * 2018-02-28 2020-04-21 Oppo广东移动通信有限公司 应用处理方法、装置、存储介质及电子设备
WO2019171237A1 (en) * 2018-03-05 2019-09-12 Tensera Networks Ltd. Application preloading in the presence of user actions
US20220179668A1 (en) * 2018-03-05 2022-06-09 Tensera Networks Ltd. Robust Application Preloading with Accurate User Experience
US11922187B2 (en) 2018-03-05 2024-03-05 Tensera Networks Ltd. Robust application preloading with accurate user experience
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
CN108595227A (zh) 2018-05-10 2018-09-28 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及移动终端
CN108595228B (zh) 2018-05-10 2021-03-12 Oppo广东移动通信有限公司 应用程序预测模型建立方法、装置、存储介质及移动终端
CN108710513B (zh) * 2018-05-15 2020-07-21 Oppo广东移动通信有限公司 应用程序启动方法、装置、存储介质及终端
CN108829456A (zh) * 2018-05-29 2018-11-16 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及终端
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
CN108804157A (zh) 2018-06-05 2018-11-13 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及终端
CN112654967A (zh) 2018-08-27 2021-04-13 三星电子株式会社 用于管理电子装置的方法和系统
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US10514888B1 (en) * 2018-10-05 2019-12-24 Oracle International Corporation User-adaptive volume selection
US11531516B2 (en) 2019-01-18 2022-12-20 Samsung Electronics Co., Ltd. Intelligent volume control
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
DK201970510A1 (en) 2019-05-31 2021-02-11 Apple Inc Voice identification in digital assistant systems
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11227599B2 (en) 2019-06-01 2022-01-18 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
WO2021019415A1 (en) 2019-07-30 2021-02-04 Tensera Networks Ltd. Pre-rendering of application user-interfaces in user devices
US10665204B1 (en) * 2019-10-08 2020-05-26 Capital One Services, Llc Automatically adjusting screen brightness based on screen content
US20210240801A1 (en) * 2020-02-03 2021-08-05 Arris Enterprises Llc Digital rights management system resource manager
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11038934B1 (en) 2020-05-11 2021-06-15 Apple Inc. Digital assistant hardware abstraction
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
WO2022118131A1 (en) 2020-12-03 2022-06-09 Tensera Networks Preloading of applications having an existing task
KR20220118047A (ko) * 2021-02-18 2022-08-25 삼성전자주식회사 어플리케이션의 모델 파일을 초기화하는 프로세서 및 이를 포함하는 전자 장치
CN113485709B (zh) * 2021-06-15 2022-10-14 荣耀终端有限公司 应用优化方法、装置以及电子设备
US11688113B1 (en) * 2021-07-06 2023-06-27 Wells Fargo Bank, N.A. Systems and methods for generating a single-index model tree
US20230289652A1 (en) * 2022-03-14 2023-09-14 Matthias THÖMEL Self-learning audio monitoring system

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004152276A (ja) * 2002-10-09 2004-05-27 Matsushita Electric Ind Co Ltd 情報端末装置、操作支援方法及び操作支援プログラム
JP2005043355A (ja) * 2003-07-22 2005-02-17 Microsoft Corp 環境信号からデバイスの概算位置を判定するための方法
JP3669702B2 (ja) * 2003-02-25 2005-07-13 松下電器産業株式会社 アプリケーションプログラムの予測方法及び移動体端末
JP2007087374A (ja) * 2005-08-23 2007-04-05 Ricoh Co Ltd 情報処理装置
JP2009171160A (ja) * 2008-01-15 2009-07-30 Sharp Corp 利用者の行動を学習し、事前に知らせる携帯端末装置
JP2010518416A (ja) * 2007-02-07 2010-05-27 シャープ株式会社 コンピュータ実現の学習方法および学習装置
JP2010286924A (ja) * 2009-06-09 2010-12-24 Canon It Solutions Inc 情報処理装置、情報処理方法及びプログラム
JP2011076186A (ja) * 2009-09-29 2011-04-14 Kddi Corp 操作支援装置、操作支援方法およびプログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6085226A (en) 1998-01-15 2000-07-04 Microsoft Corporation Method and apparatus for utility-directed prefetching of web pages into local cache using continual computation and user models
US6067565A (en) 1998-01-15 2000-05-23 Microsoft Corporation Technique for prefetching a web page of potential future interest in lieu of continuing a current information download
US6182133B1 (en) 1998-02-06 2001-01-30 Microsoft Corporation Method and apparatus for display of information prefetching and cache status having variable visual indication based on a period of time since prefetching
US7679534B2 (en) * 1998-12-04 2010-03-16 Tegic Communications, Inc. Contextual prediction of user words and user actions
US6513046B1 (en) 1999-12-15 2003-01-28 Tangis Corporation Storing and recalling information to augment human memories
US7107107B2 (en) 2003-01-31 2006-09-12 Matsushita Electric Industrial Co., Ltd. Predictive action decision device and action decision method
US7076616B2 (en) 2003-03-24 2006-07-11 Sony Corporation Application pre-launch to reduce user interface latency
US20060277271A1 (en) * 2005-06-07 2006-12-07 Yahoo! Inc. Prefetching content based on a mobile user profile
US8472986B2 (en) 2005-09-21 2013-06-25 Buckyball Mobile, Inc. Method and system of optimizing context-data acquisition by a mobile device
US8626136B2 (en) * 2006-06-29 2014-01-07 Microsoft Corporation Architecture for user- and context-specific prefetching and caching of information on portable devices
US8112755B2 (en) 2006-06-30 2012-02-07 Microsoft Corporation Reducing latencies in computing systems using probabilistic and/or decision-theoretic reasoning under scarce memory resources
US8032472B2 (en) * 2007-04-04 2011-10-04 Tuen Solutions Limited Liability Company Intelligent agent for distributed services for mobile devices
US9009292B2 (en) * 2007-07-30 2015-04-14 Sybase, Inc. Context-based data pre-fetching and notification for mobile applications
US8587402B2 (en) * 2008-03-07 2013-11-19 Palm, Inc. Context aware data processing in mobile computing device
US9014640B2 (en) 2008-10-31 2015-04-21 Qualcomm Incorporated Wake-up trigger for implementation of target actions
US8626141B2 (en) 2009-07-30 2014-01-07 Qualcomm Incorporated Method and apparatus for customizing a user interface menu
US8359629B2 (en) * 2009-09-25 2013-01-22 Intel Corporation Method and device for controlling use of context information of a user

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004152276A (ja) * 2002-10-09 2004-05-27 Matsushita Electric Ind Co Ltd 情報端末装置、操作支援方法及び操作支援プログラム
JP3669702B2 (ja) * 2003-02-25 2005-07-13 松下電器産業株式会社 アプリケーションプログラムの予測方法及び移動体端末
JP2005043355A (ja) * 2003-07-22 2005-02-17 Microsoft Corp 環境信号からデバイスの概算位置を判定するための方法
JP2007087374A (ja) * 2005-08-23 2007-04-05 Ricoh Co Ltd 情報処理装置
JP2010518416A (ja) * 2007-02-07 2010-05-27 シャープ株式会社 コンピュータ実現の学習方法および学習装置
JP2009171160A (ja) * 2008-01-15 2009-07-30 Sharp Corp 利用者の行動を学習し、事前に知らせる携帯端末装置
JP2010286924A (ja) * 2009-06-09 2010-12-24 Canon It Solutions Inc 情報処理装置、情報処理方法及びプログラム
JP2011076186A (ja) * 2009-09-29 2011-04-14 Kddi Corp 操作支援装置、操作支援方法およびプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180030105A (ko) * 2015-08-06 2018-03-21 삼성전자주식회사 컨텍스트 데이터를 기반으로 하는 어플리케이션 카드들
KR102558153B1 (ko) 2015-08-06 2023-07-24 삼성전자주식회사 컨텍스트 데이터를 기반으로 하는 어플리케이션 카드들
JP2018534670A (ja) * 2015-11-19 2018-11-22 グーグル エルエルシー バックグラウンドにおけるネイティブアプリケーションの事前インスタンス化
US10146842B2 (en) 2015-11-19 2018-12-04 Google Llc Pre-instantiating native applications in background
WO2022209209A1 (ja) * 2021-03-31 2022-10-06 ソニーグループ株式会社 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム

Also Published As

Publication number Publication date
EP2798530A4 (en) 2015-06-03
CN103077224A (zh) 2013-05-01
US20130173513A1 (en) 2013-07-04
CN103077224B (zh) 2016-12-28
US9189252B2 (en) 2015-11-17
KR20140119006A (ko) 2014-10-08
EP2798530A1 (en) 2014-11-05
KR101994505B1 (ko) 2019-06-28
JP6198227B2 (ja) 2017-09-20
WO2013101567A1 (en) 2013-07-04

Similar Documents

Publication Publication Date Title
JP6198227B2 (ja) 状況に基づく機器動作の予測
CN107209624B (zh) 设备个性化的设备、方法、装置和存储器设备
US10228931B2 (en) Peripheral device support with a digital assistant for operating system upgrades
US10871872B2 (en) Intelligent productivity monitoring with a digital assistant
KR102509245B1 (ko) 써드 파티 애플리케이션으로의 디지털 어시스턴트 확장성
CN107209781B (zh) 使用自然语言的上下文搜索
KR102346043B1 (ko) 디지털 어시스턴트 알람 시스템
US20180121432A1 (en) Digital assistant integration with music services
US10313427B2 (en) Contextual application management
US11630851B2 (en) Systems and methods for providing predictions to applications executing on a computing device
US9509799B1 (en) Providing status updates via a personal assistant
WO2018128794A1 (en) Systems and methods for artificial intelligence interface generation, evolution, and/or adjustment
CN116783576A (zh) 应用预加载的调度

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151124

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170220

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170718

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20170815

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170816

R150 Certificate of patent or registration of utility model

Ref document number: 6198227

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250