(57)【要約】  コンピューティング・デバイスで実行されているアプリケーションとのユーザによる対話を示すユーザ対話データを取得し、前記ユーザ対話データに基づいて、前記ユーザが、前記コンピューティング・デバイス上で実行されている前記アプリケーションで開始されたタスク前記ユーザの完了に失敗したという可能性を決定し、前記可能性に基づいて、履歴リマインダ消費に少なくとも部分的に基づいて選択された方式で前記ユーザにタスク完了リマインダを選択的に提供するための方法、装置、システム、およびコンピュータ可読媒体を提供する。
2018511118.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数のプロセッサによってコンピューティング・デバイスから、前記コンピューティング・デバイス上で実行されているアプリケーションとのユーザによる対話を示すユーザ対話データを取得し、前記１つまたは複数のプロセッサにより前記ユーザ対話データに基づいて、前記ユーザが、前記コンピューティング・デバイス上で実行されている前記アプリケーションで前記ユーザが開始したタスクの完了に失敗したという可能性を決定するステップと、
前記１つまたは複数のプロセッサにより前記可能性に少なくとも部分的に基づいて、前記コンピューティング・デバイス上の出力としてタスク完了リマインダを前記ユーザに選択的に提供させるステップと、
を含む、コンピュータ実行型の方法。
【請求項２】
前記１つまたは複数のプロセッサにより、前記タスク完了リマインダが履歴リマインダ消費に少なくとも部分的に基づいて前記ユーザに提示される方式を選択するステップをさらに含む、請求項１に記載のコンピュータ実行型の方法。
【請求項３】
前記可能性を決定するステップは、前記アプリケーションに関連付けられた状態機械が特定の状態に到達したと判定するステップを含む、請求項１に記載のコンピュータ実行型の方法。
【請求項４】
前記ユーザ対話データは、前記アプリケーションの１つまたは複数のスナップショットを含む、請求項１に記載のコンピュータ実行型の方法。
【請求項５】
前記可能性を決定するステップは、前記アプリケーションに関連付けられた履歴アプリケーション対話データに基づいて前記可能性を決定するステップを含む、請求項１に記載のコンピュータ実行型の方法。
【請求項６】
前記可能性を決定するステップは機械学習分類器を用いて実施される、請求項５に記載のコンピュータ実行型の方法。
【請求項７】
前記分類器は、不完全なタスクに関連付けられているとして知られている前記アプリケーションとのユーザ対話の複数の事例でトレーニングされる、請求項６に記載のコンピュータ実行型の方法。
【請求項８】
前記１つまたは複数のプロセッサにより、前記可能性の正確性を示す前記ユーザからのフィードバックに基づいて前記機械学習分類器を修正するステップをさらに含む、請求項７に記載のコンピュータ実行型の方法。
【請求項９】
前記可能性を決定するステップは、自然言語処理を前記ユーザによる前記アプリケーションへのテキスト入力に実施して、前記アプリケーションを用いて前記ユーザにより作成された１つまたは複数のセンテンス部分を識別するステップを含む、請求項１に記載のコンピュータ実行型の方法。
【請求項１０】
前記１つまたは複数のプロセッサにより、前記タスク完了リマインダが機械学習分類器を用いて前記ユーザに表示される前記方式を選択するステップをさらに含む、請求項２に記載のコンピュータ実行型の方法。
【請求項１１】
前記機械学習分類器はタスク完了リマインダ消費の複数の事例でトレーニングされる、請求項１０に記載のコンピュータ実行型の方法。
【請求項１２】
前記１つまたは複数のプロセッサにより、前記タスク完了リマインダの前記ユーザによる消費を示すフィードバックに基づいて前記機械学習分類器を修正するステップをさらに含む、請求項１０に記載のコンピュータ実行型の方法。
【請求項１３】
前記アプリケーションは第１のアプリケーションであり、取得し決定する前記動作は前記第１のアプリケーションと異なる第２のアプリケーションにより実施される、請求項１に記載のコンピュータ実行型の方法。
【請求項１４】
メモリと前記メモリに格納された命令を実行するように動作可能な１つまたは複数のプロセッサとを備えたシステムであって、
コンピューティング・デバイスとのユーザ対話に基づいて、前記コンピューティング・デバイス上で実行されているアプリケーションに関連付けられたタスクを実施する間に、ユーザが割り込まれていることを示唆するイベントの発生を検出し、
前記ユーザが前記アプリケーションと関連付けられたタスクを完了するのに失敗したと判定し、
タスク完了リマインダを履歴リマインダ消費に少なくとも部分的に基づいて選択された方式で前記ユーザに提供する
ための命令を含む、システム。
【請求項１５】
前記アプリケーションとの前記ユーザによる対話を示すユーザ対話データを取得し、
前記ユーザ対話データをリモート・コンピューティング・システムに提供する
ための命令をさらに含み、
前記判定するステップは、前記リモート・コンピューティング・システムから、前記ユーザが前記アプリケーションに関連付けられた前記タスクを完了するのに失敗したという指示を受信するステップを含む、
請求項１４に記載のシステム。
【請求項１６】
前記命令はさらに、
前記アプリケーションとの前記ユーザによる対話を示すユーザ対話データを取得し、
前記ユーザ対話データに基づいて、前記ユーザが前記アプリケーションに関連付けられた前記タスクを完了するのに失敗したという可能性を決定する
ための命令を含む、請求項１４に記載のシステム。
【請求項１７】
前記発生の検出は機械学習分類器を用いて実施される、請求項１４に記載のシステム。
【請求項１８】
前記機械学習分類器は既知のユーザ割込みの複数の事例でトレーニングされる、請求項１７に記載のシステム。
【請求項１９】
前記イベントは、前記コンピューティング・デバイス上のアプリケーションの間の遷移、前記アプリケーションとのユーザ対話なしの少なくとも特定の時間間隔の経過、および前記コンピューティング・デバイスのスタンドバイ状態への遷移のうち１つまたは複数を含む、請求項１４に記載のシステム。
【請求項２０】
前記アプリケーションは第１のアプリケーションであり、前記検出および判定は前記第１のアプリケーションと異なる第２のアプリケーションにより実施される、請求項１４に記載のシステム。
【請求項２１】
コンピューティング・デバイスで実行されているアプリケーションとのユーザによる対話を示すユーザ対話データを取得するためのユーザ対話データ処理エンジンと、
前記ユーザ対話データに基づいて、前記ユーザが、前記コンピューティング・デバイス上で実行されている前記アプリケーションで前記ユーザが開始したタスクの完了に失敗したという可能性を決定するための完了タスク予測エンジンと、
選択的に、前記可能性に基づいて、タスク完了リマインダを履歴リマインダ消費に少なくとも部分的に基づいて選択された方式で前記ユーザに提供させるタスク・リマインダ・エンジンと、
を備える、システム。
【請求項２２】
前記完了タスク予測エンジンは、不完全なタスクに関連付けられているとして知られている前記アプリケーションとのユーザ対話の複数の事例でトレーニングされた機械学習分類器を含む、請求項２１に記載のシステム。
【請求項２３】
前記タスク・リマインダ・エンジンは、タスク完了リマインダ消費の複数の事例でトレーニングされた機械学習分類器を含む、請求項２１に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
スマートフォン、タブレットコンピュータ、およびウェアラブルコンピューティング・デバイスのようなモバイルコンピューティング・デバイスは多種多様なタスクを実施するために使用されうる。これらのタスクは、電子メールおよびテキストメッセージの作成、音声通話およびビデオ通話の発信、タスクおよびカレンダ・エントリの作成、ソーシャル・ネットワークステータスの更新、ゲームのプレイ等を含んでもよいがこれらに限られない。しかし、ユーザが、作業途中で割り込まれるかもしれず、幾つかの事例では何か別のことを行うのに脱線しているかもしれず、結果として、当該ユーザが後に当該タスクを完了するのを忘れることとなりうる。例えば、ユーザがカレンダ・エントリを生成する間に（例えば、通話により）割り込まれているかもしれず、その結果例えば、当該エントリはイベントタイトルおよび日付を有するが、おそらく位置や開始時間のような本質的なデータ点を欠いている。別の例として、ソーシャル・ネットワーキング・アプリケーションを操作して自分のステータスを更新している間に割り込まれるユーザが、後に戻ってきて自分のステータス更新を完了／送信するのを忘れるかもしれない。モバイルコンピューティング・デバイスは特に一般に、一般に複数のアプリケーションを一度に表示する大画面を有するコンピューティング・デバイスとは反対に、文脈の間で（例えば、或るアプリケーションから別のアプリケーションへ）かなり劇的にスイッチングを行う比較的小さなディスプレイを含む。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
したがって、（例えば、着信を取るために）モバイルコンピューティング・デバイス上でアプリケーションを切り替えることが、結果として、ユーザがタスクを完了するのを忘れさせる可能性が高い。
【課題を解決するための手段】
【０００３】
本開示は一般に、コンピューティング・デバイスで実行されているアプリケーションとのユーザによる対話を示すユーザ対話データを分析して、当該アプリケーションを用いてタスクを実施する間にユーザが割り込まれていることを示唆しうる１つまたは複数のイベントを識別するための技術的特徴に関する。ユーザがタスクを完了するのに失敗したという可能性を、例えば、ユーザ対話データおよび／または履歴ユーザ対話データに基づいて決定してもよい。タスク完了リマインダを、当該可能性に基づいて、例えば、履歴消費データに基づいて選択された方式で、ユーザに選択的に出力してもよい。
【０００４】
ユーザの割り込まれているコンピュータ関連のタスクを識別し、ユーザにこれらのタスクの完了を選択的にリマインドすることは、様々な技術的利点をもたらしうる。タスク完了リマインダ（または「トゥドゥ」リスト）を生成し維持するための大量のユーザオーバヘッドを要する既存のシステムと対照的に、本明細書で説明した技術を採用するシステムは、不完全なタスクをどのように自動的に識別し、どのようにタスク完了リマインダをユーザに提供するかを長時間「学習」して、ユーザオーバヘッドを減らすことができる。さらに、本明細書で説明した技術はアプリケーション境界にまたがって動作でき、そうでない場合タスク完了リマインダをアプリケーション毎に管理することを要求しうる計算リソース（例えば、メモリ、プロセッササイクル、バッテリ電力等）を最小化する。さらに、ユーザが当該タスクを最初から再開するのではなくリマインダに応答して既に開始したが不完全なタスクを完了するとき、メモリおよびコンピューティングサイクルのような計算リソースを節約することができる。なぜならば、例えば、ユーザは、同一のタスクを完了するために複数のドキュメント（例えば、電子メール、テキスト）を生成するのを回避できるからである。さらに、ユーザに不完全なタスクを完了するのをリマインドすることは、ユーザが同一のタスクを複数回を不必要に実施するという可能性を減少させ、計算リソースの利用を減らしうる。また、特定のアプリケーションが完全にシャットダウンされ（当該アプリケーションに割り当てられたメモリが解放され）る前に当該アプリケーションで実施されたタスクを完了するようにユーザがリマインドされる場合、当該アプリケーションを、それが依然として揮発性メモリにロードされている（例えば、バックグラウンドで動作している）間に再起動することは、当該アプリケーションを完全に不揮発性記憶からリロードするよりも少ないリソースを使用することができる。
【０００５】
幾つかの実装では、コンピューティング・システムにより、コンピューティング・デバイスで実行されているアプリケーションとのユーザによる対話を示すユーザ対話データを取得するステップと、当該コンピューティング・システムにより、ユーザ対話データに基づいて、ユーザが、当該コンピューティング・デバイス上で実行されているアプリケーションでユーザが開始したタスクの完了に失敗したという可能性を決定するステップと、当該コンピューティング・システムにより、当該可能性に少なくとも部分的に基づいて、ユーザにタスク完了リマインダを選択的に提供させるステップとを含む、コンピュータ実行型の方法を提供してもよい。
【０００６】
当該方法および本明細書で開示した技術の他の実装はそれぞれ、場合によっては以下の特徴の１つまたは複数を含んでもよい。
【０００７】
様々な実装では、当該方法はさらに、当該タスク完了リマインダが履歴リマインダ消費に少なくとも部分的に基づいてユーザに提示される方式を選択するステップを含んでもよい。様々な実装では、当該可能性を決定するステップが、当該アプリケーションに関連付けられた状態機械が特定の状態に到達したと判定するステップを含んでもよい。様々な実装では、ユーザ対話データは、当該アプリケーションの１つまたは複数のスナップショットを含んでもよい。様々な実装では、当該可能性を決定するステップは当該アプリケーションに関連付けられた履歴アプリケーション対話データに基づいて当該可能性を決定するステップを含んでもよい。様々な実装では、当該可能性を決定するステップを、機械学習分類器を用いて実施してもよい。様々な実装では、当該分類器は、不完全なタスクに関連付けられているとして知られている当該アプリケーションとのユーザ対話の複数の事例でトレーニングしてもよい。
【０００８】
様々な実装では、当該方法はさらに、当該可能性の正確性を示すユーザからのフィードバックに基づいて当該機械学習分類器を修正するステップを含んでもよい。様々な実装では、当該可能性を決定するステップは自然言語処理をユーザによる当該アプリケーションへのテキスト入力に実施して、当該アプリケーションを用いてユーザにより作成された１つまたは複数のセンテンス部分を識別するステップを含んでもよい。様々な実装では、当該方法は、当該タスク完了リマインダが機械学習分類器を用いてユーザに表示される方式を選択するステップを含んでもよい。様々な実装では、当該機械学習分類器は、タスク完了リマインダ消費の複数の事例でトレーニングされてもよい。様々な実装では、当該方法はさらに、当該タスク完了リマインダのユーザによる消費を示すフィードバックに基づいて当該機械学習分類器を修正するステップを含んでもよい。
【０００９】
様々な実装では、当該アプリケーションは第１のアプリケーションであってもよく、取得し決定する当該動作を、当該第１のアプリケーションと異なる第２のアプリケーションにより実施してもよい。
【００１０】
他の実装は、上述の方法のうち１つまたは複数のような方法を実施するためのプロセッサにより実行可能な命令を格納した非一時的コンピュータ可読記憶媒体を含んでもよい。さらに別の実装は、メモリと、上述の方法のうち１つまたは複数のような方法を、単体でまたは集合的に実施する１つまたは複数のモジュールまたはエンジンを実装するための、当該メモリに格納された命令を実行するように動作可能な１つまたは複数のプロセッサとを備えたシステムを含んでもよい。
【００１１】
本明細書でさらに詳細に説明する以上の概念および追加の概念の全ての組合せは本明細書で開示した主題の一部として考慮されることは理解されるべきである。例えば、本開示の最後に現れるクレーム主題の全ての組合せは本明細書で開示した当該主題の一部として考慮される。
【図面の簡単な説明】
【００１２】
【図１】様々な実装に従う、完全なおよび／または不完全なタスクを識別でき、タスク完了リマインダを生成しユーザに提供しうる、概略的に例示的な環境を示す図である。
【図２】様々な実装に従う、どのようにユーザ対話データを分析してタスク完了リマインダを生成し送信するかどうかを判定しうるかの１例を示す図である。
【図３】様々な実装に従う、タスクが不完全のままにされていると判定するために分析しうるアプリケーションインタフェースの例示的なスナップショットを示す図である。
【図４】様々な実装に従う、不完全なタスクの可能性を決定しそのリマインダを選択的に提供する例示的な方法を概略的に示す図である。
【図５】コンピュータシステムの例示的なアーキテクチャを概略的に示す図である。
【発明を実施するための形態】
【００１３】
図１は、はクライアント・デバイス１０２および知識システム１０４を含む例示的な環境を示す。図１を示すような環境において、クライアント・デバイス１０２で実行されている１つまたは複数のアプリケーションとのユーザ対話を分析して、当該アプリケーションを用いてタスクを実施する間にユーザが割り込まれていた可能性、ユーザが当該タスクを完了するのに失敗した可能性、および／または当該不完全なタスクを完了するためのリマインダをユーザに提供する方式を決定してもよい。
【００１４】
クライアント・デバイス１０２は、ローカル・エリア・ネットワーク（ＬＡＮ）のようなネットワーク（図示せず）またはインターネットのような広域ネットワーク（ＷＡＮ）を介して知識システム１０４に通信可能に接続されたコンピュータであってもよい。クライアント・デバイス１０２は、例えば、デスクトップコンピューティング・デバイス、ラップトップコンピューティング・デバイス、タブレットコンピューティング・デバイス、モバイル電話コンピューティング・デバイス、ユーザの車両のコンピューティング・デバイス（例えば、車内通信システム、車内娯楽システム、車内ナビゲーションシステム）、またはコンピューティング・デバイス（例えば、コンピューティング・デバイスを有するユーザの時計、コンピューティング・デバイスを有するユーザの眼鏡）を含むユーザのウェアラブル装置であってもよい。追加のおよび／または代替的なクライアント・デバイスを提供してもよい。クライアント・デバイス１０２は、様々なタスクの性能を促進するための１つまたは複数のアプリケーション（または「アプリ」）を含んでもよい。例えば、クライアント・デバイス１０２は、カレンダアプリケーション１０６、電子メールアプリケーション１０８、テキストメッセージングアプリケーション１１０、電話アプリケーション１１２等を実行してもよい。
【００１５】
クライアント・デバイス１０２および知識システム１０４はそれぞれ、データおよびソフトウェアアプリケーションを記憶するためのメモリ、データにアクセスしアプリケーションを実行するための１つまたは複数のプロセッサ、およびネットワーク上の通信を促進するコンポーネントを備えてもよい。幾つかの実装では、クライアント・デバイス１０２および／または知識システム１０４により実施される動作を複数のコンピュータシステムにわたって分散させてもよい。知識システム１０４を、例えば、ネットワーク（図示せず）を介して互いに通信可能に接続された１つまたは複数の位置において１つまたは複数のコンピュータで実行されるコンピュータ・プログラムとして実装してもよい。
【００１６】
様々な実装では、クライアント・デバイス１０２は、不完全な、おそらく割り込まれた、クライアント・デバイス１０２で実行されている１つまたは複数のアプリケーション（例えば、１０６−１１２）を用いてユーザが開始したタスクの識別を容易にするように構成された１つまたは複数のアプリケーションを実行してもよい。例えば、図１において、クライアント・デバイス１０２は割込み識別エンジン１１４およびユーザ活動モニタリングエンジン１１６を動作させる。様々な実装では、これらのアプリケーションは、アプリケーション１０６−１１２と異なってもよく、かつ／または、アプリケーション１０６−１１２と別々に動作してもよい。他の実装では、エンジン１１４および１１６のうち１つまたは複数を省略してもよく、単一のエンジンに結合してもよく、かつ／または知識システム１０４のような別の場所で動作してもよい。
【００１７】
様々な実装では、割込み識別エンジン１１４は、クライアント・デバイス１０２とのユーザ対話に基づいて、クライアント・デバイス１０２で実行されている１つまたは複数のアプリケーション（例えば、１０６−１１２）に関連付けられたタスクを実施する間にユーザが割り込まれていると示唆するイベントの発生を識別するように構成されてもよい。割込み識別エンジン１１４は、履歴データおよび／またはユーザ嗜好のような様々なデータに基づいてユーザ割込みイベントを識別してもよい。例えば、ユーザは一般に（または或るユーザが特に）第１のアプリケーション（例えば、電子メールアプリケーション１０８）から第２のアプリケーション（例えば、電話アプリケーション１１２）に遷移した直後に第１のアプリケーションを再訪問する傾向がある場合に、それは、当該第１のアプリケーションを操作しているユーザがしばしば当該第２のアプリケーションにより割り込まれていると示唆してもよい。幾つかの実装では、割込み識別エンジン１１４は、既知のユーザ割込みの事例でトレーニングされた１つまたは複数の機械学習分類器を使用して、タスクを実施している間にユーザが割り込まれていることを示唆するイベントの発生を識別してもよい。
【００１８】
様々なタイプのイベントは、タスクを実施している間にユーザが割り込まれていることを示唆しうる。上で示唆したように、１つのタイプのイベントは、クライアント・デバイス１０２上のアプリケーション間の遷移である。例えば、テキストを作成するためにテキストメッセージングアプリケーション１１０を操作しているユーザが通話を受信するかもしれない。ユーザは、テキストメッセージングアプリケーション１１０から電話アプリケーション１１２に切り替えて、当該テキストメッセージを完了せずに通話に参加するかもしれない。ユーザ割込みを示唆しうる別のタイプのイベントは、アプリケーションとのユーザ対話のない少なくとも所定の時間間隔の経過である。例えば、ユーザが、カレンダ・エントリを生成するプロセスにあってもよいが、当該エントリを保存する前に、例えば、通り過ぎている誰かに話しかけるために数分間停止するかもしれない。ユーザ割込みを示唆しうるさらに別のタイプのイベントは、クライアント・デバイス１０２のスタンドバイ状態への遷移である。これが、例えば、ユーザがクライアント・デバイス１０２の任意の入力を所定の時間間隔だけ操作するのに失敗したとき（電力を節約するために、クライアント・デバイス１０２に自動的にスタンバイ・モードへと遷移させる）、または、ユーザが故意にクライアント・デバイス１０２をスタンバイ・モードに遷移させることによって（例えば、映画館においてまたは離陸前にライトが暗くなるとき）、生ずるかもしれない。さらに別のタイプのイベントは例えば、ユーザの、ユーザを自分の「ホーム」スクリーンにもっていくためのソフトキーのクリックである。
【００１９】
ユーザ活動モニタリングエンジン１１６は、１つまたは複数のアプリケーション（例えば、１０６−１１２）とのユーザ対話を示すデータを収集するように構成されてもよい。様々な実装では、クライアント・デバイス１０２のユーザは、例えば、ネットワーク通信中であるとき（例えば、セルラまたはＷｉ−Ｆｉ信号が利用可能であるとき）等に、アプリケーションごとに、特定の時間間隔中に（例えば、仕事時間中に）かかるモニタリングにオプトイン（またはオプトアウト）してもよい。様々な実装では、ユーザは、ユーザ活動モニタリングエンジン１１６により実施されるモニタリングに関連する様々なパラメータを調節してもよい。例えば、ユーザが、最終的に知識システム１０４に渡され様々な本明細書で説明した技術で使用される個人情報を検閲し、暗号化し、またはそうでない場合はスクランブルするように、ユーザ活動モニタリングエンジン１１６を構成できてもよい。さらに、様々な実装では、知識システム１０４とクライアント・デバイス１０２の間で渡されるデータを、特にデータが個人情報またはそうでない場合プライベート情報を含むことができる範囲で、暗号化、スクランブル、検閲等してもよい。さらに、様々な実装では、（クライアント・デバイス１０２または知識システム１０４上で）本明細書で説明した任意のコンポーネントにより実施される任意の学習を、ユーザコンテンツの監視に基づくのではなく、ユーザ活動（例えば、アプリケーションの切り替え、スタンバイへの遷移、特定の時間間隔だけアイドルに留まる等）の監視に基づいてもよい。
【００２０】
幾つかの実装では、ユーザ活動モニタリングエンジン１１６により収集されたデータが、一般に、アプリケーションとのユーザ対話の１つまたは複数のスナップショットおよび／またはアプリケーションもしくはクライアント・デバイス１０２の状態の形態で来てもよい。例えば、幾つかの実装では、ユーザ活動モニタリングエンジン１１６は、アプリケーションとのユーザ対話を示す１つまたは複数のスクリーンショットを取得してもよい。他の実装では、ユーザ活動モニタリングエンジン１１６は、アプリケーションのアプリケーションプログラミングインタフェース（「ＡＰＩ」）とインタフェースして、当該アプリケーションの１つまたは複数のスナップショットの状態を取得してもよい。幾つかの実装では、ユーザ活動モニタリングエンジン１１６は、アクセシビリティＡＰＩ（例えば、盲目の人のためのスクリーンリーダ）とインタフェースして、アプリケーションとのユーザ対話に関する情報を取得してもよい。
【００２１】
ユーザ活動モニタリングエンジン１１６は、連続的に、または様々な刺激に応答して、ユーザ対話データを収集してもよい。例えば、図１に示す実装では、ユーザ活動モニタリングエンジン１１６は、ユーザが割り込まれている可能性があったという割込み識別エンジン１１４からの信号に応答して、アプリケーションとのユーザ対話を示す１つまたは複数のスナップショットを取得してもよい。他の実装では、ユーザ活動モニタリングエンジン１１６は、連続的にユーザ対話データを収集してもよい。幾つかのかかる実装では、ユーザ活動モニタリングエンジン１１６は、ユーザ対話データのタイムライン上で最近のユーザ対話データの「スライディングウィンドウ」を維持してもよい。当該ウィンドウの外（即ち、前）で発生したユーザ対話データを、当該スライディングウィンドウが進行するにつれて破棄してもよい。幾つかの実装では、最近のユーザ対話データの当該スライディングウィンドウのサイズを、最近のユーザ対話データを格納するために割り当てられたメモリの量に基づいて決定してもよい。他の実装では、最近のユーザ対話データの当該スライディングウィンドウのサイズを、所定の時間間隔に相当するユーザ対話データ（例えば、２分）を維持するように決定してもよい。
【００２２】
ユーザ活動モニタリングエンジン１１６はユーザ対話データを提供してもよく、またはそうでない場合、それを、割込み識別エンジン１１４および／または知識システム１０４の１つまたは複数のコンポーネントのような１つまたは複数の他のコンポーネントに利用可能としてもよい。幾つかの実装では、ユーザ活動モニタリングエンジン１１６は、例えば、ユーザ活動モニタリングエンジン１１６により、割込みが検出されている可能性があるという割込み識別エンジン１１４からの信号を受信したことに応答して、ユーザ対話データを知識システム１０４に提供してもよい。
【００２３】
様々な実装では、割込み識別エンジン１１４およびユーザ活動モニタリングエンジン１１６のうち１つまたは複数が、そのタスクをアプリケーションごとに実施してもよい。幾つかのかかる実装では、これらのコンポーネントは、ユーザが明示的な許可を提供しない限り、特定のアプリケーションに関して動作することができない。例えば、ユーザが新たなアプリケーションを自分のスマートフォンにインストールしていると仮定する。インストールの間に、ユーザに、ユーザの許可を求めるインタフェースを提供して、様々なコンポーネント（例えば、ユーザの位置、ユーザのカレンダ等）へのアクセスを当該アプリケーションに提供してもよい。様々な実装では、かかるインタフェースは、割込み識別エンジン１１４、ユーザ活動モニタリングエンジン１１６、および／または知識システム１０４の１つまたは複数のコンポーネントに、インストールされているアプリケーションへのアクセスを提供するためのユーザの許可を求めてもよい。当該アプリケーションへのアクセスは、当該アプリケーションのスナップショット（例えば、スクリーンショット）を取得する能力、および／または当該アプリケーションのＡＰＩとインタフェースする能力を含んでもよいがこれらに限られない。
【００２４】
幾つかの実装では、割込み識別エンジン１１４およびユーザ活動モニタリングエンジン１１６のうち１つまたは複数（幾つかの事例では、統合クライアント・アプリケーションとして纏めてパッケージ化されてもよい）が、幾つかの実装ではユーザのホームスクリーン上に提示されうる、不完全なタスクの「トゥドゥ」リストのような様々なユーザインタフェースを提供してもよい。幾つかの実装では、割込み識別エンジン１１４および／またはユーザ活動モニタリングエンジン１１６が、クライアント・デバイス１０２に、ユーザがタスクを完了するのに失敗したことを明示的に示すためにユーザが操作しうるユーザインタフェースコンポーネントを提供させてもよい。例えば、一方または両方のコンポーネントが、ユーザのスマートフォン上の１つまたは複数のソフトキーを構成してもよく（または、グラフィカルユーザインタフェースコンポーネントをタッチスクリーンに生成してもよい）、その結果、操作されたとき、タスクが不完全であるという指示が生成され格納される。この方式で不完全なタスクの明示的な指定を許可することで、例えば、不完全とされるタスクの可能性を決定するように設計された（後述する）１つまたは複数の機械学習分類器のトレーニングを促進してもよい。幾つかの実装では、他のユーザ入力は、モバイル電話等を用いて行われる音声コマンド、ユーザジェスチャのような、タスクを不完全として明示的に指定するために使用されうる。
【００２５】
知識システム１０４を参照すると、ユーザ対話データ処理エンジン１２４を、クライアント・デバイス１０２から受信されたユーザ対話データに様々なタイプの処理を実施して、自然言語処理エンジン１２６、完了タスク予測エンジン１２８、および／またはタスク・リマインダ・エンジン１３２のようなダウンストリームコンポーネントによる分析のために当該データを準備するように構成してもよい。ユーザ対話データが、アプリケーション（例えば、１０６−１１２）とのユーザの対話の１つまたは複数のスクリーンショットを含む実装では、ユーザ対話データ処理エンジン１２４は、光文字認識（「ＯＣＲ」）を実施して、テキストを当該１つまたは複数のスクリーンショットから抽出してもよい。ユーザ対話データが、例えば、アプリケーションのＡＰＩを通じてユーザ活動モニタリングエンジン１１６により取得されたアプリケーションの状態のスナップショットのような他のタイプのデータを含む実装では、ユーザ対話データ処理エンジン１２４は、他のタイプの処理を実施して、ダウンストリームコンポーネントによる分析のためのユーザ対話データを準備してもよい。
【００２６】
自然言語処理エンジン１２６を、例えば、ユーザ対話データ処理エンジン１２４により抽出されたテキストに自然言語処理を実施して、不完全なタスクを示すテキスト（例えば、ユーザが作成したセンテンス部分／不完全なセンテンス）を識別するように構成してもよい。自然言語処理エンジン１２６は、様々な技術を使用して、テキストを抽出し、かつ／または、ユーザ対話データに注釈してもよい。当該技術には、同一指示解像度（co-reference resolution）、文法、正規表現、異議完了（objection completion）、テキスト書き換え、ヒューリスティックス、機械学習等が含まれるがこれらに限られない。
【００２７】
完了タスク予測エンジン１２８が、例えば、履歴アプリケーション対話データを格納できるインデックス１３０に通信可能に接続されてもよい。当該履歴アプリケーション対話データに基づいて、完了タスク予測エンジン１２８は、ユーザ活動モニタリングエンジン１１６により収集され、ユーザ対話データ処理エンジン１２４により処理され、かつ／または自然言語処理エンジン１２６により注釈付けされたユーザ対話データを試験するように構成されてもよい。完了タスク予測エンジン１２８は、ユーザがクライアント・デバイス１０２で実行されているアプリケーションで開始したタスクを完了するのに失敗した（または完了した）という可能性を決定してもよい。
【００２８】
完了タスク予測エンジン１２８は、様々な技術を使用して、不完全なタスクの可能性を予測してもよい。例えば、幾つかの実装では、完了タスク予測エンジン１２８が１つまたは複数の機械学習分類器を利用してもよい。かかる分類器が、例えば、不完全なタスクに関連付けられているとして知られているアプリケーションとのユーザ対話の複数の事例でトレーニングされてもよい。例えば、電子メールアプリケーションに関連付けられた履歴アプリケーション対話データが、一連の英数字文字に、「送信」コマンドの起動なしに幾つかの介在イベント（例えば、アプリケーションのスイッチ、スタンバイへ行く等）が続くユーザ入力が不完全なタスクを示す、機械学習分類器をトレーニングするために使用されてもよい。
【００２９】
完了タスク予測エンジン１２８は、ユーザ対話データを様々な方法で試験して、完全な／不完全なタスクの可能性を決定してもよい。幾つかの実装では、完了タスク予測エンジン１２８は、特定のアプリケーションに関連付けられた状態機械が特定の状態に到達したと判定してもよい。例えば、電話アプリケーション１１２において、着信が無視され、その着信が（例えば、通話履歴、社会的関係、個人関係等に基づいて）特定のユーザにとって重要であると思われる誰かからのものであると仮定する。電話アプリケーション１１２のその特定の状態に基づいて、完了タスク予測エンジン１２８は、突出して不完全なタスク、即ち、取り損ねた電話相手にかけなおすこと、があるという特定の可能性があると判定してもよい。
【００３０】
幾つかの実装では、完了タスク予測エンジン１２８が、アプリケーションの１つまたは複数のスナップショットの内容を試験して、完全／不完全なタスクの可能性を決定してもよい。例えば、ユーザがソーシャル・ネットワーキング・アプリケーションにステータス更新を書きこみ始めるが、割り込まれ、センテンスを完了するのに失敗したと仮定する。ユーザ対話データ処理エンジン１２４は、その不完全なセンテンスのテキストを、当該ソーシャル・ネットワーキング・アプリケーションの１つまたは複数のスクリーンショットから抽出してもよい。自然言語処理エンジン１２６は、当該センテンス部分を識別（および幾つかの実装では、注釈付け）してもよい。識別／注釈付けされたセンテンス部分に基づいて、ユーザが「送信」を押下するのを失敗したこととおそらく組み合わせて、完了タスク予測エンジン１２８は、ユーザが、自分のソーシャル・ネットワーキングステータスを更新するタスクを完了するのに失敗した比較的高い可能性があると判定してもよい。
【００３１】
完了タスク予測エンジン１２８が機械分類器を使用する幾つかの実装では、トレーニングデータが、タスクが不完全なであるかどうかの明示的なおよび／または暗黙的なユーザ指示に基づいてもよい。例えば、上述のように、割込み識別エンジン１１４および／またはユーザ活動モニタリングエンジン１１６は、作業しているタスクが割り込まれていて、したがって不完全にされるであろうことを明示的に示し、例えば、既知の不完全なタスクの事例を生成するための、ユーザにより操作可能なインタフェースを提供してもよい。さらにまたは代替的に、未完了のタスクを示唆しうるというイベントによりユーザが割り込まれている１つまたは複数の事例が、未完了のタスクの推論された事例を生み出してもよい。幾つかの実装では、未完了のタスクの推論された事例に明示的な事例より少ない重みを割り当ててもよい。
【００３２】
幾つかの実装では、機械学習分類器は、それぞれが、アプリケーション内の未完了のタスクを示す出力パラメータと、当該アプリケーションの１つまたは複数のパラメータおよび／または当該未完了のタスクが示されたときまたはその前のコンピューティング・デバイスの他の態様に関連付けられた１つまたは複数の入力パラメータのベクトルとを有するトレーニング例に基づいて、トレーニングされてもよい。例えば、アプリケーションがｘ個の異なる状態を有すると仮定する。トレーニング例に対する１つの入力パラメータは、当該アプリケーションのｘ個の可能な状態のうち、（当該未完了のタスクが示されたかまたは推論されたときの）現在の状態でありうる。他の入力パラメータは、ユーザがどのように割り込まれたか（例えば、切り替えられたアプリケーション、受信された通話、サイレントモードへの遷移等）であってもよい。別の入力パラメータが、当該アプリケーション内の特定の変数（例えば、テキストエントリフィールド内のテキスト、選択フィールドの選択された値等）の値であってもよい。（指定されたセンテンス部分のような）１つまたは複数の自然言語処理の注釈が別の入力パラメータであってもよい。例えば、自然言語処理注釈は、不完全なセンテンスが当該アプリケーションの１つまたは複数の入力フィールドに存在するかどうかを示してもよい。当該コンピューティング・デバイスのアプリケーションおよび／または他の状態に関連付けられた追加のおよび／または代替的な入力パラメータを提供してもよい。
【００３３】
ユーザが、特定のアプリケーションを用いてタスクを実施している間に割り込まれており、ユーザが明示的に、自分が当該タスクを完了するのに失敗したことを、例えば、ソフトキーまたはグラフィカルユーザインタフェースアイコンを用いて示すと仮定する。完了タスク予測エンジン１２８は、この明示的な不完全なタスクを、機械学習分類器に対するトレーニングデータとして、例えば、入力パラメータのベクトル＜Ｐ１、Ｐ２、Ｐ３、Ｐ４＞の形で使用すると仮定する。同一のアプリケーションの後続のスナップショットを分析するとき、タスク完了予測エンジン１２８は、後続のスナップショットに関連付けられたどれだけ多くのベクトルのパラメータが当該トレーニングデータに対応するかおよび／またはどれだけ緊密にこれらのパラメータが当該トレーニングデータに対応するかに基づく可能性を出力してもよい。例えば、別のスナップショットよりも緊密にポジティブなトレーニング例に対応する入力ベクトルを含む当該アプリケーションの第１の後続のスナップショットを、不完全なタスクに対応する可能性がより高いと考えてもよい。
【００３４】
完了タスク予測エンジン１２８は、不完全なタスク可能性の予測の正確性を示すユーザフィードバックおよび／または他のデータに基づいてインデックス１３０に格納された履歴アプリケーション対話データを更新するように構成されてもよい。例えば、完了タスク予測エンジン１２８により行われた判定に基づいて提供されたタスクリマインダの、ユーザ消費、またはその欠如を、１つまたは複数の機械学習分類器を修正するために使用されうるポジティブなまたはネガティブなフィードバックを構成してもよい。
【００３５】
タスク・リマインダ・エンジン１３２は、履歴リマインダ消費データを格納するインデックス１３４と通信可能に接続してもよい。履歴リマインダ消費データは、例えば、様々なアプリケーションに関連付けられたタスクリマインダの過去のユーザ消費を示すデータを含んでもよい。完了タスク予測エンジン１２８により決定された不完全なタスク可能性に基づいて、タスク・リマインダ・エンジン１３２が、この履歴リマインダ消費データに少なくとも部分的に基づいて選択された方式で、タスク完了リマインダを選択的に生成し、かつ／または当該タスク完了リマインダをユーザに提供するように構成されてもよい。
【００３６】
タスク・リマインダ・エンジン１３２は、様々な技術を使用して、どのようにタスクリマインダがユーザに提供されるかを選択してもよい。幾つかの実装では、タスク・リマインダ・エンジン１３２が、タスク完了リマインダが１つまたは複数の機械学習分類器を用いてユーザに提供される方式を選択してもよい。様々な実装では、当該１つまたは複数の機械学習分類器を、例えば、インデックス１３４に履歴リマインダ消費データとして格納された、タスク完了リマインダ消費の複数の事例でトレーニングしてもよい。
【００３７】
タスク・リマインダ・エンジン１３２が機械学習分類器を使用する幾つかの実装では、タスク完了リマインダ消費の事例がそれぞれ、入力パラメータのベクトルを含んでもよい。これらの入力パラメータが広く異なってもよく、どれだけ当該タスク完了リマインダが消費されたか、消費のどれだけ後に当該タスクが完了したか、完了タスク予測エンジン１２８により出力された１つまたは複数の可能性、ユーザが（例えば、ソフトキーまたはグラフィカルユーザインタフェースアイコンを用いて）当該リマインダ等を明示的に好きかまたは嫌いかを含んでもよいがこれらに限られない。
【００３８】
様々な実装では、タスク・リマインダ・エンジン１３２に関連付けられた機械学習分類器は様々な出力を提供してもよい。幾つかの実装では、かかる機械学習分類器は、例えば、タスク・リマインダ・エンジン１３２によりハッシュされうる値を出力してもよく、次いで、そのハッシュを、タスクを完了するようにユーザにリマインドする複数の潜在的な方式のうち１つまたは複数（例えば、電子メール、テキスト、スクリーン通知等）にマッチしてもよい。幾つかの実装では、機械学習分類器は、例えば、タスク・リマインダ・エンジン１３２または別のコンポーネントにより、タスク完了リマインダが提供される顕著性のレベルに関連しうる値を出力してもよい。完了タスク予測エンジン１２８が、第１のタスクが不完全とされた比較的高い可能性を出力するが、第２のタスクが不完全とされた比較的低い可能性を出力すると仮定する）。タスク・リマインダ・エンジン１３２が、当該第２のタスク（例えば、電子メール）に対するタスク完了リマインダよりも高いレベルの顕著性を有する、当該第１のタスクに対するタスク完了リマインダ（例えば、可聴および／または触覚フィードバックと結合されたスクリーン通知）を提供してもよい。
【００３９】
幾つかの実装では、タスク完了リマインダが提供される前の時間を、タスク・リマインダ・エンジン１３２および／または完了タスク予測エンジン１２８に関連付けられた１つまたは複数の機械学習分類器の様々な出力に基づいて選択してもよい。完了タスク予測エンジン１２８が、第１のタスクが不完全とされたという比較的高い可能性を出力するが、第２のタスクが不完全とされたという比較的低い可能性を出力すると仮定する。タスク・リマインダ・エンジン１３２が、当該第２のタスクに対するタスク完了リマインダ（例えば、数時間後または数日後）よりも早く（例えば、数分後）当該第１のタスクに対するタスク完了リマインダを提供してもよい。
【００４０】
幾つかの実装では、別々の機械学習分類器を、アプリケーション（例えば、１０６−１１２）ごとおよび／またはユーザごとに、トレーニングおよび／または使用してもよい。様々な実装では、タスク・リマインダ・エンジン１３２が、例えば、タスク完了リマインダのユーザによる消費を示す、ユーザからのフィードバックに基づいて１つまたは複数の機械学習分類器を修正してもよい。例えば、ユーザが、特定のアプリケーション上の特定のタスクを完了するようにユーザにリマインドするテキストメッセージを一般に無視するが、スクリーン通知にはより応答する場合、タスク・リマインダ・エンジン１３２は、スクリーン通知を前方に出すことを優先してもよい。
【００４１】
タスク完了リマインダが様々な形態をとってもよく、この形態には、テキストメッセージ、スクリーン通知（例えば、ロックされたスクリーンおよび／またはホームスクリーン）、ポップアップウィンドウ、オーディオ通知（例えば、ビープ音、トーン等）、触覚フィードバック（例えば、振動）、電子メール、音声メール、ソーシャル・ネットワーキングメッセージ等が含まれるこれらに限られない。幾つかの実装では、不完全なタスクが検出されたアプリケーションを、例えば、タスク・リマインダ・エンジン１３２によりまたはタスク・リマインダ・エンジン１３２の要求時に当該アプリケーション自身により、幾分後に自動的に開いて当該タスクを完了するようにユーザに促すようにスケジュールしてもよい。
【００４２】
様々なコンポーネントがクライアント・デバイス１０２または知識システム１０４の一部として図１に示されているが、これは限定を意味するものではない。様々なコンポーネントを、追加し、省略し、または示したものと異なって実装してもよい。例えば、ユーザ対話データ処理エンジン１２４、自然言語処理エンジン１２６、完了タスク予測エンジン１２８、および／またはタスク・リマインダ・エンジン１３２のような、知識システム１０４の一部として図１に示した１つまたは複数のコンポーネントを、クライアント・デバイス１０２で、および／またはクライアント・デバイス１０２および知識システム１０４の両方で実装してもよい。同様に、割込み識別エンジン１１４および／またはユーザ活動モニタリングエンジン１１６のようなクライアント・デバイス１０２上で実装されるとして図１に示したコンポーネントを、知識システム１０４で全体的にまたは部分的に実装してもよい。様々な実装では、１１４、１１６、１２４、１２６、１２８、および／または１３２のうち１つまたは複数のようなクライアント・デバイス１０２および／または知識システム１０４の様々なコンポーネントを、ソフトウェア、ハードウェア（例えば、特定用途向け集積回路、または「ＡＳＩＣ」を用いて）、またはその２つの任意の組合せを用いて実装してもよい。
【００４３】
図２は、様々な実装に従う、知識システム１０４の様々なコンポーネントによりどのようにユーザ対話データを処理できるかのの１例を示す。ユーザ対話データ処理エンジン１２４はユーザ対話データを完了タスク予測エンジン１２８に提供してもよい。本例では図示していないが、幾つかの実装では、自然言語処理エンジン１２６は、ユーザ対話データを、それが完了タスク予測エンジン１２８に到着するかなり前に、処理／注釈付けしてもよい。
【００４４】
本例では、完了タスク予測エンジン１２８は複数の処理パイプライン２５２ａ−２５２ｎ（一般に「処理パイプライン２５２」と称される）を含む。幾つかの実装では、各処理パイプライン２５２が、別々のアプリケーション（例えば、１０６−１１２）に関連付けられてもよい。各処理パイプライン２５２は、ユーザ対話データを分析してユーザが特定のアプリケーション内のタスクを完了するのに失敗したという可能性を決定するためのアルゴリズムを表現してもよい。例えば、第１の処理パイプライン２５２ａは、ユーザがカレンダアプリケーション１０６に関連付けられたタスクを完了するのに失敗したという可能性を決定するように設計されたアルゴリズムを含んでもよい。第２の処理パイプライン２５２ｂは、ユーザが電子メールアプリケーション１０８等に関連付けられたタスクを完了するのに失敗したという可能性を決定するように設計されたアルゴリズムを含んでもよい。
【００４５】
幾つかの実装では、各処理パイプライン２５２は、インデックス１３０に格納された履歴アプリケーション対話データでトレーニングされた別々の機械学習分類器を含んでもよい。幾つかの実装では、同一のユーザ対話データが、複数の処理パイプラインにより並列に処理されてもよい。当該仮定が、ユーザ対話データに全く関係しないアプリケーションに関連付けられたパイプラインが比較的低い可能性の不完全なタスクを生成するというものであってもよい。
【００４６】
幾つかの実装では、或るパイプライン２５２からの出力を、例えば、タスク・リマインダ・エンジン１３２のようなダウンストリームコンポーネントに提供されることに加えてまたはその代わりとして、矢印２８０により示された別のパイプラインに提供してもよい。例えば、第１のパイプライン２５２が、ユーザが或るアプリケーションに関連付けられたタスクを完了するのに失敗したという中レベル可能性（例えば、５０％）を出力し、第２のパイプライン２５２が、ユーザが別のアプリケーションに関連付けられたタスクを完了するのに失敗したという比較的高い可能性を出力すると仮定する。第２のパイプライン２５２による当該比較的高い可能性出力を第１のパイプライン２５２への入力として提供してもよく、当該第１のパイプラインにその決定された可能性を増大または減少させてもよい。
【００４７】
或るパイプライン２５２からの出力を他の理由で別のものに提供してもよい。多数のユーザにより生成された大量の生ユーザ対話データは非常に大きい可能性がある。したがって、幾つかの実装では、１つまたは複数の基本データ処理パイプライン２５２を、比較的高いレベル情報（例えば、信号）をユーザ対話データから取得するために、例えば、「小麦」を「もみ殻」から分離するために、提供してもよい。幾つかの実装では、これらのパイプラインは、ユーザ対話データ処理エンジン１２４および／または自然言語処理エンジン１２６により実施されている上述の１つまたは複数の動作を実施してもよい。例えば、パイプラインは、１つまたは複数のアプリケーションとのユーザ対話のスナップショットのような高いレベル信号を抽出してもよい。これらの基本データ処理パイプライン２５２の出力を、例えば、矢印２８０により示すように他のパイプライン２５２に提供してもよい。これらの他のパイプライン２５２は、機械学習モデル等のような様々な技術を使用して、ユーザが、アプリケーションに関連付けられたタスクを完了するのに失敗したという可能性を決定してもよい。
【００４８】
完了タスク予測エンジン１２８の出力をタスク・リマインダ・エンジン１３２に提供してもよい。図２の点線矢印で示すように、幾つかの実装では、完了タスク予測エンジン１２８は、ユーザがタスクを完了するのに失敗したという可能性を示す出力を選択的に提供してもよい。例えば、所与の処理パイプライン２５２に対して、完了タスク予測エンジン１２８は、当該決定された可能性が閾値を満たす場合にのみタスク・リマインダ・エンジン１３２に出力を提供してもよい。他の実装では、全ての可能性を、それがどれだけ低くても、タスク・リマインダ・エンジン１３２に提供してもよい。
【００４９】
タスク・リマインダ・エンジン１３２は、完了タスク予測エンジン１２８により提供された出力を分析し、それに応答して、（幾つかの場合受信された可能性に選択的に基づいて）タスク完了リマインダを、インデックス１３４に格納された履歴リマインダ消費データに少なくとも部分的に基づいて選択された方式でユーザに提供してもよい。例えば、幾つかの実装では、タスク・リマインダ・エンジン１３２は、クライアント・デバイス１０２で実行されているアプリケーション１０６−１１２のような様々なダウンストリームコンポーネントに１つまたは複数のコマンドを提供して、クライアント・デバイス１０２を操作しているユーザに１つまたは複数のタスクリマインダを提供してもよい。
【００５０】
完了タスク予測エンジン１２８および／またはタスク・リマインダ・エンジン１３２は、それらが様々なソースから行う判定に関するフィードバックを受信してもよい。これらのコンポーネントの一方または両方が機械学習分類器を使用する実装では、当該フィードバックが、ポジティブな、ニュートラルな、および／またはネガティブなフィードバックの形態であってもよい。図３に示すように、フィードバックが、クライアント・デバイス１０２から、例えば、１つまたは複数のアプリケーション１０６−１１２を介して、来てもよい。
【００５１】
クライアント・デバイス１０２が、例えば、ユーザがカレンダアプリケーション１０６を操作して開始日または終了日なしに、日付およびタイトル、および位置を有するカレンダ・エントリを生成したことに応答して、カレンダ・エントリを完了するための可聴通知（例えば、ビープ）が提供される携帯電話であると仮定する。さらに、ユーザが、当該カレンダ・エントリを完了するためにカレンダアプリケーション１０６を開くことすらせずに当該通知を（例えば、スワイプすることで）却下すると仮定する。ユーザの却下が、例えば、ユーザが実際には当該カレンダ・エントリを完了したが、ユーザが開始時刻と終了時刻をカレンダ・エントリの本質的な特徴であると考えていないことを示す、完了タスク予測エンジン１２８に対するネガティブなフィードバックを構成してもよい。かかるフィードバックを、例えば、完了タスク予測エンジン１２８により、様々な形態でインデックス１３０に格納してもよい。
【００５２】
あるいは、ユーザが当該通知をスワイプしたが、その幾分後に、当該カレンダ・エントリを完了したと仮定する。今回、ユーザの却下は、少なくとも当該特定の可聴通知に関して、タスク・リマインダ・エンジン１３２に対するネガティブなフィードバックを構成してもよい。おそらくユーザは可聴リマインダが嫌いである。しかし、ユーザが後に当該タスクを完了したという事実はまた、例えば、ユーザが可聴リマインダを好きではないが、おそらくより微妙なリマインダ（例えば、視覚通知、点滅光等）がより良く受け入れられるかもしれないという、幾つかの建設的なフィードバックをタスク・リマインダ・エンジン１３２に提供することができる。さらに、当該カレンダ・エントリの後の完了は完了タスク予測エンジン１２８に対するポジティブなフィードバックを構成しうる。開始時刻と終了時刻は、カレンダ・エントリを完了するために結局当該特定のユーザに本質的であるかもしれない。
【００５３】
図３は、カレンダ・エントリを生成および／または編集するための例示的なユーザインタフェース３００を示す。インタフェース３００は、１つまたは複数の日付、イベントタイトルフィールド３０４、イベント位置フィールド３０６、開始時間フィールド３０８、および終了時間フィールド３１０を選択するためにユーザが操作しうる対話的なカレンダ３０２のような様々なフィールドを含む。インタフェース３００は例示の目的のために提供されているにすぎず、限定を意味しない。様々なカレンダアプリケーションは、カレンダ・エントリを生成および／または編集するためのより多くのまたは少ないデータエントリフィールドを含んでもよい。
【００５４】
本例では、イベント日付（１月２１日）が選択されており、イベントタイトルがイベントタイトルフィールド３０４に入力されており、位置が位置フィールド３０６に入力されており、開始時間が開始時間フィールド３０８に入力されている。しかし、終了時間フィールド３１０は空のままであり、提供された位置（「川のそばの手羽先屋」）は、郵便の宛先のような既知の位置でも、エンティティのような人、場所、イベント等のようなエンティティの知識ベースから識別可能でもなく、口語形態である。次に、ユーザインタフェース３００が閉じられ、別のアプリケーションと交換され、かつ／またはこれらの不完全なフィールドが完了する前に所定の時間間隔だけ未変更の状態にあると仮定する。当該終了時間の間データを提供することに失敗し、かつ／または、位置のより「完全な」バージョンの口語形態を提供するのに失敗したことに基づいて、完了タスク予測エンジン１２８は、ユーザが当該カレンダ・エントリを完了するのに失敗したという可能性を決定してもよい。当該可能性が１つまたは複数の閾値を満たす場合、タスク・リマインダ・エンジン１３２はユーザにタスク完了リマインダを提供してもよい。
【００５５】
次に図４を参照すると、様々な本明細書で説明した技術を組み込んだ例示的な方法４００が示されている。便宜上、当該流れ図の動作を、当該動作を実施するシステムを参照して説明する。当該システムは、本明細書で説明した様々なエンジンを含む様々なコンピュータシステムの様々なコンポーネントを含んでもよい。さらに、方法４００の動作が特定の順序で示されているが、これは限定を意味しない。１つまたは複数の動作を再順序付けし、省略し、または追加してもよい。
【００５６】
ブロック４０２で、当該システムは、クライアント・デバイス１０２のようなコンピューティング・デバイスとのユーザの対話を示すユーザ対話データを取得してもよい。例えば、当該システムは、アプリケーションでタスクを実施する間のユーザの可能な割込みを示唆するイベントを監視してもよい。かかるイベントはアプリケーションを切り替えること（特に、クライアント・デバイス１０２が一度に１つのアプリケーションを表示するように構成された小さなスクリーンを有する携帯電話またはタブレットコンピュータである場合）、或る時間間隔だけアイドルに留まること、アプリケーションとのユーザ対話なしに少なくとも所定の時間間隔が経過すること、クライアント・デバイス１０２をスタンバイ・モードに遷移すること、携帯電話をサイレントまたは振動モードにすること等を含んでもよいがこれらに限られない。ブロック４０４で、当該システムが、かかるイベントの発生を、例えば、ブロック４０２で取得された当該コンピューティング・デバイスとのユーザ対話を示すデータに基づいて検出してもよい。
【００５７】
ブロック４０６で、当該システムは、ブロック４０４で検出されたイベント発生と同時に発生する特定のアプリケーション（例えば、図１の１０６−１１２）とのユーザ対話を示すユーザ対話データを取得してもよい。例えば、ユーザ活動モニタリングエンジン１１６は、図３のカレンダ・エントリユーザインタフェース３００のその示した状態におけるスナップショットのような、アプリケーションとのユーザ対話の１つまたは複数のスナップショット（例えば、スクリーンショット、ＡＰＩ等から取得されたアプリケーションの状態）を取得してもよい。
【００５８】
ブロック４０６で取得したユーザ対話データに基づいて、ブロック４０８で、当該システムは、ユーザが当該特定のアプリケーションで開始されたタスクを完了するのに失敗したと判定してもよい。例えば、完了タスク予測エンジン１２８が、ユーザインタフェース３００の空のおよび／または不完全なフィールドを分析して、既知の不完全なタスクの過去の事例に基づいて、当該特定のカレンダ・エントリが完了しなかったという可能性を決定してもよい。
【００５９】
ブロック４０８で決定した可能性に基づいて、ブロック４１０で、当該システムは、ユーザにタスク完了リマインダを選択的に提供してもよい。様々な実装では、当該システムは（例えば、タスク・リマインダ・エンジン１３２を介して）、ブロック４０８で決定された可能性が１つまたは複数の所定の閾値を満たすときに、当該タスク完了リマインダを提供してもよい。様々な実装では、当該システムは（例えば、タスク・リマインダ・エンジン１３２を介して）、当該システムが、例えば、インデックス１３４に格納された履歴消費データに基づいて選択した方式で、当該タスク完了リマインダを提供してもよい。例えば、電子メールユーザが過去に触覚リマインダ（例えば、電話の振動）よりも電子メール形態のタスク完了リマインダに応答する場合、当該システムは、電子メールを介してタスク完了リマインダを提供することを選択してもよい。
【００６０】
ブロック４１２で、当該システムは、例えば、アプリケーション１０６−１１２からまたは他のソースから、ブロック４０８で決定された可能性に関するフィードバックを取得してもよい。幾つかの実装では、ユーザは、当該可能性に関する明示的なフィードバックを提供してもよい。例えば、タスク完了リマインダを受信した後、ユーザは、（当該タスク完了リマインダまたは別の場所で）ユーザインタフェースを操作して、ユーザが実際にタスクの完了に失敗したことにユーザが同意または不同意したとの指示を提供してもよい。図３に示すカレンダ・エントリ上の埋められた情報は特定のユーザに対して十分であると仮定する。おそらくユーザは、「川のそばの手羽先屋」がどこにあるのかを正確に知らず、イベントの終了時間を気にしていない（例えば制約なし）。当該カレンダ・エントリを完了するリマインダを提供されたとき、ユーザは、当該カレンダイベントが完了しているとユーザが考えていることを示すように構成された１つまたは複数のグラフィカルユーザインタフェース要素（例えば、「完了済み」というラベルのボタン）を操作してもよい。このように、例えば、ユーザ（または一般的なユーザ）がカレンダ・エントリを完了するのに失敗したという可能性を決定するように構成された機械学習分類器にネガティブなフィードバックを提供する。他の実装では、ユーザフィードバックが暗黙的であってもよい。例えば、上述のように、ユーザが当該タスクを完了するために戻ることすらせずにタスク完了リマインダを拒否した場合、これは、暗黙的にネガティブなフィードバックを構成しうる。ブロック４１４で、当該システムは、当該フィードバックに基づいて、問題の特定のアプリケーションに関連付けられた履歴アプリケーション対話データを更新してもよく、当該データは、例えば、インデックス１３０に格納されてもよい。
【００６１】
ブロック４１６で、当該システムは、例えば、アプリケーション１０６−１１２からまたは他のソースから、ブロック４１０で提供されたタスク完了リマインダのユーザ消費に関するフィードバックを取得してもよい。幾つかの実装では、ユーザは、自分がタスク完了リマインダを受信した方式に関する明示的なフィードバックを提供してもよい。例えば、ユーザは、当該タスク完了リマインダまたは別の場所のユーザインタフェースを操作して、当該タスク完了リマインダが自分に提供された方式を好きであったかまたは好きでなかったという指示を提供してもよい。ユーザが、当該タスク完了リマインダを、パーソナル電子メールアドレスに送信された電子メールとして受信すると仮定する。ユーザは、（例えば、割込み識別エンジン１１４またはユーザ活動モニタリングエンジン１１６によりまたはそれらに代わってクライアント・デバイス１０２に描画された）ユーザインタフェースを操作して、タスク完了リマインダを自分の個人電子メールアドレスで受信することを望まないと示してもよい。幾つかの実装では、ユーザはさらに、ユーザインタフェースを操作して、自分がタスク完了通知を他の方式で、例えば、テキストメッセージを介して、会社の電子メールアドレスで、または携帯電話スクリーン上の通知として受信することを好むことを示してもよい。
【００６２】
様々な実装では、タスクリマインダのユーザ消費に関するユーザフィードバックがさらにまたは代替的に暗黙的であってもよい。例えば、ユーザがタスク完了リマインダを拒否し、次いで幾つかの時間間隔（例えば、１時間または数時間、１日または数日）後に戻ってきて（おそらく異なる形態での別のタスク完了リマインダを消費した後に）当該タスクを完了すると仮定する。これは、ユーザが当該タスクを完了することリマインドされたいが、当該タスク完了リマインダが最初に提供された方式では望まないことを示してもよい。ブロック４１８で当該システムは、ブロック４１６で受信されたフィードバックに基づいて、当該特定のユーザまたは一般的なユーザに関する履歴リマインダ消費データを更新してもよく、幾つかの実装では当該データをインデックス１３４に格納してもよい。
【００６３】
図５は例示的なコンピュータシステム５１０のブロック図である。コンピュータシステム５１０は一般に、バス・サブシステム５１２幾つかの周辺デバイスと通信する少なくとも１つのプロセッサ５１４を含む。これらの周辺デバイスは、例えば、メモリサブシステム５２５およびファイル記憶サブシステム５２６、ユーザインタフェース出力デバイス５２０、ユーザインタフェース入力デバイス５２２、およびネットワークインタフェースサブシステム５１６を含む、記憶サブシステム５２４を備えてもよい。当該入力および出力デバイスはコンピュータシステム５１０とのユーザ対話を可能とする。ネットワークインタフェースサブシステム５１６は、ネットワーク外部へのインタフェースを提供し、他のコンピュータシステム内の対応するインタフェースデバイスに接続される。
【００６４】
入力インタフェース入力デバイス５２２は、キーボード、マウス、トラックボール、タッチパッドのようなポインティング・デバイス、またはグラフィクスタブレット、スキャナ、当該ディスプレイに組み込まれたタッチスクリーン、音声認識システム、マイクロ電話、および／または他のタイプの入力デバイスのようなオーディオ入力デバイスを備えてもよい。一般に、「入力デバイス」という用語の利用は、全ての可能なタイプのデバイスを含み、コンピュータシステム５１０にまたは通信ネットワークに情報を入力するための方法を含むことを意図している。
【００６５】
入力インタフェース出力デバイス５２０は、オーディオ出力デバイスのようなディスプレイサブシステム、プリンタ、ファックス機械、または非視覚ディスプレイを含んでもよい。当該ディスプレイサブシステムは、カソード・レイ・チューブ（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）のようなフラット・パネルデバイス、投影デバイス、または可視画像を生成するための幾つかの他の機構を含んでもよい。当該ディスプレイサブシステムはまた、オーディオ出力デバイスを介してのような非視覚ディスプレイを提供してもよい。一般に、「出力デバイス」という用語の利用は、全ての可能なタイプのデバイス、および、情報をコンピュータシステム５１０からユーザまたはｔｏ別の機械またはコンピュータシステムに出力するための方法を含むことを意図している。
【００６６】
記憶サブシステム５２４〇〇は、本明細書で説明したモジュールの一部または全部の機能を提供するプログラミングおよびデータ構築物を格納する。例えば、当該記憶サブシステム５２４は、方法４００の選択された態様を実施し、かつ／または、割込み識別エンジン１１４、ユーザ活動モニタリングエンジン１１６、ユーザ対話データ処理エンジン１２４、自然言語処理エンジン１２６、完了タスク予測エンジン１２８、および／またはタスク・リマインダ・エンジン１３２のうち１つまたは複数を実施するためのロジックを含んでもよい。
【００６７】
これらのソフトウェアモジュールは一般に、プロセッサ５１４により単体でまたは他のプロセッサと組み合せて実行される。当該記憶サブシステム５２４で使用されるメモリ５２５は、プログラム実行中に命令およびデータを記憶するためのメイン・ランダム・アクセス・メモリ（ＲＡＭ）５３０および固定された命令が格納される読取り専用メモリ（ＲＯＭ）５３２を含む幾つかのメモリを備えることができる。ファイル記憶サブシステム５２６は、プログラムおよびデータファイルに対する永続記憶を提供でき、ハード・ディスクドライブ、フロッピディスクドライブを、関連付けられた取外し可能媒体、ＣＤ−ＲＯＭドライブ、光ドライブ、または取外し可能媒体カートリッジとともに含んでもよい。特定の実装の機能を実装するモジュールが、当該記憶サブシステム５２４内のファイル記憶サブシステム５２６、に格納されるかまたは当該プロセッサ（複数可）５１４によりアクセス可能な他のマシンに格納されてもよい。
【００６８】
バス・サブシステム５１２は、コンピュータシステム５１０の前記様々なコンポーネントおよびサブシステムが意図するように互いに通信するようにするための機構を提供する。バス・サブシステム５１２は概略的に単一のバスとして示されているが、当該バス・サブシステムの代替的な実装では複数のバスを使用してもよい。
【００６９】
コンピュータシステム５１０は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバ・ファーム、または任意の他のデータ処理システムまたはコンピューティング・デバイスを含む様々なタイプであることができる。コンピュータおよびネットワークの変化し続ける性質のため、図５に示したコンピュータシステム５１０の説明は、幾つかの実装を示すための特定の例を意図したにすぎない。図５に示したコンピュータシステムより多いかまたは少ないコンポーネントを有する、コンピュータシステム５１０の多数の他の構成が可能である。
【００７０】
本明細書で説明したシステムがユーザに関する個人情報を収集するかまたは個人情報を利用しうる状況において、ユーザに、プログラムまたは特徴がユーザ情報（例えば、ユーザのソーシャル・ネットワーク、ソーシャルアクションまたはアクティビティ、職業、ユーザの嗜好、またはユーザの現在の地理的位置に関する情報）を収集するかどうかを制御する機会、またはユーザにより関連するコンテンツをコンテンツサーバから受信するかどうかおよび／またはその方法を制御する機会を提供してもよい。また、特定のデータを、それが格納または使用される前に１つまたは複数の方法で処理してもよく、その結果、個人識別可能情報が除去される。例えば、ユーザのアイデンティティを、個人識別可能情報がユーザに退位して決定されず、または、ユーザの特定の地理的位置を決定することができないように、地理的位置情報が取得されるユーザの地理的位置を（都市、ＺＩＰコード、または州レベルのように）汎用化してもよい。したがって、ユーザは、情報がユーザに関してどのように収集されかつ／または使用されるかについて制御することができる。
【００７１】
本明細書では幾つかの実装を説明し図示したが、当該機能を実施しかつ／または当該結果および／または本明細書で説明した利点のうち１つまたは複数を取得するための様々な他の手段および／または構造を利用してもよく、かかる変形および／または修正の各々は本明細書で説明した実装の範囲内にあると見做される。より一般に、本明細書で説明した全てのパラメータ、次元、材料、および構成は例示的であり、その実際のパラメータ、次元、材料、および／または構成は、当該教示事項が使用される１つまたは複数の特定のアプリケーションに依存する。当業者は、日常の実験以上のものを使わずに、本明細書で説明した特定の実装に対する多くの均等物を認識し、または、それを確認することができる。したがって、以上の実装は例として提供されたにすぎず、添付の特許請求の範囲とその均等物の範囲内において、実装形態を特に明記しない限り別の方法で実施してもよいことは理解される。本開示の実装は、本明細書で説明した各独立な特徴、システム、製品、材料、キット、および／または方法に関する。２つ以上のかかる特徴、システム、製品、材料、キット、および／または方法のさらに、任意の組合せは、かかる特徴、システム、製品、材料、キット、および／または方法が相互に矛盾しない場合は、本開示の範囲内に含まれる。
【符号の説明】
【００７２】
１０２  クライアント・デバイス
１０４  知識システム
１０６  カレンダ
１０８  電子メール・アプリ
１１０  テキスト・アプリ
１１２  写真アプリ
１１４  割込み識別エンジン
１１６  ユーザ活動監視エンジン
１２４  ユーザ対話データ処理エンジン
１２６  自然言語処理エンジン
１２８  完了タスク予測エンジン
１３２  タスク・リマインダ・エンジン
【図１】
2018511118.tif 000003
【図２】
2018511118.tif 000004
【図３】
2018511118.tif 000005
【図４】
2018511118.tif 000006
【図５】
2018511118.tif 000007
【国際調査報告】
2018511118.tif 000008
2018511118.tif 000009