(57)【要約】  自動化アシスタントへの口頭の発話によってユーザにより要求されたアクションに関する実行の順序を生成するための実装が、本明細書において説明される。要求されたアクションに関する実行の順序は、それぞれの要求されたアクションがその他の要求されたアクションにどのように影響を与え得るかまたは影響を与えると予測されるかに基づくことが可能である。一部の実装において、一連のアクションに関する実行の順序が、教師あり学習によってトレーニングされたモデルなどの機械学習モデルの出力に基づいて決定され得る。実行の特定の順序が、処理、メモリ、およびネットワークリソースの無駄を--少なくとも実行のその他の可能な順序に比べて--減らすために選択され得る。自動化アシスタントの過去の実行を特徴付けるインタラクションデータを使用して、実行の特定の順序が、経時的に適応されることが可能であり、それによって、自動化アシスタントが1人または複数のユーザとの過去のインタラクションから学習することを可能にする。
2021533399.tif 000002
【特許請求の範囲】
【請求項１】
1つまたは複数のプロセッサによって実施される方法であって、
ユーザからの口頭の発話を特徴付けるオーディオデータを受信するステップであって、前記口頭の発話が、自動化アシスタントを介して複数のアクションが実行されるようにとの要求を含み、前記口頭の発話が、コンピューティングデバイスの自動化アシスタントインターフェースにおいて受信される、ステップと、
前記口頭の発話を特徴付ける前記オーディオデータに基づいて、前記自動化アシスタントを介して実行されることを前記ユーザによって要求された前記複数のアクションのうちの各アクションを特定するステップであって、前記複数のアクションが実行されるようにとの要求が、第1のアクションの順序に従って前記口頭の発話内で示される、ステップと、
前記複数のアクションのうちの各アクションを特定したことに基づいて、前記複数のアクションのうちの各アクションの実行の特徴を決定するステップであって、
前記複数のアクションのうちのアクションの特定の実行の特徴が、前記複数のアクションが1つまたは複数のコンピューティングデバイスによって前記第1のアクションの順序に従って実行されるときに前記複数のアクションの実行の時間的側面に影響を与え、
前記複数のアクションのうちの各アクションの前記実行の特徴を決定するステップが、前記コンピューティングデバイスおよび/または別のコンピューティングデバイスにおける前記複数のアクションのうちの1つまたは複数のアクションの過去の実行に基づいて生成されるデータにアクセスするステップを含む、
ステップと、
前記複数のアクションのうちの前記アクションの前記特定の実行の特徴に基づいて、前記複数のアクションを実行するための第2のアクションの順序を決定するステップであって、前記第2のアクションの順序が、前記1つまたは複数のコンピューティングデバイスによって実行されるとき、前記1つまたは複数のコンピューティングデバイスに前記複数のアクションの実行の前記時間的側面の違いを示させる、ステップと、
前記第2のアクションの順序を決定したことに基づいて、前記自動化アシスタントに、前記第2のアクションの順序に従って前記複数のアクションのうちの1つまたは複数のアクションの実行を初期化させるステップと
を含む、方法。
【請求項２】
前記第2のアクションの順序を決定するステップが、
トレーニングされたニューラルネットワークモデルからの出力データを処理するステップであって、前記トレーニングされたニューラルネットワークモデルが、前記ユーザと前記自動化アシスタントとの間の少なくとも1つまたは複数の以前のインタラクションを特徴付ける履歴的インタラクションデータを使用してトレーニングされている、ステップ
を含む、請求項1に記載の方法。
【請求項３】
前記履歴的インタラクションデータが、前記自動化アシスタントにアクションの様々なシーケンスを実行させることを促進するために前記自動化アシスタントと以前インタラクションしたその他のユーザを含む複数のインタラクションをさらに特徴付ける、請求項2に記載の方法。
【請求項４】
前記履歴的インタラクションデータが、以前要求されたアクションの実行の順序に影響を与えるために前記自動化アシスタントに前記ユーザによって与えられたフィードバックをさらに特徴付ける、請求項2に記載の方法。
【請求項５】
前記複数のアクションのうちの前記アクションの前記特定の実行の特徴が、前記アクションを会話開始アクションとして特徴付け、前記ユーザと前記自動化アシスタントとの間の補足的な会話セッションが、前記ユーザが前記アクションのパラメータに割り振られる値を特定するために行われるべきである、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記第1のアクションの順序に従った前記複数のアクションの前記実行の前記時間的側面が、少なくとも前記複数のアクションのうちの1つまたは複数のアクションの実行の推定された時間を含み、前記方法が、
前記複数のアクションが前記第1のアクションの順序に従って実行されるときに、前記補足的な会話セッションが前記1つまたは複数のアクションの実行の前記推定された時間を延長すると予測されると判定するステップ
をさらに含む、請求項5に記載の方法。
【請求項７】
前記複数のアクションのうちの別のアクションが、連続メディア再生を提供することを含み、
前記第2のアクションの順序が、前記連続メディア再生を提供することを含む前記別のアクションよりも前記会話開始アクションを優先する、
請求項5または6に記載の方法。
【請求項８】
前記自動化アシスタントに、前記第2のアクションの順序に従って前記複数のアクションのうちの少なくとも1つのアクションの実行を初期化させるステップが、
前記複数のアクションのうちの前記少なくとも1つのアクションが前記第2のアクションの順序に従って初期化されたというインジケーションを前記ユーザに提供する自然言語出力を生成するステップ
を含む、請求項5に記載の方法。
【請求項９】
1つまたは複数のプロセッサによって実施される方法であって、
自動化アシスタントが複数のアクションを実行することを要求するユーザからの口頭の発話を特徴付けるオーディオデータを処理するステップであって、前記複数のアクションが、第1のアクションの順序に従って前記口頭の発話内で前記ユーザによって特徴付けられる、ステップと、
前記オーディオデータを処理したことに基づいて、前記ユーザによって要求された前記複数のアクションのうちの各アクションに関するアクションの分類を決定するステップであって、前記複数のアクションのうちの特定のアクションの特定のアクションの分類が、少なくとも1つのパラメータに従って実行される会話開始アクションを含む、ステップと、
前記少なくとも1つのパラメータに関する値が前記口頭の発話内で前記ユーザによって指定されるかどうかを判定するステップと、
前記少なくとも1つのパラメータに関する前記値が前記口頭の発話内で指定されなかったとき、
前記複数のアクションに関する第2のアクションの順序を生成するステップであって、前記第2のアクションの順序が、少なくとも1つのパラメータに関する前記値が前記口頭の発話内で指定されなかったことに基づいて、前記会話開始アクションに前記複数のアクションのうちの別のアクションに比べて引き下げられた優先度を持たせる、ステップと
を含む、方法。
【請求項１０】
前記少なくとも1つのパラメータが前記口頭の発話内で指定されるとき、
前記複数のアクションに関する第3のアクションの順序を生成するステップであって、前記第3のアクションの順序が、前記会話開始アクションに、前記ユーザが前記口頭の発話内で少なくとも1つのパラメータに関する前記値を指定することによる影響を受けない優先度を持たせる、ステップ
をさらに含む、請求項9に記載の方法。
【請求項１１】
前記アクションの分類を決定するステップが、前記複数のアクションのうちの各アクションに関して、前記アクションがメディアの連続再生に対応するかどうかを判定するステップを含み、前記方法が、
前記複数のアクションのうちの要求されたアクションがメディアの連続再生のアクションを含むとき、
前記要求されたアクションが前記複数のアクションのうちの前記別のアクションに比べて時間的に後で実行されるように前記要求されたアクションを優先順位付けする前記第2のアクションの順序または前記第3のアクションの順序を生成するステップ
をさらに含む、請求項10に記載の方法。
【請求項１２】
前記ユーザが前記複数のアクションのうちの少なくとも1つのアクションを実行することに関する時間的条件を明示的に指定したかどうかを判定するステップと、
前記ユーザが前記複数のアクションのうちの前記少なくとも1つのアクションを実行することに関する前記時間的条件を明示的に指定したとき、
前記複数のアクションのうちの少なくとも1つのアクションを実行することに関する前記時間的条件に合う前記第2のアクションの順序または前記第3のアクションの順序を生成するステップと
をさらに含む、請求項9から11のいずれか一項に記載の方法。
【請求項１３】
前記自動化アシスタントが、前記特定のアクションが前記時間的条件によって影響を受けることを前記ユーザによって明示的に要求された前記少なくとも1つのアクションであるとき、前記時間的条件に従って前記第2のアクションの順序または前記第3のアクションの順序を無視するように構成される、請求項12に記載の方法。
【請求項１４】
1つまたは複数のプロセッサによって実施される方法であって、
自動化アシスタントが第1の種類のアクションおよび第2の種類のアクションを含む複数のアクションを実行する要求を含む口頭の発話をユーザが与えたと判定するステップであって、前記自動化アシスタントが、コンピューティングデバイスの自動化アシスタントインターフェースを介して前記ユーザによってアクセス可能である、ステップと、
前記ユーザが前記口頭の発話を与えたことに応じて、
前記複数のアクションの実行中に前記第2の種類のアクションが前記第1の種類のアクションよりも優先されるときの前記第1の種類のアクションに関する推定された遅延を生成するステップと、
前記推定された遅延に基づいて、前記第1の種類のアクションに関する前記推定された遅延が閾値を満たすかどうかを判定するステップであって、
前記第1の種類のアクションに関する前記推定された遅延が前記閾値を満たすとき、前記第1の種類のアクションの実行が前記第2の種類のアクションよりも優先される、ステップと、
前記推定された遅延が前記閾値を満たすかどうかに基づいて、前記ユーザによって要求された前記複数のアクションに関する実行の好ましい順序を生成するステップと、
前記自動化アシスタントに実行の前記好ましい順序に従って前記複数のアクションの実行を初期化させるステップと
を含む、方法。
【請求項１５】
前記ユーザによって要求された前記複数のアクションのうちの各アクションに関するアクションの分類を決定するステップであって、前記自動化アシスタントが、少なくとも1つのその他のアクションの分類よりもアクションの少なくとも1つの特定の分類を優先するように構成される、ステップをさらに含む、請求項14に記載の方法。
【請求項１６】
前記第1の種類のアクションが会話開始アクションを含み、前記第2の種類のアクションがメディア再生アクションを含む、請求項14または15に記載の方法。
【請求項１７】
前記メディア再生アクションが、別のコンピューティングデバイスにおいて少なくとも部分的に実行されるように構成され、前記方法が、
前記会話開始アクションが前記メディア再生アクションよりも優先されるとき、
前記別のコンピューティングデバイスに前記メディア再生アクションを実行するためにアプリケーションを初期化させるのと同時に前記コンピューティングデバイスにおいて前記会話開始アクションが初期化されるようにするステップ
をさらに含む、請求項16に記載の方法。
【請求項１８】
前記メディア再生アクションが前記会話開始アクションよりも優先されるとき、
前記会話開始アクションの完了を促進するために前記自動化アシスタントに会話に対応する自然言語出力を提供させるステップと、
前記会話開始アクションが完了されるとき、
前記自動化アシスタントに前記コンピューティングデバイスまたは前記別のコンピューティングデバイスにおいて前記メディア再生アクションの実行を初期化させるステップと
をさらに含む、請求項17に記載の方法。
【請求項１９】
前記会話開始アクションが、実行されるとき、前記会話開始アクションの完了を促進するために前記ユーザがパラメータに割り振られる値を特定するために前記ユーザと前記自動化アシスタントとの間の会話セッションを開始することを含む、
請求項16から18のいずれか一項に記載の方法。
【請求項２０】
前記メディア再生アクションが、実行されるとき、1つまたは複数のファイルを介してアクセス可能であるメディアの再生を初期化することを含み、前記推定された遅延が前記1つまたは複数のファイルのファイル長さの合計に基づく、請求項16から18のいずれか一項に記載の方法。
【請求項２１】
前記メディア再生アクションが、実行されるとき、1つまたは複数のネットワークソースを介してアクセス可能であるメディアの再生を初期化することを含み、前記推定された遅延が、前記1つまたは複数のネットワークソースを介してアクセス可能である時間データに基づく、請求項16から18のいずれか一項に記載の方法。
【請求項２２】
1つまたは複数のプロセッサによって実行されるとき、前記1つまたは複数のプロセッサに請求項1から21のいずれか一項に記載の方法を実行させる命令を含む、コンピュータプログラム製品。
【請求項２３】
1つまたは複数のプロセッサによって実行されるとき、前記1つまたは複数のプロセッサに請求項1から21のいずれか一項に記載の方法を実行させる命令を含む、コンピュータ可読ストレージ媒体。
【請求項２４】
請求項1から21のいずれか一項に記載の方法を実行するための1つまたは複数のプロセッサを含む、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動化アシスタントを介して実行されるように要求された一連のアクションの実行の編成に関する。
【背景技術】
【０００２】
人は、本明細書において「自動化アシスタント」と呼ばれるインタラクティブなソフトウェアアプリケーション(「デジタルエージェント」、「チャットボット」、「インタラクティブパーソナルアシスタント」、「インテリジェントパーソナルアシスタント」、「アシスタントアプリケーション」、「会話エージェント」などとも呼ばれる)を用いて人間とコンピュータとの会話に従事する可能性がある。たとえば、人(自動化アシスタントとインタラクションするときは「ユーザ」と呼ばれることがある)は、場合によってはテキストに変換され、それから処理される可能性がある口頭の自然言語入力(つまり、発話)を使用して、および/またはテキストの(たとえば、タイピングされた)自然言語入力を与えることによって自動化アシスタントにコマンドおよび/または要求を与える可能性がある。自動化アシスタントは、可聴のおよび/または視覚的なユーザインターフェース出力を含み得る応答ユーザインターフェース出力を提供することによって要求に応答する。
【０００３】
多くの場合、自動化アシスタントは、要求されたアクションを指定するときにユーザが示す順序に従ってアクションを排他的に実行する可能性がある。これは、特に、ユーザが複数の異なるアクションが実行されるようにとの要求を含む単一の自然言語入力を与えるときに問題があると判明し得る。たとえば、ユーザは、ユーザが要求を口頭で言う前に十分に考えていなかった可能性がある順序で、実行される一連のアクションの要求を示し得る。結果として、それ以外の方法で比較的迅速に実行される可能性がある特定のアクションが、気付かずに遅らされる可能性があり、それによって、自動化アシスタントの特定の性能の側面にレイテンシおよびその他の計算の非効率性をもたらす。
【０００４】
例として、ユーザがメディアストリームの提供およびウェブ検索の実行を要求する場合、自動化アシスタントは、結果として、メディアストリームを提供することを優先する可能性があり、それによって、ウェブクエリの実行を遅らせる--ウェブクエリの実行は、そうでなければ、多くの場合、比較的迅速に実行され得る。連続したメディア再生が行われている間にユーザがウェブクエリについて忘れしまうようなことがあれば、ユーザが、その後、同じ要求を再び発する可能性があり、それによって、重複した要求を処理することに計算リソースを無駄にする。さらに、自動化アシスタントがアクションのシーケンスが実行される順序を示すためにもっぱらユーザに頼るとき、データをダウンロードする、キャッシュする、および/またはレンダリングするなどの特定の処理は、最適な方法で実行するために順番に配列されない可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００５】
本明細書において説明されるのは、複数の要求された自動化アシスタントのアクションに関する実行の順序を生成するためのシステム、方法、および装置に関連する実装である。特に、アクションは、単一の口頭の発話によってユーザにより要求されることが可能であり、アクションに関する実行の順序は、それぞれの要求されたアクションが別の要求されたアクションにどのように影響を与え得るかまたは影響を与えると予測されるかに従って配列されることが可能である。たとえば、口頭の発話が、複数のアクションが実行されるようにとの要求を含むことが可能であり、複数のアクションのうちの少なくとも1つのアクションが、会話を開始するクエリに対応することが可能である。会話を開始するクエリがその他の複数のアクションよりも優先されるならば、その他のアクションの実行は、ユーザと自動化アシスタントとの間の会話が完了するまで延期される。したがって、要求とアクションの実行との間の遅延時間を減らすために、会話を開始するクエリは、複数の要求されたアクションのうちで最後に完了されるアクションとして割り振られることが可能である。結果として、ユーザは、デバイスまたはシステムにコマンドを送ることができ、それらのコマンドは、より効率的な実行のためにそれから解釈される。つまり、ユーザは、実行の順序がシステム、方法、または装置によって決定され得るので、コマンド入力の最も効率的な形態をコマンド実行の最も効率的な形態と一致させる必要がない。したがって、インタラクションの容易さおよび効率が、高められる。
【０００６】
例として、ユーザは、「アシスタント、明日のアラームを設定して、それと、明日の天気を教えて」などの口頭の発話を与えることができる。自動化アシスタントは、口頭の発話を受信し、口頭の発話がアラームを設定する第1の要求と天気予報を提供する第2の要求とを含むと判定することができる。さらに、自動化アシスタントは、アラームを設定することが補足的な情報がユーザによって与えられることを必要とし、したがって、さらなる会話が処理されることを必要とすると判定し得る。たとえば、自動化アシスタントは、アラームの時間の要求を含む自然言語出力を生成しなければならない可能性があり、自動化アシスタントは、アラームの時間を特定するユーザからのその後の入力を処理しなければならない可能性がある。加えて、自動化アシスタントは、天気予報を提供することが、インターネットを介して要求を送ること、それに応じて天気のデータを受信すること、および天気のデータをユーザのために自然言語出力に変換することを必要とすると判定し得る。したがって、少なくとも、第1の要求がユーザからのさらなる情報を必要とすることと、第2の要求がユーザとのいかなるさらなる会話も必要としないこととに基づいて、自動化アシスタントは、第1の要求を満たす前に第2の要求を満たすことによってアクションの実行を順序付けることができる。言い換えると、ユーザは、少なくとも、アラームの設定がユーザからのさらなる情報を必要とすることに基づいて、アラームを設定するための会話セッションに参加する前に天気予報を受信する。
【０００７】
一部の実装において、ユーザによって実行されること要求されたアクションは、要求されたアクションのうちの1つまたは複数がその他の要求されたアクションに比べて長く続く出力をもたらすかまたはもたらすと予測されるかどうかに従って配列され得る。言い換えると、ユーザの要求に応じて実行されるアクションは、要求されたアクションのうちの1つまたは複数がその他の要求されたアクションのうちの1つまたは複数の実行を妨げる特定の様式から出力を生じるかどうかに従って配列され得る。たとえば、ユーザは、「アシスタント、私の朝の再生リストを再生して、それと、天気を教えて」などの口頭の発話を与えることができる。自動化アシスタントが口頭の発話を受信したことに応じて、自動化アシスタントは、朝の再生リストを再生する第1の要求されたアクションと、ユーザに天気予報を提供する第2の要求されたアクションとを特定し得る。さらに、自動化アシスタントは、天気予報を提供することが可聴の天気予報が時間の第1の期間の間提供される結果となり、朝の再生リストを再生することが可聴の音楽が時間の第2の期間の間提供される結果となると判定し得る。さらに、自動化アシスタントは、時間の第2の期間が時間の第1の期間よりも長いと判定することが可能であり、したがって、自動化アシスタントは、第2の要求されたアクションが第1の要求されたアクションの前に実行されるようにアクションの実行を順序付けることが可能である。言い換えると、ユーザに天気予報を提供することが朝の再生リストを提供することよりも時間がかからないので、自動化アシスタントは、朝の再生リストの音楽を再生することよりも天気予報を優先し得る。このようにして、アクションの優先順位付けは、ある特定のアクションの実行の時間の推定された量が別の特定のアクションの実行の時間の推定された量よりも長いかどうかに基づくことが可能である。
【０００８】
一部の実装において、ユーザが複数のメディアアイテムを再生する要求を含む口頭の発話を与えるとき、メディアアイテムを再生するためのアクションの順序は、口頭の発話内で指定された順序に従って配列され得る。たとえば、ユーザは、「アシスタント、『For Once in My Life』と『I Was Made to Love Her』を再生して」などの口頭の発話を与える。それに応じて、自動化アシスタントは、ユーザが意図的に順序を指定したか否かにかかわらず、ユーザが指定した順序で2つの局の各々を再生し得る。しかし、一部の実装において、ユーザは、1つまたは複数のアクションが1つまたは複数のメディアアイテムの再生後に実行されることを明示的に指定することができる。たとえば、ユーザは、「アシスタント、『Superstition』を再生して、それから、防犯アラームを設定するように私に言って」などの口頭の発話を与えることができる。それに応じて、ユーザがアクションの実行に関する特定の条件を指定したので、自動化アシスタントは、この口頭の発話を受信し、指定されたメディアアイテムの再生を引き起こし、それに続いて、ユーザの防犯アラームを設定するようにユーザに注意することができる。
【０００９】
一部の実装において、ユーザが特定のタスクまたはイベントをスケジューリングする第1のアクションと第1のアクションが完了された結果に少なくとも部分的に依存する第2のアクションとを含む口頭の発話を与えるとき、自動化アシスタントは、第1のアクションが完了されるまで第2のアクションを遅らせることができる。たとえば、ユーザは、「アシスタント、今度の金曜日の映画のチケットを予約して、それから、映画の後のレストランの席を予約して」などの口頭の発話を与えることができる。口頭の発話を受信したことに応じて、自動化アシスタントは、各アクションを完了するために必要なパラメータを決定し得る。たとえば、映画のチケットを予約するために、自動化アシスタントは、指定された日の映画の上映時間を決定する必要がある。さらに、レストランの席を予約するために、自動化アシスタントは、レストランの予約をする時間に関するパラメータを必要とする。しかし、交わされる会話の量を減らし、計算および/またはネットワークリソースを節約するために、自動化アシスタントは、映画の時間、映画の長さ、映画館からレストランまでの距離、および/またはレストランの予約がいつであるべきかに影響を与え得る任意のその他の要因に基づいてレストランの推定された予約時間を決定することができる。
【００１０】
一部の実装において、ユーザは、特定のアプリケーションを開き、アプリケーションを使用して特定のアクションを実行するように自動化アシスタントに命じることを含む口頭の発話を与えることができる。しかし、ユーザは、アクションを実行するアプリケーションに関して不可知である方法で口頭の発話を与える可能性がある。たとえば、ユーザは、「アシスタント、私のオークションアプリケーションを開いて、それと、アボカドの種が1箱いくらか教えて」などの口頭の発話を与えることができる。それに応じて、自動化アシスタントは、オークションアプリケーションを開き、特定の品物の価格を提供するアクションが互いに関連すると判定し得る。一部の実装において、自動化アシスタントは、両方の要求の間の相関を定量化し得る。定量化された相関が特定の閾値を満たすとき、自動化アシスタントは、ユーザによって要求された別のアクションを実行するためにユーザによって特定されたアプリケーションを使用しようと試みることができる。このようにして、--アプリケーションがアクションを実行する前に開かれる必要があると仮定して--実行の順序が自動化アシスタントによって決定されるだけでなく、アクションを実行するために使用されるアプリケーションに関する曖昧さが、自動化アシスタントによって解決され得る。
【００１１】
一部の実装において、要求されたアクションの実行の再順序付けが、時間の経過とともに学習され得る。たとえば、一部の実装において、ユーザからのフィードバックが、自動化アシスタントが特定の要求されたアクションの実行を正しく順序付けたのかまたは誤って順序付けたのかを学習するために使用され得る。たとえば、ユーザが複数のアクションを実行する要求を含む口頭の発話を与え、自動化アシスタントがユーザがその他のアクションよりも優先されるように意図しなかったアクションの実行を開始するとき、ユーザは、アクションの実行が誤って初期化されたというインジケーションを与えることができる。ユーザは、アクションが自動化アシスタントによって実行されることを中断するためにディスプレイパネルに入力を与えることによってアクションの実行を中断する、および/またはアクションの継続中の実行を停止するために「停止」などの口頭の発話を与えることができる。その後、そのようなフィードバックまたは入力が、それらのアクションが再びユーザによって要求されるときにアクションの順序付けを訂正するために依拠され得る。
【００１２】
一部の実装において、ユーザと自動化アシスタントとの間のインタラクションを特徴付ける履歴的なインタラクションデータが、ユーザからの追加的な入力の要求をもたらした特定のアクションを決定するために分析され得る。このようにして、自動化アシスタントは、概してさらなるインタラクションをもたらしたアクションおよびもたらさなかったアクションを特定することができる。その後、ユーザが特定のアクションの実行を要求するための口頭の発話を与えるとき、自動化アシスタントは、ユーザからの追加の入力が要求される結果となった特定のアクションを優先するかまたは優先しないことができる。
【００１３】
一部の実装において、様々なユーザとそれらのユーザのそれぞれの自動化アシスタントとの間のインタラクションを特徴付ける履歴的なインタラクションデータが、口頭の発話に応じて実行されるアクションの順序付けを決定するために使用され得る。たとえば、ユーザは、「アシスタント、私の朝の再生リストを再生して、それと、天気を教えて」などの口頭の発話を与えることができる。それに応じて、自動化アシスタントは、1人または複数のユーザがそれらの特定のアクションを要求したときの以前の場合を特徴付ける履歴的なインタラクションデータにアクセスし得るかまたはそうでなければそのような履歴的なインタラクションデータに基づいてトレーニングされ得る。特に、自動化アシスタントは、ユーザが、朝、音楽を要求する前に天気予報を要求することがより多いと判定し得る。したがって、ユーザから口頭の発話を受信したことに応じて、自動化アシスタントは、天気予報が朝の再生リストの前に提供されるように要求されたアクションを再順序付けすることが可能である。一部の実装において、履歴的なインタラクションデータは、ユーザが単一の口頭の発話内で両方のアクションを要求したならびに/または別々の口頭の発話内でおよび/もしくは別々の時間に(ただし、任意で、互いの閾値の時間以内に)両方のアクションを要求したが、しかしそれにもかかわらず、両方のアクションが特定の順序でより頻繁に実行されるように要求した場合を示し得るかまたはそうでなければ特徴付け得る。自動化アシスタントは、したがって、アクションに関してより頻繁に実行される実行の順序を特定し、それに応じて、任意の要求されたアクションの実行を再順序付けすることができる。
【００１４】
一部の実装において、ユーザが複数のアクションが実行されるようにとの要求を含む口頭の発話を与え、1つのアクションが個人的なメッセージの要求に対応するとき、個人的なメッセージの要求は、任意のその他のアクションが完了されるまで遅らされ得る。たとえば、ユーザが「また明日。アラームを明日の午前8時に設定してください」などの口頭の発話を与えるとき、自動化アシスタントは、この口頭の発話を受信し、口頭の発話が個人的なメッセージの要求およびアラームが設定されるようにとの要求を含むと判定し得る。それに応じて、自動化アシスタントは、個人的なメッセージを提供することよりもアラームを設定することを優先し得る。したがって、自動化アシスタントが口頭の発話に応答するとき、自動化アシスタントは、「はい、アラームを設定しました。おやすみなさい、Jim」などの自然言語出力が出力されるようにし得る。このようにして、有用性のより高いアクションが、そうではなくユーザのスケジュール、ユーザの環境、ユーザがアクセス可能なデバイス、および/またはユーザに関連する任意のその他の特徴に影響を与えない可能性があるアクションよりも優先され得る。
【００１５】
一部の実装において、1つまたは複数のプロセッサによって実施される方法が、ユーザからの口頭の発話を特徴付けるオーディオデータを受信するステップであって、口頭の発話が、自動化アシスタントを介して複数のアクションが実行されるようにとの要求を含み、口頭の発話が、コンピューティングデバイスの自動化アシスタントインターフェースにおいて受信される、ステップなどの動作を含むものとして説明される。動作は、口頭の発話を特徴付けるオーディオデータに基づいて、自動化アシスタントを介して実行されることをユーザによって要求された複数のアクションのうちの各アクションを特定するステップであって、複数のアクションが実行されるようにとの要求が、第1のアクションの順序に従って口頭の発話内で示される、ステップをさらに含み得る。動作は、複数のアクションのうちの各アクションを特定したことに基づいて、複数のアクションのうちの各アクションの実行の特徴を決定するステップであって、複数のアクションのうちのアクションの特定の実行の特徴が、複数のアクションが1つまたは複数のコンピューティングデバイスによって第1のアクションの順序に従って実行されるときに複数のアクションの実行の時間的側面に影響を与え、複数のアクションのうちの各アクションの実行の特徴を決定するステップが、コンピューティングデバイスおよび/または別のコンピューティングデバイスにおける複数のアクションのうちの1つまたは複数のアクションの過去の実行に基づいて生成されるデータにアクセスするステップを含む、ステップをさらに含み得る。動作は、複数のアクションのうちのアクションの特定の実行の特徴に基づいて、複数のアクションを実行するための第2のアクションの順序を決定するステップであって、第2のアクションの順序が、1つまたは複数のコンピューティングデバイスによって実行されるとき、1つまたは複数のコンピューティングデバイスに複数のアクションの実行の時間的側面の違いを示させる、ステップをさらに含み得る。動作は、第2のアクションの順序を決定したことに基づいて、自動化アシスタントに、第2のアクションの順序に従って複数のアクションのうちの1つまたは複数のアクションの実行を初期化させるステップをさらに含み得る。
【００１６】
一部の実装において、第2のアクションの順序を決定するステップは、トレーニングされたニューラルネットワークモデルからの出力データを処理するステップであって、トレーニングされたニューラルネットワークモデルが、ユーザと自動化アシスタントとの間の少なくとも1つまたは複数の以前のインタラクションを特徴付ける履歴的インタラクションデータを使用してトレーニングされている、ステップを含む。一部の実装において、履歴的インタラクションデータは、自動化アシスタントにアクションの様々なシーケンスを実行させることを促進するために自動化アシスタントと以前インタラクションしたその他のユーザを含む複数のインタラクションをさらに特徴付ける。一部の実装において、履歴的インタラクションデータは、以前要求されたアクションの実行の順序に影響を与えるために自動化アシスタントにユーザによって与えられたフィードバックをさらに特徴付ける。一部の実装において、複数のアクションのうちのアクションの特定の実行の特徴が、アクションを会話開始アクションとして特徴付け、ユーザと自動化アシスタントとの間の補足的な会話セッションが、ユーザがアクションのパラメータに割り振られる値を特定するために行われるべきである。
【００１７】
一部の実装において、第1のアクションの順序に従った複数のアクションの実行の時間的側面は、少なくとも、複数のアクションのうちの1つまたは複数のアクションの実行の推定された時間を含み、方法は、複数のアクションが第1のアクションの順序に従って実行されるときに、補足的な会話セッションが1つまたは複数のアクションの実行の推定された時間を延長すると予測されると判定するステップをさらに含む。一部の実装において、複数のアクションのうちの別のアクションが、連続メディア再生を提供することを含み、第2のアクションの順序が、連続メディア再生を提供することを含む別のアクションよりも会話開始アクションを優先する。一部の実装において、自動化アシスタントに、第2のアクションの順序に従って複数のアクションのうちの少なくとも1つのアクションの実行を初期化させるステップは、複数のアクションのうちの少なくとも1つのアクションが第2のアクションの順序に従って初期化されたというインジケーションをユーザに提供する自然言語出力を生成するステップを含む。
【００１８】
その他の実装において、1つまたは複数のプロセッサによって実施される方法が、自動化アシスタントが複数のアクションを実行することを要求するユーザからの口頭の発話を特徴付けるオーディオデータを処理するステップであって、複数のアクションが、第1のアクションの順序に従って口頭の発話内でユーザによって特徴付けられる、ステップなどの動作を含むものとして説明される。方法は、オーディオデータを処理したことに基づいて、ユーザによって要求された複数のアクションのうちの各アクションに関するアクションの分類を決定するステップであって、複数のアクションのうちの特定のアクションの特定のアクションの分類が、少なくとも1つのパラメータに従って実行される会話開始アクションを含む、ステップをさらに含み得る。方法は、少なくとも1つのパラメータに関する値が口頭の発話内でユーザによって指定されるかどうかを判定するステップをさらに含み得る。方法は、少なくとも1つのパラメータに関する値が口頭の発話内で指定されなかったとき、複数のアクションに関する第2のアクションの順序を生成するステップであって、第2のアクションの順序が、少なくとも1つのパラメータに関する値が口頭の発話内で指定されなかったことに基づいて、会話開始アクションに複数のアクションのうちの別のアクションに比べて引き下げられた優先度を持たせる、ステップをさらに含み得る。
【００１９】
方法は、少なくとも1つのパラメータが口頭の発話内で指定されるとき、複数のアクションに関する第3のアクションの順序を生成するステップであって、第3のアクションの順序が、会話開始アクションに、ユーザが口頭の発話内で少なくとも1つのパラメータに関する値を指定することによる影響を受けない優先度を持たせる、ステップをさらに含み得る。アクションの分類を決定するステップは、複数のアクションのうちの各アクションに関して、アクションがメディアの連続再生に対応するかどうかを判定するステップを含み、方法は、複数のアクションのうちの要求されたアクションがメディアの連続再生のアクションを含むとき、要求されたアクションが複数のアクションのうちの別のアクションに比べて時間的に後で実行されるように要求されたアクションを優先順位付けする第2のアクションの順序または第3のアクションの順序を生成するステップをさらに含む。方法は、ユーザが複数のアクションのうちの少なくとも1つのアクションを実行することに関する時間的条件を明示的に指定したかどうかを判定するステップと、ユーザが複数のアクションのうちの少なくとも1つのアクションを実行することに関する時間的条件を明示的に指定したとき、複数のアクションのうちの少なくとも1つのアクションを実行することに関する時間的条件に合う第2のアクションの順序または第3のアクションの順序を生成するステップとをさらに含み得る。自動化アシスタントは、特定のアクションが時間的条件によって影響を受けることをユーザによって明示的に要求された少なくとも1つのアクションであるとき、時間的条件に従って第2のアクションの順序または第3のアクションの順序を無視するように構成される。
【００２０】
さらにその他の実装において、1つまたは複数のプロセッサによって実施される方法が、自動化アシスタントが第1の種類のアクションおよび第2の種類のアクションを含む複数のアクションを実行する要求を含む口頭の発話をユーザが与えたと判定するステップであって、自動化アシスタントが、コンピューティングデバイスの自動化アシスタントインターフェースを介してユーザによってアクセス可能である、ステップなどの動作を含むものとして説明される。方法は、ユーザが口頭の発話を与えたことに応じて、複数のアクションの実行中に第2の種類のアクションが第1の種類のアクションよりも優先されるときの第1の種類のアクションに関する推定された遅延を生成するステップをさらに含み得る。方法は、推定された遅延に基づいて、第1の種類のアクションに関する推定された遅延が閾値を満たすかどうかを判定するステップであって、第1の種類のアクションに関する推定された遅延が閾値を満たすとき、第1の種類のアクションの実行が第2の種類のアクションよりも優先される、ステップをさらに含み得る。方法は、推定された遅延が閾値を満たすかどうかに基づいて、ユーザによって要求された複数のアクションに関する実行の好ましい順序を生成するステップをさらに含み得る。方法は、自動化アシスタントに実行の好ましい順序に従って複数のアクションの実行を初期化させるステップをさらに含み得る。
【００２１】
一部の実装において、方法は、ユーザによって要求された複数のアクションのうちの各アクションに関するアクションの分類を決定するステップであって、自動化アシスタントが、少なくとも1つのその他のアクションの分類よりもアクションの少なくとも1つの特定の分類を優先するように構成される、ステップをさらに含み得る。一部の実装において、第1の種類のアクションは、会話開始アクションを含み、第2の種類のアクションは、メディア再生アクションを含む。一部の実装において、メディア再生アクションは、別のコンピューティングデバイスにおいて少なくとも部分的に実行されるように構成され、方法は、会話開始アクションがメディア再生アクションよりも優先されるとき、別のコンピューティングデバイスにメディア再生アクションを実行するためにアプリケーションを初期化させるのと同時にコンピューティングデバイスにおいて会話開始アクションが初期化されるようにするステップをさらに含む。一部の実装において、方法は、メディア再生アクションが会話開始アクションよりも優先されるとき、会話開始アクションの完了を促進するために自動化アシスタントに会話に対応する自然言語出力を提供させるステップと、会話開始アクションが完了されるとき、自動化アシスタントにコンピューティングデバイスまたは別のコンピューティングデバイスにおいてメディア再生アクションの実行を初期化させるステップとをさらに含む。
【００２２】
一部の実装において、会話開始アクションは、実行されるとき、会話開始アクションの完了を促進するためにユーザがパラメータに割り振られる値を特定するためにユーザと自動化アシスタントとの間の会話セッションを開始することを含む。一部の実装において、メディア再生アクションは、実行されるとき、1つまたは複数のファイルを介してアクセス可能であるメディアの再生を初期化することを含み、推定された遅延は、1つまたは複数のファイルのファイル長の合計に基づく。一部の実装において、メディア再生アクションは、実行されるとき、1つまたは複数のネットワークソースを介してアクセス可能であるメディアの再生を初期化することを含み、推定された遅延は、1つまたは複数のネットワークソースを介してアクセス可能である時間データに基づく。
【００２３】
その他の実装は、上におよび/または本明細書の他の箇所に記載の方法のうちの1つまたは複数などの方法を実行するために1つまたは複数のプロセッサ(たとえば、中央演算処理装置(CPU)、グラフィックス処理ユニット(GPU)、および/またはテンソル処理ユニット(TPU: tensor processing unit))によって実行可能な命令を記憶する非一時的コンピュータ可読ストレージ媒体を含む可能性がある。さらにその他の実装は、上におよび/または本明細書の他の箇所に記載の方法のうちの1つまたは複数などの方法を実行するために記憶された命令を実行するように動作可能な1つまたは複数のプロセッサを含む1つもしくは複数のコンピュータおよび/または1つもしくは複数のロボットのシステムを含む可能性がある。
【００２４】
上述の概念および本明細書においてより詳細に説明される追加的な概念のすべての組合せは、本明細書において開示される対象の一部であると考えられることを理解されたい。たとえば、本開示の最後に現れる特許請求の対象のすべての組合せは、本明細書において開示される対象の一部であると考えられる。
【図面の簡単な説明】
【００２５】
【図１】ユーザが自動化アシスタントに一連のアクションを実行させるために口頭の発話を使用して自動化アシスタントを呼び出す図である。
【図２】ユーザが複数の異なるアクションを実行するために自動化アシスタントを呼び出すとともに、自動化アシスタントにアクションの順序を組み替えさせる図である。
【図３】処理およびネットワークリソースの無駄をなくすために自動化アシスタントを介して実行されるように要求された1組のアイクションに関する実行の順序を修正するためのシステムを示す図である。
【図４】少なくともトレーニングされた機械学習モデルを使用する処理によって、実行する自動化アシスタントに関するアクションの順序を決定するための方法を示す図である。
【図５】アクションの分類に従ってアクションのシーケンスを組み替えるための方法を示す図である。
【図６】例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【００２６】
図1は、ユーザ108が自動化アシスタントに一連のアクションを実行させるために口頭の発話102を使用して自動化アシスタントを呼び出す図100を示す。特に、図100は、計算リソースのより効率的な使用を提供するために自動化アシスタントが要求された一連のアクションの順序をどのようにして修正し得るかの図示を提供する。たとえば、ユーザ108は、クライアントデバイス124および別のデバイス110を含み得るユーザの家のエリア106内にいることが可能である。クライアントデバイス124および別のデバイス110の各デバイスは、自動化アシスタントへのアクセスを提供し得る。たとえば、クライアントデバイス124は、1つまたは複数のアシスタントインターフェース128を介してクライアントの自動化アシスタント126へのアクセスを提供し得る。アシスタントインターフェース128は、ユーザ108から入力を受信するおよび/またはユーザ108に出力を提供することができる1つまたは複数のデバイスまたはデバイスのグループであることが可能である。たとえば、アシスタントインターフェース128は、1つまたは複数のマイクロフォンおよび1つまたは複数のオーディオスピーカを含み得る。代替的にまたは追加的に、アシスタントインターフェース128は、1つもしくは複数のタッチディスプレイパネルおよび/または1つもしくは複数のカメラを含み得る。入力および出力は、クライアントデバイス124および/またはサーバデバイス120などのリモートコンピューティングデバイス118においてクライアントの自動化アシスタント126のために生成され得る。サーバデバイス120は、本明細書において検討されるように、入力および出力の処理を支援することができるサーバの自動化アシスタント122を含み得る。
【００２７】
ユーザ108が自動化アシスタント(つまり、クライアントの自動化アシスタント126および/またはサーバの自動化アシスタント122)が複数の異なるアクションを実行するための口頭の発話を含む口頭の発話102を与えるとき、クライアントの自動化アシスタント126は、口頭の発話102を受信し、複数の異なるアクションの順序を決定することができる。たとえば、口頭の発話102は、「アシスタント、私の夜の再生リストを再生して、アラームを設定して、それと、明日の天気を教えて」であることが可能である。口頭の発話102は、最初に夜の再生リストを再生し、それからアラーム時計を設定し、それから天気予報を提供することを示す第1の順序で要求されたアクションを説明し得る。しかし、口頭の発話102を受信したことに応じて、自動化アシスタントは、実行の別の順序がより効率的であるかまたはそうではなくユーザ108により適しているならば異なる順序を決定し得る。
【００２８】
クライアントの自動化アシスタント126および/またはクライアントデバイス124は、口頭の発話102を、ネットワーク130(たとえば、インターネット)を介してクライアントデバイス124からサーバデバイス120に送信され得るオーディオデータに変換することができる。サーバデバイス120および/またはサーバの自動化アシスタント122は、本明細書において検討されるように、オーディオデータをテキストデータに変換し、それから、ユーザ108によって要求されたアクションを特定するためにテキストデータを解析することができる。一部の実装において、アクションに関する識別子が、アクションに関する実行の第2の順序を示す出力を生成するためにトレーニングされた機械学習モデルを使用して処理され得る。その他の実装において、要求されたアクションに関する分類が、特定され、ユーザによって要求されたアクションの分類に基づいて、アクションに関する実行の第2の順序が、生成され得る。
【００２９】
追加的にまたは代替的に、ユーザ108に関連するコンテキストデータ、エリア106、および/またはユーザ108に関連付けられ得る任意のその他の特徴も、アクションに関する実行の第2の順序を決定するときに処理され得る。たとえば、コンテキストデータは、ユーザ108がスタンドアロンのスピーカデバイス112などのクライアントデバイス124およびタッチディスプレイデバイスなどの別のデバイス110を含むエリア106内にいることを示し得る。したがって、口頭の発話102を受信したとともに、テキストデータにアクセスしたことに応じて、自動化アシスタントは、クライアントデバイス124によって実行されるアクションの順序および別のデバイス110によって実行されるアクションの順序を決定し得る。たとえば、自動化アシスタントは、アラームを設定するおよび夜の再生リストを再生するアクションをクライアントデバイス124が割り当てられるようにし得る。さらに、自動化アシスタントは、明日の天気予報を提供するアクションを別のデバイス110が割り当てられるようにし得る。特に、自動化アシスタントは、天気予報が別のデバイス110のディスプレイパネルに表示されるようにすることができ、それによって、アラームを設定するためにユーザ108と自動化アシスタントとの間で行われる会話セッションへの妨げを減らす。
【００３０】
一部の実装において、口頭の発話102において要求されたアクションに関する識別子が、アクションに関連付けられるその他のデータと一緒に機械学習モデルを使用して処理され得る。たとえば、その他のデータは、口頭の発話102を受信しているデバイスの種類、口頭の発話102が受信された時刻、口頭の発話102を与えたユーザ108に関する識別子、要求されたアクションのうちのアクション毎の実行時間の総量もしくは実行時間の推定された量、および/または要求されたアクションの特徴を特徴付けるのに好適であり得る任意のその他のデータを含み得る。処理された1つまたは複数の入力に基づいて、機械学習モデルが、要求されたアクションの実行のための順序を特徴付ける出力を生成するために利用され得る。機械学習モデルを使用して生成された出力は、クライアントデバイス124および/または別のデバイス110と共有され得る。
【００３１】
口頭の発話102を受信したことに応じてサーバデバイス120によって生成されたおよび/またはそれ以外の方法で生成された実行の順序を受信したことに応じて、クライアントデバイス124は、アクションの実行を初期化し得る。たとえば、クライアントの自動化アシスタント126は、アクションの完了を促進するために自然言語出力104を提供し得る。図1に示されるように、天気予報の要求が、アラームを設定することより優先されることが可能であり、アラームを設定することが、夜の再生リストを再生することよりも優先されることが可能である。したがって、アクションの上述の順序は、自然言語出力104にまず天気予報を組み入れさせ得る。特に、自然言語出力104は、「明日の天気は晴れで、最高気温75度、最低気温66度です」などの天気予報を含み得る。第1のアクション(たとえば、天気予報)が完了すると、クライアントの自動化アシスタント126は、第2のアクション(たとえば、次の日のアラームを設定すること)の実行を初期化し得る。第2のアクションを実行するとき、クライアントの自動化アシスタント126は、「明日は何時にアラームを設定しますか」などの自然言語出力を提供することによってユーザ108との会話セッションを初期化することが可能であり、それに応じて、ユーザ108は、「午前7:00にしてください」などの口頭の発話102を与えることができる。
【００３２】
クライアントの自動化アシスタント126は、それに応じて、「はい」などの自然言語出力104を提供することによって口頭の発話102の承認を提供し得る。その後、第2のアクションを完了したことに応じて、クライアントの自動化アシスタント126は、第2のアクションの順序で第3のアクションの実行を初期化することができる。特に、クライアントの自動化アシスタント126は、夜の間に再生されることが好ましいとユーザ108によって設定された歌のリストであることが可能である夜の再生リストの再生を初期化し得る。したがって、ユーザ108が実行の第1の順序に従ってアクションが実行されるようにとの要求を与えたにもかかわらず、自動化アシスタントは、各アクションの実行時間が最小化されることを保証するために実行の順序を組み替え得る。たとえば、夜の再生リストが最初に実行され終えたとするならば、アラームを設定することおよび天気予報を提供することは、再生リストの終わりが到達されるまで延期されていたであろう。さらに、再生リストの再生が次の日まで続いていたならば、「明日」の天気の要求は、次の日に実行され、それによって、天気予報の対象の日をさらに次の日に変更したであろう。対象の日に対するこの変更は、特に、ユーザが天気予報が対応すべき厳密な日を再び指定するために別の口頭の発話を与えなければならないならば、結局、計算リソースを無駄にすることになったであろう。
【００３３】
図2は、ユーザ208が複数の異なるアクションを実行するために自動化アシスタントを呼び出すとともに、自動化アシスタントにアクションの順序を組み替えさせる図200を示す。たとえば、ユーザ208は、「アシスタント、私の番組を再生して、アラームを設定して、それと、明日の天気を教えて」などの口頭の発話202を与えることができる。「番組を再生する」要求は、メディアの一部をダウンロードし、キャッシュし、その後、ダウンロードされたメディアの再生を初期化することなどの1つまたは複数のサブタスクを含み得る連続したメディア再生アクションに対応し得る。さらに、「アラームを設定する」要求は、自然言語出力を生成し、ユーザからのその後の自然言語入力を処理し、ユーザからの自然言語入力の内容に基づいてアラームを設定することなどの1つまたは複数のサブタスクを含み得る。
【００３４】
様々な実装において、複数の異なるアクションを実行するときに計算リソースを節約し、レイテンシをなくすために、アクションの順序および対応するサブタスクが、機械学習モデルおよび/または特定のアクションに関する実行の順序を決定することができる1つもしくは複数のモジュールを利用して決定され得る。一部の実装において、機械学習モデルは、教師あり学習を使用してトレーニングされ得る。それらの実装の一部において、要求内の自動化アシスタントのアクションを特定するデータおよび任意で1つまたは複数のコンテキスト値をトレーニング例入力として含む正のトレーニング例が、利用される。自動化アシスタントのアクションを特定するデータは、たとえば、アクションに関する意図および任意でパラメータを含み得る。たとえば、スマートテレビ上で「番組X」をストリーミングするアクションに関して、意図は、「メディアをストリーミングする」であることが可能であり、パラメータは、メディアの多種類(たとえば、テレビ番組タイプ)、メディアの継続時間(たとえば、30分)、および/またはストリームを受信するための目標デバイスを含むことが可能である。1つまたは複数のコンテキスト値は、たとえば、要求がそれを介して受信されたデバイス、時刻、曜日などを含み得る。トレーニング例入力は、任意で、機械学習モデルがトレーニングされているアクションの最大数によって決定される固定の次元であることが可能であり、最大数未満のアクションを有するトレーニング例において「ヌル」値を含むことが可能である。たとえば、アクションの最大数は、5であり、要求に3つのアクションを含むトレーニング例入力に関しては、3つのアクションの各々を特定するデータが、トレーニング例入力に含まれることが可能であり、ヌルデータが、残りの2つのアクションに関して提供されることが可能である。
【００３５】
正のトレーニング例は、トレーニング例入力内の特定されたアクションの特定の順序を特定するデータをトレーニング例出力としてさらに含み得る。特定の順序は、好ましい順序であり、様々な技術を利用して好ましい順序として決定され得る。正のトレーニング例のトレーニング例出力のための特定の順序「アクション3、アクション1、アクション2」は、人のラベル付け(たとえば、順序の明示的なラベル付け「アクション3、アクション1、アクション2」)、ユーザが単一の要求内で好ましい順序を明示的に指定すること(たとえば、「アシスタント、最初にアクション3、次のアクション1、それからアクション2を実行して」)の過去の発生、ならびに/またはユーザが互いに時間的に近接している別々の要求内で好ましい順序を指定すること(たとえば、「アシスタント、アクション3を実行して」、その1分以内後に続く「アシスタント、アクション1を実行して」、およびその1分以内後に続く「アシスタント、アクション2」)の過去の発生に基づき得る。また、たとえば、正のトレーニング例のトレーニング例出力のための特定の順序「アクション3、アクション1、アクション2」は、特定の順序でアクションを実行することがいかなる代替的な特定の順序でアクションを実行するよりも計算効率が高いことの過去の発生に基づき得る。たとえば、特定の順序「アクション3、アクション1、アクション2」は、すべての代替的な特定の順序の過去の発生がそれぞれ完了するために平均で34.0秒よりも長くかかる一方で、特定の順序が完了するために平均で33.5秒かかることの過去の発生に基づいて選択され得る。特定の順序のより短い平均完了時間は、たとえば、プロンプト(prompt)へのより迅速なユーザの応答をもたらす時間にアクションのうちの1つに関するプロンプトが提示されること、アクション1および/またはアクション2が遅いおよび/または比較的低速なサーバに関連付けられており、(それらのアクションが最初ではないので)特定の順序で先回りしてフェッチ可能/実行可能であることなどが原因であり得る。
【００３６】
トレーニング例出力は、任意で、機械学習モデルがトレーニングされているアクションの最大数によってまたは基づいて決定される固定の次元であることが可能であり、最大数未満のアクションを有するトレーニング例において「ヌル」値を含むことが可能である。たとえば、アクションの最大数は、5であり、要求に3つのアクションを含むトレーニング例入力に関しては、3つのアクションの順序を特定するデータが、トレーニング例出力に含まれることが可能であり、ヌルデータが、残りの2つのアクションに関して提供されることが可能である。1つの特定の例として、トレーニング例出力は、25個の値のベクトルであることが可能であり、5個の値のそれぞれの連続的グループが、特定の順序内のアクションのうちの対応する1つの配置を示す。たとえば、トレーニング例入力「アクション1、アクション2、アクション3」の与えられた順序および特定の順序「アクション3、アクション1、アクション2」を仮定すると、次のトレーニング例出力が、その特定の順序を示し得る: [0, 1, 0, 0, 0, | 0, 0, 1, 0, 0, | 1, 0, 0, 0, 0, | null, ... null, | null, ... null]。上述の例において、それぞれの「|」は、各アクションに対応する決定された配置の間の分かれ目を示し、最初の「1」は、(それが「アクション1」に関する5つの選択肢の中の2番目の配置であるので)「アクション1」が2番目であるべきであることを示し、2番目の「1」は、(それが「アクション2」に関する5つの選択肢の中の3番目の配置であるので)「アクション2」が3番目であるべきであることを示し、3番目の「1」は、(それが「アクション3」に関する5つの選択肢の中の1番目の配置であるので)「アクション3」が1番目であるべきであることを示し、「ヌル」は、トレーニング例入力に第4のおよび第5のアクションが存在しないことを示す。
【００３７】
機械学習モデルは、教師ありトレーニング例を利用してトレーニングされ得る。トレーニングの後、機械学習モデルは、要求の複数のアクションの実行の特定の順序をそれらのアクションの識別子に基づいておよび任意でコンテキスト値に基づいて予測するために利用され得る。そのような機械学習モデルの使用は、実行時の特定の順序の迅速な解決を提供することができ、トレーニングデータに現れなかった可能性があるアクションおよび/またはコンテキスト値の組合せを一般化することができる。したがって、そのような機械学習モデルは、新しく追加されたアクションおよび/またはアクションの新しく提示された組合せに対して堅牢である。さらに、そのような機械学習モデルは、一度トレーニングされると、様々なアクションと好ましい順序との間の大きなマッピングよりも少ない空間を消費することが可能であり、そのような大きなマッピングを探索するよりも利用する計算効率が高くなり得る。
【００３８】
一部の実装において、教師あり学習モデルなどの機械学習モデルのためのトレーニングデータは、自動化アシスタントを介して実行されることが可能なアクションを特定する入力データを含み得る。追加的に、教師あり学習モデルのためのトレーニングデータは、入力データ内で特定されたそれらのアクションのうちの各アクションの実行のための総時間を特徴付けるデータを含み得る。代替的にまたは追加的に、教師あり学習モデルのためのトレーニングデータは、ユーザによって要求されたそれらのアクションのうちの各アクションのレイテンシ時間および/または推定されたレイテンシ時間を特徴付けるデータを含み得る。代替的にまたは追加的に、教師あり学習モデルのためのトレーニングデータは、1組の要求されたアクションの中のすべてのアクションが実行されるための時間の総量または時間の推定された総量を特徴付けるデータを含み得る。このようにして、教師あり学習によって生成された機能および/またはモデルは、自動化アシスタントを介して実行されるように要求されたアクションの間の相関、および各アクションのまたはアクションのすべての1つまたは複数の時間的側面を効果的に示し得る。
【００３９】
自動化アシスタントを介して実行されるアクションは、1つまたは複数の実行の特徴を有することが可能であり、アクションの実行の特徴は、アクションおよび/または複数のアクション(たとえば、自動化アシスタントを介して実行されることをユーザによって要求された一連のアクション)の1つまたは複数の時間的側面に影響を与え得る。たとえば、実行の特徴は、アクションの実行中に実行される1つまたは複数の動作を特徴付け得る。例として、自動化アシスタントがアラームを設定するアクションを実行する要求は、自動化アシスタントにユーザとの会話セッションを初期化する動作を実行させることが可能であり、会話セッションは、アラームを設定するアクションの実行の特徴であることが可能である。特に、会話セッションは、アラームが鳴る時間を指定する機会をユーザに提供するために初期化され得る。したがって、アクションが完了するのにいくらかの量の時間がかかる会話セッションを初期化する実行の特徴を有するので、アクションの時間的側面(たとえば、アクションを完了するための総時間)が、影響を受け得る。アクションの実行のための合計の推定された時間、ユーザがアクションを完了するために入力を与えるための時間の推定された量、要求とアクションの初期化との間のレイテンシの推定された量、および/または第三者への要求によってアクションを初期化することと第三者から応答を受信することとの間のレイテンシの量などのアクションの様々な時間的側面が、影響を受け得る。
【００４０】
アクションおよび/または一連のアクションの時間的側面は、1つまたは複数のコンピューティングデバイスによるアクションおよび/または一連のアクションの実行の前、間、および/または後に1つまたは複数のコンピューティングデバイスによって示される1つまたは複数の時間に関連するプロパティを含み得る。追加的にまたは代替的に、アクションおよび/または一連のアクションの時間的側面は、アクションおよび/または一連のアクションの特定の動作および/または部分を特徴付ける時間の任意の定量化可能な値であることが可能である。たとえば、「アシスタント、私の照明をつけて、私のポッドキャストを再生して」などの自動化アシスタントが一連のアクションを実行する要求は、実際に照明をつけることとポッドキャストを再生することとの間のレイテンシの量子化可能な量、および/またはアクションの完了のための時間の量子化可能な量を持ち得る。さらに、レイテンシの量子化可能な量および/または任意のその他の時間的側面は、アクションが実行される順序に応じて異なり得る。たとえば、ユーザが要求を与えることと自動化アシスタントが照明をつけることとの間の遅延は、少なくとも、「私のポッドキャストを再生する」アクションが初期化される前に「照明をつける」アクションが初期化されるときのアクションの別の順序に比べて、「照明をつける」アクションが初期化される前に「私のポッドキャストを再生する」アクションが初期化されるときにより大きくなり得る。
【００４１】
一部の実装において、トレーニングされた機械学習モデルが、要求されたアクションのシーケンスの時間的側面を推定するために使用され得る。たとえば、第1のアクション、第2のアクション、および第3のアクションに関する識別子が、アクションに関する実行の順序のインジケーションと一緒に機械学習モデルに入力として与えられ得る。入力を受信したことに応じて、機械学習モデルは、アクションに関する実行の与えられた順序の1つまたは複数の時間的側面を示す出力を提供することができる。アクションに関する実行の効率的な順序を提供するタスクを課されたアプリケーションまたはモジュールが、アクションのシーケンスを組み替え、アクションの異なる順序を機械学習モデルに入力として与えることができる。アクションの異なる順序に対応する入力を受信したことに応じて、機械学習モデルは、アクションのシーケンスの異なる順序の1つまたは複数のその他の時間的側面の別のインジケーションを提供することができる。アクションの様々なシーケンスの時間的側面を推定するこのプロセスは、アクションに関する実行の順序のすべてのまたは少なくとも複数の変形に関して繰り返され得る。実行の順序のそれぞれの変形に関する機械学習モデルからのそれぞれの出力が、計算リソースの最も効率的な使用を提供するおよび/または対応する時間的側面の任意の否定的な特徴を軽減する実行順序を決定するために比較され得る。たとえば、機械学習モデルの出力がアクションの実行中のレイテンシの合計の予測された量を示すとき、レイテンシの最も少ない予測された量に対応するアクションの順序の変形が、選択され、実行のために自動化アシスタントに提供され得る。代替的にまたは追加的に、機械学習モデルの出力がアクションのシーケンスに関する合計の推定された実行時間を示すとき、アクションのシーケンスに関する最も短い合計の推定された実行時間に対応するアクションの順序の変形が、選択され、実行のために自動化アシスタントに提供され得る。
【００４２】
たとえば、図2に示されるように、ユーザ208は、「アシスタント、私の番組を再生して、アラームを設定して、それと、明日の天気を教えて」などの口頭の発話202を与えることができる。口頭の発話202は、スタンドアロンのスピーカデバイス212などのクライアントデバイス214によって受信され得る。口頭の発話202は、クライアントデバイス214によってオーディオデータに変換され、ネットワーク228(たとえば、インターネット)を介してサーバデバイス224などのリモートコンピューティングデバイス220に送信され得る。サーバデバイス224および/またはサーバの自動化アシスタント226は、口頭の発話202によってユーザ208により要求された任意のアクションを特定するためにオーディオデータを処理することができる。アクションに関する識別子が、任意でその他のデータとともに、アクションに関する実行の順序を特定するために機械学習モデルに入力として提供され得る。機械学習モデルは、サーバデバイス224および/またはクライアントデバイス214において記憶され得るかまたはそうでなければアクセス可能であり得る。
【００４３】
入力を受信したことに応じて、機械学習モデルは、アクションに関する実行の1つまたは複数の順序を示す出力を生成するために使用され得る。一部の実装において、機械学習モデルは、実行の単一の順序を提供するために使用されることが可能であり、自動化アシスタントは、要求されたアクションの実行を初期化するためにその順序に依拠することができる。代替的に、機械学習モデルは、実行の複数の順序を提供するために使用されることが可能であり、自動化アシスタントは、特定の基準を満たす実行の順序を選択することができる。たとえば、機械学習モデルは、アクションに関する実行の1つまたは複数の順序および実行のそれぞれの順序の1つまたは複数の対応するプロパティを示す出力を提供するために使用され得る。たとえば、機械学習モデルに基づいて提供された実行の順序は、実行時間の総量、レイテンシの総量、総メモリ使用量、総CPU使用量、および/または計算効率に関連付けられ得る任意のその他の測定基準に関する値とともに提供され得る。そして、自動化アシスタントは、実行時間の最低量、レイテンシの最低量、メモリ使用の最低量、CPU使用の最低量、および/または任意のその他の基準もしくはこれらの組合せなどの特定の基準を満たす特定の順序を選択することができる。
【００４４】
自動化アシスタントが機械学習モデルまたは本明細書において検討されるその他の動作に基づいて実行の順序を選択したとき、自動化アシスタントは、1つまたは複数のアクションの実行を初期化することができる。たとえば、自動化アシスタントがまず天気予報を提供し、それからアラームを設定し、それから番組を再生する実行の順序を選択したとき、自動化アシスタントは、ネットワーク228を介して天気予報を取り出す動作を初期化することができる。天気予報が取り出されたとき、クライアントデバイス214は、天気予報に対応する自然言語出力204を提供する動作を実行することができる。たとえば、天気予報に対応する自然言語出力は、「明日の天気は晴れで、最高気温75度、最低気温66度です」であることが可能である。
【００４５】
一部の実装において、自動化アシスタントは、天気予報が別のコンピューティングデバイスおよび/またはウェブサイトを介してアクセス可能な第三者の天気アプリケーションまたはモジュールなどの第三者エージェントによって提供されるようにし得る。第三者は、アプリケーション、サービス、デバイス、および/または任意のその他の製品を提供する主体を指すことが可能であり、自動化アシスタントおよび/またはクライアントデバイス214のオペレーティングシステムを提供した主体とは異なることが可能である。第三者エージェントが自動化アシスタントに天気予報を提供した後、第三者エージェントは、第三者エージェントに割り振られた1つまたは複数のタスクが完了されたというインジケーションを提供し得る。第三者エージェントからのインジケーション情報を受信したことに応じて、自動化アシスタントは、自動化アシスタントによって選択されたアクションの実行の順序で次のアクションの実行を初期化することができる。
【００４６】
一部の実装において、実行の選択された順序は、自動化アシスタントが要求されたアクションを初期化するのではなく要求されたアクションを完了すべき順序に対応し得るかまたはそのような順序を示し得る。たとえば、ユーザ208によって図2において要求されたアクションの順序は第1の順序に従って完了されているが、各アクションに対応するサブタスクは、異なる第2の順序で完了され得る。たとえば、機械学習モデルは、完了の順序を示し、さらに、実行されるサブタスクの順序を示す出力を提供し得る。したがって、一部の実装において、自動化アシスタントは、アクションの実行の順序で優先される第1のアクション(たとえば、天気予報を提供すること)を初期化し、同時にまたはその直ぐ後に、アクションの実行の順序で第3のアクションのサブタスク(たとえば、番組のデータをダウンロードすることおよび/またはキャッシュすること)の実行を初期化することができる。例として、アクションに関する実行の順序は、天気予報を完了される最も高い優先度のアクションとして特定し得るが、さらに、番組再生のアクションがアクションを完了する優先度に関して最後であるにもかかわらず、番組をダウンロードすることなどのサブタスクまたは動作もその他のサブタスクまたは動作の大部分(たとえば、アラームがいつに設定されるべきかを要求する自然言語出力を提供すること、およびアラームの設定を確認すること)より優先度が高いように指定し得る。言い換えると、自動化アシスタントは、一連の要求されたアクションに関するレイテンシ全体および/または完了の合計の推定された時間を減らし得る特定のサブタスクまたは動作を初期化することができる。追加的にまたは代替的に、自動化アシスタントは、口頭の発話202の目標デバイスではなかった1つまたは複数のデバイスに1つまたは複数のサブタスクまたは動作を任せることが可能である。たとえば、番組をダウンロードするサブタスクは、自動化アシスタントがネットワーク228を介して天気予報を取り出すことおよび/またはクライアントデバイス214を介して天気予報を提供することと同時にその他のデバイス210によってバックグラウンドアクション230として実行され得る。
【００４７】
図3は、処理およびネットワークリソースの無駄をなくすために自動化アシスタント304を介して実行されるように要求された1組のアイクションに関する実行の順序を修正するためのシステム300を示す。自動化アシスタント304は、コンピューティングデバイス318および/またはサーバデバイス302などの1つまたは複数のコンピューティングデバイスにおいて提供されるアシスタントアプリケーションの一部として動作し得る。ユーザは、マイクロフォン、カメラ、タッチスクリーンディスプレイ、ユーザインターフェース、および/またはユーザとアプリケーションとの間のインターフェースを提供することができる任意のその他の装置であることが可能であるアシスタントインターフェースを介して自動化アシスタント304とインタラクションすることができる。たとえば、ユーザは、自動化アシスタント304に機能を実行させる(たとえば、データを提供させる、周辺デバイスを制御させる、エージェントにアクセスさせる、入力および/または出力を生成させるなど)ためにアシスタントインターフェースに口頭の、テキストの、またはグラフィカルな入力を与えることによって自動化アシスタント304を初期化し得る。コンピューティングデバイス318は、タッチインターフェースを介してユーザがコンピューティングデバイス318のアプリケーションを制御することを可能にするためにタッチ入力および/またはジェスチャを受信するためのタッチインターフェースを含むディスプレイパネルであることが可能であるディスプレイデバイスを含み得る。一部の実装において、コンピューティングデバイス318は、ディスプレイデバイスを持たないことが可能であり、それによって、グラフィカルユーザインターフェース出力を提供せずに可聴ユーザインターフェース出力を提供する。さらに、コンピューティングデバイス318は、ユーザから口頭の自然言語入力を受信するためのマイクロフォンなどのユーザインターフェースを提供し得る。一部の実装において、コンピューティングデバイス318は、タッチインターフェースを含むことが可能であり、カメラを持たないことが可能であるが、任意で1つまたは複数のその他のセンサーを含むことが可能である。
【００４８】
コンピューティングデバイス318および/またはその他のコンピューティングデバイス334は、インターネットなどのネットワーク338を介してサーバデバイス302と通信することができる。さらに、コンピューティングデバイス318およびその他のコンピューティングデバイス334は、Wi-Fiネットワークなどのローカルエリアネットワーク(LAN)を介して互いに通信することができる。コンピューティングデバイス318は、コンピューティングデバイス318における計算リソースを節約するために計算タスクをサーバデバイス302にオフロードすることができる。たとえば、サーバデバイス302は、自動化アシスタント304をホストすることができ、コンピューティングデバイス318は、1つまたは複数のアシスタントインターフェース320において受信された入力をサーバデバイス302に送信することができる。しかし、一部の実装において、自動化アシスタント304は、コンピューティングデバイス318においてクライアントの自動化アシスタント322としてホストされ得る。
【００４９】
様々な実装において、自動化アシスタント304のすべてのまたは一部の態様は、コンピューティングデバイス318に実装され得る。それらの実装の一部において、自動化アシスタント304の態様は、コンピューティングデバイス318のクライアントの自動化アシスタント322によって実装され、自動化アシスタント304のその他の態様を実装するサーバデバイス302とインターフェースをとる。サーバデバイス302は、任意で、複数のスレッドによって複数のユーザおよびそれらのユーザの関連するアシスタントアプリケーションにサービスを提供し得る。自動化アシスタント304のすべてのまたは一部の態様がコンピューティングデバイス318のクライアントの自動化アシスタント322によって実装される実装において、クライアントの自動化アシスタント322は、コンピューティングデバイス318のオペレーティングシステムと別れている(たとえば、オペレーティングシステムの「上に」インストールされる)アプリケーションであることが可能である--または代替的に、コンピューティングデバイス318のオペレーティングシステムによって直接実装される(たとえば、オペレーティングシステムのアプリケーションと考えられるがオペレーティングシステムと一体である)ことが可能である。
【００５０】
一部の実装において、自動化アシスタント304および/またはクライアントの自動化アシスタント322は、入力処理エンジン306を含むことが可能であり、入力処理エンジン306は、コンピューティングデバイス318および/またはサーバデバイス302のための入力および/または出力を処理するために複数の異なるモジュールを使用し得る。たとえば、入力処理エンジン306は、オーディオデータに具現化されたテキストを特定するためにアシスタントインターフェース320において受信されたオーディオデータを処理することができるスピーチ処理モジュール308を含み得る。オーディオデータは、コンピューティングデバイス318の計算リソースを節約するために、たとえば、コンピューティングデバイス318からサーバデバイス302に送信され得る。
【００５１】
オーディオデータをテキストに変換するためのプロセスは、単語または語句に対応するオーディオデータのグループを特定するためにニューラルネットワーク、word2vecアルゴリズム、および/または統計モデルを使用することができる音声認識アルゴリズムを含み得る。オーディオデータから変換されたテキストは、データ解析モジュール310によって解析され、ユーザからの命令フレーズを生成するおよび/または特定するために使用され得るテキストデータとして自動化アシスタントが利用可能であるようにされ得る。一部の実装において、データ解析モジュール310によって提供される出力データは、ユーザが自動化アシスタント304によって実行され得る特定のアクションおよび/もしくはルーチンならびに/または自動化アシスタント304によってアクセスされ得るアプリケーションもしくはエージェントに対応する入力を与えたかどうかを判定するためにパラメータモジュール312に提供され得る。たとえば、アシスタントデータ316は、サーバデバイス302および/またはコンピューティングデバイス318にクライアントデータ334として記憶されることが可能であり、自動化アシスタント304および/またはクライアントの自動化アシスタント322によって実行され得る1つまたは複数のアクションを定義するデータと、アクションを実行するために必要なパラメータとを含み得る。ユーザは、自動化アシスタント304によって、自動化アシスタント304の指示で、および/または自動化アシスタント304を介してアクセス可能である第三者エージェントによって実行されるアクションの1つまたは複数のパラメータに割り振るための1つまたは複数の値を指定することができる。第三者エージェントは、自動化アシスタント304を提供した別の関係者とは異なる関係者によって提供され得る。
【００５２】
一部の実装において、システム300は、口頭の発話内でユーザによって示された要求されたアクションのシーケンスを再順序付けするための1つまたは複数の特徴を含むサーバデバイス302および/またはコンピューティングデバイス318を含み得る。ユーザが一連のアクションが自動化アシスタントによって実行されるように要求した口頭の発話などの口頭の発話が、自動化アシスタントインターフェース320において受信され、オーディオデータに変換され得る。オーディオデータは、入力処理エンジン306によって処理されることが可能であり、入力処理エンジン306は、サーバデバイス302および/またはコンピューティングデバイス318に設けられ得る。オーディオデータは、ユーザによって要求された各アクションを特定するためにテキストに変換され得るおよび/またはその他の方法で処理され得る。一部の実装において、口頭の発話に基づくオーディオデータは、ニューラルネットワークモデルに入力として与えられることが可能であり、ニューラルネットワークモデルは、ユーザによって要求されたアクションおよび/またはアクションの順序を示す出力し得る。
【００５３】
アクションが特定されたとき、アクションを特徴付けるデータが、コンピューティングデバイス318と共有されるかまたはコンピューティングデバイス318においてその他の方法で利用可能であることが可能であり、アクション分類エンジン324によって処理されることが可能である。アクション分類エンジンは、アクションを特徴付けるデータを受信し、データに基づいてアクションに関する分類を決定することができる。たとえば、TVシリーズまたは歌を再生する要求は、連続再生アクションと呼ばれる分類に対応し得る。代替的にまたは追加的に、天気予報または経済ニュースなどのインターネットからの情報の要求は、情報要求アクションと呼ばれる分類に対応し得る。さらにまたは代替的に、特定のデバイスの設定を変更する要求は、デバイス設定分類と呼ばれる分類に対応し得る。一部の実装において、1つまたは複数の異なるアクションが、それぞれ、本明細書において開示されるそれらの分類に限定されない1つまたは複数の異なる分類に従って分類され得る。
【００５４】
一部の実装において、アクション分類エンジン324は、口頭の発話によってユーザにより要求された各アクションに関する分類を決定することができる。一部の実装において、アクションの分類は、特定のアクションの1つまたは複数の決定された実行の特徴に基づき得る。たとえば、ユーザと自動化アシスタントとの間のさらなる会話を必要とするアクションは、少なくとも実行の特徴として会話セッションを持つので会話開始アクションとして分類され得る。追加的にまたは代替的に、ローカルデバイスの設定を決定することおよび修正することを必要とするアクションは、少なくとも、デバイスの設定を修正するためのローカルデバイスへの要求を自動化アシスタントに送信させる実行の特徴をアクションが有することに基づいてデバイスの設定を変更する要求として分類され得る。各分類は、アクション順序エンジン326に伝達されることが可能であり、アクション順序エンジン326は、ユーザによって要求されたアクションの分類を特徴付けるデータを受信し、少なくともデータに基づいてアクションの順序を生成することができる。たとえば、ユーザが音楽の連続した再生に対応する第1のアクションと、インターネットからの情報の要求に対応する第2のアクションとを要求するとき、アクション分類エンジン324は、ユーザからの要求が連続再生アクションおよび情報要求アクションを含むと判定し得る。これらの分類は、アクション順序エンジン326に提供されることが可能であり、アクション順序エンジン326は、インターネットからの情報を提供する第2のアクションを音楽の連続した再生を提供することよりも優先するアクションの順序を生成し得る。
【００５５】
一部の実装において、アクション順序エンジン326は、アクション順序モデル332に基づいて1組の要求されたアクションの順序を生成し得る。アクション順序モデル332は、対応するユーザから事前に承認を受けて、履歴的ユーザインタラクションデータ336および/または履歴的コミュニティインタラクションデータ328に基づいてトレーニングされた1つまたは複数のニューラルネットワークモデルであることが可能である。たとえば、履歴的ユーザインタラクションデータ336は、ユーザと自動化アシスタント304との間のインタラクションを特徴付けるデータを含み得る。そのようなインタラクションは、ユーザが複数のアクションが実行されるようにとの要求を与え、その後、自動化アシスタント304にフィードバックを与えた、および/またはその後、自動化アシスタント304にフィードバックを与えなかったインタラクションを含み得る。フィードバックは、ユーザが複数のアクションに関する実行の順序を組み替えるように自動化アシスタント304に命じた後続の口頭の発話を含み得る。たとえば、ユーザは、「アシスタント、環境音を再生して、それと、明日のアラームを設定して」などの口頭の発話を既に与えた可能性がある。それに応じて、自動化アシスタント304は、アラームを設定するための会話を開始する前に環境音の再生を初期化した可能性があり、これは、ユーザにとって優先的でなかった可能性がある。したがって、ユーザは、「そうじゃなくて、まずアラームを設定して、それから環境音を再生して」などの口頭の発話の形態で自動化アシスタント304にフィードバックを与えた可能性がある。そのようなフィードバックは、ユーザからの承認を受けて経時的に学習されたユーザの好みに従ってその後の同様の要求が修正され得るために、アクション順序モデル332をトレーニングするために使用され得る。
【００５６】
トレーニングは、コンピューティングデバイス318の動作、コンピューティングデバイス318のコンテキスト、および/またはコンピューティングデバイス318に関連付けられ得る任意のその他の情報を特徴付けることができるクライアントデータ334に基づくことが可能である。たとえば、クライアントデータ334は、コンピューティングデバイス318の1つまたは複数のアプリケーション340のステータスを特徴付けることができる。このようにして、アクション順序モデル332は、ユーザからのフィードバックと、ユーザがフィードバックを与えたときに関連性があった可能性がある任意のその他の情報とに基づいてユーザの好みを学習し得る。一部の実装において、アクション順序モデル332によって生成されるアクションの順序は、コンピューティングデバイス318のコンテキストに基づき得る。たとえば、コンピューティングデバイス318によって提供されるGPSデータが、ユーザがちょうど家に到着したことを示すことが可能であり、その他のデータが、その後ユーザが「アシスタント、私のラウンジの再生リストを再生して、それと、アラームを設定して」などの口頭の発話を与えたことを示すことが可能である。それに応じて、目覚ましを設定するためにユーザと自動化アシスタントとの間の会話セッションを開始するのではなく、自動化アシスタントは、ラウンジ音楽再生リストの再生を初期化し、バックグラウンドでユーザの家のホームセキュリティアラームをオンにし得る。アクションのこの結果として得られる順序は、ユーザがアクション順序モデル332によって決定され得る少なくとも閾値の量の時間の間家にいたと判定される場合、異なることが可能であり、ユーザが寝るために通常ベッドに横になる時間帯に基づくことが可能である。たとえば、ユーザが寝るために通常ベッドに横になる時間帯にユーザが家で自分の部屋にいると判定され、ユーザが口頭の発話「アシスタント、私のラウンジ音楽の再生リストを再生して、それと、アラームを設定して」を与える場合、自動化アシスタントは、目覚ましを設定するための会話を開始し、そして、目覚ましの設定を完了すると、ラウンジ音楽の再生リストの再生を初期化することができる。
【００５７】
一部の実装において、1つまたは複数のアクション順序モデル332が、コンピューティングデバイス318のユーザに対応し得る履歴的ユーザインタラクションデータ336に従っておよび自動化アシスタントの1人または複数のその他のユーザに対応し得る履歴的コミュニティインタラクションデータ328に従ってトレーニングされ得る。アクション順序モデル332は、アクション順序モデル332が第1の順序に従ってユーザによって要求されたアクションの分類を入力として受信し、ユーザによって要求されたアクションに関する第2の順序を出力として提供することができるようにトレーニングされ、構成され得る。一部の実装において、履歴的コミュニティインタラクションデータ328は、ユーザとユーザのそれぞれの自動化アシスタントとの間のインタラクションを特徴付けることができ、特に、ユーザがアクションの異なる分類が実行されるように要求したインタラクションを特定することができる。代替的にまたは追加的に、履歴的コミュニティインタラクションデータ328は、アクションの特定の分類が実行されるように要求するときにユーザによってなされた条件の発言(conditional statement)を特徴付けることもできる。このようにして、アクション順序モデル332は、少なくともアクションの特定の分類に関する実行のその他の順序に比べて、アクションの特定の分類に関する実行の順序を好むユーザの傾向を認識し得る。
【００５８】
たとえば、アクション順序モデル332のトレーニングは、連続再生アクションの前に情報要求アクションを完了させるユーザの大部分の好みを反映することができる。ユーザの大部分の好みは、履歴的コミュニティインタラクションデータ328を処理し、ユーザが同じ口頭の発話内で情報要求アクションおよび連続再生アクションを要求した大部分の場合、ユーザの大部分が条件の発言「それから」も含めたと判定することによって特定され得る。たとえば、ユーザの大部分または少なくとも複数のユーザが、「アシスタント、今日の天気を教えて、それから、私の朝の再生リストを再生して」などの口頭の発話を与えた可能性がある。複数のユーザがアクションのこれらの2つの異なる分類を用いた条件の発言を与えたので、この条件の発言は、アクション順序モデル332のトレーニングに影響を与え得る。結果として、コンピューティングデバイス318のユーザがアクションの2つの異なる分類の各々が実行されるように要求する同様の口頭の発話を与えるとき、自動化アシスタント304は、履歴的コミュニティインタラクションデータ328に対応するユーザの好みに従ってアクションの実行の順序が実行されることを保証するためにアクション順序モデル332を使用することができる。しかし、ユーザが口頭の発話の中で条件の発言を与えるならば、条件の発言が、アクション順序モデル332から決定されたアクションの順序よりも、アクションの実行を順序付けするための規則として優先され得る。
【００５９】
一部の実装において、アクションの順序は、自動化アシスタント304によってアクセスされ得るいくつかの利用可能なデバイスに基づいて決定されることが可能である。たとえば、アクション順序モデル332は、コンピューティングデバイス318を有するローカルネットワークに接続される、クライアントの自動化アシスタント322を介してアクセス可能である、および/またはコンピューティングデバイス318にそれ以外の方法で関連付けられるコンピューティングデバイスに関する識別子を入力として受信し得る。ユーザによって要求された一部のアクションは1つまたは複数の異なるコンピュータデバイスにおいて実行され得るので、自動化アシスタント304は、どのコンピューティングデバイスが利用可能であるかに基づいて特定の順序で特定のコンピュータデバイスに特定のアクションを任せることができる。たとえば、ユーザは、スマートサーモスタット、スマート電球、および自動化アシスタントデバイスをユーザの家の中に持ち得る。さらに、ユーザは、たとえば、「アシスタント、サーモスタットの設定温度を上げて、照明を落として、私の夜間の再生リストを再生して、それと、出前を注文して」などの複数のアクションを実行する要求を含む口頭の発話を与えることができる。
【００６０】
口頭の発話に対応するオーディオデータが、ユーザによって要求された上述のアクションに関する分類を決定するために処理され得る。分類に関する識別子と、スマートサーモスタット、スマート電球、およびアシスタントデバイスに関する識別子とが、アクション順序モデル332に入力として与えられ得る。アクション順序モデル332は、従うべき自動化アシスタント304に関するアクションの決定された順序および/または従うべき家の中のそれぞれの特定のデバイスに関するアクションの1つもしくは複数の順序を出力として提供し得る。たとえば、自動化アシスタント304は、照明の変更をスマート電球に任せ、家の温度の修正をサーモスタットに任せ、残りのアクションに関する実行の順序を自動化アシスタントデバイスに提供することができる。特に、自動化アシスタントデバイスに関するアクションの順序は、夜間の再生リストを再生することよりも出前を注文することを優先し得る。
【００６１】
自動化アシスタントデバイスに関するアクションのこの順序は、履歴的ユーザインタラクションデータ336、履歴的コミュニティインタラクションデータ328、および/または自動化アシスタント304に関する分類の好みに基づき得る。たとえば、自動化アシスタント304は、夜間の再生リストを再生することなどの連続再生アクションよりも出前を注文することなどの会話開始アクションを優先し得る。結果として、自動化アシスタント304が自動化アシスタントデバイスのために設定されたアクションの順序を有するにもかかわらず、その他の要求されたアクションが、その他のそれぞれのデバイスにおいて同時に実行される。言い換えると、自動化アシスタントデバイスのために設定されたアクションの順序で第1のアクションが、スマート電球のために設定されたアクションおよびサーモスタットのために設定されたアクションと同時に実行される。このようにして、自動化アシスタント304および/またはアクション順序モデル332は、同時に実行される複数の異なるデバイスに関するアクションの順序を生成し得る。
【００６２】
図4は、少なくともトレーニングされた機械学習モデルによって実行する自動化アシスタントに関するアクションの順序を決定するための方法400を示す。方法400は、自動化アシスタントとインターフェースをとることができる1つまたは複数のコンピューティングデバイス、アプリケーション、および/または任意のその他の装置もしくはモジュールによって実行され得る。方法400は、口頭の発話が検出されたかどうかを判定する動作402を含み得る。口頭の発話は、コンピューティングデバイスの自動化アシスタントインターフェースにユーザによって与えられることが可能であり、口頭の発話は、デバイスの間で転送可能であるデータに変換され得る。たとえば、自動化アシスタントインターフェースがマイクロフォンとしてあるとき、口頭の発話は、オーディオデータに変換されることが可能であり、そして、オーディオデータは、さらなる処理のためにサーバデバイスに送信される。一部の実装において、口頭の発話が与えられたかどうかの判定は、ユーザが応答を提供するかまたはそうでなければ特定のアクションを実行するように自動化アシスタントを呼び出すことを意図していたかどうかを判定することを含む。動作402は、周期的に実行されることが可能であり、口頭の発話が検出されるとき、方法400は、動作404に進むことができる。
【００６３】
動作404は、口頭の発話によってユーザにより要求されたアクションを特定することを含み得る。ユーザは、口頭の発話に、1つまたは複数のアクションが自動化アシスタントによって実行される1つまたは複数の要求を具現化させ得る。口頭の発話に対応するデータが処理されるとき、データは、テキストに変換され、解析され、ユーザが要求している任意のアクションが実行されると決定するためにさらに処理され得る。一部の実装において、口頭の発話に基づいて生成されたデータは、口頭の発話によってユーザにより要求された1つまたは複数のアクションを特定する出力データを生成するために機械学習モデルを使用して処理され得る。機械学習モデルは、ユーザが自動化アシスタントとインタラクションしてきたために生成されたデータおよび/または自動化アシスタントのプロバイダによって生成されたデータを使用してトレーニングされ得る。
【００６４】
方法400は、口頭の発話に関連するコンテキストデータにアクセスする任意の動作406をさらに含み得る。コンテキストデータは、ユーザに関連する1つもしくは複数のコンピューティングデバイス、自動化アシスタント、および/またはユーザがアクセス可能な任意のその他のデバイスの動作に基づき得る。たとえば、コンテキストデータは、自動化アシスタントがアクセス可能な1つまたは複数のデバイスの動作ステータスを特定し得る。代替的にまたは追加的に、コンテキストデータは、ユーザが口頭の発話をいつおよびどこで与えたのかなどのユーザの環境に関連する環境の特徴を特徴付けることができる。代替的にまたは追加的に、コンテキストデータは、ユーザのスケジュール、ユーザがいる場所の占有期間(occupancy)、ユーザが口頭の発話を与えた時刻、ユーザもしくは別の人によって与えられた1つもしくは複数の以前の口頭の発話、ユーザが口頭の発話を与えたときの1つもしくは複数のデバイスによって実行されるスケジューリングされたアクション、および/またはユーザのコンテキストに関連付けられ得る任意のその他の情報を特徴付けることができる。
【００６５】
方法400は、アクションの明示的な順序が口頭の発話内で要求されたかどうかを判定する動作408をさらに含み得る。アクションの明示的な順序は、実行されるアクションの順序を示す明示的発言を与えるユーザによって要求され得る。たとえば、ユーザによって与えられる口頭の発話内で、ユーザは、第1のアクションが実行され、それから、第2のアクションが実行されるように要求し得る。条件の発言「それから」は、第2のアクションの実行の条件次第の発生(contingency)が第1のアクションの完了および/または第1のアクションの少なくとも初期化に基づく明示的な要求として解釈され得る。ユーザが要求されたアクションの明示的な順序を与えなかった場合、方法400は、動作410に進むことができる。
【００６６】
動作410は、特定されたアクションを特徴付けるデータおよび任意でコンテキストデータをトレーニングされた機械学習モデルに入力として提供することを含み得る。入力は、口頭の発話内でユーザによって要求されたアクションの実行の順序を特徴付ける出力を生成するためにトレーニングされた機械学習モデルを使用して処理され得る。言い換えると、アクションは第1の順序で口頭の発話内で示される可能性があるが、トレーニングされた機械学習モデルを使用して生成される出力は、自動化アシスタントの指示で実行の第2の順序が実行されるように順序を組み替えることができる。したがって、トレーニングされた機械学習モデルを使用して特定されたアクションを特徴付ける入力および任意でコンテキストデータを処理したことに応じて、アクションを実行するための順序を特徴付ける出力データが、生成され得る。
【００６７】
方法400は、トレーニングされた機械学習モデルを使用して生成された出力に基づいてアクションに関する実行の順序を決定する動作412をさらに含み得る。トレーニングされた機械学習モデルを使用して決定される実行の順序は、レイテンシを削減し、したがってメモリおよび処理帯域幅などの計算リソースの無駄をなくすために生成され得る。さらに、ネットワークの応答性に依存するアクションがネットワークリソースの可用性に応じて優先順位を付けられ得るとき、口頭の発話を受信することとアクションを実行することとの間のレイテンシを削減することによって、ネットワーク帯域幅が節約され得る。たとえば、機械学習モデルのトレーニングに基づいて、機械学習モデルは、最も多いネットワークレイテンシを示す特定のアクションを最も少ない量のネットワークレイテンシで履歴的に実行されたアクションよりも低くランク付けするようにトレーニングされ得る。機械学習モデルのそのようなトレーニングは、口頭の発話を与えたユーザと自動化アシスタントとの間のインタラクションを特徴付けるデータに基づき得る。追加的にまたは代替的に、機械学習モデルのトレーニングは、1人または複数のその他のユーザと、その他のユーザ自身のそれぞれの自動化アシスタントとの間のインタラクションを特徴付けるデータに基づき得る。このようにして、機械学習モデルは、第三者プロバイダまたは第三者エージェントに依拠する特定のアクションが、その他のユーザがそのようなアクションが実行されるように要求したときにより多くのレイテンシをもたらしたのかまたはより少ないレイテンシをもたらしたかを示し得る。
【００６８】
一部の実装において、方法400は、ユーザによって与えられた明示的な順序および/または任意で順序を決定するために使用された任意のコンテキストデータに従ってまたはそうでなければ基づいて機械学習モデルをトレーニングする任意の動作414を含み得る。言い換えると、ユーザがアクションの明示的な順序を与えたとき、その明示的な順序は、機械学習モデルをさらにトレーニングするときに使用されるデータとして特徴付けられ得る。
【００６９】
方法400は、決定された順序に従ってアクションの実行を引き起こす動作416をさらに含み得る。たとえば、自動化アシスタントは、順序で示された第1のアクションが情報の要求であるとき、ウェブクエリを初期化し得る。代替的に、自動化アシスタントは、決定された順序で第1のアクションがデバイスの設定に対する変更を含むとき、第三者デバイスに動作設定を調整させ得る。一部の実装において、順序がユーザによって明示的に与えられるとき、方法400は、動作408および/または動作414から動作416に進むことができる。このようにして、自動化アシスタントは、ユーザが明示的な順序を与えたときは明示的な順序に依拠し、ユーザが要求されたアクションの明示的な順序を与えなかったときは機械学習モデルを使用して生成された出力に基づく別に決定された順序に依拠することができる。
【００７０】
一部の実装において、方法400は、アクションの実行の順序に関してフィードバックが受信されたかどうかを判定する動作418を含む。フィードバックは、アクションの実行の前、間、および/または後にユーザによって与えられた1つまたは複数の入力を含み得る。たとえば、自動化アシスタントが特定の順序に従ってユーザによって要求されたすべてのアクションの実行を完了したとき、ユーザは、「アシスタント、次回は最初にアラームを設定して」などの口頭の発話を与えることができる。上述の口頭の発話は、自動化アシスタントによって処理され、フィードバックであると判定され、機械学習モデルをトレーニングする際に利用され得るトレーニングデータに具現化されることが可能である。一部の実装において、フィードバックは、アクションの実行中にユーザによって与えられ得る。たとえば、ユーザは、「アシスタント、私が食べ物の注文を終わらせるまで私の音楽を再生するのを待って」などの口頭の発話を与え得る。それに応じて、自動化アシスタントは、ユーザによって与えられたフィードバックに従って任意の継続中のおよび/または保留中のアクションを修正し得る。さらに、フィードバックは、要求されたアクションのシーケンスの最も好適な順序を提供するように機械学習モデルをさらに適応させるために機械学習モデルをさらにトレーニングするためのトレーニングデータとして提供され得るデータによって特徴付けられ得る。フィードバックがユーザによって与えられるとき、方法400は、フィードバックに従って機械学習モデルをトレーニングする動作420に進むことができる。少なくともアクションの実行に関してフィードバックがユーザから受信されないとき、方法400は、任意のその他の口頭の発話が自動化アシスタントによって受信されたかどうかを検出するために動作402に戻ることができる。
【００７１】
図5は、アクションの分類によって自動化アシスタントによって実行されるように要求されたアクションのシーケンスを配列するための方法500を示す。方法500は、自動化アシスタントとインターフェースをとることができる1つまたは複数のコンピューティングデバイス、アプリケーション、および/または任意のその他の装置もしくはモジュールによって実行され得る。方法500は、口頭の発話が検出されたかどうかを判定する動作502を含み得る。口頭の発話は、自動化アシスタントへのアクセスを提供するコンピューティングデバイス、および/または自動化アシスタントがアクセスされ得るコンピューティングデバイスと通信するサーバデバイスにおいて検出されることが可能である。口頭の発話は、マイクロフォンなどの自動化アシスタントインターフェースにユーザによって与えられることが可能であり、「アシスタント、出前を注文して、照明を落として、それと、今夜TVで何をやっているか教えて」などの自然言語を含むことが可能である。
【００７２】
口頭の発話が検出されたと判定したことに応じて、方法500は、口頭の発話によってユーザにより要求された1つまたは複数のアクションを特定する動作504に進むことができる。特に、口頭の発話を具現化するおよび/またはそうでなければ特徴付けるオーディオデータが、口頭の発話の自然言語の内容を決定するために処理され得る。自然言語の内容は、口頭の発話によってユーザにより要求された1つまたは複数のアクションを特定するために解析され、さらに処理され得る。たとえば、上述の口頭の発話に対応するオーディオデータが処理されるとき、出前アクション、照明設定アクション、およびテレビのスケジュールを要求するアクションが、特定され得る。
【００７３】
一部の実装において、方法500は、条件の発言が口頭の発話に含まれていたかどうかを判定する任意の動作506を含み得る。条件の発言は、要求されたアクションのうちの1つまたは複数が他の何かが起こることを条件とすることを示す、ユーザによって与えられた語句または単語出あることが可能である。たとえば、ユーザは、別のアクションの完了に依拠する条件次第の発生などのアクションの時間的な条件次第の発生を示すフレーズを与えることができる。代替的にまたは追加的に、ユーザは、ユーザのコンテキスト、1つもしくは複数のデバイスのステータス、ユーザに関連するアプリケーションデータ、および/またはアクションが自動化アシスタントによって実行されることに関連し得る任意のその他のデータに基づいて満たされることが可能な条件を示す単語またはフレーズを与えることができる。
【００７４】
一部の実装において、口頭の発話が1つまたは複数の条件の発言を含まないとき、方法500は、動作508に進むことができる。動作508は、特定されたアクションのうちの各アクションの分類を決定することを含み得る。分類は、口頭の発話の自然言語コンテキストを反映するテキストデータを提供することができるテキスト処理モジュールの出力に基づいて決定され得る。代替的にまたは追加的に、口頭の発話に基づくオーディオデータまたはその他のデータが、トレーニングされた機械学習モデルに与えられることが可能であり、トレーニングされた機械学習モデルの出力が、口頭の発話によって要求された各アクションの各分類を決定するために使用され得る。分類が特定されたとき、方法500は、動作510に進むことができる。
【００７５】
動作510は、特定されたアクションに関する実行の順序を決定することを含み得る。特定されたアクションに関する実行の順序を決定することは、特定されたアクションのうちの各アクションの分類に少なくとも部分的に基づき得る。たとえば、口頭の発話内でユーザによって要求された複数のアクションのうちのアクションは、連続メディア再生の要求であることが可能である。アクションに関するそのような分類は、情報を提供する(たとえば、天気予報を提供する)ためのアクションに比べて低い優先度を持ち得る。代替的にまたは追加的に、デバイスの設定を変更する要求として分類されるアクションは、連続メディア再生の分類よりも高い優先度を持つが、情報要求の分類よりも低い優先度を用いる。一部の実装において、特定されたアクションに関する実行の順序を決定することは、少なくともトレーニングされた機械学習モデルの出力に基づき得る。トレーニングされた機械学習モデルは、動作の好適な順序を示す出力を提供するように適応され得る。トレーニングされた機械学習モデルは、ユーザと自動化アシスタントとの間のインタラクションを特徴付けるデータを使用してトレーニングされ得る。代替的にまたは追加的に、トレーニングされた機械学習モデルは、口頭の発話を与えたユーザに直接関連しない複数の異なるユーザの間のインタラクションを特徴付けるデータを使用してトレーニングされ得る。
【００７６】
方法500は、決定された順序に従ってアクションの実行を引き起こす動作514をさらに含む。決定された順序は、少なくとも動作512によってユーザが条件の発言を与えたと判定されるとき、ユーザによって明示的に与えられ得る。代替的にまたは追加的に、特定されたアクションに関する実行の順序は、1つもしくは複数の機械学習モデルの出力、ユーザのコンテキストを特徴付けるコンテキストデータ、および/または一連のアクションの中のアクションの優先度が基づき得る任意のその他のデータに基づくことができる。
【００７７】
一部の実装において、方法500は、実行順序に関するフィードバックが受信されたかどうかを判定する動作516を任意で含み得る。本明細書において検討されるフィードバックは、特定されたアクションの実行の前、間、および/または後にユーザによって与えられた別の口頭の発話に基づき得る。フィードバックは、たとえば、アクションの特定の分類がアクションの別の分類よりも高い優先度を有するようにユーザの好みを特徴付け得る。フィードバックが特定されたアクションの実行の前、間、および/または後に受信されたと判定されるとき、方法500は、フィードバックに従って機械学習モデルをトレーニングする動作518に進むことができる。言い換えると、フィードバックは、ユーザから受信され、トレーニングデータを生成するために処理されることが可能であり、トレーニングデータは、1人または複数のユーザの好みに従って機械学習モデルを更新するために機械学習モデルに提供されることが可能である。このようにして、ユーザが同じフィードバックを繰り返し与えなくてよいので、計算リソースが節約され得る。実行の順序に関連する好みが、時間の経過とともに学習されることが可能であり、したがって、ユーザからのフィードバックは、時間の経過とともに提供される必要がより少なくなる。ネットワーク帯域幅およびメモリなどの特定の計算リソースは、コンピューティングデバイスが口頭の発話をより少ない頻度で処理しているとき、節約され得る。フィードバックがユーザによって与えられたか否かにかかわらず、方法500は、口頭の発話が検出されたかどうかを判定する動作502に戻ることができる。このようにして、方法500は、ユーザがユーザの要求を繰り返し訂正するかまたはそうでなければユーザの以前の要求に関して自動化アシスタントにフィードバックを与えなければならないときに発生し得る無駄な処理および不必要なネットワーク送信もなくしながらユーザの好みの継続的な学習を可能にする。
【００７８】
図6は、例示的なコンピュータシステム610のブロック図である。概して、コンピュータシステム610は、バスサブシステム612を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ614を含む。これらの周辺デバイスは、たとえば、メモリ625およびファイルストレージサブシステム626を含むストレージサブシステム624と、ユーザインターフェース出力デバイス620と、ユーザインターフェース入力デバイス622と、ネットワークインターフェースサブシステム616とを含む可能性がある。入力および出力デバイスは、コンピュータシステム610とのユーザインタラクションを可能にする。ネットワークインターフェースサブシステム616は、外部ネットワークへのインターフェースを提供し、その他のコンピュータシステムの対応するインターフェースデバイスに結合される。
【００７９】
ユーザインターフェース入力デバイス622は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどのオーディオ入力デバイス、マイクロフォン、および/またはその他の種類の入力デバイスを含む可能性がある。概して、用語「入力デバイス」の使用は、コンピュータシステム610または通信ネットワークに情報を入力するためのすべての可能な種類のデバイスおよび方法を含むように意図される。
【００８０】
ユーザインターフェース出力デバイス620は、ディスプレイサブシステム、プリンタ、ファックスマシン、またはオーディオ出力デバイスなどの非視覚的表示を含む可能性がある。ディスプレイサブシステムは、ブラウン管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、プロジェクションデバイス、または可視画像を生成するための何らかのその他のメカニズムを含む可能性がある。ディスプレイサブシステムは、オーディオ出力デバイスを介するなどして非視覚的表示を提供する可能性もある。概して、用語「出力デバイス」の使用は、コンピュータシステム610からユーザまたは別のマシンもしくはコンピュータシステムに情報を出力するためのすべての可能な種類のデバイスおよび方法を含むように意図される。
【００８１】
ストレージサブシステム624は、本明細書において説明されるモジュールの一部またはすべての機能を提供するプログラミングおよびデータ構造を記憶する。たとえば、ストレージサブシステム624は、方法400、方法500の選択された態様を実行する、ならびに/またはクライアントデバイス124、クライアントの自動化アシスタント126、サーバデバイス120、サーバの自動化アシスタント122、クライアントデバイス214、クライアントの自動化アシスタント216、サーバデバイス224、サーバの自動化アシスタント226、サーバデバイス302、コンピューティングデバイス318、自動化アシスタント304、クライアントの自動化アシスタント322、アクション分類エンジン324、アクション順序エンジン326、アクション実行エンジン330、および/もしくはアクション順序モデル332のうちの1つもしくは複数を実装するための論理を含む可能性がある。
【００８２】
これらのソフトウェアモジュールは、概して、プロセッサ614によって単独で、またはその他のプロセッサとの組合せで実行される。ストレージサブシステム624において使用されるメモリ625は、プログラムの実行中の命令およびデータの記憶のための主ランダムアクセスメモリ(RAM)630と、決まった命令が記憶される読み出し専用メモリ(ROM)632とを含むいくつかのメモリを含み得る。ファイルストレージサブシステム626は、プログラムおよびデータファイルのための永続的ストレージを提供することができ、ハードディスクドライブ、関連する取り外し可能な媒体をともなうフロッピーディスクドライブ、CD-ROMドライブ、光学式ドライブ、または取り外し可能なメディアカートリッジを含む可能性がある。特定の実装の機能を実装するモジュールは、ストレージサブシステム624内のファイルストレージサブシステム626によって、またはプロセッサ614によりアクセスされ得るその他のマシンに記憶される可能性がある。
【００８３】
バスサブシステム612は、コンピュータシステム610の様々な構成要素およびサブシステムに意図されたように互いに通信させるためのメカニズムを提供する。バスサブシステム612は単一のバスとして概略的に示されているが、バスサブシステムの代替的な実装は複数のバスを使用する可能性がある。
【００８４】
コンピュータシステム610は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意のその他のデータ処理システムもしくはコンピューティングデバイスを含む様々な種類であることが可能である。コンピュータおよびネットワークの変わり続ける性質が原因で、図6に示されたコンピュータシステム610の説明は、いくつかの実装を示すことを目的とする特定の例としてのみ意図される。図6に示されたコンピュータシステムよりも多くのまたは図6に示されたコンピュータシステムよりも少ない構成要素を有するコンピュータシステム610の多くのその他の構成が、可能である。
【００８５】
本明細書において説明されたシステムがユーザ(もしくは本明細書において「参加者」と呼ばれることが多い)についての個人情報を収集するかまたは個人情報を利用する可能性がある状況において、ユーザは、プログラムまたは特徴がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルな行為もしくは活動、職業、ユーザの好み、またはユーザの現在の地理的位置についての情報)を収集するかどうかを制御するか、あるいはユーザにより関連性がある可能性があるコンテンツをコンテンツサーバから受信するべきかどうかおよび/またはどのようにして受信するべきかを制御する機会を与えられる可能性がある。また、特定のデータが、個人を特定できる情報が削除されるように、記憶されるかまたは使用される前に1つまたは複数の方法で処理される可能性がある。たとえば、ユーザのアイデンティティ(identity)が、個人を特定できる情報がユーザに関して決定され得ないか、または地理的位置情報が取得される場合にユーザの地理的位置が(都市、郵便番号、もしくは州のレベルまでになど)一般化される可能性があり、したがって、ユーザの特定の地理的位置が決定され得ないように処理される可能性がある。したがって、ユーザは、情報がユーザについてどのようにして収集されるかおよび/または使用されるかを制御することができる可能性がある。
【００８６】
いくつかの実装が本明細書において説明され、図示されたが、本明細書において説明された機能を実行するならびに/あるいは結果および/または利点のうちの1つもしくは複数を得るための様々なその他の手段および/または構造が利用される可能性があり、そのような変更および/または修正の各々は本明細書において説明された実装の範囲内にあるとみなされる。より広く、本明細書において説明されたすべてのパラメータ、寸法、材料、および構成は、例示的であるように意図されており、実際のパラメータ、寸法、材料、および/または構成は、教示が使用される特定の1つの応用または複数の応用に依存する。当業者は、本明細書において説明された特定の実装の多くの均等物を通常の実験だけを使用して認識するかまたは突き止めることができる。したがって、上述の実装は単に例として提示されており、添付の請求項およびその均等物の範囲内で、実装が、特に説明され、主張されたのとは異なる方法で実施される可能性があることを理解されたい。本開示の実装は、本明細書において説明されたそれぞれの個々の特徴、システム、品物、材料、キット、および/または方法を対象とする。さらに、2つ以上のそのような特徴、システム、品物、材料、キット、および/または方法の任意の組合せは、そのような特徴、システム、品物、材料、キット、および/または方法が相互に矛盾しない場合は本開示の範囲に含まれる。
【符号の説明】
【００８７】
100  図
102  口頭の発話
104  自然言語出力
106  エリア
108  ユーザ
110  別のデバイス
112  スタンドアロンのスピーカデバイス
118  リモートコンピューティングデバイス
120  サーバデバイス
122  サーバの自動化アシスタント
124  クライアントデバイス
126  クライアントの自動化アシスタント
128  アシスタントインターフェース
130  ネットワーク
200  図
202  口頭の発話
204  自然言語出力
208  ユーザ
210  その他のデバイス
212  スタンドアロンのスピーカデバイス
214  クライアントデバイス
216  クライアントの自動化アシスタント
220  リモートコンピューティングデバイス
224  サーバデバイス
226  サーバの自動化アシスタント
228  ネットワーク
230  バックグラウンドアクション
300  システム
302  サーバデバイス
304  自動化アシスタント
306  入力処理エンジン
308  スピーチ処理モジュール
310  データ解析モジュール
312  パラメータモジュール
316  アシスタントデータ
318  コンピューティングデバイス
320  アシスタントインターフェース
322  クライアントの自動化アシスタント
324  アクション分類エンジン
326  アクション順序エンジン
328  履歴的コミュニティインタラクションデータ
330  アクション実行エンジン
332  アクション順序モデル
334  その他のコンピューティングデバイス、クライアントデータ
336  履歴的ユーザインタラクションデータ
338  ネットワーク
340  アプリケーション
400  方法
500  方法
610  コンピュータシステム
612  バスサブシステム
614  プロセッサ
616  ネットワークインターフェースサブシステム
620  ユーザインターフェース出力デバイス
622  ユーザインターフェース入力デバイス
624  ストレージサブシステム
625  メモリ
626  ファイルストレージサブシステム
630  主ランダムアクセスメモリ(RAM)
632  読み出し専用メモリ(ROM)
【図１】
2021533399.tif 000003
【図２】
2021533399.tif 000004
【図３】
2021533399.tif 000005
【図４】
2021533399.tif 000006
【図５】
2021533399.tif 000007
【図６】
2021533399.tif 000008
【手続補正書】
【提出日】令和3年2月8日(2021.2.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
1つまたは複数のプロセッサによって実施される方法であって、
ユーザからの口頭の発話を特徴付けるオーディオデータを受信するステップであって、前記口頭の発話が、自動化アシスタントを介して複数のアクションが実行されるようにとの要求を含み、前記口頭の発話が、コンピューティングデバイスの自動化アシスタントインターフェースにおいて受信される、ステップと、
前記口頭の発話を特徴付ける前記オーディオデータに基づいて、前記自動化アシスタントを介して実行されることを前記ユーザによって要求された前記複数のアクションのうちの各アクションを特定するステップであって、前記複数のアクションが実行されるようにとの要求が、第1のアクションの順序に従って前記口頭の発話内で示される、ステップと、
前記複数のアクションのうちの各アクションを特定したことに基づいて、前記複数のアクションのうちの各アクションの実行の特徴を決定するステップであって、
前記複数のアクションのうちのアクションの特定の実行の特徴が、前記複数のアクションが1つまたは複数のコンピューティングデバイスによって前記第1のアクションの順序に従って実行されるときに前記複数のアクションの実行の時間的側面に影響を与え、
前記複数のアクションのうちの各アクションの前記実行の特徴を決定するステップが、前記コンピューティングデバイスおよび/または別のコンピューティングデバイスにおける前記複数のアクションのうちの1つまたは複数のアクションの過去の実行に基づいて生成されるデータにアクセスするステップを含む、
ステップと、
前記複数のアクションのうちの前記アクションの前記特定の実行の特徴に基づいて、前記複数のアクションを実行するための第2のアクションの順序を決定するステップであって、前記第2のアクションの順序が、前記1つまたは複数のコンピューティングデバイスによって実行されるとき、前記1つまたは複数のコンピューティングデバイスに前記複数のアクションの実行の前記時間的側面の違いを示させる、ステップと、
前記第2のアクションの順序を決定したことに基づいて、前記自動化アシスタントに、前記第2のアクションの順序に従って前記複数のアクションのうちの1つまたは複数のアクションの実行を初期化させるステップと
を含む、方法。
【請求項２】
前記第2のアクションの順序を決定するステップが、
トレーニングされたニューラルネットワークモデルからの出力データを処理するステップであって、前記トレーニングされたニューラルネットワークモデルが、前記ユーザと前記自動化アシスタントとの間の少なくとも1つまたは複数の以前のインタラクションを特徴付ける履歴的インタラクションデータを使用してトレーニングされている、ステップ
を含む、請求項1に記載の方法。
【請求項３】
前記履歴的インタラクションデータが、前記自動化アシスタントにアクションの様々なシーケンスを実行させることを促進するために前記自動化アシスタントと以前インタラクションしたその他のユーザを含む複数のインタラクションをさらに特徴付ける、請求項2に記載の方法。
【請求項４】
前記履歴的インタラクションデータが、以前要求されたアクションの実行の順序に影響を与えるために前記自動化アシスタントに前記ユーザによって与えられたフィードバックをさらに特徴付ける、請求項2に記載の方法。
【請求項５】
前記複数のアクションのうちの前記アクションの前記特定の実行の特徴が、前記アクションを会話開始アクションとして特徴付け、前記ユーザと前記自動化アシスタントとの間の補足的な会話セッションが、前記ユーザが前記アクションのパラメータに割り振られる値を特定するために行われるべきである、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記第1のアクションの順序に従った前記複数のアクションの前記実行の前記時間的側面が、少なくとも前記複数のアクションのうちの1つまたは複数のアクションの実行の推定された時間を含み、前記方法が、
前記複数のアクションが前記第1のアクションの順序に従って実行されるときに、前記補足的な会話セッションが前記1つまたは複数のアクションの実行の前記推定された時間を延長すると予測されると判定するステップ
をさらに含む、請求項5に記載の方法。
【請求項７】
前記複数のアクションのうちの別のアクションが、連続メディア再生を提供することを含み、
前記第2のアクションの順序が、前記連続メディア再生を提供することを含む前記別のアクションよりも前記会話開始アクションを優先する、
請求項5または6に記載の方法。
【請求項８】
前記自動化アシスタントに、前記第2のアクションの順序に従って前記複数のアクションのうちの少なくとも1つのアクションの実行を初期化させるステップが、
前記複数のアクションのうちの前記少なくとも1つのアクションが前記第2のアクションの順序に従って初期化されたというインジケーションを前記ユーザに提供する自然言語出力を生成するステップ
を含む、請求項5に記載の方法。
【請求項９】
1つまたは複数のプロセッサによって実施される方法であって、
自動化アシスタントが複数のアクションを実行することを要求するユーザからの口頭の発話を特徴付けるオーディオデータを処理するステップであって、前記複数のアクションが、第1のアクションの順序に従って前記口頭の発話内で前記ユーザによって特徴付けられる、ステップと、
前記オーディオデータを処理したことに基づいて、前記ユーザによって要求された前記複数のアクションのうちの各アクションに関するアクションの分類を決定するステップであって、前記複数のアクションのうちの特定のアクションの特定のアクションの分類が、少なくとも1つのパラメータに従って実行される会話開始アクションを含む、ステップと、
前記少なくとも1つのパラメータに関する値が前記口頭の発話内で前記ユーザによって指定されるかどうかを判定するステップと、
前記少なくとも1つのパラメータに関する前記値が前記口頭の発話内で指定されなかったとき、
前記複数のアクションに関する第2のアクションの順序を生成するステップであって、前記第2のアクションの順序が、少なくとも1つのパラメータに関する前記値が前記口頭の発話内で指定されなかったことに基づいて、前記会話開始アクションに前記複数のアクションのうちの別のアクションに比べて引き下げられた優先度を持たせる、ステップと
を含む、方法。
【請求項１０】
前記少なくとも1つのパラメータが前記口頭の発話内で指定されるとき、
前記複数のアクションに関する第3のアクションの順序を生成するステップであって、前記第3のアクションの順序が、前記会話開始アクションに、前記ユーザが前記口頭の発話内で少なくとも1つのパラメータに関する前記値を指定することによる影響を受けない優先度を持たせる、ステップ
をさらに含む、請求項9に記載の方法。
【請求項１１】
前記アクションの分類を決定するステップが、前記複数のアクションのうちの各アクションに関して、前記アクションがメディアの連続再生に対応するかどうかを判定するステップを含み、前記方法が、
前記複数のアクションのうちの要求されたアクションがメディアの連続再生のアクションを含むとき、
前記要求されたアクションが前記複数のアクションのうちの前記別のアクションに比べて時間的に後で実行されるように前記要求されたアクションを優先順位付けする前記第2のアクションの順序または前記第3のアクションの順序を生成するステップ
をさらに含む、請求項10に記載の方法。
【請求項１２】
前記ユーザが前記複数のアクションのうちの少なくとも1つのアクションを実行することに関する時間的条件を明示的に指定したかどうかを判定するステップと、
前記ユーザが前記複数のアクションのうちの前記少なくとも1つのアクションを実行することに関する前記時間的条件を明示的に指定したとき、
前記複数のアクションのうちの少なくとも1つのアクションを実行することに関する前記時間的条件に合う前記第2のアクションの順序または前記第3のアクションの順序を生成するステップと
をさらに含む、請求項10または11に記載の方法。
【請求項１３】
前記自動化アシスタントが、前記特定のアクションが前記時間的条件によって影響を受けることを前記ユーザによって明示的に要求された前記少なくとも1つのアクションであるとき、前記時間的条件に従って前記第2のアクションの順序または前記第3のアクションの順序を無視するように構成される、請求項12に記載の方法。
【請求項１４】
1つまたは複数のプロセッサによって実施される方法であって、
自動化アシスタントが第1の種類のアクションおよび第2の種類のアクションを含む複数のアクションを実行する要求を含む口頭の発話をユーザが与えたと判定するステップであって、前記自動化アシスタントが、コンピューティングデバイスの自動化アシスタントインターフェースを介して前記ユーザによってアクセス可能である、ステップと、
前記ユーザが前記口頭の発話を与えたことに応じて、
前記複数のアクションの実行中に前記第2の種類のアクションが前記第1の種類のアクションよりも優先されるときの前記第1の種類のアクションに関する推定された遅延を生成するステップと、
前記推定された遅延に基づいて、前記第1の種類のアクションに関する前記推定された遅延が閾値を満たすかどうかを判定するステップであって、
前記第1の種類のアクションに関する前記推定された遅延が前記閾値を満たすとき、前記第1の種類のアクションの実行が前記第2の種類のアクションよりも優先される、ステップと、
前記推定された遅延が前記閾値を満たすかどうかに基づいて、前記ユーザによって要求された前記複数のアクションに関する実行の好ましい順序を生成するステップと、
前記自動化アシスタントに実行の前記好ましい順序に従って前記複数のアクションの実行を初期化させるステップと
を含む、方法。
【請求項１５】
前記ユーザによって要求された前記複数のアクションのうちの各アクションに関するアクションの分類を決定するステップであって、前記自動化アシスタントが、少なくとも1つのその他のアクションの分類よりもアクションの少なくとも1つの特定の分類を優先するように構成される、ステップをさらに含む、請求項14に記載の方法。
【請求項１６】
前記第1の種類のアクションが会話開始アクションを含み、前記第2の種類のアクションがメディア再生アクションを含む、請求項14または15に記載の方法。
【請求項１７】
前記メディア再生アクションが、別のコンピューティングデバイスにおいて少なくとも部分的に実行されるように構成され、前記方法が、
前記会話開始アクションが前記メディア再生アクションよりも優先されるとき、
前記別のコンピューティングデバイスに前記メディア再生アクションを実行するためにアプリケーションを初期化させるのと同時に前記コンピューティングデバイスにおいて前記会話開始アクションが初期化されるようにするステップ
をさらに含む、請求項16に記載の方法。
【請求項１８】
前記メディア再生アクションが前記会話開始アクションよりも優先されるとき、
前記会話開始アクションの完了を促進するために前記自動化アシスタントに会話に対応する自然言語出力を提供させるステップと、
前記会話開始アクションが完了されるとき、
前記自動化アシスタントに前記コンピューティングデバイスまたは前記別のコンピューティングデバイスにおいて前記メディア再生アクションの実行を初期化させるステップと
をさらに含む、請求項17に記載の方法。
【請求項１９】
前記会話開始アクションが、実行されるとき、前記会話開始アクションの完了を促進するために前記ユーザがパラメータに割り振られる値を特定するために前記ユーザと前記自動化アシスタントとの間の会話セッションを開始することを含む、
請求項16から18のいずれか一項に記載の方法。
【請求項２０】
前記メディア再生アクションが、実行されるとき、1つまたは複数のファイルを介してアクセス可能であるメディアの再生を初期化することを含み、前記推定された遅延が前記1つまたは複数のファイルのファイル長さの合計に基づく、請求項16から18のいずれか一項に記載の方法。
【請求項２１】
前記メディア再生アクションが、実行されるとき、1つまたは複数のネットワークソースを介してアクセス可能であるメディアの再生を初期化することを含み、前記推定された遅延が、前記1つまたは複数のネットワークソースを介してアクセス可能である時間データに基づく、請求項16から18のいずれか一項に記載の方法。
【請求項２２】
1つまたは複数のプロセッサによって実行されるとき、前記1つまたは複数のプロセッサに請求項1から21のいずれか一項に記載の方法を実行させる命令を含む、コンピュータプログラム。
【請求項２３】
1つまたは複数のプロセッサによって実行されるとき、前記1つまたは複数のプロセッサに請求項1から21のいずれか一項に記載の方法を実行させる命令を含む、コンピュータ可読ストレージ媒体。
【請求項２４】
請求項1から21のいずれか一項に記載の方法を実行するための1つまたは複数のプロセッサを含む、システム。
【国際調査報告】
2021533399.tif 000009
2021533399.tif 000010