(57)【要約】  コンピューティングデバイスのカメラから受け取ったイメージデータに少なくとも部分的に基づいて、複数のエージェントから、イメージデータに関連する1つまたは複数のアクションを実行するために推奨されるエージェントを選択するアシスタントが説明される。アシスタントは、アシスタントまたは推奨されるエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨するかどうかを判定し、推奨されるエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨すると判定したことに応答して、推奨されるエージェントの指示を出力する。推奨されるエージェントを確認するユーザ入力を受け取ったことに応答して、アシスタントは、推奨されるエージェントに、イメージデータに関連する1つまたは複数のアクションの実行を少なくとも開始させる。
2020521376.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイスによってアクセス可能なアシスタントによって、前記コンピューティングデバイスと通信するイメージセンサからイメージデータを受け取るステップと、
前記イメージデータに基づいて、前記コンピューティングデバイスによってアクセス可能な複数のエージェントから、前記イメージデータに関連する1つまたは複数のアクションを実行するために推奨されるエージェントを前記アシスタントによって選択するステップと、
前記アシスタントまたは前記推奨されるエージェントが前記イメージデータに関連する前記1つまたは複数のアクションを実行することを推奨するかどうかを前記アシスタントによって判定するステップと、
前記推奨されるエージェントが前記イメージデータに関連する前記1つまたは複数のアクションを実行することを推奨すると判定したことに応答して、前記アシスタントによって、前記推奨されるエージェントに、前記イメージデータに関連する前記1つまたは複数のアクションの実行を少なくとも開始させるステップと
を含む方法。
【請求項２】
前記イメージデータに関連する1つまたは複数のアクションを実行するために、前記推奨されるエージェントを選択する前に、
前記複数のエージェントからのそれぞれの特定のエージェントから、その特定のエージェントに関連する1つまたは複数のそれぞれのインテントを含む登録要求を前記アシスタントによって受け取ること、
前記複数のエージェントからのそれぞれの特定のエージェントを、その特定のエージェントに関連する前記1つまたは複数のそれぞれのインテントに、前記アシスタントによって登録するステップ
をさらに含む請求項1に記載の方法。
【請求項３】
前記推奨されるエージェントを選択するステップが、
前記推奨されるエージェントが前記イメージデータから推論される前記1つまたは複数のインテントに登録されると判定したことに応答して、前記推奨されるエージェントを選択するステップ
を含む請求項2に記載の方法。
【請求項４】
前記エージェントを選択するステップが、
前記イメージデータから1つまたは複数のインテントを推論するステップと、
前記複数のエージェントから、前記1つまたは複数のインテントのうちの少なくとも1つに登録される1つまたは複数のエージェントを識別するステップと、
前記1つまたは複数のエージェントおよび前記1つまたは複数のインテントのそれぞれに関係する情報に基づいて、前記1つまたは複数のエージェントのランキングを決定するステップと、
前記ランキングに少なくとも部分的に基づいて、前記複数のエージェントから、前記推奨されるエージェントを選択するステップと
をさらに含む請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記1つまたは複数のエージェントからの特定のエージェントに関係する前記情報が、前記特定のエージェントの人気スコア、前記特定のエージェントと前記イメージデータとの間の関連性スコア、前記特定のエージェントと前記イメージデータとの間の有用性スコア、前記特定のエージェントに関連する前記1つまたは複数のインテントのそれぞれに関連する重要性スコア、前記特定のエージェントに関連するユーザ満足スコア、および前記特定のエージェントに関連するユーザ対話スコアのうちの少なくとも1つを含む請求項4に記載の方法。
【請求項６】
前記1つまたは複数のエージェントの前記ランキングを決定するステップが、
前記1つまたは複数のエージェントおよび前記1つまたは複数のインテントのそれぞれに関係する前記情報を機械学習システム内に前記アシスタントによって入力するステップと、
前記1つまたは複数のエージェントのそれぞれについてのスコアを前記機械学習システムから前記アシスタントによって受け取るステップと、
前記1つまたは複数のエージェントのそれぞれについての前記スコアに基づいて、前記1つまたは複数のエージェントの前記ランキングを決定するステップと
を含む請求項4または5に記載の方法。
【請求項７】
前記アシスタントまたは前記推奨されるエージェントが前記イメージデータに関連する前記1つまたは複数のアクションを実行することを推奨するかどうかを判定するステップが、
前記アシスタントおよび前記1つまたは複数のインテントに関係する情報を前記機械学習システム内に前記アシスタントによって入力するステップと、
前記アシスタントについてのスコアを前記機械学習システムから前記アシスタントによって受信するステップと、
前記1つまたは複数のエージェントからの最高ランキングエージェントについての前記それぞれのスコアが前記アシスタントの前記スコアを超過するかどうかを判定するステップと、
前記1つまたは複数のエージェントからの最高ランキングエージェントについての前記それぞれのスコアが前記アシスタントの前記スコアを超過すると決定したことに応答して、最高ランキングエージェントが前記イメージデータに関連する前記1つまたは複数のアクションを実行することを推奨すると前記アシスタントによって判定するステップと
を含む請求項6に記載の方法。
【請求項８】
前記1つまたは複数のエージェントの前記ランキングを決定するステップが、前記コンピューティングデバイスに関連するコンテキスト情報を機械学習システム内に前記アシスタントによって入力するステップをさらに含む請求項4から7のいずれか一項に記載の方法。
【請求項９】
前記推奨されるエージェントに、前記イメージデータに関連する前記1つまたは複数のアクションの実行を開始させるステップが、前記推奨されるエージェントに関連するリモートコンピューティングシステムに前記イメージデータの少なくとも一部を前記アシスタントによって出力し、前記推奨されるエージェントに関連する前記リモートコンピューティングシステムに、前記イメージデータに関連する前記1つまたは複数のアクションを実行させるステップを含む請求項1から8のいずれか一項に記載の方法。
【請求項１０】
前記推奨されるエージェントに、前記イメージデータに関連する前記1つまたは複数のアクションの実行を開始させるステップが、前記推奨されるエージェントの代わりに、前記イメージデータの少なくとも一部に関連するユーザ入力を求める要求を前記アシスタントによって出力するステップを含む請求項1から9のいずれか一項に記載の方法。
【請求項１１】
前記推奨されるエージェントに、前記イメージデータに関連する前記1つまたは複数のアクションの実行を開始させるステップが、前記アシスタントによって、前記推奨されるエージェントに前記コンピューティングデバイスからアプリケーションを立ち上げさせ、前記イメージデータに関連する前記1つまたは複数のアクションを実行させるステップを含み、前記アプリケーションが前記アシスタントとは異なる請求項1から8のいずれか一項に記載の方法。
【請求項１２】
前記複数のエージェントからの各エージェントが、前記コンピューティングデバイスからアクセス可能であるそれぞれのサードパーティサービスに関連するサードパーティエージェントである請求項1から11のいずれか一項に記載の方法。
【請求項１３】
前記複数のエージェントの前記それぞれに関連するサードパーティサービスが、前記アシスタントによって提供されるサービスとは異なる請求項12に記載の方法。
【請求項１４】
カメラと、
出力装置と、
入力装置と、
少なくとも1つのプロセッサと、
実行されるとき、前記少なくとも1つのプロセッサに、請求項1から13のいずれか一項に記載の方法を実行させる命令を記憶するメモリと
を備えるコンピューティングデバイス。
【請求項１５】
コンピューティングデバイスの少なくとも1つのプロセッサによって実行されるとき、請求項1から13のいずれか一項に記載の方法を実施する命令を含むコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、イメージデータに少なくとも部分的に基づく、アクションを実行するためのエージェントの決定に関する。
【背景技術】
【０００２】
いくつかのコンピューティングプラットフォームは、ユーザがチャットし、話し、あるいは仮想的な計算アシスタント(たとえば、「インテリジェントパーソナルアシスタント」、または単に「アシスタント」とも呼ばれる)と通信し得るユーザインターフェースを提供し、アシスタントに、有用な情報、ユーザの必要に対する応答を出力させ、あるいはユーザが様々な現実世界タスクまたは仮想タスクを完了するのを助けるためにいくつかの動作を実施させ得る。たとえば、コンピューティングデバイスは、マイクロフォンまたはカメラで、ユーザ発話またはユーザ環境に対応するユーザ入力(たとえば、オーディオデータ、イメージデータなど)を受け取り得る。少なくとも部分的にコンピューティングデバイスにおいて実行中のアシスタントが、ユーザ入力を解析し、ユーザ入力によって示されるユーザの必要に応答して、ユーザ入力に基づく有用な情報を出力することによってユーザを「支援する」ように試み、あるいはユーザ入力に基づいてユーザが様々な現実世界タスクまたは仮想タスクを完了するのを助けるためにいくつかの動作を実施し得る。
【発明の概要】
【課題を解決するための手段】
【０００３】
一般には、本開示の技法は、アシスタントによって取得されたイメージデータに少なくとも部分的に基づいて、アクションを行い、または動作を実施するための複数のエージェントをアシスタントが管理することを可能にし得る。複数のエージェントは、アシスタント内に含まれる1つまたは複数のファーストパーティ(1P)エージェントを含み、かつ/またはアシスタント、および/またはアシスタントの部分ではなく、もしくはアシスタントと共通パブリッシャを共有しないコンピューティングデバイスのアプリケーションもしくは構成要素に関連する1つまたは複数のサードパーティ(3P)エージェントと共通パブリッシャを共有し得る。ユーザの個人情報を利用、記憶、および/または解析するための、ユーザからの明示的で曖昧でない許可を受け取った後、コンピューティングデバイスは、イメージセンサ(たとえば、カメラ)で、ユーザ環境に対応するイメージデータを受け取り得る。エージェント選択モジュールが、イメージデータを解析して、イメージデータ内の内容に少なくとも部分的に基づいて、ユーザ環境を考慮してユーザが実施して欲しい可能性の高い1つまたは複数のアクションを決定し得る。アクションは、アシスタントによって、またはアシスタントによって管理される複数のエージェントのうちの1つまたは複数のエージェントの組合せによって実行され得る。アシスタントは、アシスタントまたは推奨されるエージェントが1つまたは複数のアクションを実行し、推奨の指示を出力することを推奨するどうかを判定し得る。推奨を確認または変更するユーザ入力を受け取ったことに応答して、アシスタントは、1つまたは複数のアクションを実行し、開始し、招待し、またはエージェントに実行させ得る。このようにして、アシスタントは、ユーザの環境にとって適切であり得るアクションを決定するだけでなく、アクションを実行するための適切なアクタも推奨するように構成される。したがって、記載の技法は、ユーザが様々なアクションを発見し、アシスタントにそれを実行させるのに必要なユーザ入力の量を削減することによって、アシスタントに伴うユーザビリティを改善し得る。
【０００４】
一例では、本開示は、コンピューティングデバイスによってアクセス可能なアシスタントによって、コンピューティングデバイスのカメラからイメージデータを受け取ること、イメージデータに基づいて、コンピューティングデバイスからアクセス可能な複数のエージェントから、イメージデータに関連する1つまたは複数のアクションを実行するために推奨されるエージェントをアシスタントによって選択すること、およびアシスタントまたは推奨されるエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨するかどうかをアシスタントによって判定することを含む方法を対象とする。方法は、推奨されるエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨すると判定したことに応答して、アシスタントによって、推奨されるエージェントに、イメージデータに関連する1つまたは複数のアクションの実行を少なくとも開始させることをさらに含む。
【０００５】
別の例では、本開示は、コンピューティングデバイスのカメラからイメージデータを受け取るための手段と、イメージデータに基づいて、コンピューティングデバイスからアクセス可能な複数のエージェントから、イメージデータに関連する1つまたは複数のアクションを実行するために推奨されるエージェントを選択するための手段と、アシスタントまたは推奨されるエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨するかどうかを判定するための手段とを含むシステムを対象とする。システムは、推奨されるエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨すると判定したことに応答して、推奨されるエージェントに、イメージデータに関連する1つまたは複数のアクションの実行を少なくとも開始させるための手段をさらに含む。
【０００６】
別の例では、本開示は、コンピューティングデバイスの1つまたは複数のプロセッサによって実行されるとき、コンピューティングデバイスに、コンピューティングデバイスのカメラからイメージデータを受け取らせ、イメージデータに基づいて、コンピューティングデバイスからアクセス可能な複数のエージェントから、イメージデータに関連する1つまたは複数のアクションを実行するために推奨されるエージェントを選択させ、アシスタントまたは推奨されるエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨するかどうかを判定させる命令を含むコンピュータ可読記憶媒体を対象とする。命令はさらに、実行されるとき、1つまたは複数のプロセッサに、推奨されるエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨すると判定したことに応答して、推奨されるエージェントに、イメージデータに関連する1つまたは複数のアクションの実行を少なくとも開始させるようにさせる。
【０００７】
別の例では、本開示は、カメラ、入力装置、出力装置、1つまたは複数のプロセッサ、およびアシスタントに関連する命令を記憶するメモリを含むコンピューティングデバイスを対象とする。命令は、1つまたは複数のプロセッサによって実行されるとき、1つまたは複数のプロセッサに、コンピューティングデバイスのカメラからイメージデータを受け取らせ、イメージデータに基づいて、コンピューティングデバイスからアクセス可能な複数のエージェントから、イメージデータに関連する1つまたは複数のアクションを実行するために推奨されるエージェントを選択させ、アシスタントまたは推奨されるエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨するかどうかを判定させる。命令はさらに、実行されるとき、1つまたは複数のプロセッサに、推奨されるエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨すると判定したことに応答して、推奨されるエージェントに、イメージデータに関連する1つまたは複数のアクションの実行を少なくとも開始させる。
【０００８】
1つまたは複数の例の詳細が、添付の図面および以下の説明で説明される。本開示の他の特徴、目的、および利点が、説明および図面から、ならびに特許請求の範囲から明らかとなるであろう。
【図面の簡単な説明】
【０００９】
【図１】本開示の1つまたは複数の態様による、例示的アシスタントを実行する例示的システムを示す概念図である。
【図２】本開示の1つまたは複数の態様による、例示的アシスタントを実行するように構成される例示的コンピューティングデバイスを示すブロック図である。
【図３】本開示の1つまたは複数の態様による、例示的アシスタントを実行する1つまたは複数のプロセッサによって実施される例示的動作を示すフローチャートである。
【図４】本開示の1つまたは複数の態様による、例示的アシスタントを実行するように構成される例示的コンピューティングシステムを示すブロック図である。
【発明を実施するための形態】
【００１０】
図1は、本開示の1つまたは複数の態様による、例示的アシスタントを実行する例示的システムを示す概念図である。図1のシステム100は、ネットワーク130を介して、検索サーバシステム180、サードパーティ(3P)エージェントサーバシステム170A〜170N(集合的に、「3Pエージェントサーバシステム170」)、およびコンピューティングデバイス110と通信するデジタルアシスタントサーバ160を含む。システム100がデジタルアシスタントサーバ160、3Pエージェントサーバシステム170、検索サーバシステム180、およびコンピューティングデバイス110の間で分散されるものとして示されているが、他の例では、システム100に帰する特徴および技法が、コンピューティングデバイス110のローカル構成要素によって内部で実施され得る。同様に、デジタルアシスタントサーバ160および/または3Pエージェントサーバシステム170がいくつかの構成要素を含み、以下の説明においてその他の方法で検索サーバシステム180および/またはコンピューティングデバイス110に帰する様々な技法を実施し得る。
【００１１】
ネットワーク130は、コンピューティングシステム、サーバ、およびコンピューティングデバイスの間でデータを伝送するための任意の公衆またはプライベート通信ネットワーク、たとえばセルラー、Wi-Fi、および/または他のタイプのネットワークを表す。デジタルアシスタントサーバ160は、ネットワーク130を介してコンピューティングデバイス110とデータを交換し、コンピューティングデバイス110がネットワーク130に接続されるとき、コンピューティングデバイス110にとってアクセス可能である仮想アシスタンスサービスを提供し得る。同様に、3Pエージェントサーバシステム170は、ネットワーク130を介してコンピューティングデバイス110とデータを交換し、コンピューティングデバイス110がネットワーク130に接続されるとき、コンピューティングデバイス110にとってアクセス可能である仮想エージェントサービスを提供し得る。デジタルアシスタントサーバ160は、ネットワーク130を介して検索サーバシステム180とデータを交換し、検索サーバシステム180によって提供される検索サービスにアクセスし得る。コンピューティングデバイス110は、ネットワーク130を介して検索サーバシステム180とデータを交換し、検索サーバシステム180によって提供される検索サービスにアクセスし得る。3Pエージェントサーバシステム170は、ネットワーク130を介して検索サーバシステム180とデータを交換し、検索サーバシステム180によって提供される検索サービスにアクセスし得る。
【００１２】
ネットワーク130は、動作可能に相互結合される1つまたは複数のネットワークハブ、ネットワークスイッチ、ネットワークルータ、または任意の他のネットワーク機器を含み得、それによって、サーバシステム160、170、および180、ならびにコンピューティングデバイス110の間の情報の交換を実現する。コンピューティングデバイス110、デジタルアシスタントサーバ160、3Pエージェントサーバシステム170、および検索サーバシステム180は、任意の適切な通信技法を使用して、ネットワーク130を介してデータを送信および受信し得る。コンピューティングデバイス110、デジタルアシスタントサーバ160、3Pエージェントサーバシステム170、および検索サーバシステム180はそれぞれ、それぞれのネットワークリンクを使用して、ネットワーク130に動作可能に結合され得る。コンピューティングデバイス110、デジタルアシスタントサーバ160、3Pエージェントサーバシステム170、および検索サーバシステム180をネットワーク130に結合するリンクは、イーサネット(登録商標)または他のタイプのネットワーク接続であり得、そのような接続は、ワイヤレスおよび/またはワイヤード接続であり得る。
【００１３】
デジタルアシスタントサーバ160、3Pエージェントサーバシステム170、および検索サーバシステム180は、ネットワーク130などのネットワークに情報を送り、かつネットワークから情報を受信することのできる、1つまたは複数のデスクトップコンピュータ、ラップトップコンピュータ、メインフレーム、サーバ、クラウドコンピューティングシステムなどの任意の適切なリモートコンピューティングシステムを表す。デジタルアシスタントサーバ160はアシスタントサービスをホストする(または少なくともアシスタントサービスへのアクセスを提供する)。3Pエージェントサーバシステム170は支援エージェントをホストする(または少なくとも支援エージェントへのアクセスを提供する)。検索サーバシステム180は検索サービスをホストする(または少なくとも検索サービスへのアクセスを提供する)。いくつかの例では、デジタルアシスタントサーバ160、3Pエージェントサーバシステム170、および検索サーバシステム180は、クラウドを介してそれぞれのサービスへのアクセスを提供するクラウドコンピューティングシステムを表す。
【００１４】
コンピューティングデバイス110は、個々のモバイルまたは非モバイルコンピューティングデバイスを表す。コンピューティングデバイス110の例には、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、サーバ、メインフレーム、セットトップボックス、テレビジョン、ウェアラブルデバイス(たとえば、コンピュータ化された腕時計、コンピュータ化されたアイウェア、コンピュータ化された手袋など)、ホームオートメーションデバイスもしくはシステム(たとえば、インテリジェントサーモスタットもしくはセキュリティシステム)、音声インターフェースもしくはカウンタートップホームアシスタントデバイス、携帯情報端末(PDA)、ゲーミングシステム、メディアプレーヤ、eブックリーダ、モバイルテレビジョンプラットフォーム、自動車ナビゲーションもしくはインフォテインメントシステム、またはアシスタントを実行し、もしくはアシスタントにアクセスし、ネットワーク130などのネットワークを介して情報を受信するように構成された、任意の他のタイプのモバイル、非モバイル、ウェアラブル、および非ウェアラブルコンピューティングデバイスが含まれる。
【００１５】
コンピューティングデバイス110は、ネットワーク130を介してデジタルアシスタントサーバ160、3Pエージェントサーバシステム170、および/または検索サーバシステム180と通信し、デジタルアシスタントサーバ160によって提供されるアシスタントサービス、3Pエージェントサーバシステム170によって提供される仮想エージェント、および/または検索サーバシステム180によって提供される検索サービスにアクセスし得る。アシスタントサービスを提供している間に、デジタルアシスタントサーバ160は、ネットワーク130を介して検索サーバシステム180と通信し、アシスタントサービスのユーザにタスクを完了するための情報を提供するための検索結果を取得し得る。デジタルアシスタントサーバ160は、ネットワーク130を介して3Pエージェントサーバシステム170と通信し、3Pエージェントサーバシステム170によって提供される仮想エージェントのうちの1つまたは複数を関与させて、アシスタントサービスのユーザに追加の支援を提供し得る。3Pエージェントサーバシステム170は、ネットワーク130を介して検索サーバシステム180と通信し、言語エージェントのユーザにタスクを完了するための情報を提供するための検索結果を取得し得る。
【００１６】
図1の例では、コンピューティングデバイス110は、ユーザインターフェースデバイス(UID)112、カメラ114、ユーザインターフェース(UI)モジュール120、アシスタントモジュール122A、3Pエージェントモジュール128aA〜128aN(集合的に「エージェントモジュール128a」)、およびエージェント索引(Agent Index)124Aを含む。デジタルアシスタントサーバ160は、アシスタントモジュール122Bおよびエージェント索引124Bを含む。検索サーバシステム180は検索モジュール182を含む。各3Pエージェントサーバシステム170は、それぞれ3Pエージェントモジュール128bA〜128bN(集合的に「エージェントモジュール128b」)を含む。
【００１７】
コンピューティングデバイス110のUID112は、コンピューティングデバイス110についての入力および/または出力装置として機能し得る。UID112は、様々な技術を使用して実装され得る。たとえば、UID112は、存在感応入力画面、マイクロフォン技術、赤外線センサ技術、カメラ、またはユーザ入力を受け取る際に使用するための他の入力装置技術を使用して、入力装置として機能し得る。UID112は、任意の1つまたは複数のディスプレイ装置、スピーカ技術、触覚フィードバック技術、またはユーザに情報を出力する際に使用するための他の出力装置技術を使用して、ユーザに出力を提示するように構成された出力装置として機能し得る。
【００１８】
コンピューティングデバイス110のカメラ114は、イメージを記録または取り込むための器具であり得る。カメラ114は、個々の静止写真、またはビデオまたはムービーを構成するイメージのシーケンスを取り込み得る。カメラ114は、コンピューティングデバイス110の物理的構成要素であり得る。カメラ114は、コンピューティングデバイス110のユーザとコンピューティングデバイス110において実行中のアプリケーション(およびカメラ114の機能)の間のインターフェースとして働くカメラアプリケーションを含み得る。カメラ114は、とりわけ、1つまたは複数のイメージを取り込むこと、1つまたは複数の物体に対して焦点を合わせること、様々なフラッシュ設定を利用することなどの様々な機能を実施し得る。
【００１９】
モジュール120、122A、122B、128a、128b、および182は、コンピューティングデバイス110、デジタルアシスタントサーバ160、検索サーバシステム180、および3Pエージェントサーバシステム170のうちの1つの中にあり、かつ/またはそれらのうちの1つにおいて実行中のソフトウェア、ハードウェア、ファームウェア、あるいはハードウェア、ソフトウェア、およびファームウェアの混合を使用して記載の動作を実施し得る。コンピューティングデバイス110、デジタルアシスタントサーバ160、検索サーバシステム180、および3Pエージェントサーバシステム170は、複数のプロセッサまたは複数のデバイスと共に、モジュール120、122A、122B、128a、128b、および182を実行し得る。コンピューティングデバイス110、デジタルアシスタントサーバ160、検索サーバシステム180、および3Pエージェントサーバシステム170は、基礎となるハードウェア上で実行中の仮想マシンとして、モジュール120、122A、122B、128a、128b、および182を実行し得る。モジュール120、122A、122B、128a、128b、および182は、オペレーティングシステムの1つまたは複数のサービスとして、あるいはコンピューティングデバイス110、デジタルアシスタントサーバ160、3Pエージェントサーバシステム170、または検索サーバシステム180のコンピューティングプラットフォームのアプリケーション層において実行し得る。
【００２０】
UIモジュール120は、UID112とのユーザ対話、カメラ114によって検出される入力、ならびにUID112、カメラ114、およびコンピューティングデバイス110の他の構成要素の間の対話を管理し得る。UIモジュール120は、UID112を介してアシスタントサービスを提供するようにデジタルアシスタントサーバ160と対話し得る。コンピューティングデバイス110のユーザがUID112において出力を閲覧し、かつ/または入力を提供するとき、UIモジュール120は、UID112にユーザインターフェースを出力させ得る。
【００２１】
ユーザの個人情報を利用、記憶、および/または解析するための、ユーザから明示的で曖昧でない許可を受け取った後、ユーザが様々な時にコンピューティングデバイス110と対話するとき、かつユーザとコンピューティングデバイス110が異なる位置にあるとき、UIモジュール120、UID112、およびカメラ114は、ユーザから入力(たとえば、音声入力、タッチ入力、非タッチもしくは存在感応入力(Presence-Sensitive Input)、ビデオ入力、オーディオ入力など)の1つまたは複数の指示を受け取り得る。UIモジュール120、UID112、およびカメラ114は、UID112およびカメラ114において検出された入力を解釈し得、UID112およびカメラ114において検出された入力についての情報を、アシスタントモジュール122ならびに/あるいはコンピューティングデバイス110において実行中の1つまたは複数の他の関連するプラットフォーム、オペレーティングシステム、アプリケーション、および/またはサービスに中継し、たとえばコンピューティングデバイス110に機能を実施させ得る。
【００２２】
許可を与えた後であっても、ユーザは、コンピューティングデバイス110に入力を与えることによって許可を取り消し得る。それに応答して、コンピューティングデバイス110は、ユーザの個人的許可を利用し、削除することになる。
【００２３】
UIモジュール120は、コンピューティングデバイス110ならびに/あるいはサーバシステム160および180などの1つまたは複数のリモートコンピューティングシステムにおいて実行中の1つまたは複数の関連するプラットフォーム、オペレーティングシステム、アプリケーション、および/またはサービスから情報および命令を受け取り得る。さらに、UIモジュール120は、コンピューティングデバイス110において実行中の1つまたは複数の関連するプラットフォーム、オペレーティングシステム、アプリケーション、および/またはサービスと、コンピューティングデバイス110と共に出力(たとえば、グラフィック、光の明滅、音、触覚応答など)を生成するためのコンピューティングデバイス110の様々な出力装置(たとえば、スピーカ、LEDインジケータ、オーディオまたは触覚出力装置など)との間の媒介として働き得る。たとえば、UIモジュール120は、UIモジュール120がネットワーク130を介してデジタルアシスタントサーバ160から受け取るデータに基づいて、UID112にユーザインターフェースを出力させ得る。UIモジュール120は、デジタルアシスタントサーバ160および/またはアシスタントモジュール122からの入力として、ユーザインターフェースを提示するための情報(たとえば、オーディオデータ、テキストデータ、イメージデータなど)および命令を受け取り得る。
【００２４】
検索モジュール182は、(たとえば、コンピューティングデバイス110に関連するコンテキスト情報に基づいて)検索モジュール182が自動的に生成する検索照会、または検索モジュール182がデジタルアシスタントサーバ160、3Pエージェントサーバシステム170、またはコンピューティングデバイス110から(たとえば、コンピューティングデバイス110のユーザの代わりにアシスタントが完了しつつあるタスクの部分として)受信する検索照会に関連すると判定される情報の検索を実行し得る。検索モジュール182は、検索照会に基づいてインターネット検索またはローカルデバイス検索を実施し、検索照会に関係する情報を識別し得る。検索を実行した後、検索モジュール182は、検索から返された情報(たとえば、検索結果)を、デジタルアシスタントサーバ160、3Pエージェントサーバシステム170のうちの1つまたは複数、あるいはコンピューティングデバイス110に出力し得る。
【００２５】
検索モジュール182は、イメージベースの検索を実行し、イメージ内に含まれる1つまたは複数の視覚エンティティを決定し得る。たとえば、検索モジュール182は、(たとえば、アシスタントモジュール122からの)入力イメージデータを受け取り、それに応答して、イメージから認識可能であるエンティティ(たとえば、物体)の1つまたは複数のラベルまたは他の指示を出力し得る。たとえば、検索モジュール182は、入力としてワインボトルのイメージを受け取り、ワインボトル、ワインのブランド、ワインのタイプ、ボトルのタイプなどの、視覚エンティティのラベルまたは他の識別子を出力し得る。別の例として、検索モジュール182は、入力として街路の犬のイメージを受け取り、犬、街路、通行、前景の犬、ボストンテリアなどの、街路の光景内で認識可能な視覚エンティティのラベルまたは他の識別子を出力し得る。したがって、検索モジュール182は、イメージデータ(たとえば、イメージまたはビデオストリーム)に関連する1つまたは複数の関連する物体またはエンティティを示す情報またはエンティティを出力し得、情報またはエンティティから、アシスタントモジュール122Aおよび122Bが、1つまたは複数の潜在的アクションを決定するように、イメージデータに関連する「インテント(Intent)」を推論し得る。
【００２６】
コンピューティングデバイス110のアシスタントモジュール122Aと、デジタルアシスタントサーバ160のアシスタントモジュール122Bとはそれぞれ、a)コンピューティングデバイスのユーザから受け取ったユーザ入力(たとえば、発話、テキスト入力など)を満たし、かつ/またはb)カメラ114などのカメラによって取り込まれたイメージデータから推論されるアクションを実行するようにエージェントを選択するように構成されるアシスタントを自動的に実行するための、本明細書で説明される類似の機能を実施し得る。アシスタントモジュール122Bおよびアシスタントモジュール122Aは、集合的にアシスタントモジュール122と呼ばれることがある。アシスタントモジュール122Bは、デジタルアシスタントサーバ160がネットワーク130を介して(たとえば、コンピューティングデバイス110に)提供するアシスタントサービスの部分としてエージェント索引124Bを維持し得る。アシスタントモジュール122Aは、コンピューティングデバイス110においてローカルに実行するアシスタントサービスの部分としてエージェント索引124Aを維持し得る。エージェント索引124Aおよびエージェント索引124Bは、集合的にエージェント索引124と呼ばれることがある。アシスタントモジュール122Bおよびエージェント索引124Bは、例示的アシスタントのサーバ側またはクラウド実装を表し、アシスタントモジュール122Aおよびエージェント索引124Aは、例示的アシスタントのクライアント側またはローカル実装を表す。
【００２７】
モジュール122Aおよび122Bは、それぞれ、コンピューティングデバイス110のユーザなどの個人についてのタスクまたはサービスを実施し得るインテリジェントパーソナルアシスタントとして実効するように構成されたソフトウェアエージェントを含み得る。モジュール122Aおよび122Bは、(たとえば、UID112において検出された)ユーザ入力、(たとえば、カメラ114によって取り込まれた)イメージデータ、(たとえば、位置、時刻、天気、履歴などに基づく)コンテキストアウェアネス、および/または(たとえば、コンピューティングデバイス110、デジタルアシスタントサーバ160にローカルに記憶され、検索サーバシステム180によって提供される検索サービスを介して取得され、またはネットワーク130を介して何らかの他の情報源を介して得られる)様々な他の情報源からの他の情報(たとえば、天気または交通状況、ニュース、株価、スポーツスコア、ユーザスケジュール、運行スケジュール、小売価格など)にアクセスする能力に基づいて、これらのタスクまたはサービスを実施し得る。
【００２８】
モジュール122Aおよび122Bは、様々な情報源から受け取った入力に対して人工知能および/または機械学習技法を実施し、ユーザの代わりに1つまたは複数のタスクを自動的に識別し、完了し得る。たとえば、カメラ114によって取り込まれたイメージデータを仮定すると、アシスタントモジュール122Aは、ニューラルネットワークを利用して、イメージデータから、ユーザが実施することを望み得るタスク、ならびに/あるいはタスクを実施するための1つまたは複数のエージェントを決定し得る。
【００２９】
いくつかの例では、モジュール122によって提供されるアシスタントは、ファーストパーティ(1P)アシスタントおよび/または1Pエージェントと呼ばれる。たとえば、モジュール122によって表されるエージェントは、コンピューティングデバイス110のオペレーティングシステムおよび/またはデジタルアシスタントサーバ160の所有者と共通パブリッシャおよび/または共通ディベロッパを共有し得る。したがって、いくつかの例では、モジュール122によって表されるエージェントは、サードパーティ(3P)エージェントなどの他のエージェントにとって利用可能ではない能力を有し得る。いくつかの例では、モジュール122によって表されるエージェントは、どちらも1Pエージェントであるわけではないことがある。たとえば、アシスタントモジュール122Aによって表されるエージェントは1Pエージェントであり得るのに対して、アシスタントモジュール122Bによって表されるエージェントは3Pエージェントであり得る。
【００３０】
上記で論じたように、アシスタントモジュール122Aは、コンピューティングデバイス110のユーザなどの個人についてのタスクまたはサービスを実施し得るインテリジェントパーソナルアシスタントとして実行するように構成されたソフトウェアエージェントを表し得る。しかしながら、いくつかの例では、アシスタントが個人についてのタスクまたはサービスを実施するために他のエージェントを利用することが望ましいことがある。
【００３１】
3Pエージェントモジュール128bおよび128a(集合的に、「3Pエージェントモジュール128」)は、個人についてのタスクまたはサービスを実施するためにアシスタントモジュール122によって利用され得るシステム100の他のアシスタントまたはエージェントを表す。モジュール128によって提供されるアシスタントおよび/またはエージェントは、サードパーティ(3P)アシスタントおよび/または3Pエージェントと呼ばれることがある。3Pエージェントモジュール128によって表されるアシスタントおよび/またはエージェントは、コンピューティングデバイス110のオペレーティングシステムおよび/またはデジタルアシスタントサーバ160の所有者と共通パブリッシャを共有しないことがある。したがって、いくつかの例では、モジュール128によって表されるアシスタントおよび/またはエージェントは、1Pエージェントアシスタントおよび/またはエージェントなどの他のアシスタントおよび/またはエージェントにとって利用可能であるデータにアクセスする能力を有さないことがある。言い換えると、各エージェントモジュール128は、コンピューティングデバイス110からアクセス可能であるそれぞれのサードパーティサービスに関連する3Pエージェントであり得、いくつかの例では、各エージェントモジュール128に関連するそれぞれのサードパーティサービスは、アシスタントモジュール122によって提供されるサービスとは異なり得る。3Pエージェントモジュール128bは、例示的3Pエージェントのサーバ側またはクラウド実装を表すのに対して、3Pエージェントモジュール128aは、例示的3Pエージェントのクライアント側またはローカル実装を表す。
【００３２】
3Pエージェントモジュール128は、コンピューティングデバイス110などのコンピューティングデバイスのユーザから受け取った発話を満たすように、またはコンピューティングデバイス110などのコンピューティングデバイスによって取得したイメージデータに少なくとも部分的に基づいてタスクもしくはアクションを実行するように構成されるそれぞれのエージェントを自動的に実行し得る。3Pエージェントモジュール128のうちの1つまたは複数は、コンピューティングデバイス110のユーザなどの個人についてのタスクまたはサービスを実施し得るインテリジェントパーソナルアシスタントとして実行するように構成されたソフトウェアエージェントを表し得るのに対して、1つまたは複数の他の3Pエージェントモジュール128は、アシスタントモジュール122についてのタスクまたはサービスを実施するためにアシスタントモジュール122によって利用され得るソフトウェアエージェントを表し得る。
【００３３】
アシスタントモジュール122Aおよび/またはアシスタントモジュール122Bなどのシステム100の1つまたは複数の構成要素は、エージェント索引124Aおよび/またはエージェント索引124B(集合的に、「エージェント索引124」)を維持し、コンピューティングデバイス110のユーザなどの個人にとって利用可能な、またはコンピューティングデバイス110において実行中の、もしくはコンピューティングデバイス110にとって利用可能な、アシスタントモジュール122などのアシスタントにとって利用可能なエージェントに関係するエージェント情報を半構造化索引内に記憶し得る。たとえば、エージェント索引124は、利用可能な各エージェントについてのエージェント情報を有する単一のエントリを含み得る。
【００３４】
特定のエージェントのためにエージェント索引124内に含まれるエントリが、特定のエージェントのディベロッパによって提供されるエージェント情報から構築され得る。そのようなエントリ内に含まれ得る、またはエントリを構築するために使用され得るいくつかの例示的情報フィールドには、限定はしないが、エージェントの説明、エージェントの1つまたは複数のエントリポイント、エージェントのカテゴリ、エージェントの1つまたは複数のトリガリング語句、エージェントに関連するウェブサイト、エージェントの機能のリスト、および/または1つまたは複数のグラフィカルインテント(たとえば、エージェントによって作用され得るイメージまたはイメージ部分内に含まれるエンティティの識別子)が含まれる。いくつかの例では、情報フィールドのうちの1つまたは複数は、フリーフォーム自然言語で書かれ得る。いくつかの例では、情報フィールドのうちの1つまたは複数が、事前定義されたリストから選択され得る。たとえば、カテゴリフィールドが、カテゴリの事前定義されたセット(たとえば、ゲーム、生産性、通信)から選択され得る。いくつかの例では、エージェントのエントリポイントは、エージェントとインターフェースするために使用されるデバイスタイプ(たとえば、セルフォン)であり得る。いくつかの例では、エージェントのエントリポイントは、リソースアドレスまたはエージェントの他の引数であり得る。
【００３５】
いくつかの例では、エージェント索引124は、利用可能なエージェントの使用および/または実施に関係するエージェント情報を記憶し得る。たとえば、エージェント索引124は、利用可能な各エージェントについてのエージェント品質スコアを含み得る。いくつかの例では、エージェント品質スコアは、特定のエージェントが、競合するエージェントよりも頻繁に選択されるかどうか、エージェントのディベロッパが他の高品質エージェントを生成したかどうか、エージェントのディベロッパが他のユーザプロパティに関する良好な(または不良な)スパムスコアを有するかどうか、およびユーザが一般に、実行中にエージェントを中止するかどうかのうちの1つまたは複数に基づいて決定され得る。いくつかの例では、エージェント品質スコアが、0と1を含む0から1の間の値として表され得る。
【００３６】
エージェント索引124は、グラフィカルインテントとエージェントとの間のマッピングを提供し得る。上記で論じたように、特定のエージェントのディベロッパは、特定のエージェントに関連付けられるべき1つまたは複数のグラフィカルインテントを提供し得る。グラフィカルインテントの例には、数学演算子または数式、ロゴ、アイコン、商標、動物の顔もしくは特徴を持つ人間、建物、ランドマーク、サイネージ、シンボル、物体、エンティティ、概念、またはイメージデータから認識可能であり得る任意の他の物が含まれる。いくつかの例では、エージェント選択の品質を改善するために、アシスタントモジュール122が、提供されるグラフィカルインテントに対して拡張し得る。たとえば、アシスタントモジュール122は、グラフィカルインテントを他の類似の、または関係するグラフィカルインテントに関連付けることによってグラフィカルインテントを拡張し得る。たとえば、アシスタントモジュール122は、犬についてのグラフィカルインテントに対して、より特定の犬に関係するインテント(たとえば、犬種、色など)、またはより一般的な犬に関係するインテント(たとえば、他のペット、他の動物など)と共に拡張し得る。
【００３７】
動作の際に、アシスタントモジュール122Aは、UIモジュール120から、カメラ114によって取得されたイメージデータを受け取り得る。一例として、アシスタントモジュール122Aは、カメラ114の視野内の1つまたは複数の視覚エンティティを示すイメージデータを受け取り得る。たとえば、レストラン内で座っている間、ユーザが、コンピューティングデバイス110のカメラ114をテーブル上のワインボトルに向け、カメラ114にワインボトルの写真を撮らせるユーザ入力をUID112に与え得る。イメージデータが、カメラアプリケーション、メッセージングアプリケーションなどの別々のアプリケーション、およびアシスタントモジュール122Aに提供されるイメージへのアクセスのコンテキストにおいて、あるいはアシスタントモジュール122Aの各側面を操作するアシスタントアプリケーションのコンテキスト内で取り込まれ得る。
【００３８】
本開示の1つまたは複数の技法によれば、アシスタントモジュール122Aは、推奨されるエージェントモジュール128を選択して、イメージデータに関連する1つまたは複数のアクションを実行し得る。たとえば、アシスタントモジュール122Aは、1Pエージェント(すなわち、アシスタントモジュール122Aによって提供される1Pエージェント)、3Pエージェント(すなわち、3Pエージェントモジュール128のうちの1つによって提供される3Pエージェント)、または1Pエージェントと3Pエージェントの何らかの組合せが、ワインボトルのイメージデータに関係するタスクを実施する際にアクションを実行し、またはユーザを支援し得るかどうかを判定し得る。
【００３９】
アシスタントモジュール122Aは、エージェント選択をイメージデータの解析に基づかせ得る。一例として、アシスタントモジュール122Aは、イメージデータに関する視覚認識技法を実施して、イメージデータに関連するすべての可能なエンティティ、物体、および概念を決定し得る。たとえば、アシスタントモジュール122Aは、検索モジュール182がイメージデータのイメージベースの検索を実施することによってイメージデータに関する視覚認識技法を実施することを求める要求と共に、ネットワーク130を介して検索サーバシステム180にイメージデータを出力し得る。要求に応答して、アシスタントモジュール122Aは、ネットワーク130を介して、検索モジュール182によって実施されたイメージベースの検索から返されたインテントのリストを受け取り得る。ワインボトルのイメージのイメージベースの検索から返されたインテントのリストは、一般には「ワインボトル」または「ワイン」に関係するインテントを返し得る。
【００４０】
アシスタントモジュール122Aは、エージェント索引124A内のエントリに基づいて、何らかのエージェント(たとえば、1Pまたは3Pエージェント)がイメージデータから推論されるインテントに登録しているかどうかを判定し得る。たとえば、アシスタントモジュール122Aは、エージェント索引124A内にワインインテントを入力し、ワインインテントに登録している1つまたは複数のエージェントモジュール128のリストを出力し得、したがって、ワインに関連するアクションを実行するために使用され得る。
【００４１】
アシスタントモジュール122Aは、インテントに登録している1つまたは複数のエージェントをランク付けし、1つまたは複数の最高のランキングエージェントを推奨されるエージェントとして選択し、イメージデータに関連するアクションを実行し得る。たとえば、アシスタントモジュール122Aは、インテントに登録している各エージェントモジュール128に関連するエージェント品質スコアに基づいてランキングを決定し得る。アシスタントモジュール122Aは、人気または使用頻度、すなわちどれほど頻繁にコンピューティングデバイス110のユーザまたは他のコンピューティングデバイスのユーザが特定のエージェントモジュール128を使用するかに基づいて、エージェントをランク付けし得る。アシスタントモジュール122Aは、コンテキスト(たとえば、位置、時刻、および他のコンテキスト情報)に基づいてエージェントモジュール128をランク付けし、識別されたインテントに登録しているすべてのエージェントから、推奨されるエージェントモジュール128を選択し得る。
【００４２】
アシスタントモジュール122Aは、所与のコンテキスト、特定のユーザ、および/または特定のインテントについて推奨するための好ましいエージェントモジュール128を予測するための規則を開発し得る。たとえば、コンピューティングデバイス110のユーザおよび他のコンピューティングデバイスのユーザから取得された過去のユーザ対話データに基づいて、アシスタントモジュール122Aは、大部分のユーザが特定のインテントに基づいてアクションを実行するために特定のエージェントモジュール128を使用することを好むが、コンピューティングデバイス110のユーザはむしろ、特定のインテントに基づいてアクションを実行するために異なるエージェントモジュール128を使用することを好み、したがってユーザの好ましいエージェントを大部分の他のユーザが好むエージェントよりも高くランク付けし得ると決定し得る。
【００４３】
アシスタントモジュール122Aは、アシスタントモジュール122Aまたは推奨されるエージェントモジュール128がイメージデータに関連する1つまたは複数のアクションを実行することを推奨するかどうかを判定し得る。たとえば、いくつかのケースでは、アシスタントモジュール122Aは、イメージデータに少なくとも部分的に基づいてアクションを実行するための推奨されるエージェントであり得るのに対して、エージェントモジュール128のうちの1つは、推奨されるエージェントであり得る。アシスタントモジュール122Aは、1つまたは複数のエージェントモジュール128の中のアシスタントモジュール122Aをランク付けし、どちらかの最高ランキングエージェント(たとえば、アシスタントモジュール122Aまたはエージェントモジュール128のどちらか)を選択し、カメラ114から受け取ったイメージデータから推論されるインテントに基づいてアクションを実行し得る。たとえば、エージェントモジュール128aAは、様々なワインについての情報を提供するように構成されたエージェントであり得、ワインがそれから購入され得るコマースサービスへのアクセスをも提供し得る。アシスタントモジュール122Aは、エージェントモジュール128aAがワインに関係するアクションを実行するための推奨されるエージェントであると決定し得る。
【００４４】
推奨されるエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨すると判定したことに応答して、アシスタントモジュール122Aは、推奨されるエージェントの指示を出力し得る。たとえば、アシスタントモジュール122Aは、ユーザが現在時刻にアクションを実行するのを助けるために、カメラ114によって取り込まれたイメージデータに少なくとも部分的に基づいて、アシスタントモジュール122Aがエージェントモジュール128aAとのユーザ対話を推奨していることを示す可聴通知、視覚通知、および/または触覚通知を、UID112を介してUIモジュール120に出力させ得る。通知は、アシスタントモジュール122Aが、ユーザがワインに関心があり得ることをイメージデータから推論し、エージェントモジュール128aAが質問に回答し、さらにはワインを注文するのを助け得ることをユーザに通知し得るという指示を含み得る。
【００４５】
いくつかの例では、推奨されるエージェントは複数の推奨されるエージェントであり得る。そのようなケースでは、アシスタントモジュール122Aは、ユーザが特定の推奨されるエージェントを選ぶことを求める要求を通知の部分として出力し得る。
【００４６】
アシスタントモジュール122Aは、推奨されるエージェントを確認するユーザ入力を受け取り得る。たとえば、通知を出力した後、ユーザは、ユーザが、推奨されるエージェントを使用して、カメラ114によって取得されたイメージデータに対するアクションを実行することを望むことを確認する、UID112でのタッチ入力またはUID112に対する音声入力を与え得る。
【００４７】
アシスタントモジュール122Aがそのようなユーザ確認、または他の明示的な同意を受け取らない限り、アシスタントモジュール122Aは、カメラ114によって取り込まれた何らかのイメージデータをモジュール122Aのいずれかに出力することを控え得る。明確には、アシスタントモジュール122は、カメラ114によって取り込まれたイメージデータを含む、ユーザまたはコンピューティングデバイス110の何らかの個人情報を利用または解析することを、アシスタントモジュール122がユーザからそのように行うための明示的な同意を受け取らない限り控え得る。アシスタントモジュール122はまた、ユーザが同意を取り下げ、または除去する機会をも提供し得る。
【００４８】
いずれにしても、推奨されるエージェントを確認するユーザ入力を受け取ったことに応答して、アシスタントモジュール122Aは、推奨されるエージェントに、イメージデータに関連する1つまたは複数のアクションの実行を少なくとも開始させ得る。たとえば、アシスタントモジュール122Aは、ユーザが推奨されるエージェントを使用して、カメラ114によって取得されたイメージデータに対するアクションを実行することを望むことを確認する情報を受け取り、アシスタントモジュール122Aは、カメラ114によって取り込まれたイメージデータを、イメージデータを処理し、任意の適切なアクションを行うための命令と共に、推奨されるエージェントに送り得る。たとえば、アシスタントモジュール122Aは、カメラ114によって取り込まれたイメージデータをエージェントモジュール128aAに送り得る。エージェントモジュール128aAは、イメージデータに関するそれ自体の解析を実施し、ウェブサイトを開き、アクションをトリガし、ユーザとの会話を開始し、ビデオを示し、またはイメージデータを使用して任意の他の関係するアクションを実行し得る。たとえば、エージェントモジュール128aAは、ワインボトルのイメージデータに関するそれ自体のイメージ解析を実施し、特定のブランドまたはタイプのワインを決定し、UIモジュール120およびUID112を介して、ボトルを購入したい、またはレビューを見たいかどうかをユーザに尋ねる通知を出力し得る。
【００４９】
このようにして、本開示の技法によるアシスタントは、ユーザの環境にとって適切であり、またはグラフィカル「インテント」に関係し得るアクションを決定するように構成され得るだけでなく、アクションを実行するための適切なアクタまたはエージェントを推奨するようにも構成され得る。したがって、記載の技法は、ユーザがユーザの環境内で実施され得るアクションを発見するのに必要なユーザ入力の量を削減することによって、アシスタントに伴うユーザビリティを改善し得、さらに、ずっと少ない入力で様々なアクションをアシスタントに実施させ得る。
【００５０】
前述の手法によって提供されるいくつかの利点には以下のものがある。(1)ユーザからの特定の照会、またはユーザがドキュメンテーションまたは他の方式を介してアシスタントのアクションまたは機能を学習して時間を費やすための特定の照会に依拠するのではなく、事前にユーザをアクションまたは機能に導くことによって、処理の複雑さおよびデバイスが行うための時間が削減され得る、(2)意味のある情報、およびユーザに関連する情報がローカルに記憶され得、プライベートデータのための、ユーザのデバイス上の複雑な、メモリを消費する伝送セキュリティプロトコルの必要が低減される、(3)例示的アシスタントがユーザをアクションまたは機能に導くので、ユーザによって要求される特定の照会が少なくなり得、それによって、照会再書込みおよび他の計算的に複雑なデータ検索のためのユーザデバイスに対する要求が削減される、(4)特定の照会の量が削減されるにつれ、アシスタントモジュールが特定の照会に応答する必要のあるデータが削減されるので、ネットワーク使用量が削減され得る。このようにして、アシスタントは、インターフェースまたはガイドがアシスタントの全機能をユーザに紹介することなく、そのように行い得る。アシスタントは、ユーザの環境に基づいて、具体的にはイメージデータを使用して、ユーザをアクションまたは機能に導き得る。アシスタントは、アシスタントを起動し、アシスタントのアクションまたは機能を起動し、アシスタントを前記アクションまたは機能のオブジェクトとしてのイメージに導くための別々の入力を必要とするのではなく、イメージへのユーザの関心の直接的表現としてイメージデータのプロビジョンを使用し得る。
【００５１】
図2は、本開示の1つまたは複数の態様による、例示的アシスタントを実行するように構成される例示的コンピューティングデバイスを示すブロック図である。図2のコンピューティングデバイス210が、図1のコンピューティングデバイス110の一例として以下で説明される。図2は、コンピューティングデバイス210のただ1つの特定の例を示し、コンピューティングデバイス210の多くの他の例が他の事例では使用され得、例示的コンピューティングデバイス210内に含まれる構成要素のサブセットを含み得、図2には示されない追加の構成要素を含み得る。
【００５２】
図2の例に示されるように、コンピューティングデバイス210は、ユーザインターフェースデバイス(USD)212、1つまたは複数のプロセッサ240、1つまたは複数の通信ユニット242、カメラ214を含む1つまたは複数の入力構成要素244、1つまたは複数の出力構成要素246、および1つまたは複数の記憶構成要素248を含む。USD212は、ディスプレイ構成要素202、存在感応入力構成要素204、マイクロフォン構成要素206、およびスピーカ構成要素208を含む。コンピューティングデバイス210の記憶構成要素248は、UIモジュール220、アシスタントモジュール222、検索モジュール282、1つまたは複数のアプリケーションモジュール226、エージェント選択モジュール227、3Pエージェントモジュール228A〜228N(集合的に、「3Pエージェントモジュール228」)、コンテキストモジュール230、およびエージェント索引224を含む。
【００５３】
通信チャネル250が、構成要素間通信のために構成要素212、240、242、244、246、および248のそれぞれを(物理的に、通信可能に、かつ/または動作可能に)相互接続し得る。いくつかの例では、通信チャネル250は、システムバス、ネットワーク接続、プロセス間通信データ構造、またはデータを通信するための任意の他の方法を含み得る。
【００５４】
コンピューティングデバイス210の1つまたは複数の通信ユニット242は、1つまたは複数のネットワーク上(たとえば、図1のシステム100のネットワーク130)でネットワーク信号を送信および/または受信することによって、1つまたは複数のワイヤードおよび/またはワイヤレスネットワークを介して外部デバイス(たとえば、図1のシステム100のデジタルアシスタントサーバ160および/または検索サーバシステム180)と通信し得る。通信ユニット242の例には、ネットワークインターフェースカード(たとえば、イーサネットカード)、光トランシーバ、無線周波数トランシーバ、全地球測位システム(GPS)受信機、あるいは情報を送り、かつ/または受信し得る任意の他のタイプのデバイスが含まれる。通信ユニット242の他の例には、短波無線、セルラーデータ無線、ワイヤレスネットワーク無線、ならびにユニバーサルシリアルバス(USB)コントローラが含まれ得る。
【００５５】
カメラ214を含むコンピューティングデバイス210の1つまたは複数の入力構成要素244は、入力を受け取り得る。入力の例は、触覚入力、テキスト入力、オーディオ入力、イメージ入力、およびビデオ入力である。カメラ114に加えて、一例では、コンピューティングデバイス210の入力構成要素242には、存在感応入力装置(たとえば、タッチセンシティブ画面、PSD)、マウス、キーボード、音声応答システム、マイクロフォン、またはコンピューティングデバイス210の環境の入力、または人間もしくはマシンからの入力を検出するための任意の他のタイプのデバイスが含まれる。いくつかの例では、入力構成要素242には、1つまたは複数のセンサ構成要素、1つまたは複数の位置センサ(GPS構成要素、Wi-Fi構成要素、セルラー構成要素)、1つまたは複数の温度センサ、1つまたは複数の運動センサ(たとえば、加速度計、ジャイロ)、1つまたは複数の圧力センサ(たとえば、気圧計)、1つまたは複数の周辺光センサ、1つまたは複数の他のセンサ(たとえば、赤外線近接センサ、湿度計センサなど)が含まれ得る。ほんのいくつかの他の非限定的な例を挙げると、他のセンサには、心拍数センサ、磁力計、グルコースセンサ、嗅覚センサ、コンパスセンサ、ステップカウンタセンサが含まれ得る。
【００５６】
コンピューティングデバイス110の1つまたは複数の出力構成要素246は出力を生成し得る。出力の例は、触覚出力、オーディオ出力、およびビデオ出力である。一例では、コンピューティングデバイス210の出力構成要素246には、存在感応ディスプレイ、サウンドカード、ビデオグラフィックスアダプタカード、スピーカ、陰極線管(CRT)モニタ、液晶ディスプレイ(LCD)、または人間もしくはマシンに出力を生成するための任意の他のタイプのデバイスが含まれる。
【００５７】
コンピューティングデバイス210のUID212は、コンピューティングデバイス110のUID112と同様であり得、ディスプレイ構成要素202、存在感応入力構成要素204、マイクロフォン構成要素206、およびスピーカ構成要素208を含む。ディスプレイ構成要素202は、USD212によって情報が表示される画面であり得、存在感応入力構成要素204は、ディスプレイ構成要素202における物体、かつ/またはディスプレイ構成要素付近の物体を検出し得る。スピーカ構成要素208は、UID212によって可聴情報がそれから再生されるスピーカであり得、マイクロフォン構成要素206は、ディスプレイ構成要素202および/またはスピーカ構成要素208において、かつ/またはそれらの付近で与えられる可聴入力を検出し得る。
【００５８】
コンピューティングデバイス210の内部構成要素として示されているが、UID212は、入力および出力を送信および/または受信するためのデータ経路をコンピューティングデバイス210と共有する外部構成要素をも表し得る。たとえば、一例では、UID212は、コンピューティングデバイス210の外部パッケージング内に配置され、物理的に接続されたコンピューティングデバイス210の組込み構成要素(たとえば、携帯電話上の画面)を表す。別の例では、UID212は、コンピューティングデバイス210のパッケージングまたはハウジング外に配置され、物理的に分離されたコンピューティングデバイス210の外部構成要素(たとえば、コンピューティングデバイス210とワイヤードおよび/またはワイヤレスデータ経路を共有するモニタ、プロジェクタなど)を表す。
【００５９】
1つの例示的範囲として、存在感応入力構成要素204は、ディスプレイ構成要素202から2インチ以下の中の、指やスタイラスなどの物体を検出し得る。存在感応入力構成要素204は、物体が検出されたディスプレイ構成要素202の位置(たとえば、[x,y]座標)を決定し得る。別の例示的範囲では、存在感応入力構成要素204は、ディスプレイ構成要素202から6インチ以下の物体を検出し得、他の範囲も可能である。存在感応入力構成要素204は、容量性、誘導性、および/または光学的認識技法を使用して、ユーザの指によって選択されたディスプレイ構成要素202の位置を決定し得る。いくつかの例では、存在感応入力構成要素204はまた、ディスプレイ構成要素202に関して説明したように、触覚刺激、オーディオ刺激、またはビデオ刺激を使用してユーザに出力を提供する。図2の例では、PSD212はユーザインターフェースを提示し得る。
【００６０】
スピーカ構成要素208は、コンピューティングデバイス210のハウジングに組み込まれたスピーカを備え得、いくつかの例では、コンピューティングデバイス210に動作可能に結合されたワイヤードまたはワイヤレスヘッドフォンのセットに組み込まれたスピーカであり得る。マイクロフォン構成要素206は、UID212またはその付近で生じる可聴入力を検出し得る。マイクロフォン構成要素206は、様々な雑音消去技法を実施して背景雑音を除去し、検出されたオーディオ信号からユーザ音声を分離し得る。
【００６１】
コンピューティングデバイス210のUID212は、コンピューティングデバイス210のユーザからの入力として2次元および/または3次元ジェスチャを検出し得る。たとえば、UID212のセンサは、UID212のセンサのしきい距離内のユーザの運動(たとえば、手、腕、ペン、スタイラスなどを動かすこと)を検出し得る。UID212は、運動の2次元または3次元ベクトル表現を決定し、ベクトル表現を、複数の次元を有するジェスチャ入力(たとえば、ハンドウェーブ、ピンチ、拍手、ペンストロークなど)と相関させ得る。言い換えれば、UID212は、UID212が表示のために情報を出力する画面または表面またはその付近でユーザがジェスチャすることを必要とすることなく、多次元ジェスチャを検出し得る。その代わりに、UID212は、UID212が表示のために情報を出力する画面またはその付近に配置され、または配置されないことがあるセンサで、またはその付近で実施された多次元ジェスチャを検出し得る。
【００６２】
1つまたは複数のプロセッサ240は、機能を実施し、かつ/またはコンピューティングデバイス210に関連する命令を実行し得る。プロセッサ240の例には、アプリケーションプロセッサ、ディスプレイコントローラ、補助プロセッサ、1つまたは複数のセンサハブ、およびプロセッサ、処理装置、または処理デバイスとして機能するように構成された任意の他のハードウェアが含まれる。モジュール220、222、226、227、228、230、および282は、コンピューティングデバイス210の様々なアクション、動作、または機能を実施するようにプロセッサ240によって操作可能であり得る。たとえば、コンピューティングデバイス210のプロセッサ240は、モジュール220、222、226、227、228、230、および282の動作をプロセッサ240に実施させる、記憶構成要素248によって記憶された命令を検索および実行し得る。命令は、プロセッサ240によって実行されるとき、コンピューティングデバイス210に、記憶構成要素248内に情報を記憶させ得る。
【００６３】
コンピューティングデバイス210内の1つまたは複数の記憶構成要素248は、コンピューティングデバイス210の動作中に処理するための情報を記憶し得る(たとえば、コンピューティングデバイス210は、コンピューティングデバイス210での実行中にモジュール220、222、226、227、228、230、および282によってアクセスされるデータを記憶し得る)。いくつかの例では、記憶構成要素248の主な目的が長期記憶ではないという意味で、記憶構成要素248は一時メモリである。コンピューティングデバイス210上の記憶構成要素248は、揮発性メモリとしての情報の短期記憶用に構成され得、したがって、電源オフされた場合、記憶された内容を保持しない。揮発性メモリの例には、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、静的ランダムアクセスメモリ(SRAM)、および当技術分野において周知の他の形態の揮発性メモリが含まれる。
【００６４】
いくつかの例では、記憶構成要素248はまた、1つまたは複数のコンピュータ可読記憶媒体をも含む。いくつかの例では、記憶構成要素248は1つまたは複数の非一時的コンピュータ可読記憶媒体を含む。記憶構成要素248は、揮発性メモリによって通常記憶されるよりも大量の情報を記憶するように構成され得る。記憶構成要素248は、不揮発性メモリ空間として情報の長期記憶のためにさらに構成され、電源オン/オフサイクル後に情報を保持し得る。不揮発性メモリの例には、磁気ハードディスク、光ディスク、フロッピィディスク、フラッシュメモリ、または電気プログラマブルメモリ(EPROM)もしくは電気消去可能およびプログラマブル(EEPROM)メモリの形態が含まれる。記憶構成要素248は、モジュール220、222、226、227、228、230、および282ならびにエージェント索引224に関連するプログラム命令および/または情報(たとえば、データ)を記憶し得る。記憶構成要素248は、モジュール220、222、226、227、228、230、および282、ならびにエージェント索引224に関連するデータまたは他の情報を記憶するように構成されたメモリを含み得る。
【００６５】
UIモジュール220は、図1のコンピューティングデバイス110のUIモジュール120のすべての機能を含み得、コンピューティングデバイス210がたとえばUSD212において提供するユーザインターフェースを管理し、コンピューティングデバイス110のユーザとアシスタントモジュール222との間の対話を容易にするための、UIモジュール120に類似の動作を実施し得る。たとえば、コンピューティングデバイス210のUIモジュール220は、アシスタントユーザインターフェースを出力する(たとえば、表示し、またはオーディオを再生する)ための命令を含む情報をアシスタントモジュール222から受け取り得る。UIモジュール220は、通信チャネル250を介してアシスタントモジュール222から情報を受け取り、データを使用してユーザインターフェースを生成し得る。UIモジュール220は、通信チャネル250を介してディスプレイまたは可聴出力コマンドおよび関連するデータを送信し、UID212に、UID212においてユーザインターフェースを提示させ得る。
【００６６】
UIモジュール220は、カメラ114によって検出された1つまたは複数の入力の指示を受け取り得、カメラ入力についての情報をアシスタントモジュール222に出力し得る。いくつかの例ではUIモジュール220は、UID212において検出された1つまたは複数のユーザ入力の指示を受け取り、ユーザ入力についての情報をアシスタントモジュール222に出力し得る。たとえば、UID212は、ユーザからの音声入力を検出し、音声入力についてのデータをUIモジュール220に送り得る。
【００６７】
UIモジュール220は、さらなる解釈のためにカメラ入力の指示をアシスタントモジュール222に送り得る。アシスタントモジュール222は、カメラ入力に基づいて、検出されたカメラ入力が1つまたは複数のユーザタスクに関連し得ることを決定し得る。
【００６８】
アプリケーションモジュール226は、ユーザに情報を提供し、かつ/またはタスクを実施するためにアシスタントモジュール222などのアシスタントによってアクセスされ得るコンピューティングデバイス210において実行中であり、コンピューティングデバイス210からアクセス可能な、様々な個々のアプリケーションおよびサービスを表す。コンピューティングデバイス210のユーザは、1つまたは複数のアプリケーションモジュール226に関連するユーザインターフェースと対話し、コンピューティングデバイス210に機能を実施させ得る。アプリケーションモジュール226の多数の例が存在し、それには、フィットネスアプリケーション、カレンダアプリケーション、検索アプリケーション、マップまたはナビゲーションアプリケーション、運行サービスアプリケーション(たとえば、バスまたは列車追跡アプリケーション)、ソーシャルメディアアプリケーション、ゲームアプリケーション、eメールアプリケーション、チャットもしくはメッセージングアプリケーション、インターネットブラウザアプリケーション、またはコンピューティングデバイス210において実行し得るあらゆるアプリケーションが含まれる。
【００６９】
コンピューティングデバイス210の検索モジュール282は、コンピューティングデバイス210の代わりに統合検索機能を実施し得る。検索モジュール282は、UIモジュール220、アプリケーションモジュール226のうちの1つまたは複数、ならびに/あるいはアシスタントモジュール222によって起動され、それらの代わりに検索動作を実施し得る。起動されたとき、検索モジュール282は、検索照会を生成すること、様々なローカルおよびリモート情報源にわたって、生成された検索照会に基づいて検索を実行することなどの検索機能を実施し得る。検索モジュール282は、起動側の構成要素またはモジュールに、実行された検索の結果を提供し得る。すなわち、検索モジュール282は、起動コマンドに応答して、UIモジュール220、アシスタントモジュール222、および/またはアプリケーションモジュール226に検索結果を出力し得る。
【００７０】
コンテキストモジュール230は、コンピューティングデバイス210に関連するコンテキスト情報を収集し、コンピューティングデバイス210のコンテキストを定義し得る。具体的には、コンテキストモジュール230は主に、特定の時刻のコンピューティングデバイス210の物理および/または仮想環境ならびにコンピューティングデバイス210のユーザの特性を指定するコンピューティングデバイス210のコンテキストを定義するために、アシスタントモジュール222によって使用される。
【００７１】
本開示全体にわたって使用されるように、「コンテキスト情報」という用語は、コンピューティングデバイスおよびコンピューティングデバイスのユーザが特定の時刻に受け得る仮想および/または物理環境を定義するためにコンテキストモジュール230によって使用され得る任意の情報を記述するために使用される。コンテキスト情報の例は多数であり、それには、コンピューティングデバイス210のセンサ(たとえば、位置センサ、加速度計、ジャイロ、気圧計、周辺光センサ、近接センサ、マイクロフォン、および任意の他のセンサ)によって取得されるセンサ情報、コンピューティングデバイス210の通信モジュールによって送られ、受信される通信情報(たとえば、テキストベースの通信、可聴通信、ビデオ通信など)、およびコンピューティングデバイス210において実行中のアプリケーションに関連するアプリケーション使用情報(たとえば、アプリケーションに関連するアプリケーションデータ、インターネット検索履歴、テキスト通信、音声およびビデオ通信、カレンダ情報、ソーシャルメディアポスト、ならびに関係する情報など)が含まれ得る。コンテキスト情報の別の例には、コンピューティングデバイス210の外部の送信デバイスから取得される信号および情報が含まれる。たとえば、コンテキストモジュール230は、コンピューティングデバイス210の無線または通信ユニットを介して、小売商の物理的位置またはその付近に配置された外部ビーコンから送信されたビーコン情報を受信し得る。
【００７２】
アシスタントモジュール222は、図1のコンピューティングデバイス110のアシスタントモジュール122Aのすべての機能を含み得、アシスタントを提供するためにアシスタントモジュール122Aに類似の動作を実施し得る。いくつかの例では、アシスタントモジュール222は、アシスタント機能を提供するためにローカルに(たとえば、プロセッサ240において)実行し得る。いくつかの例では、アシスタントモジュール222は、コンピューティングデバイス210にとってアクセス可能なリモートアシスタンスサービスに対するインターフェースとして働き得る。たとえば、アシスタントモジュール222は、図1のデジタルアシスタントサーバ160のアシスタンスモジュール122Bに対するインターフェースまたはアプリケーションプログラミングインターフェース(API)であり得る。
【００７３】
エージェント選択モジュール227は、所与の発話を満たすように1つまたは複数のエージェントを選択するための機能を含み得る。いくつかの例では、エージェント選択モジュール227はスタンドアロンモジュールであり得る。いくつかの例では、エージェント選択モジュール227はアシスタントモジュール222内に含まれ得る。
【００７４】
図1のシステム100のエージェント索引124Aおよび124Bと同様に、エージェント索引224は、3Pエージェントなどのエージェントに関係する情報を記憶し得る。アシスタントモジュール222および/またはエージェント選択モジュール227は、コンテキストモジュール230および/または検索モジュール282によって提供される任意の情報に加えて、エージェント索引224に記憶された情報を利用して、アシスタントタスクを実施し、かつ/またはイメージデータから推論されるタスクまたは動作を実施するためのエージェントを選択し得る。
【００７５】
アシスタントモジュール222の要求時に、エージェント選択モジュール227は、カメラ214によって取り込まれたイメージデータに関連するタスクまたは動作を実施するための1つまたは複数のエージェントを選択し得る。しかしながら、イメージデータに関連する1つまたは複数のアクションを実行するために、推奨されるエージェントを選択する前に、エージェント選択モジュール227は、事前構成またはセットアッププロセスを受け、エージェント索引224を生成し、かつ/または3Pエージェントモジュール228からその機能について情報を受信し得る。
【００７６】
エージェント選択モジュール227は、複数のエージェントからのそれぞれの特定のエージェントから、その特定のエージェントに関連する1つまたは複数のそれぞれのインテントを含む登録要求を受け取り得る。エージェント選択モジュール227は、複数のエージェントからのそれぞれの特定のエージェントを、その特定のエージェントに関連する1つまたは複数のそれぞれのインテントに登録し得る。たとえば、コンピューティングデバイス220上にロードされたとき、3Pエージェントモジュール228は、各エージェントをエージェント選択モジュール227に登録する情報をエージェント選択モジュール227に送り得る。登録情報は、エージェント識別子と、エージェントが満たし得る1つまたは複数のインテントとを含み得る。たとえば、3Pエージェントモジュール228Aは、PizzaHouse Companyについてのピザ注文エージェントであり得、コンピューティングデバイス220上にインストールされるとき、3Pエージェントモジュール228Aは、「PizzaHouse」という名前、PizzaHouseロゴまたは商標、ならびに「食品」、「レストラン」、および「ピザ」を示すイメージもしくは語に関連するインテントに3Pエージェントモジュール228Aを登録する情報をエージェント選択モジュール227に送り得る。エージェント選択モジュール227は、3Pエージェントモジュール228Aの識別子と共に登録情報をエージェント索引224に記憶し得る。
【００７７】
識別されたエージェントをエージェント選択モジュール227がそれからランク付けする、エージェント索引224に記憶されたエージェント情報は、コンピューティングデバイス210のユーザおよび/または対応するコンピューティングデバイスのユーザによる特定のエージェントの使用頻度を示す特定のエージェントの人気スコア、特定のエージェントのインテントとイメージデータとの間の関連性スコア、特定のエージェントとイメージデータとの間の有用性スコア、特定のエージェントに関連する1つまたは複数のインテントのそれぞれに関連する重要性スコア、特定のエージェントに関連するユーザ満足スコア、特定のエージェントに関連するユーザ対話スコア、および特定のエージェントに関連する品質スコア(たとえば、イメージデータから推論される様々なインテントと、エージェントに登録されたインテントとの間の合致の重みつき和)を含む。エージェントモジュール328のランキングは、エージェント選択モジュール227によって、たとえば2つの異なるタイプのスコアを乗算または加算することによって決定された、それぞれの可能なエージェントについての組合せスコアに基づき得る。
【００７８】
エージェント索引224および/または3Pエージェントモジュール228から受け取ったその機能についての登録情報に基づいて、エージェント選択モジュール227は、推奨されるエージェントがイメージデータから推論される1つまたは複数のインテントに登録されると判定したことに応答して、推奨されるエージェントを選択し得る。たとえば、エージェント選択モジュール227は、食品、ピザなどを注文するインテントを示すとエージェント選択モジュール227によって判定される、アシスタントモジュール222からのイメージデータを使用し得る。エージェント選択モジュール227は、イメージデータから推論されるインテントをエージェント索引224内に入力し、エージェント索引224からの出力として、3Pエージェントモジュール228A、および場合によっては食品またはピザインテントに登録している1つまたは複数の他の3Pエージェントモジュール228の指示を受信し得る。
【００７９】
エージェント選択モジュール227は、イメージデータから推論される1つまたは複数のインテントに合致する、エージェント索引224からの登録されたエージェントを識別し得る。エージェント選択モジュール227は、識別されたエージェントをランク付けし得る。言い換えれば、イメージデータから1つまたは複数のインテントを推論することに応答して、エージェント選択モジュール227は、3Pエージェントモジュール228から、イメージデータから推論される1つまたは複数のインテントのうちの少なくとも1つに登録される1つまたは複数の3Pエージェントモジュール228を識別し得る。1つまたは複数の3Pエージェントモジュール228および1つまたは複数のインテントのそれぞれに関係する情報に基づいて、エージェントモジュール227は、1つまたは複数の3Pエージェントモジュール228のランキングを決定し、ランキングに少なくとも部分的に基づいて、1つまたは複数の3Pエージェントモジュール228から、推奨される3Pエージェントモジュール228を選択し得る。
【００８０】
いくつかの例では、エージェント選択モジュール227は、イメージベースのインターネット検索を通じて(すなわち、イメージデータに基づいて検索モジュール282にインターネットを検索させる)イメージデータを送ることによって、イメージデータに少なくとも部分的に基づいて、1つまたは複数の推奨されるエージェントを識別し得る。いくつかの例では、エージェント選択モジュール227は、エージェント索引224を調べることに加えて、イメージベースのインターネット検索を通じてイメージデータを送ることによって、イメージデータに少なくとも部分的に基づいて、1つまたは複数の推奨されるエージェントを識別し得る。
【００８１】
いくつかの例では、エージェント索引224は、インテントに関係するエージェントについてのスコアを生成するために、機械学習システムを含み、または機械学習システムとして実装され得る。たとえば、エージェント選択モジュール227は、イメージデータから推論される1つまたは複数のインテントをエージェント索引224の機械学習システム内に入力し得る。機械学習システムは、1つまたは複数のエージェントおよび1つまたは複数のインテントのそれぞれに関係する情報に基づいて、1つまたは複数のエージェントのそれぞれについてのスコアを決定し得る。エージェント選択モジュール227は、1つまたは複数のエージェントのそれぞれについてのスコアを機械学習システムから受け取り得る。
【００８２】
いくつかの例では、エージェント索引224のエージェント索引224および/または機械学習システムは、アシスタントモジュール222に関係する情報、およびアシスタントモジュール222が何らかのインテントに登録されるかどうかを利用して、イメージデータに少なくとも部分的に基づいて、1つまたは複数のアクションまたはタスクを実施するようにアシスタントモジュール222に推奨するかどうかを判定し得る。すなわち、エージェント選択モジュール227は、イメージデータから推論される1つまたは複数のインテントをエージェント索引224の機械学習システム内に入力し得る。いくつかの例では、エージェント選択モジュール227は、コンテキストモジュール230によって取得されるコンテキスト情報をエージェント索引224の機械学習システム内に入力し、3Pエージェントモジュール228のランキングを決定し得る。機械学習システムは、アシスタントモジュール222に関係する情報、1つまたは複数のインテント、および/またはコンテキスト情報に基づいて、アシスタントモジュール222についてのそれぞれのスコアを決定し得る。エージェント選択モジュール227は、アシスタントモジュール222についてのそれぞれのスコアを機械学習システムから受け取り得る。
【００８３】
エージェント選択モジュール227は、アシスタントモジュール222または3Pエージェントモジュール228からの推奨されるエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨するかどうかを判定し得る。たとえば、エージェント選択モジュール227は、3Pエージェントモジュール228のうちの最高ランキングのものについてのそれぞれのスコアがアシスタントモジュール222のスコアを超過するかどうかを判定し得る。3Pエージェントモジュール228からの最高ランキングエージェントについてのそれぞれのスコアがアシスタントモジュール222のスコアを超過すると判定したことに応答して、エージェント選択モジュール227は、最高ランキングエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨すると判定し得る。3Pエージェントモジュール228からの最高ランキングエージェントについてのそれぞれのスコアがアシスタントモジュール222のスコアを超過しないと判定したことに応答して、エージェント選択モジュール227は、最高ランキングエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨すると判定し得る。
【００８４】
エージェント選択モジュール227は、ランキングおよび/またはインターネット検索からの結果を解析して、1つまたは複数のアクションを実行するためのエージェントを選択し得る。たとえば、エージェント選択モジュール227は、検索結果を検査して、エージェントに関連するウェブページ結果があるかどうかを判定し得る。エージェントに関連するウェブページ結果がある場合、エージェント選択モジュール227は、ウェブページ結果に関連するエージェントを、ランク付けされた結果に挿入し得る(前記エージェントがランク付けされた結果にまだ含まれていない場合)。エージェント選択モジュール227は、ウェブスコアの強度に従ってエージェントのランキングをブーストまたは低減し得る。いくつかの例では、エージェント選択モジュール227は、個人履歴ストアに照会して、ユーザが結果セット内のエージェントのいずれかと対話したかどうかを判定し得る。そうである場合、エージェント選択モジュール227は、それらのエージェントとの間のユーザの履歴の強度に応じて、それらのエージェントにブースト(すなわち、ランキングの上昇)を与え得る。
【００８５】
エージェント選択モジュール227は、ランキングに基づいてイメージデータから推論されるアクションを実行するように推奨する3Pエージェントを選択し得る。たとえば、エージェント選択モジュール227は、最高ランキングを有する3Pエージェントを選択し得る。ランキングが同じである場合、および/または最高ランキングを有する3Pエージェントのランキングがランキングしきい値未満である場合などのいくつかの例では、エージェント選択モジュール227は、発話を満たすように3Pエージェントを選択するようにユーザ入力を要請し得る。たとえば、エージェント選択モジュール227は、発話を満たすようにN(たとえば、2、3、4、5など)個の中程度にランク付けされた3Pエージェントから3Pエージェントをユーザが選択することを要求するユーザインターフェース(すなわち、選択UI)をUIモジュール220に出力させ得る。いくつかの例では、N個の中程度にランク付けされた3Pエージェントは、上位N個にランク付けされたエージェントを含み得る。いくつかの例では、N個の中程度にランク付けされた3Pエージェントは、上位N個にランク付けされたエージェント以外のエージェントを含み得る。
【００８６】
エージェント選択モジュール227は、エージェントの属性を検討し、かつ/または様々な3Pエージェントから結果を取得し、それらをランク付けし、次いでアシスタントモジュール222に、最高ランクの結果を与える3Pエージェントを起動(すなわち、選択)させ得る。たとえば、インテントが「ピザ」に関係する場合、エージェント選択モジュール227は、ユーザの現在位置を決定し、どのピザの源がユーザの現在位置に最も近いかを判定し、その現在位置に関連するピザソースを最高とランク付けし得る。同様に、エージェント選択モジュール227は、品目の価格に関して複数の3Pエージェントにポーリングし、次いで最低価格に基づいてユーザが購入を完了することを可能にするようにエージェントを提供し得る。エージェント選択モジュール227は、何らかの3Pエージェントがタスクを実装するためにユーザにオプションとしてそれらのエージェントのみを提供することができるかどうかを判定する前に、それらのうちの1つまたはいくつかだけが提供することができると仮定して、1Pエージェントがタスクを遂行することができないと判定し得る。
【００８７】
このようにして、コンピューティングデバイス210は、アシスタントモジュール222およびエージェント選択モジュール227を介して、他のタイプのデジタルアシスタントサービスよりも複雑でないアシスタントサービスを提供し得る。すなわち、コンピューティングデバイス210は、他のサービスプロバイダまたは3Pエージェントを利用して、毎日の使用中に発生し得るすべての可能なタスクを処理しようと試みるのではなく、少なくともいくつかの複雑なタスクを実施し得る。そのように行う際に、コンピューティングデバイス210は、ユーザが既に3Pエージェントと定位置に有するプライベート関係を保持し得る。
【００８８】
図3は、本開示の1つまたは複数の態様による、例示的アシスタントを実行する1つまたは複数のプロセッサによって実施される例示的動作を示すフローチャートである。図3は、図1のシステム100のコンピューティングデバイス110の状況で以下で説明される。たとえば、コンピューティングデバイス110の1つまたは複数のプロセッサにおいて実行している間、アシスタントモジュール122Aが、本開示の1つまたは複数の態様による動作302〜314を実施し得る。いくつかの例では、デジタルアシスタントサーバ160の1つまたは複数のプロセッサにおいて実行している間、アシスタントモジュール122Bが、本開示の1つまたは複数の態様によるによる動作302〜314を実施し得る。
【００８９】
動作の際に、コンピューティングデバイス110は、カメラ114や他のイメージセンサなどからイメージデータを受け取り得る(302)。たとえば、イメージデータを含む個人情報を利用するための明示的許可をユーザから受け取った後、コンピューティングデバイス110のユーザは、壁の映画ポスタにコンピューティングデバイス110のカメラ114を向け、カメラ114に映画ポスタの写真を撮らせるユーザ入力をUID112に与え得る。
【００９０】
本開示の1つまたは複数の技法によれば、アシスタントモジュール122Aは、イメージデータに関連する1つまたは複数のアクションを実行するために推奨されるエージェントモジュール128を選択し得る(304)。たとえば、アシスタントモジュール122Aは、1Pエージェント(すなわち、アシスタントモジュール122Aによって提供される1Pエージェント)、3Pエージェント(すなわち、3Pエージェントモジュール128のうちの1つによって提供される3Pエージェント)、または1Pエージェントと3Pエージェントの何らかの組合せがアクションを実行し、または映画ポスタのイメージデータに関係するタスクを実施する際にユーザを支援し得るかどうかを判定し得る。
【００９１】
アシスタントモジュール122Aは、エージェント選択をイメージデータの解析に基づかせ得る。一例として、アシスタントモジュール122Aは、イメージデータに関する視覚認識技法を実施して、イメージデータに関連し得るすべての可能なエンティティ、物体、および概念を決定し得る。たとえば、アシスタントモジュール122Aは、検索モジュール182がイメージデータのイメージベースの検索を実施することによってイメージデータに関する視覚認識技法を実施することを求める要求と共に、ネットワーク130を介して検索サーバシステム180にイメージデータを出力し得る。要求に応答して、アシスタントモジュール122Aは、ネットワーク130を介して、検索モジュール182によって実施されたイメージベースの検索から返されたインテントのリストを受信し得る。ワインボトルのイメージのイメージベースの検索から返されたインテントのリストは、一般には「映画の名前」または「映画」または「映画ポスタ」に関係するインテントを返し得る。
【００９２】
アシスタントモジュール122Aは、エージェント索引124A内のエントリに基づいて、何らかのエージェント(たとえば、1Pまたは3Pエージェント)がイメージデータから推論されるインテントに登録しているかどうかを判定し得る。たとえば、アシスタントモジュール122Aは、映画インテントをエージェント索引124A内に入力し、映画インテントに登録しており、したがって映画に関連するアクションを実行するために使用され得る1つまたは複数のエージェントモジュール128のリストを出力として受信する。
【００９３】
アシスタントモジュール122Aは、所与のコンテキスト、特定のユーザ、および/または特定のインテントについて推奨するのに好ましいエージェントモジュール128を予測するための規則を開発し得る。たとえば、コンピューティングデバイス110のユーザおよび他のコンピューティングデバイスのユーザから得られた過去のユーザ対話データに基づいて、アシスタントモジュール122Aは、大部分のユーザは特定のインテントに基づいてアクションを実行するために特定のエージェントモジュール128を使用することを好むが、コンピューティングデバイス110のユーザはその代わりに、特定のインテントに基づいてアクションを実行するために異なるエージェントモジュール128を使用することを好むと判定し、したがってユーザの好ましいエージェントを大部分の他のユーザが好むエージェントよりも高くランク付けし得る。
【００９４】
アシスタントモジュール122Aは、イメージデータに関連する1つまたは複数のアクションを、アシスタントモジュール122Aが実施することを推奨するか、それとも推奨されるエージェントモジュール128が実施することを推奨するかを判定し得る(306)。たとえば、いくつかのケースでは、アシスタントモジュール122Aは、イメージデータに少なくとも部分的に基づいてアクションを実行するための推奨されるエージェントであり得るのに対して、エージェントモジュール128のうちの1つは、推奨されるエージェントであり得る。アシスタントモジュール122Aは、1つまたは複数のエージェントモジュール128の中でアシスタントモジュール122Aをランク付けし、カメラ114から受け取ったイメージデータから推論されるインテントに基づいてアクションを実行するために最高ランキングエージェント(たとえば、アシスタントモジュール122Aまたはエージェントモジュール128)を選択し得る。たとえば、アシスタントモジュール122Aおよびエージェントモジュール128aAはそれぞれ、映画チケットを注文し、映画トレーラを閲覧し、または映画をレンタルするように構成されたエージェントであり得る。アシスタントモジュール122Aは、アシスタントモジュール122Aおよびエージェントモジュール128aAに関連する品質スコアを比較して、映画ポスタに関係するアクションを実行するためにどれを推奨するかを決定し得る。
【００９５】
アシスタントモジュール122Aがイメージデータに関連する1つまたは複数のアクションを推奨すると判定したことに応答して(306、アシスタント)、アシスタントモジュール122Aは、アシスタントモジュール122Aにアクションを実行させ得る(308)。たとえば、アシスタントモジュール122Aは、ユーザが映画ポスタ内の特定の映画の上映を見るためにチケットを購入したいかどうか、またはポスタ内の映画の予告編を閲覧したいかどうかについてのユーザ入力を要求するユーザインターフェースを、UID112を介してUIモジュール120に出力させ得る。
【００９６】
推奨されるエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨すると判定したことに応答して(306、エージェント)、アシスタントモジュール122Aは、推奨されるエージェントの指示を出力し得る(310)。たとえば、アシスタントモジュール122Aは、カメラ114によって取り込まれたイメージデータに少なくとも部分的に基づいて、ユーザが現在時刻にアクションを実行するのを助けるために、アシスタントモジュール122Aがエージェントモジュール128aAとのユーザ対話を推奨していることを示す可聴通知、視覚通知、および/または触覚通知を、UID112を介してUIモジュール120に出力させ得る。通知は、ユーザが映画またはポスタ内の特定の映画に関心があり得ることをアシスタントモジュール122Aがイメージデータから推論したという指示を含み得、質問に答え、予告編を示し、さらには映画チケットを注文するのをエージェントモジュール128aAが助けることができることをユーザに通知し得る。
【００９７】
いくつかの例では、推奨されるエージェントは複数の推奨されるエージェントであり得る。そのようなケースでは、アシスタントモジュール122Aは、ユーザが特定の推奨されるエージェントを選ぶことを求める要求を通知の部分として出力し得る。
【００９８】
アシスタントモジュール122Aは、推奨されるエージェントを確認するユーザ入力を受け取り得る(312)。たとえば、通知を出力した後、ユーザは、UID112においてタッチ入力を与え、またはUID112に音声入力を与え得、ユーザが推奨されるエージェントを使用して、映画チケットを注文し、または映画ポスタ内の映画の予告編を見ることを望むことを確認する。
【００９９】
アシスタントモジュール122Aがそのようなユーザ確認、または他の明示的な同意を受け取らない限り、アシスタントモジュール122Aは、カメラ114によって取り込まれた何らかのイメージデータをモジュール128Aのいずれかに出力することを控え得る。明確には、アシスタントモジュール122は、カメラ114によって取り込まれたイメージデータを含む、ユーザまたはコンピューティングデバイス110の何らかの個人情報を利用または解析することを、アシスタントモジュール122がユーザからそのように行うための明示的な同意を受け取らない限り控え得る。アシスタントモジュール122はまた、ユーザが同意を取り下げ、または除去する機会をも提供し得る。
【０１００】
いずれにしても、推奨されるエージェントを確認するユーザ入力を受け取ったことに応答して、アシスタントモジュール122Aは、推奨されるエージェントに、イメージデータに関連する1つまたは複数のアクションの実行を少なくとも開始させ得る(314)。たとえば、アシスタントモジュール122Aは、ユーザが推奨されるエージェントを使用して、カメラ114によって取得されたイメージデータに対するアクションを実行することを望むことを確認する情報を受け取り、アシスタントモジュール122Aは、カメラ114によって取り込まれたイメージデータを、イメージデータを処理し、任意の適切なアクションを行うための命令と共に、推奨されるエージェントに送り得る。たとえば、アシスタントモジュール122Aは、カメラ114によって取り込まれたイメージデータをエージェントモジュール128aAに送り得、またはエージェントモジュール128aAに関連する、コンピューティングデバイス110において実行するアプリケーションを立ち上げ得る。エージェントモジュール128aAは、イメージデータに関するそれ自体の解析を実施し、ウェブサイトを開き、アクションをトリガし、ユーザとの会話を開始し、ビデオを示し、またはイメージデータを使用して任意の他の関係するアクションを実行し得る。たとえば、エージェントモジュール128aAは、映画ポスタのイメージデータに関するそれ自体のイメージ解析を実施し、特定の映画を決定し、UIモジュール120およびUID112を介して、映画の予告編を閲覧したいかどうかをユーザに尋ねる通知を出力し得る。
【０１０１】
より一般には、「推奨されるエージェントにアクションを実行させること」は、アシスタントモジュール122Aなどのアシスタントが3Pエージェントを起動することを含み得る。そのようなケースでは、タスクまたは動作を実施するために、3Pエージェントは、承認、支払い情報の入力などの別のユーザアクションをさらに必要とし得る。もちろん、推奨されるエージェントにアクションを実行させることはまた、いくつかのケースでは、別のユーザアクションを必要とすることなく、3Pエージェントにアクションを実行させ得る。
【０１０２】
いくつかの例では、アシスタントモジュール122Aは、推奨される3Pエージェントが情報を決定し、または1つまたは複数のアクションに関連する結果を生成することを可能にすることによって、推奨されるエージェントに、イメージデータに関連する1つまたは複数のアクションの実行を少なくとも初期化させ、あるいはアクションを開始させるがアクションを完全には完了させず、次いで、アシスタントモジュール122Aがユーザと結果を共有し、またはアクションを完了することを可能にし得る。たとえば、3Pエージェントは、アシスタントモジュール122Aによって初期化された後に、ピザ注文の詳細(たとえば、量、タイプ、トッピング、住所、時刻、配達/持ち帰りなど)のすべてを受け取り、アシスタントモジュール122Aに制御を戻し、アシスタントモジュール122Aに注文を終了させ得る。たとえば、3Pエージェントは、コンピューティングデバイス110に、「では<1Pアシスタント>に戻ってこの注文を完了します」という指示をUID112において出力させ得る。このようにして、1Pアシスタントは、ユーザのクレジットカードなどが共用されないように注文の会計詳細を処理し得る。言い換えれば、本明細書において説明される技法によれば、3Pはアクションの一部を実施し、次いで制御を1Pアシスタントに戻して、アクションを完了し、またはアクションを進め得る。
【０１０３】
図4は、本開示の1つまたは複数の態様による、例示的アシスタントを実行するように構成される例示的コンピューティングシステムを示すブロック図である。図4のデジタルアシスタントサーバ460が、図1のデジタルアシスタントサーバ160の一例として以下で説明される。図4は、デジタルアシスタントサーバ460のただ1つの特定の例を示し、デジタルアシスタントサーバ460の多くの他の例が他の事例では使用され得、例示的デジタルアシスタントサーバ460内に含まれる構成要素のサブセットを含み得、図4には示されない追加の構成要素を含み得る。
【０１０４】
図4の例に示されるように、デジタルアシスタントサーバ460は、1つまたは複数のプロセッサ440、1つまたは複数の通信ユニット442、および1つまたは複数の記憶構成要素448を含む。記憶構成要素448は、アシスタントモジュール422、エージェント選択モジュール427、エージェント精度モジュール431、検索モジュール482、コンテキストモジュール430、およびユーザエージェント索引424を含む。
【０１０５】
プロセッサ440は、図2のコンピューティングシステム210のプロセッサ240に類似している。通信ユニット442は、図2のコンピューティングシステム210の通信ユニット242に類似している。記憶装置448は、図2のコンピューティングシステム210の記憶装置248に類似している。通信チャネル450は、図2のコンピューティングシステム210の通信チャネル250に類似しており、したがって、構成要素間通信のために構成要素440、442、および448のそれぞれを相互接続し得る。いくつかの例では、通信チャネル450は、システムバス、ネットワーク接続、プロセス間通信データ構造、またはデータを通信するための任意の他の方法を含み得る。
【０１０６】
デジタルアシスタントサーバ460の検索モジュール482は、コンピューティングデバイス210の検索モジュール282に類似しており、デジタルアシスタントサーバ460の代わりに統合検索機能を実施し得る。すなわち、検索モジュール482は、アシスタントモジュール422の代わりに検索動作を実施し得る。いくつかの例では、検索モジュール482は、検索システム180などの外部検索システムとインターフェースして、アシスタントモジュール422の代わりに検索動作を実施し得る。起動されたとき、検索モジュール482は、検索照会を生成すること、生成した検索照会に基づいて、様々なローカルおよびリモート情報源にわたって検索を実行することなどの検索機能を実施し得る。検索モジュール482は、実行した検索の結果を、起動側構成要素またはモジュールに提供し得る。すなわち、検索モジュール482は、アシスタントモジュール422に検索結果を出力し得る。
【０１０７】
デジタルアシスタントサーバ460のコンテキストモジュール430は、コンピューティングデバイス210のコンテキストモジュール230に類似している。コンテキストモジュール430は、図1のコンピューティングデバイス110や図2のコンピューティングデバイス210などのコンピューティングデバイスに関連するコンテキスト情報を収集し、コンピューティングデバイスのコンテキストを定義し得る。コンテキストモジュール430は主に、デジタルアシスタントサーバ160によって提供されるサービスをインターフェースし、それにアクセスするコンピューティングデバイスのコンテキストを定義するために、アシスタントモジュール422および/または検索モジュール482によって使用され得る。コンテキストは、特定の時刻のコンピューティングデバイスおよびコンピューティングデバイスのユーザの物理および/または仮想環境の特性を指定し得る。
【０１０８】
エージェント選択モジュール427は、コンピューティングデバイス210のエージェント選択モジュール227に類似している。
【０１０９】
アシスタントモジュール422は、図1のアシスタントモジュール122Aおよびアシスタントモジュール122B、ならびに図2のコンピューティングデバイス210のアシスタントモジュール222のすべての機能を含み得る。アシスタントモジュール422は、アシスタントサーバ460を介してアクセス可能であるアシスタントサービスを提供するためにアシスタントモジュール122Bと類似の動作を実施し得る。すなわち、アシスタントモジュール422は、ネットワークを介してデジタルアシスタントサーバ460と通信しているコンピューティングデバイスにとってアクセス可能なリモートアシスタンスサービスに対するインターフェースとして働き得る。たとえば、アシスタントモジュール422は、図1のデジタルアシスタントサーバ160のリモートアシスタンスモジュール122Bに対するインターフェースまたはAPIであり得る。
【０１１０】
図2のエージェント索引224と同様に、エージェント索引424は、3Pエージェントなどのエージェントに関係する情報を記憶し得る。アシスタントモジュール422および/またはエージェント選択モジュール427は、コンテキストモジュール430および/または検索モジュール482によって提供された任意の情報に加えて、エージェント索引424に記憶された情報を利用して、アシスタントタスクを実施し、かつ/またはエージェントを選択して、アクションを実行し、もしくはイメージデータから推論されるタスクを完了し得る。
【０１１１】
本開示の1つまたは複数の技法によれば、エージェント精度モジュール431は、エージェントについての追加の情報を収集し得る。いくつかの例では、エージェント精度モジュール431は、自動エージェントクローラであると見なされ得る。たとえば、エージェント精度モジュール431は、各エージェントに照会して、各エージェントが受け取る情報を記憶する。一例として、エージェント精度モジュール431は、デフォルトエージェントエントリポイントに要求を送り、エージェントからその機能についての説明を受け取り得る。エージェント精度モジュール431は、エージェント索引424内にこの受け取った情報を記憶し得る(すなわち、ターゲッティングを改善するために)。
【０１１２】
いくつかの例では、デジタルアシスタントサーバ460は、適用可能なら、エージェントについてのインベントリ情報を受信し得る。一例として、オンライン食料雑貨店についてのエージェントは、デジタルアシスタントサーバ460に、説明、価格、量などを含む、その製品のデータフィード(たとえば、構造化データフィード)を提供し得る。エージェント選択モジュール(たとえば、エージェント選択モジュール224および/またはエージェント選択モジュール424)は、ユーザの発話を満たすようにエージェントを選択することの部分として、このデータにアクセスし得る。これらの技法は、システムが「プロセッコのボトルを注文」などの照会により良好に応答することを可能にし得る。そのような状況では、エージェントがそのリアルタイムインベントリを提供しており、かつエージェントがプロセッコを販売し、プロセッコを在庫していることをインベントリが示した場合、エージェント選択モジュールは、より確信をもってイメージデータをエージェントに合致させ得る。
【０１１３】
いくつかの例では、デジタルアシスタントサーバ460は、ユーザが使用したい可能性のあるエージェントを発見する/見つけるためにユーザがブラウズし得るエージェントディレクトリを提供し得る。ディレクトリは、各エージェントの説明、機能のリスト(自然言語での、たとえば「このエージェントを使用してタクシーを注文することができます」、「このエージェントを使用して料理レシピを見つけることができます」)を有し得る。ユーザがディレクトリ内で使用したいエージェントを見つけた場合、ユーザはエージェントを選択し得、エージェントはユーザにとって利用可能にされ得る。たとえば、アシスタントモジュール422は、エージェント索引224および/またはエージェント索引424内にエージェントを追加し得る。したがって、エージェント選択モジュール227および/またはエージェント選択モジュール427は、将来の発話を満たすように、追加されたエージェントを選択し得る。いくつかの例では、1つまたは複数のエージェントが、ユーザ選択なしにエージェント索引224またはエージェント索引424内に追加され得る。そのような例のうちのいくつでは、エージェント選択モジュール227および/またはエージェント選択モジュール427は、イメージデータに少なくとも部分的に基づいてアクションを実行するようにユーザによって選択されていないエージェントを選択および/または提案することができ得る。いくつかの例では、エージェント選択モジュール227および/またはエージェント選択モジュール427は、エージェントがユーザによって選択されたかどうかに基づいてエージェントをさらにランク付けし得る。
【０１１４】
いくつかの例では、エージェントディレクトリ内で列挙されるエージェントのうちの1つまたは複数はフリーであり得る(すなわち、コストなしに提供される)。いくつかの例では、エージェントディレクトリ内で列挙されるエージェントのうちの1つまたは複数はフリーではないことがある(すなわち、エージェントを使用するために、ユーザは金銭または何らかの他の対価を支払わなければならないことがある)。
【０１１５】
いくつかの例では、エージェントディレクトリはユーザレビューおよび格付けを収集し得る。収集されたユーザレビューおよび格付けは、エージェント品質スコアを修正するために使用され得る。一例として、エージェントが肯定的なレビューおよび/または格付けを受け取ったとき、エージェント精度モジュール431は、エージェント索引224またはエージェント索引424内のエージェントの人気スコアまたはエージェント品質スコアを増加させ得る。別の例として、エージェントが否定的なレビューおよび/または格付けを受け取ったとき、エージェント精度モジュール431は、エージェント索引224またはエージェント索引424内のエージェントの人気スコアまたはエージェント品質スコアを減少させ得る。
【０１１６】
上記の説明に従ってコンピューティングデバイスの改良型の動作が得られることを理解されよう。たとえば、ユーザによって提供されるタスクを実行するために好ましいエージェントを識別することによって、一般化された検索および複雑な照会書換えが削減され得る。これにより、帯域幅およびデータ伝送の使用が削減され、一時的揮発性メモリの使用が削減され、電池消耗などが削減される。さらに、いくつかの実施形態では、デバイス性能を最適化し、かつ/またはセルラーデータ使用量を最小限に抑えることが、エージェントをランク付けするための非常に重み付けされた特徴であり得、したがってこれらの基準に基づくエージェントの選択が、デバイス性能の所望の直接的改善および/またはデータ使用量の削減を実現する。
【０１１７】
条項1．コンピューティングデバイスによってアクセス可能なアシスタントによって、コンピューティングデバイスのカメラからイメージデータを受け取ること、イメージデータに基づいて、コンピューティングデバイスによってアクセス可能な複数のエージェントから、イメージデータに関連する1つまたは複数のアクションを実行するために推奨されるエージェントをアシスタントによって選択すること、アシスタントまたは推奨されるエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨するかどうかをアシスタントによって判定すること、推奨されるエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨すると判定したことに応答して、アシスタントによって、推奨されるエージェントに、イメージデータに関連する1つまたは複数のアクションを実行させることを含む方法。
【０１１８】
条項2．イメージデータに関連する1つまたは複数のアクションを実行するために、推奨されるエージェントを選択する前に、複数のエージェントからのそれぞれの特定のエージェントから、その特定のエージェントに関連する1つまたは複数のそれぞれのインテントを含む登録要求をアシスタントによって受け取ること、および複数のエージェントからのそれぞれの特定のエージェントを、その特定のエージェントに関連する1つまたは複数のそれぞれのインテントに、アシスタントによって登録することをさらに含む条項1の方法。
【０１１９】
条項3．推奨されるエージェントを選択することが、推奨されるエージェントがイメージデータから推論される1つまたは複数のインテントに登録されると判定したことに応答して、推奨されるエージェントを選択することを含む条項2の方法。
【０１２０】
条項4．エージェントを選択することが、イメージデータから1つまたは複数のインテントを推論すること、複数のエージェントから、1つまたは複数のインテントのうちの少なくとも1つに登録される1つまたは複数のエージェントを識別すること、1つまたは複数のエージェントおよび1つまたは複数のインテントのそれぞれに関係する情報に基づいて、1つまたは複数のエージェントのランキングを決定すること、およびランキングに少なくとも部分的に基づいて、複数のエージェントから、推奨されるエージェントを選択することをさらに含む条項1〜3のいずれか一項の方法。
【０１２１】
条項5．1つまたは複数のエージェントからの特定のエージェントに関係する情報が、特定のエージェントの人気スコア、特定のエージェントとイメージデータとの間の関連性スコア、特定のエージェントとイメージデータとの間の有用性スコア、特定のエージェントに関連する1つまたは複数のインテントのそれぞれに関連する重要性スコア、特定のエージェントに関連するユーザ満足スコア、および特定のエージェントに関連するユーザ対話スコアのうちの少なくとも1つを含む条項4の方法。
【０１２２】
条項6．前記1つまたは複数のエージェントのランキングを決定することが、1つまたは複数のエージェントおよび1つまたは複数のインテントのそれぞれに関係する情報を機械学習システム内にアシスタントによって入力すること、1つまたは複数のエージェントのそれぞれについてのスコアを機械学習システムからアシスタントによって受け取ること、および1つまたは複数のエージェントのそれぞれについてのスコアに基づいて、1つまたは複数のエージェントのランキングを決定することを含む条項4または5のいずれか一項の方法。
【０１２３】
条項7．アシスタントまたは推奨されるエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨するかどうかを判定することが、アシスタントおよび1つまたは複数のインテントに関係する情報を機械学習システム内にアシスタントによって入力すること、アシスタントについてのスコアを機械学習システムからアシスタントによって受信すること、1つまたは複数のエージェントからの最高ランキングエージェントについてのそれぞれのスコアがアシスタントのスコアを超過するかどうかを判定すること、1つまたは複数のエージェントからの最高ランキングエージェントについてのそれぞれのスコアがアシスタントのスコアを超過すると判定したことに応答して、最高ランキングエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨するとアシスタントによって判定することを含む条項6の方法。
【０１２４】
条項8．1つまたは複数のエージェントのランキングを決定することが、コンピューティングデバイスに関連するコンテキスト情報を機械学習システム内にアシスタントによって入力することをさらに含む条項4〜7のいずれか一項の方法。
【０１２５】
条項9．推奨されるエージェントに、イメージデータに関連する1つまたは複数のアクションを実行させることが、推奨されるエージェントに関連するリモートコンピューティングシステムにイメージデータの少なくとも一部をアシスタントによって出力し、推奨されるエージェントに関連するリモートコンピューティングシステムに、イメージデータに関連する1つまたは複数のアクションを実行させることを含む条項1〜8のいずれか一項の方法。
【０１２６】
条項10．推奨されるエージェントに、イメージデータに関連する1つまたは複数のアクションを実行させることが、推奨されるエージェントの代わりに、イメージデータの少なくとも一部に関連するユーザ入力を求める要求をアシスタントによって出力することを含む条項1〜9のいずれか一項の方法。
【０１２７】
条項11．推奨されるエージェントに、イメージデータに関連する1つまたは複数のアクションを実行させることが、アシスタントによって、推奨されるエージェントにコンピューティングデバイスからアプリケーションを立ち上げさせ、イメージデータに関連する1つまたは複数のアクションを実行させることを含み、アプリケーションがアシスタントとは異なる条項1〜10のいずれか一項の方法。
【０１２８】
条項12．複数のエージェントからの各エージェントが、コンピューティングデバイスからアクセス可能であるそれぞれのサードパーティサービスに関連するサードパーティエージェントである条項1〜11のいずれか一項の方法。
【０１２９】
条項13．複数のエージェントのそれぞれに関連するサードパーティサービスが、アシスタントによって提供されるサービスとは異なる条項12の方法。
【０１３０】
条項14．カメラと、出力装置と、入力装置と、少なくとも1つのプロセッサと、実行されるとき、カメラからイメージデータを受け取り、イメージデータに基づいて、コンピューティングデバイスからアクセス可能な複数のエージェントから、イメージデータに関連する1つまたは複数のアクションを実行するために推奨されるエージェントを選択し、アシスタントまたは推奨されるエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨するかどうかを判定し、推奨されるエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨すると判定したことに応答して、推奨されるエージェントに、イメージデータに関連する1つまたは複数のアクションを実行させるように構成されるアシスタントを少なくとも1つのプロセッサに実行させる命令を記憶するメモリとを備えるコンピューティングデバイス。
【０１３１】
条項15．アシスタントが、推奨されるエージェントを選択する前に、イメージデータに関連する1つまたは複数のアクションを実行し、複数のエージェントからのそれぞれの特定のエージェントから、その特定のエージェントに関連する1つまたは複数のそれぞれのインテントを含む登録要求を受け取り、複数のエージェントからのそれぞれの特定のエージェントを、その特定のエージェントに関連する1つまたは複数のそれぞれのインテントに登録するようにさらに構成される条項14のコンピューティングデバイス。
【０１３２】
条項16．アシスタントが、推奨されるエージェントがイメージデータから推論される1つまたは複数のインテントに登録されると判定したことに応答して、推奨されるエージェントを選択するようにさらに構成される条項14または15のいずれか一項のコンピューティングデバイス。
【０１３３】
条項17．アシスタントが、少なくともイメージデータから1つまたは複数のインテントを推論することによって、推奨されるエージェントを選択し、複数のエージェントから、1つまたは複数のインテントのうちの少なくとも1つに登録される1つまたは複数のエージェントを識別し、1つまたは複数のエージェントおよび1つまたは複数のインテントのそれぞれに関係する情報に基づいて、1つまたは複数のエージェントのランキングを決定し、ランキングに少なくとも部分的に基づいて、複数のエージェントから、推奨されるエージェントを選択するようにさらに構成される条項14〜16のいずれか一項のコンピューティングデバイス。
【０１３４】
条項18．1つまたは複数のエージェントからの特定のエージェントに関係する情報が、特定のエージェントの人気スコア、特定のエージェントとイメージデータとの間の関連性スコア、特定のエージェントとイメージデータとの間の有用性スコア、特定のエージェントに関連する1つまたは複数のインテントのそれぞれに関連する重要性スコア、特定のエージェントに関連するユーザ満足スコア、および特定のエージェントに関連するユーザ対話スコアのうちの少なくとも1つを含む条項17のコンピューティングデバイス。
【０１３５】
条項19．コンピューティングデバイスの少なくとも1つのプロセッサによって実行されるとき、イメージデータを受け取り、イメージデータに基づいて、コンピューティングデバイスからアクセス可能な複数のエージェントから、イメージデータに関連する1つまたは複数のアクションを実行するために推奨されるエージェントを選択し、アシスタントまたは推奨されるエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨するかどうかを判定し、推奨されるエージェントがイメージデータに関連する1つまたは複数のアクションを実行することを推奨すると判定したことに応答して、推奨されるエージェントに、イメージデータに関連する1つまたは複数のアクションを実行させるように構成されるアシスタントを提供する命令を含むコンピュータ可読記憶媒体。
【０１３６】
条項20．アシスタントが、推奨されるエージェントを選択する前に、イメージデータに関連する1つまたは複数のアクションを実行し、複数のエージェントからのそれぞれの特定のエージェントから、その特定のエージェントに関連する1つまたは複数のそれぞれのインテントを含む登録要求を受け取り、複数のエージェントからのそれぞれの特定のエージェントを、その特定のエージェントに関連する1つまたは複数のそれぞれのインテントに登録するようにさらに構成される条項19のコンピュータ可読記憶媒体。
【０１３７】
条項21．条項1〜13のいずれか一項に記載の方法を実行するための手段を備えるシステム。
【０１３８】
1つまたは複数の例では、記載の機能が、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せとして実装され得る。ソフトウェアとして実装されるとき、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶され、またはコンピュータ可読媒体を介して伝送され、ハードウェアベースの処理装置によって実行され得る。コンピュータ可読媒体はコンピュータ可読記憶媒体を含み得、コンピュータ可読記憶媒体は、データ記憶媒体などの有形媒体、またはたとえば通信プロトコルによる、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体に対応する。このようにして、コンピュータ可読媒体は一般に、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号や搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示において説明される技法の実装のための命令、コード、および/またはデータ構造を取り出すために、1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の入手可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１３９】
限定ではなく例として、そのようなコンピュータ可読記憶媒体には、RAM、ROM、EEPROM、CD-ROM、または他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気記憶装置、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の記憶媒体が含まれ得る。さらに、任意の接続が適切にコンピュータ可読媒体と呼ばれる。たとえば、同軸ケーブル、光ファイバケーブル、撚線対、デジタル加入者線(DSL)、または赤外線、無線、マイクロ波などのワイヤレス技術を使用して命令がウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、撚線対、DSL、または赤外線、無線、マイクロ波などのワイヤレス技術が媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は接続、搬送波、信号、または他の一時媒体を含まないが、非一時的、有形記憶媒体を対象とすることを理解されたい。本明細書のディスク(disk)およびディスク(disc)には、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタルバーサタイルディスク(disc)(DVD)、フロッピィディスク(disk)、およびBlue-rayディスク(disc)が含まれ、ディスク(disk)は通常、データを磁気的に再現し、ディスク(disc)は、レーザでデータを光学的に再現する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０１４０】
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、他の等価な集積またはディスクリートロジック回路などの1つまたは複数のプロセッサによって実行され得る。したがって、本明細書では「プロセッサ」という用語は、本明細書において説明される技法の実装に適した前述の構造または任意の他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書において説明される機能が、専用ハードウェアおよび/またはソフトウェアモジュール内で提供され得る。さらに、技法は、1つまたは複数の回路または論理要素として完全に実装され得る。
【０１４１】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む多種多様なデバイスまたは装置として実装され得る。様々な構成要素、モジュール、またはユニットが、開示される技法を実施するように構成されたデバイスの機能的側面を強調するために本開示において説明されるが、相異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、前述のように、様々なユニットがハードウェアユニットとして組み合わされ、適切なソフトウェアおよび/またはファームウェアと共に、前述のような1つまたは複数のプロセッサを含む、相互運用可能なハードウェアユニットの集合によって提供される。
【０１４２】
様々な実施形態が説明された。これらおよび他の実施形態は以下の特許請求の範囲内にある。
【符号の説明】
【０１４３】
100  システム
110  コンピューティングデバイス
112  ユーザインターフェースデバイス(UID)
114  カメラ
120  ユーザインターフェース(UI)モジュール
122A  アシスタントモジュール
122B  アシスタントモジュール
124A  エージェント索引
124B  エージェント索引
128aA〜128aN  3Pエージェントモジュール
128bA〜128bN  3Pエージェントモジュール
130  ネットワーク
160  デジタルアシスタントサーバ
170A〜170N  サードパーティ(3P)エージェントサーバシステム
180  検索サーバシステム
182  検索モジュール
202  ディスプレイ構成要素
204  存在感応入力構成要素
206  マイクロフォン構成要素
208  スピーカ構成要素
210  コンピューティングデバイス
212  ユーザインターフェースデバイス(USD)
214  カメラ
220  UIモジュール
222  アシスタントモジュール
224  エージェント索引
226  1つまたは複数のアプリケーションモジュール
227  エージェント選択モジュール
228A〜228N  3Pエージェントモジュール
230  コンテキストモジュール
240  プロセッサ
242  通信ユニット
244  入力構成要素
246  出力構成要素
248  記憶構成要素
250  通信チャネル
282  検索モジュール
422  アシスタントモジュール
424  エージェント索引
427  エージェント選択モジュール
430  コンテキストモジュール
431  エージェント精度モジュール
440  プロセッサ
442  通信ユニット
448  記憶装置
450  通信チャネル
460  デジタルアシスタントサーバ
482  検索モジュール
【図１】
2020521376.tif 000003
【図２】
2020521376.tif 000004
【図３】
2020521376.tif 000005
【図４】
2020521376.tif 000006
【国際調査報告】
2020521376.tif 000007
2020521376.tif 000008
2020521376.tif 000009