(57)【要約】  システムおよび方法は、コンピューティングシステムが、反復アクションのシーケンスを認識し、いずれかのそのような認識されたアクションの自動的反復を提示することを可能にする。例示的な方法は、ユーザのアクションの現在のシーケンスがユーザのアクションの以前のシーケンスに類似すると判定するステップと、以前のシーケンスが再現可能であるかどうかを判定するステップと、再現可能であるとき、以前のシーケンスに基づいて、現在のシーケンスを完了するための承認を要求するプロンプトの表示を開始するステップと、承認の指示の受信に応じて、以前のシーケンスを完了するステップとを含む。別の例示的な方法は、ユーザ対話の第1の現在のシーケンスが、完了しており、ユーザ対話のいずれの保存されたシーケンスにも類似しないと判定するステップと、第1の現在のシーケンスを以前のシーケンスとして保存するステップと、以前のシーケンスに対する類似性しきい値を満たすとして第2の現在のシーケンスを識別するステップと、以前のシーケンスをショートカットとして保存するための承認を要求するプロンプトの表示を開始するステップとを含む。
2020514857.tif 000002
【特許請求の範囲】
【請求項１】
モバイルアプリケーションを用いたユーザのアクションの現在のシーケンスがユーザのアクションの以前のシーケンスに類似すると判定するステップと、
前記以前のシーケンスの再現性を反映する信頼性スコアを計算するステップと、
前記信頼性スコアが信頼性しきい値を満たすとき、前記以前のシーケンスを使用してユーザのアクションの前記現在のシーケンスを完了するための承認を要求するプロンプトの表示を開始するステップと、
前記完了の承認の指示の受信に応じて、前記以前のシーケンスを完了するステップと
を含む、方法。
【請求項２】
前記以前のシーケンスがショートカットシーケンスでないと判定するステップと、
前記以前のシーケンスをショートカットシーケンスとして保存するための承認を要求するプロンプトの表示を開始するステップと、
保存するための承認の指示の受信に応じて、前記以前のシーケンスをショートカットシーケンスとして保存するステップと
をさらに含む、請求項1に記載の方法。
【請求項３】
前記ショートカットシーケンス内のアクションを再現するためのアイコンをモバイルデバイスのホームスクリーンに追加するステップ
をさらに含む、請求項2に記載の方法。
【請求項４】
前記信頼性スコアが、同じアプリケーション内のアクションの複数のシーケンスにわたる前記ユーザの行動に基づく、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記信頼性スコアが、前記アクションのシーケンスに関するコンテキスト特徴に基づく、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記信頼性スコアが、同じアプリケーション内のユーザのアクションの複数のシーケンスにわたるユーザの集約行動に基づく、請求項1から5のいずれか一項に記載の方法。
【請求項７】
アクションの前記現在のシーケンスがアクションの前記以前のシーケンスに類似すると判定するステップが、前記ユーザが提供する入力の特徴と、前記モバイルアプリケーションが提示するコンテンツの特徴とを含む、請求項1から6のいずれか一項に記載の方法。
【請求項８】
ユーザ対話の第2の現在のシーケンスがユーザ対話のいずれの以前のシーケンスにも類似しないと判定するステップと、
前記第2の現在のシーケンスが完了しているかどうかを判定するステップと、
前記第2の現在のシーケンスが完了しているとき、前記第2の現在のシーケンスを第2の以前のシーケンスとして保存するステップと
をさらに含む、請求項1から7のいずれか一項に記載の方法。
【請求項９】
前記第2の現在のシーケンスが中間の信頼性スコアで保存される、請求項8に記載の方法。
【請求項１０】
前記信頼性しきい値が第1の信頼性しきい値であり、前記方法が、
前記信頼性スコアが前記第1の信頼性しきい値を満たさないが、第2の信頼性しきい値を満たすとき、前記現在のシーケンスを、中間の信頼性を備えた、保存されたシーケンスとして保存するステップ
をさらに含む、請求項1から9のいずれか一項に記載の方法。
【請求項１１】
ユーザ対話の第1の現在のシーケンスがユーザ対話の以前のシーケンスに対する類似性しきい値を満たすことができないと判定するステップと、
アクションの第1の現在のシーケンスが完了していると判定するステップと、
前記第1の現在のシーケンスを第1の以前のシーケンスとして保存するステップと、
前記第1の以前のシーケンスに対する前記類似性しきい値を満たすとして第2の現在のシーケンスを識別するステップと、
前記第1の以前のシーケンスをショートカットとして保存するための承認を要求するプロンプトの表示を開始するステップと
を含む、方法。
【請求項１２】
前記第1の以前のシーケンスと、前記第2の現在のシーケンスとの間の信頼性スコアを生成するステップであって、前記信頼性スコアが、前記第1の以前のシーケンスを自動的に再現する際の信頼性を示す、ステップと、
前記信頼性スコアが第1の信頼性しきい値を満たすとき、前記プロンプトの表示を開始するステップと
をさらに含む、請求項11に記載の方法。
【請求項１３】
アクションの前記第1の以前のシーケンスを再現するための承認を要求するプロンプトの表示を開始するステップと、
アクションの前記第1の以前のシーケンスを再現するための承認の受信に応じて、アクションの前記第1の以前のシーケンスを再現するステップと
をさらに含む、請求項11または12に記載の方法。
【請求項１４】
保存するための承認が受信されたとき、音声コマンドをアクションの前記第1の以前のシーケンスに関連付けるステップ
をさらに含む、請求項11から13のいずれか一項に記載の方法。
【請求項１５】
保存するための承認が受信されたとき、選択可能なアイコンをアクションの前記第1の以前のシーケンスに関連付けるステップ
をさらに含む、請求項11から14のいずれか一項に記載の方法。
【請求項１６】
ユーザ対話の第1の現在のシーケンスが完了していると前記判定するステップが、
アクションの現在のシーケンス内の現在のアクションが、自動化を受けない入力を含むと判定するステップ
を含む、請求項11から15のいずれか一項に記載の方法。
【請求項１７】
ユーザ対話の第1の現在のシーケンスが完了していると前記判定するステップが、
ユーザがモバイルアプリケーションを終了したと判定するステップ
を含む、請求項11から16のいずれか一項に記載の方法。
【請求項１８】
少なくとも1つのプロセッサと、
命令を記憶したメモリと
を含む、
システムであって、前記命令が、前記少なくとも1つのプロセッサによって実行されると、前記システムにユーザインターフェースを生成させ、前記ユーザインターフェースが、
アクションのショートカットシーケンスの記録を開始することであって、アクションのシーケンス内の各アクションが、ユーザインターフェースを用いたユーザ対話のハイレベル記述である、開始することと、
アクションのシーケンス内のアカウントデータが前記アクション内に含まれるべきであるという指示を受信することと、
アクションの以前のシーケンスの共有が許可されるという指示を受信することと
を行うように構成される、システム。
【請求項１９】
前記ユーザインターフェースが、
アクションの以前に記憶されたシーケンスをクリアにする
ようにさらに構成される、請求項18に記載のシステム。
【請求項２０】
前記ユーザインターフェースが、
アクションの前記ショートカットシーケンスを名称変更する
ようにさらに構成される、請求項18または19に記載のシステム。
【請求項２１】
前記ユーザインターフェースが、
前記システムがアクションのシーケンスを取得するアプリケーションを選択する
ようにさらに構成される、請求項18から20のいずれか一項に記載のシステム。
【請求項２２】
前記ユーザインターフェースが、
アクションの以前のシーケンスが共有され得るという指示を受信する
ようにさらに構成される、請求項18から21のいずれか一項に記載のシステム。
【請求項２３】
少なくとも1つのプロセッサと、
命令を記憶したメモリと
を含むシステムであって、前記命令が、前記少なくとも1つのプロセッサによって実行されると、前記システムに、請求項1から17のいずれか一項に記載の方法を実行させる、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その開示が参照により本明細書に組み込まれている。Smart Assist for Repeated Actionsと題する、2016年12月19日に出願した米国出願第15/383,966号の継続であり、その優先権を主張するものである。
【背景技術】
【０００２】
多くのユーザは、ピザの注文、タクシー/自動車サービスの要求、銀行取引明細書のダウンロード、公共交通機関の購入など、モバイルデバイスに対して一定のタスクを反復する。これらのタスクに対して、ユーザがタスクを実行するたびに、ユーザは、アクションのシーケンスによって表されるワークフローを反復する。
【発明の概要】
【課題を解決するための手段】
【０００３】
システムおよび方法は、ユーザが反復するワークフローを認識し、ユーザがそれらのワークフローをいつ反復し始めるかを理解し、そのシーケンスを自動的に完了することを提示する。ワークフローは、アクションのシーケンスとして表される。シーケンス内の各アクションは、以前に完了したワークフローとの比較をより強固にするために、たとえば、スクリーン座標または画素位置を参照せずに、ハイレベルで記述される。システムは、現在のワークフローを、完了していない場合ですら、以前に実行されたワークフローと比較して、現在のワークフローが以前に実行されたアクションのシーケンスを表すかどうかを判定することができる。現在のワークフローが十分に類似する場合、システムは、ユーザに対してワークフローを再現することを提示することができる。いくつかの実装形態では、システムは、現在のワークフローおよび類似の以前のワークフローに対する信頼性スコアを計算することもでき、首尾よくワークフローを自動的に完了することができることをシステムが確信している場合のみ、ワークフローを再現することを提示することができる。いくつかの実装形態は、ユーザが、アクションのシーケンスとして表される、反復ワークフローのうちの1つまたは複数を、たとえば、ホームスクリーン上にショートカットとして、アプリオプションとして、かつ/または音声コマンドとして保存することを可能にし得る。
【０００４】
本開示のいくつかの態様によれば、方法は、モバイルアプリケーションを用いたユーザのアクションの現在のシーケンスがユーザのアクションの以前のシーケンスに類似すると判定するステップと、以前のシーケンスの再現性を反映する信頼性スコアを計算するステップとを含む。この方法はまた、信頼性スコアが信頼性しきい値を満たすとき、以前のシーケンスを使用してユーザのアクションの現在のシーケンスを完了するための承認を要求するプロンプトの表示を開始するステップと、完了の承認の指示の受信に応じて、以前のシーケンスを完了するステップとを含む。
【０００５】
本開示のいくつかの態様によれば、方法は、ユーザ対話の第1の現在のシーケンスがユーザ対話の以前のシーケンスに対する類似性しきい値を満たすことができないと判定するステップと、アクションの第1の現在のシーケンスが完了していると判定するステップと、第1の現在のシーケンスを第1の以前のシーケンスとして保存するステップとを含む。この方法はまた、第1の以前のシーケンスに対する類似性しきい値を満たすとして第2の現在のシーケンスを識別するステップと、第1の以前のシーケンスをショートカットとして保存するための承認を要求するプロンプトの表示を開始するステップとを含む。
【０００６】
本開示のいくつかの態様によれば、システムは、少なくとも1つのプロセッサと、命令を記憶したメモリとを含み、命令は、少なくとも1つのプロセッサによって実行されると、システムに、ユーザインターフェースを生成させる。ユーザインターフェースは、アクションのショートカットシーケンスの記録を開始することであって、アクションのシーケンス内の各アクションが、ユーザインターフェースを用いたユーザ対話のハイレベル記述である、開始することを行うように構成される。ユーザインターフェースはまた、アクションのシーケンス内のアカウントデータがアクション内に含まれるべきであるという指示を受信するように構成され得る。ユーザインターフェースはまた、アクションの以前のシーケンスの共有が許可されるという指示を受信するように構成され得る。ユーザインターフェースはまた、アクションの以前に記憶されたシーケンスをクリアするように構成され得る。ユーザインターフェースはまた、アクションのショートカットシーケンスを名称変更するように構成され得る。ユーザインターフェースはまた、システムがアクションのシーケンスを取得するアプリケーションを選択するように構成され得る。ユーザインターフェースはまた、アクションの以前のシーケンスが共有され得るという指示を受信するように構成され得る。
【０００７】
1つの一般的な態様では、コンピュータ可読記憶デバイス上で具現されるコンピュータプログラム製品は、基板内に形成された少なくとも1つのプロセッサによって実行されると、モバイルデバイスに、開示する方法、動作、またはプロセスのうちのいずれかを実行させる命令を含む。別の一般的な態様は、ユーザが、モバイルデバイス上で実行される何のアクションがいつ、将来潜在的に反復されるアクションと比較するためにワークフロー内に記憶され得るかを制御およびカスタマイズすることを可能にする、ユーザインターフェースを備えたシステムおよび/またはユーザインターフェースを生成するための方法を含む。別の一般的な態様は、実質的に図面のうちの少なくとも1つにおいて示され、かつ/またはそれに関して説明するように、かつ特許請求の範囲内により完全に記載されるように、アクションを完了する際の支援をいつ提示するかを判定するためのシステムおよび/または方法を含む。
【０００８】
本明細書で説明する主題の実装形態のうちの1つまたは複数は、以下の利点のうちの1つまたは複数を実現するように実装され得る。一例として、実装形態は、アクションの頻繁に使用されるシーケンスを反復するためのショートカットを提供する。ショートカットは、ユーザによって明示的に反復され得るか、または過去に実行されたアクションの類似のシーケンスの分析に基づいてユーザに示唆され得る。ユーザがショートカットを開始するとき、システムは、ショートカットによって表されるワークフローを自動的に完了する。別の例として、システムは、反復ワークフローを識別し、ユーザに対してワークフローを自動的に完了することを提示することができる。自動完了のそのような例は、ワークフローを完了する時間を削減し、ワークフローを完了するために必要なユーザ入力を低減または除去することによって、バッテリー使用、処理サイクル、RAMメモリ使用、および他のシステムリソースの使用を低減させる。したがって、継続的および/または誘導型ヒューマンマシン対話プロセスが提供され得る。プロセスは、技術的なタスクを実行する際の支援をユーザに提供し得る。ユーザは、モバイルデバイスなどの技術システムを適切に操作する際にやはり支援され得る。改善されたヒューマンコンピュータ対話が提供され、技術的タスクを実行するためにユーザに必要とされる入力が低減される。アクションのシーケンスとしてワークフローを記録するためのフレームワークは、フレキシブルであり、アクションは、ハイレベルで取得され、ユーザインターフェースのレイアウトに対する変更、たとえば、コントロールボックスまたは入力テキストボックスの移動およびシーケンス内のアクションの順序の変更にもかかわらず、類似のシーケンスが識別されることを可能にする。いくつかの実装形態は、粒度の細かい制御機構を提供し、たとえば、ユーザが、シーケンスの一部として何の情報を取得することができるかまたはできないか、シーケンスを無効化するかまたは共有するか、シーケンスをいつ取得するかなどを判定することを可能にする。
【０００９】
1つまたは複数の実装形態の詳細は、添付の図面および以下の説明に記載される。他の特徴は、説明および図面から、かつ特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１０】
【図１】開示する主題による、例示的なシステムを示すブロック図である。
【図２】一実装形態による、スマートアシストプロンプトを備えたモバイルコンピューティングデバイスの例示的なディスプレイを示す図である。
【図３】一実装形態による、ショートカットプロンプトを備えたモバイルコンピューティングデバイスの例示的なディスプレイを示す図である。
【図４】一実装形態による、アクションエージェントに関するパラメータを選択するための例示的なユーザインターフェースを示す図である。
【図５】開示する実装形態による、反復アクションを識別し、スマートアシストを提供するための例示的なプロセスのフロー図である。
【図６】説明する技法を実装するために使用され得るコンピュータデバイスの一例を示す図である。
【図７】説明する技法を実装するために使用され得る分散型コンピュータデバイスの一例を示す図である。
【発明を実施するための形態】
【００１１】
様々な図面における同様の参照番号は同様の要素を示す。
【００１２】
コンピューティングデバイス、特に、モバイルデバイス上でより効率的に処理するためのシステムは、ユーザが反復ワークフローおよび反復可能なワークフローをいつ開始したかを認識し、ユーザが、ユーザからのさらなる入力なしにまたは最小限の入力で、ワークフローを完了するようにデバイスに命令することを可能にする。例示的なシステムは、ユーザがモバイルアプリケーションに提供した入力またはウェブサイト、ならびに何のテキスト、画像、およびサウンドがアプリケーションによってユーザに提供されたかを観測する。例示的なシステムは、スクリーンレイアウトおよびユーザインターフェースの様々な部分(たとえば、バナー)に対する小さい変更がシーケンスに影響を及ぼさないように、ワークフローを表すアクション(入力、応答など)のシーケンスをハイレベルで記録する。システムは、何のシーケンスが取得されるかに対してユーザ制御を提供する。
【００１３】
例示的なシステムは、ワークフロー記述、たとえば、アクションのシーケンスを記憶することができ、部分的に機械学習され得る、類似のエンジンを使用して、ユーザが以前のシーケンスをいつ反復しているかを判定することができる。類似性基準は、そのシーケンスに対して記録された入力信号を利用し、入力信号は、時刻、曜日、使用されたアプリケーション、入力の数およびタイプ、押下されたスクリーンのおおよそのエリア、入力順序などを含めて、シーケンスの任意の特性を含み得る。類似性エンジンは、シーケンス内のアクションの異なる順序を含めて、わずかに変更された構成要素が存在する場合ですら類似性を評価するように構成され得る。したがって、わずかに変更されたレイアウト、ウェブページ上の異なるバナー、またはモバイルアプリ内の異なる広告もしくは提示は、シーケンスを比較する能力に影響を及ぼさない。類似性エンジンは、たとえば、編集距離に基づき得る。
【００１４】
システムが、アクションのシーケンスが以前のシーケンスに十分類似すると判定するとき、システムは、ワークフローを完了することを提示することができる。いくつかの実装形態では、ワークフローの完了を提示する前に、システムは、システムがシーケンスによって表されるアクションを再現することができるかどうかについての予測を生成することができる。アクション予測器がこの予測を生成することができ、アクション予測器は、同じコンテキストにおける複数のシーケンスにわたるユーザの行動、アクションのコンテキスト、他のユーザ(利用可能な場合)による類似シーケンス、ユーザインターフェースがどの程度頻繁に変更されるかなど、いくつかの要因に基づいて信頼性スコアを提供する(完全にまたは部分的に学習された)別の機械学習モデルであってよい。信頼性スコアは、低、中、または高と分類され得る。信頼性スコアが低の場合、システムは、何のアクションも実行することができない。中である場合、システムは、完了が潜在的に示唆されるとしてそのシーケンスにフラグ付けすることができる。たとえば、システムは、ユーザが再度アクションを実行するかどうかを見るために「観測および学習」することができ、これは、次にそのアクションに遭遇したときに信頼性スコアを高めることができる。信頼性スコアが高の場合、システムは、そのシーケンスをユーザに示唆することができる。ユーザは、オプションで、ワークフローをショートカットとして保存することができる。ユーザがシステムにシーケンスを再現させることを選ぶ場合、システムは、それらのアクションを背景で再現するか、またはシーケンスによって何が入力されたか、およびアプリケーションによる応答をユーザに示すことができる。例示的なシステムは、何のアクションが取得されるか、何の情報が取得されるか、および保存されたシーケンスが共有のために利用可能であるかどうかに対してユーザ制御を提供することができる。
【００１５】
図1は、例示的な実装形態による、スマートアシストシステム100のブロック図である。スマートアシストシステムは、いくつかの反復ワークフローを完了するためのリソース消費およびユーザ入力を低減させるプロセスを提供する。いくつかの実装形態では、アシストシステム100は、システムが、首尾よく自動的に完了されない可能性があるワークフローを示唆することを回避するように、どの反復ワークフローを完了することを提示するかを知的に選択する。スマートアシストシステム100は、ユーザの承認により、いずれかのアプリケーション内で反復されたアクションのシーケンスが自動的に完了し得るように、または言い換えれば、スマートアシストによって完了し得るように、モバイルアプリケーションにわたって一貫したユーザ体験を提供する。いくつかの実装形態では、システム100はまた、モバイルデバイスのユーザがワークフローを別のユーザと共有すること、たとえば、ワークフローによって表されるアクションのシーケンスを別のモバイルデバイスに転送することを可能にするプロセスを含み得る。スマートアシストは、モバイルデバイスが、ユーザからの入力なしにまたは最小限の入力で、ワークフローを自動的に実行または完了することを可能にする。デバイスは人間のユーザよりも高速でワークフローを完了することができるため、これは、バッテリー消費、メモリ利用、プロセッササイクルなど、システムリソースを節約する。
【００１６】
スマートアシストシステム100は、モバイルデバイス180を含み得る。モバイルデバイス180は、従来の開放型ウェブベース環境ではなく閉鎖型モバイル環境で動作する、スマートフォンまたは他のハンドヘルドコンピューティングデバイス、タブレット、ウェアラブルコンピューティングデバイスなど、任意のモバイルパーソナルコンピューティングデバイスであってよい。いくつかの実装形態では、モバイルデバイスは、パーソナルコンピュータ、ネットブック、またはラップトップであってよい。モバイルデバイス180は、図6に示すようなコンピュータデバイス600の一例であり得る。モバイルデバイス180は、1つまたは複数の機械実行可能命令、またはいくつかのソフトウェア、ファームウェア、またはそれらの組合せを実行するように構成される基板内に形成された、1つまたは複数のプロセッサを含み得る。モバイルデバイス180は、オペレーティングシステム115を含み得る。モバイルデバイス180は、1つまたは複数のデータを、一時的、永続的に、反永続的に、またはそれらの組合せで記憶するように構成された、1つまたは複数のコンピュータメモリを含み得る。モバイルデバイス180は、したがって、ソフトウェア、ファームウェア、またはそれらの組合せの形で機械実行可能命令を表す、モバイルアプリケーション110、アクションアシスタント120、および/または設定UI140を含むアプリケーションを含み得る。モバイルデバイス180はまた、1つまたは複数の出力デバイス103を含み得る。出力デバイスは、視覚コンテンツを表示するためのディスプレイデバイスと、オーディオコンテンツを提示するためのスピーカとを含み得る。
【００１７】
モバイルデバイス180は、アクションアシスタント120を含み得る。アクションアシスタント120は、そのいずれもが「アプリケーション」と呼ばれることがある、1つまたは複数のモバイルアプリケーション、ウェブアプリケーション、および/またはウェブサイトにユーザが提供する入力を観察するように構成され得る。アクションアシスタント120は、アプリケーションがユーザに提供するテキスト、画像、およびサウンドを観測することもできる。ユーザのアクションは、タップ、スワイプ、テキスト入力、またはアプリケーションのユーザインターフェースと対話するためにユーザがとる任意の他のアクションなど、ユーザ入力ジェスチャを表す。たとえば、ユーザのアクションは、モバイルデバイス180のタッチスクリーンと対話するためにユーザがとる任意のアクションであってよい。ユーザのアクションは、マウス、キーボード、トラックパッド、マイクロフォンなど、入力デバイスを介してユーザが入力する任意のテキストまたは選択であってもよい。アクションアシスタント120は、これらの観測をハイレベルで取得し、取得された観測をアクションのシーケンスによって表されるワークフローとして記憶することできる。したがって、アクションのシーケンスは、ハイレベルで取得された、入力、結果、応答などを含み得る。ハイレベルで取得されたシーケンスは、ユーザが選択した画素ロケーションなどの詳細を含まない。むしろ、ハイレベルで取得されたアクションは、アクションを介してユーザが何を達成したかを識別する。たとえば、ピザ注文ワークフローは、以下のアクションのシーケンスとして取得され得る:
1. メインメニューに行く
2. 大型ピザを選択する
3. ペパロニおよびオリーブを追加して、大型ピザを修正する
4. 数量2を入力する
5. <カートに追加>制御を選択する
6. 大型ピザを選択する
7. ピーマン、玉ねぎ、オリーブ、およびマッシュルームを追加して、大型ピザを修正する
8. 数量1を入力する
9. <カートに追加>制御を選択する
10. <チェックアウト>制御を選択する
11. 保存された支払い情報を確認する
12 可能な限り早い配達時間を選択する
13. <注文確定>制御を選択する
14. アプリケーションを終了する
【００１８】
別の例として、ピザ注文ワークフローは、より構造化された手法を示す、以下のアクションのシーケンスとして取得され得る:
1. [select:main_menu]
2. [select:size.lg]
3. [select:topping.pep]&[selecttopping.bo]
4. [select:q.2]
5. [select:add_cart]
6. [select: size.lg]
7. [select:topping.gp]&[select:topping.o]&[select:topping.bo] &
select[topping.mush]
8. [select:q.l]
9. [select:add_cart]
10. [select:checkout]
11. [selected:ccl]
12. [select:del.asap]
13. [select:order]
14. [select:exit]
【００１９】
上記の2つの例で示したように、シーケンスは、アプリケーションが提供する内容に関する特徴(たとえば、トッピング制御およびその価格)とユーザが提供する入力に関する特徴(何の制御が選択されたか、かつどの価格であるか)とを含む。アクションアシスタント120は、あるアクションシーケンスと別のアクションシーケンスとの間の境界をいくつかの方法で判定することができる。たとえば、システムは、シーケンスを完了として指定するユーザからの明示的なコマンドに基づいてシーケンスが終了したと判定することができる。別の例として、システムは、ユーザが別のアプリケーションに切り替えること、またはユーザがアプリケーションを終了することに基づいて、シーケンスが終了したと判定することができる。別の例として、システムは、アプリケーションからの通知、たとえば、「注文は完了した」、「注文が受け取られた」、または何か同様のことを示すメッセージに基づいて、シーケンスが終了したと判定することができる。
【００２０】
アクションアシスタント120は、後で参照するための以前のシーケンスとしてアクションのシーケンスを、たとえば、以前のシーケンス170内に記憶することができる。アクションのシーケンスを記憶することに加えて、アクションアシスタント120は、シーケンスに関するメタデータを記憶することもできる。メタデータは、シーケンスに対する信号と呼ばれることもある。信号は、時刻、曜日、使用されるアプリケーション、入力の数およびタイプ、押下されたスクリーンのおおよそのエリア、入力の順序、デバイスが移動されたかどうかなどを含めて、シーケンスの任意の特性を含み得る。たとえば、シーケンスのコンテキストとして、アクションアシスタント120は、平日、時刻、その日が休日であるかどうかなどを含めて、アクションがいつ生じたかを示す、各アクションに対するタイムスタンプ、ユーザがどこにいたか、ロケーション履歴、以前に使用されたアプリケーション、アクションの以前のシーケンなどを示すロケーションスタンプを記録することができる。いくつかの実装形態では、信号は、一連の値、たとえば、一連の浮動小数点数、一連のテキストストリング、一連の列挙値などとして記憶されてもよい。システムは、メタデータを、たとえば、以前のシーケンス170内の、アクションのシーケンスとともに記憶することができる。
【００２１】
アクションアシスタント120は、部分的に学習され得る類似性エンジン155と、以前のシーケンス170とを使用して、ユーザがアクションの反復をいつ開始するかを判定することができる。類似性エンジン155は、アクションの現在のシーケンスと以前のシーケンス170のうちの1つまたは複数との間の類似性基準を生成する予測モデルであり得る。類似性エンジン155は、アクションの現在のシーケンス、たとえば、以前のシーケンス170からの、アクションの以前のシーケンスのうちの1つまたは複数、およびシーケンスの各々に関するメタデータまたは信号を入力として利用することができる。いくつかの実装形態では、メタデータは、特徴ベクトルとして提供され得る。類似性エンジン155は、現在のシーケンスと以前のシーケンスの各々との間の類似性基準を提供する。類似性基準は、たとえば、編集距離など、いくつかの異なる基準に基づいてよい。いくつかの実装形態では、システムは、以前のシーケンスが同じアプリケーションを共有するなど、アクションの現在のシーケンスと何らかの最小限の共通性を有するときのみ、アクションの以前のシーケンスを選択することができる。類似性エンジン155は、わずかに変更された構成要素が存在する場合ですら類似性を評価するように構成される。したがって、ウェブページ上の異なるバナー、モバイルアプリ上の異なる広告または提示、わずかに変更されたレイアウト、またはアクションの異なる順序は、2つのシーケンスを比較する類似性エンジン155の能力に影響を及ぼさない。いくつかの実装形態では、類似性基準は、機械学習アルゴリズムによって生成され得る。いくつかの実装形態では、類似性エンジン155は、サーバ、たとえば、サーバ190から周期的にモバイルデバイス180に提供され得る。
【００２２】
アクションアシスタント120は、類似性基準を使用して、アクションの現在のセットが1つまたは複数の以前のセットに十分類似するかどうかを判定する。たとえば、アクションアシスタント120は、基準を類似性しきい値と比較することができる。しきい値は、システムが過去に良好な予測を行ったかどうか、以前のシーケンスがショートカットとして保存されているかどうか、どの程度の数の以前のシーケンスが互いに、ならびに現在のシーケンスに整合するかなど、いくつかの要因に基づいて調整され得る。類似性エンジン155が計算する類似性基準は、現在のワークフローがどの程度完了しているかに左右され得る。たとえば、特定のレストランからピザを注文するために使用されるモバイルアプリケーションを単に開くことは、その特定のアプリケーションに対する以前のシーケンスに十分類似し得るが、これは、複数の以前のシーケンスはそのアプリケーションに関して十分類似するためである。したがって、類似性エンジン155は、ユーザがそのアプリケーションを使用して再度同じアクションを実行することを望むことになるという高い信頼性を有し得る。対照的に、ユーザは、予約モバイルアプリケーションを使用して、複数の異なるレストラインにおいて予約を行う場合がある。したがって、予約アプリケーションを単に開くことは、さらなるコンテキストがない場合、任意の1つの特定の以前のシーケンスに十分類似しない。たとえば、その月の同じ時間に、または特定のロケーションにいるときに、ユーザが同じレストランに対して予約を行う場合、アクションの現在のシーケンスがそれらの信号を共有するとき、これらの信号を使用して、そのレストランに対する特定の以前のシーケンスに対して類似性基準を高めることができる。
【００２３】
アクションアシスタント120が、アクションの現在のシーケンスが以前のシーケンスに十分類似すると判定するとき、アクションアシスタント120は、システムが以前のシーケンスによって表されるアクションを再現し得るかどうかに関する予測を生成することができる。アクションアシスタント120は、アクション予測器150を使用して予測を生成することができる。いくつかの実装形態では、アクション予測器150は、信頼性スコアとして類似性基準を使用することができる。言い換えれば、類似性基準は、類似性しきい値を満たす場合があり、類似性しきい値が満たされる場合、類似性しきい値を1つまたは複数の信頼性しきい値と比較することができる。いくつかの実装形態では、アクション予測器150は、別個の信頼性スコアを提供する、完全にまたは部分的に学習された、別の機械学習モデルであってよい。信頼性スコアは、同じコンテキストにおける複数のシーケンスにわたるユーザの行動、ワークフローのコンテキスト、他のユーザ(利用可能な場合)による類似シーケンス、そのワークフローに対してユーザインターフェースがどの程度頻繁に変更されるか、そのワークフローに対するユーザインターフェースにおける選択肢の変動性など、いくつかの要因に基づいてよい。信頼性スコアは、低、中、または高として分類され得る。信頼性スコアが低の場合、アクションアシスタント120は、そのワークフローをさらに追跡することができなく、そのワークフローの再現を提示しない。信頼性スコアは低の場合があるが、これは、シーケンス内の以前のユーザのアクションを確実に再現することが困難であり過ぎるためである。信頼性スコアが中として分類される場合、システムは、完了が潜在的に示唆されるとしてシーケンスにフラグ付けすることができる。たとえば、いくつかの実装形態では、システムは、「観察および学習」モードに入り、ユーザがそのワークフローを再度実行するかどうかを判定することができる。いくつかの実装形態では、コンピューティング環境(たとえば、ユーザ設定、特定のアプリケーション)に関する属性がそのようなモードを防止しない限り、システムは「観測および学習」モードであり得る。アクションアシスタント120が次にそのシーケンスに遭遇するとき、アクション予測器150は信頼性スコアを高めることができる。同じシーケンスに最低回数遭遇すると、信頼性スコアは、中の代わりに、高として分類され得る。他方で、アクションアシスタント120は、一定の期間の後、そのシーケンスが経時的に反復されていない、たとえば、シーケンスが頻繁に変更されると判定することができ、アクション予測器150は、信頼性スコアを中から低に下げることができる。中の信頼性スコアは、アクションのシーケンスが完了し得るかどうかに関する不確定性を示す。
【００２４】
信頼性スコアが高として分類されている場合、アクションアシスタント120は、ユーザに対してアクションの完了を提示するプロンプトを開始し得る。ユーザがシステムにアクションを完了させる承認を示した場合、アクションアシスタント120は、アクションのシーケンス、言い換えれば、ワークフローをショートカットとして、たとえば、ショートカットシーケンス172内に保存する機会をユーザに与えるプロンプトを開始することもできる。ショートカットシーケンスは、ユーザがショートカットとして指定した以前のシーケンスであり得る。これは、プロンプトに応じて行われてよく、または、シーケンスが完了したときにショートカットとして指定されたアクションのシーケンスをユーザが記録する明示的なモードで行われてもよい。各ショートカットシーケンスは、ユーザが音声コマンドを介してショートカットを開始することができるように、それぞれの音声コマンドに関連付けられ得る。ショートカットは、モバイルデバイスのホームスクリーン上、またはモバイルデバイスのユーザインターフェース内の何らかの他のロケーション上に位置し得る制御、たとえば、選択可能なアイコンに関連付けられてもよい。いくつかの実装形態では、ショートカットシーケンスは、名称または記述に関連付けられ得る。いくつかの実装形態では、ショートカットシーケンスは、ユーザによって選択される、長い押下およびスワイプなど、特定の入力シーケンスに関連付けられ得る。
【００２５】
ユーザがシステムにワークフローを完了させること、たとえば、以前のシーケンスを再現することを選ぶとき、アクションアシスタント120は、以前のシーケンスを使用してワークフローを完了する。したがって、ワークフローの再現は、ワークフローを仕上げること、たとえば、アクションの現在のシーケンス内にはないが、アクションの以前のシーケンス内にある、シーケンス内のアクションを実行することを意味する。ユーザがショートカット(たとえば、音声コマンド、またはショートカットに対するアイコンの選択)を使用してワークフローを開始する場合、ワークフローの再現は、ショートカットに対するアクションのシーケンス内に含まれるアクションのすべてを実行することを含む。いくつかの実装形態では、アクションアシスタント120は、背景内にアクションを再現することができる。これは、アプリケーションが生成した最終的なユーザインターフェースをアクションのシーケンスの終了時にのみ表示することを含み得る。これはまた、アクションを自動的に実行する間に、ユーザインターフェースのすべてではなく、いくつかの断続的ユーザインターフェースを表示することを含み得る。いくつかの実装形態では、アクションアシスタント120は、ユーザが入力を実際に提供していたかのように、すなわち、アクションを実行する際にアクションアシスタント120によって何が入力されるか、および入力に応じてアプリケーションによって生成されたユーザインターフェースをユーザに示して、ワークフローを再現することができる。
【００２６】
ワークフローを再現するために、アクションアシスタント120は、アクションの現在のシーケンスに類似するアクションの以前のシーケンスを使用して、以前のシーケンスに関連するアプリケーションに対して入力を提供する。アクションアシスタント120はオペレーティングシステムの一部であるため、アクションアシスタント120は、アプリケーション(たとえば、モバイルアプリケーション、ウェブアプリケーション、またはウェブサイト)が生成したユーザインターフェース構成要素に対するアクセスを有する。したがって、たとえば、アクションアシスタント120は、ユーザインターフェース内のテキストボックスを識別し、そのテキストボックスに対してテキストを提供することができるか、または制御を見い出し、制御の選択をシミュレートすることができる。アクションのシーケンスの再現は、ユーザ行動、たとえば、クリック、タップ、タイプなどをシミュレートすることによって、または他の従来の方法によって達成され得る。
【００２７】
アクションアシスタント120は、アシスタントパラメータ130を使用して、アクションのシーケンスをいつ観測および記憶するか、アクションのシーケンスとともに何の種類の情報を記憶するか、アクションを再現する際に何の情報を使用するか、シーケンスが共有され得るかどうかなどを判定することができる。たとえば、アシスタントパラメータ130は、アクションアシスタント120がアクティブである1つまたは複数のアプリケーションを示すパラメータを含み得る。別の例として、アシスタントパラメータ130は、アクションアシスタント120が決してアクティブではない1つまたは複数のアプリケーションを示すパラメータを含み得る。アクションアシスタント120がアクティブでない場合、アクションアシスタントは、アクションのシーケンスを観測、取得、または保存せず、したがって、シーケンスの完了を提示しない。
【００２８】
アシスタントパラメータ130は、アクションのシーケンスの一部として取得されない入力を識別する1つまたは複数のパラメータを含み得る。たとえば、ユーザは、アクションアシスタント120が、ユーザ名、パスワード、アカウント番号、ユーザ識別子などを記録または記憶することができないことを特定し得る。アクションアシスタント120が取得/記述/記録されないアクション内の入力を観測するとき、アクションアシスタント120は、アクションの現在のシーケンスを終了することができる。言い換えれば、いくつかの実装形態では、取得されない入力はシーケンスを終了させる。シーケンスは、完了と見なされる場合があるが、これは、いずれのさらなるアクションも自動的に再現され得ないためである。いくつかの実装形態では、アクションアシスタント120は、アクションが入力なしに取得され得るように、ユーザが提供した入力の代わりにトークンを使用することができる。そのような実装形態では、アクションアシスタント120は、アクションを自動的に再現することができず、アクションアシスタント120は、完全なシーケンスを再現し続けるために、ユーザがトークンによって表される入力を提供することを必要とすることになる。いくつかの実装形態では、支払い情報またはアカウント情報など、いくつかの入力は、そのような情報がアクションのシーケンス内のアクションに対して収集されることをユーザが具体的に要求しない限り、デフォルトによってアクションに対して収集され得ない。
【００２９】
モバイルデバイス180はまた、設定UI140を含み得る。設定UI140は、ユーザがアシスタントパラメータ130内のパラメータを閲覧、追加、または変更することを可能にするように構成され得る。言い換えれば、いくつかの実装形態では、設定UI140は、モバイルデバイス180のユーザにアクションアシスタント120を制御する能力を提供し得る。設定UI140が提供する粒度のレベルは、実装形態に左右され得る。たとえば、設定UI140は、ユーザが、モバイルアプリケーション110またはモバイルアプリケーション110のタイプを選択し、そのアプリケーション110またはアプリケーションのタイプに対してアクションアシスタント120をオンまたはオフにすることを可能にし得る。別の例として、設定UI140は、ユーザがアクションのシーケンス内に含まれた入力に制限を設けることを可能にし得る。別の例として、設定UI140は、ユーザがアクションアシスタント120を無効化することを可能にし得る。別の例として、設定UI140は、ユーザが入力制限のレベルを選択することを可能にし得る。制限は、モバイルデバイス180上のアクションのシーケンスの取得を可能にし得るが、それらのシーケンスの共有を防止するかまたは無効可能にする。たとえば、一部のユーザは、ショートカットシーケンス172を別のデバイスと共有するか、または以前のシーケンスをサーバ190と共有して、類似性エンジン155および/またはアクション予測器150をトレーニングおよび精製するのを助けることができる。他のユーザは、設定UI140を使用して、いずれの共有も防止することができる。いくつかの実装形態では、設定UI140は、ユーザが以前のシーケンス170内のアクションのいくつかのまたはすべてのシーケンスを削除することを可能にし得る。いくつかの実装形態では、アクションアシスタント120の開発者が設定UI140を提供し得る。いくつかの実装形態では、モバイルアプリケーション110の開発者がモバイルアプリケーション110に関係する設定UI140のいくつかの機能を提供し得る。言い換えれば、ユーザがモバイルアプリケーション110をダウンロードおよびインストールするとき、モバイルアプリケーションは、ユーザが、モバイルアプリケーション110に対してアクションアシスタント120をアク
ティブまたは非アクティブにすることを可能にし得る。設定UI140は、ショートカットシーケンスを明示的に記録するための制御またはオプションを含んでもよい。これは、ユーザが、アクションのセットを明示的に実行し、そのセットをショートカットシーケンスとして保存する特殊なトレーニングモードである。他のショートカットシーケンスと同様に、ユーザは、ショートカットに対して名称、制御、および/または音声コマンドを保存することが可能であり得る。
【００３０】
設定UI140、類似性エンジン155、アクション予測器150、およびアクションアシスタント120は、モバイルデバイス180上で実行する別個のアプリケーションとして示されているが、設定UI140、類似性エンジン155、アクション予測器150、およびアクションアシスタント120内で識別される構成要素のうちの1つまたは複数は、オペレーティングシステム115の一部であり得ることを理解されたい。いくつかの実装形態では、アクションアシスタント120、類似性エンジン155、アクション予測器150、および設定UI140のすべての構成要素は、オペレーティングシステム115の一部であり得る。いくつかの実装形態では、設定UI140の構成要素のうちの1つまたは複数は、サーバ190において実行されてよく、したがって、たとえば、ユーザは、ユーザがログインする任意のモバイルデバイスに対するアシスタントパラメータ130を更新するためにダウンロードされるアクションアシスタントプロファイルを有し得る。
【００３１】
スマートアシストシステム100はサーバ190を含んでよく、サーバ190は、複数のコンピューティングデバイスにわたって分散され得る、いくつかの異なるデバイス、たとえば、標準サーバ、そのようなサーバのグループ、またはラックサーバシステムの形をとる、1つまたは複数のコンピューティングデバイスであり得る。加えて、サーバ190は、パーソナルコンピュータ、たとえば、ラップトップコンピュータ内で実装され得る。サーバ190は、図6に示すようなコンピュータデバイス600または図7に示すようなコンピュータデバイス700の一例であり得る。サーバ190は、モバイルデバイス180のユーザに関するユーザアカウントを含んでよく、ユーザに関して、アシスタントパラメータプロファイルなどの情報を記憶するために使用され得る。サーバ190はまた、ユーザ許可により、以前のシーケンスを受信することもできる。サーバ190は、以前のシーケンスを使用して、たとえば、ユーザ間トレーニングによって、類似性エンジン155をより良好にトレーニングおよび改善することができる。サーバ190は、以前のシーケンスを使用して、たとえば、ユーザ間トレーニングによって、アクション予測器150をより良好にトレーニングおよび改善することができる。いくつかの実装形態では、サーバ190は、数人のユーザにわたってモバイルアプリケーションに対するパターンが判定されるとき、モバイルアプリケーションの開発者に通知するように構成され得る。たとえば、多くのユーザにわたって以前に非特定化されたシーケンスを分析することによって、サーバ190は、ユーザの90%が同様のワークフロー、すなわち、アクションの類似するシーケンスを共有すると判定することができる。そのような高い共通性は、ワークフローに対するユーザニーズを明らかにし、システムは、ワークフローが自然に提示され得る(これは、アクションのシーケンスの再現よりもさらに高速に実行され得る)ように、アプリケーションの開発者にそのワークフローについて通知することができる。
【００３２】
モバイルデバイス180は、ネットワーク160を介してサーバ190と、かつ他のモバイルデバイスと通信中であり得る。ネットワーク160は、たとえば、インターネットであってよく、またはネットワーク160は、たとえば、ゲートウェイデバイス、ブリッジ、スイッチなどを使用して実装される、ワイヤードまたはワイヤレスのローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)であってよい。ネットワーク160は、セルラー通信ネットワークを表す場合もある。ネットワーク160を介して、サーバ190は、モバイルデバイス180と通信し、モバイルデバイス180との間でデータを送信することができ、モバイルデバイス180は、サーバ190および他のコンピューティングデバイスと通信し、サーバ190および他のコンピューティングデバイスへデータを送信することができる。
【００３３】
スマートアシストシステム100は、1つの例示的な構成を表し、実装形態は、他の構成を組み込んでよい。たとえば、いくつかの実装形態は、設定UI140、アクションアシスタント120、オペレーティングシステム115、モバイルアプリケーション110、類似性エンジン155、およびアクション予測器150の構成要素のうちの1つまたは複数を単一のモジュールまたはエンジン結合させることができ、設定UI140の構成要素のうちの1つまたは複数は、サーバ190によって実行され得る。別の例として、アシスタントパラメータ130および以前のシーケンス170など、データストアのうちの1つまたは複数は、単一のデータストア内に結合されてよく、複数のデータストアまたはファイルにわたって分散されてよく、複数のコンピューティングデバイスにわたって分散されてよく、またはサーバ190において記憶されてもよい。
【００３４】
スマートアシストシステム100が、ユーザ特定のデータを収集および記憶するか、または個人情報を使用することができる限り、プログラムまたは特徴がユーザ情報(たとえば、ユーザのソーシャルネットワークに関する情報、社会的アクションまたはアクティビティ、ユーザ入力アクション、職業、ユーザの選好、またはユーザの現在のロケーション)を収集するかどうかを制御する機会、またはユーザにより関連し得るコンテンツを受信するかどうか、かつ/またはどのように受信するかを制御する機会をユーザに提供することができる。加えて、一定のデータは、個人的に識別可能な情報が除去されるように、そのデータが記憶または使用される前に、1つまたは複数の方法で扱われてよい。たとえば、ユーザの識別は、そのユーザに関して個人的に識別可能な情報が判定され得ないように扱われてよく、または(都市、郵便番号、または州レベルでなど)ロケーション情報が取得される場合、ユーザの特定のロケーションが判定され得ないように、ユーザの地理的ロケーションは一般化されてよい。したがって、ユーザは、ユーザ関する情報がどのように収集されるか、およびスマートアシストシステムによって情報がどのように使用されるかに対して制御を有し得る。
【００３５】
アクションおよび他の機能性の取得がデバイススクリーン上に表示されている画像のコンテンツ、レイアウト、機能性、または他の態様の使用権利と一貫するかどうかを判定するための能力が提供され得ること、およびそれに応じて、設定能力が提供され得ることに、ここで留意されたく、かつこのことは、本明細書で説明する様々な実施形態に適用可能である。たとえば、いくつかのアシスタントパラメータ130は、アクションのシーケンスを保存することが、サービス条件、コンテンツライセンス、または使用に対する他の制限に反する可能性がある場合、アクションのシーケンスの保存を制限し得る。そのような設定は、新しいサービスまたはデバイス使用許可を確立するときにユーザによって、またはアプリインストールルーチンなどによってなど、手動でまたは自動的に行われてよく、設定UI140によって修正することはできない。
【００３６】
図2は、一実装形態による、スマートアシストプロンプトを備えたモバイルコンピューティングデバイスの例示的なディスプレイを示す。図1のシステム100など、スマートアシストシステムは、ディスプレイ200内にプロンプト205を生成することができる。図2の例では、ユーザは、ピザ店アプリケーションを前回少なくとも1度使用して、大型薄クラストのペパロニピザおよび大型野菜ピザを注文した。したがって、図2の例では、システムは、注文を完了するために、ユーザが提供した入力を取得するアクションの少なくとも1つの以前のシーケンスを記憶している。たとえば、アクションの以前のシーケンスは(たとえば、以前のシーケンス170内に)以下のように記憶され得る:
1. ピザ店アプリケーションを開く
2. <カスタマイズ>制御を選択する
3. 大型サイズを選択し、薄クラストを選択する
4. <次>制御を選択する
5. ペパロニおよびオリーブを選択する
6. 数量2を入力する
7. <カートに追加>制御を選択する
8. <注文を続ける>制御を選択する
9. <野菜>制御を選択する
10. 数量1を入力する
11. <カートに追加>制御を選択する
12. <チェックアウト>制御を選択する
13. 保存された支払い情報を確認する
14. 可能な限り早い配達時間を選択する
15. <注文確認>制御を選択する
16. アプリケーションを終了する
【００３７】
システムは、いくつかの要因に基づいて、この以前のシーケンスが現在のシーケンスに類似すると判定した場合がある。たとえば、システムのユーザは、金曜の夜、および金曜の夜に対応する現在の時刻に、複数回この注文を行った可能性がある。別の例として、ユーザは、過去にのみこの注文を行った可能性がある。これらの場合にはいずれも、システムは、ユーザがピザ店アプリケーションを開くとすぐにプロンプト205を提示することができる。別の例として、システムは、ユーザが2つの大型薄クラストピザをカートに入れた後で、その注文が上記のアクションの以前のシーケンスに類似すると判定することができる。これは、小型ピザに対する注文を含む、ピザ店アプリケーションに対する別のシーケンスが存在するときに生じ得る。当然、他の要因を使用して、現在のシーケンスが類似すると判定することが可能である。
【００３８】
現在のシーケンスが以前のシーケンスに類似すると判定することに加えて、システムは、そのアクションが再現され得る高い信頼性が存在すると判定することができる。たとえば、ピザ店アプリケーションユーザインターフェースは頻繁に変更されない可能性があり、かつ/またはアプリケーション内に確実なユーザ行動の履歴が存在する可能性がある。システムが、アクションの現在のシーケンスが以前のシーケンスに十分類似すると決定すると、システムは、プロンプト205の表示を開始することができる。プロンプト205は、再現されることになるアクションのシーケンスの記述210を含み得る。記述210は、従来の技術を使用して生成されたシーケンスのハイレベル記述のテキストバージョンである。プロンプト205はまた、承認制御215と非承認制御220とを含み得る。ユーザが非承認制御220を選択した場合、いくつかの実装形態では、システムは、システムがこのユーザに対してアクションのシーケンスの完了を再度提示しないように、たとえば、属性または信頼性を低い値に設定することによって、そのシーケンスを拒否とマークすることができる。いくつかの実装形態では、ユーザが非承認制御220を選択するとき、システムは、信頼性しきい値を上げて、システムにより低い頻度でシーケンスを提示させることができる。ユーザが承認制御215を選択する場合、システムはアクションの再現を開始することができる。たとえば、システムは、アクションの以前のシーケンスにおいてユーザが提供した入力をシミュレートすることができる。アクションはハイレベルで記録されるため、システムは、レイアウトに対する変更にかかわらず、アクションを再現することができる。しかしながら、制御に影響を及ぼすインターフェース、たとえば、入力ボックス、ドロップダウンメニューなどに対する変更は、アクションを再現する能力に影響を及ぼし得る。いくつかの実装形態では、ディスプレイ200は、アクションが再現されるにつれてそれらのアクションを示すことができる。いくつかの実装形態では、ディスプレイ200は、たとえば、ピザ店アプリケーションによって生成される介在スクリーンを表示せずに、または一定のスクリーン、たとえば、注文が行われたことを確認するスクリーンのみ表示して、シーケンスを背景内に再現することができる。別の状況では、ディスプレイにレンダリングされることになるいくつかのスクリーンは、代わりに、アクションアシスタントによって処理されるため、そのような実装形態は、システムリソースの使用をさらに低減させる。
【００３９】
図3は、一実装形態による、ショートカットプロンプトを備えたモバイルコンピューティングデバイスの例示的なディスプレイを示す。図1のシステム100など、スマートアシストシステムは、ディスプレイ300内にプロンプト305を生成することができる。図3の例では、ユーザは、図2の承認制御215を選択した可能性があり、システムは、以前のシーケンスはショートカットシーケンスとして以前に保存されておらず、ユーザは、ショートカットに対して以前に非承認を示さなかったと判定することができる。以前のシーケンス内のアクションを再現する前に、システムは、その場合、プロンプト305を生成することができる。ショートカットプロンプト305は、承認制御310または325、非決定制御315、および/または非承認制御320を含み得る。ユーザが非承認制御320を選択した場合、システムは、ショートカットとして明示的に非承認されたとして以前のシーケンスをマークし、シーケンスの再現に進むことができる。これは、以前のシーケンスのステータスフラグ、もしくはプロパティ、または属性を介して行われてよい。したがって、ユーザはシーケンスをショートカットとして再度保存することを求められなくてよく、シーケンスは、図2のプロンプト205など、自動完了プロンプト内で提示され得る。
【００４０】
ユーザが非決定制御315を選択するとき、システムは、アクションの以前のシーケンスの再現を進めることができる。システムは、ユーザがアクションの以前のシーケンスを次に実行したとき、プロンプト305を再度提示することができる。ユーザが承認制御310を選択する場合、システムは、ショートカットシーケンスとしてアクションの以前のシーケンスを保存することができる。いくつかの実装形態では、これは、以前のシーケンスのステータスフラグまたは以前のシーケンスのプロパティまたは属性を介して達成され得る。いくつかの実装形態では、システムは、以前のシーケンスを別のデータストアに記憶することができるか、または別のデータストアに移動することができる。いくつかの実装形態では、承認制御310の選択は、システムに別のユーザインターフェースの表示を開始させることができ、これは、ユーザが、ショートカットに関する名称、アイコン、および/またはロケーションを提供することを可能にする。たとえば、システムは、ユーザが、ショートカットがホームスクリーン内、ウィジェットメニュー内、またはいくつかの他のロケーション内に含まれることを特定することを可能にし得る。いくつかの実装形態では、アイコンは、ピザ店モバイルアプリケーションに関するアイコンの修正されたバージョンであってよく、そのショートカットがピザ店モバイルアプリケーション内でアクションを再現するという視覚的指示を提供する。いくつかの実装形態では、プロンプト305は、ユーザにショートカットのための音声コマンドを記憶させるように構成された承認制御325を含み得る。音声コマンドは、ユーザが、音声アクティブ化によって、ショートカットを開始すること、すなわち、ショートカットシーケンスに関連するアクションを再現させることを可能にし得る。当然、他の実装形態は、ユーザが入力アクション、たとえば、ピザ店アプリケーションメインメニューのメニュー制御上の長い押下またはいくつかの他の入力アクションをショートカットに関連付けることを可能にし得る。
【００４１】
図4は、一実装形態による、アクションエージェントに関するパラメータを選択するための例示的なユーザインターフェースを示す。図1のシステム100など、スマートアシストシステムは、ユーザインターフェース400を生成することができる。いくつかの実装形態では、ユーザインターフェース400は、設定UI140によって生成され得る。いくつかの実装形態では、ユーザインターフェース400は、ウェブアプリケーションによって、たとえば、ユーザに対するアカウントにアクセスするサーバにおいて生成され得る。図4の例では、ユーザインターフェース400は、ユーザが、アクションエージェントが使用するパラメータを選択および調整することを可能にする。設定は、モバイルデバイス上で実行する任意のアプリケーションにわたって適用され得るか、または特定のアプリケーションに適用され得る。いくつかの実装形態では、各モバイルアプリケーションは、例示的なユーザインターフェース400に示した要素に類似した要素を備えた設定ユーザインターフェースを有し得る。そのような実装形態では、入力または削除されたパラメータは、その特定のモバイルアプリケーションに適用される。
【００４２】
図4の例では、ユーザインターフェース400は、ユーザのアクションのシーケンスをいつ収集および記憶するか、アクションをどのように扱うか(たとえば、共有可能であるか否か)、および何のタイプの情報を収集するかを判定するためにアクションアシスタントによって使用され得る様々なパラメータを特定するための制御を含む。いくつかの実装形態では、ユーザインターフェースは、アクションアシスタントを無効化するための制御410を含み得る。制御410は、ユーザがアクションアシスタントをオフにすることを可能にする。アクションアシスタントが無効化されるとき、シーケンスアクションは観測、取得、および記憶されないことになる。したがって、アクションアシスタントは、以前のシーケンスを自動完了するためのプロンプトを提供することができない。いくつかの実装形態では、アクションアシスタントの無効化は、ショートカットシーケンスをやはり無効化し得る。他の実装形態では、アクションアシスタントは、ショートカットがユーザによって起動されるとき、ショートカットシーケンスを依然として再現することができる。ユーザインターフェースはまた、共有パラメータを設定またはクリアする制御415を含み得る。共有パラメータが選択されるとき、アクションアシスタントは、サーバがユーザにわたって類似性エンジンおよび/またはアクション予測器に対して学習を実行することができるように、以前のシーケンスをサーバと共有することができる。当然、アクションアシスタントは、共有する前に以前のシーケンスから個人情報を除去することができる。たとえば、ユーザ名、支払い情報、アドレスなどは、そのような情報がシーケンス内に出現する場合、共有する前にトークンと置換され得る。共有パラメータは、ユーザが別のデバイスおよび/または別のユーザとショートカットシーケンスを共有することを可能にすることもできる。たとえば、ユーザは、そのユーザが所有する別のモバイルデバイスにショートカットシーケンスを送ることができる。別の例として、ユーザは、別のユーザのモバイルデバイスにショートカットシーケンスを送ることができる。別のユーザと共有される場合、アクションアシスタントは個人情報を除去することができる。
【００４３】
ユーザインターフェース400はまた、特定の入力が自動化を受けないかどうかを示すためのいくつかの制御を含み得る。自動化を受けない入力は、アクションのシーケンスの一部として記憶されない。いくつかの実装形態では、ユーザインターフェースは制御420を含んでよく、制御420は、アクションのシーケンスを記憶するとき、アクションアシスタントがユーザログイン情報を含み得ることを示す。たとえば、ユーザは、アプリケーションにログインするためのユーザ名およびパスワードを必要とする場合がある。制御420が選択されない場合、アクションアシスタントは、ユーザ名またはパスワードを記憶しなくてよい。したがって、制御420が選択されない場合、ログイン情報は自動化を受けない。いくつかの実装形態では、これは、シーケンスがログイン情報を要求するインターフェースにおいて終了するように、アクションアシスタントにシーケンスを放棄させるか、またはシーケンスを閉じさせることができる。いくつかの実装形態では、アクションアシスタントは、ユーザがトークンに対する値を供給しなければ、アクションアシスタントがシーケンスを実行することができないことを示すトークンとしてユーザ名およびパスワードを記憶することができる。したがって、たとえば、アクションアシスタントは、ユーザ名を必要とする、シーケンス内のアクションまで、シーケンスを再現することができ、そのアクションの時点で、モバイルデバイスはユーザ名およびパスワードを要求するユーザインターフェースを表示している。ユーザがこの入力を供給すると、アクションアシスタントは、残りのシーケンスの再現を続けることができる。そのような状況で、アクションアシスタントは、シーケンスの半自動再現を実行することができ、再現は、シーケンスの何らかの時点でユーザ対話を必要とするため、再現は全自動ではない。
【００４４】
ユーザインターフェース400はまた、シーケンス内に支払い入力またはアカウント入力を含めるか否かを示すパラメータを設定する制御425を含み得る。ログインデータと同様に、ユーザは支払い情報を含むことを選ぶことができるが、デフォルトオプションは支払い情報を含めていない可能性がある。したがって、制御425が選択されない場合、支払い情報およびアカウント情報は自動化を受けない。支払い情報が含まれない場合、アクションアシスタントは、ログイン情報に関して上記で論じたように、シーケンスの半自動再現を実行することができる。
【００４５】
ユーザインターフェース400はまた、ユーザに関する情報をシーケンス内に含めるか否かを示すパラメータを設定する制御430を含み得る。たとえば、制御430が選択されない場合、アクションアシスタントは、アクションのシーケンスの一部として提供される場合、ユーザの名前、誕生日、性別などを記憶しなくてよい。したがって、制御430が選択されない場合、個人情報は自動化を受けない。ログイン情報および支払い情報と同様、ユーザ情報が記憶されない場合、アクションアシスタントは、シーケンスを無視すること、シーケンスを終了すること、または入力項目をトークンに置換することができる。
【００４６】
いくつかの実装形態では、アクションアシスタントがアプリケーション特定ユーザインターフェースに関連する特定のアプリケーションにパラメータまたはアクションを適用するように、制御405、445、450、および455のうちの1つまたは複数は、アプリケーション特定ユーザインターフェース内に提供され得る。
【００４７】
ユーザインターフェース400はまた、ユーザが、アクションアシスタントがどのアプリケーションの中で動作し得るか、またはアクションアシスタントがどのアプリケーションの中で動作し得ないかを選択することを可能にする制御435を含み得る。言い換えれば、パラメータは、アクションアシスタントが可能にされるアプリケーションを明示的に識別する、アプリケーションのホワイトリスト、または、アクションアシスタントが明示的に無効化され得る、アプリケーションのブラックリストを含み得る。制御435の選択は、ホワイトリストまたはブラックリスト内にアプリケーションを列挙する、ならびにアプリケーションをリストから除去するか、またはアプリケーションをリストに追加するように制御する、別のウィンドウまたはユーザインターフェースの表示を開始し得る。
【００４８】
ユーザインターフェース400はまた、ユーザが別のユーザとショートカットシーケンスを共有することを可能にする制御440を含み得る。制御440の選択は、システムに、ユーザが、たとえば、デバイス識別子、電話番号、ユーザ名などを介して別のデバイスを選択し、共有すべきショートカットシーケンスのうちの1つを選択することを可能にする、別のウィンドウまたはユーザインターフェースを開始させることができる。いくつかの実装形態では、共有は、音声コマンドを介して達成され得る。たとえば、制御440の選択は、デバイス識別子およびショートカットシーケンス識別子を聴取する聴取モードを開始し得る。
【００４９】
ユーザインターフェース400はまた、ユーザが明示的なトレーニングモードに入ることを可能にする制御445を含み得る。明示的なトレーニングモードでは、ユーザが実行するアクションはショートカットシーケンスとして保存される。言い換えれば、システムは、シーケンスを以前のシーケンスと比較せず、そのシーケンスが十分に類似するかどうかを判定し、次いで、完了するために信頼性スコアを計算し、むしろ、システムは単に、ユーザが実行したアクションのシーケンスを観測し、そのシーケンスをショートカットシーケンスとしてマークする。明示的なトレーニングモードは、ユーザによるアクションによって、またはシステムが一般にアクションのシーケンスを閉じる時点で終了されてよく、システムは、ショートカットシーケンスを終了すべきかどうかをユーザに尋ねることができる。
【００５０】
ユーザインターフェース400はまた、ショートカットシーケンスを管理するための制御450を含み得る。ユーザは、ショートカットシーケンスを名付けることまたは名称変更すること、ショートカットシーケンスを削除すること、ショートカットシーケンスに対して音声コマンドを記録することなどが可能である。ユーザインターフェース400はまた、以前の保存されたシーケンスをデータストアから削除する制御455を含み得る。いくつかの実装形態では、制御455の作動は、ショートカットシーケンスとしてマークされていないすべてのシーケンスを削除し得る。単一のユーザインターフェース内に示されているが、実装形態は、説明した機能性を備えたいくつかのユーザインターフェースを含み得る。
【００５１】
図5は、開示する実装形態による、反復アクションを識別し、スマートアシストを提供するための例示的なプロセス500のフロー図を示す。プロセス500は、図1のシステム100のアクションアシスタント120など、モバイルデバイス上で実行するアクションアシスタントによって実行され得る。プロセス500は、ユーザが以前に実行したアクションのシーケンスを識別し、ユーザに対してシーケンスを自動的または半自動的に再現または仕上げることを提示するために使用され得る。アクションシーケンスの自動的な実行は、ユーザがシーケンスの再現の間に入力を提供しないことを意味する。代わりに、アクションアシスタントは、アクションの以前のシーケンスを使用して、以前のシーケンスが達成した結果に類似する結果を達成するために必要な入力を提供する。アクションシーケンスの半自動的な実行は、アクションのシーケンスの再現の間の何らかの時点で1つまたは複数のデータ項目を提供するようにユーザに求めることができることを意味する。たとえば、ユーザは、アクションのシーケンスの再現の間に、支払い情報またはログインパスワードを提供することができる。プロセス500は、ユーザ合意により、背景内で継続的に実行され得る。いくつかの実装形態では、ユーザのアクションを監視し、将来の比較のためのアクションを編成することができるように、プロセス500の部分は継続的に実行され得る。言い換えれば、システムは、プロセス500の部分を使用して、たとえば、後の時点で現在のシーケンスと比較するために使用するために以前のシーケンスを収集して、トレーニングモードで情報を集めることができる。
【００５２】
プロセス500は、アクションアシスタントが現在のユーザのアクションシーケンスを取得すること(505)によって開始し得る。システムは、ユーザのアクションの現在のシーケンスをハイレベル、または言い換えれば、機能レベルで取得する。したがって、システムは、画素座標を参照せずに、選択された制御に関する名称または識別子を識別し、ユーザがタイプしたことまたは話したことを識別することによって、アクションの現在のセット内の各アクションを取得する。これはアクションの再現をより強固にする。したがって、ユーザインターフェース内の制御が名称を変更しない限り、アクションのシーケンス内の各アクションは再現され得る。いくつかの実装形態では、アクションは、アクションを再現する際により高い柔軟性を提供するように制御名にソフト整合され(soft-matched)てよい。いくつかの実装形態では、各アクションは、人間が読み取ることができない構造化表現を有し得る。これらのアクションは、データ記録のシーケンスとして記憶された情報であり得る。アクションアシスタントは、ユーザがモバイルデバイスと対話するにつれて、アクションの現在のシーケンスを取得する。言い換えれば、アクションの現在のシーケンスは、ユーザが入力を提供するにつれて取得される。アクションの記録に加えて、システムは、時刻、実行しているアプリケーション、ロケーション、モバイルデバイスの移動、スクリーン上で可視の他の要素に対する入力の相対的位置、またはアクションによって表されるワークフローの任意の他の特性など、アクションに対する信号を記録することもできる。したがって、アクションの現在のシーケンスの取得は、アクションに関連する信号を取得することを含む。
【００５３】
アクションアシスタントは、アクションのシーケンスがアクションの以前のシーケンスに類似するかどうかを判定することができる(510)。アクションアシスタントは、何らかの周期的時間間隔またはアクションがアクションの現在のシーケンスに追加されるたびに、比較を実行することができる。アクションの現在のシーケンスが完了する前に類似の比較を実行することによって、システムは、ユーザに対してアクションを再現することを提示することができる。アクションアシスタントは、アクションの現在のシーケンスがアクションの以前のシーケンスに類似するかどうかを判定するために類似性基準を使用することができる。類似性基準は機械学習モデルであってよい。アクションの以前のシーケンスは、より早い時期にユーザが提供し、ユーザ許可によってデータストア内に記憶されたシーケンスであり得る。システムは、アクションの以前のシーケンスおよびアクションの現在のシーケンスとともに記憶された信号を入力として利用することができ、2つのシーケンスに対する類似性基準を生成することができる。いくつかの実装形態では、システムは、以前のシーケンスおよび現在のシーケンスが一定の最小要件を共有するとき、たとえば、同じモバイルアプリケーションまたはウェブページ上で実行を共有するときのみ、2つのシーケンス同士の間の類似性基準を判定することができる。現在のシーケンスおよび以前のシーケンスは、類似性基準が類似性しきい値を満たすとき、すなわち、類似性しきい値にかなうかまたはそれを超えるとき、類似であると判定され得る。
【００５４】
現在のシーケンスが以前のシーケンスに類似しないとき(510、No)、アクションアシスタントは、アクションの現在のシーケンスが完了しているかどうかを判定することができる(515)。アクションアシスタントは、ユーザがモバイルアプリケーションまたはウェブページを閉じた、ユーザが支払いまたは注文を完了または確認した、確認電子メールの受信、確認テキストメッセージの受信、完了制御(たとえば、「仕上げ」、「提出」、「ログアウト」など)の選択、非アクティビティ、「スリープ」モードの選択、および他の同様のユーザのアクションまたはユーザイベントなど、いくつかの異なる要因に基づいて、シーケンスが完了していると判定することができる。アクションのシーケンスが完了していない場合(515、No)、システムは、現在のシーケンスに対するアクションを取得し続けることができる(505)。アクションのシーケンスが完了している場合(515、Yes)、システムは、現在のシーケンスに対する信号とともに、アクションの現在のシーケンスをアクションの以前のシーケンスとして保存することができる(525)。いくつかの実装形態では、システムは、信頼性スコアとともにアクションの現在のシーケンスを保存することができる。アクションの以前のシーケンスに類似しない、アクションの現在のシーケンスはまだ信頼性スコアを生成させていないため、システムは、このタイプのシーケンスを信頼性スコアとともに記憶することはできない。
【００５５】
現在のシーケンスが以前のシーケンスに類似するとき(510、Yes)、システムは、アクションの現在のシーケンスおよびアクションの類似の以前のシーケンスに関する信頼性スコアを計算することができる(520)。信頼性スコアは、アクションアシスタントがアクションの以前のセットによって表されるワークフローを適切に再現することができるかどうかを予測するようにトレーニングされた、部分的または完全な機械学習モデルであり得る。予測モデルは、様々な信号を入力として利用することができる。1つの例示的な信号は、同じウェブアプリケーション、ウェブページ、またはモバイルアプリケーション内の複数のワークフロー(アクションの以前のシーケンス)にわたるユーザの行動である。これは、いくつかのボタン選択または他の制御選択を含み得る。たとえば、ユーザが現在のシーケンスに類似するいくつかの以前のシーケンスにわたって、「提出」制御を5回選択し、数量制御を一度選択した場合、この信号は、ユーザが同じワークフローを反復して実行する高い信頼性に寄与し得る。予測モデルは、コンテキスト信号を使用することもできる。たとえば、ワークフローは、特定の時刻において、またはユーザが特定のロケーションにいるとき、一貫し得るが、さもなければ、一貫し得ない。アクションの現在のシーケンスのコンテキストが一貫するアクションのコンテキストに整合する場合、そのモデルは、より高い信頼性を有し得るが、さもなければ、低い信頼性を有する。入力として使用される入力信号の別の例は、同じコンテキスト内のユーザの集約行動であり得る。そのような情報は、ユーザ合意により、異なるユーザから中央サーバに送られたに非特定化されたログを使用して生成され得る。入力信号の別の例は、それによりモバイルアプリケーションまたはウェブページのユーザインターフェースが変更する頻度である。ボタン、テキストボックス、および他の制御および入力が頻繁に変更される場合、予測器は、ワークフローの再現により低い信頼性を有し得る。別の例示的な入力信号は、特定のワークフロー内で利用可能な選択肢の変動性および同じ選択肢に従う確率である。変動性が低い場合、多くの以前のシーケンスが存在しない場合ですら、予測モデルは高い信頼性を有し得るが、変動性が高い場合、多くの以前のシーケンスが、特定のシーケンスにユーザが従う(または、集約の場合、多くのユーザが従う)ことを示さない限り、予測モデルはより低い信頼性を有し得る。別の例示的な入力信号は、ワークフローがユーザによってショートカットとして保存されているかどうかである。アクションの現在のシーケンスがショートカットとしてやはりマークまたはタグ付けされた、アクションの以前のシーケンスに類似する場合、予測モデルは高い信頼性スコアを出力し得る。
【００５６】
予測モデルは、低、中、または高として分類され得る信頼性スコアを提供するように構成され得る。信頼性スコアが、第1の信頼性しきい値を満たす場合、すなわち、第1のしきい値にかなうかまたはそれを超える場合、信頼性スコアは高と見なされ得る。信頼性スコアが第1の信頼性しきい値を満たさないが、第2の信頼性しきい値にかなうかまたはそれを超える場合、信頼性スコアは中と見なされ得る。信頼性スコアが第1および第2の信頼性しきい値にかなわない場合、スコアは低と見なされる。信頼性スコアが低の場合、類似のワークフローを再現することは困難過ぎるため、システムは、そのシーケンスに対してアクションアシスタントを無効化することができる。したがって、ユーザが新しいシーケンスを開始すると、システムは、アクションの別のシーケンスを取得し続けることができる(505)。信頼性スコアが中であると見なされる場合、システムは、アクションが完了しているかどうかを判定することができ、完了している場合(515、Yes)、現在のシーケンスを観測および学習モードで保存することができる(525)。たとえば、現在のシーケンスは、その信頼性スコアとともに以前のシーケンスとして保存され得る。システムが次に類似のシーケンスに遭遇するとき、この以前の信頼性スコアを予測モデルに対する入力信号として使用することができる。予測モデルは、最終的にシステムがアクションのシーケンスによって表されるワークフローに対して低いまたは高い信頼性に達するように、信頼性スコアを修正し得る。アクションが完了していない場合、ユーザがシーケンスを完了する間に、システムは予測および学習を続けることができる。
【００５７】
信頼性スコアが高のとき、システムは、ユーザがアクションを再現することを望むか否かをユーザに尋ねるプロンプトを生成することができる(530)。プロンプトは、図2のプロンプト205に類似し得る。ユーザがアクションを再現することを望まない場合(535、No)、システムは、たとえば、ステップ505で開始して、別のワークフローの取得を続けることができる。いくつかの実装形態では、システムは、以前の類似のワークフローが再度提示されないように、または再度提示されるためにより高いしきい値を満たさなければならないように、以前の類似のワークフローを非承認としてマークし得る。ユーザがアクションを再現することを望む場合(535、Yes)、システムは、アクションの以前のシーケンスがショートカットとして既に保存されているかどうかを判定することができる(540)。保存されている場合(540、Yes)、システムは、アクションの以前のシーケンスによって表されるワークフローの再現を進めることができる(560)。ワークフローを再現するために、システムは、以前のシーケンス内のアクションを使用して、入力を提供し、制御、たとえば、ボタン、メニューオプション、無線入力またはチェックボックス入力、ドロップダウンメニュー選択などを選択することができる。システムは、背景内または前景内でアクションを再現することができる。背景内で再現されるとき、ユーザは、提供された入力およびシステムによって選択された制御に応じて生成されたユーザインターフェースを見ることができない。前景の場合、ユーザはユーザインターフェースを見ることができる。
【００５８】
アクションの以前のセットがショートカットとしてまだ保存されていない場合(540、No)、システムは、ユーザがアクションをショートカットとして保存することを望むかどうかを尋ねるプロンプトを開始することができる(545)。このプロンプトは、図3のプロンプト305に類似であり得る。ユーザがワークフローをショートカットとして保存することを望まないとき(550、No)、システムは、アクションの以前のシーケンスによって表されるワークフローの再現を進めることができる(560)。ユーザがワークフローをショートカットとして保存することを望むとき(550、Yes)、システムは、ユーザがショートカット識別子をアクションの以前のシーケンスに関連付ける方法を提供し得る(555)。ショートカット識別子は、ショートカットをトリガするために使用される、名称、音声コマンド、入力シーケンス、およびアイコンなどであってよい。いくつかの実装形態では、システムは、記述をショートカットに関連付けることもできる。ユーザは、音声コマンドを提供すること、もしくはアイコンを選択すること、またはショートカットに関連する入力シーケンスを実行することによって、任意の時点でショートカットシーケンスを再現することができる。したがって、システムが音声コマンドを受信するとき、たとえば、システムは、音声コマンドに関連する以前のシーケンスを取り出し、ステップ560を実行することができる。ショートカットシーケンスの再現に加えて、システムは、1つまたは複数のデバイスおよび/またはユーザとショートカットシーケンスを共有するように構成され得る。たとえば、システムは、ユーザが、ショートカットシーケンスを選択し、それを別のデバイスに送ることを可能にし得る。他のデバイスは、そのユーザに関連付けられてよく、または別のユーザに関連付けられてもよい。別のユーザに関連付けられる場合、いくつかの実装形態では、そのユーザに一意であるシーケンス内の入力、たとえば、誕生日、ユーザ名、アカウント情報は、送るのに先立って非特定化され得る。
【００５９】
図6は、本明細書で説明する技法とともに使用され得る、図1のシステム100および/またはモバイルデバイス180で動作され得る、一般的なコンピュータデバイス600の例を示す。コンピューティングデバイス600は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、セルラー電話、スマートフォン、タブレット、サーバ、およびウェアラブルデバイスを含む他のコンピューティングデバイスなど、様々な例示的な形態のコンピューティングデバイスを表すことが意図される。ここに示す構成要素、それらの接続および関係、ならびにそれらの機能は、単なる例であることを意味し、本書で説明および/または特許請求する本発明の実装形態を限定することを意味しない。
【００６０】
コンピューティングデバイス600は、インターフェース608を介して接続された、プロセッサ602と、メモリ604と、ストレージデバイス606と、拡張ポート610とを含む。いくつかの実装形態では、コンピューティングデバイス600は、他の構成要素の中でも、インターフェース608に接続された、トランシーバ646と、通信インターフェース644と、GPS(全地球測位システム)受信機モジュール648とを含み得る。デバイス600は、通信インターフェース644を通してワイヤレスに通信することができ、通信インターフェース644は、必要に応じて、デジタル信号処理回路を含み得る。構成要素602、604、606、608、610、640、644、646、および648は各々、適宜に、共通マザーボード上にまたは他の様式で取り付けられてよい。
【００６１】
プロセッサ602は、ディスプレイ616など、外部入出力デバイス上のGUIに対してグラフィカル情報を表示するために、メモリ604内またはストレージデバイス606上に記憶された命令を含めて、コンピューティングデバイス600内で実行するための命令を処理することができる。ディスプレイ616は、モニタまたはフラットタッチスクリーンディスプレイであってよい。いくつかの実装形態では、複数のメモリおよび複数のタイプのメモリとともに、適宜に、複数のプロセッサおよび/または複数のバスを使用することができる。また、複数のコンピューティングデバイス600を必要な動作の部分を提供する各デバイス(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとしての)に接続することができる。
【００６２】
メモリ604は、コンピューティングデバイス600内に情報を記憶する。一実装形態では、メモリ604は、1つまたは複数の揮発性メモリユニットである。別の実装形態では、メモリ604は、1つまたは複数の不揮発性メモリユニットである。メモリ604はまた、磁気ディスクまたは光ディスクなど、別の形態のコンピュータ可読媒体であってもよい。いくつかの実装形態では、メモリ604は、拡張インターフェースを通して提供される拡張メモリを含み得る。
【００６３】
ストレージデバイス606は、コンピューティングデバイス600に大容量ストレージを提供することができる。一実装形態では、ストレージデバイス606は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、もしくはテープデバイス、フラッシュメモリデバイスもしくは他の類似のソリッドステートメモリデバイス、または記憶エリアネットワークまたは他の構成のデバイスを含めて、デバイスのアレイなどのコンピュータ可読媒体であってよいか、またはコンピュータ可読媒体を含んでよい。コンピュータプログラム製品は、そのようなコンピュータ可読媒体内に有形に具現化され得る。コンピュータプログラム製品はまた、実行されると、上記で説明した方法など、1つまたは複数の方法を実行する命令を含み得る。コンピュータ可読媒体または機械可読媒体は、メモリ604、ストレージデバイス606、またはプロセッサ602上のメモリなど、ストレージデバイスである。
【００６４】
インターフェース608は、コンピューティングデバイス600に対する帯域幅集中的動作を管理する高速コントローラ、もしくはより低い帯域幅集中的動作を管理する低速コントローラ、またはそのようなコントローラの組合せであってよい。外部インターフェース640は、他のデバイスとのデバイス600の近距離通信を可能にするように提供され得る。いくつかの実装形態では、コントローラ608は、ストレージデバイス606および拡張ポート614に結合され得る。様々な通信ポート(たとえば、USB、Bluetooth(登録商標)、Ethernet、ワイヤレスEthernet)を含み得る拡張ポートは、たとえば、ネットワークアダプタを通して、キーボード、ポインティングデバイス、スキャナ、またはスイッチまたはルータなどのネットワーキングデバイスなど、1つまたは複数の入出力デバイスに結合され得る。
【００６５】
コンピューティングデバイス600は、図に示すように、いくつかの異なる形態で実装され得る。たとえば、コンピューティングデバイス600は、標準サーバ630として実装されてよく、またはそのようなサーバのグループ内で複数回実装されてよい。コンピューティングデバイス600は、ラックサーバシステムの一部として実装されてもよい。加えて、コンピューティングデバイス600は、ラップトップコンピュータ632、パーソナルコンピュータ634、またはタブレット/スマートフォン636など、コンピューティングデバイス内で実装されてもよい。システム全体は、互いと通信する複数のコンピューティングデバイス600で構成されてよい。他の構成も可能である。
【００６６】
図7は、ここで説明する技法とともに使用され得る、図1のサーバ190の例であり得る、一般的なコンピュータデバイス700の例を示す。コンピューティングデバイス700は、サーバ、ブレードサーバ、データセンター、メインフレーム、および他の大規模コンピューティングデバイスなど、様々な例示的な形態の大規模データ処理デバイスを表すことが意図される。コンピューティングデバイス700は、1つまたは複数の通信ネットワークによって相互接続された、ネットワークアタッチストレージノードを場合によっては含む、複数のプロセッサを有する分散型システムであってよい。ここに示す構成要素、それらの接続および関係、ならびにそれらの機能は、単なる例示を意味し、本書で説明および/または特許請求する本発明の実装形態を限定することを意味しない。
【００６７】
分散型コンピューティングシステム700は、任意の数のコンピューティングデバイス780を含み得る。コンピューティングデバイス780は、ローカルネットワークまたは広域ネットワーク、専用光リンク、モデム、ブリッジ、ルータ、スイッチ、ワイヤードネットワークまたはワイヤレスネットワークなどの上で通信する、サーバもしくはラックサーバ、メインフレームなどを含み得る。
【００６８】
いくつかの実装形態では、各コンピューティングデバイスは、複数のラックを含み得る。たとえば、コンピューティングデバイス780aは、複数のラック758a〜758nを含む。各ラックは、プロセッサ752a〜752nおよび762a〜762nなど、1つまたは複数のプロセッサを含み得る。プロセッサは、データプロセッサ、ネットワークアタッチストレージデバイス、および他のコンピュータ制御デバイスを含み得る。いくつかの実装形態では、1つのプロセッサは、マスタプロセッサとして動作し、スケジューリングタスクおよびデータ分散タスクを制御することができる。プロセッサは、1つまたは複数のラックスイッチ758を通して相互接続されてよく、1つまたは複数のラックは、スイッチ778を通して接続されてよい。スイッチ778は、複数の接続されたコンピューティングデバイス700同士の間の通信を処理することができる。
【００６９】
各ラックは、メモリ754およびメモリ764などのメモリと、756および766などのストレージとを含み得る。ストレージ756および766は、大容量ストレージを提供することができ、ネットワークアタッチディスク、フロッピーディスク、ハードディスク、光ディスク、テープ、フラッシュメモリもしくは他の類似のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくは他の構成のデバイスを含めて、デバイスのアレイなど、揮発性ストレージまたは不揮発性ストレージを含み得る。ストレージ756または766は、複数のプロセッサ同士の間、複数のラック同士の間、または複数のコンピューティングデバイス同士の間で共有されてよく、プロセッサのうちの1つまたは複数によって実行可能な命令を記憶したコンピュータ可読媒体を含み得る。メモリ754および764は、たとえば、1つまたは複数の揮発性メモリユニット、1つまたは複数の不揮発性メモリユニット、および/または磁気ディスクもしくは光ディスク、フラッシュメモリ、キャッシュ、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、およびそれらの組合せなど、他の形態のコンピュータ可読媒体を含み得る。メモリ754などのメモリも、プロセッサ752a〜752n同士の間で共有され得る。インデックスなどのデータ構造は、たとえば、ストレージ756およびメモリ754上に記憶され得る。コンピューティングデバイス700は、コントローラ、バス、入出力デバイス、通信モジュールなど、示されていない他の構成要素を含み得る。
【００７０】
システム100など、システム全体は、互いと通信する複数のコンピューティングデバイス700で構成され得る。たとえば、デバイス780aは、デバイス780b、780c、および780dと通信することができ、これらのデバイスは、まとめて、システム100として知られている場合がある。別の例として、図1のシステム100は、1つまたは複数のコンピューティングデバイス700を含み得る。コンピューティングデバイスのうちのいくつかは、地理的に互いに近く位置してよく、他のコンピューティングデバイスは、地理的に離れて位置してよい。システム700のレイアウトは、単なる例であり、システムは、他のレイアウトまたは構成を利用することができる。
【００７１】
本開示のいくつかの態様によれば、方法は、モバイルアプリケーションを用いたユーザのアクションの現在のシーケンスがユーザのアクションの以前のシーケンスに類似すると判定するステップと、以前のシーケンスの再現性を反映する信頼性スコアを計算するステップとを含む。この方法はまた、信頼性スコアが信頼性しきい値を満たすとき、以前のシーケンスを使用してユーザのアクションの現在のシーケンスを完了するための承認を要求するプロンプトの表示を開始するステップと、完了の承認の指示の受信に応じて、以前のシーケンスを完了するステップとを含む。
【００７２】
これらのおよび他の態様は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、この方法はまた、以前のシーケンスがショートカットシーケンスではないと判定するステップと、以前のシーケンスをショートカットシーケンスとして保存するための承認を要求するプロンプトの表示を開始するステップと、保存するための承認の指示の受信に応じて、以前のシーケンスをショートカットシーケンスとして保存するステップとを含み得る。いくつかの実装形態では、この方法はまた、ショートカットシーケンス内のアクションを再現するためのアイコンをモバイルデバイスのホームスクリーンに追加するステップを含み得る。別の例として、信頼性スコアは、同じアプリケーション内のアクションの複数のシーケンスにわたるユーザの行動に基づいてよく、アクションのシーケンスに関するコンテキスト特徴に基づいてよく、かつ/または同じアプリケーション内のユーザのアクションの複数のシーケンスにわたるユーザの集約行動に基づいてよい。別の例として、アクションの現在のシーケンスがアクションの以前のシーケンスに類似すると判定するステップは、ユーザが提供する入力の特徴と、アプリケーションが提示するコンテンツの特徴とを含み得る。
【００７３】
別の例として、この方法はまた、ユーザ対話の第2の現在のシーケンスがユーザ対話のいずれの以前のシーケンスに類似しないと判定するステップと、第2の現在のシーケンスが完了しているかどうかを判定するステップと、第2の現在のシーケンスが完了しているとき、第2の現在のシーケンスを第2の以前のシーケンスとして保存するステップとを含み得る。いくつかの実装形態では、第2の現在のシーケンスは中間の信頼性スコアで保存され得る。別の例として、信頼性しきい値は第1の信頼性しきい値であってよく、この方法はさらに、信頼性スコアが第1の信頼性しきい値を満たすことはできないが、第2の信頼性しきい値を満たすとき、現在のシーケンスを、中間の信頼性を備えた、保存されたシーケンスとして保存するステップを含む。
【００７４】
本開示のいくつかの態様によれば、方法は、ユーザ対話の第1の現在のシーケンスがユーザ対話の以前のシーケンスに対する類似性しきい値を満たすことができないと判定するステップと、アクションの第1の現在のシーケンスが完了していると判定するステップと、第1の現在のシーケンスを第1の以前のシーケンスとして保存するステップとを含む。この方法はまた、第1の以前のシーケンスに対する類似性しきい値を満たすとして第2の現在のシーケンスを識別するステップと、第1の以前のシーケンスをショートカットとして保存するための承認を要求するプロンプトの表示を開始するステップとを含む。この方法は、ユーザ合意により、背景で継続的に実行され得る。この方法は、ユーザによって具体的にトリガされなくてよい。
【００７５】
これらのおよび他の態様は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、この方法は、第1の以前のシーケンスと第2の現在のシーケンスとの間の信頼性スコアを生成するステップであって、信頼性スコアが第1の以前のシーケンスを自動的に再現する際の信頼性を示す、生成するステップと、信頼性スコアが第1の信頼性しきい値を満たすとき、プロンプトの表示を開始するステップとを含み得る。別の例として、この方法は、アクションの第1の以前のシーケンスを再現するための承認を要求するプロンプトの表示を開始するステップと、再現するための承認が示されるとき、アクションの第1の以前のシーケンスを再現するステップとを含み得る。別の例として、この方法は、保存するための承認が受信されたとき、音声コマンドをアクションの第1の以前のシーケンスに関連付けるステップを含み得る。別の例として、この方法は、保存するための承認が受信されたとき、選択可能なアイコンをアクションの第1の以前のシーケンスに関連付けるステップを含み得る。別の例として、ユーザ対話の第1の現在のシーケンスが完了していると判定するステップは、アクションの現在のシーケンス内の現在のアクションが、自動化を受けない入力を含むと判定するステップ、および/またはユーザがモバイルアプリケーションを終了したと判定するステップを含み得る。
【００７６】
本開示のいくつかの態様によれば、システムは、少なくとも1つのプロセッサと、命令を記憶したメモリとを含み、命令は、少なくとも1つのプロセッサによって実行されると、システムにユーザインターフェースを生成させる。ユーザインターフェースは、アクションのショートカットシーケンスの記録を開始することであって、アクションのシーケンス内の各アクションが、ユーザインターフェースを用いたユーザ対話のハイレベル記述である、開始することを行うように構成される。ユーザインターフェースはまた、アクションのシーケンス内のアカウントデータがアクション内に含まれるべきであるという指示を受信するように構成され得る。ユーザインターフェースはまた、アクションの以前のシーケンスの共有が許可されているという指示を受信するように構成され得る。ユーザインターフェースはまた、アクションの以前に記憶されたシーケンスをクリアするように構成され得る。ユーザインターフェースはまた、アクションのショートカットシーケンスを名称変更するように構成され得る。ユーザインターフェースはまた、システムがアクションのシーケンスを取得するアプリケーションを選択するように構成され得る。ユーザインターフェースはまた、アクションの以前のシーケンスが共有され得るという指示を受信するように構成され得る。
【００７７】
本開示のいくつかの態様によれば、システムは、少なくとも1つのプロセッサと、命令を記憶したメモリとを含み、命令は、少なくとも1つのプロセッサによって実行されると、システムに本明細書で開示する方法のうちのいずれかを実行させる。
【００７８】
様々な実装形態は、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、それにデータおよび命令を送信するように結合された、専用または汎用であってよい、少なくとも1つのプログラマブルプロセッサを含む、プログラマブルシステム上で実行可能および/または解釈可能な1つまたは複数のコンピュータプログラムの実装形態を含み得る。
【００７９】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られている)は、基板内に形成されたプログラマブルプロセッサに対する機械命令を含み、ハイレベル手続き型および/またはオブジェクト指向プログラミング言語で、かつ/またはアセンブリ/機械言語で実装され得る。本明細書で使用される、「機械可読媒体」、「コンピュータ可読媒体」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される、任意の非一時的コンピュータプログラム製品、装置および/またはデバイス(たとえば、磁気ディスク、光ディスク、メモリ(読取りアクセスメモリを含む)、プログラマブル論理デバイス(PLD))を指す。
【００８０】
ここで説明したシステムおよび技法は、バックエンド構成要素(たとえば、データサーバなど)を含むか、もしくはミドルウェア構成要素(たとえば、アプリケーションサーバ)を含むか、またはフロントエンド構成要素(たとえば、それを通してユーザがここで説明したシステムおよび技法の実装形態と対話することができるグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータ)を含むか、あるいはそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の何らかの組合せを含む、コンピューティングシステム内で実装され得る。システムの構成要素は、任意の形態または任意の媒体のデジタルデータ通信(たとえば、通信ネットワーク)によって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)、広域ネットワーク(「WAN」)、およびインターネットを含む。
【００８１】
コンピューティングシステムは、クライアントとサーバとを含み得る。クライアントおよびサーバは、概して、互いと離れており、一般に、通信ネットワークを通して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行し、互いにクライアント対サーバ関係を有する、コンピュータプログラムにより生じる。
【００８２】
いくつかの実装形態が説明されてきた。それでも、本発明の趣旨および範囲から逸脱せずに、様々な修正が行われてよい。加えて、図面に示した論理フローは、所望の結果を達成するために、示した特定の順序、または順番を必要としない。加えて、他のステップを提供することができるか、または説明したフローからステップを除去することができ、説明したシステムに他の構成要素を追加すること、そこから他の構成要素を除去することができる。したがって、他の実装形態は以下の特許請求の範囲の範囲内である。
【符号の説明】
【００８３】
100  スマートアシストシステム、アシストシステム、システム
103  出力デバイス
110  モバイルアプリケーション、アプリケーション
115  オペレーティングシステム
120  アクションアシスタント
130  アシスタントパラメータ
140  設定UI
150  アクション予測器
155  類似性エンジン
160  ネットワーク
170  以前のシーケンス
172  ショートカットシーケンス
180  モバイルデバイス
190  サーバ
200  ディスプレイ
205  プロンプト
210  記述
215  承認制御
220  非承認制御
300  ディスプレイ
305  プロンプト
310  承認制御
315  非決定制御
320  非承認制御
325  承認制御
400  ユーザインターフェース
405  制御
410  制御
415  制御
420  制御
425  制御
430  制御
435  制御
440  制御
445  制御
450  制御
455  制御
500  プロセス
600  コンピュータデバイス、コンピューティングデバイス、デバイス
602  プロセッサ、構成要素
604  メモリ、構成要素
606  ストレージデバイス、構成要素
608  インターフェース、構成要素、コントローラ
610  拡張ポート、構成要素
614  拡張ポート
616  ディスプレイ
630  標準サーバ
632  ラップトップコンピュータ
634  パーソナルコンピュータ
636  タブレット/スマートフォン
640  構成要素、外部インターフェース
644  通信インターフェース、構成要素
646  トランシーバ、構成要素
648  GPS(全地球測位システム)受信機モジュール、構成要素
700  コンピュータデバイス、分散型コンピューティングシステム、コンピューティングデバイス、システム
752a〜752n  プロセッサ
754  メモリ
756  ストレージ
758  ラックスイッチ
758a〜758n  ラック
762a〜762n  プロセッサ
764  メモリ
766  ストレージ
778  スイッチ
780  コンピューティングデバイス
780a  コンピューティングデバイス、デバイス
780b  デバイス
780c  デバイス
780d  デバイス
【図１】
2020514857.tif 000003
【図２】
2020514857.tif 000004
【図３】
2020514857.tif 000005
【図４】
2020514857.tif 000006
【図５】
2020514857.tif 000007
【図６】
2020514857.tif 000008
【図７】
2020514857.tif 000009
【国際調査報告】
2020514857.tif 000010
2020514857.tif 000011