(57)【特許請求の範囲】
【請求項１】
1つまたは複数のプロセッサが、ユーザと自動アシスタントとの間の既存の人間対コンピュータダイアログセッションのコンテンツに基づいて、前記ユーザまたは自動アシスタントによって言及されたエンティティを識別するステップと、
前記プロセッサのうちの1つまたは複数が、前記自動アシスタントが前記ユーザに対する前記自動アシスタントの1つまたは複数の未解決の義務を満たしたと判定するステップと、
前記プロセッサのうちの1つまたは複数が、1つまたは複数のデータベース内に含まれたエンティティデータに基づいて、前記エンティティに関する1つまたは複数の事実を識別するステップであって、前記エンティティが、前記データベースのうちの1つまたは複数の中のエンティティクラスに関連付けられる、識別するステップと、
前記プロセッサのうちの1つまたは複数が、前記1つまたは複数の事実の各々に関して、前記ユーザにとって潜在的に関心のある対応する基準を判定するステップであって、各事実に対する潜在的に関心のある前記対応する基準が、
前記エンティティと前記事実との間の関係、および
前記エンティティと同じエンティティクラスを共有する他のエンティティと、前記他のエンティティに関するそれぞれの事実との間の同じ関係に対する他のユーザの関心
に基づいて判定される、判定するステップと、
前記プロセッサのうちの1つまたは複数が、非要請型自然言語コンテンツを生成するステップであって、前記非要請型自然言語コンテンツが、潜在的に関心のある前記対応する1つまたは複数の基準に基づいて選択された前記事実のうちの1つまたは複数を含む、生成するステップと、
前記自動アシスタントが前記ユーザに対する前記自動アシスタントの1つまたは複数の未解決の義務を満たしたとの前記判定の後で、前記自動アシスタントが、前記非要請型自然言語コンテンツを前記既存の人間対コンピュータダイアログセッション内に組み込むステップであって、前記既存の人間対コンピュータダイアログセッションの一部として前記非要請型自然言語コンテンツを前記ユーザに自動的に出力させる、組み込むステップと
を含む、方法。
【請求項２】
前記ユーザにとって潜在的に関心のある前記対応する基準を判定する前記ステップが、前記ユーザに関連するユーザプロファイルに関連するデータにさらに基づく、請求項1に記載の方法。
【請求項３】
前記ユーザプロファイルに関連する前記データが、前記ユーザに関連する検索履歴を含む、請求項2に記載の方法。
【請求項４】
前記ユーザにとって潜在的に関心のある前記対応する基準を判定する前記ステップが、1人または複数の人々の間の1つまたは複数のオンライン会話のコーパスの分析にさらに基づく、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記分析が、1つまたは複数のエンティティに対する1つまたは複数の参照、ならびに前記1つまたは複数のエンティティに対する前記1つまたは複数の参照の特定の近接性内の前記1つまたは複数のエンティティに関する事実に対する1つまたは複数の参照の検出を含む、請求項4に記載の方法。
【請求項６】
前記1つまたは複数のエンティティが、前記ユーザまたは前記自動アシスタントによって言及された前記エンティティを含む、請求項5に記載の方法。
【請求項７】
前記1つまたは複数のエンティティが、前記ユーザまたは前記自動アシスタントによって言及された前記エンティティと前記エンティティクラスを共有する、請求項5または6に記載の方法。
【請求項８】
前記1つまたは複数のエンティティが、前記ユーザまたは前記自動アシスタントによって言及された前記エンティティと1つまたは複数の属性を共有する、請求項5から7のいずれか一項に記載の方法。
【請求項９】
前記ユーザにとって潜在的に関心のある前記対応する基準を判定する前記ステップが、前記1つまたは複数の事実のうちの所与の事実が前記ユーザと前記自動アシスタントの間の前記既存の人間対コンピュータダイアログセッションにおいてまたは前記ユーザと前記自動アシスタントとの間の前の人間対コンピュータダイアログセッションにおいて前に参照されていることを検出するステップを含み、前記所与の事実に対して判定された潜在的に関心のある前記基準が前記検出を反映する、請求項1から8のいずれか一項に記載の方法。
【請求項１０】
前記プロセッサのうちの1つまたは複数が、前記1つまたは複数の事実のうちの所与の事実を、前記所与の事実が前記ユーザと前記自動アシスタントとの間の前記既存の人間対コンピュータダイアログにおいてまたは前記ユーザと前記自動アシスタントとの間の前記前の人間対コンピュータダイアログセッションにおいて前に参照されているとの検出に基づいて考慮事項から除外するステップをさらに含む、請求項9に記載の方法。
【請求項１１】
前記エンティティがロケーションであり、前記1つまたは複数の事実のうちの所与の事実が、前記ロケーションにおいてまたはその近くで生じるイベントである、請求項1から10のいずれか一項に記載の方法。
【請求項１２】
前記エンティティが人物であり、前記1つまたは複数の事実のうちの所与の事実が、前記人物が関与する今度のイベントである、請求項1から11のいずれか一項に記載の方法。
【請求項１３】
1つまたは複数のプロセッサと、前記1つまたは複数のプロセッサに動作可能に結合されたメモリとを含むシステムであって、前記メモリが命令を記憶し、前記命令が、1つまたは複数のプロセッサによる前記命令の実行に応答して、
ユーザと自動アシスタントとの間の既存の人間対コンピュータダイアログセッションのコンテンツに基づいて、前記ユーザまたは前記自動アシスタントによって言及されたエンティティを識別することと、
前記自動アシスタントが前記ユーザに対する前記自動アシスタントの1つまたは複数の未解決の義務を満たしたと判定することと、
1つまたは複数のデータベース内に含まれたエンティティデータに基づいて、前記エンティティに関する1つまたは複数の事実を識別することであって、前記エンティティが、前記データベースのうちの1つまたは複数の中のエンティティクラスに関連付けられる、識別することと、
前記1つまたは複数の事実の各々に関して、前記ユーザにとって潜在的に関心のある対応する基準を判定することであって、各事実に対する潜在的に関心のある前記対応する基準が、
前記エンティティと前記事実との間の関係、および
前記エンティティと同じエンティティクラスを共有する他のエンティティと前記他のエンティティに関するそれぞれの事実との間の同じ関係に対する他のユーザの関心
に基づいて判定される、判定することと、
非要請型自然言語コンテンツを生成することであって、前記非要請型自然言語コンテンツが、潜在的に関心のある前記対応する1つまたは複数の基準に基づいて選択された前記事実のうちの1つまたは複数を含む、生成することと、
前記自動アシスタントが前記ユーザに対する前記自動アシスタントの1つまたは複数の未解決の義務を満たしたとの前記判定の後で、前記自動アシスタントが、前記非要請型自然言語コンテンツを前記既存の人間対コンピュータダイアログセッション内に組み込むことであって、前記既存の人間対コンピュータダイアログセッションの一部として前記非要請型自然言語コンテンツを前記ユーザに自動的に出力させる、組み込むことと
を前記1つまたは複数のプロセッサに実行させる、
システム。
【請求項１４】
前記ユーザにとって潜在的に関心のある前記対応する基準を前記判定することが、前記ユーザに関連するユーザプロファイルに関連するデータにさらに基づく、請求項13に記載のシステム。
【請求項１５】
前記ユーザプロファイルに関連する前記データが、前記データに関連する検索履歴を含む、請求項14に記載のシステム。
【請求項１６】
前記ユーザにとって潜在的に関心のある前記対応する基準を前記判定することが、1人または複数の人々の間の1つまたは複数のオンライン会話のコーパスの分析にさらに基づく、請求項13から15のいずれか一項に記載のシステム。
【請求項１７】
前記分析が、1つまたは複数のエンティティに対する1つまたは複数の参照、ならびに前記1つまたは複数のエンティティに対する前記1つまたは複数の参照の特定の近接性内の前記1つまたは複数のエンティティに関する事実に対する1つまたは複数の参照の検出を含む、請求項16に記載のシステム。
【請求項１８】
前記1つまたは複数のエンティティが、前記ユーザまたは前記自動アシスタントによって言及された前記エンティティを含む、請求項17に記載のシステム。
【請求項１９】
前記1つまたは複数のエンティティが、前記ユーザまたは前記自動アシスタントによって言及された前記エンティティとエンティティクラスを共有する、請求項17または18に記載のシステム。
【請求項２０】
命令を含む少なくとも1つの非一時的コンピュータ可読記憶媒体であって、前記命令が、1つまたは複数のプロセッサによる前記命令の実行に応答して、
ユーザと自動アシスタントとの間の既存の人間対コンピュータダイアログセッションのコンテンツに基づいて、前記ユーザまたは前記自動アシスタントによって言及されたエンティティを識別する動作と、
前記自動アシスタントが前記ユーザに対する前記自動アシスタントの1つまたは複数の未解決の義務を満たしたと判定する動作と、
1つまたは複数のデータベース内に含まれたエンティティデータに基づいて、前記エンティティに関する1つまたは複数の事実を識別する動作であって、前記エンティティが、前記データベースのうちの1つまたは複数の中のエンティティクラスに関連付けられる、識別する動作と、
前記1つまたは複数の事実の各々に関して、前記ユーザにとって潜在的に関心のある対応する基準を判定する動作であって、各事実に対する潜在的に関心のある前記対応する基準が、
前記エンティティと前記事実との間の関係、および
前記エンティティと同じエンティティクラスを共有する他のエンティティと前記他のエンティティに関するそれぞれの事実との間の同じ関係に対する他のユーザの関心
に基づいて判定される、判定する動作と、
非要請型自然言語コンテンツを生成する動作であって、前記非要請型自然言語コンテンツが、潜在的に関心のある前記対応する1つまたは複数の基準に基づいて選択された前記事実のうちの1つまたは複数を含む、生成する動作と、
前記自動アシスタントが前記ユーザに対する前記自動アシスタントの1つまたは複数の未解決の義務を満たしたとの前記判定の後で、前記自動アシスタントが、前記非要請型自然言語コンテンツを前記既存の人間対コンピュータダイアログセッション内に組み込む動作であって、前記既存の人間対コンピュータダイアログセッションの一部として前記非要請型自然言語コンテンツを前記ユーザに自動的に出力させる、組み込む動作と
を前記1つまたは複数のプロセッサに実行させる、
少なくとも1つの非一時的コンピュータ可読記憶媒体。
【請求項２１】
命令を含む少なくとも1つの非一時的コンピュータ可読記憶媒体であって、前記命令が、1つまたは複数のプロセッサによる前記命令の実行に応答して、請求項1から12のいずれか一項に記載の方法を前記1つまたは複数のプロセッサに実行させる、
少なくとも1つの非一時的コンピュータ可読記憶媒体。
【請求項２２】
1つまたは複数のプロセッサと、前記1つまたは複数のプロセッサに動作可能に結合されたメモリとを含むシステムであって、前記メモリが命令を記憶し、前記命令が、前記1つまたは複数のプロセッサによる前記命令の実行に応答して、請求項1から12のいずれか一項に記載の方法を前記1つまたは複数のプロセッサに実行させる、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非要請型コンテンツの人間対コンピュータダイアログ内へのプロアクティブな組込みに関する。
【背景技術】
【０００２】
人間は、本明細書で(「チャットボット」、「対話型パーソナルアシスタント」、「インテリジェントパーソナルアシスタント」、「会話型エージェント」などと呼ばれる場合もある)「自動アシスタント」と呼ばれる対話型ソフトウェアアプリケーションを用いて人間対コンピュータダイアログに関与することができる。たとえば、(自動アシスタントと対話するとき、「ユーザ」と呼ばれることがある)人間は、場合によっては、テキストに変換され、次いで、処理され得る、口語自然言語入力(すなわち、発話)を使用して、かつ/またはテキスト(たとえば、タイプされた)自然言語入力を提供することによって、コマンドおよび/または要求を提供することができる。自動アシスタントは、一般に、利用可能なサービスを提供する際に非効率性をもたらし得るプロアクティブとは対照的に、リアクティブである。たとえば、自動アシスタントは、ユーザにとって潜在的に関心のある特定の情報をプロアクティブには取得および提供しない。したがって、自動アシスタントが、実質的な情報で応答することになる前に、かつ/またはユーザに代わって1つまたは複数のタスクを開始することになる前に、ユーザは(たとえば、話されたまたはタイプされた)最初の自然言語入力を提供しなければならない。
【発明の概要】
【課題を解決するための手段】
【０００３】
ユーザにとって潜在的に関心のある非要請型コンテンツを人間対コンピュータダイアログセッション内にプロアクティブに組み込むように自動アシスタントを構成するための技法について本明細書で説明する。いくつかの実装形態では、本開示の選択された態様で構成された自動アシスタント、および/または自動アシスタントと連携して働く1つまたは複数の他の構成要素は、既存の人間対コンピュータダイアログセッションにおいて、自動アシスタントがユーザに対するその義務を効果的に満たした(たとえば、自動アシスタントがさらなる命令を待っている)と判定するとき、そのような組込みを実行することができる。これは、ユーザが「おはよう」と発し、自動アシスタントが一般的な応答「おはようございます」を提供するなど、単純であり得る。そのようなシナリオでは、ユーザは、依然として、人間対コンピュータダイアログセッションに(少なくとも手短に)関与している可能性があり得る(たとえば、人間対コンピュータダイアログの進行中のトランスクリプトを示すチャットボットスクリーンは依然として開かれている場合があり、ユーザは、依然として、それを通して人間対コンピュータダイアログが実装されるオーディオ出力デバイスの聞こえる範囲内にいる場合がある、など)。したがって、人間対コンピュータダイアログセッション内に組み込まれたいずれの非要請型コンテンツも、ユーザによって消費される可能性が高い。
【０００４】
いくつかの実装形態では、非要請型コンテンツは、ユーザのクエリ(たとえば、余談(aside)、ついでに、など)に直接的に応答しない所見(たとえば、自然言語記述)として提示され得る。いくつかのそのような実装形態では、「ところで...」、「...知っていましたか」、「ついでに言うと...」など、ユーザが具体的に要請しなかったが、場合によっては、現在の会話のコンテキストに関連し得るものとしてそのコンテンツを識別する適切な記述で非要請型コンテンツに前置きがつけられてよい。ことによるとユーザのクエリに直接応答しないが、非要請型コンテンツは、様々な形で会話のコンテキストから脱線する(tangential to)場合がある。
【０００５】
人間対コンピュータダイアログ内に組み込まれる、ユーザにとって潜在的に関心のある非要請型(たとえば、脱線する)コンテンツは、様々な方法で選択され得る。いくつかの実装形態では、コンテンツは、ユーザおよび/または自動アシスタントによって会話の中で言及された1つまたは複数のエンティティに基づいて選択された1つまたは複数の事実の形態をとってよい。たとえば、ユーザまたは自動アシスタントが特定の著名人について言及した場合、自動アシスタントは、その著名人に関する、別の同様の著名人に関するなどの、1つまたは複数の事実を組み込むことができる。エンティティについてのまたは場合によってはエンティティに関連する事実は、そのエンティティに関する最近のニュース項目(たとえば、「<エンティティ>が先週57歳になったことを知っていましたか?」、「ところで、<エンティティ>は来月あなたの町に来ることになっています」、「ところで、<エンティティ>から新たな製品のリコールが出ています」など)、一般的な事実(たとえば、誕生日、所属政党、自己資本、話題、配偶者、家族、賞、価格、可用性など)など、様々な形で出現し得る。
【０００６】
様々な実装形態では、人間対コンピュータダイアログにおいて言及されたエンティティに関する複数の事実は、たとえば、いわゆる「ユーザにとって潜在的に関心のある基準」に基づいて判定されランク付けされてよく、最高にランク付けされた事実がユーザに提示され得る。潜在的な関心の事実の基準は、様々な信号に基づいて様々な方法で判定され得る。
【０００７】
いくつかの実装形態では、エンティティに関する特定の事実に対する潜在的な関心の基準は、ユーザの独自のユーザプロファイルに関連するデータに基づいて判定され得る。ユーザプロファイルは、(たとえば、ユーザに関連するクライアントデバイスの調整された「エコシステム」を形成する)1つまたは複数のクライアントデバイスを動作させるとき、ユーザによって使用されるユーザアカウントに関連付けられ得る。様々なデータは、検索履歴(検索履歴から検出可能なパターンを含む)、メッセージング履歴(たとえば、ユーザと自動アシスタントとの間の過去の人間対コンピュータダイアログを含む)、個人的な選好、ブラウジング履歴、センサー信号(たとえば、全地球測位システム、すなわち「GPS」、ロケーション)など、ユーザのプロファイルに関連付けられ得る。
【０００８】
ユーザが著名人(または、他の公人)を検索するとき、ユーザはやはりそれらの著名人の所属政党を検索する傾向があると仮定する。この検索パターンの検出に基づいて、自動アシスタントは、自動アシスタントとユーザとの間の現在の人間対コンピュータダイアログにおいて言及された著名人(または、他の公人)の所属政党に潜在的な関心の比較的大きな基準を割り当てることができる。言い換えれば、自動アシスタントは、ユーザが検索した特定の著名人の所属政党に対するユーザの特定の関心をすべての著名人の所属政党に一般化することができる。
【０００９】
別の例として、(たとえば、自動アシスタントに関与することによって、かつ/またはウェブブラウザを動作させることによって)フライトを調査するとき、ユーザは、最も近い空港からのフライト、ならびに、たとえば、価格を比較するために、少々離れた異なる空港から発つフライトを検索する傾向があると仮定する。この検索パターンは、自動アシスタントによって検出され得る。ユーザが後で、特定の目的地までの最も近い空港からのフライトに対する価格を提供するように自動アシスタントに尋ねると仮定する。デフォルト設定で、自動アシスタントは、最も近い空港からのフライトに対する価格を提供することによって、ユーザのクエリに直接応答することができる。しかしながら、検出された検索パターンに基づいて、自動アシスタントは、少々離れた異なる空港から目的地までのフライトに対する1つまたは複数の価格を含む非要請型コンテンツを提供することができる。
【００１０】
いくつかの実装形態では、言及されたエンティティ(または、関係するエンティティ)に関する特定の事実に対する潜在的な関心の基準は、ユーザがメンバーであってもよく、またはそうでなくてもよい、複数のユーザによって生成された集計データ、またはそれら複数のユーザの挙動に基づいて判定され得る。たとえば、概してユーザは、エンティティ自体を検索した後で、そのエンティティに関する特定の事実を検索する傾向があると仮定する。自動アシスタントは、その集計パターンを検出して使用し、個々のユーザとの人間対コンピュータダイアログにおいて現在論じられているエンティティに関する事実に対する潜在的な関心の基準を判定することができる。
【００１１】
いくつかの実装形態では、人々の間の「オンライン会話」の1つまたは複数のコーパス(たとえば、メッセージ交換スレッド、コメントスレッドなど)を分析して、たとえば、エンティティに対する参照、ならびに参照されるエンティティに関する事実に対する参照を検出することができる。たとえば、あるエンティティ(たとえば、人物)がコメントスレッドにおいて論じられており、参加者が、エンティティに対する参照の特定の近接性内(たとえば、同じスレッド内、そのx日以内、同じフォーラム内など)でそのエンティティに関する特定の事実(たとえば、エンティティの所属政党)について言及すると仮定する。いくつかの実装形態では、後続の人間対コンピュータダイアログにおいてそのエンティティについて論じられるとき、潜在的に関心があるとして、そのエンティティに関する事実(場合によっては、エンティティおよび検証された事実を含む知識グラフに対して確認され得る)にフラグ付けすることができるか、または場合によっては、その事実を(たとえば、同じ知識グラフ内に)示すことができる。同じエンティティが参照されているときに、複数の異なるオンライン会話において複数の参加者が同じ事実について言及する傾向がある場合、潜在的な関心の事実の基準をなお一層高めることができる。
【００１２】
上記の事例同様、それに応じて、異なるエンティティに関する同様の事実に潜在的な関心の基準を割り当てることができるように、特定の事実と特定のエンティティとの間の関係が一般化され得る。たとえば、オンライン会話参加者が、たとえば、余談として、論じられている著名人の自己資本について頻繁に言及すると仮定する。著名人について論じるときに、著名人の個人資産が余談またはついでとして頻繁に言及されるという概念を、ユーザと自動アシスタントとの間の人間対コンピュータダイアログにおいて現在論じられている著名人(または、他の公人)の自己資産に対する潜在的な関心の基準を判定するのに使用することができる。
【００１３】
本明細書で論じる非要請型コンテンツは、ユーザと自動アシスタントとの間の人間対コンピュータダイアログにおいて言及される特定のエンティティに関する事実に限定されない。いくつかの実装形態では、言及されたエンティティに関係する他のエンティティがやはり考慮され得る。これらの他のエンティティは、たとえば、言及されたエンティティ(たとえば、ミュージシャン、アーティスト、俳優、アスリート、レストラン、関心ポイントなど)との1つまたは複数の属性を共有する、または1つまたは複数の属性(たとえば、近くに位置する、時間的に近似のイベントなど)を共有するエンティティを含み得る。たとえば、ユーザが特定の俳優に関する質問を自動アシスタントに尋ねると仮定する。ユーザの質問に回答した後で、自動アシスタントは、別の俳優(または、その俳優が一緒に仕事をしたディレクタなど)に関する非要請型事実を会話の中に組み込むことができる。別の例として、ユーザがレストランに予約するために自動アシスタント120に関与すると仮定する。自動アシスタントは、たとえば、そのレストランが、より安価であるため、より良く評価されているため、混雑の可能性が低いためなどにより、代替案として、近くの別のレストランをプロアクティブに推薦することができる。さらに別の例として、ユーザが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つまたは複数の事実の各々に関して、ユーザにとって潜在的に関心のある対応する基準を判定するステップであって、各事実に対する潜在的に関心のある対応する基準が、そのエンティティとその事実との間の関係、およびそのエンティティと同じエンティティクラスを共有する他のエンティティと他のエンティティに関するそれぞれの事実との間の同じ関係に対する他のユーザの関心に基づいて判定される、判定するステップと、非要請型自然言語コンテンツを生成するステップであって、非要請型自然言語コンテンツが、潜在的に関心のある対応する1つまたは複数の基準に基づいて選択された事実のうちの1つまたは複数を含む、生成するステップと、自動アシスタントがユーザに対する自動アシスタントの1つまたは複数の未解決の義務を満たしたとの判定の後で、自動アシスタントが、非要請型自然言語コンテンツを既存の人間対コンピュータダイアログセッション内に組み込むステップであって、組み込むステップが、既存の人間対コンピュータダイアログセッションの一部として非要請型自然言語コンテンツをユーザに自動的に出力させる、組み込むステップとを含む、1つまたは複数のプロセッサによって実行される方法が提供される。
【００２２】
いくつかの実装形態では、ユーザが動作させている第1のクライアントデバイス上で動作しているメディアアプリケーションまたはゲームアプリケーションの状態に基づいて、エンティティを識別するステップであって、エンティティが、ユーザからの明示的な入力を使用せずに識別される、識別するステップと、ユーザに関連する第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を参照すると、本明細書で開示する技法が実装され得る例示的な環境が示されている。例示的な環境は、複数のクライアントコンピューティングデバイス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の他のアプリケーションによってレンダリングされるウェブページまたは他のリソースを介して実装され得る。
【００３２】
本明細書でより詳細に説明するように、自動アシスタント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つまたは複数のセグメント内でエンティティ参照に注釈を付けるように構成されたエンティティタガー(tagger)(図示せず)を含み得る。いくつかの実装形態では、エンティティに関するデータは、知識グラフ124など、1つまたは複数のデータベース内に記憶され得る。いくつかの実装形態では、知識グラフ124は、知られているエンティティ(また、場合によっては、エンティティ属性)を表すノード、ならびにノードを接続し、エンティティ同士の間の関係を表すエッジを含み得る。たとえば、「バナナ」ノードは、「果物」ノードに(たとえば、子として)接続されてよく、「果物」ノードは、今度は「農産物」および/または「食品」ノードに(たとえば、子として)接続されてよい。別の例として、「Hypothetical Cafe」と呼ばれるレストランは、その住所、出される食べ物のタイプ、営業時間、連絡先などの属性をやはり含むノードによって表され得る。「Hypothetical Cafe」ノードは、いくつかの実装形態では、エッジ(たとえば、子対親の関係を表す)によって、「レストラン」ノード、「ビジネス」ノード、レストランが位置する都市および/または州を表すノードなど、1つまたは複数の他のノードに接続され得る。
【００４１】
自然言語プロセッサ122のエンティティタガーは、(たとえば、人々など、エンティティクラスに対するすべての参照の識別を可能にするために)高い粒度レベルで、かつ/または(たとえば、特定の人物など、特定のエンティティに対するすべての参照の識別を可能にするために)低い粒度レベルでエンティティに対する参照に注釈を付けることができる。エンティティタガーは、特定のエンティティを解決するために自然言語入力のコンテンツに依存し得、かつ/または、場合によっては、特定のエンティティを解決するために知識グラフまたは他のエンティティデータベースと通信し得る。
【００４２】
いくつかの実装形態では、自然言語プロセッサ122は、追加でかつ/または代替として、1つまたは複数のコンテキストキューに基づいて、同じエンティティに対する参照をグループ化する、または「クラスタ化する」ように構成された共参照リゾルバ(図示せず)を含み得る。たとえば、共参照リゾルバは、自然言語入力「前回そこで食事をしたHypothetical Cafeが気に入りました」において、用語「そこで」から「Hypothetical Cafe」までを解決するために利用され得る。
【００４３】
いくつかの実装形態では、自然言語プロセッサ122の1つまたは複数の構成要素は、自然言語プロセッサ122の1つまたは複数の他の構成要素からの注釈に依存し得る。たとえば、いくつかの実装形態では、名前付きエンティティタガーは、特定のエンティティに対するすべての言及に注釈を付ける際に共参照リゾルバおよび/または従属性パーサからの注釈に依存し得る。また、たとえば、いくつかの実装形態では、共参照リゾルバは、同じエンティティに対する参照をクラスタ化する際に従属性パーサからの注釈に依存し得る。いくつかの実装形態では、特定の自然言語入力を処理する際に、自然言語プロセッサ122の1つまたは複数の構成要素は、関係する前の入力、および/または特定の自然言語入力の外部の他の関係するデータを使用して、1つまたは複数の注釈を判定することができる。
【００４４】
上述のように、自動アシスタント120は、たとえば、応答性コンテンツエンジン130によって、クライアントデバイス1061〜Nのうちの1つのユーザとの人間対コンピュータダイアログセッションの間に提供するための示唆および/または他の非要請型コンテンツを生成する際に1つまたは複数のリソースを利用することができる。様々な実装形態では、応答性コンテンツエンジン130は、行為モジュール132と、エンティティモジュール134と、プロアクティブコンテンツモジュール136とを含み得る。
【００４５】
応答性コンテンツエンジン130の行為モジュール132は、クライアントコンピューティングデバイス1061〜Nから受信した自然言語入力および/または自然言語プロセッサ122によって提供された自然言語入力の注釈を利用して、自然言語入力に応答する、少なくとも1つの行為を判定する。いくつかの実装形態では、行為モジュール132は、自然言語入力内に含まれた1つまたは複数の用語に基づいて行為を判定することができる。たとえば、行為モジュール132は、自然言語入力内に含まれた1つまたは複数の用語に対して、1つまたは複数のコンピュータ可読媒体内で、行為がマッピングされていることに基づいて、その行為を判定することができる。たとえば、「私のショッピングリストに<品目>を追加する」行為は、「私は市場から<品物>が必要である...」、「私は<品物>を手に入れる必要がある」、「私たちは<品物>を切らせている」など、1つまたは複数の用語にマッピングされ得る。
【００４６】
エンティティモジュール134は、ユーザと自動アシスタント120との間の既存の人間対コンピュータダイアログセッションのコンテンツ(および/または、その注釈)に基づいて、ユーザまたは自動アシスタント120によって言及されたエンティティを識別するように構成され得る。このコンテンツは、ユーザと自動アシスタント120との間の人間対コンピュータダイアログセッションの間にユーザインターフェース入力デバイスを介して1人または複数のユーザによって提供される入力、ならびに自動アシスタント120によるダイアログセッション内に組み込まれるコンテンツを含み得る。エンティティモジュール134は、参照されたエンティティを識別する際に、かつ/または候補エンティティを精錬する際に、1つまたは複数のリソースを利用することができる。たとえば、エンティティモジュール134は、自然言語入力自体、自然言語プロセッサ122によって提供される注釈、および/または知識グラフ124からの情報を利用することができる。場合によっては、エンティティモジュール134は、自然言語プロセッサ122の部分を形成する前述のエンティティタガーと一体であってよく、たとえば、同じであってよい。
【００４７】
プロアクティブコンテンツモジュール136は、ユーザにとって潜在的に関心のある非要請型コンテンツを人間対コンピュータダイアログセッション内にプロアクティブに組み込むように構成され得る。いくつかの実装形態では、プロアクティブコンテンツモジュール136は、たとえば、自然言語プロセッサ122、行為モジュール132、および/またはエンティティモジュール134など、他のモジュールから受信したデータに基づいて、ユーザと自動アシスタント120との間の既存の人間対コンピュータダイアログセッションにおいて、自動アシスタント120が人間対コンピュータダイアログセッションの間にユーザから受信したすべての自然言語入力に応答したと判定することができる。ユーザが特定の情報に対する検索を要求するためにクライアントデバイス106を動作させ、自動アシスタント120が、検索を実行して(または、検索を実行させて)、人間対コンピュータダイアログの一部として応答情報を返したと仮定する。この時点で、ユーザが他の情報も要求していない限り、自動アシスタント120は、ユーザの要求に十分に応答した。いくつかの実装形態では、プロアクティブコンテンツモジュール136は、何らかの事前判定された時間間隔(たとえば、2秒、5秒など)にわたって、自動アシスタント120が追加のユーザ入力を受信するのを待機することができる。その時間間隔の間に何も受信されない場合、プロアクティブコンテンツモジュール136は、自らが人間対コンピュータダイアログセッションの間にユーザから受信されたすべての自然言語入力に応答したと判定し、現在、非要請型コンテンツを自由に組み込むことができると判定することができる。
【００４８】
人間対コンピュータダイアログセッション内で言及されているとして(または、それに関するとして)エンティティモジュール134によって識別された1つまたは複数のエンティティに基づいて、プロアクティブコンテンツモジュール136は、1つまたは複数のデータベース(たとえば、知識グラフ124)内に含まれたエンティティデータに基づいて、そのエンティティに関する、またはそのエンティティに関係する別のエンティティに関する1つまたは複数の事実を識別するように構成され得る。プロアクティブコンテンツモジュール136は、次いで、1つまたは複数の事実の各々に関して、ユーザにとって潜在的に関心のある対応する基準を判定することができる。1つまたは複数の事実に対応する潜在的な関心の1つまたは複数の基準に基づいて、プロアクティブコンテンツモジュール136は、自らが生成する非要請型自然言語コンテンツ内に含まれることになる事実のうちの1つまたは複数を選択することができる。プロアクティブコンテンツモジュール136は、次いで、非要請型自然言語コンテンツを既存の人間対コンピュータダイアログセッションまたは後続の人間対コンピュータダイアログセッション内に組み込むことができる。
【００４９】
いくつかの実装形態では、エンティティに関する事実に対する潜在的な関心の基準は、たとえば、プロアクティブコンテンツモジュール136によって、1つまたは複数のユーザプロファイルデータベース126から取得されたデータに基づいて判定され得る。ユーザプロファイルデータベース126内に含まれたデータは、人間対コンピュータダイアログへの人間の参加者に関連するユーザプロファイルに関係し得る。いくつかの実装形態では、ユーザプロファイルはそれぞれ、1つまたは複数のクライアントデバイスを動作させるとき、ユーザによって使用されるユーザアカウントに関連付けられ得る。様々なデータは、検索履歴(検索履歴から検出可能なパターンを含む)、メッセージング履歴(たとえば、ユーザと自動アシスタントとの間の過去の人間対コンピュータダイアログを含む)、個人的な選好、ブラウジング履歴など、ユーザのプロファイルに関連付けられ得る(また、したがって、ユーザプロファイルデータベース126内に記憶され得る)。個々のユーザプロファイルに関連する他の情報は、ユーザプロファイルデータベース126内にやはり記憶され得るか、またはユーザプロファイルデータベース126内に記憶されたデータに基づいて判定され得る。この他のユーザ関連情報は、たとえば、ユーザにとって関心のある話題(データベース126内に直接記憶され得るか、またはその中に記憶された他のデータから判定され得る)、検索履歴、ブラウジング履歴、ユーザ設定選好、現在の/過去のロケーション、メディアプレイ履歴、旅行履歴、過去の人間対コンピュータダイアログセッションのコンテンツなどを含み得る。
【００５０】
したがって、いくつかの実装形態では、プロアクティブコンテンツモジュール136は、ユーザが動作させている1つまたは複数のクライアントデバイス106から、たとえば、クライアントデバイス106から直接的に、ユーザプロファイルデータベース126から直接的に、および/または、いわゆる「クラウド」として動作する1つまたは複数のコンピューティングシステムを介して間接的に、様々な信号または他のデータに対するアクセスを有し得る。ユーザにとって関心のある話題は、たとえば、特定の趣味(たとえば、ゴルフ、スキー、ゲーム、絵画など)、文学、映画、音楽ジャンル、特定のエンティティ(たとえば、アーティスト、アスリート、スポーツチーム、会社)などを含み得る。ユーザのプロファイルに関連し得る他の情報は、たとえば、年齢、(たとえば、1つまたは複数のカレンダーエントリから判定される)ユーザのスケジュールされたイベントなどを含み得る。
【００５１】
様々な実装形態では、プロアクティブコンテンツモジュール136は、ユーザにとって潜在的に関心のある事実を示す(たとえば、含む)非要請型コンテンツを生成し、非要請型コンテンツを人間対コンピュータダイアログ内に組み込むように構成され得る。この非要請型コンテンツは、既存の人間対コンピュータダイアログセッション内に組み込まれ得る様々な形態で出現し得る。たとえば、ユーザがテキストベースのメッセージ交換クライアント107を使用して自動アシスタント120と対話しているいくつかの実装形態では、プロアクティブコンテンツモジュール136によって生成される非要請型コンテンツは、メッセージ交換クライアント107によってレンダリングされる人間対コンピュータダイアログのトランスクリプト内に組み込まれ得るテキスト、画像、ビデオ、またはそれらの任意の組合せの形態をとってよい。いくつかの実装形態では、非要請型コンテンツは、異なるアプリケーションインターフェースをユーザに公開するためにユーザによって選択可能な、いわゆる「ディープリンク」の形態を含んでよいか、またはその形態をとってよい。たとえば、ディープリンクは、ユーザによって選択されると、クライアントデバイス106に特定の状態で特定のアプリケーションを開始させる(または、作動させる)ことができる。(たとえば、自動アシスタント120がスタンドアロン対話型スピーカー上でまたは車両内システム上で動作するとき)ユーザが音声インターフェースを使用して自動アシスタント120と対話している他の実装形態では、非要請型コンテンツは、ユーザに可聴的に提供される自然言語出力の形態をとってよい。上述のように、多くの場合、非要請型コンテンツは、「ところで」、「知っていましたか」、「余談として」など、言語によって前置きが付けられてよい。
【００５２】
いくつかの実装形態では、非要請型コンテンツの組込みは、自動アシスタント120が人間対コンピュータダイアログセッションの間にユーザから受信したすべての自然言語入力に応答したという、たとえば、プロアクティブコンテンツモジュール136による判定に応答して実行され得る。いくつかの実装形態では、プロアクティブコンテンツモジュール136に関して上記で説明した他の動作のうちの1つまたは複数もそのようなイベントに応答して実行され得る。または、いくつかの実装形態では、それらの動作は、プロアクティブコンテンツモジュール136(および、したがって、自動アシスタント120)がユーザにとって潜在的に関心のある非要請型コンテンツを既存の人間対コンピュータダイアログセッション内に迅速に組み込む「準備ができている」状態にとどまるように、周期的にまたは連続的にプロアクティブコンテンツモジュール136によって実行され得る。
【００５３】
プロアクティブコンテンツモジュール136は、フレッシュなコンテンツモジュール138および1つまたは複数の種々雑多なドメインモジュール140など、ユーザのプロファイル以外の構成要素に対するアクセスを有すること(たとえば、それらから事実を取得すること)もできる。フレッシュなコンテンツモジュール138は、現在のイベント、ニュース、現在のスケジュール(たとえば、演奏者のツアー日程)、(たとえば、商品またはサービスに対する)現在の価格、(たとえば、いわゆる「ハッシュタグ」によって示された)トレンドニュース/検索などに関するデータに対するアクセスをプロアクティブコンテンツモジュール136に提供し得る。いくつかの実装形態では、フレッシュなコンテンツモジュール138は、より大きな検索エンジンシステムの一部であってよく、時間的に関連する検索結果を返すように構成され得る。たとえば、いくつかの検索エンジンインターフェースは、ユーザが検索結果を様々なニュースソースによって公開された情報に限定することを選択することができる「ニュース」フィルタを含む。フレッシュなコンテンツモジュール138は、そのような情報に対するアクセスを有し得る。種々雑多なドメインモジュール140は、様々な他のドメインからデータを提供することができ、したがって、他の検索エンジンフィルタと同様に動作し得る。たとえば、「気象」ドメインモジュールは、気象に関する事実を返すことができ、「歴史」ドメインモジュールは、歴史的な事実に関するデータを返すことができ、「話題」モジュールは、エンティティに関する無作為な事実を返すことができる、などである。いくつかの実装形態では、「手作業」事実モジュールは、たとえば、有料広告会社から、それらの事実に関するエンティティの指示とともに、手作業で入力された事実を受信するように構成され得る。
【００５４】
いくつかの実装形態では、エンティティモジュール134が人間対コンピュータダイアログの間に言及された1つまたは複数のエンティティを識別するとき、プロアクティブコンテンツモジュール136は、知識グラフ124、または1つまたは複数のモジュール138〜140など、1つまたは複数のソースからそれらの1つまたは複数のエンティティに関する様々な事実を導出することができる。プロアクティブコンテンツモジュール136は、次いで、たとえば、事実に関連するユーザの関心の前述の基準を判定することによって、戻された事実にランク付けすることができる。
【００５５】
事実に対する潜在的なユーザの関心の基準は、様々な情報に基づいて、様々な方法で、プロアクティブコンテンツモジュール136によって判定され得る。上述のように、いくつかの実装形態では、プロアクティブコンテンツモジュール136は、たとえば、ユーザプロファイルデータベース126内に含まれた、個々のユーザ情報に基づいて、事実に対する潜在的なユーザの関心の基準を判定することができる。たとえば、特定のユーザが、ミュージシャンに関する情報をやはり検索するときはいつでもそのミュージシャンの今度のツアー日程を検索する傾向がある場合、今度のツアー日程に関するどの事実にも潜在的なユーザの関心の比較的高い基準が割り当てられてよい。いくつかの実装形態では、(たとえば、GPSを使用して判定された)ユーザのロケーションに近いツアー日程に関する事実には、遠くのツアー日程に関する事実よりも、潜在的な関心の一層高い基準が割り当てられてよい。
【００５６】
いくつかの実装形態では、プロアクティブコンテンツモジュール136は、検索および/またはユーザの集団の挙動に関連する集計データに基づいて、事実に対する潜在的なユーザの関心の基準を生成することができる。一般のユーザが、ミュージシャンを検索するとき、今度のツアー日程を検索する傾向がある場合、上記の同様の理由で、人間対コンピュータダイアログにおいてミュージシャンが言及されるとき、今度のツアー日程に関する事実、特に、ユーザに近いツアー日程に、比較的大きな潜在的なユーザの関心の基準が割り当てられてよい。ユーザが一般的に、フライト予約を検索すると同時にレンタカーを検索する傾向がある場合、人間対コンピュータダイアログにおいて1つまたは複数のフライトが言及されるとき、レンタカーに関する事実(たとえば、価格、可用性)に比較的大きな潜在的なユーザの関心の基準が割り当てられてよい。オンライン会話の参加者が特定の製品について論じるときその製品の信頼性について頻繁に言及する場合、人間対コンピュータダイアログにおいてその製品が言及されるとき、その製品の信頼性に関する事実に、比較的大きな潜在的なユーザの関心の基準が割り当てられてよい、などである。
【００５７】
図2は、ユーザ101と自動アシスタント(図1の120、図2には図示せず)のインスタンスとの間の人間対コンピュータダイアログセッションの一例を示す。図2〜図5は、本明細書で説明する実装形態による、マイクロフォンおよびスピーカーを介して、コンピューティングデバイス210(スタンドアロン対話型スピーカーとして示されているが、これは限定的であることを意味しない)のユーザ101と自動アシスタント120との間で生じ得るダイアログセッションの例を示す。自動アシスタント120の1つまたは複数の態様は、コンピューティングデバイス210上でかつ/またはコンピューティングデバイス210とネットワーク通信中の1つまたは複数のコンピューティングデバイス上で実装され得る。
【００５８】
図2では、ユーザ101は、ユーザ101と自動アシスタント120との間の人間対コンピュータダイアログセッションにおいて「Mozartはいくつのコンチェルトを作曲しましたか?」の自然言語入力280を提供する。自然言語入力280に応答して、自動アシスタント120は、「Mozartのピアノとオーケストラのコンチェルトは第1番から第27番です」の応答性自然言語出力282を提供する。追加のユーザ入力を待つのではなく、自動アシスタント120は(たとえば、プロアクティブコンテンツモジュール136によって)、ユーザにとって潜在的に関心のある追加のコンテンツを図2の人間対コンピュータダイアログにプロアクティブに組み込むことができる。たとえば、自動アシスタント120は、様々なソース(たとえば、124、138〜140)からエンティティ「Mozart」に関する1つまたは複数の事実を取得/受信することができる。自動アシスタント120は、(図2および他の図においてイタリックで示される)以下の非要請型コンテンツを人間対コンピュータダイアログ内にプロアクティブに組み込む:「ところで、Louisville Orchestraが、Mozart作曲作品を特集したコンサートを来月演奏することを知っていましたか?」。提示された可能性がある他の事実は、限定されるものではないが、Mozartの誕生日、生誕地、死亡日などを含む。この例の場合、ユーザ101は自らが検索するミュージシャンによる音楽作品の演奏を観る機会を検索する傾向があるため、今度の演奏が、たとえば、プロアクティブコンテンツモジュール136によって選択された可能性がある。
【００５９】
図3は、異なるセッションの間のユーザ101とコンピューティングデバイス210上で動作している自動アシスタント120との間の別の例示的なダイアログを示す。380において、ユーザ101は、「Louisvilleでの私のホテルは何という名前ですか?」というフレーズを話す。ユーザ101のユーザプロファイルに関連する様々なデータソース(たとえば、カレンダーエントリ、旅行日程電子メールなど)を検索した後で、382において、自動アシスタント120は、「あなたはBrown Hotelに滞在します」と答える。自動アシスタント120は(たとえば、プロアクティブコンテンツモジュール136によって)、次いで、自らがユーザの自然言語入力に完全に応答したと判定することができる。それに応じて、「Blue Angels」として知られる飛行実演隊に対するユーザ101の関心、およびBlue AngelsがもうすぐLouisville(ロケーションエンティティである)で飛行演技するとの判定に基づいて、自動アシスタント120は、以下の非要請型コンテンツを人間対コンピュータダイアログ内にプロアクティブに組み込むことができる:「ところで、Louisvilleに滞在する間に、Blue Angelsが飛行演技することになっています。チケットを探しましょうか?」ユーザ101が肯定的に応答した場合、自動アシスタント120は、たとえば、そのイベントに対するチケットを入手するための追加のダイアログにユーザ101を関与させることができる。
【００６０】
図4は、異なるセッションの間のユーザ101とコンピューティングデバイス210上で動作している自動アシスタント120との間の別の例示的なダイアログを示す。この例では、480において、ユーザ101は、自然言語入力を提供する「<performing_artist>の最初のアルバムの名前は何ですか?」何らかの必要な検索を実行した後で、自動アシスタント120は、482において、「<name_of_studio_album>」と応答することができる(<ブラケット>内の用語は、概してエンティティを示すことを単に意味する)。自動アシスタント120はまた、エンティティに関する様々な事実を判定し、事実に対する潜在的なユーザの関心に基準を割り当て、それらをランク付けした後で、自動アシスタント120は、非要請型コンテンツ「ところで、<performance_artist>は来月すぐ近くで演奏することになっています。チケットに関するより多くの情報を望みますか?」をプロアクティブに組み込む。
【００６１】
いくつかの実装形態では、プロアクティブコンテンツモジュール136がエンティティに関して潜在的な関心の事実を判定するエンティティは、人間対コンピュータダイアログにおいて明示的に言及されなくてもよい。いくつかの実装形態では、このプロアクティブに組み込まれたコンテンツは、たとえば、クライアントデバイス上で動作しているアプリケーションの状態に基づいて判定され得る。ユーザ101がクライアントデバイス上でゲームをプレイしていると仮定する。コンピューティングデバイス210上の自動アシスタント120は、他のクライアントデバイスが特定のゲームプレイ状態にあると判定することができ、人間対コンピュータダイアログの一部として、秘訣、コツ、同様のゲームの推薦など、ユーザにとって潜在的に関心のある様々な非要請型コンテンツを提供することができる。コンピューティングデバイス210がスタンドアロン対話型スピーカーであるいくつかの実装形態では、コンピューティングデバイス210は、背景音楽(たとえば、背景音楽の複製または追加)および/または他のクライアントデバイス上でプレイされているゲームに関連するサウンド効果を出力することすら可能である。
【００６２】
図5は、ユーザ101と、ユーザ101によって実行されているクライアントデバイス406上で動作している自動アシスタント120のインスタンスとの間の例示的な人間対コンピュータダイアログを示す。この例では、ユーザ101は、自然言語入力を提供しない。代わりに、コンピューティングデバイス210(この場合も、スタンドアロン対話型スピーカーの形態をとる)は音楽を再生している。この音楽は、クライアントデバイス406の1つまたは複数のオーディオセンサー(たとえば、マイクロフォン)において検出されている。可聴的に検出された音楽を分析するように構成されたソフトウェアアプリケーションなど、クライアントデバイス406の1つまたは複数の構成要素は、アーティスト/歌など、検出された音楽の1つまたは複数の属性を識別することができる。図1のエンティティモジュール134など、別の構成要素は、これらの属性を使用して、1つまたは複数のオンラインソース(たとえば、知識グラフ124)を検索し、エンティティおよび関連する事実を識別することができる。クライアントデバイス406上で動作している自動アシスタント120は、次いで、(582において)エンティティに関する様々な情報をユーザ101に知らせる非要請型コンテンツを、たとえば、図5のクライアントデバイス406上に大きな音でまたは視覚的に提供することができる。たとえば、図5の582において、自動アシスタント120は、「あなたは<アーティスト>を聴いていますね。<アーティスト>は<日>に<あなたの街>でツアー日程があることを知っていましたか?」と述べる。クライアントデバイス(たとえば、スマートフォン、タブレット、ラップトップ、スタンドアロン対話型スピーカー)上で動作している自動アシスタント120のインスタンスが、オーディオビジュアルコンテンツ(たとえば、映画、テレビ番組、スポーツイベントなど)がユーザのテレビ上に提示されていることを(サウンド検出または視覚検出によって)検出するとき、そのインスタンスによって同様の技術が適用され得る。
【００６３】
図2〜図5は、オーディオ入出力を使用して自動アシスタント120によりユーザ101が関与する人間対コンピュータダイアログを示す。しかしながら、これは、限定的であることを意味しない。上述のように、様々な実装形態では、ユーザは、メッセージ交換クライアント107など、他の手段を使用して自動アシスタントを関与させることができる。図6は、スマートフォンまたはタブレットの形態(限定的であることを意味しない)のクライアントデバイス606がタッチスクリーン640を含む一例を示す。タッチスクリーン640上に視覚的にレンダリングされるのは、クライアントデバイス606のユーザ(図6の「あなた」)とクライアントデバイス606上で(少なくとも部分的に)実行している自動アシスタント120のインスタンスとの間の人間対コンピュータダイアログのトランスクリプト642である。ユーザが自然言語コンテンツ、ならびに画像、サウンドなど、他のタイプの入力を提供することができる入力フィールド644も提供される。
【００６４】
図6では、ユーザは、質問「<店>は何時に開店する?」で人間対コンピュータダイアログセッションを開始する。自動アシスタント120(図6の「AA」)は、店の営業時間に関する情報に対して1つまたは複数の検索を実行し、「<店>は午前10時に開店します」と答える。自動アシスタント120は、次いで、エンティティ<店>に関する1つまたは複数の事実を判定し、ユーザにとって潜在的に関心のある基準でそれらの事実をランク付けし、以下のコンテンツを人間対コンピュータダイアログ内にプロアクティブに組み込む:「ところで、<店>は来月、春季クリアランスセールを開催することになっています」。自動アシスタント120は、次いで、ユーザインターフェース要素をセールに関する「カード」646の形態で組み込む。カード646は、店から品物などを購入するために動作可能な、クライアントデバイス606上にインストールされたショッピングアプリケーションに対する店のウェブサイトに対するリンク、いわゆる「ディープリンク(deeplink)」など、様々なコンテンツを含み得る。いくつかの実装形態では、自動アシスタント120は、たとえば、店に関連するウェブページおよび/または競争相手のウェブページに対する、ウェブページへの1つまたは複数のハーパーリンク648など、選択可能なオプションとして他の非要請型コンテンツを同様に組み込むことができる。
【００６５】
図6のカード646は、それをタップすること、または場合によっては、それにタッチすることによって選択され得る視覚的要素であるが、これは、限定的であることを意味しない。図6に示したものと同様の人間対コンピュータダイアログがユーザとオーディオ出力デバイス(たとえば、前の図に示したスタンドアロン対話型スピーカー)との間に可聴的に生じてもよい。いくつかのそのような実装形態では、ユーザインターフェース要素は、ユーザによって肯定的に回答された場合、代わりに、質問または「選択され」得るオプションなど、可聴催促の形態をとってもよい。たとえば、カード646を提示する代わりに、自動アシスタント120は、「もうすぐセールになることになっている品物のリストアップを望むかどうか教えて」のようなものを可聴的に出力してもよい。いくつかの実装形態では、ショッピングアプリケーション自体が、ユーザがセール用の品物について学ぶことを可能にするために、ユーザとの人間対コンピュータダイアログに関与するように具体的に調整されたその独自の自動アシスタントを含み得る。いくつかのそのような実装形態では、ユーザは、ショッピングアプリケーション固有の自動アシスタントに「移動されて」よい。他の実装形態では、自動アシスタント120は、ショッピングアプリケーションに関連する様々な情報および状態を利用して、ショッピングアプリケーションを使用して品物を入手するために必要な情報をユーザから要請する自然言語出力を構築することができる。自動アシスタント120は、次いで、(たとえば、ユーザによって提供された話された自然言語入力に応答して)ユーザに代わってショッピングアプリケーションと対話することができる。
【００６６】
図7は、この場合も、タッチスクリーン640およびユーザ入力フィールド644、ならびに人間対コンピュータダイアログセッションのトランスクリプト742を有するクライアントデバイス606を示す。この例では、ユーザ(「あなた」)は、自然言語入力「<アーティスト>による歌」をタイプすることおよび/または話すことによって(認識されて、テキストに変換され得る)人間対コンピュータダイアログを開始する。自動アシスタント120(「AA」)は、一連の選択可能なユーザインターフェース要素746を提供することによって応答し、ユーザは、たとえば、クライアントデバイス606上または別の近くのクライアントデバイス(示されていない、たとえば、606と同じクライアントデバイスの調整されたエコシステムの部分を形成するスタンドアロン対話型スピーカー)上でアーティストの対応する歌をプレイバックするために、それらの要素のうちのいずれか1つを選択し(たとえば、タップし)得る。本明細書で説明する技法を使用して、自動アシスタント120は、たとえば、知識グラフ124から、そのアーティストが先週40歳になったと判定する。それに応じて、自動アシスタント120は、以下の記述を人間対コンピュータダイアログにプロアクティブに組み込む:「<アーティスト>が先週先週40歳になったことを知っていましたか?」いくつかの実装形態では、ユーザが肯定的に答えるつもりだった、またはまったく答えなかった場合、自動アシスタント120は、たとえば、ユーザ追加のコンテンツを受信することに関心を持っていないとの仮定に基づいて、追加のプロアクティブコンテンツの提供を控えることができる。しかしながら、ユーザが、「そうですか?知らなかった!年をとったな!」など、ユーザの関心を示唆する自然言語応答を提供するところであったと仮定する。そのような場合、自動アシスタント120は、(たとえば、ユーザの入力に対して感情分析を実行することによって)そのような感情を検出し、そのアーティストに関する、またはことによると別の密接に関係するアーティスト(たとえば、同様の年齢のアーティスト)に関する追加の事実を提供することができる。
【００６７】
上記で説明した、プロアクティブに組み込まれた非要請型コンテンツの例は、限定的であることを意味しない。本明細書で説明する技法を使用して、ユーザにとって潜在的に関心のある他の非要請型コンテンツを人間対コンピュータダイアログ内にプロアクティブに組み込むことができる。たとえば、ユーザがスケジュールされた次のフライト(または、列車の出発、もしくは他の旅行手配)について述べる、いくつかの実装形態では、自動アシスタント120は、非要請型コンテンツをユーザとの人間対コンピュータダイアログセッション内にプロアクティブに組み込むことができる。この非要請型コンテンツは、たとえば空港までのルート上の交通パターン、ユーザがスケジュールされたフライトを閲覧または編集することを可能にするアプリケーションを開くために(タッチ、音声、ジェスチャなどによって)選択可能な1つまたは複数のユーザインターフェース要素、より安価であり得る代替フライト(または、そのフライトにリンクする選択可能なユーザインターフェース要素)についての情報などの表示を含み得る。
【００６８】
当然、ユーザが常に非要請型コンテンツを要望するとは限らない。たとえば、ユーザは、大渋滞の中を運転している場合がある、緊急事態にある場合があり、非要請型コンテンツを(たとえば、ビデオ呼で)受信することを望まないことを示唆するような方法でコンピューティングデバイスを動作させている場合がある、などである。したがって、いくつかの実装形態では、自動アシスタント120は、非要請型コンテンツを受信するためにユーザによる要望の基準を(たとえば、ロケーション信号、会話のコンテキスト、1つまたは複数のアプリケーションの状態、加速度計信号、ユーザの自然言語入力の感情分析などに基づいて)判定するように構成可能であり、この基準が1つまたは複数のしきい値を満たす場合のみ、非要請型コンテンツを提供することができる。
【００６９】
図8は、この場合も、タッチスクリーン640およびユーザ入力フィールド644、ならびに人間対コンピュータダイアログセッションのトランスクリプト842を有するクライアントデバイス606を示す。この例では、ユーザ(「あなた」)は、自然言語入力「来週月曜のLouisvilleまでのフライト」をタイプすることおよび/または話すことによって(認識されて、テキストに変換され得る)人間対コンピュータダイアログを開始する。自動アシスタント120(「AA」)は、一連の選択可能なユーザインターフェース要素846を提供することによって応答し、ユーザは、対応するチケットを入手するために、たとえば、自動アシスタントを用いて、またはクライアントデバイス606上にインストールされた旅行アプリケーションを用いて、ダイアログに関与するためにそれらの要素のうちのいずれか1つを選択する(たとえば、タップする)ことができる。本明細書で説明する技法を使用して、自動アシスタント120はまた、ユーザが、次の月曜日の代わりに、次の火曜日に発つことを選択した場合、たとえば、プロアクティブコンテンツモジュール136によって、より安価なフライトが利用可能であると判定する。それに応じて、自動アシスタント120は、以下の記述を人間対コンピュータダイアログ内にプロアクティブに組み込む:「ところで、一日遅く飛行する場合、145ドル節約できます」。
【００７０】
図9は、本明細書で開示する実装形態による例示的な方法900を示す流れ図である。便宜上、流れ図の動作は、これらの動作を実行するシステムを参照して説明される。このシステムは、自動アシスタント120の1つまたは複数の構成要素など、様々なコンピュータシステムの様々な構成要素を含み得る。その上、方法900の動作は特定の順序で示されているが、これは限定的であることを意味しない。1つまたは複数の動作は、並べ替えられてもよく、省かれてもよく、または追加されてもよい。
【００７１】
ブロック902において、システムは、たとえば、ユーザと自動アシスタントとの間の既存の人間対コンピュータダイアログセッションのコンテンツに基づいて、エンティティモジュール134によって、ユーザまたは自動アシスタントによって言及されたエンティティを識別することができる。上記で示唆したように、エンティティは、人々(たとえば、著名人、公人、作家、アーティストなど)、場所(都市、州、国、関心ポイント、交差点、レストラン、ビジネス、ホテルなど)、モノ(たとえば、フライト、鉄道旅行、商品、サービス、歌、アルバム、フィルム、書籍、詩など)など、様々な形態で出現し得る。エンティティモジュール134(または、より一般的に、自動アシスタント120)は、知識グラフ124、自然言語プロセッサ122に関連するエンティティタガーからの注釈、フレッシュなコンテンツモジュール138、他の種々雑多なドメインモジュール140など、様々なデータソースを使用して、エンティティを識別することができる。
【００７２】
ブロック904において、システムは、1つまたは複数のデータベース内に含まれたエンティティデータに基づいて、エンティティモジュール134によって、そのエンティティまたはそのエンティティに関係する別のエンティティに関する1つまたは複数の事実を識別することができる。たとえば、エンティティモジュール134は、エンティティモジュール134または自動アシスタント120の別の構成要素が、言及されたエンティティまたは言及されたエンティティに何らかの方法で関係する別のエンティティのいずれかに関する事実を識別することを可能にするノード、属性、(他のエンティティに対する関係を表し得る)エッジなどを知識グラフ124で調べることができる。たとえば、ユーザまたは自動アシスタントがMozartについて言及した場合、自動アシスタント120は、Mozartに関連する事実に加えて、またはその代わりに、同じまたは同様の時代の別の同様の作曲家に関連する事実を識別することができる。
【００７３】
いくつかの実装形態では、自動アシスタント120は、ユーザプロファイルに関連するデータに依存して、エンティティおよび/または別のエンティティに関連する事実を識別し得る。たとえば、ユーザが自動アシスタント120との人間対コンピュータダイアログにおいて第1のミュージシャンについて言及する(たとえば、第1のミュージシャンに関して質問する、第1のミュージシャンによって作曲された歌のプレイバックを要求する)と仮定する。第1のミュージシャンは(たとえば、ユーザのユーザプロファイルに関連するプレイリストまたはプレイバック履歴によって判定される)ユーザが元も頻繁に聴取するミュージシャンであり、その後すぐにユーザがやはり頻繁に聴取する第2のミュージシャンが続くとさらに仮定する。いくつかの実装形態では、ブロック904において、自動アシスタント120は、第1のミュージシャンに関する事実および/または第2のミュージシャンに関する事実を識別することができる。
【００７４】
ブロック906において、システムは、ブロック904において判定された1つまたは複数の事実の各々に関して、ユーザにとって潜在的に関心のある対応する基準を判定すること(すなわち、事実をスコアリングする)ことができる。潜在的な関心の基準は、(たとえば、割合、範囲内の値、数値価など)様々な形態で出現してよく、様々な方法で判定され得る。いくつかの実装形態では、潜在的な関心の基準は、ユーザの独自のユーザプロファイルに基づいて判定され得る。たとえば、ユーザがコストを比較するために2つの異なる空港からのフライトを頻繁に検索し、次いで、自動アシスタント120に向けたフライトに関するクエリの中で第1の空港に言及する場合、ユーザが第2の空港について明示的に言及しなかった場合ですら、自動アシスタント120は、第2の空港からのフライトに関する事実に潜在的な関心の比較的大きな基準を割り当てる(たとえば、促進する)ことができる。
【００７５】
追加でまたは代替として、様々な実装形態では、事実は、集計ユーザデータおよび/または挙動を使用してスコアリングされ得る。たとえば、エンティティについて論じるとき、オンライン会話からデータを収集して、たとえば、余談として、どのエンティティ属性が取り上げられることが多いかを判定することができる。別の例として、ユーザがエンティティに関する情報を探索するとき、または場合によっては、その情報を消費するとき、集計ユーザ検索クエリログを分析して、何のエンティティ属性が検索され、クリックされ、または場合によっては、対話されることが多いかを判定することができる。さらに別の例として、いくつかの実装形態では、システムは、たとえばフレッシュなコンテンツモジュール138から、トレンド検索および/またはニュースを分析して、エンティティに関するどの事実が現在トレンディであり得るか(また、したがって、そうでなかった場合よりも、潜在的な関心のより高い基準が割り当てられ得るか)を判定することができる。さらに別の例として、ユーザの独自のコンテキスト情報(たとえば、ユーザのスマートフォンと一体の位置座標センサーによって生成されるロケーションデータ)を使用して、潜在的な関心の基準を割り当てることができる。たとえば、論じられたエンティティが(ユーザの現在のロケーションから判定されるように)近くで今度のイベントを有する場合、その事実には、エンティティに関するぴったりの今度のイベントが遠くのロケーションで行われるとした場合よりも、潜在的な関心のより大きな基準が割り当てられ得る。
【００７６】
ブロック908において、システムは、潜在的に関心のある対応する1つまたは複数の基準に基づいて選択された事実のうちの1つまたは複数を含む非要請型自然言語コンテンツを生成することができる。いくつかの実装形態では、システムは、非要請型コンテンツ内に含まれることになるトップランクの事実のみを選択することができる。他の実装形態では、システムは、上位n (正の整数) 位にランク付けされた事実を選択することができる。ブロック910において、システムは、非要請型自然言語コンテンツを既存の人間対コンピュータダイアログセッションまたは後続の人間対コンピュータダイアログセッション内に組み込むことができる。たとえば、自動アシスタント120は、「ところで」、「知っていましたか」、「ついでに言うと」などのフレーズによって前置きが付けられる自然言語記述を生成することができる。上記で説明したように、いくつかの実装形態では、この非要請型コンテンツは、ユーザが追加のダイアログに関与する、様々なタスクを開始するなどのために選択することができる、ディープリンクなど、選択可能なグラフィカル要素を含んでよく、かつ/またはそれが添付されてもよい。
【００７７】
図9に明示的に示されていないが、様々な実装形態では、自動アシスタント120は、ユーザにすでに知られている可能性がある非要請型コンテンツをユーザとの人間対コンピュータダイアログセッション内に組み込むことを回避することができる。たとえば、いくつかの実装形態では、システムは、ブロック904において識別された1つまたは複数の事実のうちの所与の事実がユーザと自動アシスタントとの間の既存の人間対コンピュータダイアログにおいてまたはユーザと自動アシスタントとの間の前の人間対コンピュータダイアログにおいて(場合によっては、30日など、所定の時間間隔を遡って)前に参照されていると検出することができる。いくつかの実装形態では、所与の事実に対してシステムによって判定された潜在的な関心の基準は、たとえば、比較的低いスコア(場合によっては、ゼロスコアすら)が割り当てられることによって、この検出を反映してもよい。他の実装形態では、システムは、ユーザと自動アシスタントとの間の既存の人間対コンピュータダイアログにおいてまたはユーザと自動アシスタントとの間の前の人間対コンピュータダイアログにおいて所与の事実が前に参照されているとの検出に基づいて、考慮事項からその所与の事実を除外することができる。
【００７８】
図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は、図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  自然言語プロセッサ
124  知識グラフ
126  ユーザプロファイルデータベース、データベース、ユーザプロファイル
130  応答性コンテンツエンジン
132  行為モジュール
134  エンティティモジュール
136  プロアクティブコンテンツモジュール
138  フレッシュなコンテンツモジュール
140  種々雑多なドメインモジュール
210  コンピューティングデバイス
280  自然言語入力
282  応答性自然言語出力
406  クライアントデバイス
606  クライアントデバイス
640  タッチスクリーン
642  トランスクリプト
644  入力フィールド、ユーザ入力フィールド
646  カード
648  ハイパーリンク
842  トランスクリプト
900  方法
1010  コンピューティングデバイス
1012  バスサブシステム
1014  プロセッサ
1016  ネットワークインターフェースサブシステム
1020  ユーザインターフェース出力デバイス
1022  ユーザインターフェース入力デバイス
1024  記憶サブシステム
1025  メモリサブシステム
1026  ファイル記憶サブシステム
1030  メインランダムアクセスメモリ(RAM)
1032  読取り専用メモリ(ROM)
【図１】
0006844036.tif 000002
【図２】
0006844036.tif 000003
【図３】
0006844036.tif 000004
【図４】
0006844036.tif 000005
【図５】
0006844036.tif 000006
【図６】
0006844036.tif 000007
【図７】
0006844036.tif 000008
【図８】
0006844036.tif 000009
【図９】
0006844036.tif 000010
【図１０】
0006844036.tif 000011