(57)【要約】  実装形態は、動的対話型ダイアログアプリケーションの調整済バージョンを実行することに関し、ここで、調整済バージョンは、調整済バージョンの作成者によって指定された構造化コンテンツに基づいて調整される。対話型ダイアログアプリケーションの調整済バージョンを実行することは、アシスタントアプリケーションのアシスタントインターフェースを介して、調整済バージョンに割り当てられた起動フレーズ、および/または調整済バージョンを識別する他のユーザインターフェース入力の受信に応答することを可能にする。いくつかの実装形態において、動的対話型ダイアログアプリケーションの調整済バージョンは、調整済バージョンの作成者によって指定され、ならびに/または調整済バージョンを作成する際に作成者によって提供された構造化コンテンツおよび/もしくは他の入力に基づいて予測された、ペルソナ値によって実行される。いくつかの実装形態において、対話型ダイアログアプリケーションの調整済バージョンを作成する際に作成者によって提供された構造化コンテンツおよび/または他の入力は、調整済バージョンにインデックスを付ける際に利用される。
2020536265.tif 000002
【特許請求の範囲】
【請求項１】
1つまたは複数のプロセッサによって実行される方法であって、
1つまたは複数のネットワークインターフェースを介して、
動的対話型ダイアログアプリケーションの指示、
前記動的対話型ダイアログアプリケーションの調整済バージョンを実行するための構造化コンテンツ、および
前記動的対話型ダイアログアプリケーションの前記調整済バージョンのための少なくとも1つの起動フレーズ
を受信するステップであって、
前記指示、前記構造化コンテンツ、および前記少なくとも1つの起動フレーズが、ユーザによるクライアントデバイスとの対話に応答して、前記ユーザの前記クライアントデバイスによって生成された1つまたは複数のデータパケットの中で伝送される、ステップと、
前記動的対話型ダイアログアプリケーションの前記調整済バージョンのための複数のペルソナ値を自動的に選択するために前記構造化コンテンツを処理するステップであって、前記構造化コンテンツが前記ペルソナ値を明示的に指示しない、ステップと、
前記指示、前記構造化コンテンツ、および前記少なくとも1つの起動フレーズを受信した後、ならびに前記複数のペルソナ値を自動的に選択した後、
前記クライアントデバイスまたは追加のクライアントデバイスのアシスタントインターフェースを介して提供された自然言語入力を受信するステップと、
前記動的対話型ダイアログアプリケーションの前記調整済バージョンのための前記起動フレーズに前記自然言語入力がマッチすることを判断するステップと、
前記起動フレーズに前記自然言語入力がマッチするとの判断に応答して、
前記動的対話型ダイアログアプリケーションの前記調整済バージョンを実行するステップであって、当該実行するステップが、前記アシスタントインターフェースを介して提示するための出力の複数のインスタンスを生成するステップを含み、出力の前記複数のインスタンスのそれぞれが、前記動的対話型ダイアログアプリケーションの実行中の対応するダイアログのターンのためのものであり、前記構造化コンテンツを使用して、および前記ペルソナ値の対応する1つまたは複数を使用して生成される、ステップと
を含む、方法。
【請求項２】
前記複数のペルソナ値を自動的に選択するために前記構造化コンテンツを処理するステップが、
前記構造化コンテンツのうちの少なくともいくつかを訓練済機械学習モデルへの入力として利用するステップと、
1つまたは複数の出力値を生成するために前記訓練済機械学習モデルを使用して前記構造化コンテンツのうちの前記少なくともいくつかを処理するステップと、
前記1つまたは複数の出力値に基づいて前記ペルソナ値を選択するステップと
を含む、請求項1に記載の方法。
【請求項３】
前記1つまたは複数の出力値が、第1のペルソナの第1の確率および第2のペルソナの第2の確率を含み、前記1つまたは複数の出力値に基づいて前記ペルソナ値を選択するステップが、
前記第1の確率および前記第2の確率に基づいて前記第2のペルソナを超える前記第1のペルソナを選択するステップと、
少なくとも1つのデータベースにおいて、前記選択した第1のペルソナに割り当てられた前記ペルソナ値に基づいて前記ペルソナ値を選択するステップと
を含む、請求項2に記載の方法。
【請求項４】
前記動的対話型ダイアログアプリケーションの前記指示を前記訓練済機械学習モデルへの追加入力として利用するステップと、
前記1つまたは複数の出力値を生成するために、前記指示、および前記構造化コンテンツのうちの前記少なくともいくつかを、前記訓練済機械学習モデルを使用して処理するステップと
をさらに含む、請求項2または3に記載の方法。
【請求項５】
前記複数のペルソナ値を自動的に選択するために前記構造化コンテンツを処理するステップが、
前記構造化コンテンツに基づいて1つまたは複数のエンティティを判断するステップと、
前記エンティティのうちの少なくともいくつかを訓練済機械学習モデルへの入力として利用するステップと、
1つまたは複数の出力値を生成するために前記訓練済機械学習モデルを使用して前記エンティティのうちの前記少なくともいくつかを処理するステップと、
前記1つまたは複数の出力値に基づいて前記ペルソナ値を選択するステップと
を含む、請求項1に記載の方法。
【請求項６】
前記訓練済機械学習モデルを使用して前記構造化コンテンツのうちの前記少なくともいくつかを処理するステップの前に、
1つまたは複数のデータベースから、複数の以前のユーザ投入を識別するステップであって、前記以前のユーザ投入のそれぞれが、以前に投入された構造化コンテンツおよび対応する以前に投入されたペルソナ値を含み、前記以前に投入されたペルソナ値が、対応するユーザによって明示的に選択される、ステップと、
前記以前のユーザ投入に基づいて複数の訓練インスタンスを生成するステップであって、前記訓練インスタンスのそれぞれが、前記以前のユーザ投入のうちの対応する1つに基づいて生成され、前記以前のユーザ投入のうちの前記対応する1つの前記以前に投入された構造化コンテンツに基づく訓練インスタンス入力、および前記以前のユーザ投入のうちの前記対応する1つの前記以前に投入されたペルソナ値に基づく訓練インスタンス出力を含む、ステップと、
前記複数の訓練インスタンスに基づいて、機械学習モデルを訓練し前記訓練済機械学習モデルを取得するステップと
をさらに含む、請求項2に記載の方法。
【請求項７】
前記機械学習モデルを訓練し前記訓練済機械学習モデルを取得するステップが、
前記訓練インスタンスのうちの所与の訓練インスタンスの前記訓練インスタンス入力を、前記訓練済機械学習モデルを使用して処理するステップと、
前記処理するステップに基づいて予測出力を生成するステップと、
前記所与の訓練インスタンスの前記訓練インスタンス出力と前記予測出力を比較することに基づいてエラーを生成するステップと、
前記エラーを使用して逆伝搬に基づいて前記訓練済機械学習モデルを更新するステップと
を含む、請求項6に記載の方法。
【請求項８】
前記構造化コンテンツを処理するステップが、前記ユーザによって指定されたドキュメントからの前記構造化コンテンツを構文解析するステップを含む、請求項1から7のいずれか一項に記載の方法。
【請求項９】
前記ペルソナ値が、前記ダイアログのトーン、前記ダイアログの文法、および前記ダイアログによって提供される言葉によらない音のうちの少なくとも1つに関するものである、請求項1から8のいずれか一項に記載の方法。
【請求項１０】
1つまたは複数のプロセッサによって実行される方法であって、
1つまたは複数のネットワークインターフェースを介して、
動的対話型ダイアログアプリケーションの指示、および
前記動的対話型ダイアログアプリケーションの調整済バージョンを実行するための構造化コンテンツ
を受信するステップであって、
前記指示および前記構造化コンテンツが、ユーザによるクライアントデバイスとの対話に応答して、前記ユーザの前記クライアントデバイスによって生成された1つまたは複数のデータパケットの中で伝送される、ステップと、
1つまたは複数の関連エンティティを判断するために前記構造化コンテンツを処理するステップと、
前記1つまたは複数の関連エンティティに基づいて、前記動的対話型ダイアログアプリケーションの前記調整済バージョンにインデックスを付けるステップと、
インデックスを付ける前記ステップの後、
前記クライアントデバイスまたは追加のクライアントデバイスのアシスタントインターフェースを介して提供された自然言語入力を受信するステップと、
前記自然言語入力から1つまたは複数の起動エンティティを判断するステップと、
エンティティのマッピングを識別するステップであって、前記マッピングが、前記起動エンティティのうちの少なくとも1つおよび前記関連エンティティのうちの少なくとも1つを含む、ステップと、
前記マッピングにおける前記起動エンティティと前記関連エンティティとの間の関係に基づいて、前記動的対話型ダイアログアプリケーションの前記調整済バージョンを識別するステップと、
前記動的対話型ダイアログアプリケーションの前記調整済バージョンを識別するステップに基づいて、
前記動的対話型ダイアログアプリケーションの動的バージョンを実行するステップであって、当該実行するステップが、前記アシスタントインターフェースを介して提示するための出力の複数のインスタンスを生成するステップを含み、出力の前記複数のインスタンスのそれぞれが、前記動的対話型ダイアログアプリケーションの実行中の対応するダイアログのターンのためのものであり、前記動的対話型ダイアログアプリケーションの前記調整済バージョンの前記構造化コンテンツのうちの少なくともいくつかを使用して生成される、ステップと
を含む、方法。
【請求項１１】
前記1つまたは複数の関連エンティティを判断するために前記構造化コンテンツを処理するステップが、
1つまたは複数の用語を識別するために前記構造化コンテンツを構文解析するステップと、
エイリアスとして前記用語の1つまたは複数を用いて1つまたは複数のエンティティを識別するステップと、
所与の関連エンティティが前記識別された1つまたは複数のエンティティのうちの複数と定義された関係を有することに基づいて、前記1つまたは複数の関連エンティティのうちの前記所与の関連エンティティを判断するステップと
を含む、請求項10に記載の方法。
【請求項１２】
前記所与のエンティティのエイリアスが、前記構造化コンテンツに含まれない、請求項11に記載の方法。
【請求項１３】
前記所与の関連エンティティを判断するステップが、前記識別された1つまたは複数のエンティティの前記複数の少なくとも閾値量による前記定義された関係を前記所与の関連エンティティが有することにさらに基づく、請求項11または12に記載の方法。
【請求項１４】
1つまたは複数のプロセッサを介して、前記動的対話型ダイアログアプリケーションの前記調整済バージョンのための少なくとも1つの起動フレーズを受信するステップと、
前記少なくとも1つの起動フレーズに基づいて、前記動的対話型ダイアログアプリケーションの前記調整済バージョンにさらにインデックスを付けるステップと
をさらに含む、請求項10から13のいずれか一項に記載の方法。
【請求項１５】
前記構造化コンテンツと前記関連エンティティとの間の関係に基づいて、前記関連エンティティに重みを付けるステップ、をさらに含む、請求項10から14のいずれか一項に記載の方法。
【請求項１６】
前記調整済バージョンを識別するステップが、前記関連エンティティの前記重みにさらに基づく、請求項15に記載の方法。
【請求項１７】
入力エンティティおよび前記関連エンティティに基づいて、前記動的対話型ダイアログアプリケーションの第2の調整済バージョンを識別するステップと、
前記重みに基づいて前記調整済バージョンを選択するステップと
をさらに含む、請求項15に記載の方法。
【請求項１８】
入力エンティティおよび第2のバージョンの関連エンティティに基づいて、第2の構造化コンテンツおよび前記第2のバージョンの関連エンティティによって第2の調整済バージョンを識別するステップ
をさらに含み、
出力の前記複数のインスタンスのそれぞれが、前記構造化コンテンツのうちの少なくともいくつか、および前記第2の構造化コンテンツのうちのいくつかを使用して生成される、
請求項10に記載の方法。
【請求項１９】
1つまたは複数のプロセッサによって実行される方法であって、
1つまたは複数のネットワークインターフェースを介して、
動的対話型ダイアログアプリケーションの指示、
前記動的対話型ダイアログアプリケーションの調整済バージョンを実行するための構造化コンテンツ、および
前記動的対話型ダイアログアプリケーションの前記調整済バージョンのための少なくとも1つの起動フレーズ
を受信するステップであって、
前記指示、前記構造化コンテンツ、および前記少なくとも1つの起動フレーズが、ユーザによるクライアントデバイスとの対話に応答して、前記ユーザの前記クライアントデバイスによって生成された1つまたは複数のデータパケットの中で伝送される、ステップと、
前記指示、前記構造化コンテンツ、および前記少なくとも1つの起動フレーズを受信するステップの後、
前記クライアントデバイスまたは追加のクライアントデバイスのアシスタントインターフェースを介して提供された発言入力を受信するステップと、
前記動的対話型ダイアログアプリケーションの前記調整済バージョンのための前記起動フレーズに前記発言入力がマッチすると判断するステップと、
前記起動フレーズに前記発言入力がマッチするとの判断に応答して、
前記動的対話型ダイアログアプリケーションの前記調整済バージョンを実行するステップであって、当該実行するステップが、前記アシスタントインターフェースを介して提示するための出力の複数のインスタンスを生成するステップを含み、出力の前記複数のインスタンスのそれぞれが、前記動的対話型ダイアログアプリケーションの実行中の対応するダイアログのターンのためのものであり、前記構造化コンテンツを使用して生成される、ステップと
を含む、方法。
【請求項２０】
請求項1から19のいずれか一項に記載の方法を行うように構成されたコンピューティング装置。
【請求項２１】
コンピューティング装置によって実行されると、請求項1から19のいずれか一項に記載の方法をコンピューティング装置に行わせる機械可読記録命令。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、作成者が提供したコンテンツに基づいて対話型ダイアログアプリケーションを調整することに関する。
【背景技術】
【０００２】
(「パーソナルアシスタント」、「モバイルアシスタント」等としても知られる)自動アシスタントは、スマートフォン、タブレット型コンピュータ、ウェアラブルデバイス、自動車システム、スタンドアロンパーソナルアシスタントデバイス、等の様々なクライアントデバイスを介してユーザと対話することが可能である。自動アシスタントは、ユーザからの入力(例えば、タイプされた、および/または発言された自然言語入力)を受信し、応答コンテンツ(例えば、視覚の、および/または可聴の自然言語出力)で応答する。クライアントデバイスを介して対話する自動アシスタントは、クライアントデバイス自体を介して、および/またはクライアントデバイス(例えば、「クラウド」におけるコンピューティングデバイス)とのネットワーク通信状態にある1つもしくは複数のリモートコンピューティングデバイスを介して、実行されることが可能である。
【発明の概要】
【課題を解決するための手段】
【０００３】
本明細書は、一般に、動的対話型ダイアログアプリケーションの調整済バージョンを実行するための方法、装置、およびコンピュータ可読媒体を対象とし、ここで、調整済バージョンは、調整済バージョンの作成者によって指定された構造化コンテンツに基づいて調整される。対話型ダイアログアプリケーションの調整済バージョンを実行することは、アシスタントアプリケーションのアシスタントインターフェースを介して、調整済バージョンに割り当てられた起動フレーズ、および/または調整済バージョンを識別する他のユーザインターフェース入力の受信に応答することを可能にする。調整済バージョンを実行することは、アシスタントインターフェースを介して提示するためのユーザインターフェース出力の複数のインスタンスを生成することを含むことができる。ユーザインターフェース出力の複数のインスタンスのそれぞれは、対話型ダイアログアプリケーションの実行中の対応するダイアログのターンのためのものであり、複数のインスタンスのそれぞれは、構造化コンテンツを使用して動的対話型ダイアログアプリケーションを適応させることを通じて生成される。例えば、動的対話型ダイアログアプリケーションの様々な変数は、作成者が指定した構造化コンテンツに基づく値でポピュレートされることが可能であり、このことにより、対話型ダイアログアプリケーションを構造化コンテンツに適応させる。
【０００４】
本明細書において説明されるように、動的対話型ダイアログアプリケーションの複数の調整済バージョンが実行されることが可能であり、ここで、調整済バージョンのそれぞれは、対応する作成者によって指定された対応する構造化コンテンツに基づいて実行される。例えば、第1の調整済バージョンを実行する際に、第1の作成者によって指定された第1の構造化コンテンツに基づく第1の値は、動的対話型ダイアログアプリケーションの様々な変数のために利用されることが可能であり、第2の調整済バージョンを実行する際に、第2の作成者によって指定された第2の構造化コンテンツに基づく第2の値が利用されることが可能であり、動的対話型ダイアログアプリケーションの様々な変数がポピュレートされることが可能である、等。
【０００５】
これらおよび他の手法において、各調整済バージョンの実行時に、このバージョンのために構造化コンテンツにおいて作成者によって指定された、このバージョンを生成する際に作成者の他のユーザインターフェース入力によって指定された、ならびに/またはこのバージョンのための構造化コンテンツ、および/もしくは他のユーザインターフェース入力に基づいて予測された、ただ1つの変数を適応させながら、複数の調整済バージョンのそれぞれに対して同じ固定コードが実行されることが可能である。これは、対話型ダイアログアプリケーションを作成するのに必要な計算リソースの低下をもたらす可能性がある。例えば、動的対話型ダイアログアプリケーションの調整済バージョンの作成者は、構造化コンテンツおよび/または他の入力を通じて変数を指定する際に計算リソースを利用することができ、これらの変数は、上記(および本明細書における他の場所)において説明された対話型ダイアログアプリケーションを適応させるために利用されている。しかし、作成者は、動的対話型ダイアログアプリケーションの固定コードが代わりに利用されるので、調整済バージョンの完全な実行のために、様々なコードを指定する際に大きな計算リソースを利用する必要はない。その上、このことは、複数のアプリケーションを格納するのに必要なコンピュータハードウェアストレージ空間の量の低下をもたらす可能性がある。例えば、複数の調整済バージョンのそれぞれのための変数は、複数の調整済バージョンのそれぞれのために格納されることになる固定コードの一意のインスタンスを必要とせずに格納されることが可能である。
【０００６】
本明細書において説明されるいくつかの実装形態において、動的対話型ダイアログアプリケーションの調整済バージョンは、調整済バージョンの作成者によって指定され、ならびに/または調整済バージョンを作成する際に作成者によって提供された構造化コンテンツおよび/もしくは他の入力に基づいて予測された、1つまたは複数のペルソナ値で実行される。ペルソナ値は、対話型ダイアログアプリケーションの変数の1つまたは複数のために利用されることが可能であり、このことにより、ペルソナ値に基づいて対話型ダイアログアプリケーションも適応される。ペルソナ値のそれぞれは、調整済バージョンの実行時に生成される可聴および/またはグラフィカルユーザインターフェース出力に影響を及ぼすことができる。
【０００７】
例えば、1つまたは複数のペルソナ値は、調整済バージョンの実行時に自然言語ユーザインターフェース出力として提供されることになるコンピュータが生成した発言のトーン、イントネーション、ピッチ、および/または他の音声特性を定義することができる。また、例えば、1つまたは複数のペルソナ値は、固定コードの中で定義されたユーザインターフェース出力等の様々なユーザインターフェース出力のために利用されることになる用語、フレーズ、および/またはフォーマリティの程度を定義することができる(すなわち、これらは、指定された構造化コンテンツにおいて定義されない)。例えば、第1の調整済バージョンのための1つまたは複数のペルソナ値は、非常にフォーマルな(例えば、口語体および/または他のカジュアルな発話を除外する)様々な自然言語ユーザインターフェース出力が提供されることをもたらすことができるが、第2の調整済バージョンのための1つまたは複数のペルソナ値は、非常にカジュアルな(すなわち、フォーマリティの程度が低い)様々な自然言語ユーザインターフェース出力が提供されることをもたらすことができる。また、例えば、第1の調整済バージョンのための1つまたは複数のペルソナ値は、第1の地域に固有の用語を含む(第2の地域に固有の用語を含まない)様々な自然言語ユーザインターフェース出力が提供されることをもたらすことができるが、第2の調整済バージョンのための1つまたは複数のペルソナ値は、第2の地域に固有の用語を含む(第1の地域に固有の用語を含まない)様々な自然言語ユーザインターフェース出力が提供されることをもたらすことができる。さらに別の例として、1つまたは複数のペルソナ値は、音楽、音響効果、グラフィカルプロパティ、および/またはユーザインターフェース出力として提供される他の特徴を定義することができる。
【０００８】
調整済バージョンのためのペルソナ値で動的対話型ダイアログアプリケーションの調整済バージョンを実行することは、より理解しやすく、より自然なユーザインターフェース出力を調整済バージョンが提供することをもたらすことができ、このことにより、ユーザとのより効果的な通信を容易にする。例えば、本明細書において説明される技法は、ユーザによって、より容易に理解できる言語および/または言い回しを使用して、特定のユーザに調整済バージョンが意味を伝えさせることが可能である。例えば、本明細書において説明されるように、ペルソナ値は、調整済バージョンを実行するために利用される構造化コンテンツに基づいて判断されること、および調整済バージョンを起動する可能性が高いユーザに結果として適応されることが可能である。ペルソナ値に基づく自然言語ユーザインターフェース出力の適応は、調整済バージョンの実行を通じて従事される対話型ダイアログの全体的な持続期間を、別のやり方で必要になる持続期間より短くすることができ、このことにより、コンピューティングシステムが調整済バージョンを実行する際の計算負荷を減らす。
【０００９】
上述のように、様々な実装形態において、1つまたは複数のペルソナ値は、調整済バージョンを作成する際に作成者によって提供された構造化コンテンツおよび/または他の入力に基づいて予測される。予測値は、調整済バージョンに自動的に割り当てられること、および/または提案されたペルソナ値として作成者に提示されること、ならびにユーザインターフェース入力を介して作成者によって認められた場合、調整済バージョンに割り当てられることが可能である。これらの実装形態の多くにおいて、ペルソナ値は、調整済バージョンを作成する際に提供された構造化コンテンツおよび/または他の入力のうちの少なくともいくつかの、訓練済機械学習モデルを使用する処理に基づいて予測される。例えば、構造化コンテンツのうちの少なくともいくつかは、訓練済機械学習モデルへの入力の少なくとも一部、1つまたは複数の出力値を生成するために機械学習モデルを使用して処理された入力、および1つまたは複数の出力値に基づいて選択されたペルソナ値、として利用されることが可能である。訓練済機械学習モデルは、例えば、対応する以前の調整済バージョンを生成する際に以前に投入された構造化コンテンツに基づいて、および、対応する以前の調整済バージョンのための以前に投入された(例えば、対応する作成者によって明示的に選択された)ペルソナ値に基づいてそれぞれ生成される訓練インスタンスに基づいて、訓練されることが可能である。
【００１０】
本明細書において説明されるいくつかの実装形態において、対話型ダイアログアプリケーションの調整済バージョンを作成する際に作成者によって提供された構造化コンテンツおよび/または他の入力は、調整済バージョンにインデックスを付ける際に利用される。例えば、調整済バージョンは、調整済バージョンのための、作成者によって提供される1つまたは複数の起動フレーズに基づいてインデックスを付けられることが可能である。別の例として、調整済バージョンは、追加または代替として、作成者によって指定された構造化コンテンツに基づいて判断される1つまたは複数のエンティティに基づいてインデックスを付けられることが可能である。例えば、エンティティのうちの少なくともいくつかは、構造化コンテンツに含まれるエイリアスを有する複数のエンティティに対する(例えば、知識グラフにおける)定義された関係を有することに基づいて判断されることが可能である。このようなエンティティは、このようなエンティティのエイリアスが構造化コンテンツに含まれていなかったとしても、調整済バージョンにインデックスを付けるために利用されることが可能である。例えば、構造化コンテンツは、所与の都市に関心のある大量のポイントに対するエイリアスを含むことが可能であるが、所与の都市に対するいずれのエイリアスも含まないことが可能である。関心のあるポイントに対するエイリアス、および任意選択として他のコンテンツは、関心のあるポイントに対応するエンティティを、知識グラフにおいて識別するために利用されることが可能である。さらに、所与の都市への、知識グラフにおける定義された関係(例えば、「に位置する(located in)」関係)をエンティティの全てが有するということが判断されることが可能である。定義された関係に基づいて、および、定義された関係を有する複数(例えば、少なくとも閾値)のエンティティに基づいて、調整済バージョンは、所与の都市に基づいてインデックスを付けられること(例えば、所与の都市の1つまたは複数のエイリアスによってインデックスを付けられること)が可能である。その後、ユーザは、所与の都市を参照するユーザインターフェース入力の投入を通じて調整済バージョンを発見することができる。例えば、ユーザは、自動アシスタントインターフェースを介して、「私は、[所与の都市に対するエイリアス]についてのアプリケーションが欲しい」という、発言入力を提供することができる。所与の都市に基づいてインデックスを付けられた調整済バージョンに基づいて、自動アシスタントインターフェースと関連付けられた自動アシスタントは、調整済バージョンを自動的に実行することができる、または実行のためのオプションとして調整済バージョンを示す出力をユーザに提示することができ、提示に応答して肯定的なユーザインターフェース入力が受信される場合、調整済バージョンを実行することができる。これらおよび他の手法で、ユーザのリクエストを満たす動的ダイアログアプリケーションの調整済バージョンが効率的に識別され、実行されることが可能である。このことは、このような調整済バージョンを識別するために複数のリクエストを、ユーザが投入しなければならないのを防ぐことができ、このことにより、計算���よび/またはネットワークリソースを節約する。
【００１１】
いくつかの実装形態において、1つまたは複数のプロセッサによって行われる方法が提供され、1つまたは複数のネットワークインターフェースを介して、動的対話型ダイアログアプリケーションの指示、動的対話型ダイアログアプリケーションの調整済バージョンを実行するための構造化コンテンツ、および動的対話型ダイアログアプリケーションの調整済バージョンのための少なくとも1つの起動フレーズを受信することを含む。指示、構造化コンテンツ、および少なくとも1つの起動フレーズは、ユーザによるクライアントデバイスとの対話に応答して、ユーザのクライアントデバイスによって生成された1つまたは複数のデータパケットの中で伝送される。方法は、対話型ダイアログアプリケーションの調整済バージョンのための複数のペルソナ値を自動的に選択するために構造化コンテンツを処理することであって、構造化コンテンツがペルソナ値を明示的に指示しない、処理すること、というステップをさらに含む。指示、構造化コンテンツ、および少なくとも1つの起動フレーズを受信した後、ならびに複数のペルソナ値を自動的に選択した後、方法は、クライアントデバイスまたは追加のクライアントデバイスのアシスタントインターフェースを介して提供された自然言語入力を受信することと、対話型ダイアログアプリケーションの調整済バージョンのための起動フレーズに自然言語入力がマッチすることを判断することと、というステップを含む。起動フレーズに自然言語入力がマッチするとの判断に応答して、方法は、対話型ダイアログアプリケーションの調整済バージョンを実行することであって、アシスタントインターフェースを介して提示するための出力の複数のインスタンスを生成することを含み、出力の複数のインスタンスのそれぞれが、対話型ダイアログアプリケーションの実行中の対応するダイアログのターンのためのものであり、構造化コンテンツを使用して、およびペルソナ値の対応する1つまたは複数を使用して生成される、実行すること、を含む。
【００１２】
本明細書において開示された技術についてのこれらおよび他の実装形態は、以下の特徴の1つまたは複数を任意選択として含むことができる。
【００１３】
様々な実装形態において、複数のペルソナ値を自動的に選択するために構造化コンテンツを処理することは、構造化コンテンツのうちの少なくともいくつかを訓練済機械学習モデルへの入力として利用することと、1つまたは複数の出力値を生成するために訓練済機械学習モデルを使用して構造化コンテンツのうちの少なくともいくつかを処理することと、1つまたは複数の出力値に基づいてペルソナ値を選択することと、を含むことができる。様々な実装形態において、1つまたは複数の出力値は、第1のペルソナの第1の確率および第2のペルソナの第2の確率を含むことができ、1つまたは複数の出力値に基づいてペルソナ値を選択することは、第1の確率および第2の確率に基づいて第2のペルソナを超える第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つの起動フレーズに基づいて、動的対話型ダイアログアプリケーションの調整済バージョンにさらにインデックスを付けることと、をさらに含むことができる。
【００２３】
様々な実装形態において、方法は、構造化コンテンツ、および関連エンティティ間の関係に基づいて、関連エンティティに重みを付けること、をさらに含むことができる。これらの実装形態のうちのいくつかにおいて、調整済バージョンを識別することは、関連エンティティの重みにさらに基づくことが可能である。他の実装形態において、方法は、入力エンティティおよび関連エンティティに基づいて、動的対話型ダイアログアプリケーションの第2の調整済バージョンを識別することと、重みに基づいて調整済バージョンを選択することと、をさらに含むことができる。
【００２４】
様々な実装形態において、方法は、入力エンティティおよび第2のバージョンの関連エンティティに基づいて、第2の構造化コンテンツおよび第2のバージョンの関連エンティティによって第2の調整済バージョンを識別することをさらに含むことができ、出力の複数のインスタンスのそれぞれが、構造化コンテンツのうちの少なくともいくつか、および第2の構造化コンテンツのうちのいくつかを使用して生成される。
【００２５】
いくつかの実装形態において、1つまたは複数のプロセッサによって行われる方法が提供され、1つまたは複数のネットワークインターフェースを介して、動的対話型ダイアログアプリケーションの指示、動的対話型ダイアログアプリケーションの調整済バージョンを実行するための構造化コンテンツ、および動的対話型ダイアログアプリケーションの調整済バージョンのための少なくとも1つの起動フレーズを受信することを含む。指示、構造化コンテンツ、および少なくとも1つの起動フレーズは、ユーザによるクライアントデバイスとの対話に応答して、ユーザのクライアントデバイスによって生成された1つまたは複数のデータパケットの中で伝送される。方法は、指示、構造化コンテンツ、および少なくとも1つの起動フレーズを受信することの後、クライアントデバイスまたは追加のクライアントデバイスのアシスタントインターフェースを介して提供された発言入力を受信することと、対話型ダイアログアプリケーションの調整済バージョンのための起動フレーズに発言入力がマッチすると判断することと、をさらに含む。方法は、起動フレーズに発言入力がマッチするとの判断に応答して、対話型ダイアログアプリケーションの調整済バージョンを実行することであって、アシスタントインターフェースを介して提示するための出力の複数のインスタンスを生成することを含み、出力の複数のインスタンスのそれぞれが、対話型ダイアログアプリケーションの実行中の対応するダイアログのターンのためのものであり、構造化コンテンツを使用して生成される、実行すること、をさらに含む。
【００２６】
さらに、いくつかの実装形態は、1つまたは複数のコンピューティングデバイスの1つまたは複数のプロセッサを含み、ここで、1つまたは複数のプロセッサは、関連付けられたメモリに格納された命令を実行するように動作可能であり、ここで、命令は、前述の方法のいずれかの実行を引き起こすように構成される。いくつかの実装形態は、前述の方法のいずれかを行うために1つまたは複数のプロセッサによって実行可能なコンピュータ命令を格納する1つまたは複数の非一時的コンピュータ可読ストレージ媒体も含む。
【００２７】
本明細書においてより詳細に説明される前述の概念と追加の概念の全ての組合せが、本明細書において開示された主題の一部であると考えられるということが理解されよう。例えば、本開示の最後に現れる特許請求される主題の全ての組合せが、本明細書において開示された主題の一部であると考えられる。
【図面の簡単な説明】
【００２８】
【図１】本明細書において開示された実装形態が実行されることが可能な環境の例のブロック図である。
【図２】本明細書において開示された実装形態において利用されることが可能な構造化コンテンツの例の図である。
【図３】動的対話型ダイアログアプリケーションの調整済バージョンを生成するリクエストに対して、ペルソナ値がどのように選択されることが可能であるかについての例を示す図である。
【図４】本明細書において開示された実装形態による方法の例を示す流れ図である。
【図５】本明細書において開示された実装形態によるペルソナ選択モデルを生成する方法の例を示す流れ図である。
【図６】知識グラフにおけるエンティティを表すノードのあるグラフを示す図である。
【図７】アプリケーションの調整済バージョンに対して指定された構造化コンテンツに関するエンティティに基づいて、アプリケーションの調整済バージョンにインデックスを付ける例を示す図である。
【図８】本明細書において開示された実装形態による、ユーザ、クライアントデバイス、およびユーザと、対話型ダイアログアプリケーションの調整済バージョンを実行するクライアントデバイスと関連付けられた自動アシスタントとの間のダイアログの例を示す図である。
【図９】本明細書において開示された実装形態による、ユーザ、クライアントデバイス、およびユーザと、図8の対話型ダイアログアプリケーションの別の調整済バージョンを実行するクライアントデバイスと関連付けられた自動アシスタントとの間のダイアログの別の例を示す図である。
【図１０】コンピューティングデバイスのアーキテクチャの例を示す図である。
【発明を実施するための形態】
【００２９】
いくつかの事例において、対話型ダイアログアプリケーションの調整済バージョンは、受信された構造化コンテンツ、および対話型ダイアログアプリケーションの受信された指示に基づいて生成される。構造化コンテンツおよび指示は、作成者のクライアントデバイスとの対話を介して作成者によって提供される1つまたは複数のユーザインターフェース入力に応答して、自動アシスタント、または自動アシスタントと関連付けられた構成要素に伝送されることが可能である。対話型ダイアログアプリケーションの指示は、対話型ダイアログアプリケーションを識別するために利用され、構造化コンテンツは、対話型ダイアログアプリケーションの調整済バージョンを実行する際に利用される。対話型ダイアログアプリケーションの調整済バージョンを実行する際に、様々なタイプの構造化コンテンツが提供され、利用されることが可能である。例えば、構造化コンテンツは、複数選択肢の質問および対応する回答(例えば、各質問に対して、正確な回答および1つまたは複数の不正確な回答)、ジョークおよび対応するおち(例えば、各ジョークに対して、対応するおち)、等の、プロンプトおよび可能な応答を含むスプレッドシートであることが可能である。別の例として、構造化HTMLもしくはXMLドキュメント、または構造化文書に処理され、変換される非構造化ドキュメントでも、提供されることが可能である。
【００３０】
いくつかの実装形態において、1つまたは複数のペルソナ値が調整済バージョンに割り当てられることが可能であり、ペルソナ値は、調整済バージョンを実行する際に利用されることが可能である。ペルソナ値は、音声出力の可聴特性、音声出力のための自然言語を生成する際に使用されることになる文法特性、ならびに/または音声出力の中で提供されることになる(例えば、構造化コンテンツに追加の)特定の用語および/もしくはフレーズ、を示すことができる。例えば、ペルソナ値は、女王(例えば、正規の文法による女性の声)、ロボット(例えば、堅い発言トーンによる誇張された自動音声)、および/または教師等の個別のペルソナをまとめて定義することができる。いくつかの実装形態において、ペルソナ値は、異なるペルソナを作成するために変更されることが可能なトーン値、文法値、および性別値等の、変えることが可能な自動アシスタントの提示音声の種々の特性であることが可能である。いくつかの実装形態において、ペルソナ値の1つまたは複数は、特定の音声テキストモデル(voice-to-text model)がペルソナ値に従う複数の候補の音声テキストモデルから選択するために利用されることが可能である。いくつかの実装形態において、ペルソナ値の1つまたは複数は、音声テキスト変換時に利用するための対応する特性を選択するために利用されることが可能である。
【００３１】
次に図を見てみると、図1は、本明細書において開示された技法が実行されることが可能な環境の例を示す。環境の例は、クライアントデバイス106、自動アシスタント110、および調整済アプリケーションエンジン120を含む。図1において、調整済アプリケーションエンジン120は、自動アシスタント110の一部として示されている。しかし、多くの実装形態において、調整済アプリケーションエンジン120は、自動アシスタント110とは別個の1つまたは複数の構成要素によって実行されることが可能である。例えば、調整済アプリケーションエンジン120は、1つまたは複数のネットワーク上で自動アシスタント110とインターフェースすることができ、任意選択として、1つまたは複数のアプリケーションプログラミングインターフェース(API)を利用して自動アシスタント110とインターフェースすることができる。調整済アプリケーションエンジン120が自動アシスタント110とは別個のものであるいくつかの実装形態において、調整済アプリケーションエンジン120は、自動アシスタント110を制御する当事者から一意の第三者によって制御される。
【００３２】
クライアントデバイス106は、例えば、スタンドアロンの音声作動式スピーカデバイス、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、携帯電話コンピューティングデバイス、ユーザの車両のコンピューティングデバイス、および/またはコンピューティングデバイスを含んでいるユーザのウェアラブル装置(例えば、コンピューティングデバイスを備えるユーザの腕時計、コンピューティングデバイスを備えるユーザの眼鏡、仮想または拡張現実コンピューティングデバイス)であることが可能である。追加および/または代替のクライアントデバイスが提供されることが可能である。
【００３３】
自動アシスタント110は、クライアントデバイス106とは別個のものとして図1において示されているが、いくつかの実装形態において、自動アシスタント110の全てまたは態様は、クライアントデバイス106によって実行されることが可能である。例えば、いくつかの実装形態において、入力処理エンジン112は、クライアントデバイス106によって実行されることが可能である。クライアントデバイス106から離れた1つまたは複数のコンピューティングデバイスによって、自動アシスタント110の1つまたは複数の(例えば、全ての)態様が実行される実装形態において、クライアントデバイス106、および自動アシスタント110のこれらの態様は、広域ネットワーク(WAN)(例えば、インターネット)等の1つまたは複数のネットワークを介して通信する。本明細書において説明されるように、クライアントデバイス106は、クライアントデバイス106のユーザが自動アシスタント110とインターフェースする自動アシスタントインターフェースを含むことができる。
【００３４】
ただ1つのクライアントデバイス106が自動アシスタント110と組み合わせて示されているが、多くの実装形態において、自動アシスタント110は、遠く離れていることが可能であり、ユーザの複数のクライアントデバイスのそれぞれと、および/または複数のユーザの複数のクライアントデバイスのそれぞれと、インターフェースすることができる。例えば、自動アシスタント110は、種々のセッションを介した複数のデバイスのそれぞれとの通信を管理することができ、複数のセッションを並行に管理することができる。例えば、いくつかの実装形態における自動アシスタント110は、例えば、複数のユーザからの大量のリクエストを取り扱うのに適したソフトウェアを実行する高性能コンピュータのサーバファームまたはクラスタを使用して、クラウドインフラストラクチャを用いるクラウドベースサービスとして実行されることが可能である。しかし、簡潔さのために、本明細書における多くの例は、単一のクライアントデバイス106について説明される。
【００３５】
自動アシスタント110は、入力処理エンジン112、出力エンジン135、および起動エンジン160を含む。いくつかの実装形態において、自動アシスタント110のエンジンの1つまたは複数は、自動アシスタント110とは別個の構成要素において省略されること、組み合わされること、および/または実装されることが可能である。その上、自動アシスタント110は、簡潔さのために本明細書において示されていない追加のエンジンを含むことができる。例えば、自動アシスタント110は、ダイアログ状態追跡エンジン、独自のダイアログエンジン、等を含むことができる(または、ダイアログモジュール126を、調整済アプリケーションエンジン120と共有することができる)。
【００３６】
自動アシスタント110は、クライアントデバイス106からユーザ入力のインスタンスを受信する。例えば、自動アシスタント110は、ストリーミングオーディオレコーディングの形で、自由形式の自然言語音声入力を受信することができる。ストリーミングオーディオレコーディングは、クライアントデバイス106のユーザの発言入力をキャプチャする、クライアントデバイス106のマイクロフォンから受信された信号に応答して、クライアントデバイス106によって生成されることが可能である。別の例として、自動アシスタント110は、自由形式の自然言語のタイプ入力を受信することができる。いくつかの実装形態において、自動アシスタント110は、グラフィカルユーザインターフェース要素上の複数のオプションのうちの1つの選択等の、ユーザからの非自由形式の入力、または対話型ダイアログアプリケーションの調整済バージョンを生成する際に(例えば、別個のスプレッドシートドキュメントもしくは他のドキュメントにおいて)提供された構造化コンテンツ、を受信することができる。様々な実装形態において、入力は、クライアントデバイス106のユーザが自動アシスタント110と対話する自動アシスタントインターフェースを介してクライアントデバイスにおいて提供される。インターフェースは、オーディオのみのインターフェース、グラフィックのみのインターフェース、またはオーディオとグラフィックのインターフェースであることが可能である。
【００３７】
いくつかの実装形態において、ユーザ入力は、クライアントデバイス106によって生成されること、および/またはクライアントデバイス106のユーザによる自動アシスタント110の明示的な起動に応答して自動アシスタント110に提供されることが可能である。例えば、起動は、クライアントデバイス106によるユーザの一定の音声入力(例えば、「やあ、アシスタント」等の自動アシスタント110のホットワード/フレーズ)、ハードウェアボタンおよび/もしくは仮想ボタンによるユーザ対話(例えば、ハードウェアボタンのタップ、クライアントデバイス106によって表示されたグラフィカルインターフェース要素の選択)、ならびに/または他の特定のユーザインターフェース入力、の検出であることが可能である。いくつかの実装形態において、自動アシスタント110は、自動アシスタント110によって(直接的または間接的に)実行可能な特定のアプリケーションを(直接的または間接的に)示すユーザ入力を受信することができる。例えば、入力処理エンジン112は、「アシスタント、私は大統領のクイズをやりたい」という入力をクライアントデバイス106から受信することができる。入力処理エンジン112は、受信したオーディオを構文解析し、構文解析したコンテンツを起動エンジン160に提供することができる。起動エンジン160は、「大統領のクイズ」が動的対話型ダイアログアプリケーションの調整済バージョンのための起動フレーズであることを(例えば、インデックス152を利用して)判断するために、構文解析したコンテンツを利用することができる。これに応答して、起動エンジン160は、この調整済バージョンを実行して自動アシスタントインターフェースを介してクライアントデバイス106のユーザとの対話型ダイアログに従事することを、調整済アプリケーションエンジン120が行うようにするために、調整済アプリケーションエンジン120に起動コマンドを伝送することができる。
【００３８】
自動アシスタント110は典型的には、クライアントデバイス106からのユーザ入力のインスタンスの受信に応答して、出力のインスタンスを提供する。出力のインスタンスは、例えば、(例えば、クライアントデバイス106のスピーカを介して出力された)デバイス106によって聞こえるように提示されることになるオーディオ、(例えば、クライアントデバイス106のディスプレイを介してレンダリングされた)デバイス106によってグラフィカルに提示されることになるテキストおよび/またはグラフィカルコンテンツ、等であることが可能である。本明細書において説明されるように、対話型ダイアログアプリケーションの調整済バージョンを実行するとき、所与のダイアログのターンにおいて提供される出力は、対話型ダイアログアプリケーションに基づいて、および調整済バージョンのための構造化コンテンツおよび/または調整済バージョンのためのペルソナ値に基づいて、調整済アプリケーションエンジン120によって生成されることが可能である。本明細書で使用されるように、ダイアログのターンは、ユーザの発話(例えば、音声入力または他の自然言語入力のインスタンス)、および応答システム発話(例えば、可聴および/またはグラフィカル出力のインスタンス)を参照し、または逆もまた同様である。
【００３９】
自動アシスタント110の入力処理エンジン112は、クライアントデバイス106を介して受信された自然言語入力を処理し、起動エンジン160、調整済アプリケーションエンジン120、等の、自動アシスタント110の1つまたは複数の他の構成要素による使用のための注釈付きの出力を生成する。例えば、入力処理エンジン112は、クライアントデバイス106の1つまたは複数のユーザインターフェース入力デバイスを介してユーザによって生成される自然言語の自由形式の入力を処理することができる。生成された注釈付きの出力は、自然言語入力の1つまたは複数の注釈、および任意選択として、自然言語入力の用語の1つまたは複数(例えば、全て)を含む。別の例として、入力処理エンジン112は、追加または代替として、(例えば、デジタルオーディオデータの形で)音声入力のインスタンスを受信し、1つまたは複数のテキストの単語またはフレーズを含むテキストに音声入力を変換する音声テキストモジュール(voice to text module)を含むことができる。いくつかの実装形態において、音声テキストモジュールは、ストリーミング音声テキストエンジン(streaming voice to text engine)である。音声テキストモジュールは、言語における単語の並びと共に、言語におけるオーディオ信号と音声単位との間の関係をそれぞれモデル化することができる(言語モデルとも呼ばれる)1つまたは複数の格納された音声テキストモデルに依存することができる。
【００４０】
いくつかの実装形態において、入力処理エンジン112は、自然言語入力における様々なタイプの文法情報を識別し、注釈を付けるように構成される。例えば、入力処理エンジン112は、これらの文法機能と共に用語に注釈を付けるように構成された発言タグ付けプログラム(speech tagger)の一部を含むことができる。例えば、発言タグ付けプログラムの一部は、「名詞」、「動詞」、「形容詞」、「代名詞」等の、発言のその部分と共に各用語にタグを付けることができる。また、例えば、いくつかの実装形態において、入力処理エンジン112は、追加および/または代替として、自然言語入力における用語間のシンタックス関係を判断するように構成された依存性構文解析器を含むことができる。例えば、依存性構文解析器は、どの用語が他の用語を修飾するか、文の主語および動詞、等(例えば、構文解析木)を判断することができ、このような依存性の注釈を作ることができる。
【００４１】
出力エンジン135は、出力のインスタンスをクライアントデバイス106に提供する。いくつかの状況において、出力のインスタンスは、対話型ダイアログアプリケーションの調整済バージョンを実行する際に、調整済アプリケーションエンジン120によって生成された応答コンテンツに基づくことが可能である。他の状況において、出力のインスタンスは、必ずしも対話型ダイアログアプリケーションの調整済バージョンではない別のアプリケーションによって生成された応答コンテンツに基づくことが可能である。例えば、自動アシスタント110は、それ自体が、応答コンテンツを生成する1つもしくは複数の内部アプリケーションを含むことができ、および/または対話型ダイアログアプリケーションの調整バージョンではないが、応答コンテンツを生成する第三者アプリケーションとインターフェースすることができる。いくつかの実装形態において、出力エンジン135は、応答コンテンツのテキストの構成要素をオーディオフォーマットに変換するテキスト発言エンジン(text to speech engine)を含むことができ、出力エンジン135によって提供される出力は、(例えば、ストリーミングオーディオのような)オーディオフォーマットである。いくつかの実装形態において、応答コンテンツは既に、オーディオフォーマットであることが可能である。いくつかの実装形態において、出力エンジン135は、追加または代替として、(任意選択として、デバイス106によるオーディオへの変換のために)出力としてテキストのリプライコンテンツを提供し、および/またはクライアントデバイス106によるグラフィカルな表示のための出力として他のグラフィカルコンテンツを提供する。
【００４２】
調整済アプリケーションエンジン120は、インデックス付加モジュール122、ペルソナモジュール124、ダイアログモジュール126、エンティティモジュール128、およびコンテンツ入力エンジン130を含む。いくつかの実装形態において、調整済アプリケーションエンジン120のモジュールは、調整済アプリケーションエンジン120とは別個の構成要素の中で省略されること、組み合わされること、および/または実装されることが可能である。その上、調整済アプリケーションエンジン120は、簡潔さのために本明細書において示されていない追加のモジュールを含むことができる。
【００４３】
コンテンツ入力エンジン130は、対話型ダイアログアプリケーションの調整済バージョンを生成するために作成者によって提供されたコンテンツを処理する。いくつかの実装形態において、提供されたコンテンツは、構造化コンテンツを含む。例えば、図2を参照すると、構造化コンテンツの例が提供される。構造化コンテンツは、クライアントデバイス106から、または別のクライアントデバイス(例えば、別のユーザのクライアントデバイス)から、コンテンツ入力エンジン130に伝送されることが可能である。図2の構造化コンテンツはスプレッドシートであり、スプレッドシートの各行205a〜205dは、質問列210におけるエントリ、正確な回答列215におけるエントリ、および3つの不正確な回答列220のそれぞれにおけるエントリを含む。いくつかの実装形態において、図2のスプレッドシートの列のヘッダは、調整済アプリケーションエンジン120によって予めポピュレートされることが可能であり、行のそれぞれにおけるエントリは、対応するクライアントデバイスを利用し、ガイダンスとしてヘッダを利用する作成者によってポピュレートされることが可能である。これらの実装形態のいくつかにおいて、調整済アプリケーションエンジン120は、複数の利用可能な対話型ダイアログアプリケーションの調整済バージョンを作成したいと作成者が望んでいることを、作成者が何に対して示しているかに基づいて、ヘッダを予めポピュレートする。例えば、図2のヘッダは、「雑学的知識」の対話型ダイアログアプリケーションを作成者が選択することに基づいて、予めポピュレートされることが可能である。その一方で、「ジョーク」の対話型ダイアログアプリケーションをユーザが選択した場合、「ジョーク」および「おち」のヘッダが、代わりに、予めポピュレートされる。
【００４４】
コンテンツ入力エンジン130は、図2の構造化コンテンツを受信すること、任意選択としてコンテンツを処理すること、および対応する対話型ダイアログアプリケーションの調整済バージョンを実行する際の利用のために、調整済コンテンツデータベース158にコンテンツを格納することができる。コンテンツを処理することは、ユーザによって提供されたエントリに対する列および行に基づいてエントリに注釈を付けること、ならびに/またはエントリを格納すること含むことができる。例えば、コンテンツ入力エンジン130は、列210、行205Aのエントリを格納し、このエントリに、調整済バージョンのための「質問」エントリとして注釈を付けることができる。さらに、コンテンツ入力エンジン130は、列215、行205Aのエントリを格納し、このエントリに、前に格納した「質問」エントリのための「正確な回答」エントリとして注釈を付けることができ、列220、行205Aのエントリを格納し、これらのエントリに、前に格納した「質問」エントリのための「不正確な回答」エントリとして注釈を付けることができる。コンテンツを処理することは、追加および/または代替として、構造化コンテンツの値が1つまたは複数の要求基準に従っていることを検証すること、および従っていない場合、訂正するように作成者に促すことを含むことができる。1つまたは複数の要求基準は、コンテンツタイプ(例えば、数字のみ、アルファベットのみ)、コンテンツ長(例えば、X個の文字および/またはY個の用語)、等を含むことができる。
【００４５】
コンテンツ入力エンジン130は、調整済バージョンのための構造化コンテンツと共に、対応する対話型ダイアログアプリケーションの指示、調整済バージョンのための任意の提供された起動フレーズ、ならびに調整済バージョンのための任意の選択されたおよび/または予測されたペルソナ値も格納することができる。スプレッドシートが図2において示されているが、コンテンツ入力エンジン130は、他のタイプの構造化コンテンツを処理することができるということが理解される。その上、いくつかの実装形態において、コンテンツ入力エンジン130は、非構造化コンテンツを構造化フォーマットに変換し、その後、構造化フォーマットを処理することができる。
【００４６】
ダイアログモジュール126は、任意選択として調整済バージョンのための追加の値(例えば、ペルソナ値)と共に、調整済バージョンのためのアプリケーションおよび構造化コンテンツを使用して、対話型ダイアログアプリケーションの調整済バージョンを実行する。例えば、ダイアログモジュール126は、アプリケーションデータベース159から所与の対話型ダイアログアプリケーションのための固定コードを取得すること、ならびに調整済コンテンツデータベース158から所与のバージョンのための構造化コンテンツおよび/または他のコンテンツを取得すること、によって、所与の対話型ダイアログアプリケーションの所与の調整済バージョンを実行することができる。ダイアログモジュール126は、次に、所与の対話型ダイアログアプリケーションのための固定コード、および調整済バージョンのための調整済コンテンツを利用して所与の調整済バージョンを実行することができる。
【００４７】
対話型ダイアログアプリケーションの調整済バージョンを実行する際、ダイアログモジュール126は、複数のダイアログのターンに従事する。各ダイアログのターンにおいて、ダイアログモジュール126は、コンテンツを出力エンジン135に提供することができ、出力エンジン135は、クライアントデバイス106において(可聴、またはグラフィカルに)提示されることになるユーザインターフェース出力としてコンテンツ(またはその変換)を提供することができる。提供された出力は、対話型ダイアログアプリケーション、ならびに構造化コンテンツおよび/またはペルソナ値に基づくことが可能である。その上、多くのダイアログのターンにおいて提供された出力は、(ダイアログのターンおよび/もしくは先のダイアログのターンの)ユーザの発話、ならびに/または先のダイアログのターンのシステム発話(例えば、過去のユーザおよび/もしくはシステム発話に基づいて判断された「ダイアログ状態」)に基づくことが可能である。ダイアログのターンのユーザの発話は、入力処理エンジン112によって処理され、提供することになる応答コンテンツを判断する際にダイアログモジュール126によって利用される入力処理エンジン122から出力されることが可能である。出力の多くのインスタンスが、対話型ダイアログアプリケーションおよび構造化コンテンツに基づくことになるが、出力のいくつかのインスタンスは、構造化コンテンツを参照せず、対話型ダイアログアプリケーションに基づくことが可能であるということに留意されたい。例えば、対話型ダイアログアプリケーションは、固定コードだけを利用して、および/または作成者によって提供されない他のコンテンツを参照しながら、様々なユーザ入力への応答を可能にする固定コードを含むことができる。つまり、調整済バージョンの実行中の多くのダイアログのターンが、提供された構造化コンテンツによって影響を受けることになるが、いくつかのダイアログのターンは、影響を受けない。
【００４８】
いくつかの実装形態において、対話型ダイアログアプリケーションの調整済バージョンを実行する際に、ダイアログモジュール126は、追加および/または代替として、所与のユーザの行動に基づいて、所与のユーザのために出力の1つまたは複数のインスタンスをカスタマイズすることができる。所与のユーザの行動は、調整済バージョンの現在の実行の1つまたは複数の以前のダイアログのターンにおける行動、ならびに/あるいは調整済バージョンの先の実行における、および/または他の調整済バージョンおよび/もしくは他の対話型ダイアログアプリケーションの先の実行のための、所与のユーザとの1つまたは複数の対話型ダイアログにおける行動、を含むことができる。例えば、対話型ダイアログアプリケーションが雑学的知識アプリケーションであり、所与のユーザが質問に正しく回答するのに苦心していた場合、1つもしくは複数の出力の中に質問と共にヒントが先を見越して提供されることが可能であり、および/またはもっと「勇気づける」ように、ペルソナ値が調節されることが可能である。例えば、雑学的知識アプリケーションの調整済バージョンを実行する際に間違った回答に応答して提供された出力は、最初は「間違い、間違い、間違い」であり得るが、少なくとも閾値量の質問へのユーザの不正確な回答に応答して、「よい回答ですが正しくありません、再び試行してください」に適応されることが可能である。このような適応は、1つまたは複数のペルソナ値の適応を介して行われることが可能である。別の例として、雑学的知識アプリケーションの調整済バージョンを実行する際に正確な回答に応答して提供された出力は、最初は「正しいです、お疲れ様でした」であるかもしれないが、ユーザのうまい実行、および/またはダイアログのペースの低下に応答して、(例えば、ダイアログのスピードを上げるために)単純に「正しいです」に適応されることが可能である。所与のユーザの行動データ(例えば、点数、エラーの数、過ごした時間、および/または他のデータ)は、調整済バージョンの実行を通じて、ならびに調整済バージョン(および/または他の調整済バージョンおよび/または他のアプリケーション)の実行の複数のインスタンスにわたってさえ、持続されること、ならびに1つまたは複数の出力の適応を通じて所与のユーザの体感をカスタマイズするために利用されること、が可能である。いくつかの実装形態において、調整済バージョンを実行する際のこのようなユーザ行動固有の適応は、ペルソナ値の適応を通じて行われることが可能であり、調整済バージョンの構造化コンテンツおよび/または他の特徴に基づいて既に適応されている1つまたは複数のペルソナ値のさらなる適応を含むことができる。
【００４９】
ペルソナモジュール124は、調整済バージョンの作成者提供構造化コンテンツ、および/または対話型ダイアログアプリケーションの調整済バージョンのための1つもしくは複数のペルソナ値を選択するための他のコンテンツを利用する。ペルソナモジュール124は、調整済バージョンと共に、調整済コンテンツデータベース158にペルソナ値を格納することができる。選択されたペルソナ値は、調整済バージョンの実行時にダイアログモジュール126によって利用される。例えば、選択されたペルソナ値は、調整済バージョンの実行中に1つまたは複数のダイアログのターンにおいて提供されることになる発言出力の文法、トーン、および/または他の態様を選択する際に利用されることが可能である。ペルソナモジュール124は、調整済バージョンのためのペルソナ値を選択する際に様々な基準を利用することができる。例えば、ペルソナモジュール124は、調整済バージョンの構造化コンテンツ、調整済バージョンの起動フレーズ、(例えば、エンティティモジュール128について下記で説明されたような)構造化コンテンツと関連付けられたエンティティ、対応する対話型ダイアログアプリケーション(例えば、タイプクイズ、ジョーク、事実のリスト、または交通機関スケジューラのものである)、等を利用することができる。いくつかの実装形態において、ペルソナモジュール124は、1つまたは複数のペルソナ値を選択する際に、1つまたは複数の選択モデル156を利用することができる。本明細書において説明されるように、ペルソナモジュール124は、調整済バージョンのための1つもしくは複数のペルソナ値を自動的に選択して実行することができ、および/または1つもしくは複数のペルソナ値を選択し、調整済バージョンのための実行の前に作成者による確認を要求することができる。
【００５０】
ペルソナは個別のパーソナリティであり、ペルソナ値のコレクションで構成され、これらのうちのいくつかは、この特定のタイプのペルソナを反映するために、予め定義されることが可能である。例えば、ペルソナは、「女王」、「王」、「教師」、「ロボット」、および/または1つもしくは複数の他の別個のタイプを含むことができる。各ペルソナは、複数のペルソナ値によって表されることが可能であり、それぞれのペルソナ値はペルソナの特定の態様を反映し、個別のペルソナのそれぞれは、それぞれのための既定値を有することが可能である(または割り当てられることが可能な値に限定されることが可能である)。例として、ペルソナは、ペルソナ値のコレクションであり、発言音声特性、文法特性、および言葉によらない音の特性(例えば、クイズの質問ラウンドの間に演奏される音楽)を含むことができる。「女王」ペルソナは、ペルソナ値として、SPEAKING VOICE=(Value 1)、GRAMMAR=(VALUE 2)、およびSOUND=(VALUE 3)を保持することができる。「教師」ペルソナは、ペルソナ値として、SPEAKING VOICE=(VALUE 4)、GRAMMAR=(VALUE 5)、およびSOUND=(VALUE 6)を保持することができる。いくつかの実装形態において、ペルソナは、調整済バージョンのために選択されることが可能であり、対応するペルソナ値は、このペルソナを含むペルソナ値に基づいてセットされることが可能である。例えば、ペルソナ値を選択するための本明細書において説明される技法は、ペルソナを最初に選択すること、この選択されたペルソナとみなされるペルソナ値を識別すること、および調整済バージョンのペルソナ値を適宜セットすることによってペルソナ値を選択することができる。いくつかの実装形態において、ペルソナ値の1つまたは複数は、ペルソナの一部でなくてよく、ペルソナが選択されるときのペルソナとは無関係にセットされることが可能である。例えば、「教師」ペルソナは、「性別」ペルソナ値をセットしなくてよく、「男性」または「女性」を示す性質をもつペルソナ値は、「教師」ペルソナに無関係に割り当てられることが可能である。
【００５１】
エンティティモジュール128は、構造化コンテンツにおいて参照される1つまたは複数のエンティティ、および任意選択として、このような参照エンティティに関する1つまたは複数のエンティティ、を判断するために、受信した構造化コンテンツにおいて提供された用語および/または他のコンテンツを利用する。エンティティモジュール128は、このようなエンティティを判断する際にエンティティデータベース154(例えば、知識グラフ)を利用することができる。例えば、構造化コンテンツは、用語「大統領」、「ジョージワシントン」、および「南北戦争」を含むことができる。エンティティモジュール128は、用語のそれぞれと関連付けられたエンティティを、エンティティデータベース154から識別することができる。例えば、エンティティモジュール128は、「ジョージワシントン」がこのエンティティのエイリアスであることに基づいて、米国初代大統領と関連付けられたエンティティを識別することができる。エンティティモジュール128は、「ジョージワシントン」が「米国大統領」エンティティとの「グループに属す」関係を有していることに基づいて、「米国大統領」と関連付けられたエンティティ等の、このような参照エンティティに関する1つまたは複数の追加エンティティを任意選択として識別することができる。
【００５２】
エンティティモジュール128は、インデックス付加モジュール122および/またはペルソナモジュール124に、判断されたエンティティを提供することができる。インデックス付加モジュール122は、構造化コンテンツに基づいて判断された1つまたは複数のエンティティに基づいて、構造化コンテンツに対応する調整済バージョンにインデックスを付けることができる。ペルソナモジュール124は、調整済バージョンのための1つまたは複数のペルソナ値を選択する際にエンティティの1つまたは複数を利用することができる。
【００５３】
ここで図3を参照すると、動的対話型ダイアログアプリケーションの調整済バージョンを生成するリクエストに対して、ペルソナ値がどのように選択されることが可能であるかについての例が提供される。コンテンツ入力エンジン130は、調整するための対話型ダイアログアプリケーションの指示171を受信する。これは、例えば、クイズアプリケーションの指示、ジョークアプリケーションの指示、または交通機関クエリアプリケーションの指示であることが可能である。指示は、作成者が対話型ダイアログアプリケーションに対応するグラフィカル要素を選択すること、対話型ダイアログアプリケーションに対応する用語を話すこと、またはそうでなければ、対話型ダイアログアプリケーションに構造化コンテンツを提供したいという要望を指示すること、に応答して受信されることが可能である。さらに、コンテンツ入力エンジン130は、構造化コンテンツを受信する。例えば、クイズアプリケーションの指示171に対して、コンテンツ入力エンジン130は、図2において示されたコンテンツを含むドキュメントを受信することができる。さらに、コンテンツ入力エンジン130は、起動フレーズ173を受信する。例えば、図2の構造化コンテンツに対して、作成者は、「大統領の雑学的知識」についての指示フレーズ173を提供することができる。
【００５４】
コンテンツ入力エンジン130は、指示、構造化コンテンツのうちの少なくともいくつか、および/または起動フレーズ174を、ペルソナモジュール124および/またはエンティティモジュール128に提供する。エンティティモジュール128は、指示、構造化コンテンツのうちの少なくともいくつか、および/または起動フレーズ174を利用して、これらの項目の1つまたは複数において参照されるエンティティ175を、エンティティデータベース154を使用して識別し、エンティティ175をペルソナモジュール124に提供する。
【００５５】
ペルソナモジュール124は、1つまたは複数のペルソナ値176を選択するために、選択モデル、ならびにデータ174および/または175のうちの少なくとも1つを使用する。例えば、ペルソナモジュール124は、機械学習モデルである選択モデルのうちの1つを利用してデータ174および/または175を処理し、処理に基づいて、ペルソナ値176を示す出力を生成することができる。例えば、出力は、複数の個別のペルソナのそれぞれの確率を示すことができ、これらのペルソナのうちの1つは、確率に基づいて選択され(例えば、「女王」ペルソナ)、ペルソナ値176は、このペルソナとみなされるペルソナ値のコレクションであることが可能である。別の例として、出力は、複数のペルソナ値のそれぞれの確率、および確率に基づいて選択されたこれらのペルソナ値のサブセット、を含むことができる。
【００５６】
例として、小学校クイズのためのものである構造化コンテンツに対して、ペルソナモジュール124は、「より遅い」である発言出力を提供すること、質問に対する応答のためのオプションとして全ての可能な不正確な回答をより少なく提供すること、不正確な回答に対してでさえ応答出力として奨励フィードバックを提供すること、および/または子供に知られているはずの用語に単語の使用を限定することを、対応する調整済バージョンが行うようにするペルソナ値を選択することができる。例えば、選択されたペルソナ値は、不正確な応答が受信されたときに応答コンテンツとして「近いが完全ではない。もう一度試してください。」が提供されるようにすることができ、その一方で、大人の聴衆のためのものである構造化コンテンツに対して、ペルソナモジュール124は、不正確な回答が受信されたときに「間違い、間違い、間違い」という出力が提供されるようにするペルソナ値を代わりに選択することができる。
【００５７】
いくつかの実装形態において、ペルソナモジュール124は、追加および/または代替として、調整済バージョンが実行されている所与のユーザの属性に基づいてペルソナ値を選択することができる。例えば、「大人」の属性を保持する所与のユーザに対して調整済バージョンが実行されているとき、ペルソナモジュール124は、このような属性(および任意選択として、追加属性)に基づいてペルソナ値を選択することができる。これらおよび他の手法において、所与の調整済バージョンのペルソナ値は、「ユーザ毎」ベースで適応されることが可能であり、このことにより、調整済アプリケーションの各バージョンを、各バージョンが実行されているユーザに合わせて調整する。機械学習モデルは任意選択として訓練され、調整済バージョンが実行されているユーザの属性に基づいて、このようなペルソナ値の選択時に利用されることが可能である。例えば、機械学習モデルは、調整済バージョンが実行されているユーザによる、明示的な選択に基づく訓練の例を利用することができ、ここで、明示的な選択は、調整済バージョンを実行する際に、このようなユーザが利用されることを望む1つまたは複数のペルソナ値を指示する。訓練の例は、任意選択として、調整済バージョンの構造化コンテンツに基づくことが可能である。例えば、機械学習モデルは、調整済バージョンが実行されているユーザの属性に基づいて、ならびに構造化コンテンツおよび/または調整済バージョンの他の特徴に基づいて、1つまたは複数のペルソナ値を予測するために訓練されることが可能である。
【００５８】
ペルソナ値176は、構造化コンテンツ172、指示171、および/または起動フレーズと共に、調整済コンテンツデータベース158に格納されることが可能である。一括して、このような値は、対話型ダイアログアプリケーションの調整済バージョンを定義することができる。その後のユーザは、自然言語の発言を自動アシスタントに提供することができ、自動アシスタントは、次に、自然言語入力内の用語を識別し、この用語が、調整済バージョンの起動フレーズ173に対応することを識別することができる。例えば、起動エンジン160(図1)は、もしあれば、対話型ダイアログアプリケーションの複数の以前に投入された調整済バージョンのうちのどれが起動されているかを判断するために、受信したユーザインターフェース入力を処理することができる。いくつかの実装形態において、アプリケーションの調整済バージョンが生成されるとき、作成者は、アプリケーションを起動するために将来において利用されることになる起動フレーズを提供することができる。いくつかの実装形態において、1つまたは複数のエンティティは、構造化コンテンツに関係があるものとして識別されることが可能であり、起動エンジン160は、ユーザ入力および関連エンティティに基づいて、調整済バージョンの1つまたは複数を選択することができる。
【００５９】
図4は、調整済バージョンの構造化コンテンツおよびペルソナ値に基づいて、その後のユーザのための対話型ダイアログアプリケーションの調整済バージョンがどのように実行されるかについての例を示す流れ図である。便宜上、図4の流れ図の動作は、動作を行うシステムを参照しながら説明される。このシステムは、様々なコンピュータシステムの様々な構成要素を含むことができる。その上、図4の方法の動作は特定の順序で示されているが、このことは、限定していることを意味するものではない。1つまたは複数の動作が再配列されること、省略されること、または追加されることが可能である。
【００６０】
ブロック405において、自然言語入力がユーザから受信される。自然言語は、1つまたは複数の特性を図1の入力処理エンジン112と共有する構成要素によって受信されることが可能である。
【００６１】
ブロック410において、1つまたは複数の用語が自然言語入力の中で識別される。例えば、1つまたは複数の特性を入力処理エンジン112と共有する構成要素によって、用語が識別されることが可能である。さらに、用語の1つまたは複数と関連付けられたエンティティが、任意選択として識別されることが可能である。例えば、エンティティは、1つまたは複数の特性をエンティティモジュール128と共有する構成要素によってエンティティデータベースから判断されることが可能である。
【００６２】
ブロック415において、以前に生成された調整済バージョンは、自動的に選択されたペルソナ値を保持し、自然言語入力における用語および/またはエンティティに基づいて識別される。いくつかの実装形態において、以前に生成された調整済バージョンは、調整済バージョンと関連付けられた起動フレーズにマッチする自然言語入力に基づいて識別されることが可能である。いくつかの実装形態において、調整済バージョンは、本明細書においてより詳細に説明されるように、自然言語入力のセグメントと、調整済バージョンと関連付けられた1つまたは複数のエンティティとの間の識別関係に基づいて識別されることが可能である。
【００６３】
ブロック420において、プロンプトがダイアログモジュール126によって生成される。プロンプトは、次に、出力エンジン135を介してユーザに提供されることが可能である。例えば、ダイアログモジュール126は、ペルソナ値および/または構造化コンテンツに基づいてテキストプロンプトを生成し、このテキストを出力エンジン135に提供することができ、出力エンジン135は、テキストを発言に変換し、この発言をユーザに提供することができる。プロンプトを生成するとき、ダイアログモジュール126は、ペルソナ値に基づいて文法、単語の使用法、および/またはプロンプトの他の特性を変えることができる。さらに、ダイアログモデル126による生成されたテキストの発言バージョンを提供するとき、出力エンジン135は、アプリケーションの起動された調整済バージョンのペルソナ値の1つまたは複数に基づいて、出力された発言のトーン、性別、話す速さ、および/または他の特性を変えることができる。ブロック420のいくつかの実装形態において、プロンプトは、最初の反復において調整済バージョンに常に提供される「開始」プロンプトであることが可能である。
【００６４】
ブロック425において、ユーザの自然言語応答が受信される。自然言語応答は、特性を入力処理エンジン112と共有する構成要素によって分析されることが可能であり、入力処理エンジン112は、次に、入力から1つまたは複数の用語および/またはエンティティを判断することができる。
【００６５】
ブロック430において、応答コンテンツが提供される。応答コンテンツは、ブロック425の受信された入力、調整済バージョンの構造化コンテンツ、および調整済バージョンのペルソナ値に基づいて生成されることが可能である。
【００６６】
応答コンテンツが提供された後、ブロック425の別の反復においてユーザの追加の自然言語応答が受信されること、およびブロック430の別の反復において追加の応答コンテンツが再び生成され、提供されることが可能である。これは、調整済バージョンが完成するまで、調整済バージョンとの対話をやめたいという要望をブロック425における自然言語応答のインスタンスが指示するまで、および/または他の条件が満たされるまで、継続することができる。
【００６７】
図5は、本明細書において開示された実装形態による方法の別の例を示す流れ図である。図5は、ペルソナ値を選択する際の利用のために機械学習モデル(例えば、ニューラルネットワークモデル)を訓練する例を示す。便宜上、図5の流れ図の動作は、動作を行うシステムを参照しながら説明される。本システムは、様々なコンピュータシステムの様々な構成要素を含むことができる。その上、図5の方法の動作は特定の順序で示されているが、これは、限定していることを意味するものではない。1つまたは複数の動作が再配列されること、省略されること、または追加されることが可能である。
【００６８】
ブロック552において、システムは、対話型ダイアログアプリケーションの調整済バージョンの構造化コンテンツおよびペルソナ値を選択する。1つの例として、構造化コンテンツおよびペルソナ値は、データベース158から選択されることが可能であり、ペルソナ値は、対応する作成者によって明示的に指示されていた可能性があり、および/または対応する作成者によって所望のペルソナ値として確認されていた可能性がある。
【００６９】
ブロック554において、システムは、構造化コンテンツおよびペルソナ値に基づいて訓練インスタンスを生成する。ブロック554は、サブブロック5541および5542を含む。
【００７０】
サブブロック5541において、システムは、構造化コンテンツに基づいて、および任意選択として、調整済バージョンが対応する対話型ダイアログアプリケーションの指示に基づいて、訓練インスタンスの訓練インスタンス入力を生成する。いくつかの実装形態において、システムは、追加または代替として、構造化コンテンツに基づいて判断されたエンティティに基づいて、訓練インスタンスの訓練インスタンス入力を生成する。1つの例として、訓練インスタンス入力は、対話型ダイアログアプリケーションの指示、ならびに、タイトルおよび最初のX個の用語、またはX個の最も頻繁に発生する用語等の、構造化コンテンツからの用語のサブセット、を含むことができる。例えば、訓練インスタンス入力は、対話型ダイアログアプリケーションを指示する値と共に、最も高いTFIDF値を有する構造化コンテンツの50個の用語を含むことができる。別の例として、訓練インスタンス入力は、対話型ダイアログアプリケーションの指示、ならびに構造化コンテンツの用語(および/または他のコンテンツ)のいくつか(または全て)の埋込みを含むことができる。例えば、構造化コンテンツの用語の埋込みは、別個のモデルを利用して生成されたWord2Vecの埋込みであることが可能である。
【００７１】
サブブロック5542について、システムは、ペルソナ値に基づいて訓練インスタンスの訓練インスタンス出力を生成する。例えば、訓練インスタンス出力は、X個の出力を含むことができ、それぞれが個別のペルソナを表す。所与の訓練インスタンスに対して、訓練インスタンス出力は、ブロック552のペルソナ値が従う個別のペルソナに対応する出力に対して「1」(または他の「正の」値)を、および他の全ての出力に対して「0」(または他の「負の」値)を、含むことができる。別の例として、訓練インスタンス出力は、Y個の出力を含むことができ、それぞれがペルソナ特性を表す。所与の訓練インスタンスに対して、訓練インスタンス出力は、Y個の出力のそれぞれについて、出力によって表されるペルソナ特性に対する、ブロック552のペルソナ値の、ペルソナ値を示す値を含むことができる。例えば、Y個の出力のうちの1つは、「フォーマリズム」の程度を示すことができ、この出力に対する訓練インスタンス出力は、ブロック552の対応するペルソナ値が「インフォーマル」である場合、「0」(または他の値)であり、ブロック552の対応するペルソナ値が「フォーマル」である場合、「1」(または他の値)であることが可能である。
【００７２】
ブロック556において、システムは、処理するべき対話型ダイアログアプリケーションの追加の調整済バージョンがあるかどうかを判断する。ある場合、システムは、追加の調整済バージョンからの構造化コンテンツおよびペルソナ値を使用して、ブロック552および554を繰り返す。
【００７３】
ブロック558〜566は、ブロック552、554、および556の複数の反復に続いて、または並行して行われることが可能である。
【００７４】
ブロック558において、システムは、ブロック554の反復において生成された訓練インスタンスを選択する。
【００７５】
ブロック560において、システムは、機械学習モデルへの入力として訓練インスタンスを適用する。例えば、機械学習モデルは、ブロック5541において生成された訓練インスタンス入力の次元に対応する入力次元を有することができる。
【００７６】
ブロック562において、システムは、適用した訓練インスタンス入力に基づいて機械学習モデルによって出力を生成する。例えば、機械学習モデルは、ブロック5541において生成された訓練インスタンス出力の次元に対応する出力次元を有することができる(例えば、出力の各次元は、ペルソナ特性に対応することが可能である)。
【００７７】
ブロック564において、システムは、生成された出力および訓練インスタンス出力に基づいて機械学習モデルを更新する。例えば、システムは、ブロック562において生成された出力、および訓練インスタンス出力に基づいて、エラーを判断すること、ならびに機械学習モデルによってエラーを逆伝搬させることができる。
【００７８】
ブロック566において、システムは、1つまたは複数の追加の未処理の訓練インスタンスがあるかどうかを判断する。ある場合、システムはブロック558に戻り、追加の訓練インスタンスを選択し、その後、追加の未処理の訓練インスタンスに基づいてブロック560、562、および564を行う。いくつかの実装形態において、ブロック566において、システムは、1つまたは複数の訓練基準が満たされた(例えば、エポックの閾値数が発生した、および/または訓練の閾値の持続期間が発生した)場合、いずれの追加の未処理の訓練インスタンスも処理しないことを判断することができる。非バッチ学習技法について方法500が説明されるが、バッチ学習が、追加および/または代替として、利用されることが可能である。
【００７９】
図5の方法に従って訓練された機械学習モデルは、その後、対話型ダイアログアプリケーションの調整済バージョンの作成者によって指示された構造化コンテンツおよび/または他のコンテンツに基づいて、調整済バージョンのためのペルソナ値を予測するために利用されることが可能である。例えば、図2の構造化コンテンツは、モデルへの入力として提供されることが可能であり、パーソナリティのペルソナパラメータは、確率0.8の「教師」および確率0.2の「女王」の値であることが可能である。このことは、女王パーソナリティよりも教師パーソナリティについて提供されるクイズアプリケーションにユーザが興味をもつはずであるという可能性がより高いということを、構造化コンテンツに基づいて示すことが可能である。
【００８０】
図5は、生成され、利用されることが可能なペルソナ選択モデルの1つの例について説明される。しかし、本明細書において説明される代替等の1つまたは複数のペルソナ値を選択する際に、追加および/または代替のペルソナ選択モデルが利用されることが可能である。このような追加および/または代替のペルソナ選択モデルは、任意選択として、図5について説明されたものとは異なる訓練インスタンスに基づいて訓練された機械学習モデルであることが可能である。
【００８１】
1つの例として、選択モデルは、様々なユーザによるペルソナ値の過去の明示的な選択に基づいて生成されることが可能であり、このような選択モデルは、追加または代替として、特定のペルソナ値を選択する際に利用されることが可能である。例えば、いくつかの実装形態において、複数のペルソナ値の指示がユーザに提示されることが可能であり、複数のペルソナ値のうちの1つのペルソナ値のユーザ選択が、複数の値から1つのペルソナ値を選択するために利用されることが可能である。複数のユーザのこのような明示的な選択は、選択モデルを生成するために利用されることが可能である。例えば、上述のものに類似の訓練インスタンスが生成されることが可能であるが、各訓練インスタンスの訓練インスタンス出力は、ユーザによって選択されたペルソナ値に基づいて生成されることが可能である。例えば、訓練インスタンスに対して、選択されたパーソナリティペルソナ値(「教師」パーソナリティ等)に対応する出力次元に対して「1」(または他の「正の値」)が利用されることが可能であり、他の全てのペルソナ値に対応する出力次元のそれぞれに対して「0」(または他の「負の」値)が利用されることが可能である。また、例えば、訓練インスタンスに対して、選択されたペルソナ値に対応する出力次元に対して「1」(または他の「正の値」)が利用されることが可能であり、ユーザに提示されるが選択されない他のペルソナ値に対応する出力次元に対する「0.5」(または他の「中間値」)が利用されることが可能であり、他の全てのペルソナ値に対応する出力次元のそれぞれに対して「0」(または他の「負の」値)が利用されることが可能である。この手法および他の手法において、ユーザによるペルソナ値の明示的な選択が、1つまたは複数のペルソナ選択モデルを生成する際に活用されることが可能である。
【００８２】
図1について既に述べたように、インデックス付加モジュール122は、ユーザから構造化コンテンツを受信し、インデックス152において、構造化コンテンツに関する1つまたは複数のエンティティに基づいて、対応する調整済バージョンにインデックスを付ける。関連エンティティの指示によってアプリケーションの調整済バージョンが格納された後、その後のユーザの自然言語入力は構文解析されることが可能であり、構文解析された用語に関する用語およびエンティティは、エンティティモジュール128によってエンティティデータベース154において識別されることが可能である。ユーザが作成したアプリケーションにインデックスを付ける際に柔軟性を許容することによって、ユーザおよび/またはその後のユーザは、正確な起動フレーズを知っていることを必要とされない。代わりに、インデックス付加モジュール122は、例えば、サーブされたコンテンツの所望の主題を指示する自然言語入力を提供することによって、ユーザがコンテンツを「発見」できるようにする。
【００８３】
実施例のように、ユーザは、州都に関する質問を含むクイズアプリケーションに構造化コンテンツを提供することができる。したがって、回答(正確と不正確の両方)は都市の名前であることが可能であり、質問はそれぞれ州名を含む(または逆もまた同様)。構造化コンテンツは、前述のように、コンテンツ入力エンジン130によって受信されることが可能である。さらに、構造化コンテンツは、動的ダイアログアプリケーションの指示を、および任意選択として、将来、アプリケーションの調整済バージョンにおけるコンテンツを起動するための起動フレーズを、提供されることが可能である。構造コンテンツを構文解析した後、コンテンツ入力エンジン130は、構文解析したコンテンツをエンティティモジュール128に提供することができ、エンティティモジュール128は、次に、エンティティデータベース154における1つまたは複数の関連エンティティを識別することができる。実施例に戻り、図6を参照すると、複数のノードのグラフが提供される。ノードのそれぞれは、エンティティに対するエイリアスを含み、エンティティデータベース154の一部を表す。ノードは、「サクラメント」610、「コロンバス」645、「オールバニ」640、および「オリンピア」635を含む州都を含む。さらに、グラフは、関連エンティティを表すノードを含む。例えば、州都ノードの全てが、「州都の都市」ノード625に接続される。
【００８４】
州都クイズアプリケーションに関する構造化コンテンツが受信されるとき、エンティティモジュール128は、構造化コンテンツに関するグラフにおけるノードを識別することができる。例えば、構造化コンテンツは、「カリフォルニア州の首都はどこですか」という質問プロンプトを、「サクラメント」および「ロサンゼルス」という可能性のある回答と共に含むことができる。グラフの対応するノードが次に識別される。エンティティモジュール128は、次に、対応するノードの指示を、および/またはノードに関するエンティティの指示を、インデックス付加モジュール122に提供することができる。例えば、州都クイズは、追加として、質問「ニューヨーク州の首都はどこですか」を、「オールバニ」という回答選択肢と共に含むことができ、エンティティモジュール128は、「サクラメント」610および「オールバニ」640に対するノードにリンクする一般的なカテゴリとして「州都の都市」に対するノードを識別することができる。
【００８５】
いくつかの実装形態において、エンティティモジュール128は、構造化コンテンツのうちのいくつかに関するノードを識別することしかできない。例えば、クイズアプリケーションにおいて、エンティティモジュール128は、不正確なエンティティを構造化コンテンツと関連付けるのを回避するために、不正確な回答に関するノードではなく、正確な回答に関するノードを識別することしかできない。いくつかの実装形態において、エンティティモジュール128は、ユーザによって提供される場合、起動フレーズに関するエンティティをさらに識別することができる。例えば、ユーザは、「首都の都市」という起動フレーズを提供することができ、エンティティモジュール128は、「州都の都市」625を識別することができる。
【００８６】
いくつかの実装形態において、構造化コンテンツとエンティティの1つまたは複数との間の関係は重みを付けられることが可能である。例えば、エンティティモジュール128は、構造化コンテンツにおける不正確な回答に関するエンティティよりも関連していることを示す性質をもつ点数によって、クイズアプリケーションにおける正確な回答から識別されたエンティティに重みを割り当てることができる。さらに、エンティティモジュール128は、構造化コンテンツとエンティティの両方に関するエンティティの数に基づいて、カテゴリまたは他のエンティティとの関係に重みを付けることができる。例えば、「サクラメント」610、「オリンピア」635、および「オールバニ」640を含む構造化コンテンツについて、エンティティモジュール128は、構造化コンテンツに関するエンティティのより多くのものが「州都の都市」625に関するものなので、「州都の都市」625との関係に「米国西部の都市」630より大きい重みを付けることができる。
【００８７】
インデックス付加モジュール122は、次に、エンティティの1つまたは複数によってアプリケーションの調整済バージョンにインデックスを付ける。いくつかの実施形態において、インデックス付加モジュール122は、全ての識別されたエンティティによってアプリケーションの調整済バージョンにインデックスを付けることができる。いくつかの実装形態において、インデックス付加モジュール122は、閾値を超過する関係点数を有するこれらのエンティティだけによって調整済バージョンにインデックスを付けることができる。いくつかの実装形態において、インデックス付加モジュール122は、アプリケーションの調整済バージョンにインデックスを付ける際に、エンティティのどれを使用するべきかを判断するために、1つまたは複数の訓練モデルを利用することができる。
【００８８】
入力処理エンジン112は、ユーザから自然言語入力を受信し、調整済バージョンでインデックスを付けられたエンティティに基づいてユーザに提供するための対話型ダイアログアプリケーションの調整済バージョンを識別することができる。図7を参照すると、自然言語入力181は、前述のように入力処理エンジン112によって受信される。入力処理エンジン112は、入力の中の1つまたは複数の用語を識別するために入力を構文解析する。例えば、ユーザは、フレーズ「州都クイズを私に示してください」を話すことができ、入力処理エンジン112は、構文解析された入力181として「州」、「州都」、および「クイズ」という用語を識別することができる。構文解析された入力181のうちのいくつかは、エンティティモジュール128に提供されることが可能であり、エンティティモジュール128は、次に、エンティティデータベースにおける1つまたは複数の関連エンティティ183を識別する。いくつかの実装形態において、エンティティモジュール128は、構文解析された入力181と識別されたエンティティとの間の関連付けの数に基づいて、識別されたエンティティに重みを割り当てることができる。
【００８９】
インデックス付加モジュール122は、関連エンティティ183(および割り当てられた場合、関連付けられた重み)を受信し、関連エンティティ183に含まれるエンティティによってインデックスを付けられたアプリケーションの1つまたは複数の調整済バージョン184を識別する。例えば、エンティティモジュール128は、関連エンティティに対するエイリアスとして「州都の都市」を識別することができ、インデックス付加モジュール122は、ユーザに提供するためのバージョンとして調整済バージョンの例を識別することができる。いくつかの実装形態において、インデックス付加モジュール122は、アプリケーションの複数の潜在バージョンを識別し、このバージョンのうちの1つを、エンティティモジュール128によって関連エンティティ183に割り当てられた重みに基づいて選択することができる。
【００９０】
いくつかの実装形態において、インデックス付加モジュール122は、複数の潜在バージョンを識別することができ、複数の潜在バージョンからのコンテンツを含むバージョンをユーザに提供することができる。例えば、インデックス付加モジュール122は、「州都の都市」クイズアプリケーションを識別することができ、第2のバージョンと関連付けられたエンティティおよび関連エンティティに基づいて、調整済コンテンツデータベース158における第2の「州都の都市」クイズをさらに識別することができる。インデックス付加モジュール122は、任意選択として、このような識別時にインデックス152(図1)を利用することができる。したがって、ユーザは、無関係なユーザが2つのバージョンを作成したとしても、単一のバージョンとしてシームレスに提示された複数のソースからの構造化コンテンツを含む複合アプリケーションを提供されることが可能である。
【００９１】
図8は、ユーザ101、音声対応クライアントデバイス806、およびユーザ101と、対話型ダイアログアプリケーションの調整済バージョンにアクセスできるクライアントデバイス806と関連付けられた自動アシスタントとの間で発生する可能性のあるダイアログの例を示す。クライアントデバイス806は、1つまたは複数のマイクロフォンおよび1つまたは複数のスピーカを含む。図1の自動アシスタント110の1つまたは複数の態様は、クライアントデバイス806上で、および/またはクライアントデバイス806とのネットワーク通信状態にある1つもしくは複数のコンピューティングデバイス上で、実行されることが可能である。したがって、説明を簡単にするために、自動アシスタント110が図8の説明において参照される。
【００９２】
ユーザ入力880Aは、動的な対話型クイズアプリケーションの調整済バージョンのための起動フレーズである。入力は、入力処理エンジン112によって受信され、入力処理エンジン112は、調整済アプリケーションに関するものとして「クイズ」を識別する。したがって、入力処理エンジン112は、上述のように、構文解析された入力を起動エンジン160に提供する。いくつかの実装形態において、起動エンジン160は、明示的な起動フレーズを入力が含んでいないと判断することができ、1つまたは複数の入力エンティティを判断するための入力をインデックス付加モジュール122に提供し、提供された入力によって起動されることが可能な、関連エンティティによってインデックスを付けられたバージョンを識別することができる。
【００９３】
出力882Aにおいて、プロンプトが提供される。プロンプトは「教師」ペルソナにおいて提供され、ユーザを「クラス(Class)」における生徒と呼ぶ。出力882Bにおいて、言葉によらない音(すなわち、ベルの鳴る音)がプロンプトに含まれ、追加として、「教師」ペルソナの一部であること、および/または1つもしくは複数のペルソナ値に関するものであることが可能である。プロンプトは、質問の形の構造化コンテンツをさらに含む。
【００９４】
ユーザ入力880Bにおいて、ユーザは回答を提供する。入力処理エンジン112は入力を構文解析し、構文解析された入力をダイアログモジュール126に提供する。ダイアログモジュール126は、入力が正しいこと(すなわち、構造化コンテンツにおける正確な回答にマッチすること)を検証し、ユーザに提供するために新しいダイアログのターンを生成する。さらに、出力882Cは、構造化コンテンツ、ならびにアプリケーションのバージョンと関連付けられたペルソナまたはペルソナ値に基づいて生成されたダイアログ、を含む。ユーザは、ユーザ入力880Cにおいて不正確に応答し、ダイアログモジュール126によって生成された次の出力882Dが、不正確な回答に気づかせる。代替の例として、クイズが幼児に対するものである可能性がより高いことを構造化コンテンツが示していた場合、出力882Dは、より勇気づける単語を提供すること、第2の推測を許容すること、および/または図8に示されたダイアログの代わりにヒントをユーザに提供すること、を行っていた可能性がある。ユーザ入力880Fにおいて、ユーザは、アプリケーションを終了したいという要望を示す。このことは、標準起動フレーズ、および/または調整済アプリケーションに入力を送信するのを中断することを自動アシスタントに指示するいくつかのフレーズのうちの1つであることが可能である。
【００９５】
図9は、ユーザ101、音声対応クライアントデバイス906、および、ユーザ101と、図8のダイアログのペルソナ値とは異なる1つまたは複数のペルソナ値を有するが、同じ構造化コンテンツを有する、対話型ダイアログアプリケーションの調整済バージョンにアクセスできるクライアントデバイス906と関連付けられた自動アシスタントとの間で発生する可能性のあるダイアログの別の例を示す。ユーザ入力980Aにおいて、ユーザは、図8におけるダイアログと同じ手法で調整済バージョンを起動する。
【００９６】
出力982Aにおいて、プロンプトが提供される。このダイアログにおいて、調整済バージョンは、代わりに「教師」ペルソナと関連付けられ、以前の例における「クラス」とは対称的にユーザに「臣下(Subject)」と呼びかける。ダイアログモジュール126は、この出力においてユーザのためのタイトルが必要とされることを識別すること、アプリケーションのバージョンと関連付けられたペルソナ値に基づいて、「女王」ペルソナがユーザに対する名前として「臣下」を利用すると判断することができる。出力982Bにおいて、異なる言葉によらない音(すなわち、トランペット)がプロンプトに含まれ、追加として、「女王」ペルソナの一部であること、および/または1つもしくは複数のペルソナ値に関するものであることが可能である。ダイアログモジュール126は、関連付けられたペルソナ値の1つまたは複数に応じて、プロンプトの中に異なる音を挿入することができる。プロンプトは、質問の形の同じ構造化コンテンツをさらに含む。
【００９７】
ユーザ入力980Bにおいて、ユーザが回答を提供する。これは、図8におけるこのユーザ入力ステップの中で以前に提供されたものと同じ回答であり、ダイアログモジュール126は、同じ手法で応答を取り扱う。さらに、出力982Cは、構造化コンテンツ、ならびにアプリケーションのバージョンと関連付けられたペルソナまたはペルソナ値に基づいて生成され、一方で、調整済バージョンのために選択されたペルソナ値の1つまたは複数にマッチするように調整されたダイアログを含む。ユーザは、ユーザ入力980Cにおいて不正確に応答し、ダイアログモジュール126によって生成された次の出力982Dが、図8における用語とは異なる用語を使用するが、不正確な回答に気づかせる。ユーザ入力980Fにおいて、ユーザは、アプリケーションを終わらせたいという要望を示す。これは、標準起動フレーズ、および/または調整済アプリケーションへの入力を送信するのを中断することを自動アシスタントに指示するいくつかのフレーズのうちの1つ、であることが可能である。
【００９８】
雑学的知識の対話型ダイアログアプリケーションについて上述のいくつかの例が説明されるが、様々なタイプの対話型ダイアログアプリケーションと共に様々な実装形態が利用されることが可能であるということが理解される。例えば、いくつかの実装形態において、提供される構造化コンテンツは、バスの時刻表、列車の時刻表、または他の交通機関の時刻表であることが可能である。例えば、構造化コンテンツは、複数の停留所(例えば、交差点)、およびこれらの停留所のそれぞれの時刻を含むバスの時刻表であることが可能である。対話型ダイアログアプリケーションは、会話型の手法で様々なクエリに対する応答を可能にする固定コードを含むことができる。バスの時刻表に基づく調整済バージョンを実行する際に、対話型ダイアログアプリケーションは、様々なクエリに応答してどのタイプの応答を提供するかを判断する際に固定コードを利用すること、および様々なクエリへの様々な応答において提供することになるコンテンツのうちの少なくともいくつかを判断する際に構造化コンテンツを利用することができる。
【００９９】
図10は、本明細書において説明される技法の1つまたは複数の態様を行うために任意選択として利用されることが可能なコンピューティングデバイス1010の例のブロック図である。いくつかの実装形態において、デバイス106、自動アシスタント110、および/または他の構成要素の1つまたは複数は、コンピューティングデバイス1010の例の1つまたは複数の構成要素を含むことができる。
【０１００】
コンピューティングデバイス1010は、典型的には、バスサブシステム1012を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ1014を含む。これらの周辺デバイスは、例えばメモリサブシステム1025およびファイルストレージサブシステム1026を含むストレージサブシステム1024、ユーザインターフェース出力デバイス1020、ユーザインターフェース入力デバイス1022、ならびにネットワークインターフェースサブシステム1016を含むことができる。入出力デバイスは、コンピューティングデバイス1010とのユーザ対話を可能にする。ネットワークインターフェースサブシステム1016は、外部ネットワークへのインターフェースを提供し、他のコンピューティングデバイスにおける対応するインターフェースデバイスに連結される。
【０１０１】
ユーザインターフェース入力デバイス1022は、キーボード、(マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレット等の)ポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム等のオーディオ入力デバイス、マイクロフォン、および/または他のタイプの入力デバイスを含むことができる。全体として、用語「入力デバイス」の使用は、コンピューティングデバイス1010に、または通信ネットワークに、情報を入力するための全ての可能なタイプのデバイスおよび方式を含むことを意図するものである。
【０１０２】
ユーザインターフェース出力デバイス1020は、ディスプレイサブシステム、プリンタ、ファックス機、または(オーディオ出力デバイス等の)非視覚ディスプレイを含むことができる。ディスプレイサブシステムは、陰極線管(CRT)、(液晶ディスプレイ(LCD)等の)フラットパネルデバイス、プロジェクションデバイス、または可視画像を作成するための他のいくつかのメカニズムを含むことができる。ディスプレイサブシステムは、オーディオ出力デバイス等を介して非視覚ディスプレイを提供することもできる。全体として、用語「出力デバイス」の使用は、コンピューティングデバイス1010からユーザ、または別の機械もしくはコンピューティングデバイスに、情報を出力するための全ての可能なタイプのデバイスおよび方式を含むことを意図するものである。
【０１０３】
ストレージサブシステム1024は、本明細書において説明されるモジュールのいくつかまたは全ての機能を提供するプログラム構造体およびデータ構造体を格納する。例えば、ストレージサブシステム1024は、本明細書において説明される様々な方法の選択された態様を行うためのロジックを含むことができる。
【０１０４】
これらのソフトウェアモジュールは、一般に、プロセッサ1014によって単独で、または他のプロセッサと組み合わせて実行される。ストレージサブシステム1024において使用されるメモリ1025は、プログラム実行中の命令およびデータの格納のためのメインランダムアクセスメモリ(RAM)1030、ならびに固定命令が格納されるリードオンリメモリ(ROM)1032を含むいくつかのメモリを含むことができる。ファイルストレージサブシステム1026は、プログラムおよびデータファイルのための永続ストレージを提供することができ、ハードディスクドライブ、関連付けられた取外し可能媒体を伴うフロッピーディスクドライブ、CD-ROMドライブ、光学ドライブ、または取外し可能媒体カートリッジを含むことができる。一定の実装形態の機能を実行するモジュールは、ストレージサブシステム1024に、またはプロセッサ1014によってアクセス可能な他の機械に、ファイルストレージサブシステム1026によって格納されることが可能である。
【０１０５】
バスサブシステム1012は、コンピューティングデバイス1010の様々な構成要素およびサブシステムに、意図したように互いに通信させるためのメカニズムを提供する。バスサブシステム1012は、単一のバスとして概略的に示されているが、バスサブシステムの代替実装形態は、複数のバスを使用することができる。
【０１０６】
コンピューティングデバイス1010は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または他の任意のデータ処理システムもしくはコンピューティングデバイスを含む、様々なタイプのものであることが可能である。コンピュータおよびネットワークの絶え間なく変わる性質のために、図10において描写されるコンピューティングデバイス1010の説明は、いくつかの実装形態を示すための単なる具体例であることを意図するものである。コンピューティングデバイス1010の他の多くの構成が、図10において描写されるコンピューティングデバイスより多くの、または少ない構成要素を有することが可能である。
【０１０７】
ユーザについての個人情報(例えば、他の電子通信から抽出されたユーザデータ、ユーザのソーシャルネットワークについての情報、ユーザの位置、ユーザの時刻、ユーザのバイオメトリック情報、ならびにユーザの活動および人口統計学情報)を、本明細書において論じられる一定の実装形態が収集すること、または使用することができる状況において、ユーザは、情報が収集されるかどうか、個人情報が格納されるかどうか、個人情報が使用されるかどうか、およびユーザについての情報がどのように収集され、格納され、使用されるかを制御するための1つまたは複数の機会を提供される。すなわち、本明細書において論じられるシステムおよび方法の実装形態は、ユーザ個人情報を収集すること、格納すること、および/または使用することを、そのようにするための明示的な認可を関連ユーザから受け取ったときにだけ行う。例えば、ユーザは、プログラムまたは特徴に関連のあるこの特定のユーザまたは他のユーザについてのユーザ情報を、プログラムまたは特徴が収集するかどうかに対する制御を提供される。個人情報が収集されることになる各ユーザは、情報が収集されるかどうかについての、また情報のどの部分が収集されることになるかについての、許可または認可を行うために、このユーザに関連のある情報収集に対する制御を可能にするための1つまたは複数のオプションを提示される。例えば、ユーザは、通信ネットワーク上で1つまたは複数のこのような制御オプションを提供されることが可能である。さらに、一定のデータは、個人識別情報が除去されるように、一定のデータが格納される前または使用される前に、1つまたは複数の方式で扱われることが可能である。1つの例として、ユーザのアイデンティティは、個人識別情報が判断されることが不可能であるように扱われることが可能である。別の例として、ユーザの地理位置は、ユーザの特定の位置が判断されることが不可能になるように、より大きい地域に漠然とさせることができる。
【符号の説明】
【０１０８】
101  ユーザ
106  クライアントデバイス、デバイス
110  自動アシスタント
112  入力処理エンジン
120  調整済アプリケーションエンジン
122  インデックス付加モジュール
124  ペルソナモジュール
126  ダイアログモジュール
128  エンティティモジュール
130  コンテンツ入力エンジン
135  出力エンジン
152  インデックス
154  エンティティDB、エンティティデータベース
156  選択モデル
158  調整済コンテンツ、調整済コンテンツデータベース、データベース
159  アプリケーション、アプリケーションデータベース
160  起動エンジン
171  指示
172  構造化コンテンツ
173  起動フレーズ、指示フレーズ
174  指示、構造化コンテンツ、および/または起動フレーズ、指示、構造化コンテンツのうちの少なくともいくつか、および/または起動フレーズ、データ
175  エンティティ、データ
176  ペルソナ値
181  自然言語入力、構文解析された入力
183  関連エンティティ
184  調整済バージョン、アプリケーションの1つまたは複数の調整済バージョン
210  質問列
215  正確な回答列
220  不正確な回答列
205a  行
205b  行
205c  行
205d  行
605  カリフォルニア州
610  サクラメント
615  ロサンゼルス
620  カリフォルニア州の都市
625  州都の都市
630  米国西部の都市
635  オリンピア
640  オールバニ
645  コロンバス
806  音声対応クライアントデバイス、クライアントデバイス
906  音声対応クライアントデバイス、クライアントデバイス
1010  コンピューティングデバイス
1012  バスサブシステム
1014  プロセッサ
1016  ネットワークインターフェース、ネットワークインターフェースサブシステム
1020  ユーザインターフェース出力デバイス
1022  ユーザインターフェース入力デバイス
1024  ストレージサブシステム
1025  メモリサブシステム、メモリ
1026  ファイルストレージサブシステム
1030  メインランダムアクセスメモリ、RAM
1032  リードオンリメモリ、ROM
【図１】
2020536265.tif 000003
【図２】
2020536265.tif 000004
【図３】
2020536265.tif 000005
【図４】
2020536265.tif 000006
【図５】
2020536265.tif 000007
【図６】
2020536265.tif 000008
【図７】
2020536265.tif 000009
【図８】
2020536265.tif 000010
【図９】
2020536265.tif 000011
【図１０】
2020536265.tif 000012
【国際調査報告】
2020536265.tif 000013
2020536265.tif 000014
2020536265.tif 000015