(57)【要約】  たとえば、自動アシスタントによって、または他のユーザインターフェースを介して、既存の対話型ウェブサイトのホストからの最低限の労力しか伴わずにそれらのウェブサイトとの自動関与を容易にするために、それらのウェブサイトを分析するための実装形態が、本明細書で説明される。たとえば、様々な実装形態では、本明細書で説明する技法は、様々な対話型ウェブサイトをナビゲートするために使用可能な個々のアクションおよびアクションの「トレース」を、抽象化し、検証し、維持し、一般化し、拡張し、かつ/または配信するために使用され得る。追加として、これらのアクションおよび/またはトレースを活用してサードパーティウェブサイトとの対話の態様を自動化するための技法が、本明細書で説明される。たとえば、いくつかの実装形態では、本明細書で説明する技法は、ユーザがサードパーティウェブサイトと視覚的に直接対話することを必要とすることなく、またサードパーティが彼ら自身のサードパーティエージェントを実施することを必要とすることなく、サードパーティウェブサイトと対話するために(発話またはタイプされた対話セッションを介して)ユーザが自動アシスタントに関与することを可能にし得る。
2022501730.tif 000002
【特許請求の範囲】
【請求項１】
1つまたは複数のプロセッサを使用して実施される方法であって、
コンピューティングデバイスの入力構成要素においてユーザから自然言語入力を受け取るステップであって、前記自然言語入力が、前記ユーザによって、少なくとも部分的に前記コンピューティングデバイス上で動作する自動アシスタントに向けられている、ステップと、
前記ユーザの意図、および前記ユーザの前記意図を実行することに関連する1つまたは複数のパラメータを識別するために、前記自然言語入力を分析するステップと、
1つまたは複数の対話型要素を含むウェブページを取得するステップであって、前記ウェブページが、前記ユーザの前記意図を実行するように動作可能であり、前記1つまたは複数の対話型要素が、前記パラメータのうちの1つまたは複数を入力するように動作可能である、ステップと、
前記ユーザに関連する現在ユーザ状態を決定するステップであって、前記現在ユーザ状態が、前記ウェブページのコンテンツに少なくとも部分的に基づいて決定される、ステップと、
前記現在ユーザ状態に基づいて過去ユーザ状態のデータベースから1つまたは複数の候補過去ユーザ状態を識別するステップであって、前記1つまたは複数の候補過去ユーザ状態の各々が、前記ウェブページの前記対話型要素のうちの1つまたは複数と対話するための1つまたは複数の候補アクションを含み、前記1つまたは複数の候補アクションが、前記意図の少なくとも部分を実行できるものとして以前に検証された、ステップと、
第1の基準に少なくとも部分的に基づいて、前記1つまたは複数の候補過去ユーザ状態から特定の候補過去ユーザ状態を選択するステップと、
前記選択された候補過去ユーザ状態に関連する第2の基準に少なくとも部分的に基づいて、前記1つまたは複数の候補アクションから特定の候補アクションを選択するステップと、
前記パラメータのうちの1つまたは複数を使用して前記ウェブページの前記対話型要素のうちの1つまたは複数と対話するために、前記選択された候補アクションを実行するステップと、
前記ユーザの前記意図の少なくとも部分が実行されていることを示す自然言語出力を、前記自動アシスタントによって前記ユーザにオーディオ出力またはビジュアル出力として提供するステップと
を備える方法。
【請求項２】
前記自然言語入力、前記ユーザの前記意図、または前記1つもしくは複数のパラメータのうちの1つまたは複数に基づいて前記ウェブページを識別するステップをさらに備える、請求項1に記載の方法。
【請求項３】
前記1つまたは複数の候補アクションの各々が、同じウェブページと互換性があるものとして以前に検証された、請求項1または2に記載の方法。
【請求項４】
前記1つまたは複数の候補アクションの各々が、対応する意図を実行するように動作可能な異なるウェブページと互換性があるものとして以前に検証された、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記第1の基準は、前記現在ユーザ状態と前記選択された候補過去ユーザ状態とが、最大の類似性測度を有することを備える、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記現在ユーザ状態を決定するステップが、前記ウェブページの前記1つまたは複数の対話型要素の各々に対して、それぞれの前記対話型要素と、前記ウェブページがレンダリングされるときにそれぞれの前記対話型要素を直接取り囲む、前記ウェブページの他の視認可能なコンテンツの両方を示す、データを含む汎用識別子行列を生成するステップを含む、請求項1から5のいずれか一項に記載の方法。
【請求項７】
識別する前記ステップが、前記ウェブページから生成された前記1つまたは複数の汎用識別子行列を、前記1つまたは複数の候補過去ユーザ状態の各々に関連する1つまたは複数の他の汎用識別子行列と比較するステップを備える、請求項6に記載の方法。
【請求項８】
識別する前記ステップが、前記1つまたは複数の候補過去ユーザ状態のうちの所与の候補過去ユーザ状態ごとに、前記ウェブページから生成された前記1つまたは複数の汎用識別子行列を、前記所与の候補過去ユーザ状態に関連する前記1つまたは複数の候補アクションに対応する1つまたは複数の他の汎用識別子行列と比較するステップを備える、請求項6または7に記載の方法。
【請求項９】
比較する前記ステップに基づいて、前記所与の候補過去ユーザ状態に関連する前記1つまたは複数の候補アクションをランク付けするステップをさらに備える、請求項8に記載の方法。
【請求項１０】
前記汎用識別子行列が1つまたは複数のタプルを含み、
前記1つまたは複数のタプルの各々が、前記ウェブページからのコンテンツの断片、および前記汎用識別子行列を決定するために使用された、下にあるそれぞれの対話型要素に対するコンテンツの前記断片の幾何学的ロケーションを備える、請求項6または7に記載の方法。
【請求項１１】
前記汎用識別子行列がセルの2次元グリッドを含み、
セルの前記2次元グリッドの中心セルが、前記汎用識別子行列を決定するために使用された、下にあるそれぞれの前記対話型要素に対応し、
前記中心セルを取り囲むセルの前記2次元グリッドのうちの1つまたは複数が、前記ウェブページからのコンテンツの他の断片に対応する、請求項6または7に記載の方法。
【請求項１２】
1つまたは複数のプロセッサを使用して実施される方法であって、
ウェブページの識別子を決定するステップであって、前記ウェブページがユーザの意図を実行するように動作可能であると最後に知られていたことを示すように、前記識別子が以前に検証され、前記ウェブページが、前記意図に関連する1つまたは複数のパラメータを入力するように動作可能であるものと知られていた1つまたは複数の対話型要素の第1のセットを含むことが最後に知られていた、ステップと、
前記識別子に基づいて、更新済みのバージョンの前記ウェブページを取り出すステップと、
1つまたは複数の対話型要素の第2のセットを識別するために、前記更新済みのバージョンの前記ウェブページを分析するステップと、
前記更新済みのバージョンの前記ウェブページから識別された1つまたは複数の対話型要素の前記第2のセットに基づいて、前記第2のセットのそれぞれの前記対話型要素と、前記ウェブページがレンダリングされるときにそれぞれの前記対話型要素を直接取り囲む、前記ウェブページの他の視認可能なコンテンツの両方を示す、データを各々が含む、対応する汎用識別子行列の更新済みのセットを生成するステップと、
汎用識別子行列の前記更新済みのセットと、前記ウェブページに含まれることが最後に知られた1つまたは複数の対話型要素の前記第1のセットに基づいて生成された汎用識別子行列の既知のセットとの間の、マッピングを決定するステップと、
前記マッピングに基づいて、1つまたは複数の対話型要素の前記第1のセットに対して以前に実行されたアクションを、前記第2のセットの1つまたは複数の対応する対話型要素に対して試行するステップと、
前記試行の1つまたは複数の結果に基づいて、検証されたかまたは検証されていないものとして前記ウェブページの前記識別子を選択的に分類するステップと
を備え、
検証されたウェブページ識別子が、前記検証されたウェブページ識別子に関連するウェブページを含むウェブサイトを通じた自然言語ベースの自動ナビゲーションを容易にするために利用可能である、
方法。
【請求項１３】
前記ウェブページの前記識別子がユニフォームリソースロケータ(「URL」)を備える、請求項12に記載の方法。
【請求項１４】
前記更新済みのセットの所与の各汎用識別子行列が1つまたは複数のタプルを含み、
前記1つまたは複数のタプルの各々が、前記更新済みのバージョンの前記ウェブページからのコンテンツの断片、および前記所与の汎用識別子行列を決定するために使用された、下にある対話型要素に対するコンテンツの前記断片の幾何学的ロケーションを備える、請求項12または13に記載の方法。
【請求項１５】
前記更新済みのセットの所与の各汎用識別子行列がセルの2次元グリッドを含み、
セルの前記2次元グリッドの中心セルが、前記所与の汎用識別子行列を決定するために使用された、下にある前記対話型要素に対応し、
前記中心セルを取り囲むセルの前記2次元グリッドのうちの1つまたは複数が、前記更新済みのバージョンの前記ウェブページからのコンテンツの他の断片に対応する、請求項12から14のいずれか一項に記載の方法。
【請求項１６】
前記検証されたウェブページ識別子が、前記検証されたウェブページ識別子に関連する前記ウェブページを含む前記ウェブサイトを通じた前記自然言語ベースの自動ナビゲーションを容易にするために自動アシスタントにとって利用可能である、請求項12から15のいずれか一項に記載の方法。
【請求項１７】
1つまたは複数のプロセッサを使用して実施される方法であって、
1つまたは複数の対話型要素を含む未知のウェブページを取得するステップであって、前記未知のウェブページが、調達の少なくとも部分を実行するように動作可能であり、前記1つまたは複数の対話型要素が、前記調達の前記少なくとも部分を実行するための1つまたは複数のパラメータを入力するように動作可能である、ステップと、
前記未知のウェブページの前記1つまたは複数の対話型要素に基づいて、1つまたは複数の汎用識別子行列の対応する第1のセットを生成するステップであって、前記第1のセットの各汎用識別子行列が、前記未知のウェブページのそれぞれの前記対話型要素と、前記未知のウェブページがレンダリングされるときにそれぞれの前記対話型要素を直接取り囲む、前記未知のウェブページの他の視認可能なコンテンツの両方を示す、データを含む、ステップと、
汎用識別子行列の前記第1のセットに少なくとも部分的に基づいて、過去ユーザ状態のデータベースから1つまたは複数の候補過去ユーザ状態を識別するステップであって、
前記1つまたは複数の候補過去ユーザ状態の各それぞれの候補過去ユーザ状態が、前記それぞれの候補過去ユーザ状態を生成するために使用された既知のウェブページの1つまたは複数の対話型要素と対話するための1つまたは複数の候補アクションを含み、
前記1つまたは複数の候補過去ユーザ状態のうちの所与の候補過去ユーザ状態が、汎用識別子行列の前記第1のセットと前記所与の候補過去ユーザ状態に関連する1つまたは複数の汎用識別子行列の第2のセットとの比較に基づいて識別される、ステップと、
前記候補過去ユーザ状態のうちの1つまたは複数に関連する1つまたは複数の候補アクションを、前記未知のウェブページの前記対話型要素のうちの1つまたは複数に対して試行するステップと、
前記試行の1つまたは複数の結果に基づいて、検証されたかまたは検証されていないものとして前記未知のウェブページを選択的に分類するステップと
を備え、
検証されたウェブページが、前記検証されたウェブページを含むウェブサイトを通じた自然言語ベースの自動ナビゲーションを容易にするために利用可能である、
方法。
【請求項１８】
前記検証されたウェブページが、前記検証されたウェブページを含む前記ウェブサイトを通じた前記自然言語ベースの自動ナビゲーションを容易にするために自動アシスタントにとって利用可能である、請求項17に記載の方法。
【請求項１９】
検証されたものとしての前記未知のウェブページの分類に応答して新たなユーザ状態を生成するステップをさらに備える、請求項17または18に記載の方法。
【請求項２０】
前記新たなユーザ状態が前記未知のウェブページに基づいて生成され、
過去ユーザ状態の前記データベースに新たなユーザ状態を追加する、請求項19に記載の方法。
【請求項２１】
請求項1から20のいずれか一項に記載の方法を実行するように構成された1つまたは複数のプロセッサを備えるシステム。
【請求項２２】
前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに請求項1から20のいずれか一項に記載の方法を実行させるコンピュータ実行可能命令を備える、コンピュータプログラム。
【発明の詳細な説明】
【背景技術】
【０００１】
人間は、本明細書で「自動アシスタント」と呼ばれる(「チャットボット」、「対話型パーソナルアシスタント」、「インテリジェントパーソナルアシスタント」、「パーソナル音声アシスタント」、「会話型エージェント」、「仮想アシスタント」などとも呼ばれる)対話型ソフトウェアアプリケーションとの人間対コンピュータの対話に関与し得る。たとえば、(自動アシスタントと対話するときに「ユーザ」と呼ばれることがある)人間は、テキストに、次いで、処理および/またはタイプされた自由形式自然言語入力に変換される、音声発話を含んでよい、自由形式自然言語入力を使用して、コマンド、問合せ、および/または要求(本明細書では「問合せ」と総称される)を提供し得る。自動アシスタントは、ユーザの意図を識別しそれに応答するために、自然言語処理、シンタクティック処理、セマンティック処理などの、様々なタイプの処理を自然言語入力に対して実行し得る。
【０００２】
自動アシスタントは、自動アシスタント自体がそれに完全に応答できるとは限らないいくつかのタイプのユーザ意図に応答するために、サードパーティのソフトウェアエージェントすなわち「サードパーティエージェント」と対話し得る。たとえば、レストラン、ライドシェアサービスなどのベンダは、自動アシスタントのアプリケーションプログラミングインターフェース(「API」)と対話するように構成される彼ら自身のサードパーティエージェントを設計してよく、その結果、たとえば、自動アシスタントは、ユーザとサードパーティエージェントとの間の連絡窓口として働くことができる。しかしながら、この開発パラダイムはスケーリングするのに緩慢であり得る。各ベンダは最初に、自動アシスタントのAPIと互換性のあるサードパーティエージェントを作成しなければならない。これは、多くのベンダが自由にできるかたちで有し得るよりも、多くのリソースおよび/または技術的精巧さを必要とし得る。その上、様々な品目および/またはサービスを調達するためにユーザがそれと対話できる対話型ウェブページおよび/またはモバイルアプリケーション(「アプリ(apps)」)を、多くのベンダはすでに構築している。自動アシスタントと互換性のある、また別のインターフェースをこれらのベンダが設計することを必要とすることは、少なくともベンダの観点から、労力の重複であるように見えるものをもたらし得る。
【発明の概要】
【課題を解決するための手段】
【０００３】
たとえば、自動アシスタントによって、または他のユーザインターフェースを介して、既存の対話型ウェブサイト(それらのウェブサイトを形成する個々のHTML、XML、CSS、および/またはJavaScriptウェブページを含む)のホスト(たとえば、ベンダ)からの最低限の労力しか伴わずにそれらのウェブサイトとの自動関与を容易にするために、それらのウェブサイトを分析するための技法が、本明細書で説明される。たとえば、様々な実装形態では、本明細書で説明する技法は、様々な対話型ウェブサイトをナビゲートするために使用可能な個々のアクション、およびアクションの「スクリプト」(すなわち、アクションのシーケンス)を、抽象化し、検証し、維持し、一般化し、拡張し、かつ/または配信するために使用され得る。追加として、これらのアクションおよび/またはトレースを活用してサードパーティウェブサイトとの対話の態様を自動化するための技法が、本明細書で説明される。たとえば、いくつかの実装形態では、本明細書で説明する技法は、ユーザがサードパーティウェブサイトと視覚的に直接対話することを必要とすることなく、またサードパーティが彼ら自身のサードパーティエージェントを実施することを必要とすることなく、サードパーティウェブサイトと対話するために(発話またはタイプされた対話セッションを介して)ユーザが自動アシスタントに関与することを可能にするために採用され得る。
【０００４】
自動アシスタントが、いくつかのベンダを使用するいくつかのアクション(たとえば、品目またはサービスを調達する)を実行することを、ユーザが要求することを考える。自動アシスタントがそれと直接対話できるサードパーティエージェントを、特定のベンダがまだ作成していないが、品目またはサービスを調達するためにユーザによって操作可能な1つまたは複数の対話型要素を各々が有する一連のウェブページを伴う対話型ウェブサイトを、そのベンダが有することをさらに考える。本明細書で説明する技法を使用すると、ユーザに関連する現在ユーザ状態を生成するために、対話型ウェブサイトの第1のウェブページ(すなわち、オープニングウェブページ)が分析および/または処理され得る。この現在ユーザ状態は、意味論的に豊富な特徴ベクトル、潜在空間の中の埋込みなどの、様々な方法で表されてよい。現在ユーザ状態はまた、ユーザによって(たとえば、彼らの自然言語入力の一部として)提供される1つまたは複数のパラメータ、ユーザの1つまたは複数の選好(たとえば、好ましいピザトッピングまたはクラストスタイル)、ユーザによる以前のアクション(たとえば、ユーザからの事前検索、アシスタントへの事前要求、自動アシスタントとの会話の活発な話題、事前のユーザ状態などを、ユーザがここでどのように得たのか)などの、他の情報を含んでよい。いくつかの実装形態では、現在ユーザ状態はまた、現在ウェブページの各対話型要素(たとえば、ラジオボタン、入力フィールド、サブミットボタン、検索ボタン、ドロップダウンリスト、座席指定表など)についてのコンテキスト上の手がかりを含む、本明細書で「汎用識別子行列」と呼ばれる1つまたは複数のものを含んでよい。汎用識別子行列は、より詳細に手短に説明される。
【０００５】
様々な実装形態では、現在ユーザ状態は、たとえば、1つまたは複数の候補ユーザ状態を識別するために、1つまたは複数のデータベースの中に含まれる複数の過去ユーザ状態と比較され得る。これらの過去ユーザ状態は、同じウェブサイトまたは異なるウェブサイトとの以前の対話の間に生成されたユーザ状態を表してよく、現在ユーザ状態の中に含まれるような類似の情報を含んでよい。これらの過去ユーザ状態はまた、1つまたは複数のラジオボックスをチェックすること、ドロップダウンメニュー上で特定の項目を選択すること、特定の入力フィールドを特定のパラメータで埋めることなどの、対話型要素が以前の対話の間に作用されることに対応する、関連するアクションを含んでよい。
【０００６】
候補ユーザ状態は、様々な基準に基づいて識別され得る。たとえば、いくつかの実装形態では、候補ユーザ状態は、過去ユーザ状態と現在ユーザ状態との間の類似性測度(たとえば、ユークリッド距離、類似の汎用識別子行列など)に基づいて、過去ユーザ状態のより大きいスーパーセットから識別され得る。いくつかの実装形態では、いくつかの類似性しきい値を満たす、現在ユーザ状態への類似性測度を伴う過去ユーザ状態だけが、(すなわち、経時的に大きく増大し得る、すべての過去ユーザ状態からの探索空間を低減するために)候補ユーザ状態と見なされてよい。類似性測度を使用する1つの利点は、候補ユーザ状態が現在ユーザ状態と類似になる可能性があることである。したがって、候補過去ユーザ状態を生成するために使用されるウェブページ上で首尾よく着手されたアクションは、現在ユーザ状態に対して成功となる可能性がある。
【０００７】
候補ユーザ状態が識別されると、いくつかの実装形態では、たとえば、現在ユーザ状態への候補ユーザ状態のそれぞれ類似性測度に基づいて、候補ユーザ状態のそれぞれの汎用識別子行列と現在ユーザ状態がそこで生成される現在ウェブページの汎用識別子行列との間の類似性に基づくなどして、候補ユーザ状態がランク付けされ得る。次いで、最上位にランク付けされた候補ユーザ状態が選択されてよく、たとえば、現在ウェブページの1つまたは複数の対話型要素と自動的に(すなわち、明示的なユーザ入力を伴わずに)対話するために、最上位にランク付けされた状態に関連する1つまたは複数のアクションが実行され得る。実行された1つまたは複数のアクションが失敗と判明する場合、いくつかの実装形態では、次に高くランク付けされた候補ユーザ状態が選択されてよく、その関連するアクションのうちの1つまたは複数が実行されてよく、以下同様である。いくつかの実装形態では、特定の候補ユーザ状態の成功または失敗は、たとえば、進捗する他の候補ユーザ状態の中からその候補ユーザ状態をランク付けするための、信号として使用され得る。
【０００８】
候補ユーザ状態に関連するアクションの実行に成功することは、ユーザがウェブページと対話して必要とされるすべての対話型要素の中に値を入力し「サブミットする」を押していたかどうかに対応し得る。ウェブページコンテキストにおいて、ユーザのブラウザは、対話型ウェブサイトを形成するウェブページの1つまたは複数のスクリプトの中で次のウェブページに導かれることになり、その点において、ユーザは、1つまたは複数の追加の対話型要素において追加の入力を提供するように求められ得る。同様に、本開示のコンテキストでは、1つの候補ユーザ状態に関連するアクションの実行に成功した後、現在ユーザ状態は、対話型ウェブサイトの対話型ウェブページのスクリプトの中の次のウェブページに基づいて更新され得る。次いで、そのプロセスが反復し得る。更新済みの現在ユーザ状態と最も類似の(すなわち、ユーザがブラウザを使用して第2のウェブページに到達するときに対応する)候補ユーザ状態が識別されてよい。これらの更新済みの候補ユーザ状態はランク付けされてもされなくてもよく、更新済みの候補ユーザ状態のうちの1つまたは複数に関連するアクションは、更新済みの候補ユーザ状態のうちの1つに関連するアクションが成功するまで実行され得る。このプロセスは、トランザクションが完了するまで、すなわち、自動アシスタントが対話型ウェブサイトを通じてスクリプト全体を首尾よくナビゲートしており、かつ所望の品目またはサービスが調達されるまで継続してよい。
【０００９】
追加または代替として、いくつかの実装形態では、本明細書で説明する技法を使用してウェブサイトを自動的にナビゲートするプロセスは、強化学習と同様に動作し得る。強化学習を用いると、現在の状態は、複数の候補アクションから選択するためのポリシー(たとえば、ニューラルネットワークまたは他の統計モデル)に従って検査される。同様に、本明細書で説明する技法を用いると、現在ユーザ状態は、実行すべき1つまたは複数のアクションを選択するための1つまたは複数のポリシーに従って検査されてよい。たとえば、いくつかの実装形態では、1つの現在ユーザ状態が生成され、検証されたすべてのアクションが利用可能であり得る(アクションおよびスクリプトを検証するプロセスが手短に説明される)。しかしながら、膨大な数の潜在的なアクションがあり得、それらの大多数は現在ユーザ状態に関連しない場合がある(たとえば、映画チケットを調達することに関するアクションは、ライドシェアを調達することを試みるコンテキストにおいて関連しない場合がある)。したがって、様々な実装形態では、利用可能なアクションのリストを現在ユーザ状態に関して意味をなすアクションに効果的に絞り込むポリシーが存在し得る。たとえば、いくつかの実装形態では、適用可能なポリシーが、利用可能なアクションを、現在ユーザ状態へのそれらの適応度に基づいてランク付けしてよい。実行されるアクションのうちの1つまたは複数が成功を達成する(たとえば、スクリプトの次のウェブページにナビゲートする)まで、(たとえば、それらのランク付けの順序で)最も高くランク付けされたアクションが最初に試行されてよい。
【００１０】
対話型ウェブページ(たとえば、HTML、XMLなど)において、HTMLまたはXMLノード(たとえば、対話型要素)は、通常、用語および/または用語を取り囲む画像のセットから人間によって識別され得る。そうでない場合、ページがわずかに上または下にスクロールされた後、何を読むべきかまたはどこをクリックすべきかをユーザが識別することは、困難であることになる。言い換えれば、ウェブページの各対話型要素は、それ自体の「視覚的」または「幾何学的」なコンテキストを有する。
【００１１】
本明細書で説明する技法は、以前に分析されたウェブサイトを通じて、新たなウェブサイトに適合しかつ/またはスクリプトを更新できるように、これらの幾何学的コンテキストを活用する。前に述べたように、いくつかの実装形態では、ウェブページ(検討中の現在ウェブページ、および/または過去ユーザ状態を生成するために使用されるウェブページ)の中の対話型要素ごとに、「汎用識別子行列」が生成され得る。所与の対話型要素用の汎用識別子行列は、所与の対話型要素(たとえば、ドロップダウンメニュー、入力ボックス、ラジオボタンなどの、それのタイプ)と、ウェブページがレンダリングされるときに(たとえば、ウェブブラウザアプリケーションの中でレンダリングされることになるときに)所与の対話型要素を直接取り囲む、ウェブページの他の視認可能なコンテンツの両方を示す、データを含んでよい。言い換えれば、汎用識別子行列は、人間によって見られる/理解されることになる視覚的/幾何学的コンテキストと類似の、「視覚的」または「幾何学的」なコンテキストをウェブページの対話型要素ごとに提供する。「汎用」という用語は、下にあるドキュメントオブジェクトモデル(「DOM:document object model」)ツリーからの汎用識別子行列の独立性を指す。
【００１２】
対話型要素を汎用識別子行列にセグメント化する様々な利点がある。ウェブページが経時的に変化することがある間、個々の対話型要素、およびレンダリングされたウェブページ内での対話型要素の幾何学的コンテキスト(たとえば、どんなテキストまたは他のDOM要素の近く、下方、上方などに、対話型要素が出現するのか)は、比較的不変のままであり得る。したがって、ウェブページが変更されると、同じ対話型要素の位置を、それらのそれぞれの汎用識別子行列によって提供されるコンテキスト上の手がかりに基づいて、それらの新たなロケーションにおいて、かつ/またはそれらの新たな配置の中で、特定することが可能である。同じアクションが、次いで、ウェブページの改変の前に実行されたものと同じこれらの対話型要素に対して実行され得る。
【００１３】
汎用識別子行列は様々な形式を取り得る。いくつかの実装形態では、汎用識別子行列は所与の対話型要素に関連する<ロケーション,テキスト>ペアのセットとして規定されてよい。<ロケーション>は、対象の対話型要素に中心がある、境界を定める長方形(または他の形状)の中心に対する位置であってよい。対象の対話型要素を取り囲む各要素は、その対話型要素に対するそのロケーションによって分類され得る。たとえば、<(-10,10):"第1の","名称">は、テキスト「第1の名称」が、対象の対話型要素の10ピクセル(または他の距離単位)左に、かつ10ピクセル(または他の距離単位)上方に、位置していることを指してよい。このようにして構成された2つの汎用識別子行列を比較するとき、2つの汎用識別子行列の間の全体的な類似性を決定するために、様々なペアの間の距離が算出され得る。
【００１４】
さほど粗くない別の手法は、中心セルが、対象の対話型要素を含み、かつ取り囲むセルが、対象の対話型要素を直接取り囲む、ウェブページコンテンツの断片を含む、n個のセルのグリッド(たとえば、3×3すなわち9個のセル)として汎用識別子行列を規定することである。そのようなグリッドから構成された汎用識別子行列を比較することは、グリッドの中のセルの個数とともに線形にスケーリングし得る。
【００１５】
前に述べたように、過去ユーザ状態(およびそれらの対応するアクション)のデータベースは、現在ユーザ状態との比較のために利用可能であり得る。これらの過去ユーザ状態は、様々な方法で生成または「学習」されてよい。たとえば、過去ユーザ状態は実際の人間のユーザとウェブページとの間の対話に基づいて生成されてよい(すなわち、過去ユーザ状態のコーパスが、有限数の人間の対話からブートストラップされてよい)。追加または代替として、過去ユーザ状態はウェブページとの自動対話に基づいて生成されてよい。
【００１６】
しかしながら、前述のように、ウェブページは、たとえば、新たな機能が追加されること、美的な更新などに起因して、経時的に変化することがある。したがって、様々な実装形態では、過去ユーザ状態は、たとえば、それらがそれぞれの対話型ウェブサイトを通じて依然として有効なスクリプトの一部の働きをすることを確実にするために、定期的に「検証」または「テスト」されてよい。たとえば、以前に学習されたウェブページに関連するユニフォームリソースロケータ(「URL」)が、定期的に(たとえば、1時間ごと、1日ごと、1週間ごとなどに)ウェブページを再ロードするために使用され得る。たとえば、以前から知られている汎用識別子行列と更新済みのウェブページの汎用識別子行列との間のマッピングを策定するために、前のバージョンのウェブページから以前に生成された1つまたは複数の汎用識別子行列が、更新済みのウェブページから生成された汎用識別子行列と比較され得る。ウェブページが十分に大きく変化している場合、適切なマッピングを作成することが可能でない場合があり、URLに関連する過去ユーザ状態は、もはや有効でないものとしてフラグ付けされてよい(または、場合によっては単にデータベースから落とされてよい)。
【００１７】
一方、古い汎用識別子行列と新たな汎用識別子行列との間のマッピングが首尾よく識別される場合、様々な実装形態では、過去ユーザ状態が更新済みのウェブページに関して依然として有効であるかどうかを決定するために、過去ユーザ状態に関連する様々なアクションが実行されてよい。同じかまたは類似のアクションが依然として実行可能である場合、更新済みのウェブページは検証されたと見なされてよい。場合によっては、新たなユーザ状態が、更新済みのウェブページに対して生成されてよく、将来の使用のためにデータベースの中に記憶されてよい。同じかまたは類似のアクションがもはや首尾よく実行可能でない場合、URLに関連する過去ユーザ状態は、もはや有効でないものとしてフラグ付けされてよい(または、場合によっては単にデータベースから落とされてよい)。
【００１８】
いくつかの実装形態では、所与の候補状態に対して実行されるべきアクションを選択するとき、別の基準が考慮されてよい。たとえば、いくつかの実装形態では、現在ウェブページの汎用識別子行列に整合され得る汎用識別子行列に関連するアクションだけが実行されてよく、または他の潜在的なアクションの前に実行されてよい。追加または代替として、いくつかの実装形態では、成功したナビゲーションまたは「トレース」が、ウェブサイトを形成する一連のウェブページを通じて検出されるとき(成功したトレースが人間によって生成されたのか、それとも本明細書で説明する技法を使用して自動的に生成されたのかにかかわらず)、たとえば、そのトレースから生成された個々のユーザ状態に関連するアクションに関連して、そのトレースは持続してよい。それらのアクションは、その後、「検証された」ものと見なされてよく、検証がそれに対してまだ行われていないかまたは少なくとも頻繁もしくは直近のように行われていない、他のアクションよりも好まれてよい。
【００１９】
前に述べたように、ウェブページの入力要素は、ピザトッピング、映画館/飛行機の座席選択、ライドシェアの目的地などの、パラメータを提供するためにユーザによって操作可能であり得る。これらのパラメータの多くは、自動アシスタントに関与するとき、前もってユーザによって提供され得る。たとえば、ユーザは、「OK、アシスタント。私のために薄いクラストのペパローニピザをHypothetical Pizza Shopに注文してください」のような、何かを言うことがある。Hypothetical Pizza Shopが自動アシスタントと直接インターフェースするためのアクティブなサードパーティエージェントを有しないことを想定すると、Hypothetical Pizza Shopの対話型ウェブサイトを自動的にナビゲートして、要求されるようにピザを調達するために、本明細書で説明する技法が採用され得る。しかしながら、ユーザが注文を完了するために必要とされるパラメータを提供しなかったことを考える。これらの足りないパラメータは、様々な方法で獲得され得る。
【００２０】
いくつかの実装形態では、(たとえば、ユーザのコンピューティング対話の履歴から学習された)ユーザの選好などのユーザのプロファイルの態様、またはユーザのプロファイルに関連する他の情報が、空白の中を埋めるために使用され得る。たとえば、Hypothetical Pizza Shopのウェブサイトは、受け渡し住所を必要とすることがある。その情報をユーザに要請するのではなく、ユーザの住所は、たとえば、その人のプロファイルから、かつ/またはユーザによって携帯されるデバイスによって提供される位置座標に基づいて、自動的に決定され得る。いくつかの実装形態では、ユーザの住所は、その人の現在ユーザ状態の中にベーク(bake)され得る。この情報は、次いで、ユーザが手作業でこの情報を提供する必要なく、Hypothetical Pizza Shopのウェブサイトの住所フィールドに自動で値を代入するために使用され得る。
【００２１】
しかしながら、いくつかの足りないパラメータは、ユーザのプロファイルおよび/または履歴から自動的に埋めることができない場合がある。たとえば、ユーザが商品またはサービスを調達するために複数の異なる支払い方法を使用する傾向があることを考える。ピザに対して支払いをするためにユーザがどの支払いを使用したいのかを自動アシスタントが「憶測する」ことをユーザが望まないことがあり、またはユーザの好ましい支払い方法がHypothetical Pizza Shopによって受け付けられないことがある。あるいは、ユーザが指定しなかった、かつその人のプロファイルから識別可能でない、ピザを注文するための必要とされる他のパラメータ(たとえば、特売品への興味、その人は飲み物が欲しいかなど)があり得る。いくつかの実装形態では、自動アシスタントは、たとえば、必要に応じて、これらの足りないパラメータをユーザに要請するために、Hypothetical Pizza Shopのウェブサイトを通じた横断を一時停止してよい。しかしながら、ユーザは、依然としてウェブサイトと物理的に対話する必要がなくてよい  -  自動アシスタントがユーザの代わりにそのことを行ってよい。
【００２２】
いくつかの実装形態では、コンピューティングデバイスの入力構成要素においてユーザから自然言語入力を受け取ることであって、自然言語入力が、ユーザによって、少なくとも部分的にコンピューティングデバイス上で動作する自動アシスタントに向けられていることと、ユーザの意図、およびユーザの意図を実行することに関連する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つまたは複数のタプルの各々は、ウェブページからのコンテンツの断片、および汎用識別子行列を決定するために使用された、下にあるそれぞれの対話型要素に対するコンテンツの断片の幾何学的ロケーションを含んでよい。様々な実装形態では、汎用識別子行列はセルの2次元グリッドを含んでよく、セルの2次元グリッドの中心セルは、汎用識別子行列を決定するために使用された、下にあるそれぞれの対話型要素に対応してよく、中心セルを取り囲むセルの2次元グリッドのうちの1つまたは複数は、ウェブページからのコンテンツの他の断片に対応してよい。
【００２６】
別の態様では、1つまたは複数のプロセッサを使用して実施される方法は、ウェブページの識別子を決定することであって、ウェブページがユーザの意図を実行するように動作可能であると最後に知られていたことを示すように、識別子が以前に検証されたが、ウェブページが、意図に関連する1つまたは複数のパラメータを入力するように動作可能であるものと知られていた1つまたは複数の対話型要素の第1のセットを含むことが最後に知られていたことと、識別子に基づいて、更新済みのバージョンのウェブページを取り出すことと、1つまたは複数の対話型要素の第2のセットを識別するために、更新済みのバージョンのウェブページを分析することと、更新済みのバージョンのウェブページから識別された1つまたは複数の対話型要素の第2のセットに基づいて、第2のセットのそれぞれの対話型要素と、ウェブページがレンダリングされるときにそれぞれの対話型要素を直接取り囲む、ウェブページの他の視認可能なコンテンツの両方を示す、データを各々が含む、対応する汎用識別子行列の更新済みのセットを生成することと、汎用識別子行列の更新済みのセットと、ウェブページに含まれることが最後に知られた1つまたは複数の対話型要素の第1のセットに基づいて生成された汎用識別子行列の既知のセットとの間の、マッピングを決定することと、マッピングに基づいて、1つまたは複数の対話型要素の第1のセットに対して以前に実行されたアクションを、第2のセットの1つまたは複数の対応する対話型要素に対して試行することと、試行の1つまたは複数の結果に基づいて、検証されたかまたは検証されていないものとしてウェブページの識別子を選択的に分類することとを含んでよい。様々な実装形態では、検証されたウェブページ識別子は、検証されたウェブページ識別子に関連するウェブページを含むウェブサイトを通じた自然言語ベースの自動ナビゲーションを容易にするために利用可能であり得る。
【００２７】
様々な実装形態では、ウェブページの識別子はユニフォームリソースロケータ(「URL」)を含んでよい。様々な実装形態では、更新済みのセットの所与の各汎用識別子行列は1つまたは複数のタプルを含んでよく、1つまたは複数のタプルの各々は、更新済みのバージョンのウェブページからのコンテンツの断片、および所与の汎用識別子行列を決定するために使用された、下にある対話型要素に対するコンテンツの断片の幾何学的ロケーションを含んでよい。様々な実装形態では、更新済みのセットの所与の各汎用識別子行列はセルの2次元グリッドを含んでよく、セルの2次元グリッドの中心セルは、所与の汎用識別子行列を決定するために使用された、下にある対話型要素に対応してよく、中心セルを取り囲むセルの2次元グリッドのうちの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つまたは複数の非一時的コンピュータ可読記憶媒体を含む。
【００３１】
本明細書でより詳細に説明する上記の概念および追加の概念のすべての組合せが、本明細書で開示する主題の一部であるものとして企図されることを諒解されたい。たとえば、本開示の末尾に掲載される特許請求される主題のすべての組合せは、本明細書で開示する主題の一部であるものとして企図される。
【図面の簡単な説明】
【００３２】
【図１】本明細書で開示する実装形態が実施され得る例示的な環境のブロック図である。
【図２Ａ】対話型ウェブサイトを形成する対話型ウェブページのシーケンスの一例を示す図である。
【図２Ｂ】対話型ウェブサイトを形成する対話型ウェブページのシーケンスの一例を示す図である。
【図２Ｃ】対話型ウェブサイトを形成する対話型ウェブページのシーケンスの一例を示す図である。
【図２Ｄ】対話型ウェブサイトを形成する対話型ウェブページのシーケンスの一例を示す図である。
【図２Ｅ】対話型ウェブサイトを形成する対話型ウェブページのシーケンスの一例を示す図である。
【図２Ｆ】対話型ウェブサイトを形成する対話型ウェブページのシーケンスの一例を示す図である。
【図２Ｇ】対話型ウェブサイトを形成する対話型ウェブページのシーケンスの一例を示す図である。
【図２Ｈ】対話型ウェブサイトを形成する対話型ウェブページのシーケンスの一例を示す図である。
【図２Ｉ】対話型ウェブサイトを形成する対話型ウェブページのシーケンスの一例を示す図である。
【図３Ａ】開示する技法を使用して図2A〜図2Iの対話型ウェブページのシーケンスが少なくとも自動的にどのようにナビゲートされ得るのかという一例を示す図である。
【図３Ｂ】開示する技法を使用して図2A〜図2Iの対話型ウェブページのシーケンスが少なくとも自動的にどのようにナビゲートされ得るのかという一例を示す図である。
【図３Ｃ】開示する技法を使用して図2A〜図2Iの対話型ウェブページのシーケンスが少なくとも自動的にどのようにナビゲートされ得るのかという一例を示す図である。
【図４Ａ】開示する技法を使用して図2A〜図2Iの対話型ウェブページのシーケンスが少なくとも自動的にどのようにナビゲートされ得るのかという別の例を示す図である。
【図４Ｂ】開示する技法を使用して図2A〜図2Iの対話型ウェブページのシーケンスが少なくとも自動的にどのようにナビゲートされ得るのかという別の例を示す図である。
【図５】様々な実装形態による、本明細書で説明する技法が自然言語を使用して所与の対話型ウェブページと自動的に対話するためにどのように使用され得るのかという一例を概略的に示す図である。
【図６Ａ】本明細書で開示する実装形態による、汎用識別子行列がウェブページの対話型要素からどのように生成され得るのかという例を示す図である。
【図６Ｂ】本明細書で開示する実装形態による、汎用識別子行列がウェブページの対話型要素からどのように生成され得るのかという例を示す図である。
【図７】様々な実装形態による、様々なタイプの汎用識別子行列を実施するための例示的な擬似コードを示す図である。
【図８】様々な実装形態による、様々なタイプの汎用識別子行列を実施するための例示的な擬似コードを示す図である。
【図９】本明細書で開示する実装形態による例示的な方法を示すフローチャートである。
【図１０】本明細書で開示する実装形態による別の例示的な方法を示すフローチャートである。
【図１１】本明細書で開示する実装形態による別の例示的な方法を示すフローチャートである。
【図１２】コンピューティングデバイスの例示的なアーキテクチャを示す図である。
【発明を実施するための形態】
【００３３】
ここで図1を参照すると、本明細書で開示する技法が実施され得る例示的な環境が図示される。例示的な環境は、1つまたは複数のクライアントコンピューティングデバイス106を含む。各クライアントデバイス106は、本明細書で自動アシスタントの「クライアント部分」と呼ばれることもある自動アシスタントクライアント108のそれぞれのインスタンスを実行し得る。本明細書では自動アシスタントの「サーバ部分」と総称されることもある1つまたは複数のクラウドベースの自動アシスタント構成要素119は、114において概略的に示される1つまたは複数のローカルエリアネットワークおよび/またはワイドエリアネットワーク(たとえば、インターネット)を介してクライアントデバイス106に通信可能に結合される、(「クラウド」コンピューティングシステムと総称される)1つまたは複数のコンピューティングシステム上に実装され得る。
【００３４】
様々な実装形態では、自動アシスタントクライアント108のインスタンスは、1つまたは複数のクラウドベースの自動アシスタント構成要素119とのその対話を通じて、ユーザがそれとの人間対コンピュータの対話に関与し得る自動アシスタント120の論理インスタンスであるようにユーザの観点から見えるものを形成し得る。そのような自動アシスタント120の1つのインスタンスが、図1に破線で示される。したがって、クライアントデバイス106上で実行する自動アシスタントクライアント108に関与する各ユーザが、実際には自動アシスタント120のその人自身の論理インスタンスに関与し得ることを理解されたい。簡潔および簡単のために、特定のユーザに「サービスする」ものとして本明細書で使用する「自動アシスタント」という用語は、ユーザによって操作されるクライアントデバイス106上で実行する自動アシスタントクライアント108と、(複数の自動アシスタントクライアント108の間で共有され得る)1つまたは複数のクラウドベースの自動アシスタント構成要素119との、組合せを指す。いくつかの実装形態では、ユーザが実際に自動アシスタント120のその特定のインスタンスによって「サービスされる」かどうかにかかわらず、自動アシスタント120が任意のユーザからの要求に応答し得ることも理解されたい。
【００３５】
1つまたは複数のクライアントデバイス106は、たとえば、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、モバイルフォンコンピューティングデバイス、ユーザの車両のコンピューティングデバイス(たとえば、車載通信システム、車載エンターテインメントシステム、車載ナビゲーションシステム)、(場合によっては視覚センサーを含んでよい)スタンドアロンの対話型スピーカー、スマートテレビ(または自動アシスタント能力を有するネットワーク型ドングルが装備された標準的なテレビ)などのスマートアプライアンス、および/またはコンピューティングデバイスを含む、ユーザのウェアラブル装置(たとえば、コンピューティングデバイスを有する、ユーザの時計、コンピューティングデバイスを有する、ユーザのメガネ、仮想現実または拡張現実コンピューティングデバイス)のうちの1つまたは複数を含んでよい。追加および/または代替のクライアントコンピューティングデバイスが提供されてよい。スタンドアロンの対話型スピーカー(すなわち「スマートスピーカー」)などのいくつかのクライアントデバイス106は、主にユーザと自動アシスタント120との間の対話を容易にするように設計されるアシスタントデバイスの形態を取り得る。いくつかのそのようなアシスタントデバイスは、タッチスクリーンディスプレイであってもなくてもよい付属のディスプレイを有する、スタンドアロンの対話型スピーカーの形態を取り得る。
【００３６】
いくつかの実装形態では、クライアントデバイス106は、1つまたは複数の視野を有する1つまたは複数の視覚センサー107が装備されてよいが、このことは必須ではない。視覚センサー107は、デジタルカメラ、受動赤外線(「PIR:passive infrared」)センサー、立体視カメラ、RGBdカメラなどの、様々な形態を取り得る。1つまたは複数の視覚センサー107は、クライアントデバイス106がその中に展開される環境の画像フレーム(静止画像またはビデオ)をキャプチャするために使用され得る。これらの画像フレームは、次いで、画像フレームの中に含まれるユーザ提供のビジュアルキューを検出するために、たとえば、ビジュアルキューモジュール1121によって、分析され得る。これらのビジュアルキューは、限定はしないが、ハンドジェスチャー、特定の基準点に向かう注視、顔の表情、ユーザによる既定の動きなどを含んでよい。これらの検出されたビジュアルキューは、自動アシスタント120を呼び出すこと、および/または自動アシスタント120に様々なアクションを実行させることなどの、様々な目的のために使用され得る。
【００３７】
本明細書でより詳細に説明するように、自動アシスタント120は、1つまたは複数のクライアントデバイス106のユーザインターフェース入力および出力デバイスを介して、1人または複数のユーザとの人間対コンピュータの対話セッションに関与する。いくつかの実装形態では、自動アシスタント120は、クライアントデバイス106のうちの1つの、1つまたは複数のユーザインターフェース入力デバイスを介して、ユーザによって提供されるユーザインターフェース入力に応答して、ユーザとの人間対コンピュータの対話セッションに関与し得る。それらの実装形態のうちのいくつかにおいて、ユーザインターフェース入力は明示的に自動アシスタント120に向けられる。たとえば、ユーザは、「OK、アシスタント」または「やあ、アシスタント」などの所定の呼出しフレーズを、口頭で提供してよい(たとえば、タイプしてよく、話してよい)。発話されると、この口頭入力は、マイクロフォン109によってキャプチャされてよく、自動アシスタント120に、タイプされたテキストをアクティブに聞くことまたは監視することを始めさせてよい。追加または代替として、いくつかの実装形態では、自動アシスタント120は、1つまたは複数の検出されたビジュアルキューに基づいて、単独で、または口述の呼出しフレーズと組み合わせて、呼び出されてよい。
【００３８】
いくつかの実装形態では、自動アシスタント120は、そのユーザインターフェース入力が明示的には自動アシスタント120に向けられないときでも、ユーザインターフェース入力に応答して人間対コンピュータの対話セッションに関与し得る。たとえば、自動アシスタント120は、ユーザインターフェース入力の内容を検査してよく、ユーザインターフェース入力の中でのいくつかの用語の存在に応答して、かつ/または他のキューに基づいて、対話セッションに関与し得る。多くの実装形態では、自動アシスタント120は、ユーザからの発話をテキストに変換するために音声認識を利用してよく、たとえば、検索結果、一般的な情報を提供すること、および/または1つもしくは複数の応答性アクション(たとえば、メディアを再生すること、ゲームを起動すること、食品を注文することなど)を取ることによって、それに応じてテキストに応答し得る。いくつかの実装形態では、自動アシスタント120は、追加または代替として、発話をテキストに変換することなく発話に応答することができる。たとえば、自動アシスタント120は、音声入力を埋込みに、(音声入力の中に存在する1つまたは複数のエンティティを示す)エンティティ表現、および/または他の「非テキスト」表現に変換することができ、そのような非テキスト表現に対して動作することができる。したがって、音声入力から変換されたテキストに基づいて動作するような、本明細書で説明する実装形態は、追加および/または代替として、音声入力に対して直接、かつ/または音声入力の他の非テキスト表現に対して動作し得る。
【００３９】
クライアントコンピューティングデバイス106、およびクラウドベースの自動アシスタント構成要素119を動作させるコンピューティングデバイスの各々は、データおよびソフトウェアアプリケーションの記憶用の1つまたは複数のメモリ、データにアクセスするとともにアプリケーションを実行するための1つまたは複数のプロセッサ、ならびにネットワークを介した通信を容易にする他の構成要素を含んでよい。クライアントコンピューティングデバイス106および/または自動アシスタント120によって実行される動作は、複数のコンピュータシステムにわたって分散されてよい。自動アシスタント120は、たとえば、ネットワークを通じて互いに結合される、1つまたは複数のロケーションの中の1つまたは複数のコンピュータ上で動作するコンピュータプログラムとして実装され得る。
【００４０】
上述のように、様々な実装形態では、クライアントコンピューティングデバイス106は、自動アシスタントクライアント108、すなわち自動アシスタント120の「クライアント部分」を動作させてよい。様々な実装形態では、自動アシスタントクライアント108は、音声キャプチャモジュール110および/またはビジュアルキューモジュール1121を含んでよい。他の実装形態では、音声キャプチャモジュール110および/またはビジュアルキューモジュール112の1つまたは複数の態様は、たとえば、1つまたは複数のクラウドベースの自動アシスタント構成要素119によって、自動アシスタントクライアント108とは別個に実装されてよい。たとえば、図1の中に、画像データの中のビジュアルキューを検出し得るクラウドベースのビジュアルキューモジュール1122もある。
【００４１】
様々な実装形態では、ハードウェアとソフトウェアとの任意の組合せを使用して実装され得る音声キャプチャモジュール110は、ユーザの発話のオーディオ記録をキャプチャするために、マイクロフォン109または他の圧力センサーなどのハードウェアとインターフェースし得る。様々なタイプの処理が、様々な目的のためにこのオーディオ記録に対して実行され得る。
【００４２】
様々な実装形態では、ビジュアルキューモジュール1121(および/またはクラウドベースのビジュアルキューモジュール1122)は、ハードウェアまたはソフトウェアの任意の組合せを使用して実装されてよく、視覚センサー107によって提供される1つまたは複数の画像フレームを分析して、1つもしくは複数の画像フレームの中で、かつ/または1つもしくは複数の画像フレームにわたってキャプチャされた、1つまたは複数のビジュアルキューを検出するように構成されてよい。ビジュアルキューモジュール1121は、ビジュアルキューを検出するために様々な技法を採用し得る。たとえば、ビジュアルキューモジュール1121(または1122)は、画像フレームの中の検出されたユーザ提供のビジュアルキューを示す出力を生成するようにトレーニングされる、1つまたは複数の人工知能(または機械学習)モデルを使用し得る。
【００４３】
クライアントデバイス106は、ウェブブラウザ111および/またはメッセージ交換クライアント113などの他のアプリケーションもインストールされてよい。メッセージ交換クライアント113は様々な形態になり得る。いくつかの実装形態では、メッセージ交換クライアント113は、ショートメッセージングサービス(「SMS」)および/またはマルチメディアメッセージングサービス(「MMS」)クライアント、オンラインチャットクライアント(たとえば、インスタントメッセンジャ、インターネット中継チャットすなわち「IRC:Internet relay chat」など)、ソーシャルネットワークに関連するメッセージングアプリケーションなどの形態になり得る。いくつかの実装形態では、メッセージ交換クライアント113は、ウェブブラウザ111によってレンダリングされるウェブページ内に実装され得る。様々な実装形態では、メッセージ交換クライアント113は、1対1の対話のように、または自動アシスタント120が「参加」し得る多参加者対話のように、自動アシスタント120とのタイプされるかまたは発話された人間対コンピュータの対話にユーザが関与するためのインターフェースを提供し得る。いくつかの実装形態では、ウェブブラウザ111は、たとえば、マイクロフォンボタン、または自動アシスタント120を呼び出すように動作可能な他のユーザインターフェース要素を用いて、特に設計されてよく、その結果、ユーザはウェブブラウザ111の動作を支援するための音声コマンドを発行することができる。
【００４４】
音声キャプチャモジュール110は、前述のように、たとえば、マイクロフォン109を介して、ユーザの音声をキャプチャするように構成され得る。追加または代替として、いくつかの実装形態では、音声キャプチャモジュール110は、たとえば、音声テキスト(「STT:speech-to-text」)処理技法を使用して、キャプチャされたそのオーディオをテキストおよび/または他の表現もしくは埋込みに変換するようにさらに構成され得る。追加または代替として、いくつかの実装形態では、音声キャプチャモジュール110は、たとえば、1つまたは複数の音声合成器を使用して、コンピュータ合成された音声にテキストを変換するように構成され得る。しかしながら、場合によっては、クライアントデバイス106が計算リソース(たとえば、プロセッササイクル、メモリ、バッテリーなど)に関して比較的制約されることがあるので、クライアントデバイス106に局所的な、音声キャプチャモジュール110は、有限数の異なる発話されたフレーズ  -  特に自動アシスタント120を呼び出すフレーズ  -  をテキストに(またはもっと次元数が低い埋込みなどの他の形式に)変換するように構成され得る。クラウドベースのテキスト音声(「TTS:text-to-speech」)モジュール116および/またはクラウドベースのSTTモジュール117を含んでよいクラウドベースの自動アシスタント構成要素119へ、他の音声入力が送られてよい。
【００４５】
クラウドベースのTTSモジュール116は、テキストデータ(たとえば、自動アシスタント120によって編成された自然言語応答)を、コンピュータ生成された音声出力に変換するために、クラウドの仮想的に無限のリソースを活用するように構成され得る。いくつかの実装形態では、TTSモジュール116は、たとえば、1つまたは複数のスピーカーを使用して、直接出力されるべきコンピュータ生成された音声出力を、クライアントデバイス106に提供し得る。他の実装形態では、自動アシスタント120によって生成されたテキストデータ(たとえば、自然言語応答)が音声キャプチャモジュール110に提供されてよく、音声キャプチャモジュール110は、次いで、局所的に出力されるコンピュータ生成された音声にテキストデータを変換し得る。
【００４６】
クラウドベースのSTTモジュール117は、音声キャプチャモジュール110によってキャプチャされたオーディオデータをテキストに変換するために、クラウドの仮想的に無限のリソースを活用するように構成されてよく、そうしたテキストは、次いで、意図マッチャ135に提供され得る。いくつかの実装形態では、クラウドベースのSTTモジュール117は、音声のオーディオ記録を1つまたは複数の音素に変換してよく、次いで、1つまたは複数の音素をテキストに変換してよい。追加または代替として、いくつかの実装形態では、STTモジュール117は状態復号グラフを採用し得る。いくつかの実装形態では、STTモジュール117は、ユーザの発話の複数の候補テキスト解釈を生成し得る。いくつかの実装形態では、STTモジュール117は、同時に検出されたビジュアルキューがあるかどうかに応じて、特定の候補テキスト解釈に他よりも大きく重み付けするかまたはバイアスをかけてよい。
【００４７】
自動アシスタント120(および詳細にはクラウドベースの自動アシスタント構成要素119)は、意図マッチャ135、上述のTTSモジュール116、上述のSTTモジュール117、および以下でより詳細に説明される他の構成要素を含んでよい。いくつかの実装形態では、自動アシスタント120のモジュールのうちの1つまたは複数は、省略されてよく、組み合わせられてよく、かつ/または自動アシスタント120とは別個の構成要素の中に実装されてよい。いくつかの実装形態では、プライバシーを保護するために、自然言語プロセッサ122、TTSモジュール116、STTモジュール117などの、自動アシスタント120の構成要素のうちの1つまたは複数は、少なくとも(たとえば、クラウドを除外して)クライアントデバイス106の部分に実装されてよい。
【００４８】
いくつかの実装形態では、自動アシスタント120は、自動アシスタント120との人間対コンピュータの対話セッションの間にクライアントデバイス106のうちの1つのユーザによって生成される様々な入力に応答して、応答性コンテンツを生成する。自動アシスタント120は、対話セッションの一部としてユーザに提示するために、(たとえば、ユーザのクライアントデバイスとは別個のとき、1つまたは複数のネットワークを介して)応答性コンテンツを提供し得る。たとえば、自動アシスタント120は、クライアントデバイス106を介して提供される自由形式自然言語入力に応答して応答性コンテンツを生成し得る。本明細書で使用するとき、自由形式入力とは、ユーザによって編成され、かつユーザによる選択のために提示されるオプションのグループに制約されない、入力である。自由形式自然言語入力は、発話されてよく(かつマイクロフォン109によってキャプチャされてよく)、かつ/または(たとえば、メッセージ交換クライアント113などの1つまたは複数のアプリケーションによって提供される1つまたは複数のインターフェースに)タイプされてよい。
【００４９】
本明細書で使用するとき、「対話セッション」は、ユーザと自動アシスタント120(また場合によっては、他の人間の参加者)との間での1つまたは複数のメッセージの、論理的に自蔵式の交換を含んでよい。自動アシスタント120は、セッション間での時間の経過、セッション間でのユーザコンテキスト(たとえば、ロケーション、スケジュールされた会議の前/間/後など)の変化、ユーザと自動アシスタントとの間の対話以外の、ユーザとクライアントデバイスとの間での介在する1つまたは複数の対話の検出(たとえば、しばらくの間、ユーザがアプリケーションを切り替え、ユーザがスタンドアロンの音声アクティブ化製品から離れて歩き、次いで、後でそこに戻る)、セッション間でのクライアントデバイスのロッキング(locking)/スリーピング(sleeping)、自動アシスタント120の1つまたは複数のインスタンスとインターフェースするために使用されるクライアントデバイスの変更などの、様々な信号に基づいて、ユーザとの複数の対話セッションの間を区別し得る。
【００５０】
意図マッチャ135は、ユーザによって提供される入力(たとえば、音声発話、ビジュアルキューなど)に基づいて、かつ/またはセンサー信号、オンライン信号(たとえば、ウェブサービスから取得されるデータ)などの、他の信号に基づくなどして、ユーザの意図を決定するように構成され得る。いくつかの実装形態では、意図マッチャ135は、自然言語プロセッサ122および上述のクラウドベースのビジュアルキューモジュール1122を含んでよい。様々な実装形態では、クラウドベースのビジュアルキューモジュール1122は、クラウドベースのビジュアルキューモジュール1122がその使途においてより多くのリソースを有し得ることを除いて、ビジュアルキューモジュール1121と同様に動作し得る。詳細には、クラウドベースのビジュアルキューモジュール1122は、ユーザの意図を決定するために、単独で、または他の信号と組み合わせて、意図マッチャ135によって使用され得るビジュアルキューを検出し得る。
【００５１】
自然言語プロセッサ122は、クライアントデバイス106を介してユーザによって生成された自然言語入力を処理するように構成されてよく、自動アシスタント120の1つまたは複数の他の構成要素による使用のために、注釈付きの出力を(たとえば、テキスト形式で)生成し得る。たとえば、自然言語プロセッサ122は、クライアントデバイス106の1つまたは複数のユーザインターフェース入力デバイスを介してユーザによって生成される自然言語自由形式入力を処理し得る。生成された注釈付きの出力は、自然言語入力の1つまたは複数の注釈、および自然言語入力の用語のうちの1つまたは複数(たとえば、すべて)を含む。
【００５２】
いくつかの実装形態では、自然言語プロセッサ122は、自然言語入力の中の様々なタイプの文法的な情報を識別しそれに注釈を付けるように構成される。たとえば、自然言語プロセッサ122は、たとえば、個々の単語のクラスを用いて、個々の単語を形態素に分離してよく、かつ/または形態素に注釈を付けてよい、形態素モジュールを含んでよい。自然言語プロセッサ122はまた、用語の文法的な役割を用いて用語に注釈を付けるように構成された音声タガーの部分を含んでよい。たとえば、音声タガーの部分は、「名詞」、「動詞」、「形容詞」、「代名詞」などの、音声のその部分を用いて各用語にタグ付けしてよい。また、たとえば、いくつかの実装形態では、自然言語プロセッサ122は、追加および/または代替として、自然言語入力の中の用語の間のシンタクティック関係を決定するように構成された依存関係パーサ(図示せず)を含んでよい。たとえば、依存関係パーサは、どの用語が他の用語を修飾するのか、文の主語および動詞など(たとえば、構文解析ツリー)を決定してよく、そのような依存関係の注釈を作成してよい。
【００５３】
いくつかの実装形態では、自然言語プロセッサ122は、追加および/または代替として、(たとえば、文芸の登場人物、著名人、公人などを含む)人間、組織、(現実および想像上の)ロケーションなどへの参照などの、1つまたは複数の分節の中のエンティティ参照に、注釈を付けるように構成されたエンティティタガー(図示せず)を含んでよい。いくつかの実装形態では、エンティティについてのデータが、知識グラフ(図示せず)の中などの1つまたは複数のデータベースの中に記憶されてよい。いくつかの実装形態では、知識グラフは、既知のエンティティ(また場合によっては、エンティティ属性)を表すノード、ならびにノードを接続しエンティティ間の関係を表すエッジを含んでよい。たとえば、「バナナ」ノードが「果物」ノードに(たとえば、子として)接続されてよく、「果物」ノードは「青果物」および/または「食品」ノードに(たとえば、子として)接続されてよい。別の例として、「Hypothetical Cafe」と呼ばれるレストランが、その住所、供される料理のタイプ、営業時間、連絡先情報などの属性も含むノードによって表されてよい。「Hypothetical Cafe」ノードは、いくつかの実装形態では、「レストラン」ノード、「ビジネス」ノード、レストランが位置する都市および/または州を表すノードなどの、1つまたは複数の他のノードに、(たとえば、子から親への関係を表す)エッジによって接続されてよい。
【００５４】
自然言語プロセッサ122のエンティティタガーは、(たとえば、人間などのエンティティクラスへのすべての参照の識別を可能にするために)高いレベルの粒度で、かつ/または(たとえば、特定の人物などの特定のエンティティへのすべての参照の識別を可能にするために)もっと低いレベルの粒度で、エンティティへの参照に注釈を付けてよい。エンティティタガーは、特定のエンティティを解決するために自然言語入力の内容に依拠してよく、かつ/または特定のエンティティを解決するために知識グラフもしくは他のエンティティデータベースと随意に通信してよい。
【００５５】
いくつかの実装形態では、自然言語プロセッサ122は、追加および/または代替として、1つまたは複数のコンテキスト上の手がかりに基づいて同じエンティティへの参照をグルーピングまたは「クラスタリング」するように構成された同一指示リゾルバ(図示せず)を含んでよい。たとえば、同一指示リゾルバは、自然言語入力「私たちが前回そこで食事をしたHypothetical Cafeを私は気に入りました」の中で用語「そこで」を「Hypothetical Cafe」に解決するために利用され得る。
【００５６】
いくつかの実装形態では、自然言語プロセッサ122の1つまたは複数の構成要素は、自然言語プロセッサ122の1つまたは複数の他の構成要素からの注釈に依拠してよい。たとえば、いくつかの実装形態では、指名されたエンティティタガーは、特定のエンティティへのすべての言及に注釈を付ける際に、同一指示リゾルバおよび/または依存関係パーサからの注釈に依拠してよい。また、たとえば、いくつかの実装形態では、同一指示リゾルバは、同じエンティティへの参照をクラスタリングする際に、依存関係パーサからの注釈に依拠してよい。いくつかの実装形態では、特定の自然言語入力を処理する際に、自然言語プロセッサ122の1つまたは複数の構成要素は、1つまたは複数の注釈を決定するために、特定の自然言語入力の外側の、関連する事前入力および/または他の関連するデータを使用してよい。
【００５７】
意図マッチャ135は、たとえば、自然言語プロセッサ122からの(自然言語入力の注釈および用語を含んでよい)出力に基づいて、かつ/またはビジュアルキューモジュール(たとえば、1121および/または1122)からの出力に基づいて、ユーザの意図を決定するために、様々な技法を使用し得る。いくつかの実装形態では、意図マッチャ135は、たとえば、文法、ビジュアルキュー、および応答性アクション(または、より一般的に意図)の間の複数のマッピングを含む、1つまたは複数のデータベース(図示せず)へのアクセスを有してよい。多くの場合、これらの文法は、経時的に選択および/または学習されてよく、ユーザの最も一般的な意図を表し得る。たとえば、1つの文法「再生する<アーチスト>」は、ユーザによって操作されるクライアントデバイス106上で<アーチスト>による音楽を再生させる応答性アクションを呼び出す意図にマッピングされてよい。別の文法「[天気|予報]今日」は、「今日の天気はどうですか」や「今日の予報はどうですか」などのユーザ問合せに整合可能であり得る。
【００５８】
文法に加えて、または文法の代わりに、いくつかの実装形態では、意図マッチャ135は、単独で、または1つもしくは複数の文法および/もしくはビジュアルキューと組み合わせて、トレーニングされた1つまたは複数の機械学習モデルを採用してよい。トレーニングされたこれらの機械学習モデルはまた、1つまたは複数のデータベースの中に記憶されてよく、たとえば、ユーザの発話および/または検出された任意のユーザ提供のビジュアルキューを示すデータを潜在空間の中に埋め込み、次いで、たとえば、ユークリッド距離、余弦類似性などの技法を使用して、他のどの埋込み(したがって、意図)が最も近似するのかを決定することによって、意図を識別するようにトレーニングされてよい。
【００５９】
「再生する<アーチスト>」という例示的な文法の中に見られるように、いくつかの文法は、スロット値(または「パラメータ」)で埋められ得るスロット(たとえば、<アーチスト>)を有する。スロット値は様々な方法で決定され得る。しばしば、ユーザは事前にスロット値を提供する。たとえば、文法「私のために<トッピング>ピザを注文してください」に対して、ユーザがフレーズ「私のためにソーセージピザを注文してください」を話す可能性があり得、その場合、スロット<トッピング>が自動的に埋められる。追加または代替として、ユーザが事前にスロット値を提供することなく、スロット値で埋められるべきスロットを含む文法をユーザが呼び出す場合、自動アシスタント120は、それらのスロット値をユーザに要請してよい(たとえば、「あなたのピザにはどんなタイプのクラストをお望みですか」)。いくつかの実装形態では、スロットは、ビジュアルキューモジュール1121〜2によって検出されたビジュアルキューに基づくスロット値で埋められてよい。たとえば、ユーザはクライアントデバイス106の視覚センサー107に3本の指を見せながら、「私のためにこれだけのキャットボールを注文してください」のような何かを発することができる。あるいは、ユーザは特定の映画用のDVDケースを見せながら、「私のためにもっと多くのこのような映画を見つけてください」のような何かを発することができる。
【００６０】
遂行モジュール124は、意図マッチャ135によって出力される予測/推定される意図、ならびに(ユーザによって事前に提供されたのか、それともユーザから要請されたのかにかかわらず)関連するスロット値を受信し、意図を実行する(または「解決」もしくは「遂行」する)ように構成され得る。様々な実装形態では、ユーザの意図の遂行(または「解決」もしくは「実行」)は、たとえば、遂行モジュール124によって、様々な遂行情報(「応答性」情報または「解決情報」とも呼ばれる)を生成/取得させてよい。以下で説明するように、遂行情報は、いくつかの実装形態では、自然言語生成器(いくつかの図では「NLG」)126に提供されてよく、自然言語生成器126は、遂行情報に基づいて自然言語出力を生成し得る。
【００６１】
様々な方法で意図が遂行(または「解決」)され得るので、遂行(または「解決」)情報は様々な形態を取り得る。ユーザが「映画化された'The Shining'の野外撮影はどこでしたか」などの素朴な情報を要求することを考える。ユーザの意図は、たとえば、意図マッチャ135によって、検索クエリであるものとして決定され得る。その意図、および検索クエリの内容が、遂行モジュール124に提供されてよく、遂行モジュール124は、図1に示すように、応答性情報を求めて文書のコーパスおよび/または他のデータソース(たとえば、知識グラフなど)を検索するように構成された1つまたは複数の検索モジュール150と通信していてよい。遂行モジュール124は、検索クエリ(たとえば、問合せのテキスト、次元数が低減された埋込みなど)を示すデータを検索モジュール150に提供し得る。検索モジュール150は、GPS座標などの応答性情報、または「Timberline Lodge、Mt.Hood、Oregon」などの、もっと明示的な他の情報を提供し得る。この応答性情報は、遂行モジュール124によって生成される遂行情報の一部を形成し得る。
【００６２】
追加または代替として、遂行モジュール124は、ユーザによって提供されるかまたは他の手段を使用して決定されるユーザの意図および任意のスロット値(たとえば、ユーザのGPS座標、ユーザ選好など)を、たとえば、意図マッチャ135から受信し、応答性アクションをトリガするように構成され得る。応答性アクションは、たとえば、商品/サービスを注文すること、タイマーを開始すること、リマインダを設定すること、通話を起動すること、メディアを再生すること、メッセージを送ることなどを含んでよい。いくつかのそのような実装形態では、遂行情報は、遂行に関連するスロット値、(場合によっては所定の応答から選択され得る)確認応答などを含んでよい。
【００６３】
自然言語生成器126は、様々なソースから取得されるデータに基づいて自然言語出力(たとえば、人間の音声を模倣するように設計されるワード/フレーズ)を生成および/または選択するように構成され得る。いくつかの実装形態では、自然言語生成器126は、意図の遂行に関連する遂行情報を入力として受信し、遂行情報に基づいて自然言語出力を生成するように構成され得る。追加または代替として、自然言語生成器126は、ユーザのための自然言語出力を合成するために使用し得るサードパーティアプリケーション(たとえば、必要とされるスロット)などの他のソースから情報を受信し得る。
【００６４】
本開示の様々な態様は、ウェブサイトナビゲーションエンジン128によって全体的にまたは部分的に実施され得る。概して、ウェブサイトナビゲーションエンジン128は、これらのウェブサイトの全部または部分を通じた自動ナビゲーションを容易にするために、ウェブサイト、詳細にはウェブサイトの構成要素であるウェブページを分析するように構成され得る。より詳細には、ウェブサイトナビゲーションエンジン128は、ユーザ状態の生成用のこれらのウェブページの抽象概念を生成するために、ウェブページおよびそれらの構成要素である対話型要素を分析し得る。これらのウェブページが変更される場合にそれらを自動的にナビゲートすることが依然として可能であるように、これらのユーザ状態はウェブページの下にある機能性をキャプチャし得る。ユーザ状態はまた、これまで知られていないウェブサイトの下にある機能性が、以前に検証された/知られていたウェブサイトと類似であることに基づいて、これまで知られていないウェブサイトを通じた自動ナビゲーションを有効にする。
【００６５】
ウェブサイトナビゲーションエンジン128は、ウェブページデータベース127などの複数のデータベースおよび/またはインデックスへのアクセスを有してよい。ウェブページデータベース127は、ウェブブラウザ111または他のアプリケーションを使用してインターネット上で一般に利用可能であり、かつ様々な検索エンジン(図示せず)を使用して検索可能である、HTML、XML、PDF、または他の文書の1つまたは複数のデータベースを含んでよい。
【００６６】
ウェブサイトナビゲーションエンジン128はまた、過去ユーザ状態のデータベース129へのアクセスを有してよい。過去ユーザ状態のデータベース129は、過去ユーザ状態、およびそれらの過去ユーザ状態がアクティブであった間に実行されていることがある(または潜在的に実行可能であり得る)対応するアクションを、記憶してよい。対話型ウェブサイトを形成する対話型ウェブページのシーケンスが、過去ユーザ状態および対応するアクションの「スクリプト」として過去ユーザ状態のデータベース129の中で表されてよい。対応するアクションとは、ウェブページの対話型要素と対話するために実行可能なアクションであってよい。対話型要素は、限定はしないが、ラジオボタン、トグルスイッチ、チェックボックス、テキスト入力フィールド、ドロップダウンメニュー、スライダー、およびHTML、XML、CSS、JavaScriptなどの技術を使用して利用可能な任意の他のユーザインターフェース要素を含んでよい。
【００６７】
いくつかの実装形態では、過去ユーザ状態/対応するアクションの各スクリプトは、特定のウェブサイトまたはウェブページ識別子(たとえば、ユニフォームリソースロケータすなわち「URL」、ドメイン名、IPアドレスなど)に対応し得る。たとえば、あるスクリプトがピザ注文ウェブサイトに関連してよく、別のスクリプトが、様々なサービス(たとえば、ライドシェア、芝生サービス、家事サービス、理髪サービス、予約、他のタイプのアポイントメントなど)を注文するためにユーザによって操作可能なウェブサイトに関連してよく、以下同様である。
【００６８】
より詳細に手短に説明するように、いくつかの実装形態では、過去ユーザ状態/対応するアクションのスクリプトは、たとえば、人間によって、または本明細書で説明する技法を使用してウェブサイトナビゲーションエンジン128によって自動的に、「検証」されてよい。スクリプトを「検証する」こととは、スクリプトに対応する対話型ウェブサイトの特定の意図または目的をスクリプトが実行できることを決定することを意味する。スクリプトを検証するプロセスは、定期的に(たとえば、N秒、N分、N時間、N日、N週ごとなど、Nは正の整数である)、オンデマンドなどで行われてよい。
【００６９】
ユーザ状態は、様々な情報から生成されてよく、様々な形式を取り得る。非限定的な例として、過去ユーザ状態(および、より一般的に「ユーザ状態」)は、特定のウェブページのコンテンツに少なくとも部分的に基づいて生成される、意味論的に豊富な特徴ベクトル、埋込みなどの、データ構造であってよい。言い換えれば、過去ユーザ状態は、少なくとも部分的にウェブページの抽象概念を表してよい。いくつかの実装形態では、このウェブページ抽象概念は、ウェブページから抽出されたセマンティックおよび/もしくはシンタクティック情報、ならびに/またはウェブページ上で見つかる対話型要素を表すデータ抽象概念を含んでよく、いくつかの実装形態では、本明細書で説明する「汎用識別子行列」の形態を取る。様々な実装形態では、ウェブページの対話型要素から生成される汎用識別子行列は、ウェブページから生成される過去ユーザ状態の中にベークされてよく、かつ/または過去ユーザ状態に関連する候補アクションとして表されてよい。
【００７０】
アクションのシーケンスもしくは「トレース」の間に以前に実行されたアクション、および/またはそれらのアクションの実行において利用されたパラメータを含む、様々な他のデータもユーザ状態の中にベークされてよい。一例として、対話型ウェブサイトを形成するウェブページのシーケンスの第2の(または第3の、もしくはそれを越える)連続するウェブページから生成されたユーザ状態を取る。この連続するユーザ状態(「連続する」とは、それが対話型ウェブサイトに関連するオープニングユーザ状態でないことを意味する)は、シーケンスの第2の連続する(すなわち現在の)ウェブページから抽出された情報、ならびに(たとえば、対話型ウェブサイトの以前のウェブページを示す)以前の過去ユーザ状態およびそれらの以前の過去ユーザ状態に関連して取られた以前のアクションについての情報を含んでよい。たとえば、以前のウェブページの対話型要素に「ペパローニ」などのパラメータの値を代入するために以前の過去ユーザ状態の中でアクションが実行された場合、以前に提供されたそのパラメータが、連続するユーザ状態の中にベークされてよい。
【００７１】
追加として、いくつかの実装形態では、たとえば、ユーザのプロファイルから取得された、ユーザについての様々な情報が、ユーザ状態の中に含められてよい。たとえば、好ましい支払い方法、ユーザが各トランザクションにおいて支払い情報を要請されるべきかどうか、ユーザの好ましい座席指定位置(たとえば、より詳細に手短に説明する、飛行機における廊下側/窓側、映画館またはスポーツイベントの区画など)、好ましい価格範囲、または様々な他の製品もしくはサービス固有のパラメータ(たとえば、ベジタリアンまたはビーガン、喫煙または禁煙など)などの、様々なユーザ選好がユーザ状態の中にベークされてよい。ユーザ状態の中に含められてよい他のユーザプロファイル情報は、限定はしないが、(たとえば、ユーザが競合を有する場合に映画開始時間を自動的に消去するために使用され得る)ユーザの電子カレンダー上のアポイントメント、電子メールなどの電子通信の内容、(それらに関連するメタデータを含む)テキストメッセージなど、ソーシャルメディア投稿(たとえば、ステータス更新、アップロードされるピクチャなど)などを含む。
【００７２】
ユーザ選好は様々な方法で決定されてよい。いくつかの実装形態では、たとえば、グラフィカルユーザインターフェースを使用して、またはユーザがその人の選好を自動アシスタント120に話すことによって、ユーザ選好が手作業で設定されてよい。追加または代替として、いくつかの実装形態では、いくつかのユーザ選好が、たとえば、対話型ウェブサイトとのユーザ対話、自動アシスタント120とのユーザ対話などに基づいて、経時的に学習されてよい。たとえば、ウェブブラウザ111を使用して商品またはサービスを購入するとき、ユーザが常に確認スクリーンを通じて比較的迅速に(たとえば、どんな免責条項または他の言語が提示されても、完全に消費するために通常は必要とされることになるよりも迅速に)クリックすることを考える。そのことは、ユーザからの明示的な入力を必要とすることなく、たとえば、ウェブサイトナビゲーションエンジン128および/または自動アシスタントによってそれらのスクリーンが自動的にナビゲートされることに、ユーザが満足する可能性があると決定する際に、考慮に入れられてよい。
【００７３】
本明細書で説明する技法は、確認ページを自動的にナビゲートすべきかどうかを決定するとき、他の信号さえ考慮に入れてよい。たとえば、ウェブブラウザ111を動作させると、ユーザが費やす金額がしきい値を下回るときにユーザがこれらのページを通じてより迅速にクリックする傾向があるが、費やされるべき金額がしきい値を上回るときにユーザがこれらの確認ページ上にとどまる傾向があることを考える。このしきい値は、明示的なユーザ入力を得ようとすることなく特定の確認ウェブページを自動的にナビゲートすべきかどうかを決定するとき、たとえば、ウェブサイトナビゲーションエンジン128によって、考慮に入れられてよい。
【００７４】
図2A〜図2Iは、商品を、この場合には2枚の映画チケットを仮想的なチケット購入ウェブサイトfakebooking.comから調達するために、クライアントデバイス206上でユーザ(図示せず)と対話され得るウェブページのシーケンスまたは「トレース」の一例を示す。この例におけるクライアントデバイス206は、タッチスクリーンを有するスマートフォンまたはタブレットの形態を取るが、このことは限定的であることを意図しない。これらの例では、ユーザは、対話型ウェブサイトと対話するためにクライアントデバイス206のウェブブラウザ111を操作するが、代わりに他のアプリケーションが使用され得る。たとえば、メッセージ交換クライアント113などの別のアプリケーションが、ユーザがウェブページと対話することを可能にする「ウェブビュー」機能を提供してよく、ウェブページは、アプリケーションのウェブビューの中にロードされる。図2A〜図2Iにおいて、ユーザが口述のコマンドを与えることができるように、マイクロフォンアイコンは自動アシスタント120(または少なくとも音声認識)を呼び出すためにユーザによって操作可能であり得る。
【００７５】
ユーザが自然言語入力「金曜日の'Hypothetical'のチケット」を提供することによって開始することを考える。この要求に応答して、図2Aにおいて、クライアントデバイス206は、要求された日付における要求された映画に対する開始時間を提供する第1のウェブページを受信およびロードする。この例では、要求された映画は、各劇場における開始時間が3回であって2つの劇場において上演中である。
【００７６】
ユーザが、たとえば、(選択可能なリンクであってよい)時間上でクリックすることによって、「第1の劇場」における「20:45」の上映を選択することを考える。ロードされる次のウェブページが図2Bに示される。図2Bにおいて、その人が第1の劇場における9/21の8:45(20:45と同じ)の「Hypothetical」を選択していること、およびその映画が124分間継続することが、ユーザに告げられる。ここで、ユーザは、2つのオプション、すなわち、たとえば、fakebooking.comとの、既存のアカウントへのログイン、またはゲストとしての予約に、直面している。ユーザがゲストとしてログインすることを想定すると、次に図2Cのウェブページがユーザに提示される。
【００７７】
図2Cにおいて、提供されるウェブページは、本明細書で「確認」ウェブページと呼ばれるタイプのウェブページである。確認ウェブページにおいて、どんな免責条項または情報が確認ページ上に提示されても、ユーザが消費すべき時間を有していたとき、いくつかの対話型要素(図2Cの中の「次に進む」ボタン)を選択することが、ユーザに求められる。図2Cにおいて、たとえば、購入されるチケットごとに$0.76の料金が課金されることが、ユーザに告げられる。ユーザが「次に進む」ボタンを選択する場合、図2Dに示すウェブページがユーザに提示され得る。
【００７８】
図2Dにおいて、その人が何枚のチケットを購入したいのか、ならびにチケットのタイプ(たとえば、大人、小人、ティーン、シニアなど)を、ユーザが選択することを可能にするプルダウンメニューを含む、新たな対話型ウェブページがユーザに提供される。各タイプのチケットは価格が異なる。図2Dにおいて、ユーザは、まだプルダウンメニューと対話していない。したがって、「次へ」ボタンは、網掛けによって示されるように非アクティブである。ユーザが少なくとも1枚のチケットを選択すると、このボタンがアクティブ化されるようになり得る。たとえば、図2Eにおいて、ユーザは大人のチケットを2枚選択している。したがって、「次へ」ボタンが今やアクティブ化され、合計注文価格も示される。ユーザがその人の所望のチケットを選択し「次へ」ボタンを操作すると、その人は図2Fに示すウェブページに案内され得る。
【００７９】
図2Fは別の確認ウェブページを示す。このとき、チケットが払い戻しできず交換不可能であることがユーザに告げられる。劇場への小人の入場許可などについての他の一般的な情報も、ユーザに提供される。ユーザが「確認する」ボタン上でクリックすると、図2Gのウェブページがその人に提示され得る。
【００８０】
図2Gにおいて、1つまたは複数の対話型要素として、座席を選択するためにユーザがそれと対話できる座席指定表を含む、ウェブページがユーザに提示される。図2Gにおいて、黒いボックスによって示されるように、ユーザはすでに2つの座席を選択している。白いボックスは依然として利用可能な座席を表し、斜線付きのボックスは利用不可能な座席を表す。ユーザが座席(たとえば、図2Eにおいて選択されたチケットと同じ数の座席)を選択すると、ユーザは、次のスクリーンに行くために下部における「選択する」ボタンを操作してよい。
【００８１】
図2Hにおいて、支払い情報を提供するためにユーザがそれと対話できる複数の対話型要素、主にテキスト入力フィールドがユーザに提示される。ユーザが有効な支払い情報を入力すると、ユーザは図2Iのウェブページに案内され得る。図2Iのウェブページは、ユーザの購入を要約し、かつ最後にもう一度、ユーザからの確認を尋ねる、別の最終確認ページである。ユーザが「確認する」をクリックするとトランザクションが完了し得る。ユーザは、テキストメッセージまたは電子メールで、郵便でなどの、様々な形態でチケットを受け取ってよい。
【００８２】
図2A〜図2Iから実証されるように、所望の商品を調達するために9つの異なるインターフェース(ウェブページ)と対話することがユーザに求められる。特にユーザが身障者であるか、またはさもなければ視覚インターフェースと対話できない場合(たとえば、その人は利用可能なスタンドアロンの対話型スピーカーしか有しないので、その人は運転中であるのでなど)、このプロセスは面倒であり得る。したがって、自動アシスタント120および/またはウェブサイトナビゲーションエンジン128の態様によって実行される技法を含む、本明細書で説明する技法は、ウェブサイトの所有者が自動アシスタント120をそのままにするようにサードパーティエージェント(たとえば、図1の中の150)をまだ作成していない場合でも、図2A〜図2Iに示すものなどの対話型ウェブサイトを自動的にナビゲートすることを可能にする。
【００８３】
図3A〜図3Cは、ユーザが商品および/またはサービスをもっと容易に調達できるように、図2A〜図2Iに示された同じ対話型ウェブサイトを通じたナビゲーションが、全体的にまたは少なくとも部分的に、どのように自動化され得るのかという一例を示す。図3A〜図3Cにおいて、ユーザは、図2A〜図2Iに示されたのと同じクライアントデバイス206と対話するが、このことは限定的であることを意図しない。たとえば、図3A〜図3Cに示すインターフェースおよび対話は、タッチスクリーンディスプレイが装備されており、かつアシスタントデバイスとして機能する、スタンドアロンの対話型スピーカー上で実施され得る。
【００８４】
図3Aにおいて、ユーザは、マイクロフォン上でクリックしており自然言語入力「Hypotheticalの映画、Louisville、金曜日、チケット2枚」を発話しているか、またはそれを(たとえば、メッセージ交換クライアント113の中に)タイプしているかのいずれかであり得る。様々な実装形態では、この自然言語入力は、ユーザの意図(映画チケットを購入する)、および意図を実行するために使用可能な1つまたは複数のパラメータ(たとえば、映画=Hypothetical、日付=9月21日金曜日、チケット枚数=2)を識別するために、自動アシスタント120の様々な構成要素によって処理され得る。
【００８５】
このデータに基づいて、自動アシスタント120は、同じ対話型ウェブサイトfakebooking.comから1つまたは複数のウェブページを取り出してよく、対話型ウェブサイトの少なくとも部分を自動的にナビゲートするために、本明細書で説明する技法を使用し始めてよい。ユーザの要求は、映画チケットを調達するためのすべての必要なパラメータを含むとは限らなかった。たとえば、ユーザは、特定の時間、劇場、または所望の座席を表明しなかった。したがって、様々な実装形態では、fakebooking.comウェブサイトの自動ナビゲーションは、ユーザが任意の足りない情報を提供することを可能にするために、選択されたウェブページ/インターフェースにおいて一時停止し得る。
【００８６】
図3Aにおいて、たとえば、自動アシスタント120は、要求された日付における要求された映画についての開始時間を提供する。図2Aと同様に、図3Aにおいて、ユーザは所望の開始時間を選択して続けることができる。図3Bにおいて、たとえば、ユーザは、マイクロフォンをタップしフレーズ「第1の劇場で8:45」を話す。代替として、ユーザは、上記と同様に所望の時間へのリンクを選択していることがある。どちらにしても、対話型ウェブサイトの自動ナビゲーションは、追加の足りない情報が必要とされるまで、できる限り再開し得る。
【００８７】
ユーザはまた、その人がどの座席を欲しいのかを指定しなかった。したがって、図3Bにおけるユーザの最初の表明に応答して、自動アシスタント120は出力「あなたの座席を選択してください」を提供する。それの下方で、自動アシスタント120は、図2Gに示す対話型ウェブページからの同じ対話型要素を模倣または複製する対話型座席選択インターフェースを提供する。ユーザが同じ座席を選択すると、選択された座席を列挙するボタンが下方に出現し得る(単に「確認する」または「次へ」と言うこともできる)。このボタンをクリックすることは、図3Cに示すインターフェースへの自動ナビゲーションを再開し得る。
【００８８】
図3Cにおいて、自動アシスタント120は、購入の詳細を確認することをユーザに求める。この情報は、ユーザによって提供され、かつ/または下にあるウェブサイトの対応する確認ウェブページから導出される、様々なパラメータからまとめられてよい(たとえば、図2I)。ユーザは、口述で「はい」と答えることによって確認する。自動アシスタント120は、「ショーをお楽しみください」と応答し、次いで、ユーザのカレンダーにイベントを追加するためのボタン、事前ロードされた道案内とともにナビゲーションアプリケーションをオープンするためのディープリンクなどの、いくつかの役に立つリンクを提供し得る。
【００８９】
この例を含む、いくつかの実装形態では、ユーザは購入を確認することが求められる。しかしながら、このことは常に必要とは限らない。いくつかの実装形態では、購入を完了することがユーザの要望であるという十分な信頼性がある場合、購入は自動的に通過してよい。たとえば、ユーザが特定のタイプの購入を頻繁に行い、かつほとんど遅延なしに常に購入を確認する場合、最終的にユーザは購入を確認するように求められることをやめてよい。追加または代替として、いくつかの実装形態では、購入を確認するようにユーザに求めるべきかどうかを決定する際に、支払い中の価格、製品のタイプ、および/または他の信号などの要因が考慮されてよい。たとえば、支払い中の価格が、都合よくユーザの消費快適帯内にあるものと推定されるいくつかのしきい値を下回る場合、その購入はそれ以上のユーザ入力を伴わずに自動的に確認されてよい。あるいは、ユーザがチケットを購入中のイベントにユーザがいることを表明するカレンダーエントリ、類似の何かを言っている友人との電子メールなどの、購入を確実にする他の信号があるか、またはユーザがイベントに関係する他の品目(たとえば、ホテルの部屋、楽屋パスなど)を購入している場合、購入は自動的に確認されてよい。
【００９０】
図4A〜図4Bは、図2A〜図2Iの対話型ウェブサイトの自動ナビゲーションが、ユーザエクスペリエンスを図3A〜図3Cにおけるよりも大きい程度に能率化できる、代替実装形態を示す。この例では、同じクライアントデバイス206が示される。しかしながら、図4A〜図4Bの中のユーザと自動アシスタント120との間の対話は、必ずしもディスプレイインターフェースを必要とするとは限らない。たとえば、図4Aに示すように開始時間を表示するのではなく、自動アシスタント120は、様々な劇場および開始時間を可聴式に出力することができる。したがって、図4A〜図4Bに示す対話は、スタンドアロンの対話型スピーカー、または(スクリーンを有してよいが運転者の気を散らすことを避けるためにそれを使用しないことがある)車両コンピューティングシステムなどの、ディスプレイさえ含まないアシスタントデバイスを使用して実施され得る。
【００９１】
図4Aは実質的に図3Aと類似である。図4Bに示すようにユーザが劇場および開始時間を選択すると、様々な実装形態では、自動アシスタント120は、トランザクションを完了するために選択可能なカードを提示してよい。あるいは、代替として、図4A〜図4Bの対話が純粋に可聴式である場合、自動アシスタント120は、詳細を可聴式に出力してよく、確認することをユーザに求めてよい。
【００９２】
図4A〜図4Bにおいて、座席選択表はスキップされる。このことは様々な理由のためであり得る。たとえば、ユーザによって選択される劇場または開始時間は、オープンな座席指定であってよく、その場合、座席は予約できず、代わりに早い者勝ちである。代替として、いくつかの実装形態では、座席に対するユーザの選好は、たとえば、ユーザによる手入力、または経時的に学習されるユーザの座席指定選好に基づいて、ユーザのプロファイルから決定され得る。ユーザが、常に3列と後方の5列との間の座席を選択し、かつ劇場の中央区画しか選択しないことを考える。これらの座席が利用可能でなかった過去のインスタンスにおいて、ユーザがチケットを購入しなかったか、または異なる開始時間における所望の座席を購入したことをさらに考える。これらの信号は、ユーザの座席選好を学習するために使用され得る。したがって、自動アシスタント120は、座席指定表を分析して、ユーザの座席選好を満足する座席が利用可能であるかどうかを決定してよく、次いで、それらの座席を自動的に選択してよい。そのように、ユーザはその人自身で座席を選択する必要がない。飛行機、列車、スポーツイベントなどにおける座席を自動的に選択するために、類似の技法が採用されてよい。
【００９３】
図5は、対話型ウェブページの各々を含む対話型ウェブサイトの全部または部分を自動的にナビゲートするように、図1の様々な構成要素がどのように構成され得るのかという一例を示す。いくつかの実装形態では、自動アシスタント120が、対応するサードパーティエージェント(150)がない対話型ウェブサイトを自動的にナビゲートすることを可能にするために、これらの技法が採用され得るが、このことは限定的であることを意図しない。本明細書で説明する技法は、他のコンテキストにおいて対話型ウェブサイトの全部または部分を自動的にナビゲートするために使用可能であり得る。たとえば、ウェブブラウザ111は、自動ウェブサイトナビゲーションを容易にするために本開示の選択された態様を実行するように構成される、プラグインが装備され得る。ユーザは、たとえば、本明細書で説明する技法を使用して自動ナビゲーションに対して以前に検証された対話型ウェブサイトにウェブブラウザがナビゲートされるときに、表示されるアイコン上でクリックすることによって、ウェブブラウザ111を使用しながらプラグインを操作することができる。アイコン上でクリックすることは、ウェブサイトから必要とされる情報のうちのできる限り多くをオートフィルおよび/またはサブミットしてよく、次いで、ユーザが個々の対話型要素と対話して足りない情報を提供することを可能にし得る。
【００９４】
図5のステップ1において、ユーザは、自然言語入力を自動アシスタント120に提供する。この例では、ユーザは「私のために薄いクラストのペパローニピザをhypotheticalpizza.comに注文してください」と求める。hypotheticalpizza.comにおける対話型ウェブサイトが、対応するサードパーティエージェント(150)を有しないことを想定する。自動アシスタント120は、ユーザの要求を分析して、ユーザの意図がhypotheticalpizza.comにピザを注文することであること、ならびに自動アシスタント120がパラメータ「ペパローニ」および「薄いクラスト」を使用してその注文を遂行すべきであることを決定し得る。
【００９５】
分析に基づいて、ステップ2において、自動アシスタント120および/またはウェブサイトナビゲーションエンジン128は、要求されたネットワーク識別子(hypotheticalpizza.com)におけるウェブサイトのオープニング対話型ウェブページを、たとえば、ウェブページデータベース127から取り出し得る。ステップ3において、取り出されたオープニングウェブページに少なくとも部分的に基づいて、かつ/またはユーザの選好、カレンダーなどの他の情報に基づいて、現在ユーザ状態が生成され得る。前に述べたように、この現在ユーザ状態は、特徴ベクトル、意味論的に豊富な埋込みなどの、様々な形式を取り得る。場合によっては、ウェブページコンテンツは、ウェブページの1つまたは複数の対話型要素に基づいて1つまたは複数の汎用識別子行列を生成するために分析され得る。これらの汎用識別子行列を示すデータが、ユーザ状態の中に含められてよい。
【００９６】
ステップ4において、ユーザ状態は、過去ユーザ状態データベース129の中に含まれる1つまたは複数の候補過去ユーザ状態5601〜Mに整合され得る(Mは正の整数である)。この整合は、現在ユーザ状態と候補過去ユーザ状態560の各々との間の類似性測度などの様々な基準に基づいてよい。たとえば、いくつかの実装形態では、現在ユーザ状態への類似性測度がしきい値を満たす、それらの候補過去ユーザ状態560だけが選択されてよく、または一番上の類似の候補過去ユーザ状態が選択されてよい。あるいは、候補過去ユーザ状態および現在ユーザ状態の、それぞれの汎用識別子行列が整合されてよい。
【００９７】
現在ユーザ状態と同じウェブサイトから候補過去ユーザ状態が生成されていることは必要でない。多くの場合、機能性が類似のウェブページに対して実行されたのか、それとも現在ユーザ状態を生成するために使用されたウェブページに対して実行されたのかにかかわらず、類似のアクションが成功することになるような、機能的に類似のウェブページから候補過去ユーザ状態が生成されたことが十分であり得る。このようにして、いくつかの実装形態では、これまで知られていないかまたは遭遇されていないウェブサイトの部分を、スクリプトがそれに対して以前に検証されている既知のウェブサイトとのそれらの類似度に基づいて、ウェブサイトナビゲーションエンジン128が自動的にナビゲートすることが可能である。
【００９８】
図5に示すように、各候補過去ユーザ状態560は、1つまたは複数のアクションに関連し得る。たとえば、第1の候補過去ユーザ状態5601は、アクション1,1、アクション1,2、...、およびアクション1,Nに関連する(Nは正の整数である)。第2の候補過去ユーザ状態5602は、アクション2,1、アクション2,2、...、およびアクション2,Nに関連し、以下同様である。各アクションは、たとえば、対話型ウェブページ要素に対応し得る。いくつかの実装形態では、各アクションは、過去にウェブページ上で遭遇された特定の対話型要素から生成される汎用識別子行列によって表されてよい。したがって、アクションは、たとえば、テキストフィールドの中にパラメータを入力すること、ドロップダウンリストからパラメータを選択すること、ラジオボタンまたはチェックボックスをチェックすること、トグルスイッチをトグルすること、「サブミットする」または「確認する」または「次へ」ボタンをアクティブ化することなどを含むことができる。
【００９９】
ステップ5において、1つまたは複数のアクションが、様々な基準に基づいて選択されてよく、実行されてよい。成功した場合、対話型ウェブサイトを通じたスクリプトの中の次のウェブページがステップ6においてロードされてよく、プロセスが反復されてよい。選択されたアクションが失敗した場合、いくつかのアクションが成功するまで別のアクションが選択されてよい。いくつかの実装形態では、アクションが成功すると、現在ユーザ状態は、たとえば、少なくとも成功したアクションに関連する、過去ユーザ状態データベース127に追加されてよい。このようにして、システムは、どのように対話型ウェブサイトを自動的にナビゲートすべきかを「学習」し、かつ/または対話型ウェブサイトを通じて既知のスクリプトを検証/再検証することができる。
【０１００】
図5の例では、すべての候補過去ユーザ状態560がN個の潜在的なアクションを有する。これは、たとえば、すべての可能なアクションが候補過去ユーザ状態560ごとに利用可能にされるからであり得る。様々な実装形態では、どのアクションが試行されるのか、またはどんな順序でアクションが試行されるのかを、1つまたは複数のポリシーが規定し得る。いくつかのそのような実装形態では、すべてのアクション1〜Nは、たとえば、1つまたは複数のポリシーに従って、(上述のように過去ユーザ状態および/またはそれらの関連するアクションに関連し得る)それらのそれぞれの汎用識別子行列の間の類似性などの様々な基準に基づいてランク付けされてよい。ただし、このことは限定的であることを意図しない。いくつかの実装形態では、各過去ユーザ状態560は、それらの過去ユーザ状態を生成するために使用された、下にあるウェブページの中で見つけられる対話型要素(したがって、汎用識別子行列)に対応するアクションにしか関連し得ない。このことは、事実上、所与の候補過去ユーザ状態に対する潜在的なアクションの探索空間を低減する。
【０１０１】
本明細書では他のポリシーが企図される。たとえば、いくつかの実装形態では、状態/アクションは、たとえば、強化学習に類似する、経時的に発展するポリシーによって統治され得る。たとえば、ポリシーは、現在ユーザ状態を入力として受信し、かつどのアクションが第1に、第2になどで実行されるべきかを示すデータを出力として提供するようにトレーニングされる、ニューラルネットワークまたは他の統計モデルの形態を取り得る。たとえば、出力は、潜在的な各アクションが成功する確率であり得る。いくつかの実装形態では、たとえば、成功のアクションの確率の順序で、成功する可能性が最も高いアクションが実行されてよい。
【０１０２】
いくつかの実装形態では、ポリシーは、人間によるのか、それとも本明細書で説明する技法を使用して自動的にであるのかにかかわらず、対話型ウェブサイトが首尾よくナビゲートされるたびに継続的にトレーニングされてよい。たとえば、対話型ウェブサイトをナビゲートするように操作されるウェブページのシーケンスの中の各ウェブページが、状態を生成するために使用され得る。ウェブサイトとの対話は、「順番(turn)」に分けられてよい。各順番の間、新たなウェブページの対話型要素と対話するために、ポリシーおよび現在ユーザ状態に基づいてアクションが選択および実行され得る。対話型ウェブサイトのウェブページを通じた一連の順番が成功している場合、累積的な報酬が生成されてよく、各順番の現在ユーザ状態/アクションペアごとにポリシーをトレーニングするために使用されてよい。たとえば、累積的な報酬は、実行されたユーザ状態/アクションごとに、ポリシーに対して勾配降下および/または逆伝搬などの技法を実行するために使用され得る。経時的に、対話型ウェブサイトを自動的に首尾よくナビゲートするために現在ユーザ状態に基づいてアクションを選択する際に、ポリシーはより良好になり得る。
【０１０３】
追加または代替として、いくつかの実装形態では、たとえば、選択されたアクションが失敗している場合、順番ごとの別個の報酬(すなわちペナルティ)が負わされてよい。たとえば、実行されたアクションが、クレジットカード番号フィールドを日付で埋めるための試行を含む場合、下にあるウェブサイトは、入力が無効であるという警告を(たとえば、JavaScriptを使用して)発行してよい。このことはそのアクションの失敗をなしてよく、そのことは、たとえば、否定的なトレーニング例として、ポリシーをトレーニングするために、順番ごとのペナルティが負わされ使用されてよい。同様に、アクションが成功しているとき、順番ごとの肯定的な報酬が受けられ得る。
【０１０４】
図6A〜図6Bは、様々な実装形態による、どのように汎用識別子行列が生成され得るのかという2つの例を実証する。図6A〜図6Bにおいて、FAKE RAILWAYS用のユーザインターフェースが示される。このインターフェースは、列車チケットを予約するためにユーザによって操作可能であり得る。たとえば、ユーザは、入力ボックス670の中で、その人の所望のチケットの起点(「Von」は英語での「From」に翻訳できる)をタイプするかまたは別のやり方で入力してよい。ユーザは、入力ボックス671の中で、その人の所望のチケットの目的地(「Nach」)をタイプするかまたは別のやり方で入力してよく、以下同様である。ユーザが様々な対話型要素に入力を提供していると、ユーザは、ボタン668を押すことによって、利用可能なチケットを探すことができる。特に、図6A〜図6Bのインターフェースの中のテキストはドイツ語である。しかしながら、他の類似のウェブサイト、たとえば、航空券を購入するためのウェブサイトから見慣れている可能性がある視覚的および/または幾何学的なコンテキストを、それらの対話型要素が有するという事実に基づいて、非ドイツ語話者でさえ対話型要素の各々が何を表すのかを直感できる可能性がある。
【０１０５】
したがって、様々な実装形態では、説明する技法は、インターフェース(すなわち、ウェブページ)の対話型要素ごとに、それぞれの対話型要素と、ウェブページがレンダリングされるときにそれぞれの対話型要素を直接取り囲む、ウェブページ/インターフェースの他の視認可能なコンテンツの両方を示す、データを含む汎用識別子行列672A、672Bを生成するために採用され得る。より一般的に、汎用識別子行列は、ウェブページ構造および/またはDOMツリーが著しく変化する場合でもウェブページからそれらが容易に取り出され得るような、それらの幾何学的コンテキストおよびタイプに基づくHTML/XMLノードに対するセレクタとして働く。いくつかの実装形態では、その汎用セレクタ行列を使用して取り出される、直近に改変されたウェブページのノードは、同じタイプ(たとえば、ラジオボタン、テキスト入力部など)を有してよく、元のノードと同じアクションを受信することが可能であり得る。
【０１０６】
汎用識別子行列を生成するための1つの「グリッドベースの」手法が図6A〜図6Bに示される。図6Aにおいて、ボタン668に対して第1の汎用識別子行列672Aが生成される。第1の汎用識別子行列672Aは、3×3配列をなす9つのセルを含む。各セルは、必要/要望に応じて改変され得る、所定の幅および/または高さを有してよい。5×5、9×9などの、他の個数、サイズ、および/または配列のセルが本明細書で企図される。第1の汎用セレクタ672Aは、ボタン668のアクティブ部分に中心がある(したがって、それをキャプチャする)。下部における引き伸ばしたバージョンの第1の汎用識別子行列672Aの中で示すように、左上のセルは、インターフェースからテキスト「AN」をキャプチャし、左中央のセルは、インターフェースからテキスト「SUCHEN」をキャプチャし、下中央のセルは、インターフェースからテキスト「SUCHE」をキャプチャする。いくつかの実装形態では、セルによって全体にキャプチャされる全体的なワードしか汎用識別子行列の中に含まれ得ないが、このことは必須でない。
【０１０７】
図6Bにおいて、第2の汎用識別子行列672Bは、テキスト入力部670(「VON」)が中心にある。下部における引き伸ばしたバージョンの第2の汎用識別子行列672Bの中で示すように、左上のセルは、インターフェースからテキスト「VON」をキャプチャし、右上のセルは、インターフェースからテキスト「FAKE」をキャプチャし、左下のセルは、インターフェースからテキスト「NACH」をキャプチャする。
【０１０８】
これらの汎用識別子行列672A〜B、ならびに図6A〜図6Bに示すインターフェースの他の対話型要素に対して生成される汎用識別子行列は、たとえば、過去ユーザ状態のデータベース127の中に記憶されてよい。たとえば、各過去ユーザ状態は、これらの汎用識別子行列を示すデータを含んでよい。追加または代替として、これらの汎用識別子行列は、それらの過去ユーザ状態とともに実行され得るアクションを規定するために使用され得る。前に説明したように、図6A〜図6Bのインターフェースが、FAKE RAILWAYSに関連するウェブサイトの自動ナビゲーションの間に遭遇されると、(自然言語入力の一部として前もって、または後で)ユーザによって提供されるパラメータは、これらの汎用識別子行列の下にある対話型要素と対話することを試行するために使用され得る。
【０１０９】
いくつかの実装形態では、特定のDOMノード(または、より一般的に対話型要素)は、次のように所与のウェブページ(またはウェブビュー)の中で探索され得る。需要の多いノードから生成される参照汎用行列が取り出されてよい。ウェブページ全体をキャプチャする(すなわち、全体的なウェブページをカバーする)第1の汎用行列が生成されてよい。次いで、この第1の汎用行列のセルごとに、セルが中心にありセル全体にぴったり合う、より小型の別の汎用識別子行列が生成されてよい。次いで、プロセスは、参照汎用識別子行列に最も近い、より小型の汎用識別子行列を見つけるために、より小型の汎用識別子行列の各々を通じてループしてよい。次いで、プロセスは、参照汎用識別子行列と同じタイプを有するDOMノードを識別するために、最も近くのより小型の汎用識別子行列内で見つけられるすべてのDOMノードを通じてループしてよい。
【０１１０】
この「グリッドベースの」手法のいくつかの実装形態では、汎用識別子行列の間の類似性は、それらの間の距離に基づいて決定され得る。たとえば、2つのグリッドベースの汎用識別子行列の間の「距離」は、グリッドセルにわたってそれらの差分を合計することによって、用語のセットから算出され得る。「グリッドベースの」手法の下で2つの汎用識別子行列の間の距離を決定するための例示的な擬似コードが図7に示される。異なるグリッドサイズの汎用識別子行列の間で距離が算出され得ることに留意されたい。いくつかの実装形態では、図7の中のコードの以下のライン、すなわち「distance += SetDiff(Ny.GetTerms(i), Nx.GetTerms(j)).size;」は、以下のコードによって置き換えられてよい。
const auto& set_diff = SetDiff(Ny.GetTerms(i), Nx.GetTerms(j));
for (const auto& term : set_diff) {
Distance += idf[term];
}
この変更は、逆文書頻度(idf:Inverse Document Frequency)を使用することによって、用語変化に対して距離測度をよりロバストにし得る。上の置き換えコードにおいて、idfは、文字列からlog(|D|/|D(term)|)へのマップであり、ただし、|D|は汎用識別子行列の数であり、|D(term)|は、中心セルを取り囲むセルの中のテキストとしての用語を有する汎用識別子行列の数である。
【０１１１】
図6A〜図6Bにおいて実証されるような、汎用識別子行列を生成するグリッドベースの手法の1つの利点は、それがグリッドの中のセルの数とともに線形にスケーリングすることである。しかしながら、汎用識別子行列を生成するための他の手法が本明細書で企図される。たとえば、いくつかの実装形態では、汎用識別子行列は、所与の対話型要素に関連する<ロケーション,テキスト>ペアのセットとして規定され得る。<ロケーション>は、対象の対話型要素に中心がある、境界を定める長方形(または他の形状)の中心に対する位置であってよい。対象の対話型要素を取り囲む各要素は、対話型要素に対するそのロケーションによって分類され得る。たとえば、<(-10,10):"第1の","名称">は、テキスト「第1の名称」が、対象の対話型要素の10ピクセル(または他の距離単位)左に、かつ10ピクセル(または他の距離単位)上方に、位置していることを指してよい。このようにして構成された2つの汎用識別子行列を比較するとき、2つの汎用識別子行列の間の全体的な類似性を決定するために、様々なペアの間の距離が算出され得る。この手法は、計算量が増大するとしても対話型要素の幾何学的/視覚的なコンテキストのより精密な表現を提供し得る。そのような手法のための例示的な擬似コードが図8に示される。
【０１１２】
図9は、本明細書で開示する実装形態による例示的な方法900を示すフローチャートである。便宜上、フローチャートの動作は、その動作を実行するシステムを参照しながら説明される。このシステムは、自動アシスタント120および/またはウェブサイトナビゲーションエンジン128の1つまたは複数の構成要素などの、様々なコンピュータシステムの様々な構成要素を含んでよい。その上、方法900の動作が特定の順序で示されるが、このことは限定的であることを意図しない。1つまたは複数の動作が、並び替えられてよく、省略されてよく、または追加されてよい。
【０１１３】
ブロック902において、システムは、コンピューティングデバイス(たとえば、クライアントデバイス106、206)の入力構成要素においてユーザから自然言語入力を受け取ってよい。様々な実装形態では、自然言語入力は、ユーザによって、少なくとも部分的にコンピューティングデバイス上で(たとえば、自動アシスタントクライアント108を通じて)動作する自動アシスタント120に向けられてよい。ブロック904において、システムは、たとえば、クラウドベースの自動アシスタント構成要素119を通じて、ユーザの意図、およびユーザの意図を実行することに関連する1つまたは複数のパラメータを識別するために、自然言語入力を分析し得る。
【０１１４】
ブロック906において、システムは、1つまたは複数の対話型要素を含むウェブページを取得し得る。いくつかの実装形態では、ウェブページは、自然言語入力、ユーザの意図、または1つもしくは複数のパラメータのうちの1つまたは複数に基づいて識別されてよい。たとえば、ウェブページは、ユーザの意図を実行するように動作可能であり得る。1つまたは複数の対話型要素は、パラメータのうちの1つまたは複数を入力するように動作可能であり得る。
【０１１５】
ブロック908において、システムは、ユーザに関連する現在ユーザ状態を決定し得る。前に述べたように、現在ユーザ状態(および、一般的に任意のユーザ状態)は、特徴ベクトル、埋込み、1つまたは複数の汎用識別子行列などの、様々なタイプのデータ構造によって表されてよい。様々な実装形態では、現在ユーザ状態は、その構成要素である対話型要素を含む、ウェブページのコンテンツに少なくとも部分的に基づいて決定されてよい。
【０１１６】
ブロック910において、システムは、ブロック908において決定された(たとえば、生成された)現在ユーザ状態に基づいて、たとえば、過去ユーザ状態のデータベース127から、1つまたは複数の候補過去ユーザ状態(たとえば、5601〜M)を識別し得る。いくつかの実装形態では、1つまたは複数の候補過去ユーザ状態の各々は、たとえば、ウェブページの対話型要素のうちの1つまたは複数と対話するための1つまたは複数の候補アクションを含んでよい。いくつかの実装形態では、1つまたは複数の候補アクションは、意図の少なくとも部分を実行できるものとして以前に検証されていてよい。
【０１１７】
ブロック912において、システムは、第1の基準に少なくとも部分的に基づいて、1つまたは複数の候補過去ユーザ状態から特定の候補過去ユーザ状態を選択し得る。2つの状態の間の類似性測度(たとえば、距離)、それらの構成要素である汎用識別子行列の間の類似性測度(たとえば、距離)などの、様々な第1の基準が採用されてよい。ブロック914において、システムは、第2の基準に少なくとも部分的に基づいて、特定の候補過去ユーザ状態に関連する1つまたは複数の候補アクションから特定の候補アクションを選択し得る。たとえば、システムは、現在ユーザ状態を生成するために使用されるウェブページの対話型要素から生成された汎用識別子行列と最も類似の汎用識別子行列によって表される過去ユーザ状態のアクションを選択してよい。
【０１１８】
ブロック916において、システムは、パラメータのうちの1つまたは複数を使用してウェブページの対話型要素のうちの1つまたは複数と対話するために、選択された候補アクションを実行し得る。たとえば、あるパラメータはドロップダウンメニューから選択するために使用されてよく、別のパラメータはテキスト入力フィールドに値を代入するために使用されてよいなどである。ブロック918において、システムは、ユーザの意図の少なくとも部分が実行されていることを示す自然言語出力を、たとえば、自動アシスタント120を通じて、ユーザにオーディオ出力またはビジュアル出力として提供し得る。
【０１１９】
図10は、様々な実施形態による、本開示の選択された態様を実践するための例示的な方法1000を示す。詳細には、方法100は、たとえば、それらのウェブページが変更されている場合に、以前に検証されたウェブページ/ウェブサイトを再検証するために実行可能であってよい。便宜上、フローチャートの動作は、その動作を実行するシステムを参照しながら説明される。このシステムは、自動アシスタント120および/またはウェブサイトナビゲーションエンジン128を含む、様々なコンピュータシステムの様々な構成要素を含んでよい。その上、方法1000の動作が特定の順序で示されるが、このことは限定的であることを意図しない。1つまたは複数の動作が、並び替えられてよく、省略されてよく、または追加されてよい。
【０１２０】
ブロック1002において、システムは、URL、ドメイン、IPアドレスなどの、ウェブページの識別子を決定し得る。様々な実装形態では、ウェブページがユーザの意図を実行するように動作可能であると最後に知られていたことを示すように、識別子は以前に検証されていてよい。様々な実装形態では、ウェブページは、意図に関連する1つまたは複数のパラメータを入力するように動作可能であるものと知られていた1つまたは複数の対話型要素の第1のセットを含むことが最後に知られていてよい。
【０１２１】
ブロック1004において、システムは、識別子に基づいて、更新済みのバージョンのウェブページを取り出し得る(たとえば、ダウンロードし得る)。ブロック1006において、システムは、1つまたは複数の対話型要素の第2のセットを識別するために、ブロック1004において取り出された更新済みのバージョンのウェブページを分析し得る。ブロック1008において、システムは、ブロック1004において取り出された更新済みのバージョンのウェブページから識別された1つまたは複数の対話型要素の第2のセットに基づいて、対応する汎用識別子行列の更新済みのセットを生成し得る。更新済みのセットの各々は、第2のセットのそれぞれの対話型要素と、ウェブページがレンダリングされるときにそれぞれの対話型要素を直接取り囲む、ウェブページの他の視認可能なコンテンツの両方を示す、データを含んでよい。
【０１２２】
ブロック1010において、システムは、汎用識別子行列の更新済みのセットと、ウェブページに含まれることが最後に知られた1つまたは複数の対話型要素の第1のセットに基づいて生成された汎用識別子行列の既知のセットとの間の、マッピングを決定し得る。言い換えれば、システムは、たとえば、過去ユーザ状態データベース129の中の過去ユーザ状態および利用可能な他の情報を使用して、更新済みのウェブページの対話型要素を前のバージョンのウェブページの対話型要素と一致させることを試行する。
【０１２３】
ブロック1012において、システムは、マッピングに基づいて、1つまたは複数の対話型要素の第1のセットに対して以前に実行されたアクションを、第2のセットの1つまたは複数の対応する対話型要素に対して試行し得る。言い換えれば、システムは、以前に検証された同じアクションが依然として機能するかどうかを見るために、かつマッピングが正当であるかどうかを決定するために、そうしたアクションを試行する。
【０１２４】
試行の1つまたは複数の結果に基づいて、ブロック1014において、システムは、検証されたかまたは検証されていないものとしてウェブページの識別子を選択的に分類してよい。たとえば、更新済みのバージョンのウェブサイトにおいて、同じアクションが成功した場合、(たとえば、対話型ウェブサイトを通じてスクリプトの一部を形成する)それらのアクションは検証されたと見なされてよい。したがって、システムは、検証されたウェブページ識別子に関連するウェブページを含むウェブサイトを通じた自然言語ベースの自動ナビゲーションを容易にするために利用可能な、(検証された過去ユーザ状態に対応する)検証された複数のウェブページ識別子の一部として利用可能な、新たに検証された識別子を作成してよい。
【０１２５】
図11は、様々な実施形態による、本開示の選択された態様を実践するための例示的な方法1100を示す。詳細には、図11の動作は、それらのウェブサイトを通じた自動ナビゲーションを容易にするために、これまで知られていない対話型ウェブサイトを分析するために使用され得る。便宜上、フローチャートの動作は、その動作を実行するシステムを参照しながら説明される。このシステムは、自動アシスタント120および/またはウェブサイトナビゲーションエンジン128を含む、様々なコンピュータシステムの様々な構成要素を含んでよい。その上、方法1100の動作が特定の順序で示されるが、このことは限定的であることを意図しない。1つまたは複数の動作が、並び替えられてよく、省略されてよく、または追加されてよい。
【０１２６】
ブロック1102において、システムは、たとえば、ユーザによって提供されるウェブサイト識別子に基づいて、1つまたは複数の対話型要素を含む未知のウェブページを取得し得る。未知のウェブページは、調達(たとえば、商品またはサービスを購入すること)の少なくとも部分を実行するように動作可能であり得、1つまたは複数の対話型要素は、調達の少なくとも部分を実行するための1つまたは複数のパラメータを入力するように動作可能であり得る。
【０１２７】
ブロック1104において、システムは、たとえば、未知のウェブページの1つまたは複数の対話型要素に基づいて、1つまたは複数の汎用識別子行列の対応する第1のセットを生成し得る。前に説明したように、第1のセットの各汎用識別子行列は、未知のウェブページのそれぞれの対話型要素と、未知のウェブページがレンダリングされるときにそれぞれの対話型要素を直接取り囲む、未知のウェブページの他の視認可能なコンテンツの両方を示す、データを含んでよい。
【０１２８】
ブロック1106において、システムは、汎用識別子行列の第1のセットに少なくとも部分的に基づいて、たとえば、過去ユーザ状態のデータベース127から、1つまたは複数の候補過去ユーザ状態を識別し得る。全体的な(たとえば、ウェブページ全体の)類似性/距離または個々の対話型要素の間の(またはそれらから生成される汎用識別子行列の間の)類似性/距離などの様々な基準を使用して、もう一度これらが識別され得る。前に説明した実装形態におけるように、1つまたは複数の候補過去ユーザ状態のうちの各それぞれの候補過去ユーザ状態は、それぞれの候補過去ユーザ状態を生成するために使用された既知のウェブページの1つまたは複数の対話型要素と対話するための1つまたは複数の候補アクションを含んでよい。そして様々な実装形態では、1つまたは複数の候補過去ユーザ状態のうちの所与の候補過去ユーザ状態が、汎用識別子行列の第1のセットと所与の候補過去ユーザ状態に関連する1つまたは複数の汎用識別子行列の第2のセットとの比較に基づいて識別され得る。
【０１２９】
ブロック1108において、システムは、候補過去ユーザ状態のうちの1つまたは複数に関連する1つまたは複数の候補アクションを、未知のウェブページの対話型要素のうちの1つまたは複数に対して試行し得る。未知のウェブサイトの将来の自動ナビゲーションを容易にするために方法1100が自動的に実行中である場合、いくつかの実装形態では、未知のウェブサイトの構成要素であるウェブページがテストシステム(たとえば、サンドボックス)にダウンロードされてよく、目的をテストするためのパラメータとしてダミー値が使用されてよい。ブロック1110において、システムは、試行の1つまたは複数の結果に基づいて、検証されたかまたは検証されていないものとして未知のウェブページを選択的に分類してよい。前述のように、検証されたウェブページは、検証されたウェブページを含むウェブサイトを通じた自然言語ベースの自動ナビゲーションを容易にするために利用可能であり得る。
【０１３０】
本明細書で説明するいくつかの実装形態がユーザについての個人情報(たとえば、他の電子通信から抽出されるユーザデータ、ユーザのソーシャルネットワークについての情報、ユーザのロケーション、ユーザの時間、ユーザの生体情報、ならびにユーザの活動および人口統計学的情報、ユーザ間の関係など)を収集または使用し得る状況では、情報が収集されるかどうか、個人情報が蓄積されるかどうか、個人情報が使用されるかどうか、ならびにユーザについて情報がどのように収集、蓄積、および使用されるのかを制御するための、1つまたは複数の機会がユーザに提供される。すなわち、本明細書で説明するシステムおよび方法は、関連するユーザから、そうすべき明示的な認可を受けたときにしか、ユーザ個人情報を収集、蓄積、および/または使用しない。
【０１３１】
たとえば、プログラムまたは機能が、プログラムまたは機能に関連するその特定のユーザまたは他のユーザについてのユーザ情報を収集するかどうかを制する制御が、ユーザに提供される。情報が収集されるかどうかに関して、かつ情報のどの部分が収集されることになるのかに関して、許可または認可を提供するために、そのユーザに関連する情報収集を制する制御を可能にするための1つまたは複数のオプションが、個人情報が収集されることになる各ユーザに提示される。たとえば、通信ネットワークを介して1つまたは複数のそのような制御オプションがユーザに提供され得る。加えて、いくつかのデータは、個人を識別できる情報が除去されるように、蓄積または使用される前に1つまたは複数の方法で処置されてよい。一例として、個人を識別できる情報が決定できないように、ユーザの識別情報が処置されてよい。別の例として、ユーザの特定のロケーションが決定できないように、ユーザの地理的ロケーションがより大きい領域に一般化されてよい。
【０１３２】
図12は、本明細書で説明する技法の1つまたは複数の態様を実行するために随意に利用され得る例示的なコンピューティングデバイス1210のブロック図である。いくつかの実装形態では、クライアントコンピューティングデバイス、ウェブサイトナビゲーションエンジン128、自動アシスタント120、および/または他の構成要素のうちの1つまたは複数は、例示的なコンピューティングデバイス1210の1つまたは複数の構成要素を備えてよい。
【０１３３】
コンピューティングデバイス1210は、通常、バスサブシステム1212を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ1214を含む。これらの周辺デバイスは、たとえば、メモリサブシステム1225およびファイル記憶サブシステム1226を含む、記憶サブシステム1224、ユーザインターフェース出力デバイス1220、ユーザインターフェース入力デバイス1222、ならびにネットワークインターフェースサブシステム1216を含んでよい。入力および出力デバイスは、コンピューティングデバイス1210とのユーザ対話を可能にする。ネットワークインターフェースサブシステム1216は、外側のネットワークへのインターフェースを提供し、他のコンピューティングデバイスの中の対応するインターフェースデバイスに結合される。
【０１３４】
ユーザインターフェース入力デバイス1222は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイの中に組み込まれたタッチスクリーン、音声認識システム、マイクロフォンなどの、オーディオ入力デバイス、および/または他のタイプの入力デバイスを含んでよい。概して、「入力デバイス」という用語の使用は、コンピューティングデバイス1210の中または通信ネットワーク上に情報を入力するための、すべての可能なタイプのデバイスおよび方法を含むものとする。
【０１３５】
ユーザインターフェース出力デバイス1220は、ディスプレイサブシステム、プリンタ、ファックス機械、またはオーディオ出力デバイスなどの非視覚的な表示を含んでよい。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影デバイス、または視認可能な画像を作成するためのいくつかの他のメカニズムを含んでよい。ディスプレイサブシステムはまた、オーディオ出力デバイスを介するなどの非視覚的な表示を提供し得る。概して、「出力デバイス」という用語の使用は、コンピューティングデバイス1210からユーザに、または別の機械もしくはコンピューティングデバイスに、情報を出力するための、すべての可能なタイプのデバイスおよび方法を含むものとする。
【０１３６】
記憶サブシステム1224は、本明細書で説明するモジュールのうちの一部または全部の機能性を提供するプログラミングおよびデータ構成体を記憶する。たとえば、記憶サブシステム1224は、図7〜図9の方法の選択された態様を実行するための、かつ図1に示す様々な構成要素を実装するための、論理を含んでよい。
【０１３７】
これらのソフトウェアモジュールは、一般に、プロセッサ1214によって単独で、または他のプロセッサと組み合わせて実行される。記憶サブシステム1224の中で使用されるメモリ1225は、プログラム実行中の命令およびデータの記憶用のメインランダムアクセスメモリ(RAM)1230、ならびに確定した命令がその中に記憶される読取り専用メモリ(ROM)1232を含む、いくつかのメモリを含むことができる。ファイル記憶サブシステム1226は、プログラムおよびデータファイルのための永続的な記憶を提供することができ、ハードディスクドライブ、関連するリムーバブル媒体と一緒のフロッピーディスクドライブ、CD-ROMドライブ、光学ドライブ、またはリムーバブル媒体カートリッジを含んでよい。いくつかの実装形態の機能を実施するモジュールは、記憶サブシステム1224の中のファイル記憶サブシステム1226によって、またはプロセッサ1214によってアクセス可能な他の機械の中に、記憶されてよい。
【０１３８】
バスサブシステム1212は、コンピューティングデバイス1210の様々な構成要素およびサブシステムに、意図されるように互いに通信させるためのメカニズムを提供する。バスサブシステム1212は単一のバスとして概略的に示されるが、バスサブシステムの代替実装形態は複数のバスを使用してよい。
【０１３９】
コンピューティングデバイス1210は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムもしくはコンピューティングデバイスを含む、様々なタイプのものであり得る。コンピュータおよびネットワークの絶え間なく変化する性質に起因して、図12に示すコンピューティングデバイス1210の説明は、いくつかの実装形態を示すための具体例として意図されるにすぎない。図12に示すコンピューティングデバイスよりも多数または少数の構成要素を有する、コンピューティングデバイス1210の多くの他の構成が可能である。
【０１４０】
いくつかの実装形態が本明細書で説明および例示されているが、機能を実行しかつ/または結果を取得するための様々な他の手段および/または構造、ならびに/あるいは本明細書で説明する利点のうちの1つまたは複数が利用されてよく、そのような変形形態および/または修正形態の各々は、本明細書で説明する実装形態の範囲内であるものと見なされる。より一般的に、本明細書で説明するすべてのパラメータ、寸法、材料、および構成は例示的であることを意図し、実際のパラメータ、寸法、材料、および/または構成は、本教示がそれに対して使用される1つまたは複数の特定の適用例に依存する。当業者は、本明細書で説明する特定の実装形態の多くの均等物を認識すること、またはせいぜい決まりきった実験を使用して把握することができる。したがって、上記の実装形態が単に例として提示されること、ならびに添付の特許請求の範囲およびそれらの均等物の範囲内で、実装形態が詳細に説明および特許請求されるものとは別のやり方で実践され得ることを、理解されたい。本開示の実装形態は、本明細書で説明する各個々の機能、システム、物品、材料、キット、および/または方法を対象とする。加えて、2つ以上のそのような機能、システム、物品、材料、キット、および/または方法の任意の組合せは、そのような機能、システム、物品、材料、キット、および/または方法が互いに矛盾しない場合、本開示の範囲内に含まれる。
【符号の説明】
【０１４１】
106  クライアントコンピューティングデバイス、クライアントデバイス
107  視覚センサー
108  自動アシスタントクライアント
109  マイクロフォン
110  音声キャプチャモジュール
111  ウェブブラウザ
1121  ビジュアルキューモジュール
1122  クラウドベースのビジュアルキューモジュール
113  メッセージ交換クライアント
114  ローカルエリアネットワークおよび/またはワイドエリアネットワーク
116  クラウドベースのテキスト音声モジュール
117  クラウドベースの音声テキストモジュール
119  クラウドベースの自動アシスタント構成要素
120  自動アシスタント
122  自然言語プロセッサ
124  遂行モジュール
126  自然言語生成器
127  ウェブページデータベース
128  ウェブサイトナビゲーションエンジン
129  過去ユーザ状態データベース
135  意図マッチャ
150  検索モジュール
206  クライアントデバイス
560  候補過去ユーザ状態、過去ユーザ状態
668  ボタン
670、671  入力ボックス
672  汎用識別子行列
1210  コンピューティングデバイス
1212  バスサブシステム
1214  プロセッサ
1216  ネットワークインターフェースサブシステム
1220  ユーザインターフェース出力デバイス
1222  ユーザインターフェース入力デバイス
1224  記憶サブシステム
1225  メモリサブシステム
1226  ファイル記憶サブシステム
1230  ランダムアクセスメモリ
1232  読取り専用メモリ
【図１】
2022501730.tif 000003
【図２Ａ】
2022501730.tif 000004
【図２Ｂ】
2022501730.tif 000005
【図２Ｃ】
2022501730.tif 000006
【図２Ｄ】
2022501730.tif 000007
【図２Ｅ】
2022501730.tif 000008
【図２Ｆ】
2022501730.tif 000009
【図２Ｇ】
2022501730.tif 000010
【図２Ｈ】
2022501730.tif 000011
【図２Ｉ】
2022501730.tif 000012
【図３Ａ】
2022501730.tif 000013
【図３Ｂ】
2022501730.tif 000014
【図３Ｃ】
2022501730.tif 000015
【図４Ａ】
2022501730.tif 000016
【図４Ｂ】
2022501730.tif 000017
【図５】
2022501730.tif 000018
【図６Ａ】
2022501730.tif 000019
【図６Ｂ】
2022501730.tif 000020
【図７】
2022501730.tif 000021
【図８】
2022501730.tif 000022
【図９】
2022501730.tif 000023
【図１０】
2022501730.tif 000024
【図１１】
2022501730.tif 000025
【図１２】
2022501730.tif 000026
【国際調査報告】
2022501730.tif 000027
2022501730.tif 000028