(57)【特許請求の範囲】
【請求項１】
1つまたは複数のプロセッサが、ユーザと自動アシスタントとの間の既存の人間対コンピュータダイアログセッションにおいて、前記自動アシスタントが前記人間対コンピュータダイアログセッションの間に前記ユーザから受信したすべての自然言語入力に応答したと判定するステップと、
前記ユーザが非要請型コンテンツを受け取ることを望む可能性を示す要望基準を決定するステップであって、前記要望基準が、前記ユーザが動作させている1つまたは複数のコンピューティングデバイスのアプリケーションの状態に基づき決定される、ステップと、
前記プロセッサのうちの1つまたは複数が、前記ユーザの1つまたは複数の特性に基づいて、前記ユーザにとって潜在的に関心のある情報または前記ユーザにとって潜在的に関心のある1つまたは複数のアクションを識別するステップと、
前記プロセッサのうちの1つまたは複数が、前記ユーザにとって潜在的に関心のある前記情報または潜在的に関心のある前記1つまたは複数のアクションを示す前記非要請型コンテンツを生成するステップと、
前記自動アシスタントが、前記非要請型コンテンツを前記既存の人間対コンピュータダイアログセッション内に組み込むステップと
を含み、
少なくとも組み込む前記ステップが、前記自動アシスタントが前記人間対コンピュータダイアログセッションの間に前記ユーザから受信したすべての自然言語入力に応答したとの前記判定と前記要望基準が1つまたは複数のしきい値を満たすとの判定とに応答して実行される
方法。
【請求項２】
前記非要請型コンテンツが非要請型自然言語コンテンツを含む、請求項1に記載の方法。
【請求項３】
識別する前記ステップが、前記ユーザが動作させている1つまたは複数のコンピューティングデバイスから取得される1つまたは複数の信号に少なくとも部分的に基づく、請求項1または2に記載の方法。
【請求項４】
前記ユーザが動作させている前記1つまたは複数のコンピューティングデバイスが、前記ユーザが現在動作させている所与のコンピューティングデバイスを含む、請求項3に記載の方法。
【請求項５】
前記1つまたは複数の信号が、前記ユーザが現在動作させている所与の前記コンピューティングデバイスとは異なる、前記ユーザが動作させている前記1つまたは複数のコンピューティングデバイスの別のコンピューティングデバイスから受信される、請求項3または4に記載の方法。
【請求項６】
前記1つまたは複数の信号が、前記別のコンピューティングデバイス上で実行しているアプリケーションの状態の表示を含む、請求項5に記載の方法。
【請求項７】
前記アプリケーションの前記状態の前記表示が、前記アプリケーションがメディアプレイバックを提供しているという表示を含む、請求項6に記載の方法。
【請求項８】
前記アプリケーションの前記状態の前記表示が、前記アプリケーションが、前記ユーザから検索クエリを受信した、または検索結果を前記ユーザに提供したという表示を含む、請求項6に記載の方法。
【請求項９】
前記非要請型コンテンツが1つまたは複数のユーザインターフェース要素を含み、各ユーザインターフェース要素が、前記自動アシスタントに、前記ユーザにとって潜在的に関心のある前記情報を提供させるか、または前記ユーザにとって潜在的に関心のある前記アクションのうちの1つまたは複数をトリガさせるために前記ユーザによって選択可能である、請求項1から8のいずれか一項に記載の方法。
【請求項１０】
1つまたは複数のプロセッサと、前記1つまたは複数のプロセッサに動作可能に結合されたメモリと、前記1つまたは複数のプロセッサに動作可能に結合された1つまたは複数のオーディオ出力デバイスとを含むシステムであって、前記メモリが命令を記憶し、前記命令が、前記1つまたは複数のプロセッサによる前記命令の実行に応答して、前記1つまたは複数のプロセッサに、
1つまたは複数の信号に基づいて、ユーザが前記1つまたは複数のオーディオ出力デバイスの聞こえる範囲内にいると判定することと、
前記ユーザが非要請型コンテンツを受け取ることを望む可能性を示す要望基準を決定することであって、前記要望基準が、前記ユーザが動作させている1つまたは複数のコンピューティングデバイスのアプリケーションの状態に基づき決定される、決定することと、
前記ユーザの1つまたは複数の特性に少なくとも部分的に基づいて、前記ユーザにとって潜在的に関心のある情報または前記ユーザにとって潜在的に関心のある1つまたは複数のアクションを識別することと、
潜在的に関心のある前記情報または潜在的に関心のある前記1つまたは複数のアクションを示す前記非要請型コンテンツを生成することと、
前記非要請型コンテンツを自動アシスタントと前記ユーザとの間の可聴の人間対コンピュータダイアログセッション内に組み込むことと
を行うように前記自動アシスタントを動作させ、
少なくとも前記組み込むことが、前記ユーザが前記1つまたは複数のオーディオ出力デバイスの聞こえる範囲内にいるとの前記判定と前記要望基準が1つまたは複数のしきい値を満たすとの判定とに応答して、前記自動アシスタントによって実行される
システム。
【請求項１１】
前記1つまたは複数の信号が、前記システムとは異なる、ユーザが動作させているコンピューティングデバイスによってトリガされ、前記1つまたは複数のプロセッサに動作可能に結合された1つまたは複数の通信インターフェースにおいて受信される、請求項10に記載のシステム。
【請求項１２】
前記1つまたは複数の信号が、前記システムと前記コンピューティングデバイスの共存の検出を含む、請求項11に記載のシステム。
【請求項１３】
前記1つまたは複数の信号が、前記コンピューティングデバイス上で実行しているアプリケーションの状態の表示を含む、請求項11に記載のシステム。
【請求項１４】
前記アプリケーションの前記状態の前記表示が、前記アプリケーションがメディアプレイバックを提供しているという表示を含む、請求項13に記載のシステム。
【請求項１５】
前記ユーザにとって潜在的に関心のある前記情報または前記ユーザにとって潜在的に関心のある前記1つまたは複数のアクションが、前記信号のうちの1つまたは複数に基づいてさらに識別される、請求項10から14のいずれか一項に記載のシステム。
【請求項１６】
前記信号のうちの1つまたは複数が、前記ユーザの識別情報を示し、前記ユーザにとって潜在的に関心のある前記情報または前記ユーザにとって潜在的に関心のある前記1つまたは複数のアクションが、前記ユーザの識別情報に少なくとも部分的に基づいて識別される、請求項10から15のいずれか一項に記載のシステム。
【請求項１７】
前記人間対コンピュータダイアログセッションが、前記ユーザが前記1つまたは複数のオーディオ出力デバイスの聞こえる範囲内にいるという前記判定に応答して開始される、請求項10から16のいずれか一項に記載のシステム。
【請求項１８】
前記非要請型コンテンツが非要請型自然言語コンテンツを含む、請求項10から17のいずれか一項に記載のシステム。
【請求項１９】
前記非要請型コンテンツが1つまたは複数のユーザインターフェース要素を含み、各ユーザインターフェース要素が、前記自動アシスタントに、前記ユーザにとって潜在的に関心のある前記情報を提供させるか、または前記ユーザにとって潜在的に関心のある前記アクションのうちの1つまたは複数をトリガさせるために、前記ユーザによって選択可能である、請求項10から17のいずれか一項に記載のシステム。
【請求項２０】
コンピューティング装置によって実行されると、前記コンピューティング装置に請求項1から9のいずれか一項に記載の方法を実行させる、コンピュータ可読命令を含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非要請型コンテンツの人間対コンピュータダイアログ内へのプロアクティブな組込みに関する。
【背景技術】
【０００２】
人間は、本明細書で(「チャットボット」、「対話型パーソナルアシスタント」、「インテリジェントパーソナルアシスタント」、「会話型エージェント」などと呼ばれる場合もある)「自動アシスタント」と呼ばれる対話型ソフトウェアアプリケーションを用いて人間対コンピュータダイアログに関与することができる。たとえば、(自動アシスタントと対話するとき、「ユーザ」と呼ばれることがある)人間は、場合によっては、テキストに変換され、次いで、処理され得る、口語自然言語入力(すなわち、発話)を使用して、かつ/またはテキスト(たとえば、タイプされた)自然言語入力を提供することによって、コマンドおよび/または要求を提供することができる。自動アシスタントは、一般に、プロアクティブとは対照的に、リアクティブである。たとえば、ユーザと自動アシスタントとの間の人間対コンピュータダイアログセッションの開始時に(たとえば、現在適応可能な会話コンテキストが存在しないとき)、自動アシスタントは、「やあ」、「おはようございます」など、せいぜい一般的な挨拶を提供することができる。自動アシスタントは、ユーザにとって潜在的に関心のある特定の情報をプロアクティブには取得および提供しない。したがって、自動アシスタントが、実質的な情報で応答することになる前に、かつ/またはユーザに代わって1つまたは複数のタスクを開始することになる前に、ユーザは(たとえば、話されたまたはタイプされた)最初の自然言語入力を提供しなければならない。
【発明の概要】
【課題を解決するための手段】
【０００３】
ユーザにとって潜在的に関心のある非要請型コンテンツ(Unsolicited Content)を既に存在しているまたは新しく開始される人間対コンピュータダイアログセッション内にプロアクティブに組み込むように自動アシスタントを構成するための技法について本明細書で説明する。いくつかの実装形態では、本開示の選択された態様で構成された自動アシスタント、および/または自動アシスタントと連携して働く1つまたは複数の他の構成要素は、既存の人間対コンピュータダイアログセッションにおいて、自動アシスタントがユーザに対するその義務を効果的に満たした(たとえば、自動アシスタントがさらなる命令を待っている)と判定するとき、そのような組込みを実行することができる。これは、ユーザが「おはよう」と発し、自動アシスタントが一般的な応答「おはようございます」を提供するなど、単純であり得る。そのようなシナリオでは、ユーザは、依然として、人間対コンピュータダイアログセッションに(少なくとも手短に)関与している可能性があり得る(たとえば、人間対コンピュータダイアログの進行中のトランスクリプトを示すチャットボットスクリーンは依然として開かれている場合があり、ユーザは、依然として、それを通して人間対コンピュータダイアログが実装されるオーディオ入出力デバイスの聞こえる範囲内にいる場合がある、など)。したがって、人間対コンピュータダイアログセッション内に組み込まれたいずれの非要請型コンテンツも、ユーザによって消費される(たとえば、聞かれている、見られている、認知されている、理解されているなどの)可能性が高い。
【０００４】
ユーザにとって潜在的に関心のある非要請型コンテンツを人間対コンピュータダイアログセッション内に組み込むことは、いくつかの技術的利点を有し得る。ユーザをそのようなコンテンツを肯定的に要請することから解放することができ、これは、通常ならばユーザの自然言語入力を処理するために使用されることになるコンピューティングリソースを節約することができ、かつ/または入力を提供するための能力が低下した(たとえば、運転、物理的制約など)ユーザにとって有用であり得る。加えて、ユーザは、通常ならばユーザに要請されなかった可能性がある潜在的に有用なコンテンツを受信することができる。さらに別の例として、非要請型コンテンツの組込みは、ユーザが、通常ならば追加の要求を提出することによって求めた可能性がある情報をユーザに提供することができる。そのような追加の要求を回避することは、これらの要求をパースおよび/または解釈するために必要とされるコンピューティングリソース(たとえば、ネットワーク帯域幅、処理サイクル、バッテリー電力)を節約し得る。
【０００５】
いくつかの実装形態では、自動アシスタントは、様々なイベントに応答して、(非要請型コンテンツを組み込むために)人間対コンピュータダイアログを開始すること、および/または非要請型コンテンツを既存の人間対コンピュータダイアログ内に組み込むことができる。いくつかの実装形態では、イベントは、ユーザが自動アシスタントの聞こえる範囲内にいるとの判定を含み得る。たとえば、自動アシスタントを動作させているスタンドアロンの対話型スピーカーは、たとえば、様々なタイプのセンサー(たとえば、IPウェブカム、またはスマートサーモスタット、煙検出器、一酸化炭素検出器などの電気製品内に組み込まれたモーションセンサー/カメラ)を使用して、またはユーザが携帯する別のコンピューティングデバイスの共存を検出することによって、ユーザが近くにいることを検出することができる。応答して、自動アシスタントは、「今日は傘を忘れないでください、雨の予報です」、「今日はあなたの妹の誕生日であることを忘れないでください」、「昨夜の<スポーツチームの>パワーフォーワードの怪我について聞きましたか?」、「ここ数時間に<株>が8%上昇しました」など、非要請型コンテンツをユーザに可聴的に提供することができる。
【０００６】
いくつかの実装形態では、ユーザに関連するコンピューティングデバイスの調整されたエコシステムの第1のコンピューティングデバイス上で動作している自動アシスタントは、エコシステムの別のコンピューティングデバイスから1つまたは複数の信号を受信することができる。そのような信号は、ユーザによるコンピューティング対話(たとえば、ユーザは、検索を実行している、話題を調査している、特定の記事を読んでいる)、別のコンピューティングデバイス上で動作しているアプリケーションの状態(たとえば、メディアを消費している、ゲームをプレイしているなど)などを含み得る。たとえば、ユーザが(自動アシスタントのインスタンスを動作させてもよく、動作させなくてもよい)スタンドアロン対話型スピーカー上で特定の音楽アーティストを聴いていると仮定する。ユーザのスマートフォン上の自動アシスタントは、スタンドアロン対話型スピーカーから、音楽を可聴的に検出すること、および/または1つまたは複数の信号を受信し、応答して、アーティスト(または、歌)に関する追加情報、他の同様のアーティスト/歌に関する推薦、今度のツアー日程または他のアーティスト関連イベントの通知など、非要請型コンテンツを新しく開始されたまたは既存の人間対コンピュータダイアログ内に組み込むことができる。
【０００７】
人間対コンピュータダイアログ内に組み込まれた非要請型コンテンツは、ユーザにとって潜在的に関心のある情報(たとえば、気象、スコア、交通情報、質問に対する回答、リマインダなど)および/またはユーザにとって潜在的に関心のあるアクション(たとえば、音楽を再生する、リマインダを作成する、ショッピングリストに品目を追加する、作成するなど)を含み得る。潜在的に関心のある情報および/またはアクションは、様々な信号に基づいて選択される。いくつかの実装形態では、信号は、ユーザと自動アシスタントとの間の過去の人間対コンピュータダイアログを含み得る。第1の人間対コンピュータセッションの間、ユーザは、特定の目的地までのフライトを調査するが、航空券を購入していないと仮定する。自動アシスタントとユーザとの間の後続の人間対コンピュータダイアログがトリガされ、自動アシスタントが、自らがユーザからのすべての自然言語入力に応答したと判定するとさらに仮定する。そのようなシナリオでは、ユーザは、何の追加の自然言語入力も自動アシスタントにまだ提供していない。したがって、自動アシスタントは、「あなたは目的地までのチケットを既に購入しましたか」または「フライトをまだ探しているかどうか知りませんが、<ウェブサイト>上に安いフライトを見つけました」など、ユーザの前のフライト検索に関する情報を含む非要請型コンテンツを組み込むイニシアティブをとることができる。
【０００８】
人間対コンピュータダイアログ内に非要請型コンテンツとして組み込まれることになる情報および/またはアクションを選択するために使用され得る他の信号は、限定されるものではないが、(たとえば、特定のメニュー品目、スペシャルなどをプロアクティブに示唆するように自動アシスタントに催促し得る)ユーザロケーション、カレンダー入力(たとえば、「あなたの記念日は次の月曜であることを忘れないでください」)、アポイントメント(たとえば、今度のフライトは、オンラインチェックインを実行するように、かつ/または荷造りを開始するようにユーザにプロアクティブに思い出させるように自動アシスタントに催促し得る)、リマインダ、検索履歴、ブラウジング履歴、関心のある話題(たとえば、特定のスポーツチームに対する関心は、自動アシスタントに「昨夜のスコアを見ましたか?」とユーザにプロアクティブに尋ねさせ得る)、文書(たとえば、今度のイベントに対する招待を含む電子メールは、今度のイベントについてユーザにプロアクティブに思い出させるように自動アシスタントに催促し得る)、アプリケーション状態(たとえば、「これらの3つのアプリケーションの更新を実行しました」、「まだいくつかのアプリケーションを開けたままですね、これは、あなたのデバイスのリソースを酷使する可能性があります」、「今、あなたのテレビに<映画>をストリーミングしていますね、<映画に関する話題>について知っていましたか?」、など)、新しく利用可能な特徴(たとえば、「おかえりなさい。あなたが留守にしていた間に私はタクシーの呼び方を学びました。タクシーが必要なときはいつでも私に言ってください」)、気象(たとえば、「外は良い天気ですね。アウトドアダイニングがあるレストランを検索しましょうか?」)などを含む。
【０００９】
いくつかの実装形態では、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を参照すると、本明細書で開示する技法が実装され得る例示的な環境が示されている。例示的な環境は、複数のクライアントコンピューティングデバイス1061〜Nと、自動アシスタント120とを含む。自動アシスタント120は、図1で、クライアントコンピューティングデバイス1061〜Nとは別個として示されているが、いくつかの実装形態では、自動アシスタント120のすべてまたはその態様は、クライアントコンピューティングデバイス1061〜Nのうちの1つまたは複数によって実装され得る。たとえば、クライアントデバイス1061は、自動アシスタント120の1つまたは複数の態様の1つのインスタンスを実装することが可能であり、クライアントデバイス106Nは、自動アシスタント120のそれらの1つまたは複数の態様の別個のインスタンスを実装することも可能である。自動アシスタント120の1つまたは複数の態様がクライアントコンピューティングデバイス1061-Nから離れた1つまたは複数のコンピューティングデバイスによって実装される実装形態では、クライアントコンピューティングデバイス1061-Nおよび自動アシスタント120のそれらの態様は、ローカルエリアネットワーク(LAN)および/または広域ネットワーク(WAN)(たとえば、インターネット)などの1つまたは複数のネットワークを介して通信し得る。
【００１９】
クライアントデバイス1061〜Nは、たとえば、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、モバイルフォンコンピューティングデバイス、ユーザの車両のコンピューティングデバイス(たとえば、車両内通信システム、車両内エンターテインメントシステム、車両ナビゲーションシステム)、スタンドアロン対話型スピーカー、および/またはコンピューティングデバイスを含む、ユーザのウェアラブル装置(たとえば、コンピューティングデバイスを有する、ユーザのウォッチ、コンピューティングデバイスを有する、ユーザの眼鏡、仮想現実コンピューティングデバイスまたは拡張現実コンピューティングデバイス)のうちの1つまたは複数を含み得る。追加のおよび/または代替のクライアントコンピューティングデバイスが提供され得る。いくつかの実装形態では、所与のユーザは、コンピューティングデバイスの調整された「エコシステム」を集合的に形成する複数のクライアントコンピューティングデバイスを利用して、自動アシスタント120と通信することができる。いくつかのそのような実装形態では、自動アシスタント120は、その特定のユーザに「サービスする」、たとえば、アクセスが「サービスされる」ユーザによって制御されるリソース(たとえば、コンテンツ、文書など)に対する拡張されたアクセスを自動アシスタント120に与えると見なされ得る。しかしながら、簡潔のために、本明細書で説明するいくつかの例は、単一のクライアントコンピューティングデバイス106を動作させているユーザに焦点を当てることになる。
【００２０】
クライアントコンピューティングデバイス1061〜Nの各々は、メッセージ交換クライアント1071〜Nのうちの対応する1つなど、様々な異なるアプリケーションを動作させることができる。メッセージ交換クライアント1071〜Nは、様々な形態で出現し得、これらの形態は、クライアントコンピューティングデバイス1061〜Nによって異なってよく、かつ/または複数の形態は、クライアントコンピューティングデバイス1061〜Nのうちの単一のクライアントコンピューティングデバイス上で動作させられてよい。いくつかの実装形態では、メッセージ交換クライアント1071〜Nのうちの1つまたは複数は、ショートメッセージングサービス(「SMS」)および/またはマルチメディアメッセージングサービス(「MMS」)クライアント、オンラインチャットクライアント(たとえば、インスタントメッセンジャー、インターネットリレーチャット、または「IRC」など)、ソーシャルネットワークに関連するメッセージングアプリケーション、自動アシスタント120との会話専用のパーソナルアシスタントメッセージングサービスなどの形態で出現し得る。いくつかの実装形態では、メッセージ交換クライアント1071〜Nのうちの1つまたは複数は、ウェブブラウザ(図示せず)またはクライアントコンピューティングデバイス106の他のアプリケーションによってレンダリングされるウェブページまたは他のリソースを介して実装され得る。
【００２１】
メッセージ交換クライアント107に加えて、クライアントコンピューティングデバイス1061〜Nの各々は、様々な他のアプリケーション(図1の「MISC.APP」1091〜N)を動作させることもできる。これらの他のアプリは、限定されるものではないが、ゲームアプリケーション、メディアプレイアプリケーション(たとえば、音楽プレーヤー、ビデオプレーヤーなど)、生産性アプリケーション(たとえば、ワードプロセッサ、スプレッドシートアプリケーションなど)、ウェブブラウザ、マップアプリケーション、リマインダアプリケーション、クラウドストレージアプリケーション、フォトグラフィアプリケーションなどを含み得る。下記でより詳細に説明するように、これらの他のアプリケーション1091〜Nの様々な状態は、いくつかの実施形態で、非要請型コンテンツを人間対コンピュータダイアログ内に組み込むように自動アシスタント120に催促する信号として使用され得る。
【００２２】
本明細書でより詳細に説明するように、自動アシスタント120は、1つまたは複数のクライアントデバイス1061〜Nのユーザインターフェース入力デバイスおよびユーザインターフェース出力デバイスを介して、1人または複数のユーザとの人間対コンピュータダイアログセッションに関与する。いくつかの実装形態では、自動アシスタント120は、クライアントデバイス1061〜Nのうちの1つの1つまたは複数のユーザインターフェース入力デバイスを介してユーザによって提供されるユーザインターフェース入力に応答して、ユーザとの人間対コンピュータダイアログセッションに関与することができる。これらの実装形態のうちのいくつかでは、ユーザインターフェース入力は、明示的に自動アシスタント120を対象とする。たとえば、メッセージ交換クライアント1071〜Nのうちの1つは、自動アシスタント120との会話専用のパーソナルアシスタントメッセージングサービスであってよく、そのパーソナルアシスタントメッセージングサービスを介して提供されるユーザインターフェース入力は、自動アシスタント120に自動的に提供され得る。また、たとえば、ユーザインターフェース入力は、明示的に、自動アシスタント120が起動されるべきであることを示す特定のユーザインターフェース入力に基づく、メッセージ交換クライアント1071〜Nのうちの1つまたは複数の中の自動アシスタント120を明示的に対象とし得る。たとえば、特定のユーザインターフェース入力は、1つまたは複数のタイプされた文字(たとえば、@AutomatedAssistant)、ハードウェアボタンおよび/または仮想ボタン(たとえば、タップ、ロングタップ)を用いたユーザ対話、口頭コマンド(たとえば、「おい、自動アシスタント」)、および/または他の特定のユーザインターフェース入力であってよい。いくつかの実装形態では、自動アシスタント120は、ユーザインターフェース入力が自動アシスタント120を明示的に対象としていないときですら、ユーザインターフェース入力に応答してダイアログセッションに関与することができる。たとえば、自動アシスタント120は、ユーザインターフェース入力のコンテンツを検査し、いくつかの用語がユーザインターフェース入力内に存在することに応答して、かつ/または他のキューに基づいて、ダイアログ
セッションに関与することができる。多くの実装形態では、自動アシスタント120は、ユーザが、コマンド、検索などを発することができるように、対話型ボイス応答(「IVR」)に関与することができ、自動アシスタントは、自然言語処理および/または1つまたは複数の文法を利用して、発話をテキストに変換し、それに応じて、テキストに応答することができる。
【００２３】
クライアントコンピューティングデバイス1061〜Nの各々および自動アシスタント120は、データおよびソフトウェアアプリケーションを記憶するための1つまたは複数のメモリと、データにアクセスし、アプリケーションを実行するための1つまたは複数のプロセッサと、ネットワークを介した通信を円滑にする他の構成要素とを含み得る。クライアントコンピューティングデバイス1061〜Nのうちの1つまたは複数によって、かつ/または自動アシスタント120によって実行される動作は、複数のコンピュータシステムにわたって分散され得る。自動アシスタント120は、たとえば、ネットワークを通して互いに結合された1つまたは複数のロケーション内で1つまたは複数のコンピュータ上で実行しているコンピュータプログラムとして実装され得る。
【００２４】
自動アシスタント120は、自然言語プロセッサ122と応答性コンテンツエンジン130とを含み得る。いくつかの実装形態では、自動アシスタント120のエンジンおよび/またはモジュールのうちの1つまたは複数は、省かれてよく、組み合わされてよく、かつ/または自動アシスタント120とは別個の構成要素内で実装されてもよい。自動アシスタント120は、関連するクライアントデバイス1061〜Nを介して、1人または複数のユーザとの人間対コンピュータダイアログセッションに関与して、応答性コンテンツエンジン130によって生成されるかつ/または維持される応答性コンテンツを提供することができる。
【００２５】
いくつかの実装形態では、応答性コンテンツエンジン130は、自動アシスタント120との人間対コンピュータダイアログセッションの間に、クライアントデバイス1061〜Nのうちの1つのユーザによって生成される様々な入力に応答して、応答性コンテンツを生成する。応答性コンテンツエンジン130は、ダイアログセッションの一部としてユーザに提示するために、(たとえば、ユーザのクライアントデバイスと別個であるとき、1つまたは複数のネットワークを介して)応答性コンテンツを提供する。たとえば、応答性コンテンツエンジン130は、クライアントデバイス1061〜Nのうちの1つを介して提供される自由形式の自然言語入力に応答して、応答性コンテンツを生成することができる。本明細書で使用する自由形式の入力は、ユーザによって構築され、ユーザによる選択のために提示されるオプションのグループに制約されない入力である。
【００２６】
本明細書で使用する「ダイアログセッション」は、ユーザと自動アシスタント120との間の1つまたは複数のメッセージの論理的に独立した交換を含み得る。自動アシスタント120は、セッション間の時間の経過、セッション間のユーザコンテキスト(たとえば、ロケーション、スケジュールされた打ち合わせの前/最中/後、など)の変更、ユーザと自動アシスタントとの間のダイアログ以外のユーザとクライアントデバイスとの間の1つまたは複数の介在する対話(たとえば、ユーザがしばらくの間アプリケーションを切り替える、ユーザがスタンドアロンボイス作動製品から立ち去り、次いで、後で戻る)の検出、セッション間のクライアントデバイスのロック/スリープ、自動アシスタント120の1つまたは複数のインスタンスと対話するために使用されるクライアントデバイスの変更など、様々な信号に基づいて、ユーザとの複数のダイアログセッションを区別することができる。
【００２７】
いくつかの実装形態では、自動アシスタント120がユーザフィードバックを要請する催促を提供するとき、自動アシスタント120は、催促に応答して受信されるべきユーザインターフェース入力を処理するように構成された(それを介して催促が提供される)クライアントデバイスの1つまたは複数の構成要素をプリエンプティブに起動させることができる。たとえば、ユーザインターフェース入力がクライアントデバイス1061のマイクロフォンを介して提供されることになる場合、自動アシスタント120は、マイクロフォンがプリエンプティブに「開く」ようにし(それにより、マイクロフォンを開くためにインターフェース要素をヒットする、または「ホットワード」を話す必要がないようにし)、クライアントデバイス1061のテキストプロセッサに対するローカル音声をプリエンプティブに起動させる、テキストプロセッサに対するクライアントデバイス1061とリモート音声との間の通信セッションをプリエンプティブに確立させる、かつ/またはグラフィカルユーザインターフェース(たとえば、フィードバックを提供するために選択され得る1つまたは複数の選択可能な要素を含むインターフェース)をクライアントデバイス1061上にレンダリングさせるための1つまたは複数のコマンドを提供し得る。これは、ユーザインターフェース入力が、これらの構成要素がプリエンプティブに起動されなかった場合よりも迅速に提供および/または処理されることを可能にする。
【００２８】
自動アシスタント120の自然言語プロセッサ122は、クライアントデバイス1061〜Nを介してユーザによって生成される自然言語入力を処理し、応答性コンテンツエンジン130など、自動アシスタント120の1つまたは複数の他の構成要素によって使用するための注釈付き出力を生成することができる。たとえば、自然言語プロセッサ122は、クライアントデバイス1061の1つまたは複数のユーザインターフェース入力デバイスを介してユーザによって生成される自然言語自由形式入力を処理することができる。生成された、注釈付きの出力は、自然言語入力の1つまたは複数の注釈、および場合によっては、自然言語入力の用語のうちの1つまたは複数(たとえば、すべて)を含む。
【００２９】
いくつかの実装形態では、自然言語プロセッサ122は、自然言語入力内で様々なタイプの文法情報を識別し、注釈を付けるように構成される。たとえば、自然言語プロセッサ122は、それらの文法的な役割を用いて用語に注釈を付けるように構成された音声タガーの一部分を含み得る。たとえば、音声タガーの一部分は、「名詞」、「動詞」、「形容詞」、「代名詞」など、音声のその部分で各用語をタグ付けすることができる。また、たとえば、いくつかの実装形態では、自然言語プロセッサ122は、追加および/または代替として、自然言語入力内の用語間の構文関係を判定するように構成された従属性パーサを含み得る。たとえば、従属性パーサは、どの用語が他の用語、文章の主語および動詞を変更するかなどを判定することができ(たとえば、パースツリー)、そのような従属性に注釈を付けることができる。
【００３０】
いくつかの実装形態では、自然言語プロセッサ122は、追加でかつ/または代替として、(たとえば、文学的特性を含めて)人々、組織、(現実のおよび想像上の)ロケーションなどに対する参照など、1つまたは複数のセグメント内のエンティティ参照に注釈を付けるように構成されたエンティティタガーを含み得る。エンティティタガーは、(たとえば、人々など、エンティティクラスに対するすべての参照の識別を可能にするために)高い粒度レベルで、かつ/または(たとえば、特定の人物など、特定のエンティティに対するすべての参照の識別を可能にするために)低い粒度レベルでエンティティに対する参照に注釈を付けることができる。エンティティタガーは、特定のエンティティを解決するために自然言語入力のコンテンツに依存し得、かつ/または、場合によっては、特定のエンティティを解決するために知識グラフまたは他のエンティティデータベースと通信し得る。
【００３１】
いくつかの実装形態では、自然言語プロセッサ122は、追加でかつ/または代替として、1つまたは複数のコンテキストキューに基づいて、同じエンティティに対する参照をグループ化する、または「クラスタ化する」ように構成された共参照リゾルバを含み得る。たとえば、共参照リゾルバは、自然言語入力「前回そこで食事をしたHypothetical Cafeが気に入りました」において、用語「そこで」から「Hypothetical Cafe」までを解決するために利用され得る。
【００３２】
いくつかの実装形態では、自然言語プロセッサ122の1つまたは複数の構成要素は、自然言語プロセッサ122の1つまたは複数の他の構成要素からの注釈に依存し得る。たとえば、いくつかの実装形態では、名前付きエンティティタガーは、特定のエンティティに対するすべての言及に注釈を付ける際に共参照リゾルバおよび/または従属性パーサからの注釈に依存し得る。また、たとえば、いくつかの実装形態では、共参照リゾルバは、同じエンティティに対する参照をクラスタ化する際に従属性パーサからの注釈に依存し得る。いくつかの実装形態では、特定の自然言語入力を処理する際に、自然言語プロセッサ122の1つまたは複数の構成要素は、関係する前の入力、および/または特定の自然言語入力の外部の他の関係するデータを使用して、1つまたは複数の注釈を判定することができる。
【００３３】
上述のように、応答性コンテンツエンジン130は、クライアントデバイス1061〜Nのうちの1つのユーザとのダイアログセッションの間に提供するための示唆および/または他のコンテンツを生成する際に1つまたは複数のリソースを利用する。様々な実装形態では、応答性コンテンツエンジン130は、アクションモジュール132と、エンティティモジュール134と、コンテンツモジュール136とを含み得る。
【００３４】
応答性コンテンツエンジン130のアクションモジュール132は、クライアントコンピューティングデバイス1061〜Nから受信した自然言語入力および/または自然言語プロセッサ122によって提供された自然言語入力の注釈を利用して、自然言語入力に応答する、少なくとも1つのアクションを判定する。いくつかの実装形態では、アクションモジュール132は、自然言語入力内に含まれた1つまたは複数の用語に基づいてアクションを判定することができる。たとえば、アクションモジュール132は、自然言語入力内に含まれた1つまたは複数の用語に対して、1つまたは複数のコンピュータ可読媒体内で、アクションがマッピングされていることに基づいて、そのアクションを判定することができる。たとえば、「私のショッピングリストに<品目>を追加する」アクションは、「私は市場から<品物>が必要である...」、「私は<品物>を手に入れる必要がある」、「私たちは<品物>を切らせている」など、1つまたは複数の用語にマッピングされ得る。
【００３５】
エンティティモジュール134は、ユーザと自動アシスタント120との間のダイアログセッションの間にユーザインターフェース入力デバイスを介して1人または複数のユーザによって提供された入力に基づいて候補エンティティを判定する。エンティティモジュール134は、候補エンティティを判定する際に、かつ/またはそれらの候補エンティティを精錬する際に、1つまたは複数のリソースを利用する。たとえば、エンティティモジュール134は、自然言語入力自体および/または自然言語プロセッサ122によって提供される注釈を利用することができる。
【００３６】
プロアクティブコンテンツモジュール136は、ユーザにとって関心のある非要請型コンテンツを既存のまたは新しく開始される人間対コンピュータダイアログセッション内にプロアクティブに組み込むように構成され得る。たとえば、いくつかの実装形態では、プロアクティブコンテンツモジュール136は、たとえば、自然言語プロセッサ122、アクションモジュール132、および/またはエンティティモジュール134など、他のモジュールから受信したデータに基づいて、ユーザと自動アシスタント120との間の既存の人間対コンピュータダイアログセッションにおいて、自動アシスタント120が人間対コンピュータダイアログセッションの間にユーザから受信したすべての自然言語入力に応答したと判定することができる。ユーザが特定の情報に対する検索を要求するためにクライアントデバイス106を動作させ、自動アシスタント120が、検索を実行して(または、検索を実行させて)、人間対コンピュータダイアログの一部として応答情報を返したと仮定する。この時点で、ユーザが他の情報も要求していない限り、自動アシスタント120は、ユーザの要求に十分に応答した。いくつかの実装形態では、プロアクティブコンテンツモジュール136は、何らかの事前判定された時間間隔(たとえば、2秒、5秒など)にわたって、自動アシスタント120が追加のユーザ入力を受信するのを待機することができる。その時間間隔の間に何も受信されない場合、プロアクティブコンテンツモジュール136は、自らが人間対コンピュータダイアログセッションの間にユーザから受信したすべての自然言語入力に応答したと判定することができる。
【００３７】
プロアクティブコンテンツモジュール136は、ユーザの1つまたは複数の特性に基づいて、ユーザにとって潜在的に関心のある情報またはユーザにとって潜在的に関心のある1つまたは複数のアクション(集合的に、本明細書でユーザにとって潜在的に関心のある「コンテンツ」と呼ばれる)を識別するようにさらに構成され得る。いくつかの実装形態では、ユーザにとって潜在的に関心のあるコンテンツのこの識別は、様々な時間間隔で(たとえば、定期的に、連続的に、周期的になど)プロアクティブコンテンツモジュール136によって実行され得る。したがって、いくつかのそのような実装形態では、プロアクティブコンテンツモジュール136は、ユーザにとって潜在的に関心のある非要請型コンテンツを連続的に(または、少なくとも周期的に)提供する「準備ができている」可能性がある。追加でまたは代替として、いくつかの実装形態では、潜在的に関心のあるコンテンツのこの識別は、様々なイベントに応答して、プロアクティブコンテンツモジュール136によって実行され得る。1つのそのようなイベントは、自動アシスタント120が人間対コンピュータダイアログの間にユーザから受信したすべての自然言語入力に応答し、前述の時間間隔の失効までに追加のユーザ入力が受信されていないとの判定であり得る。ユーザにとって潜在的に関心のあるコンテンツを識別するようにプロアクティブコンテンツモジュール136をトリガがし得る他のイベントは、たとえば、ユーザがクライアントデバイス106を使用して検索を実行している、ユーザがクライアントデバイス106上で特定のアプリケーションを動作させている、(たとえば、クライアントデバイスの位置座標センサーによってまたはユーザがソーシャルメディア上のロケーションに「チェックインする」ことによって検出されるように)ユーザが新しいロケーションに旅行している、ユーザが自動アシスタントの制御下でスピーカーの聞こえる範囲内にいると検出されているなどを含み得る。
【００３８】
ユーザにとって潜在的に関心のあるコンテンツを判定するために、たとえば、プロアクティブコンテンツモジュール136によって使用され得るユーザの特性は、様々な形態で出現し得、様々なソースから判定され得る。たとえば、ユーザにとって関心のある話題は、ユーザの検索履歴、ブラウジング履歴、ユーザ設定選好、ロケーション、メディアプレイ履歴、旅行履歴、ユーザと自動アシスタント120との間の過去の人間対コンピュータダイアログセッションなど、ソースから判定され得る。したがって、いくつかの実装形態では、プロアクティブコンテンツモジュール136は、たとえば、クライアントデバイス106から直接的に、かつ/またはいわゆる「クラウド」として動作している1つまたは複数のコンピューティングシステムを介して間接的にユーザが動作させている1つまたは複数のクライアントデバイス106からの様々な信号または他のデータに対するアクセスを有し得る。ユーザにとって関心のある話題は、たとえば、特定の趣味(たとえば、ゴルフ、スキー、ゲーム、絵画など)、文学、映画、音楽ジャンル、特定のエンティティ(たとえば、アーティスト、アスリート、スポーツチーム、会社)などを含み得る。ユーザの他の特性は、たとえば、年齢、(たとえば、全地球測位システム(「GPS」)センサーまたは他の三角測量ベースの位置座標センサーなど、クライアントデバイス106の位置座標センサーから判定される)ロケーション、ユーザ設定選好、(たとえば、クライアントデバイス106の加速度計から判定される)ユーザが現在移動中の車両内にいるかどうか、(たとえば、1つまたは複数のカレンダー入力から判定される)ユーザのスケジュールされたイベントなどを含み得る。
【００３９】
様々な実装形態では、プロアクティブコンテンツモジュール136は、ユーザにとって潜在的に関心のある情報および/または潜在的に関心のある1つまたは複数のアクションを示す非要請型コンテンツを生成し、非要請型コンテンツを人間対コンピュータダイアログ内に組み込むように構成され得る。この非要請型コンテンツは、既存の人間対コンピュータダイアログセッション内に組み込まれ得る様々な形態で出現し得る。たとえば、ユーザがテキストベースのメッセージ交換クライアント107を使用して自動アシスタント120と対話しているいくつかの実装形態では、プロアクティブコンテンツモジュール136によって生成される非要請型コンテンツは、メッセージ交換クライアント107によってレンダリングされる人間対コンピュータダイアログのトランスクリプト内に組み込まれ得るテキスト、画像、ビデオ、またはそれらの任意の組合せの形態をとってよい。いくつかの実装形態では、非要請型コンテンツは、異なるアプリケーションインターフェースをユーザに公開するためにユーザによって選択可能な、いわゆる「ディープリンク」の形態を含んでよいか、またはその形態をとってよい。たとえば、ディープリンクは、ユーザによって選択されると、クライアントデバイス106に特定の状態で特定のアプリケーション109を開始させる(または、作動させる)ことができる。(たとえば、自動アシスタント120がスタンドアロン対話型スピーカー上でまたは車両内システム上で動作するとき)ユーザが音声インターフェースを使用して自動アシスタント120と対話している他の実装形態では、非要請型コンテンツは、ユーザに可聴的に提供される自然言語出力の形態をとってよい。
【００４０】
いくつかの実装形態では、非要請型コンテンツの組込みは、自動アシスタント120が人間対コンピュータダイアログセッションの間にユーザから受信したすべての自然言語入力に応答したという、たとえば、プロアクティブコンテンツモジュール136による判定に応答して実行され得る。いくつかの実装形態では、プロアクティブコンテンツモジュール136に関して上記で説明した他の動作のうちの1つまたは複数もそのようなイベントに応答して実行され得る。または、上述のように、それらの動作は、プロアクティブコンテンツモジュール136(および、したがって、自動アシスタント120)がユーザにとって潜在的に関心のある非要請型コンテンツを既存の人間対コンピュータダイアログセッション内に迅速に組み込む「準備ができている」状態にとどまるように、周期的にまたは連続的にプロアクティブコンテンツモジュール136によって実行され得る。
【００４１】
いくつかの実装形態では、自動アシスタント120は、ユーザによる人間対コンピュータダイアログセッションの開始の前ですら、非要請型出力を提供し得る。たとえば、いくつかの実装形態では、プロアクティブコンテンツモジュール136は、1つまたは複数の信号に基づいて、ユーザが1つまたは複数のオーディオ出力デバイス(たとえば、スタンドアロン対話型スピーカー、または自動アシスタント120のすべてまたは一部分を動作させるクライアントデバイス106と動作可能に結合された受動スピーカー)の聞こえる範囲内にいると判定するように構成される。これらの信号は、たとえば、ユーザが携帯する1つまたは複数のクライアントデバイスとオーディオ出力デバイスとの共存、(たとえば、パッシブ赤外線、サウンド検出(たとえば、ユーザの声の検出)など)物理的なユーザの存在の検出などを含み得る。
【００４２】
プロアクティブコンテンツモジュール136がユーザは1つまたは複数のオーディオ出力デバイスの聞こえる範囲内にいると判定すると、プロアクティブコンテンツモジュール136は、ユーザの1つまたは複数の特性に少なくとも部分的に基づいて、(上記で説明したような)ユーザにとって潜在的に関心のある情報またはユーザにとって潜在的に関心のある1つまたは複数のアクションを識別し、潜在的に関心のある情報または潜在的に関心のある1つまたは複数のアクションを示す非要請型コンテンツを生成し、かつ/または非要請型コンテンツを自動アシスタント120とユーザとの間の可聴の人間対コンピュータダイアログセッション内に組み込むことができる。上述のように、これらの追加の動作のうちの1つまたは複数は、ユーザがオーディオ出力デバイスの聞こえる範囲内にいるとの判定に応答して実行され得る。追加でまたは代替として、これらの動作のうちの1つまたは複数は、プロアクティブコンテンツモジュール136が非要請型コンテンツを人間対コンピュータダイアログ内に組み込むように常に(または、少なくとも通常)「準備ができている」ように、周期的にまたは連続的に実行され得る。
【００４３】
図2は、ユーザ101と自動アシスタント(図1の120、図2には図示せず)のインスタンスとの間の人間対コンピュータダイアログセッションの一例を示す。図2は、本明細書で説明する実装形態による、マイクロフォンおよびスピーカーを介して、コンピューティングデバイス210(スタンドアロン対話型スピーカーとして示されているが、これは限定的であることを意味しない)のユーザ101と自動アシスタント120との間で生じ得るダイアログセッションの例を示す。自動アシスタント120の1つまたは複数の態様は、コンピューティングデバイス210上でかつ/またはコンピューティングデバイス210とネットワーク通信中の1つまたは複数のコンピューティングデバイス上で実装され得る。
【００４４】
図2では、ユーザ101は、「おはよう。今日のスケジュールは何かな?」の自然言語入力280を提供して、ユーザ101と自動アシスタント120との間の人間対コンピュータダイアログセッションを開始する。自然言語入力280に応答して、自動アシスタント120は、「午前9:30に歯医者の予約、その後、午前11時にHypothetical Cafeで打ち合わせの予約が入っています」の応答性自然言語出力282を提供する。その日にユーザのスケジュールに2つのイベントのみが存在すると仮定して、自動アシスタント120は(たとえば、アクションモジュール132によって)ユーザの自然言語入力に十分に応答した。しかしながら、追加のユーザ入力を待つのではなく、自動アシスタント120は(たとえば、プロアクティブコンテンツモジュール136によって)ユーザにとって潜在的に関心のある追加コンテンツを図2の人間対コンピュータダイアログ内にプロアクティブに組み込むことができる。たとえば、自動アシスタント120は、歯医者のロケーションと打ち合わせのロケーションとの間の1つまたは複数の移動ルートを検索して(または検索するように別の構成要素に要求して)、たとえば、一番の直行ルートが大規模工事中であると判定することができる。2つの予約は互いに比較的近いため、自動アシスタント120は、以下の非要請型コンテンツ(イタリックで示されている)を人間対コンピュータダイアログ内にプロアクティブに組み込む:「あなたの歯医者とHypothetical Cafeとの間の直行ルートで大規模工事が行われています。代わりに<代替ルート>をとるのはどうでしょうか?」。
【００４５】
図3は、異なるセッションの間の、ユーザ101とコンピューティングデバイス210上で動作している自動アシスタント120との間のもう1つの例示的なダイアログを示す。380において、ユーザ101は、「外の気温は何度かな?」というフレーズを話す。1つまたは複数のソース(たとえば、気象関連のウェブサービス)から外部気温を判定した後で、382において、自動アシスタント120は、「華氏75度です」と答えることができる。この場合も、自動アシスタント120は(たとえば、プロアクティブコンテンツモジュール136によって)自らがユーザの自然言語入力に十分に応答したと判定することができる。それに応じて、特定のチームに対するユーザ101の関心と、そのチームが前夜にゲームに勝ったという判定とに基づいて、自動アシスタント120は、以下の非要請型コンテンツを人間対コンピュータダイアログ内にプロアクティブに組み込むことができる:「昨夜、<チーム>が20ポイント差で勝ったのを見ましたか?」
【００４６】
図4は、異なるセッションの間の、ユーザ101とコンピューティングデバイス210上で動作している自動アシスタント120との間のもう1つの例示的なダイアログを示す。この例では、ユーザ101は、自然言語入力を提供しない。代わりに、自動アシスタント120またはコンピューティングデバイス210上で動作している別の構成要素は、たとえば、クライアントデバイス406(この例では、スマートフォン)によって提供される1つまたは複数の信号に基づいて、ユーザ101が、コンピューティングデバイス210と共存しており、したがって、コンピューティングデバイス210によって提供される可聴出力の聞こえる範囲内にいると判定する。それに応じて、482において、自動アシスタント120は、コンピューティングデバイス210とのユーザ101の共存に基づいて、非要請型コンテンツ(図3の非要請型コンテンツと同じ)を自動アシスタントによって開始された新しい人間対コンピュータダイアログ内にプロアクティブに組み込む。クライアントデバイス406によってコンピューティングデバイス210に提供される1つまたは複数の信号は、たとえば、ワイヤレス信号(たとえば、Wi-Fi、BlueTooth(登録商標))、共有ネットワーク(たとえば、クライアントデバイス406がコンピューティングデバイス210と同じWi-Fiネットワークに参加した)などを含み得る。
【００４７】
いくつかの実装形態では、自動アシスタント120は、ユーザ101がコンピューティングデバイス210と共存していると判定するとすぐに、ユーザにとって潜在的に関心のある他のコンテンツを人間対コンピュータダイアログ内にプロアクティブに組み込むことができる。いくつかの実装形態では、この他のコンテンツは、たとえば、クライアントデバイス406上で動作しているアプリケーションの状態に基づいて判定され得る。ユーザ101がクライアントデバイス406上でゲームをプレイしていると仮定する。コンピューティングデバイス210上の自動アシスタント120は、クライアントデバイス406が特定のゲームプレイ状態にあると判定することができ、人間対コンピュータダイアログの一部として、秘訣、コツ、同様のゲームの推薦など、ユーザにとって潜在的に関心のある様々な非要請型コンテンツを提供することができる。コンピューティングデバイス210がスタンドアロン対話型スピーカーであるいくつかの実装形態では、コンピューティングデバイス210は、少なくともユーザ101がコンピューティングデバイス210と共存状態にとどまる限り、背景音楽(たとえば、背景音楽の複製または追加)および/またはクライアントデバイス406上でプレイされているゲームに関連するサウンド効果を出力することすら可能である。
【００４８】
図5は、ユーザ101とクライアントデバイス406上で動作している自動アシスタント120のインスタンスとの間の例示的な人間対コンピュータダイアログを示す。この例では、ユーザ101は、この場合も、自然言語入力を提供しない。代わりに、コンピューティングデバイス210(この場合も、スタンドアロン対話型スピーカーの形態をとる)は音楽を再生している。この音楽は、クライアントデバイス406の1つまたは複数のオーディオセンサー(たとえば、マイクロフォン)において検出されている。可聴的に検出された音楽を分析するように構成されたソフトウェアアプリケーションなど、クライアントデバイス406の1つまたは複数の構成要素は、アーティスト/歌など、検出された音楽の1つまたは複数の属性を識別することができる。図1のエンティティモジュール134など、別の構成要素は、これらの属性を使用して、エンティティに関する情報に対して1つまたは複数のオンラインソースを検索することができる。クライアントデバイス406上で動作している自動アシスタント120は、次いで、(582において)エンティティに関する様々な情報をユーザ101に知らせる非要請型コンテンツを、たとえば、図5のクライアントデバイス406の1つまたは複数のスピーカーを介して大きな音で提供することができる。たとえば、図5の582において、自動アシスタント120は、「あなたは<アーティスト>を聴いていますね。<アーティスト>は<日>に<あなたの街>でツアー日程があることを知っていましたか?」と述べる。クライアントデバイス(たとえば、スマートフォン、タブレット、ラップトップ、スタンドアロン対話型スピーカー)上で動作している自動アシスタント120のインスタンスが、オーディオビジュアルコンテンツ(たとえば、映画、テレビ番組、スポーツイベントなど)がユーザのテレビ上に提示されていることを(サウンド検出または視覚検出によって)検出するとき、そのインスタンスによって同様の技術が適用され得る。
【００４９】
図5では、コンピューティングデバイス210は、クライアントデバイス406によって「聞かれる」音楽を可聴的に出力している。しかしながら、ユーザ101はコンピューティングデバイス210の代わりに、クライアントデバイス406を使用して音楽を聴いていたと仮定する。ユーザ101は、音楽がユーザ101のみに可聴であり、コンピューティングデバイス210など、他のコンピューティングデバイスには必ずしも可聴でないように、イヤープラグを使用して音楽を聴いていたとさらに仮定する。特に、クライアントデバイス406およびコンピューティングデバイス210がユーザ101に関連するコンピューティングデバイスの同じエコシステムの一部である、様々な実装形態では、コンピューティングデバイス210は、クライアントデバイス406の音楽プレイバックアプリケーションは、そのアプリケーションが、現在、音楽をプレイバックしている状態にあると判定することができる。たとえば、クライアントデバイス406は、たとえば、Wi-Fi、Bluetooth(登録商標)などのワイヤレス通信技術を使用して、近くのデバイス(コンピューティングデバイス210など)に、音楽プレイバックアプリケーションの状態の表示(および/または、他のアプリケーションの状態の表示)を提供することができる。追加でまたは代替として、ユーザ101が動作させているコンピューティングデバイスのエコシステムの場合、現在実行しているアプリケーションおよびそれらのそれぞれの状態のグローバルインデックスが(たとえば、ユーザ101にサービスする自動アシスタントによって)維持され、エコシステムのコンピューティングデバイス間で利用可能であり得る。どちらにしても、コンピューティングデバイス210に関連する自動アシスタント120がクライアントデバイス406上の音楽プレイバックアプリケーションの状態を学習すると、自動アシスタント120は、たとえば、ユーザ101と自動アシスタント120との間の人間対コンピュータダイアログ内に(自動アシスタント120によってトリガされ得る)コンピューティングデバイス210を介して、図5で582において示したコンテンツと同様のコンテンツをプロアクティブに組み込むことができる。
【００５０】
図2〜図5は、オーディオ入出力を使用して自動アシスタント120によりユーザ101が関与する人間対コンピュータダイアログを示す。しかしながら、これは、限定的であることを意味しない。上述のように、様々な実装形態では、ユーザは、メッセージ交換クライアント107など、他の手段を使用して自動アシスタントを関与させることができる。図6は、スマートフォンまたはタブレットの形態(限定的であることを意味しない)のクライアントデバイス606がタッチスクリーン640を含む一例を示す。タッチスクリーン640上に視覚的にレンダリングされるのは、クライアントデバイス606のユーザ(図6の「あなた」)とクライアントデバイス606上で実行している自動アシスタント120のインスタンスとの間の人間対コンピュータダイアログのトランスクリプト642である。ユーザが自然言語コンテンツ、ならびに画像、サウンドなど、他のタイプの入力を提供することができる入力フィールド644も提供される。
【００５１】
図6では、ユーザは、質問「<店>は何時に開店する?」で人間対コンピュータダイアログセッションを開始する。自動アシスタント120(図6の「AA」)は、たとえば、アクションモジュール132または別の構成要素によって、店の営業時間に関する情報に対して1つまたは複数の検索を実行し、「<店>は午前10時に開店します」と答える。この時点で、自動アシスタント120は、現在の人間対コンピュータダイアログセッションにおいてユーザによって提供された自然言語入力のみに応答した。しかしながら、この例の場合、ユーザは、ニューヨークまでの航空券を検索するために、クライアントデバイス606、またはクライアントデバイス606も含むクライアントデバイスのエコシステム内の別のクライアントデバイスを最近動作させたと仮定する。ユーザは、自動アシスタント120との1つまたは複数の人間対コンピュータダイアログセッションに関与することによって、ウェブブラウザによって、またはそれらの何らかの組合せによって、この検索を実行した可能性がある。
【００５２】
この過去の検索活動に基づいて、いくつかの実装形態では、自動アシスタント120は(たとえば、プロアクティブコンテンツモジュール136によって)、周期的に/連続的に、または自動アシスタント120が現在の人間対コンピュータダイアログセッションにおいてすべての受信した自然言語入力に応答したとの判定に応答して、この検索に関係する情報、したがって、ユーザにとって潜在的に関心のある情報に関して1つまたは複数のオンラインソースを検索することができる。自動アシスタント120は、次いで、以下の非要請型コンテンツを図6に示した人間対コンピュータダイアログセッション内にプロアクティブに組み込むことができる:「ニューヨークまでの航空券を購入しましたか?直行便およびホテルのお得な取引を見つけました」。次いで、自動アシスタント120は(たとえば、プロアクティブコンテンツモジュール136によって)、クライアントデバイス606上にインストールされた旅行アプリケーションを開くためにユーザによって選択可能であるユーザインターフェース要素(たとえば、ディープリンク)646の形態で追加の非要請型コンテンツを人間対コンピュータダイアログ内に組み込むことができる。ユーザインターフェース要素646が選択された場合、旅行アプリケーションは、ユーザが、事前入力された情報を編集すること、および/または航空券を購入するために比較的少数の追加の入力コマンドを発行することができるように、所定の状態、たとえば、ニューヨークまでのフライトの予約に関する入力が既に事前入力されている状態に開くことが可能である。たとえば、航空券の予約に関して、または目的地に関する一般情報に関して、ウェブページに対する1つまたは複数のハイパーリンク648など、他の非要請型コンテンツが、選択可能なオプションとして同様に提示されてもよい。
【００５３】
図6のユーザインターフェース要素646は、それをタップすること、または場合によっては、それにタッチすることによって選択され得る視覚的要素であるが、これは、限定的であることを意味しない。図6に示したものと同様の人間対コンピュータダイアログがユーザとオーディオ出力デバイス(たとえば、前の図に示したスタンドアロン対話型スピーカー)との間に可聴的に生じてもよい。いくつかのそのような実装形態では、ユーザインターフェース要素は、ユーザによって肯定的に回答された場合、代わりに、質問または「選択され」得るオプションなど、可聴催促の形態をとってもよい。たとえば、視覚的なユーザインターフェース要素646を提示する代わりに、自動アシスタント120は、「あなたがニューヨークまでの航空券を予約することができるように、<旅行アプリケーション>を開くことを望むかどうか教えて」のようなものを可聴的に出力してもよい。いくつかの実装形態では、旅行アプリケーション自体が、旅行手配を予約するためのユーザとの人間対コンピュータダイアログに関連するように具体的に調整された、その独自の自動アシスタントを含んでもよい。いくつかのそのような実装形態では、ユーザは、旅行アプリケーション固有の自動アシスタントに「移動され」てよい。他の実装形態では、自動アシスタント120は、旅行アプリケーションに関連する様々な情報および状態を利用して、旅行アプリケーションを使用して航空券を予約するために必要とされる情報をユーザから要請する自然言語出力を構築することができる。自動アシスタント120は、次いで、ユーザに代わって、(たとえば、ユーザによって提供された話された自然言語入力に応答して)旅行アプリケーションと対話することができる。
【００５４】
図7は、この場合も、タッチスクリーン640およびユーザ入力フィールド644、ならびに人間対コンピュータダイアログセッションのトランスクリプト742を有するクライアントデバイス606を示す。この例では、ユーザ(「あなた」)は、自然言語入力「おはよう」をタイプすることおよび/または話すことによって(認識されて、テキストに変換され得る)人間対コンピュータダイアログを開始する。自動アシスタント120(「AA」)は、「おはようございます」と応答する。この時点で、満たされる必要がある、ユーザからの未解決の自然言語要求は存在しない。それに応じて、本明細書で説明する技法を使用して、自動アシスタント120は、たとえば、ユーザに関連するカレンダーから、他者とユーザによって交換された通信(たとえば、電子メール、テキストメッセージ)から、クライアントデバイス606上にインストールされたレストランアプリケーションからなど、ユーザが今夜<レストラン>に予約したと判定する。それに応じて、自動アシスタント120は、以下の記述を人間対コンピュータダイアログ内にプロアクティブに組み込む:「今夜<レストラン>に予約したことを忘れないでください」。次いで、自動アシスタント120は、ユーザが予約を閲覧する、かつ/または編集する/取り消すことができる状態にレストランアプリケーション(「マイリザベーション」)を開くためにユーザによって選択可能なユーザインターフェース要素746をプロアクティブに組み込む。加えて、自動アシスタント120は、ハイパーリンク748など、ユーザにとって潜在的に関心のある他のコンテンツをそのレストランおよび/またはそのレストラン付近のアトラクションに関連するウェブサイトにプロアクティブに組み込む。いくつかの実装形態では、ユーザがレストランに到着すると、(ユーザによって、および/または他者によって)そのレストランで前に撮影された写真、評価、推薦、特別料理など、異なる非要請型コンテンツを自動アシスタント120によって同じ人間対コンピュータダイアログセッションまたは新しい人間対コンピュータダイアログセッション内に組み込むことができる。
【００５５】
上記で説明した、プロアクティブに組み込まれた非要請型コンテンツの例は、限定的であることを意味しない。本明細書で説明する技法を使用して、ユーザにとって潜在的に関心のある他の非要請型コンテンツを人間対コンピュータダイアログ内にプロアクティブに組み込むことができる。たとえば、ユーザがスケジュールされた次のフライト(または、列車の出発、もしくは他の旅行手配)を有する、いくつかの実装形態では、自動アシスタント120は、非要請型コンテンツをユーザとの人間対コンピュータダイアログセッション内にプロアクティブに組み込むことができる。この非要請型コンテンツは、たとえば、ユーザのフライトが近づいているというリマインダ、ユーザがスケジュールされたフライトを閲覧または編集することを可能にするアプリケーションを開くために(タッチ、音声、ジェスチャなどによって)選択可能な1つまたは複数のユーザインターフェース要素、空港までの移動時間(または、移動時間にリンクする選択可能なユーザインターフェース要素)に関する情報などを含み得る。または、自動アシスタント120が(たとえば、ユーザのスケジュール、位置座標センサーなどに基づいて)ユーザのフライトがその目的地に到着したと判定した場合、自動アシスタント120は、車のサービスを呼ぶこと(もしくは、相乗りアプリケーションを開始すること)、ホテルまたは他のアトラクションまでの行先を得ること、近くのレストランなどに関する情報/ユーザインターフェース要素など、ユーザにとって関心のあり得る様々な情報および/またはユーザインターフェース要素を新しいまたは既に存在している人間対コンピュータダイアログセッション内にプロアクティブに組み込むことができる。
【００５６】
別の例として、自動アシスタント120は、ユーザが動作させている1つまたは複数のコンピューティングデバイスに変更(これは、場合によっては、ユーザに関連するコンピューティングデバイスの調整されたエコシステムの一部であり得る)が行われたと判定することができる。たとえば、自動アシスタント120は、ユーザとの最後の人間対コンピュータダイアログセッション以来、ユーザに関連する1つまたは複数のクライアントデバイス上にインストールされた1つまたは複数のアプリケーション(自動アシスタント120自体を含む)が更新されていると判定することができる。ユーザはそのような更新に関して知らされることに潜在的に関心があり得るため、自動アシスタントは、「おかえりなさい。あなたが留守にしていた間に私はタクシーの呼び方を学びました。タクシーが必要なときはいつでも私に言ってください」など、非要請型コンテンツを人間対コンピュータダイアログ内に組み込むことができる。
【００５７】
さらに別の例として、いくつかの実装形態では、自動アシスタント120は、特定の時間において(たとえば、ユーザにとって一般的に関心のある1つまたは複数の話題、ユーザのブラウジング履歴などに応じて)ユーザにとって潜在的に関心のある可能性がある様々な情報を判定することができ、これらの情報に関する非要請型コンテンツをユーザとの人間対コンピュータダイアログセッション内にプロアクティブに組み込むことができる。たとえば、特定のユーザが歴史およびエレクトロニクスに関心があると仮定する。様々な実装形態では、自動アシスタント120は、既存の人間対コンピュータダイアログセッションの間に、自らがユーザから受信したすべての自然言語入力に応答したと判定したとき、自動アシスタント120は、たとえば、その当日に関係する、ユーザにとって潜在的に関心のある情報をプロアクティブに組み込むことができる。たとえば、Nicola Teslaの誕生日に、歴史およびエレクトロニクスに関心があるユーザに、Teslaに関連するアプリまたはウェブページを開くためにユーザによって選択可能なユーザインターフェース要素を提示することができる。別の例として、今日はユーザの結婚記念日であると仮定する。自動アシスタントは、花のウェブサイト、レストランなどに対するリンクなど、記念日に関してユーザにとって関心のある可能性が高いことになるグラフィカル要素または他の情報を既存の人間対コンピュータダイアログセッション内にプロアクティブに組み込むことができる。
【００５８】
さらに別の例として、いくつかの実装形態では、ユーザのロケーション(たとえば、ユーザが携帯するコンピューティングデバイスの位置座標センサーによって判定される)は、非要請型コンテンツをユーザとの人間対コンピュータダイアログセッション内にプロアクティブに組み込むように自動アシスタント120に催促することができる。たとえば、ユーザが食料品店にいるかまたは食料品店に近いと仮定する。自動アシスタント120は、たとえば、ユーザに関連する(たとえば、クライアントデバイス上に局所的に記憶された、またはクラウドベースの)1つまたは複数の食料品店リストに基づいて、その食料品店にユーザが手に入れることになっている品物が存在すると判定することができる。自動アシスタント120は、次いで、非要請型コンテンツをユーザとの人間対コンピュータダイアログ内にプロアクティブに組み込むことができ、ここで、非要請型コンテンツは、必要な品物、それらの品物に関する情報、それらの品物に利用可能な割引などを含む。
【００５９】
さらに別の例として、いくつかの実装形態では、ユーザが頻繁に要求する情報またはアクションを非要請型コンテンツとして人間対コンピュータダイアログセッション内にプロアクティブに組み込むことができる。たとえば、ユーザが様々な話題に関して自動アシスタント120と会話しており、ユーザが通常夕食をとる時間に近づいていると仮定する。いくつかの実装形態では、自動アシスタント120は、ピザを注文するため、(ローカルメモリから、または頻繁に訪問するレシピウェブページからなど)レシピを開くためになど、ユーザによって選択可能なユーザインターフェース要素など、食べることに関する非要請型コンテンツを既存の人間対コンピュータダイアログセッション内に組み込むことができる。他の実装形態では、既存の人間対コンピュータダイアログセッション内に組み込まれ得る非要請型コンテンツは、限定されるものではないが、トレンドニュース記事、トレンド検索、ユーザが前に発行した検索クエリに対して更新された検索結果などを含み得る。
【００６０】
当然、ユーザが常に非要請型コンテンツを要望するとは限らない。たとえば、ユーザは、大渋滞の中を運転している場合がある、緊急事態にある場合があり、非要請型コンテンツを(たとえば、ビデオ呼で)受信することを望まないことを示唆するような方法でコンピューティングデバイスを動作させている場合がある、などである。したがって、いくつかの実装形態では、自動アシスタント120は、(たとえば、ロケーション信号、会話のコンテキスト、1つまたは複数のアプリケーションの状態、加速度計信号などの信号に基づいて)非要請型コンテンツを受信するためのユーザによる要望基準を判定するように構成され得、この基準が1つまたは複数のしきい値を満たす場合のみ、非要請型コンテンツを提供することができる。
【００６１】
同様に、いくつかの実装形態では、自動アシスタント120は、特定の時間期間の間に非要請型コンテンツを(新しいまたは既存の人間対コンピュータダイアログセッションの一部として)提供することができる。たとえば、ユーザが午前7時から午前8時の間に自動アシスタント120を動作させているクライアントデバイスの聞こえる範囲内に検出された場合、自動アシスタント120は、「おはようございます」、「雨が降っていますから傘をお忘れなく」、「405号に渋滞が発生しています」、「今日のヘッドラインは...」、「今日のスケジュールは...」など、非要請型挨拶を自動的に出力することができる。
【００６２】
別の例として、いくつかの実装形態では、自動アシスタント120は、特定の時間および/またはロケーションにおける複数のユーザの活動を考慮に入れて、特定のユーザが非要請型コンテンツを確実に受信する可能が高いと判定することができる。様々な実装形態では、自動アシスタント120は、複数のユーザからの検索クエリを分析して、特定のロケーション、特定の時刻などに関連し得る検索におけるスパイク、傾向、および/または他のパターンを識別することができる。たとえば、史跡を訪れている多くのユーザが、「何階建てなのか」、「いつ建てられたのか」、「どのくらい古いのか」など、同様のウェブ検索を彼らのモバイルデバイス上で実行していると仮定する。これらの検索の中に明らかなパターンまたは傾向を検出した後で、自動アシスタント120は、新しいユーザがその史跡に到着するとき、非要請型コンテンツをそのユーザにプロアクティブに提供することができる。
【００６３】
図8は、本明細書で開示する実装形態による例示的な方法800を示す流れ図である。便宜上、流れ図の動作は、これらの動作を実行するシステムを参照して説明される。このシステムは、自動アシスタント120の1つまたは複数の構成要素など、様々なコンピュータシステムの様々な構成要素を含み得る。その上、方法800の動作は特定の順序で示されているが、これは限定的であることを意味しない。1つまたは複数の動作は、並べ替えられてもよく、省かれてもよく、または追加されてもよい。
【００６４】
ブロック802において、システムは、ユーザと自動アシスタントとの間の既存の人間対コンピュータダイアログセッションにおいて、自動アシスタントが人間対コンピュータダイアログセッションの間にユーザから受信したすべての自然言語入力に応答したと判定することができる。いくつかの実装形態では、これは必要とはされないが、これは、すべての自然言語入力に応答した後で経過するまでの何らかの事前判定された時間間隔にわたって待機するステップを含み得る。
【００６５】
いくつかの実装形態では、システムは、ブロック804における、(すなわち、前述の「要望基準」によって表され得るように)ユーザが非要請型コンテンツを望む可能性が高いというさらなる判定にのみ応答して、動作806〜810のうちの1つまたは複数の実行を進めることができる。このさらなる判定は、人間対コンピュータダイアログセッションの会話コンテキスト、人間対コンピュータダイアログセッションとは無関係な信号(たとえば、ロケーション信号、加速度計信号など)から判定されるユーザのコンテキスト、またはそれらの組合せなど、様々なソースに基づいて行われてよい。たとえば、(たとえば、ユーザが最新交通情報または方向を尋ねた後で)ユーザの加速度計および/または位置座標センサー信号に基づいて、ユーザが現在運転中であると判定された場合、システムは、ユーザが非要請型コンテンツに気をとられることを望む可能性は低いと判定することができる。別の例として、人間対コンピュータダイアログセッションのコンテキストは、ユーザが非要請型コンテンツに気をとられることを望まないであろうと示唆することができる。たとえば、ユーザが、最も近い救急処置室のロケーションに関して自動アシスタントに尋ねた場合、または怪我の処置に関して尋ねた場合、判定される要望基準は、比較的低い(たとえば、しきい値を満たすことができない)可能性があり、自動アシスタントは、要求された情報に対するフォローアップとして非要請型コンテンツの提供を控えることができる。さらに別の例として、ユーザが、完了まである程度の時間がかかりそうであり、ユーザの注意を必要とすることになる、何らかのアクション(たとえば、ビデオ呼を開始すること、電話呼を開始すること、映画を再生することなど)をトリガするように自動アシスタントに求めた場合、ユーザが追加の非要請型コンテンツに気をとられることを望む可能性は低いことになる。
【００６６】
ブロック806において、システムは、ユーザの1つまたは複数の特性に基づいて、ユーザにとって潜在的に関心のある情報またはユーザにとって潜在的に関心のある1つまたは複数のアクションを識別することができる。上述のように、ブロック806の動作は、ブロック802〜804の判定に応答して実行されてよいか、または自動アシスタントが、所与の時点で、非要請型コンテンツを提供する「準備ができている」ように、継続ベースで実行されてよい。様々な実装形態では、自動アシスタントは、様々なソースに基づいて、限定されるものではないが、ユーザの検索履歴、ブラウジング履歴、人間対コンピュータダイアログ履歴(同じセッション、および/または同じまたは異なるクライアントデバイス上の前のセッションを含む)、ユーザのロケーション(たとえば、ユーザのスケジュール、ソーシャルネットワーク状態(たとえば、チェックイン)、位置座標センサーなどから判定される)、スケジュール/カレンダー、ユーザにとって関心のある一般的な話題(ユーザによって手作業で設定され得、かつ/またはユーザの活動に基づいて学習され得る)などを含めて、ユーザにとって潜在的に関心のある情報またはアクションを識別することができる。
【００６７】
ブロック808において、システムは、ユーザにとって潜在的に関心のある情報または潜在的に関心のある1つまたは複数のアクションを示す非要請型コンテンツを生成することができる。この非要請型コンテンツは、たとえば、ユーザにとって潜在的に関心のある情報を自然言語フォーマットで提供する自然言語出力(たとえば、可聴出力または視覚形態)、追加の情報を取得し、かつ/または1つまたは複数のタスク(たとえば、リマインダを設定すること、カレンダーエントリを作成すること、予約を作成すること、事前判定された状態でアプリケーションを開くことなど)をトリガするためにユーザによって選択可能なユーザインターフェース要素(グラフィカルまたは可聴)などを含み得る。
【００６８】
ブロック810において、システムは、ブロック808において生成された非要請型コンテンツを既存の人間対コンピュータダイアログセッション内に組み込むことができる。たとえば、非要請型コンテンツは、自動アシスタントからの自然言語出力、カード、ハイパーリンク、可聴催促などのユーザインターフェース要素などとして提示され得る。非要請型コンテンツを既存の人間対コンピュータダイアログ内に組み込むことは、たとえば、(たとえば、ロックスクリーンまたはプルダウンメニュー上のカードなど)情報を単にユーザに見せることとは異なる。ユーザは自動アシスタントを用いて人間対コンピュータダイアログセッションに既に関与しており、したがって、非要請型コンテンツは、(ユーザがしばしば無視することがあり、かつ/またはあまりにも多くの通知がユーザに殺到する可能性がある)ロックスクリーン上でコンテンツがユーザに単に表される場合よりも、ユーザが見る/聞く可能性、および作動される可能性がより高くなり得る。
【００６９】
図9は、本明細書で開示する実装形態による例示的な方法900を示す流れ図である。便宜上、流れ図の動作は、これらの動作を実行するシステムを参照して説明される。このシステムは、自動アシスタント120の1つまたは複数の構成要素など、様々なコンピュータシステムの様々な構成要素を含み得る。その上、方法900の動作は特定の順序で示されているが、これは限定的であることを意味しない。1つまたは複数の動作は、並べ替えられてもよく、省かれてもよく、または追加されてもよい。
【００７０】
ブロック902において、システムは、1つまたは複数の信号に基づいて、ユーザが1つまたは複数のオーディオ出力デバイス(たとえば、自動アシスタントのインスタンスを実行しているコンピューティングデバイスに動作可能に結合された1つまたは複数のスピーカー、自動アシスタントのインスタンスを実行しているスタンドアロン対話型スピーカーなど)の聞こえる範囲内にいると判定することができる。これらの信号は、様々な形態をとってよい。いくつかの実装形態では、1つまたは複数の信号は、システムとは異なる、ユーザが動作させているコンピューティングデバイスによってトリガされ得、1つまたは複数のプロセッサに動作可能に結合された1つまたは複数の通信インターフェースにおいて受信される。たとえば、1つのコンピューティングデバイスは、ユーザが、運転している、(たとえば、音楽または映画をプレイバックするために)特定のアプリケーションを動作させているなど、特定の活動に関与しているという通知を他のコンピューティングデバイスにプッシュすることができる。いくつかの実装形態では、1つまたは複数の信号は、システムとコンピューティングデバイスの共存の検出を含み得る。いくつかの実装形態では、1つまたは複数の信号は、ユーザが、文書を準備している、様々な検索を実行している、メディアをプレイバックしている、写真を閲覧している、電話/ビデオ呼に関与しているなど、システムとは別個のコンピューティングデバイス上で実行しているアプリケーションの状態の表示を含み得る。いくつかの実装形態では、これは必要とされないが、人間対コンピュータダイアログは、ユーザが1つまたは複数のオーディオ出力デバイスの聞こえる範囲内にいるとの判定に応答して開始され得る。図9のブロック904〜908は、図8のブロック804〜808と同様であり得る。図9には示されていないが、様々な実装形態では、自動アシスタントは、ブロック804に関して上記で説明したように、非要請型コンテンツを提供する前に、ユーザが非要請型コンテンツを望む可能性が高いかどうかを判定し得る。
【００７１】
図10は、本明細書で説明する技法の1つまたは複数を実行するために随意に利用され得る例示的なコンピューティングデバイス1010のブロック図である。いくつかの実装形態では、クライアントコンピューティングデバイス、自動アシスタント120、および/または他の構成要素のうちの1つまたは複数は、例示的なコンピューティングデバイス1010の1つまたは複数の構成要素を含み得る。
【００７２】
コンピューティングデバイス1010は、一般に、バスサブシステム1012を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ1014を含む。これらの周辺デバイスは、たとえば、メモリサブシステム1025およびファイル記憶サブシステム1026を含む記憶サブシステム1024と、ユーザインターフェース出力デバイス1020と、ユーザインターフェース入力デバイス1022と、ネットワークインターフェースサブシステム1016とを含み得る。入出力デバイスは、ユーザがコンピューティングデバイス1010と対話することを可能にする。ネットワークインターフェースサブシステム1016は、インターフェースを外部ネットワークに提供し、他のコンピューティングデバイス内の対応するインターフェースデバイスに結合される。
【００７３】
ユーザインターフェース入力デバイス1022は、キーボード、マウス、トラックボール、タッチパッド、またはグラフィクスタブレットなどのポインティングデバイス、スキャナ、ディスプレイ内に組み込まれたタッチスクリーン、音声認識システムなどのオーディオ入力デバイス、マイクロフォン、および/または他のタイプの入力デバイスを含み得る。概して、「入力デバイス」という用語の使用は、すべての考えられるタイプのデバイス、および情報をコンピューティングデバイス1010内または通信ネットワーク上に入力する方法を含むことを意図する。
【００７４】
ユーザインターフェース出力デバイス1020は、ディスプレイサブシステム、プリンタ、ファクス機械、またはオーディオ出力デバイスなどの非視覚的ディスプレイを含み得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影デバイス、または視覚画像を作成するための何らかの他の機構を含み得る。ディスプレイサブシステムは、オーディオ出力デバイスを介してなど、非視覚的ディスプレイを提供することもできる。概して、「出力デバイス」という用語の使用は、すべての考えられるタイプのデバイス、およびコンピューティングデバイス1010からユーザに、または別の機械またはコンピューティングデバイスに情報を出力するための方法を含むことが意図される。
【００７５】
記憶サブシステム1024は、本明細書で説明するモジュールのうちのいくつかまたはすべての機能を提供するプログラミング構成およびデータ構成を記憶する。たとえば、記憶サブシステム1024は、図8および図9の方法の選択された態様を実行するための、ならびに図1に示した様々な構成要素を実装するための論理を含み得る。
【００７６】
これらのソフトウェアモジュールは、概して、プロセッサ1014によって単独で、または他のプロセッサと組み合わせて実行される。記憶サブシステム1024内で使用されるメモリ1025は、プログラム実行の間に命令およびデータを記憶するためのメインランダムアクセスメモリ(RAM)1030と、固定命令が記憶される読取り専用メモリ(ROM)1032とを含むいくつかのメモリを含み得る。ファイル記憶サブシステム1026は、プログラムファイルおよびデータファイルのための永続記憶装置を提供することができ、ハードディスクドライブ、関連するリムーバブル媒体とともにフロッピーディスクドライブ、CD-ROMドライブ、光ドライブ、またはリムーバブル媒体カートリッジを含み得る。いくつかの実装形態の機能を実装するモジュールは、記憶サブシステム1024内の、またはプロセッサ1014によってアクセス可能な他の機械内のファイル記憶サブシステム1026によって記憶され得る。
【００７７】
バスサブシステム1012は、コンピューティングデバイス1010の様々な構成要素およびサブシステムに意図されるように互いと通信させるための機構を提供する。バスサブシステム1012は、単一のバスとして概略的に示されているが、バスサブシステムの代替実装形態は複数のバスを使用してよい。
【００７８】
コンピューティングデバイス1010は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムもしくはコンピューティングデバイスを含めて、様々なタイプのものであってよい。コンピュータおよびネットワークの絶え間なく変化する性質により、図10に示すコンピューティングデバイス1010の説明は、いくつかの実装形態を例示するための特定の例としてのみ意図されている。図10に示したコンピューティングデバイスよりも多数のまたは少数の構成要素を有するコンピューティングデバイス1010の多くの他の構成が可能である。
【００７９】
本明細書で論じたいくつかの実装形態が、ユーザに関する個人情報(たとえば、他の電子通信から抽出されるユーザデータ、ユーザのソーシャルネットワークに関する情報、ユーザのロケーション、ユーザの時間、ユーザの生体情報、ならびにユーザの活動および人口統計学的情報、ユーザ同士の間の関係など)を収集または使用することができる状況では、情報が収集されるかどうか、個人情報が記憶されるかどうか、個人情報が使用されるかどうか、ならびにユーザに関する情報がどのように収集、記憶、および使用されるかを制御するための1つまたは複数の機会がユーザに提供される。すなわち、本明細書で論じたシステムおよび方法は、関連するユーザから、そうするようにという明示的な許可を受信したときのみ、ユーザ個人情報を収集、記憶、および/または使用する。
【００８０】
たとえば、プログラムまたは特徴が、特定のユーザ、またはそのプログラムまたは特徴に関連する他のユーザに関するユーザ情報を収集するかどうかに対する制御がユーザに提供される。個人情報が収集されるそれぞれのユーザには、そのユーザに関連する情報収集に対する制御を可能にするための、情報が収集されるかどうかについて、および情報のどの部分が収集されることになるかについての許可または認可を提供するための1つまたは複数のオプションが提示される。たとえば、通信ネットワークを介して1つまたは複数のそのような制御オプションがユーザに提供され得る。加えて、一部のデータは、個人的に識別可能な情報が除去されるように、そのデータが記憶または使用される前に1つまたは複数の方法で扱われ得る。一例では、ユーザの識別情報は、個人的に識別可能な情報が判定され得ないように扱われ得る。別の例として、ユーザの地理的ロケーションは、ユーザの特定のロケーションが判定され得ないように、より広い領域に一般化され得る。本開示の文脈では、親子関係など、システムによって捕捉されたいずれの関係も、たとえば、それらの関係が、自然言語入力をパースおよび/または解釈するためにそれらの関係を使用して、自動アシスタントの外部でアクセス可能でないように、セキュアな様式で維持され得る。
【００８１】
上記で説明した利点に加えて、本明細書で説明した技法は、自動アシスタントをユーザにとってより「自然に」または「人間的」に見えるようにすることができ、これは自動アシスタントとの増大された対話を奨励し得ることを理解されたい。
【００８２】
いくつかの実装形態について本明細書で説明され例示してきたが、機能を実行するための、および/もしくは結果を得るための、様々な他の手段および/もしくは構造、ならびに/または本明細書で説明した利点のうちの1つまたは複数が利用されてよく、そのような変形および/または変更はそれぞれ、本明細書で説明した実装形態の範囲内であると見なされる。より一般的に、本明細書で説明した、すべてのパラメータ、寸法、材料、および構成は、例示であり、実際のパラメータ、寸法、材料、および/または構成は、本教示が使用される特定の1つまたは複数のアプリケーションに依存することになる。当業者は、せいぜいルーチン実験を使用して、本明細書で説明した特定の実装形態に対する多くの均等物を認識することになるか、または確認することが可能になる。したがって、前述の実装形態は、例としてのみ提示され、添付の特許請求の範囲およびそれらの均等物の範囲内で、具体的に説明し特許請求される以外の実装形態が実施され得ることを理解されよう。本開示の実装形態は、本明細書で説明した、各個々の特徴、システム、物品、材料、キット、および/または方法に関する。加えて、2つ以上のそのような特徴、システム、物品、材料、キット、および/または方法の任意の組合せは、そのような特徴、システム、物品、材料、キット、および/または方法が互いに矛盾しない場合、本開示の範囲内に含まれる。
【符号の説明】
【００８３】
101  ユーザ
1061〜N  クライアントコンピューティングデバイス、クライアントデバイス
1071〜N  メッセージ交換クライアント
1091〜N  アプリケーション、MISC.APP
120  自動アシスタント
122  自然言語プロセッサ
130  応答性コンテンツエンジン
132  アクションモジュール
134  エンティティモジュール
136  コンテンツモジュール、プロアクティブコンテンツモジュール
210  コンピューティングデバイス
280  自然言語入力
282  応答性自然言語出力
406  クライアントデバイス
606  クライアントデバイス
640  タッチスクリーン
642  トランスクリプト
644  入力フィールド
646  ユーザインターフェース要素(たとえば、ディープリンク)
746  ユーザインターフェース要素
748  ハイパーリンク
800  方法
900  方法
1010  コンピューティングデバイス
1012  バスサブシステム
1014  プロセッサ
1016  ネットワークインターフェースサブシステム
1020  ユーザインターフェース出力デバイス
1022  ユーザインターフェース入力デバイス
1024  記憶サブシステム
1025  メモリサブシステム
1026  ファイル記憶サブシステム
1030  メインランダムアクセスメモリ(RAM)
1032  読取り専用メモリ(ROM)
【図１】
0006903764.tif 000002
【図２】
0006903764.tif 000003
【図３】
0006903764.tif 000004
【図４】
0006903764.tif 000005
【図５】
0006903764.tif 000006
【図６】
0006903764.tif 000007
【図７】
0006903764.tif 000008
【図８】
0006903764.tif 000009
【図９】
0006903764.tif 000010
【図１０】
0006903764.tif 000011