(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-04-17
(45)【発行日】2025-04-25
(54)【発明の名称】コンピュータ画面表示用のリアルタイムモーフィングインターフェース
(51)【国際特許分類】
G06F 3/0484 20220101AFI20250418BHJP
G06F 16/9038 20190101ALI20250418BHJP
【FI】
G06F3/0484
G06F16/9038
(21)【出願番号】P 2022514586
(86)(22)【出願日】2020-09-04
(86)【国際出願番号】 US2020049544
(87)【国際公開番号】W WO2021046449
(87)【国際公開日】2021-03-11
【審査請求日】2023-09-04
(32)【優先日】2019-09-04
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-06-12
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520494910
【氏名又は名称】ブレイン テクノロジーズ インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】シェン ユエ
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】国際公開第2019/107145(WO,A1)
【文献】特表2018-512090(JP,A)
【文献】米国特許出願公開第2016/0148610(US,A1)
【文献】米国特許出願公開第2019/0220523(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/048- 3/04895
G06F 16/00 -16/958
G10L 15/00 -15/34
(57)【特許請求の範囲】
【請求項1】
ユーザーデバイスから、入力文字列を含む第1のユーザー入力を受信することと、
前記第1のユーザー入力に基づいて自然言語処理信号のセットを生成することと、
前記第1のユーザー入力と一致するインテントを選択することであって、前記選択は前記自然言語処理信号に基づき、前記インテントはコンピュータ実行可能な機能に対応することと、
前記インテントに関連する第1のインターフェースを識別することと、
前記第1のユーザー入力から、前記第1のインターフェースのエンティティに関連する値のセットを抽出することと、
前記第1のユーザー入力の前記受信
と同時に、前記ユーザーデバイス上の前記第1のインターフェースとして表示を有効化し、表示される前記第1のインターフェースは前記値のセットからの値を含んでいることと、
を含むコンピュータで実行される方法
であって、
前記第1のユーザー入力と一致するインテントを選択することは、前記第1のユーザー入力を1つまたはそれ以上の以前に受信されたユーザー入力文字列と比較することと、少なくとも1つの前記以前に受信されたユーザー入力文字列と少なくとも部分的に一致する前記第1のユーザー入力に応答して、前記以前に受信されたユーザー入力文字列のうちの前記少なくとも1つに応答して選択されたインテントを選択することとを含むコンピュータで実行される方法。
【請求項2】
前記ユーザーデバイスから、テキスト文字列を含む第2のユーザー入力を受信することと、
前記第1のユーザー入力及び前記第2のユーザー入力の組み合わせに基づいて、更新された自然言語処理信号のセットを生成することと、
前記第1のユーザー入力および前記第2のユーザー入力の前記組み合わせに一致するインテントを選択することであって、前記選択は前記更新された自然言語処理信号のセットに基づくことと、
新たに選択されたインテントに関連する第2のインターフェースを識別することと、
前記第1のユーザー入力および前記第2のユーザー入力の前記組み合わせから、前記第2のインターフェースのエンティティに関連する値の第2のセットを抽出することと、
前記第2のインターフェースを前記ユーザーデバイス上の表示用に有効にすることであって、表示用の前記第2のインターフェースは前記値の第2のセットからの値を含むことと、
をさらに含む請求項1に記載のコンピュータで実行される方法。
【請求項3】
前記第1のユーザー入力は、音声入力である請求項1に記載のコンピュータで実行される方法。
【請求項4】
前記
第1のユーザー入力と一致するインテントを選択することは、訓練されたコンピュータモデルを
前記第1のユーザー入力に適用して、
前記選択されたインテントを予測することを含む、請求項1に記載のコンピュータで実行される方法。
【請求項5】
前記第1のインターフェースは、関連するエンティティのセットを含む、請求項1に記載のコンピュータで実行される方法。
【請求項6】
前記第1のインターフェースおよび前記第2のインターフェースは、同じインターフェースである、請求項2に記載のコンピュータで実行される方法。
【請求項7】
前記第1のインターフェースおよび前記第2のインターフェースは、異なるインターフェースである、請求項2に記載のコンピュータで実行される方法。
【請求項8】
前記入力文字列は、テキスト文字列である、請求項1に記載のコンピュータで実行される方法。
【請求項9】
前記入力文字列は、音声入力である、請求項1に記載のコンピュータで実行される方法。
【請求項10】
コンピュータプログラム命令を実行するための1つまたはそれ以上のコンピュータプロセッサと、
少なくとも1つのプロセッサによって実行可能な格納された命令を含む非一時的なコンピュータ可読記憶媒体であって、前記命令は、実行されると、前記プロセッサに、
ユーザーデバイスから、入力文字列を含む第1のユーザー入力を受信し、
前記第1のユーザー入力に基づいて自然言語処理信号のセットを生成し、
前記第1のユーザー入力と一致するインテントを選択し、前記選択は、前記自然言語処理信号に基づいており、前記インテントは、コンピュータが実行可能な機能に対応しており、
前記インテントに関連する第1のインターフェースを識別し、
前記第1のユーザー入力から、前記第1のインターフェースのエンティティに関連する値のセットを抽出し、および、
前記第1のユーザー入力の前記受信
と同時に、前記ユーザーデバイス上の前記第1のインターフェースとして表示を可能とし、表示のための前記第1のインターフェースは、前記値のセットからの値を含むようにさせる、
コンピュータ可読記憶媒体と、
を含むコンピュータシステム
であって、
前記プロセッサに前記第1のユーザー入力と一致するインテントを選択させる前記命令は、前記第1のユーザー入力を1つまたはそれ以上の以前に受信されたユーザー入力文字列と比較する命令、および少なくとも1つの前記以前に受信されたユーザー入力文字列と少なくとも部分的に一致する前記第1のユーザー入力に応答して、前記以前に受信されたユーザー入力文字列のうちの前記少なくとも1つに応答して選択されたインテントを選択する命令を含むコンピュータシステム。
【請求項11】
さらに格納された命令を含み、該命令は、実行されると、前記プロセッサに、さらに、
前記ユーザーデバイスから、テキスト文字列を含む第2のユーザー入力を受信し、
前記第1のユーザー入力および前記第2のユーザー入力の組み合わせに基づいて、更新された自然言語処理信号のセットを生成し、
前記第1のユーザー入力および前記第2のユーザー入力の前記組み合わせに一致するインテントを選択し、前記選択は、前記更新された自然言語処理信号のセットに基づいており、
新たに選択されたインテントに関連する第2のインターフェースを識別し、
前記第1のユーザー入力及び前記第2のユーザー入力の前記組み合わせから、前記第2のインターフェースのエンティティに関連する値の第2のセットを抽出し、ならびに、
前記第2のインターフェースを前記ユーザーデバイス上の表示用に有効にし、表示用の前記第2のインターフェースは前記値の第2のセットの値を含む、
ようにさせる請求項
10に記載のコンピュータシステム。
【請求項12】
前記第1のユーザー入力は、音声入力である請求項
10に記載のコンピュータシステム。
【請求項13】
前記プロセッサに前記
第1のユーザー入力と一致するインテントを選択させる前記命令は、前記プロセッサに訓練されたコンピュータモデルを
前記第1のユーザー入力に適用させて
前記選択されたインテントを予測させる命令を含む、請求項
10に記載のコンピュータシステム。
【請求項14】
前記第1のインターフェースは、関連するエンティティのセットを含む、請求項
10に記載のコンピュータシステム。
【請求項15】
前記第1のインターフェース及び前記第2のインターフェースは、同じインターフェースである、請求項
11に記載のコンピュータシステム。
【請求項16】
前記第1のインターフェース及び前記第2のインターフェースは、異なるインターフェースである、請求項
11に記載のコンピュータシステム。
【請求項17】
前記入力文字列は、テキスト文字列である、請求項
10に記載のコンピュータシステム。
【請求項18】
前記入力文字列は、音声入力である、請求項
10に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ画面表示用のインターフェース技術の分野に係り、特にリアルタイムモーフィングインターフェースに関する。
【0002】
(関連出願の相互参照)
この出願は、2019年9月4日に出願された米国仮出願第62/895,944号および2020年6月12日に出願された米国仮出願第63/038,064号の利益を主張し、これらはすべて参照によりその全体が本明細書に組み込まれる。
【背景技術】
【0003】
スマートスピーカーや人工知能プログラムなどのコンピュータアシスタントは人気が高まっており、さまざまなユーザー向けシステムで使用されている。コンピュータ化されたシステムは、多くの場合、システムユーザーである人間がプロセスの識見を持つことなく、プロセス全体が自動化されるように実装することができる。例えば、コンピュータは、ユーザーの画面にコンテンツを表示しなくても、一連のタスクを完了することができる。しかしながら、多くのユーザーはコンピュータ化されたプロセスに関するフィードバックを受け取ることを好み、ユーザーが特定のステップでフィードバックを提供する必要がある場合、ユーザーが一連のタスクの状態を理解することは有用または必要であり得る。
【0004】
さらに、ユーザーはアシスタントシステムができるだけ早く応答することを望んでいる。しかしながら、システムがユーザーから一連の指示をすべて受け取る前にユーザーに応答した場合、システムはユーザーによって不適切なタスクを実行し得るか、または、ユーザーが見るべきコンテンツを画面に表示するための十分な情報を受け得ない。したがって、例えば、自動化されたタスクの進行状況をリアルタイムで表示し、追加の入力に応じて表示を調整する機能を含むシステムは有益であろう。
【図面の簡単な説明】
【0005】
【
図1】
図1は、例示的な実施形態による、モーフィングインターフェースシステムのシステムアーキテクチャのハイレベルブロック図である。
【
図2】
図2は、例示的な実施形態における、モーフィングインターフェースシステム130の構成要素間の相互作用のハイレベル図である。
【
図3】
図3は、例示的な実施形態における、例示的なNLP信号を示すブロック図である。
【
図4A】
図4Aは、例示的な実施形態における、ユーザー入力からインターフェースを生成するプロセスを示すフローチャートである。
【
図4B】
図4Bは、例示的な実施形態における、追加のユーザー入力を受信したときにインターフェースをモーフィングするプロセスを示すフローチャートである。
【
図5A】
図5Aは、例示的な実施形態における、フライト予約インテントに関連するインターフェースのために表示される第1のレイアウトを示す図である。
【
図5B】
図5Bは、例示的な実施形態における、フライト予約インテントに関連するインターフェースのために表示される第2のレイアウトを示す図である。
【
図5C】
図5Cは、例示的な実施形態における、フライト予約インテントに関連するインターフェースのために表示される第3のレイアウトを示す図である。
【
図5D】
図5Dは、例示的な実施形態における、フライト予約インテントに関連するインターフェースのために表示される第4のレイアウトを示す図である。
【
図5E】
図5Eは、例示的な実施形態における、フライト予約インテントに関連するインターフェースのために表示される第5のレイアウトを示す図である。
【
図5F】
図5Fは、例示的な実施形態における、フライト予約インテントに関連するインターフェースのために表示される第6のレイアウトを示す図である。
【
図5G】
図5Gは、例示的な実施形態における、フライト予約インテントの実行を確認する電子メールを示す図である。
【
図6A】
図6Aは、例示的な実施形態による、ピザ注文インテントに関連するユーザー入力の第1の部分の受け取りを示す図である。
【
図6B】
図6Bは、例示的な実施形態による、ピザ注文に関連するインターフェースのために表示されるレイアウトを示す図である。
【
図6C】
図6Cは、例示的な実施形態による、ピザTシャツ購入に関連するインターフェースのために表示されるレイアウトを示す図である。
【
図6D】
図6Dは、例示的な実施形態による、Tシャツ購入インテントに関連し得る追加の例示的なインターフェースを示す図である。
【
図7】
図7は、例示的な実施形態による、マシン可読媒体から命令を読み取り、それらを1つまたは複数のプロセッサで実行することができる例示的なマシンの構成要素を示すブロック図である。
【0006】
「105A」などの参照番号の後の文字は、テキストがその特定の参照番号を持つ構成要素を具体的に参照していることを示し、「105」などの後続の文字のないテキスト内の参照番号は、その参照番号が付いている図中の任意のまたはすべての構成要素を参照していることを示す。
【0007】
図面は、例示のみを目的として、さまざまな実施形態を示している。当業者は、本明細書で例示される構造および方法の代替的な実施形態が、本明細書で説明される原理から逸脱することなく採用され得ることを、以下の説明から容易に認識するであろう。
【発明を実施するための形態】
【0008】
図および以下の説明は、例示のためのみの好ましい実施形態に関する。以下の説明から、本明細書に開示される構造、および方法の代替的な実施形態は、特許請求されているものの原理から逸脱することなく、採用され得る実行可能な代替として容易に認識されることに留意されたい。
【0009】
ここで、いくつかの実施形態が詳細に参照し、それらの例示は、添付の図面に示す。可能な限り、類似または同様の参照番号が、図面において用いられ、類似または同様の機能性を示し得ることに留意されたい。図面は、例示のみを目的として、開示されているシステム(または方法)の実施形態を示している。当業者は、本明細書で例示される構造および方法の代替的な実施形態が、本明細書で説明される原理から逸脱せずに採用され得ることを、以下の記載から容易に認識するであろう。
【0010】
(構成の概要)
コンピュータ画面のユーザーインターフェース上での表示を生成および可能にするように構成されたシステム(ならびに方法、および非一時的なコンピュータ可読媒体に格納されたコンピュータプログラムコード)が開示されている。実施形態の一例においては、システムは、コンピュータプログラム命令を実行するための1つまたはそれ以上のコンピュータプロセッサと、少なくとも1つのプロセッサによって実行可能な格納された命令を含む非一時的なコンピュータ可読記憶媒体とを含み得る。例示的な実施形態では、命令は、実行されると、プロセッサに、第1のユーザーデバイスから、入力文字列を含む第1の入力を受信させ、第1のユーザー入力に基づいて自然言語処理信号のセットを生成させる命令を含み得る。命令は、第1のユーザー入力に一致するユーザーのインテント(intent)を選択するための命令であって、選択は自然言語処理信号に基づくものである命令と、インテントに関連するインターフェースを識別するための命令と、インターフェースのエンティティ(entities)に関連する値のセットをユーザー入力から抽出するための命令とを、さらに含み得る。エンティティは、値を割り当てることができるインターフェースの変数であり得る。実施形態の一例では、命令は、値のセットからの値を含む表示用のインターフェースをユーザーデバイス上のインターフェースとして表示できるようにするための命令をさらに含み得、表示は、第1のユーザー入力の受信とほぼ同時に発生し得る。実施形態の一例では、システムの少なくとも1つのプロセッサによって実行可能な命令は、プロセッサによって実行されると、プロセッサに、ユーザー装置から、テキスト文字列を含む第2のユーザー入力を受信させ、第1のユーザー入力と第2のユーザー入力の組み合わせに基づいて、自然言語処理信号の更新されたセットを生成させる命令をさらに含み得る。命令は、更新された自然言語処理信号のセットに基づいて、第1のユーザー入力と第2のユーザー入力との組み合わせに一致する目的を選択する命令と、新たに選択されたインテントに関連する第2のインターフェースを識別する命令と、第1のユーザー入力と第2のユーザー入力との組み合わせから第2のインターフェースのエンティティに関連する値の第2のセットを抽出する命令と、第2のインターフェースを値の第2のセットからの値を含むユーザーデバイス上の表示用に有効にする命令とをさらに含み得る。
【0011】
様々な例示的な実施形態では、第1のユーザー入力および/または第2のユーザー入力は、音声入力であり得る。さらに、第1のインターフェースおよび第2のインターフェースは、関連するエンティティのセットを含み得、様々な例示的な実施形態において同じまたは異なるインターフェースであり得る。入力文字列は、テキスト文字列、音声入力、および/または別の形式のユーザー入力であり得る。
【0012】
システム構成の例
図1は、例示的な実施形態による、モーフィングインターフェースシステムのシステムアーキテクチャのハイレベルブロック図である。
図1は、モーフィングインターフェースシステム130、ネットワーク120、およびクライアントデバイス110を含む。明確にするために、1つのクライアントデバイスおよび1つのモーフィングインターフェースシステム130のみが
図1に示されている。システム環境の代替の実施形態は、任意の数のクライアントデバイス110に加えて、複数のモーフィングインターフェースシステム130を有することができる。
図1のさまざまなエンティティによって実行される機能は、異なる実施形態において変化し得る。クライアントデバイス110およびモーフィングインターフェースシステム130は、
図7で説明されたもののようなコンピューティングデバイスの構成要素のいくつかまたは全部と、適切なオペレーティングシステムとを含み得る。
【0013】
例示的な実施形態では、モーフィングインターフェースシステム130は、ユーザー入力(例えば、タイプされたまたは口頭のテキスト文字列)に応答してユーザーへの表示用のユーザーインターフェースを生成する(またはレンダリングする、もしくはレンダリングを可能にする)。いくつかの実施形態では、システムは、また、例えば、クライアントデバイス110のカメラまたはカメラロールから視覚入力を受け取り、オンラインマーケットプレイスで検索プロセスを実行し得る。モーフィングインターフェースシステム130は、ユーザーインテントを決定する。ユーザーインテントは、受信したユーザー入力に基づいてユーザーが意図し得るものをマシン(例えば、コンピュータまたはコンピューティングシステム)が予測したものに対応する。したがって、ユーザーインテントは、受信したユーザー入力に対応する、および/またはそれによって記述されるコンピュータが実行可能な機能または要求であり得る。実行可能な機能は、実行し得るものであり、予測されたインテントであり得るものに対応する機能のための1つまたはそれ以上のユーザーインターフェースを生成および/または(例えば、レンダリングにおいて)追加することによってインスタンス化(instantiated)され得る。
【0014】
モーフィングインターフェースシステム130が追加のユーザー入力(例えば、入力されたまたは口頭のテキスト文字列に追加された語句)を受け取ると、モーフィングインターフェースシステム130は、決定されたユーザーインテントが依然としてユーザー入力に最も関連する一致であるか否かを再評価する。別のユーザーインテントが更新されたユーザー入力によりよく適合する場合、モーフィングインターフェースシステム130は、新しいインテントに適用される新しいユーザーインターフェースを生成し、追加する。すなわち、モーフィングインターフェースシステム130は、どのユーザーインテントが入力に最もよく適用されるか、すなわち、どの機能または要求がユーザー入力に最もよく対処するかについてのより多くの入力情報を受け取ると、ユーザーインターフェースはあるインターフェースから別のインターフェースに「モーフィングする(morphs)」。モーフィングインターフェースシステム130が複数の同等の可能性のあるインテントを決定する場合、モーフィングインターフェースシステム130は、ユーザーが同等に可能性のあるインテントから選択し得るように、インターフェースプレビュー(例えば、クライアントデバイス110でインターフェースプレビューをレンダリングするための情報を提供することによって)でユーザーに促し得るか、または、モーフィングインターフェースシステム130は、格納されたユーザー設定(例えば、システムとの過去のユーザーインタラクションに基づいて学習された)に基づいて、インテントを自動的に選択し得る。
【0015】
ユーザーは、クライアントデバイス110を介して、タイプされたテキストまたは口頭の音声入力などのユーザー入力を入力し得る。クライアントデバイス110は、スマートフォン、タブレット、ノートブックコンピュータ、ラップトップ、デスクトップコンピュータ、およびスマートウォッチなどの任意のパーソナルまたはモバイルコンピューティングデバイス、ならびにテレビ、ビデオゲーム機、テレビボックス、および受信機などの任意のホームエンターテインメントデバイスであることができる。クライアントデバイス110は、モーフィングインターフェースシステム130から受信した情報を、例えば、ユーザーインターフェースの形でユーザーに提示することができる。いくつかの実施形態では、モーフィングインターフェースシステム130は、クライアントデバイス110と同じマシンから格納および実行され得る。
【0016】
クライアントデバイス110は、ネットワーク120を介してモーフィングインターフェースシステム130と通信することができる。ネットワーク120は、有線または無線通信リンクを使用するローカルエリアネットワークとワイドエリアネットワークの任意の組み合わせを含み得る。いくつかの実施形態では、ネットワーク120の通信のすべてまたは一部を暗号化し得る。
【0017】
モーフィングインターフェースシステム130は、インテントを決定し、および/またはインターフェースを生成するための様々なモジュールおよびデータストアを含む。モーフィングインターフェースシステム130は、自然言語処理(NLP)パイプライン135、インテント認識モジュール140、エンティティ認識モジュール145、インテントモデルストア150、インターフェースストア155、およびエンティティ認識モデルストア160を含む。システムアーキテクチャの詳細を曖昧にしないために、ウェブサーバー、ネットワークインターフェイス、セキュリティ機能、ロードバランサー、フェイルオーバーサーバー、管理およびネットワーク操作コンソールなどのコンピュータ構成要素は示されていない。さらに、モーフィングインターフェースシステム130は、
図1に示されるものよりも多い、少ない、または異なる構成要素を含み得、本明細書に記載される構成要素の機能は、本明細書の説明とは異なって分配され得る。パイプラインおよびモジュールは、プログラムコード(例えば、ソフトウェアまたはファームウェア)、ハードウェア(例えば、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、コントローラ、プロセッサ)、またはそれらの組み合わせとして具体化され得ることに留意されたい。
【0018】
NLPパイプライン135は、例えば、テキストまたは音声の形式でユーザー入力を受け取り、モーフィングインターフェースシステム130がインテント認識およびエンティティの抽出に使用できるNLP信号を生成する。いくつかの実施形態では、NLPパイプライン135は、トークン化、品詞タグ付け、ステミング、レンマ化、ストップワード識別、係り受け解析、エンティティ抽出、チャンキング、意味役割付与、および共参照解析を実行する。一実施形態では、NLPパイプラインへの入力は、例えば、完全または部分的に完全な文または句の形式の1つまたは複数の単語のセットである。一実施形態では、NLPパイプライン135は、単語の入力セットの注釈付きバージョンを生成する。別の実施形態では、NLPパイプライン135は、インテント認識モジュール140またはエンティティ認識モジュール145などのニューラルネットワークを使用し得る下流モジュールによる即時消費のために、数値表現または特徴埋め込みを構築または検索する。例えば、NLPパイプライン135への入力は部分的な文であり得、出力は部分的な文に関するメタデータが付随している部分的な文であり得る。
【0019】
インテント認識モジュール140は、(クライアントデバイス110を介して)ユーザーから受け取った入力に基づいて、ユーザーの意図(intention)が何であるかを識別する。特に、インテント認識モジュール140は、モーフィングインターフェースシステム130が実行することができる利用可能なインテント(すなわち、機能)を予測する。使用可能なインテントは、ユーザー入力を構成する単語のセットに対応する。ユーザー入力は、1つまたはそれ以上の事前に定義されたインテントに一致し得る。説明を簡単にするために、システムは単語という観点から説明されている。しかしながら、この明細書で説明する原理は、サウンドアクション(音声コマンドまたはオーディオトーンなど)、ビデオストリーム(アンビエントコンピューティングシナリオなど)、およびその他の潜在的な形式を含む情報入力を含み得る任意の信号セットにも適用し得ることに留意されたい。異なる実施形態では、インテント認識モジュール140は、ユーザー入力に関連付けることができるインテントを決定するために様々な機械学習モデルを使用し得る。説明を簡単にするために、システムは教師あり機械学習という観点から説明されるであろう。しかしながら、この明細書で説明する原則は、半教師ありシステムと教師なしシステムにも適用され得ることに留意されたい。
【0020】
一例の実施形態では、インテント認識モジュール140は、テキスト分類を使用して、ユーザー入力に対応する可能性が最も高いインテントを予測し得る。この例示的な実施形態では、テキスト分類モデルは、入力文字列のラベル付けされた例を使用して訓練され得る。例えば、モーフィングインターフェースシステム130は、入力文字列のラベル付けされた例を格納し得る。ラベルは、各入力文字列の例を、利用可能なインテントの1つに関連付ける。トレーニングデータには、単語、部分的な文、部分的な語句、完全な文、および完全な語句の形式の入力文字列の例が含まれ得る。分類モデルはまた、NLPパイプライン135によって生成された様々な自然言語処理信号を使用するように訓練され得、訓練データは、自然言語処理信号をさらに含み得る。分類モデルはまた、エンティティ認識モジュール145からの信号を利用し得、例えば、エンティティ認識モジュール145によって認識される「航空会社」エンティティを使用して、インテント、または機能が「フライトの予約」であることを確認し得る。したがって、分類モデルは、例えば意味的類似性を使用して、使用可能なインテントのセットのどれが特定のユーザー入力文字列に対応する可能性が最も高いかを予測するように(つまり、各アクションのクエリの例のセットから最も近接するクエリを決定するように)トレーニングされる。
【0021】
別の例示的な実施形態では、インテント認識モジュール140は、利用可能なインテントのセット全体にわたって、ユーザー入力と入力例のセットとの間の意味的類似性スコアを計算するモデルを使用し得る。すなわち、ラベル付けされたトレーニングデータのみに基づいて適用可能なインテントを直接予測するようにモデルをトレーニングするのではなく、インテント認識モジュール140はまた、ユーザー入力に最も一致するインテントを決定する際に、与えられたユーザー入力を、以前に受け取ったユーザー入力文字列の一部またはすべてと比較することができる。例えば、モーフィングインターフェースシステム130は、過去に一致したインテントおよび入力文字列の記録を格納し得、インテント認識モジュール140が、現在のユーザー入力文字列が、過去に格納された入力文字列と、同じ、または、同じ文章構造もしくは関連するNLP信号を有していると判断した場合に、インテント認識モジュール140は、現在のユーザー入力文字列に対して同じインテントを予測し得る。正しく一致した過去のユーザー入力文字列との比較に加えて、ユーザー入力はまた、セマンティックルールベースアプローチ(semantic rule-based approaches)とジェネレーテイブディープラーニングアルゴリズム(generative deep learning algorithms)の両方によって作成されたコンピュータ生成文字列と比較し得る。
【0022】
別の例示的な実施形態では、インテント認識モジュール140は、より単純なルールベースの方法を利用して、ユーザーの入力文字列に対して最も可能性の高いインテントを推測し得る。これには、正規表現マッチング、つまり、入力文字列中の特定の事前定義された構文および文法パターンの識別を識別して、ユーザーのインテントを決定することを含み得る。これには、また、係り受け解析、構成要素解析、チャンキング、および/または意味役割付与などのNLPパイプライン130からの信号を利用して、クエリの動詞、主語、述語などを検索し、それらを格納された知識ベースからのデータと照合することも含み得る。例えば、ユーザーの入力が「Buy me bananas」(「バナナを買う」)である場合、インテント認識モジュール140は、単語「bananas」(「バナナ」)がクエリの直接のオブジェクトであると判断し、知識ベースからそのレンマ「banana」の一致を取得して、「banana」(「バナナ」)が食品または食材の一種であることを学習し得-これは、例えば、食料品を購入するインテントとの一致を示し得る。
【0023】
いくつかの例示的な実施形態では、モーフィングインターフェースシステム130は、インテントモデルストア150を含む。インテントモデルストア150は、与えられたユーザー入力文字列に関連する可能性が最も高いインテントを予測するために、インテント認識モジュール140によって訓練および適用されるコンピュータモデルのプログラムコードを格納し得る。いくつかの実施形態では、以前に一致したインテントおよびユーザー入力のラベル付けされたトレーニングデータおよび記録は、インテントモデルストア150に格納し得る。インテントモデルストア150はまた、利用可能なインテントのリスト、すなわち、モーフィングインターフェースシステム130がユーザー入力に応答してユーザーのために実行することができるタスクのリストを格納することができる。インテントモデルストア150はまた、利用できないインテントのリスト、すなわち、モーフィングインターフェースシステム130が現在実行できず、利用可能なインテントから独立しているタスクとして認識しているタスクのリストを格納することができる。さらに、インテントモデルストア150は、ユーザーのみが利用可能であるユーザーが作成したカスタムインテントを保存することができる。例えば、ユーザー入力文字列「Turn on device」(「デバイス電源オン」)は、グローバルに利用可能なインテントのリストに含まれていない場合があるが、ユーザーが自分で使用するためにこのインテントを生成した場合には、そのインテントロジックは、インテントモデルストア150に格納される。
【0024】
一実施形態では、インターフェースストア155は、モーフィングインターフェースシステム130によって実行することができる利用可能なインテントのそれぞれについてのユーザーインターフェースのためのプログラムコードを格納する。インターフェースストア155によって格納されたインターフェースは、クライアントデバイス110上にインターフェースを表示するためのレイアウト、インテントを実行するための命令、およびレイアウトの追加およびインテントの実行に関連するエンティティのリストを含み得る。様々な実施形態において、ユーザーインターフェースは、潜在的なインテントごとにカスタムメイドされたインターフェースであり得る。他の実施形態では、インターフェースストア155は、ユーザーによって設計されたカスタムインテントのため、およびそれらのユーザーによってのみ使用されるためのカスタムインターフェースを含むことができる。
【0025】
エンティティ認識モジュール145は、与えられたユーザー入力に関連するエンティティの値のセットを予測する。エンティティの値は、ユーザー入力に一致するインテントを実行するために使用し得る。様々な実施形態では、エンティティ認識モジュール145は、ユーザー入力文字列、NLPパイプライン135からの関連するNLP信号、およびインテントマッチングモジュール140からの一致したインテントを入力として受け入れる。エンティティ認識モジュール145はまた、一致したインテントに関連するインターフェースを入力として使用するためにインターフェースストア155にアクセスし、それにより、モーフィングインターフェースシステム130がインテントを実行するために必要とされるエンティティ値のリストを取得し得る。エンティティ認識モジュール145は、訓練されたコンピュータモデルを適用して、ユーザー入力文字列から値のセットを抽出し、抽出された値を一致したインテントのエンティティに関連付け得る。一実施形態では、エンティティ認識モジュール145は、最初に入力文字列からハイレベルエンティティの値を抽出し、その後、詳細なエンティティの値を抽出する。例えば、エンティティ認識モジュール145は、ユーザー入力文字列がタイトルを含むことを決定するモデルを適用し、タイトルが映画のタイトル、本のタイトルなどであるか否かを予測するために異なるモデルを適用し得る。一実施形態では、エンティティ認識モジュール145によって適用される1つまたはそれ以上のコンピュータモデルは、ラベル付けされたエンティティの値を有するユーザー入力文字列の例を含むトレーニングデータの例に基づいてトレーニングされる分類器またはシーケンスタガーである。これらの分類器またはシーケンスタガーは、実世界の知識と、構文、文法および意味論の理解とを組み込むために、インターネットからの非構造化され、ラベル付けされていない大量のテキスト情報に対して複数の対象(言語モデリング、自動エンコードなど)を使用してさらにトレーニングされ得る。
【0026】
他の例示的な実施形態では、エンティティ認識モジュール145は、正規表現パターンとの照合など、ルールベース手法を適用して、ユーザー入力文字列から値のセットを抽出し得る。これは、次に、ユーザーによって設計された新しいカスタムインテントの値を抽出するためのエンティティ認識モジュール145の迅速なカスタマイズを支援し得る。
【0027】
エンティティ認識モジュール145によって適用されるモデルおよびトレーニングデータは、エンティティ認識モデルストア160に格納され得る。エンティティ認識モデルストア160はまた、エンティティ認識モジュール145によって使用されるコンピュータモデルをトレーニングするためのラベル付けされたトレーニングデータを含み得る。
【0028】
いくつかの実施形態では、エンティティ認識モジュール145およびインテント認識モジュール140は、同じシステムであり得る。すなわち、エンティティ認識モジュール145およびインテント認識モジュール140は、両方のシステムが協調してより正確な決定を行うことができるように、共同のインテントおよびエンティティ認識システムとして構成され得る。
【0029】
(モーフィングインターフェースシステムの例)
図2は、例示的な実施形態における、モーフィングインターフェースシステム130の構成要素間の相互作用のハイレベル図である。モーフィングインターフェースシステム130は、ユーザークエリ210を受け取る。ユーザークエリは、例えばタイプされたテキストまたは発話音声の形式でユーザーによって表現された、完全な文もしくは概念、または、部分的な文章もしくは語句であり得る。入力をオーディオファイルまたはオーディオストリームとして受け取る実施形態では、自動音声認識または他のタイプの音声モデルは、入力を表す入力文字列を、例えばテキストとして生成するために使用し得る。モーフィングインターフェースシステム130は、ユーザーが入力を提供している途中に、インターフェースを表示することによって、ユーザーに応答し始めることができる。したがって、場合によっては、モーフィングインターフェースシステム130によって受け取ったユーザークエリ210は、ユーザー入力の最初の部分、例えば、一つの単語、または単語のセットのみであり得る。
【0030】
ユーザークエリ210は、ユーザークエリ210を分析し、対応するNLP信号220を出力するNLPパイプライン135への入力として提供される。NLP信号220およびユーザークエリ210は、インテント認識モジュール140に提供される。インテント認識モジュール140は、予測されたユーザーの意図(intention)230を出力する。すなわち、インテント認識モジュール140は、ユーザーが実行を要求している、または実行を意図している、インテントが何かを予測する。予測された意
図230または機能、NLP信号220、およびユーザークエリ210は、エンティティ認識モジュール145に提供され、エンティティ認識モジュール145は、予測された意図に関連する抽出されたエンティティの値240を生成する。ユーザーの予測された意図に関する予測された意図情報250、抽出されたエンティティ240、および追加の生成されたメタデータは、ユーザーの意図に対応するシステム予測に関連するユーザーインターフェースの表示(コンピューティングデバイス、例えば、クライアントデバイスの画面上)を可能にするために、および、ユーザーインターフェースの領域に抽出されたエンティティの値を追加するために、モーフィングインターフェースシステム130によって使用され得る。したがって、クライアントデバイス上に表示するために生成され、有効に(または提供)されるインターフェースは、有利なことに、実質的にリアルタイムで変化し始めることができる。
【0031】
いくつかの実施形態では、モーフィングインターフェースシステム130の構成要素は、
図2の例に示されている以外の方法で相互作用するように構成され得る。一実施形態では、モーフィングインターフェースシステムは、インテント認識モジュール140とエンティティ認識モジュール145との間にフィードバックループを含むように構成され得る。例えば、インテント認識モジュール140は、予測されたインテントに関する情報をエンティティ認識モジュール145に提供し得、エンティティ認識モジュール145は、予測されたインテントに関する情報を入力として使用して、ユーザークエリ210におけるエンティティおよび潜在的なエンティティタイプを識別し得る。そして、識別されたエンティティに関する情報は、ユーザーのクエリ210に関連付けられるべきインテントの予測の再生成において使用するために、インテント認識モジュール140に戻され得る。いくつかの実施形態では、エンティティ認識モジュール145は、NLP信号またはユーザー入力を分析し、ユーザー入力に関連するエンティティを予測し得、次に、入力およびNLP信号に加えて、予測エンティティおよびエンティティタイプをインテント認識モジュール140に提供し得る。そのような場合、インテント認識モジュール140は、次に、予測されたエンティティ情報を使用して、ユーザー入力に関連するインテントタイプを予測し得る。インテント認識モジュール140とエンティティ認識モジュール145との間のフィードバックループは、また、この実施形態においても存在し得る(すなわち、インテント認識モジュール140は、予測されたインテント情報をエンティティ認識モジュール145に送り返して、既存のエンティティについての予測を改善または追加し得る。)。エンティティ認識モジュール145がインテント認識モジュール140の前に入力データを受け取るいくつかの実施形態では、インテント認識モジュール140は、エンティティ認識モジュール145によって提供される抽出されたエンティティを、予測されたインテントに対応するエンティティにフィルタリングし得る。
【0032】
他の例示的な実施形態では、1つのモジュールは、インテント認識モジュール140およびエンティティ認識モジュール145の両方の機能を実行するように構成され得る。例えば、モデルは、インテント認識とエンティティ認識の両方を実行するようにトレーニングされ得る。別の例示的な実施形態では、モーフィングインターフェースシステム130は、各インテントタイプ(すなわち、各ドメイン)のエンティティ認識に関連するサブモデルを含み得る。すなわち、モーフィングインターフェースシステム130は、各潜在的なインテントタイプに関連付けられたエンティティの値を決定するための異なるエンティティ認識モデルを格納し得、エンティティ認識モデルの過去のセットに基づいて、新しい潜在的インテントタイプのためのモデルの作成を自動化するために転移学習を使用し得る。例えば、インテント認識モジュール140がピザを注文する意図を予測する場合であれば、エンティティ認識モジュール145は、食品の注文のためのインテントに関連するエンティティを識別するために訓練されたエンティティ認識モデルにアクセスし、使用し得る。別の例示的な実施形態では、インテント認識モジュール140は、第1のモデルがより高いレベルのドメイン(例えば、「food」(「食品」))を推測し、そのドメインのサブモデルは次に予測されたドメイン内のユーザーの特定のインテント(例えば、ユーザーが、テーブルを予約したいのか、テイクアウトの注文をしたいのか、レシピの検索などをしたいのかどうか)を予測する階層モデルの形態で構成され得る。
【0033】
別の例示的な実施形態では、モーフィングインターフェースシステムは、NLPパイプライン135を含まなくてもよい。そのような実施形態では、インテント認識モジュール140およびエンティティ認識モジュール145は、ユーザークエリ210に直接基づいてインテントを予測し、エンティティを決定するようにトレーニングされる。
【0034】
図3は、例示的な実施形態における、例示的なNLP信号を示す詳細なブロック図である。NLPパイプライン135は、ユーザー入力文字列から様々なNLP信号を生成するためのトークン化、品詞(POS)タグ付け、テキストチャンキング、意味役割付与(SRL)、および共参照解析機能を含み得る。他のいくつかの例のNLP信号には、レンマ化、ステミング、係り受け解析、エンティティ抽出、およびストップワードの識別が含まれる。様々な実施形態では、NLP信号の様々な組み合わせがNLPパイプライン135において使用され得、信号は様々な順序で決定され得る。例えば、別の例示的な実施形態では、NLPパイプライン135は、トークン化、ステミング、レンマ化、ストップワード識別、係り受け解析、エンティティ抽出、チャンキング、SRL、そして共参照解析の順序でNLP信号を決定し得る。
【0035】
図4Aは、例示的な実施形態における、ユーザー入力からインターフェースを生成するプロセスを示すフローチャートである。モーフィングインターフェースシステム130は、ユーザー入力の第1の部分を受け取る(405)。ユーザー入力の第1の部分は、例えば、文書の始まりの単語または複数の単語であり得、テキストまたは音声入力を含む様々な入力形態でモーフィングインターフェースシステム130によって受け取られ得る。モーフィングインターフェースシステム130は、受け取ったユーザー入力の第1の部分に基づいて自然言語処理信号を生成する(410)。NLPパイプライン135は、トークン化、品詞(POS)タグ付け、係り受け解析、エンティティ抽出、ステミング、レンマ化、ストップワード識別、テキストチャンキング、意味役割付与、および共参照解析を含む様々な解析技術を使用して、自然言語処理信号を生成し得る。
【0036】
モーフィングインターフェースシステム130は、ユーザー入力の第1の部分と一致するインテントを選択する(420)。いくつかの実施形態では、インテント認識モジュール140は、トレーニングされたコンピュータモデルを適用して、どのインテントがユーザー入力の第1の部分に応答することに最も適用可能であるかを予測する。すなわち、インテント認識モジュール140は、受け取ったユーザー入力によって暗示されるインテントを選択する。
【0037】
モーフィングインターフェースシステム130は、ユーザー入力の第1の部分から、予測されたインテントに関連するエンティティ値を抽出する(425)。一実施形態では、エンティティ認識モジュール145は、トレーニングされたコンピュータモデルを適用して、受け取ったユーザー入力から関連する値を抽出する。いくつかの実施形態では、モーフィングインターフェースシステム130は、抽出されたエンティティに関する情報が追加の入力としてインテント認識モジュール140に送信されるようなフィードバックループを含むように構成される。また、いくつかの実施形態では、自動再トレーニングおよび自己改善サイクルも含み得る。モーフィングインターフェースシステム130は、選択されたインテントに関連するインターフェースを取得する(430)。いくつかの実施形態では、選択されたインターフェースは、インテントに関連するエンティティを抽出するプロセスで使用される。例えば、インテントに関連するインターフェースは、その特定のインテントに関連する値の入力領域を含み得、エンティティ認識モジュール145は、ユーザー入力からの値を識別するための入力領域についての情報を使用し得る。選択されたインテントに関連する抽出されたエンティティ値は、インターフェースに追加するために使用される(435)。いくつかの実施形態では、インターフェースは、例えば、これまで受け取ったユーザー入力の一部が、インターフェースレイアウトに含まれる入力領域を完了するために必要とされる情報の一部のみを含む場合、部分的にのみ入力され得る。例えば、「book me flight」(「飛行機を予約して」)を含む入力を提供した後にユーザーが一時停止した場合、モーフィングインターフェースシステム130は、カレンダーを強調表示し、「when do you want to fly」(「いつ飛行したいのか」)などの質問(query)を用いて、ユーザーインターフェースをさらに追加するためのより多くのユーザー入力を受け取るようにユーザーに促し得る。モーフィングインターフェースシステム130は、例えば、クライアントデバイス110を介して、ユーザーに追加されたインターフェースを表示する(440)。
【0038】
いくつかの実施形態では、モーフィングインターフェースシステム130は、複数のインテントがユーザー入力の第1の部分に適用可能であるとの類似または同等の予測可能性を有する場合、1つ以上の適用可能なインテントを選択し得る(420)。例えば、ユーザー入力の第1の部分が、「Order me coffee」(「コーヒーを注文して」)である場合に、モーフィングインターフェースシステム130は、一袋のコーヒー豆を購入すること、およびカフェから1杯のコーヒーを注文することについてのインテントが同等に適用可能であると決定し得る。すなわち、モーフィングインターフェースシステム130は、ユーザーのインテントがドリンク配達および食料品の注文である可能性が等しいと判定し得る。そのような場合、モーフィングインターフェースシステム130は、等しい可能性を有する2つまたはそれ以上のインテントに関連するエンティティ値を抽出し得(425)、複数の可能性のあるインテントに関連するプレビューインタフェースを取得し得(430)、インテントに関連する抽出されたエンティティ値をプレビューインタフェースに追加し得(435)、クライアントデバイス110でユーザーに表示するために追加したプレビューインタフェースを提供し得る(440)。そのような実施形態では、モーフィングインターフェースシステムは、さらなるユーザー入力の解析に進む前に、複数の可能性のあるインテントのうちの1つを選択するユーザーからの入力を待つようにし得る。いくつかの実施形態では、そのモーフィングインターフェースシステム130は、将来、システムがユーザー入力のそのパターンに基づいて、ユーザーが特定のインテントを選択する可能性を高めることができるように、提供されたユーザー入力に関してプレビューインタフェースのユーザー選択に関する情報を記憶し得る。したがって、モーフィングインターフェースシステム130とのいくつかのやり取りの履歴後、ユーザーの好みおよび入力パターンが格納されるにつれて、ユーザーは、より少ないインテントのプレビューが提示され得る。
【0039】
図4Bは、例示的な実施形態における、追加のユーザー入力を受信したときにインターフェースをモーフィングするプロセスを示すフローチャートである。モーフィングインターフェースシステム130は、ユーザー入力の一部を解析のために受け取るとすぐに、クライアントデバイス110で表示用のインターフェースを有効に(または提供)し得る。クライアントデバイス110で表示用のインターフェースを有効にする(または提供する)ことは、モーフィングインターフェースシステム130によって定義されるインテントおよび/またはモーフィング構造に対応するユーザーインターフェースを表示するために、クライアントデバイス110のオペレーティングシステムのためのコード、コマンド、および/またはデータを提供することを含み得る。追加のユーザー入力を受け取ると、モーフィングインターフェースシステム130は、選択されたインテントが伸張するユーザー入力文字列と依然として最も一致しているか否かを繰り返し再評価する。モーフィングインターフェースシステム130が、同じインテントが依然として適用されると判定する場合、追加のエンティティ値が、拡張されたユーザー入力から抽出され得る。しかしながら、モーフィングインターフェースシステム130が、追加のユーザー入力が与えられ、異なるインテントがより適用可能であると判定する場合、システムは、異なる、より適用可能なインテントへのユーザーインターフェースの変更(例えば、「モーフフィング(morph)」)を表示のために可能に(または提供)し得る。画面上(例えば、クライアントデバイス110での)での視覚的変更は、例えば、ユーザーインターフェースの完全な更新への段階的な視覚的遷移であり得る。さらに、モーフィングインターフェースシステムは、ユーザー入力が経時的に追加されるにつれて、ユーザーインターフェースが任意の回数変更することを可能にし得る。
【0040】
特に、
図4Aに記載されるように、ユーザー入力の第1の部分が受け取られて分析された後、
図4Bに記載されるように、モーフィングインターフェースシステム130は、ユーザー入力の追加の部分を受け取るにつれて、ユーザー入力の伸張する文字列を解析し続ける。モーフィングインターフェースシステム130は、ユーザー入力の追加の部分を受け取る(445)。例えば、ユーザー入力の第1の部分は、文章の最初の単語であり得、
図4Bのプロセスは、ユーザー入力文章の2番目の単語を受け取ったことに応答して開始され得る。
【0041】
モーフィングインターフェースシステム130は、ユーザー入力の以前に受信された部分とユーザー入力の追加の部分との組み合わせに基づいて、自然言語処理信号を生成する(450)。ユーザー入力の組み合わせに一致するインテントは、例えばインテントマッチングモジュール140によって選択される(455)。
【0042】
モーフィングインターフェースシステム130は、一致したインテントが直近に一致したインテントと同じであるか否か、または一致したインテントが新しいインテントであるかどうかを決定する(460)。新しいインテントは、クライアントデバイス110で現在表示されているインターフェースに関連付けられるインテントとは異なるインテントであり得る。
【0043】
インテントが同じインテントである場合、次いで、モーフィングインターフェースシステム130は、インテントに関連する追加のエンティティ値を、以前のユーザー入力と現在の(すなわち、直近の)ユーザー入力との組み合わせから抽出する(465)。インターフェースは、インテントに関連する追加のエンティティ値が追加される(470)。
【0044】
インテントが以前のユーザー入力の収集と一致した以前のインテントと同じでない場合、モーフィングインターフェースシステム130は、ユーザー入力の組み合わせから新しいインテントに関連するエンティティ値を抽出する(475)。新しいインテントに関連するインターフェースは、例えば、インターフェースストア155から取得される(480)。取得されたインターフェースは、新しいインテントに関連付けられる抽出されたエンティティ値が追加される(485)。
【0045】
モーフィングインターフェースシステム130は、例えば、クライアントデバイス110を介して、以前と同じインターフェースであるか否か、または新たに取得されたインターフェースであるか否かにかかわらず、追加されたインターフェースのユーザーへの表示を有効に(または提供)する(490)。
図4Bに示すプロセスは、モーフィングインターフェースシステム130によってユーザー入力の追加の部分を受け取る(445)たびに繰り返され得る。
【0046】
以下の
図5Aから
図5Gは、追加のユーザー入力を受け取った際のインテントを実行するインターフェースの一実施形態における一例を示している。一実施形態では、インターフェースは、コンピューティングデバイス、例えば、スマートフォン、タブレット、ラップトップまたはデスクトップコンピュータなどのクライアントデバイス110の画面上に表示するために提示されるユーザーインターフェースである。
図5Aから
図5Gは、クライアントデバイス110を介して受け取ったユーザー入力が、フライトの予約の一般的なインテント(すなわち、機能またはユーザ要求)に一致した例を示す。選択されたインターフェースに関連する追加のエンティティ値が追加のユーザー入力の受け取りに応答して決定されるにつれて、表示されるインターフェースのレイアウトは、モーフィング(morph)および変化する。しかしながら、
図5Aから
図5Gの例では、モーフィングインターフェースシステム130は、新しいインテントがユーザー入力とより良く一致すると決定しておらず、したがって、表示されたレイアウトは、フライト予約インターフェースと関連するままである。
【0047】
図5Aは、例示的な実施形態における、フライト予約インテントに関連するインターフェースのために表示される第1のレイアウトを示す図である。フライト予約に関連するインターフェース500は、受け取ったユーザー入力530Aに基づいて、モーフィングインターフェースシステム130によって選択される。
図5A ~
図5Eの図面では、選択されたインターフェース500と関連する表示レイアウトが図の左側に示され、2つの可能性のある種類のユーザー入力530の表示が図の右側に示されている。様々な実施形態では、ユーザーデバイス上の実際の表示は、インターフェース500のレイアウト、インターフェース500とユーザー入力レイアウトとの間の交互、インターフェース500の一部及びユーザー入力530の入力表示レイアウトの一部を示す分割画面、または別の表示スキームとして現れ得る。1つの例示的な実施形態では、インターフェース500が、例えば、新しいユーザー入力530に応答して更新されると、図面の左に示されるようなディスプレイは、次のレイアウトまたはインターフェースを示すためにモーフィング(morph)を開始する。例えば、
図5Aの左のユーザーインターフェース500は、
図5Bの左のユーザーインターフェース500のレイアウトにモーフィングする(morph)。このインタフェースモーフィング(morphing)は、例えば、連続した
図5A~
図5G及び
図6A~
図6Dに記載されるインターフェース500間の遷移として、各連続したユーザーインターフェース間で生じ得る。
図5Aに示されるユーザー入力530の例示的なタイプは、音声入力510、および文字入力520を含む。
【0048】
図5Aの例では、モーフィングインターフェースシステム130は、テキスト文字列「Book me a flight」(「飛行機を予約してください」)を含む初期ユーザー入力530Aを受け取る。モーフィングインターフェースシステム130は、ユーザー入力530Aがフライト予約インテントに最も関連付けられている可能性が高いと判定し、それに応じて、フライト予約インターフェース500は、ほぼ瞬時に表示される。インターフェース500は、ウィジェット540を含み得る。ウィジェットは、インターフェースに関連するエンティティに関連する情報を表示または収集するインターフェースレイアウトの一部であり得る。場合によっては、ウィジェット540は、入力フィールド(例えば、テキストフィールド、チェックボックス、または他のデータ入力フォーマット)であり得る。インターフェース500は、エンティティ認識モジュール145によって決定されたエンティティ値を追加(populate)することができるウィジェット540を表示し得る。様々な実施形態では、インターフェース500は、エンティティ認識モジュール145が入力フィールドに追加(populate)する値を決定する前であっても、インターフェース500にするエンティティのためのいくつか、またはすべてのウィジェット540を表示し得る。例えば、
図5Aは、フライト予約の目的地の値を入力するためのスペースを含むウィジェット540Aを含む。図
5Bは同様に、フライト予約の日付の値を入力するためのスペースを含む出発・帰着日ウィジェット540Bと乗客の人数を示すウィジェット540Cとを含み、エンティティ認識モジュール145が「1 passenger Economy」(「1人、エコノミー」)の値が最も可能性が高い入力値であると予測し、それに応じてウィジェット540Cに追加された値が表示される。
【0049】
図5Bは、例示的な実施形態における、フライト予約インテントに関連するインターフェースのために表示される第2のレイアウトを示す図である。
図5Bにおいて、ユーザー入力530Bは、追加情報を含む。特に、ユーザーがさらに入力を追加したため、ユーザー入力530Bは「Book me a flight from SFO」(「SFOからのフライトを予約してください」)と表示されるようになった。モーフィングインターフェースシステム130は、選択されたインテントが依然としてフライト予約のままであるべきであると決定し、インターフェース500内にウィジェット540をさらに追加するための追加のエンティティ値情報を識別する。したがって、ユーザーインターフェース500は、
図5Aのレイアウトから
図5Bに示されるレイアウトにモーフィング(morph)する。例えば、
図5Bに示されるインターフェース500は、ウィジェット540A内の飛行起点情報のために入力された起点「SFO」(「サンフランシスコ」)を含む。いくつかの実施形態では、インターフェースを1つのレイアウトから別のレイアウトにモーフィングすることは、例えば、新しいエンティティ情報がユーザー入力から抽出されるように、ユーザー入力から新たに受信された情報を使用してさらに追加され得るレイアウトのセクションの移動展開(a moving expansion)などのアニメーションの表示を含み得る。
【0050】
図5Cは、例示的な実施形態における、フライト予約インテントに関連するインターフェースのために表示される第3のレイアウトを示す図である。
図5Cでは、ユーザー入力530Cは、さらに追加情報を含む。特に、ユーザーは、ユーザー入力530Cが「Book me a flight from SFO to LAX」(「SFOからLAXへのフライトを予約してください」)を含むように入力を追加した。モーフィングインターフェースシステム130は、選択されたインテントが依然としてフライト予約であるべきと決定する。モーフィングインターフェースシステム130は、例えば、ウィジェット540Aの行先フィールド内の行先「LAX」(「ロスアンジェルス」)を含むインターフェース500内にウィジェット540をさらに追加するための追加のエンティティ値情報を識別する。したがって、ユーザーインターフェース500は、
図5Bに示されるレイアウトから
図5Cに示されるレイアウトにモーフィングする(morph)。
【0051】
図5Dは、例示的な実施形態における、フライト予約インテントに関連するインターフェースのために表示される第4のレイアウトを示す図である。
図5Dにおいて、ユーザー入力530Dは、追加情報を含む。特に、ユーザーがさらに入力を追加したため、ユーザー入力530Bは「Book me a flight from SFO to LAX on April 22」(「4月22日のSFOからLAXまでのフライトを予約してください」)が含まれるようになった。モーフィングインターフェースシステム130は、選択されたインテントが依然としてフライト予約であるべきであると決定し、インターフェース500にさらに追加するための追加のエンティティ値情報を抽出する。したがって、ユーザーインターフェース500は、
図5Cに示されるレイアウトから
図5Dに示されるレイアウトにモーフィングする(morph)。例えば、
図5Dは、4月22日を選択した状態で、ユーザーによって要求されたフライトに関する出発日情報を示表示する拡張ウィジェット540Dを示す。
【0052】
図5Eは、例示的な実施形態における、フライト予約インテントに関連するインターフェースのために表示される第5のレイアウトを示す図である。モーフィングインターフェースシステム130が、選択されたインテントに関連するエンティティ値がすべて抽出され、インテントに適用されたと決定する場合、インテントは、ユーザーのための応答を生成するために実行し得る。次いで、インターフェース500のレイアウトは、応答の表示を含み得る。例えば、エンティティ認識モジュール145が、フライトを予約するために必要なすべてのエンティティに関連する値を識別する場合、インテントが実行され、ユーザー入力530で指定された基準を満たす可能性のあるフライトを識別するインターフェース500のレイアウトが提示される。例えば、ユーザーインターフェース500は、
図5Dに示されるレイアウトから
図5Eに示されるレイアウトにモーフィングする(morph)。つぎにユーザーは、提示されたオプション、例えば、指定された基準で可能なフライトと一致する提示された選択肢、例えばウィジェット540E、540F、540G、540H、及び540Iからフライトを選択し得る。
【0053】
図5Fは、例示的な実施形態における、フライト予約インテントに関連するインターフェースのために表示される第6のレイアウトを示す図である。
図5Fの例では、インターフェース500は、選択されたフライト情報を表示し、これにより、ユーザーは、フライトを購入するための注文を送信する前にデータを確認することができる。いくつかの実施形態では、モーフィングインターフェースシステム130は、様々なパーソナライズ技術を使用して、ユーザーに関連するエンティティの値を決定し得る。ひとつの実施形態では、モーフィングインターフェースシステム130は、インテントの実行において使用するためのユーザプロファイル情報を格納することができる。例えば、モーフィングインターフェースシステム130は、ユーザー名、クレジットカード番号、自宅及び職場の場所などを格納し得る。例えば、
図5Fにおいて、ウィジェット540Jおよび540Kにおける予約ユーザーおよびクレジットカードの情報は、その情報がユーザー入力530に含まれることなく、モーフィングインターフェースシステム130によって記入される。いくつかの実施形態では、ユーザモーフィングインタフェースシステム130は、例えば、声紋を使用して、ユーザーのアイデンティティを検証して、ユーザー情報を自動的に含むかどうか、または追加のユーザー入力が必要であるかどうかを決定することができる。いくつかの実施形態では、モーフィングインターフェースシステム130は、ユーザーがより使用する可能性が高いレイアウト部分及びエンティティ値を予測することができる訓練されたモデルを使用して、インターフェースレイアウトの一部、およびレイアウト内の入力として事前追加されたエンティティを追加または削除し得、例えば、ユーザーの特定のクレジットカード入力は、ユーザーの定期的なアクションの最も最新のものを反映するために、数週間の使用後に変更され得る。
【0054】
図5Gは、画面上に表示されるユーザーインターフェースの一部を示す。ここでのユーザーインターフェースの一部は、例示的な実施形態による、フライト予約インテントの実行の電子メール確認である。
図5Gの例は、ユーザーがフライトを購入したことを確認するユーザーによって受信された電子メール550を示す。いくつかのインテントでは、そのようなメール確認はインテント実行の一部として含まれ得ない。
【0055】
以下の
図6Aから
図6Dは、一実施形態における、追加のユーザー入力を受け取った際のインテントを実行するインターフェースの一例を示している。
図6Aから
図6Dは、ユーザー入力530Eがピザ注文インテントと一致した例を示す。選択されたインターフェースに関連する追加のエンティティ値が追加のユーザー入力の受け取りに応答して決定されると、表示されるインターフェースのレイアウトは、モーフィング(morph)および変化する。
図6Aから
図6Dの例では、モーフィングインターフェースシステム130は、追加のユーザー入力の受け取り、および分析時に、新しいインテントが、最初に選択されたインテントよりもユーザー入力によりよく一致すると判断し、表示されたインターフェースレイアウトは、それに応じて、ピザ注文インターフェースからシャツ購入インターフェースにモーフィング(morph)する。
【0056】
図6Aは、例示的な実施形態による、ピザ注文インテントに関連付けられたユーザー入力の第1の部分の受け取りを示す図である。ピザ注文に関連するインターフェース500は、受け取ったユーザー入力530Eに基づいて、モーフィングインターフェースシステム130によって選択される。
図6Aの特定の例では、モーフィングインターフェースシステム130は、テキスト文字列(520上)「I want to order a pizza」(「ピザを注文したい」)、または「I want to order a pizza」(「ピザを注文したい」)に対応する音声入力(510上)を含む初期ユーザー入力530Eを受け取る。モーフィングインターフェースシステム130は、ユーザー入力530Eがピザ注文インテントに最も関連付けられている可能性が高いと判断し、インターフェース500は、インターフェース500上のグラフィカルな例501によって示されるように、それに応じてピザ注文レイアウトを表示するための遷移(例えば、モーフィング(morph))を開始する。
【0057】
図6Bは、例示的な実施形態による、ピザの注文に関連するインターフェースについて、
図6Aから
図6Bへの移行時に表示されるレイアウトを示す図である。
図5Aのように、インターフェース500は、エンティティ認識モジュール145によって決定されたエンティティ値を追加(populate)することができるウィジェット540を含み得る。例えば、
図6Bは、ピザレストランに入る(entering)ための領域を含むウィジェット540Lを含む。さらに、また、例えば、注目された(noted)レストランからのピザの価格およびピザの配達時間などの追加情報が、モーフィングされた画面(morphed screen)に表示され始め得る。
図6Bの例では、エンティティ認識モジュール145は、ユーザーが注文したいであろうピザレストランを予測し、ユーザーインターフェース500のウィジェット540にレストランに関する情報を入力している。
【0058】
図6Cは、例示的な実施形態による、より多くのユーザー入力530Fを受け取り、インターフェースが
図6Aからモーフィング(morph)し続けるにつれて、ピザTシャツ購入に関連するインターフェースのために表示されるレイアウトを示す図である。
図6Cにおいて、ユーザー入力530Fは、追加情報を含む。特に、ユーザーが入力を追加したため、ユーザー入力530Fが、「I want to order a pizza T-Shirt」(「ピザTシャツを注文したい」)を含むようになった。インテントマッチングモジュール140は、追加のユーザー入力を分析し、以前に選択されたピザ注文インテントがもはや最も適用可能なインテントではなくなり、新しい最も関連性のあるインテントがシャツ注文インテントであると決定する。モーフィングインターフェースシステム130は、シャツ購入インテントに適用可能なインターフェース500を選択し、クライアントデバイス110でディスプレイをモーフィング(morph)して、選択されたインテントに関連するレイアウトを表示する。例えば、ピザレストランの提案を表示するのではなく、
図6Cのインターフェース500は、購入可能なピザをテーマとしたTシャツの選択肢を表示するようになった。すなわち、ユーザーインターフェース500は、ユーザーが追加の入力情報を提供し続けるにつれて、ピザの注文を表示する
図6Bに示されるインターフェースから、明らかに瞬時にピザTシャツ購入オプションを表示する
図6Cに示されるインターフェースにモーフィング(morph)する。例示的なシャツ購入インテントに関連するウィジェット540Mは、その時ユーザーが購入のために選択することができるピザTシャツの写真を含み得る。
【0059】
図6Dは、例示的な実施形態による、Tシャツの購入インテントに関連付けられ得る追加の例示的なインターフェースを示す図である。例えば、いったんモーフィングインターフェースシステム130が、インテントを実行するために必要なすべてのエンティティ値が利用可能であると決定すると、プロセスは、ユーザーによって引き継がれ得る。
図6Dの例では、ユーザーは、インターフェース500Aに示されるように、ピザをテーマとしたTシャツの選択肢のうちの1つを選択し得、ユーザーは、インターフェース500Bに示されるように、選択されたアイテムに関する追加情報を閲覧し得、ユーザーは、注文の詳細を確認し、ピザTシャツを注文し得る。
【0060】
図5A~
図5Gおよび
図6A~
図6Dの例は、受け取ったユーザー入力が追加情報で徐々に増加されるにつれて、実質的に(またはほぼ)同時のリフレッシュを介して変化する、急速に変化する(例えば、モーフィングされた)ユーザーインターフェースを有益に反映している。従来のシステムとは異なり、ここでは、ユーザーは、ユーザーがユーザー入力を提供するにつれて、従来のシステムがそれらに提示する可能性のある推奨事項を解析する必要はない。さらに、従来のシステムとは異なり、ユーザーは、増加する入力文字列に対応する瞬間の表示(例えば、現在提供されている)に、どのユーザーインターフェースが表示されるかを見始めるために、ユーザー入力の完全な選択を待つ必要はない。さらに、従来のシステムとは異なり、コンピューティングデバイスの画面上に表示することが可能なユーザーインターフェースは、ほぼ瞬時に(または直ちに)部分入力を反映し始め、追加項目がユーザー入力に文脈上追加されるにつれて、現在の入力を反映するように急速に進化し、完全なユーザー入力に対応する適切な最終ユーザーインターフェースで終了する。すなわち、テキスト入力TX0+TX1での表示のために有効化されたユーザーインターフェースは、元のユーザー入力TX0の表示のために有効化されたユーザーインターフェースから実質的に直ちに更新される。
【0061】
(コンピューティングシステムの例)
図7は、例示的な実施形態による、マシン可読媒体から命令を読み取り、それらを1つまたは複数のプロセッサ(もしくはコントローラ)で実行することができる例示的なマシンの構成要素を示すブロック図である。具体的には、
図7は、コンピュータシステム700の例示的な形態におけるモーフィングインターフェースシステム130の図式的な表現を示す図である。コンピュータシステム700は、マシンに本明細書で開示される方法論(またはプロセス)のうちのいずれか1つまたは複数を実行させるための命令724(例えば、プログラムコード、またはソフトウェア)を実行するために用いられることができる。代替的な実施形態において、マシンは、スタンドアロンデバイス、または他のマシンに接続する接続された(例えば、ネットワーク化された)デバイスとして動作する。ネットワーク接続されたデプロイメントにおいて、マシンは、サーバー・クライアントネットワーク環境におけるサーバーマシンもしくはクライアントマシンとして、またはピア・ツー・ピア(または分散)ネットワーク環境におけるピアマシンとして動作し得る。
【0062】
マシンは、サーバーコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、スマートフォン、モノのインターネット(IoT)機器、ネットワークルーター、スイッチもしくはブリッジ、またはそのマシンによって実行される動作を指定する命令724(シーケンシャル、またはその他のもの)を実行できる任意のマシンであり得る。さらに、1つのマシンだけが示されているが、「マシン」という用語は、また、本明細書で説明される方法論のうちのいずれか1つまたは複数を実行するために、個々にまたは結合して命令724を実行するマシンの任意の集合を含むものと解釈される。
【0063】
例示的なコンピュータシステム700は、1つまたは複数の処理ユニット(一般的に、プロセッサ702)を含む。プロセッサ702は、例えば、中央処理装置(CPU)、グラフィック処理装置(GPU)、デジタルシグナルプロセッサ(DSP)、コントローラ、状態マシン、1つもしくはそれ以上の特定用途向け集積回路(ASIC)、1つもしくはそれ以上の無線周波数集積回路(RFIC)、またはこれらの任意の組み合わせである。プロセッサは、コンピューティングシステム700のためのオペレーティングシステムを実行する。コンピュータシステム700は、また、メインメモリ704を含む。コンピュータシステムは、ストレージユニット716を含み得る。プロセッサ702、メモリ704、およびストレージユニット716は、バス708を介して通信する。
【0064】
さらに、コンピュータシステム700は、静的メモリ706、グラフィックスディスプレイ710(例えば、プラズマディスプレイパネル(PDP)、液晶ディスプレイ(LCD)、またはプロジェクター)を含むことができる。コンピュータシステム700は、また、文字数字入力デバイス712(例えば、キーボード)、カーソル制御デバイス714(例えば、マウス、トラックボール、ジョイスティック、モーションセンサー、または他のポインティング機器)、信号生成デバイス718(例えば、スピーカー)、およびネットワークインターフェースデバイス720を含み得、これらは、また、バス708を介して通信するように構成されている。
【0065】
ストレージユニット716は、本明細書で説明される方法論、または機能の任意の一つまたはそれ以上を具現化する命令724(例えば、ソフトウェア)が格納されるマシン可読媒体722を含む。例えば、命令724は、NLPパイプライン135、機能マッチングモジュール140および/またはエンティティ認識モジュール145の機能を実装するための命令を含み得る。命令724(例えば、ソフトウェア)は、また、コンピュータシステム700によるその実行の間に、メインメモリ704内、またはプロセッサ702内(例えば、プロセッサのキャッシュメモリ内)に完全にもしくは少なくとも部分的に存在し得、メインメモリ704、およびプロセッサ702は、また、マシン可読媒体を構成する。命令724は、ネットワークインターフェースデバイス720を介して、ネットワーク120などのネットワーク726を介して送信または受信され得る。さらに、クライアントデバイス(またはユーザデバイス)について、受信された命令は、クライアントデバイス上の機能を有効にするサーバシステムからの命令であり得る。例えば、ユーザーインターフェースがどのように表示されるかは、そのコードがクライアントデバイスのオペレーティングシステムと適切にインターフェースする方法に基づいて、表示のためにユーザーインターフェースがどのように有効にされるべきか(例えば、レンダリングされるべきか)に関するコードを受信することを含み得る。
【0066】
マシン可読媒体722は、実施形態の一例においては、1つの媒体であると示されているが、「マシン可読媒体」という用語は、命令724を格納することが可能である1つの媒体または複数の媒体(例えば、集中型または分散型データベース、もしくは関連するキャッシュおよびサーバー)を含むものと解釈される。「マシン可読媒体」という用語は、また、マシンによる実行のための命令724を格納することが可能であり、マシンに本明細書に開示される1つまたはそれ以上の方法論のうちの任意のものを実行させる任意の媒体を含むものと解釈される。「マシン可読媒体」という用語は、限定するわけではないが、固体メモリ、光学媒体、および磁気媒体の形態でのデータリポジトリを含む。
【0067】
(さらなる検討事項)
実施形態の前述の説明は、例示の目的で提示されており、網羅的であること、または開示された正確な形態に特許権を限定することを意図していない。関連技術分野における当業者は、上記の開示を考慮すると、多くの修正例および変形例が可能となることを理解することができる。
【0068】
本説明のある部分は、情報に対する演算のアルゴリズムおよび記号表現の観点から、実施形態を説明している。これらのアルゴリズムの説明および表現は、データ処理技術における当業者によって一般的に用いられ、彼らの仕事の趣旨を効果的に他の当業者に伝える。これらの演算は、機能的、計算的、または論理的に説明されている一方で、コンピュータプログラムもしくは等価の電気回路、またはマイクロコードなどによって実装されると理解される。さらに、また、普遍性を失うことなく、時にはこれらの演算の配列をモジュールと称すると便利であることが分かる。説明される演算およびそれらに関連するモジュールは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせで具現化され得る。
【0069】
本明細書で説明される任意のステップ、演算、またはプロセスは、単独または他のデバイスと組み合わせることで、1つもしくはそれ以上のハードウェアまたはソフトウェアモジュールを用いて実行または実装され得る。実施形態の一例では、ソフトウェアモジュールは、説明したステップ、演算、もしくはプロセスのいずれか、もしくはすべてを実行するために1つもしくは複数のコンピュータプロセッサによって実行可能なコンピュータプログラムコードを含むコンピュータ可読媒体で構成されるコンピュータプログラム製品を用いて実装される。
【0070】
実施形態は、また、本明細書の演算を実行するための装置に関連し得る。この装置は、要求される目的のために特別に構築され得、および/または、コンピュータに格納されるコンピュータプログラムによって、選択的にアクティベートされるか、または再構成されるコンピューティングデバイスで構成され得る。このようなコンピュータプログラムは、コンピュータシステムバスに結合され得る、非一時的な有形のコンピュータ可読記憶媒体、または電子命令を格納することに適する任意のタイプの媒体に格納され得る。例えば、コンピュータプログラムを記憶するデータ記憶装置に結合されたコンピューティングデバイスは、特殊用途のコンピューティングデバイスに対応することができる。さらに、本明細書において参照される任意のコンピューティングシステムは、単一のプロセッサを含み得、または計算能力を高めるための複数のプロセッサデザインを採用するアーキテクチャであり得る。
【0071】
実施形態は、また、本明細書で説明されるコンピューティングプロセスによって生成される製品に関連し得る。このような製品は、コンピューティングプロセスから生じる情報から構成され得、その情報は、非一時的な有形のコンピュータ可読記憶媒体に格納され、本明細書で説明されるコンピュータプログラム製品または他のデータとの組み合わせの任意の実施形態を含み得る。
【0072】
最後に、明細書で用いられる文言は、主に読み易さおよび教育目的のために選択されており、発明の主題を描写または制限するために選択されていない場合がある。それゆえに、特許権の範囲は、この発明の詳細な説明によってではなく、本明細書に基づいた出願で発行される任意の請求項によって制限されることが意図されている。したがって、実施形態の開示は、以下の特許請求の範囲に記載される特許権の範囲を例示することを意図するものであり、限定することを意図するものではない。