(57)【特許請求の範囲】
【請求項１】
1つまたは複数のプロセッサによって実施される方法であって、
元のクエリを受け取るステップであって、前記元のクエリが、クライアントデバイスを介したユーザのユーザインターフェース入力に基づいて生成される、ステップと、
トレーニング済み生成モデルに対する入力として、前記元のクエリのトークンを適用するステップと、
前記トレーニング済み生成モデルに対する前記元のクエリのトークンの適用に基づいて、前記元のクエリの少なくとも1つの変異形を生成するステップと、
前記少なくとも1つの変異形と、前記少なくとも1つの変異形に対する少なくとも1つの検索システムの応答との少なくとも1つに基づいて出力を生成するステップと、
前記元のクエリに応答して、前記クライアントデバイスを介した提示のために前記出力を提供するステップと
を含み、
前記少なくとも1つの変異形を生成するステップの前に、前記方法は、トレーニング済み制御モデルを利用するコントローラエンジンによって、前記元のクエリについての前記検索システムからの少なくとも1つ応答に基づいて、何らかの変異形が前記元のクエリについて生成されるべきであるかどうかを決定するステップを含み、前記何らかの変異形が前記元のクエリについて生成されるべきであるかどうかを決定するステップが、
前記トレーニング済み制御モデルに対するコントローラ入力として前記少なくとも1つ応答の特徴を適用するステップと、
前記コントローラ入力に基づいて、前記トレーニング済み制御モデルを介してコントローラ出力を生成するステップと、
前記コントローラ出力に基づいて、前記少なくとも1つの変異形を生成することを決定するステップとを含む、方法。
【請求項２】
前記トレーニング済み生成モデルに対する前記入力の一部として、前記ユーザに関連する1つまたは複数の属性を適用するステップ
をさらに含む、請求項1に記載の方法。
【請求項３】
前記トレーニング済み生成モデルに対する前記1つまたは複数の属性に基づいて、前記元のクエリの少なくとも1つの変異形を生成するステップ
をさらに含む、請求項2に記載の方法。
【請求項４】
前記1つまたは複数の属性が、前記ユーザの位置、前記ユーザが現在携わっているタスク、および前記ユーザの前記位置の天候のうちの1つまたは複数を含む、請求項2または3に記載の方法。
【請求項５】
前記トレーニング済み生成モデルに対する前記入力の一部として、現在時刻、現在の曜日、および現在の日付のうちの少なくとも1つを含む1つまたは複数の時間的属性を適用するステップ
をさらに含む、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記ユーザについての予測されるタスクを決定するステップと、
前記トレーニング済み生成モデルに対する入力として、
前記ユーザについての前記予測されるタスクの1つまたは複数のタスク属性
を適用するステップと
をさらに含み、
前記元のクエリの少なくとも1つの変異形を生成するステップが、前記トレーニング済み生成モデルに対する前記1つまたは複数のタスク属性の適用に基づく、請求項1から5のいずれか一項に記載の方法。
【請求項７】
前記ユーザの前記予測されるタスクを決定するステップが、前記クライアントデバイスまたは追加のクライアントデバイスを介した前記ユーザとの1つまたは複数の対話に基づく、請求項6に記載の方法。
【請求項８】
前記1つまたは複数の対話が、前記ユーザによって送られた電子通信、または前記ユーザによって作成されたカレンダエントリを含む、請求項7に記載の方法。
【請求項９】
前記ユーザの前記予測されるタスクを決定するステップが、前記ユーザに送られた電子通信、または前記ユーザの記憶されたカレンダエントリに基づく、請求項6に記載の方法。
【請求項１０】
トレーニングインスタンス入力およびトレーニングインスタンス出力を含むトレーニングインスタンスを生成するステップであって、
前記トレーニングインスタンス入力が、
第1のクエリの第1のクエリトークンと、
タスク属性と
を含み、
前記トレーニングインスタンス出力が、
第2のクエリの第2のクエリトークン
を含み、
前記第1のクエリの過去のサブミットと、その後に続く前記第2のクエリの過去のサブミットとが、前記予測されるタスクに関連すると決定することに基づいて、前記トレーニングインスタンスが、前記タスク属性と共にトレーニングインスタンス入力として生成される、ステップと、
前記生成されたトレーニングインスタンスに基づいて前記生成モデルをトレーニングするステップと
をさらに含む、請求項6に記載の方法。
【請求項１１】
前記トレーニング済み生成モデルが前記予測されるタスクに関連する過去のクエリサブミットに基づいてトレーニングされることに基づいて、複数のトレーニング済み生成モデルから、トレーニング済み生成モデルを選択するステップ
を含む、請求項6から10のいずれか一項に記載の方法。
【請求項１２】
前記予測されるタスクに関連する前記過去のクエリサブミットに基づいて生成されるトレーニングインスタンスを選択するステップと、
前記選択されたトレーニングインスタンスに基づいて前記生成モデルをトレーニングするステップと
をさらに含む、請求項11に記載の方法。
【請求項１３】
2つ以上の以前にサブミットされたクエリのグループが前記予測されるタスクに関連すると決定するステップと、
前記グループの前記以前にサブミットされたクエリに基づいて、前記トレーニングインスタンスのうちの1つを生成するステップと、
前記トレーニングインスタンスのうちの前記1つを、前記予測されるタスクに関連するものとしてラベリングするステップと
をさらに含み、
前記予測されるタスクに関連する前記以前にサブミットされたクエリに基づいて生成される前記トレーニングインスタンスを選択するステップが、前記ラベリングに基づいて前記トレーニングインスタンスのうちの前記1つを選択するステップを含む、請求項12に記載の方法。
【請求項１４】
2つ以上の以前にサブミットされたクエリの前記グループが前記予測されるタスクに関連すると決定するステップが、前記以前にサブミットされたクエリのサブミットに続いて実施されるコンピューティングベースのアクションに基づく、請求項13に記載の方法。
【請求項１５】
前記トレーニング済み生成モデルが前記ユーザと共通の1つまたは複数の属性を有するユーザのグループの過去のクエリサブミットに基づいてトレーニングされることに基づいて、複数のトレーニング済み生成モデルから、トレーニング済み生成モデルを選択するステップと、
前記選択されたトレーニング済み生成モデルに対する入力として前記元のクエリのトークンを適用するステップと
をさらに含む、請求項1から5のいずれか一項に記載の方法。
【請求項１６】
前記トレーニング済み生成モデルが、1つまたは複数の記憶層を有するディープニューラルネットワークモデルである、請求項1から15のいずれか一項に記載の方法。
【請求項１７】
前記クエリの前記変異形を生成するステップが、前記トレーニング済み生成モデルの学習されたパラメータに基づいて前記変異形を生み出すステップを含み、
前記トレーニング済み生成モデルに追加の入力を適用するステップであって、前記追加の入力が、前記元のクエリの前記トークンと、前記元のクエリの前記変異形の変異形トークンとの少なくとも1つを含む、ステップと、
前記追加の入力に基づいて、前記トレーニング済み生成モデルを介して前記元のクエリの追加の変異形を生成するステップであって、前記追加の変異形が、前記変異形および前記元のクエリとは異なり、前記元のクエリの前記追加の変異形を生成するステップが、前記トレーニング済み生成モデルの前記学習されたパラメータに基づいて前記追加の変異形を生み出すステップを含む、ステップと、
前記検索システムへの前記元のクエリの前記追加の変異形のサブミットに基づいて、前記元のクエリの前記追加の変異形についての追加の変異形応答を決定するステップと、
前記変異形応答と、前記追加の変異形応答との少なくとも1つに基づいて出力を生成するステップと、
前記元のクエリに応答して、前記クライアントデバイスを介した提示のために前記出力を提供するステップと
をさらに含む、請求項1から16のいずれか一項に記載の方法。
【請求項１８】
前記トレーニング済み生成モデルが、複数のタイプのクエリ変異形を生成するようにトレーニングされ、前記変異形が、前記複数のタイプのクエリ変異形のうちの第1のタイプであり、前記追加の変異形が、前記複数のタイプのクエリ変異形のうちの第2のタイプである、請求項17に記載の方法。
【請求項１９】
前記第1のタイプが、同義クエリ、補足クエリ、汎化クエリ、正規化クエリ、含意クエリ、仕様クエリ、明確化クエリ、および言語翻訳クエリのうちの1つであり、前記第2のタイプが、前記同義クエリ、前記補足クエリ、前記汎化クエリ、前記正規化クエリ、前記含意クエリ、前記仕様クエリ、前記明確化クエリ、および前記言語翻訳クエリのうちの別の1つである、請求項18に記載の方法。
【請求項２０】
前記変異形が、前記トレーニング済み生成モデルに対する前記入力の一部として第1のタイプ値が適用されることに基づいて、前記トレーニング済み生成モデルを介して前記第1のタイプとして生成され、前記追加の変異形が、前記トレーニング済み生成モデルに対する前記追加の入力の一部として第2のタイプ値が適用されることに基づいて、前記トレーニング済み生成モデルを介して前記第2のタイプとして生成される、請求項18に記載の方法。
【請求項２１】
前記トレーニング済み生成モデルに適用される前記追加の入力が、前記元のクエリの前記トークンを含む、請求項17に記載の方法。
【請求項２２】
前記追加の入力が、前記元のクエリの前記変異形の前記変異形トークンをさらに含む、請求項21に記載の方法。
【請求項２３】
前記追加の入力が、前記元のクエリの前記変異形についての前記変異形応答に基づく変異形応答特徴をさらに含む、請求項21に記載の方法。
【請求項２４】
前記追加の変異形を生成する前に、前記変異形応答に基づいて、前記出力として前記変異形応答を提供するか、それとも前記追加の変異形を生成するかを決定するステップ
をさらに含み、
前記追加の変異形を生成するステップが、前記変異形応答を提供する代わりに、前記追加の変異形を生成することを決定することを条件とする、請求項17に記載の方法。
【請求項２５】
前記出力として前記変異形応答を提供するか、それとも前記追加の変異形を生成するかを決定するステップが、前記元のクエリの前記変異形にさらに基づく、請求項24に記載の方法。
【請求項２６】
前記変異形応答に基づいて、前記出力として前記変異形応答を提供するか、それとも前記追加の変異形を生成するかを決定するステップが、
前記トレーニング済み制御モデルに対するコントローラ入力として前記変異形応答の特徴を適用するステップと、
前記コントローラ入力に基づいて、前記トレーニング済み制御モデルを介してコントローラ出力を生成するステップと、
前記コントローラ出力に基づいて、前記追加の変異形を生成することを決定するステップと
を含む、請求項24に記載の方法。
【請求項２７】
前記変異形応答に基づいて、前記出力として前記変異形応答を提供するか、それとも前記追加の変異形を生成するかを決定するステップが、
前記トレーニング済み制御モデルに対する前記入力の一部として前記元のクエリの前記変異形を適用するステップ
をさらに含む、請求項26に記載の方法。
【請求項２８】
前記トレーニング済み制御モデルが、前記検索システムまたは追加の検索システムとの過去の対話に基づいて決定されたリワードに基づく強化学習に基づいてトレーニングされる、請求項26に記載の方法。
【請求項２９】
前記トレーニング済み制御モデルが、前記トレーニング済み生成モデルとは別々であるが、前記トレーニング済み生成モデルと組み合わせてトレーニングされる、請求項26に記載の方法。
【請求項３０】
前記トレーニング済み制御モデルが、フィードフォワードニューラルネットワークまたは再帰型ニューラルネットワークである、請求項26に記載の方法。
【請求項３１】
前記入力が、前記ユーザに関連する1つまたは複数の属性をさらに含み、前記追加の入力が、前記1つまたは複数の属性をさらに含む、請求項17から26のいずれか一項に記載の方法。
【請求項３２】
ネットワークを介して前記検索システムに元の要求を送信するステップであって、前記元の要求が前記元のクエリを含む、ステップと、
前記元の要求に応答して、前記検索システムから元の応答を受け取るステップと
をさらに含み、
トレーニング済み生成モデルに対する入力として前記元のクエリのトークンを適用するステップと、前記変異形を生成するステップとが、前記検索システムからの前記元の応答に基づく、請求項17から31のいずれか一項に記載の方法。
【請求項３３】
前記トレーニング済み生成モデルが、記憶層を有するディープニューラルネットワークモデルである、請求項1から32のいずれか一項に記載の方法。
【請求項３４】
シーケンスツーシーケンスニューラル機械翻訳モデルをトレーニングして、前記トレーニング済み生成モデルを生成するステップ
をさらに含む、請求項1から33のいずれか一項に記載の方法。
【請求項３５】
請求項1から34のいずれか一項に記載の方法を実施するように構成された、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに動作可能に結合されたメモリとを備えるシステム。
【請求項３６】
プロセッサによって実行されるとき、請求項1から34のいずれか一項に記載の方法を実施するように構成されるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
トレーニング済み生成モデルを用いたクエリ変異形の生成に関する。
【背景技術】
【０００２】
検索クエリのルールベースの書き換えが、検索システムのクエリ処理構成要素内で利用されてきた。たとえば、あるルールベースの書き換えは、「the」、「a」などの一定のストップワードをクエリから除去することによってクエリの書き換えを生成し得る。次いで、書き換えられたクエリが検索システムにサブミットされ得、書き換えられたクエリに応答する検索結果が返される。
【０００３】
さらに、たとえばサブミットされたクエリ(たとえば、「人々はXも検索する(people also search for X)」)に関係する追加のクエリを推奨するために、類似のクエリの集合が、検索システムにおいて利用されてきた。所与のクエリに対する類似のクエリは、しばしばナビゲーショナルクラスタリングによって決定される。たとえば、「面白い猫のピクチャ(funny cat pictures)」というクエリについて、「面白い猫のピクチャ(funny cat pictures)」のサブミットに続いて、「キャプション付きの面白い猫のピクチャ(funny cat pictures with captions)」という類似のクエリがユーザによって頻繁にサブミットされていることに基づいて、その類似のクエリが決定され得る。したがって、所与のクエリについての類似のクエリが事前定義される。
【発明の概要】
【課題を解決するための手段】
【０００４】
本明細書の実施形態は、サブミットされたクエリについてのクエリ変異形を生成することに関するシステム、方法、およびコンピュータ可読媒体を対象とする。多くの実施形態では、トレーニング済み生成モデルを利用して、クエリ変異形が実行時に生成される。生成モデルへのクエリのトークンの適用に基づいて、任意選択で生成モデルへの追加の入力特徴の適用に基づいて、クエリの変異形をアクティブに生成するのに生成モデルが利用され得るという点で、生成モデルは生産的である。このようにして、クエリに基づいて生成モデルがトレーニングされなかった場合であっても、任意のクエリの変異形を生成するのに生成モデルが利用され得る。したがって、新規なクエリについての変異形、およびいわゆる「テール」クエリ(すなわち、しきい値未満のサブミット頻度および/またはサブミット量のクエリ)についての変異形を生成するのに生成モデルが利用され得る。その結果、よりリッチなクエリ入力は、より効率的な関連結果の識別につながり得るので、クエリがより効果的に処理され得る。たとえば、単に低いサブミット頻度および/またはサブミット量であるというだけで、クエリは除外されない。効率の改善は、関連結果が取得され得る速度にあり得る。初期クエリが如何なる関連結果も生成しない場合にユーザが修正後のクエリを再サブミットすることを必要としないからである。開示した実施形態は、複数のクエリ変異形を自動的にテストすることを可能にする。変異形を生成するのに使用されるモデルのトレーニングを介して、結果の収束も保証され得、したがって、単に複数のクエリの同時処理によってではなく、目標とするクエリ変異形生成によって効率の改善が達成される。したがって、開示される方法を実施するプロセッサの処理能力および電力消費を含む、クエリを処理するのに必要とされる技術的リソースの使用が、本発明の実施形態を通じて最適化される。
【０００５】
いくつかの実施形態では、生成モデルは、1つまたは複数の「記憶層」を有するニューラルネットワークモデルなどのニューラルネットワークモデルである。記憶層は、長-短期記憶(「LSTM」)ユニットおよび/またはゲート付き再帰型ユニット(「GRU」)などの1つまたは複数の再帰型ニューラルネットワーク(RNN)ユニットを含む。
【０００６】
生成モデルが記憶層を有するニューラルネットワークモデルであるいくつかの実施形態では、生成モデルはシーケンスツーシーケンスモデルである。たとえば、シーケンスツーシーケンスモデルは、クエリのトークンが(たとえば、トークンごと、または組合せごとに)モデルに対する入力として適用され得るものであり得、トークンの符号化が、ネットワークの層にわたって生成される。さらに、生成された符号化が、ネットワークの追加の層にわたって復号化され得、得られる復号化がクエリの変異形を(直接的または間接的に)示す。たとえば、得られる復号化がネットワークのソフトマックス層に適用され、クエリの変異形が生成され得る。それらの実施形態のいくつかのバージョンでは、生成モデルは、シーケンスツーシーケンスニューラル機械翻訳モデルと同一または類似のアーキテクチャを有し、クエリ変異形特有のトレーニングデータを利用してトレーニングされる。たとえば、クエリ変異形特有のトレーニングデータは、(たとえば、同義クエリ変異形生成のためにトレーニングするための)同一の文書に対する「クリック」をそれぞれ有するクエリ対、(たとえば、補足クエリ変異形生成(follow-up query variant generation)のためにトレーニングするための)連続してサブミットされたクエリ対、および/または(たとえば、正規化クエリ変異形生成のためにトレーニングするための)元のカノニカルクエリ対に基づき得る。そのようなモデルは、任意選択で、翻訳トレーニングデータに基づいて事前トレーニングされ得る。
【０００７】
いくつかの実施形態では、複数のタイプのクエリ変異形のうちの任意の1つの生成を可能にするように生成モデルがトレーニングされる点で、生成モデルは「マルチタスク」モデルとしてトレーニングされる。それらの実施形態のうちのいくつかでは、生成モデルの所与のパスについて生成されるべきクエリ変異形のタイプが、所与のパスにおけるモデルに適用されるタイプ値入力に基づいて示され得、タイプ値入力は、生成されるべきクエリ変異形のタイプを示す。クエリ変異形のタイプには、たとえば、同義クエリ、補足クエリ、汎化クエリ、正規化クエリ、言語翻訳クエリ、含意クエリ(entailment query)、仕様クエリ、および/または明確化クエリ(すなわち、明確化を促すためにユーザへの出力として提供されるクエリ)が含まれ得る。より高いまたは低い粒度のものを含む、追加および/または代替のタイプが定義されもよい。生成モデルのトレーニングの際に、様々なタイプからのトレーニングデータが利用され得、トレーニングデータの各インスタンスは、そのインスタンスについてのクエリ変異形のタイプを示し、トレーニング中にトレーニングインスタンス入力として利用され得るタイプ値入力を含む。これらの実施形態のうちのいくつかでは、そのような形でマルチタスクモデルをトレーニングすることは、様々なタイプのトレーニングデータにわたる情報共有を活用し得、それにより、トレーニングされるマルチタスクモデルがよりロバストな性能となり得る。
【０００８】
トレーニング後に、マルチタスクモデルは、第1のパスにおけるクエリについて、(たとえば、第1のタイプ値を入力として適用することに基づいて)第1のタイプの変異形を生成し、第2のパスにおけるクエリについて、(たとえば、第2のタイプ値を入力として適用することに基づいて)第2のタイプの変異形を生成するために利用され得る。追加のタイプの追加の変異形が、追加のパスにおいて生成され得る。本明細書において説明されるように、マルチタスクモデルを利用して生成される追加のパスの量は、クエリごとに異なり得る。たとえば、追加のパスの量は、たとえば、あるパスにおいて生成される変異形、および/またはそのような変異形に対する応答に基づいて、その場その場で制御され得る。さらに、後続のパスが、前のパスにおいて生成された前の変異形と同一のタイプの変異形を生成し得る。それらの状況のうちのいくつかでは、本明細書において説明されるように、後続のパスは、前の変異形(たとえば、前の変異形自体および/または前の変異形についての応答)および/または他の前の変異形に基づく情報を利用し得、それによって、後続のパスの変異形が前の変異形とは異なるものとなり得る。
【０００９】
いくつかの実施形態では、元のクエリの複数の変異形が、生成モデルを利用して生成され、複数の変異形のそれぞれが検索システムにサブミットされ、複数の変異形のそれぞれについて、対応する応答が受信される。応答のうちの1つまたは複数に基づいて出力が生成され得、元のクエリに応答して出力が提供される。たとえば、出力は、(たとえば、検索システムによって提供される応答スコアによって示される)「最良の」応答、「最良の」応答のうちの複数、ならびに/あるいは(たとえば、変異形が補足タイプであるときの)変異形および対応する応答を含み得る。このように、および他の方式で、元のクエリの変異形に対する応答が、元のクエリに応答して、出力を提供するのに利用され得、出力が元のクエリに直接回答する。さらに、元のクエリの変異形に対する応答が、元のクエリに対する応答および/または他の変異形に対する応答を確証/確認するのに利用され得る。たとえば、元のクエリに対する「回答」の精度が、元のクエリの変異形について肯定的回答が提供されるかどうかに基づいて決定され得る。たとえば、補足タイプの変異形について他の肯定的回答が提供されるかに基づき、かつ/または(元のクエリの回答に類似の)肯定的な類似の回答が、同義タイプ、汎化タイプ、および/または言語翻訳タイプの変異形にとって利用可能であるかどうかに基づく。このようにして、および他の方式で、根拠のない/裏付けのない応答が決定されても提供される出力では利用され得ない、かつ/または提供される出力において利用されるとしても裏付けなしとのフラグが付けられ(たとえば、「潜在的にでたらめ」とのフラグが付けられ)得る。
【００１０】
いくつかの実施形態および/または状況では、複数の応答が、変異形に応答して検索システムによって返される。いくつかの他の実施形態および/または状況では、検索システムは、変異形に応答して単一の応答を提供する。それらの実施形態のうちのいくつかでは、単一の応答は、「回答」(たとえば、検索システムが見なした応答が、変異形に対する回答である)、または回答が未知であるという指示のどちらかを含む。他の実施形態では、回答が未知であるという指示は、検索システムによる任意の応答の欠如であり得る。検索システムは、複数のドメインにわたって動作する検索システム、または1つまたは複数の特定のドメイン(たとえば、オンラインショッピングドメイン)に個別化される検索システムであり得る。検索システムによって返される応答は、たとえば、検索結果(たとえば、文書からのコンテンツのスニペット、および文書へのリンク)、回答(たとえば、検索システムによって権威ある回答と見なされるコンテンツ)、イメージ、ビデオ、または知識グラフエンティティ、「ヌル」応答(たとえば、「回答なし」応答)であり得る。いくつかの状況では、追加または代替として、生成された変異形が、明確化を促すために(元のクエリをサブミットした)ユーザへの出力として提供され得、プロンプトに応答してユーザによって提供されたユーザインターフェース入力を明確にすることが、変異形に対する「応答」として利用され得る。そのようなユーザ提供の応答は、別の変異形生成に影響を及ぼすために利用され得る。たとえば、そのようなユーザ提供の応答は、変異形を生成する別の反復において生成モデルに渡されるコンテキストベクトルを生成するのに利用され得る。
【００１１】
いくつかの実施形態では、複数の生成モデルが生成され得、生成モデルのそれぞれが、ユーザの固有グループの過去のクエリサブミットに基づくトレーニングデータに基づいてトレーニングされる。たとえば、第1の生成モデルが、属性AおよびBを有するユーザの過去のクエリサブミットに基づくトレーニングデータに基づいて生成され得る。第2の生成モデルが、属性BおよびCを有するユーザの過去のクエリサブミットに基づくトレーニングデータに基づいて生成され得る。(属性Aではなく)属性BおよびCを有するユーザのサブミットされたクエリについて、第2の生成モデルが、そのユーザについての変異形を生成する際に(第1の生成モデルをも選択することなく)使用するために選択され得る。ユーザ属性BおよびCは、第2の生成モデルをトレーニングする際に利用されるものと合致するからである。このようにして、生成モデルが、複数の利用可能な生成モデルから選択され得、したがって、選択された生成モデルがユーザの属性に合わせられる。この結果、選択された生成モデルを利用して、ユーザにとってより適切なクエリ変異形が生成され得る。たとえば、科学研究者について、たとえばフリーランスライタと比べて非常に異なる変異形が生成され得る。
【００１２】
いくつかの実施形態では、複数の生成モデルが生成され得、生成モデルのそれぞれが、ユーザの特定の属性、特定の時間的属性、および/または他の属性などの特定の属性に関連する過去のクエリサブミットに基づくトレーニングデータに基づいてトレーニングされる。たとえば、第1の生成モデルが、オンラインショッピングタスクに関連する過去のクエリサブミットに基づくトレーニングデータに基づいて生成される。たとえば、過去のクエリサブミットがオンラインショッピング検索システムにサブミットされることに基づいて、ユーザがサブミットに関連してショッピングコンテンツ(たとえば、ある広告)を選択することに基づいて、検索結果がショッピング中心であることに基づいて、ユーザがサブミットに続いてトランザクションを完了することなどに基づいて識別され得る。第2の生成モデルが、異なる特定の属性に関連する過去のクエリサブミットに基づくトレーニングデータに基づいて生成され得る。たとえば、第2の生成モデルは、位置(たとえば、任意の位置、任意のレストラン位置、会合位置など)に移動するタスクに関連する過去のクエリサブミットに基づくトレーニングデータに基づいて生成され得る。たとえば、過去のクエリサブミットが、位置への移動前および/または移動中にサブミットされることに基づいて、スケジューリングされたカレンダ入力に時間的に近くにサブミットされることなどに基づいて識別され得る。ユーザのサブミットされたクエリについて、ユーザのタスクが予測され得、予測されるタスクに対応する生成モデルが、そのサブミットされたクエリについての変異形を生成するために選択される。たとえば、ユーザのカレンダ入力および/または電子通信が、ユーザが位置に移動中である(または位置に間もなく移動する)ことを示す場合、先行する例における第2の生成モデルが、そのモデルが位置に移動するタスクに関連することに基づいて選択され得る。このようにして、生成モデルが、複数の利用可能な生成モデルから選択され得、したがって、選択された生成モデルが、携わっている、または携わるべき予測されるタスクなどのユーザタスクに合わせられる。この結果、選択された生成モデルを利用して、ユーザの現タスクにとってより適切なクエリ変異形が生成され得る。上記および本明細書の別の箇所で説明されるように、様々な実施形態では、生成モデルはマルチタスクモデルであり得、様々な異なるタイプのクエリ変異形の生成を可能にする。それらの様々な実施形態のうちのいくつかは、生成モデルの使用がユーザクエリを拡大する変異形を生成することを可能にし、クエリを拡張する複数の経路の探索を可能にする。そのような変異形は、同時または順番に、(たとえば、任意選択で、そのような変異形に基づくクエリを最初に発行することなく)ユーザへの提示のために提供され得、ユーザがクエリを拡張するための様々な経路を探索することを可能にする。追加または代替として、そのような変異形に対する応答が、検索システムから取得され得、応答が、ユーザへの提示のために提供され、ユーザがクエリに対する拡張のために様々な応答を探索することを可能にする。
【００１３】
本明細書において説明されるいくつかの実施形態は、(たとえば、身体的障害のために)クエリを策定する際に困難を有し得るユーザによってサブミットされるクエリの変異形を生成するのに利用され得る。たとえば、クエリは、凝視誘導(gaze-guided)(または他の低労力)ユーザインターフェース入力を利用してユーザによって策定され得、本明細書において説明される技法に従ってクエリ変異形が生成される。このようにして、ユーザがそのような変異形を手動で生成することを必要とすることなく、クエリのクエリ変異形が生成され、ユーザに提示され得る。
【００１４】
本明細書において説明されるように、生成モデルは、生成モデルへのクエリのトークンの適用に基づいて、任意選択で生成モデルへの追加の入力特徴の適用に基づいて、クエリの変異形をアクティブに生成するのに利用され得る。それらの実施形態のうちのいくつかでは、追加の入力特徴は、クエリをサブミットしたユーザに関連する属性、時間的属性、および/または他の特徴を含み得る。ユーザに関連する属性は、たとえば、ユーザの位置(たとえば、ケンタッキー州ルイビル、「レストラン」内、米国南東部)、ユーザに関連するタスク(たとえば、料理、車の修理、旅行の計画)、および/またはユーザの位置の天候を含み得る。ユーザに関連するタスクは、ユーザが現在携わっている、またはユーザが携わるべきタスクであり得る。いくつかの実施形態では、タスクは、たとえば、ユーザの記憶されたカレンダエントリ、ユーザの電子通信(たとえば、ユーザに送られ、またはユーザによって送られたチャットメッセージまたは他の通信)、ユーザによってサブミットされた過去のクエリなどの様々な信号に基づいて予測される。時間的属性は、たとえば、現在時刻、現在の曜日、および/または現在の日付を含み得る。このようにして、生成モデルを利用するクエリ変異形生成が、生成モデルへの追加の入力特徴の適用に基づいて、ユーザおよび/または現コンテキストに対してパーソナライズされ得る。
【００１５】
いくつかの実施形態では、生成モデルが、クエリの変異形を生成するのに利用され得、広告または他のコンテンツが、そのようなコンテンツが変異形のうちの1つまたは複数に割り当てられることに基づいて、クエリを生成したクライアントデバイスに提供される。それらの実施形態のうちのいくつかでは、生成モデルによって生成された変異形が、本明細書において説明されるような技法を利用して、クライアントデバイスおよび/またはクライアントデバイスのユーザに合わせられ得る。たとえば、生成モデルが、ユーザの属性に基づいて選択され得、かつ/またはユーザに関連する属性が、生成モデルに対する入力として提供され、変異形を生成する際に利用され得る。
【００１６】
いくつかの実施形態では、生成モデルが、複数の時間ステップのそれぞれにおいて元のクエリの変異形(および/または変異形のトークン)を生成するのに利用される。それらの実施形態のうちのいくつかでは、所与の時間ステップにおいて、変異形が生成されるかどうか、および/またはどの変異形が生成されるかは、現状態特徴に基づき得る。現状態特徴は、たとえば、元のクエリに対する検索システム応答、前の時間ステップにおいて生成された元のクエリの変異形に対する検索システム応答、前の時間ステップにおいて生成された元のクエリの変異形、元のクエリの変異形(たとえば、ユーザに対するプロンプトとして提供される明確化変異形)に対するユーザ応答、および/または元のクエリに基づく特徴を含み得る。このようにして、セッション中のクエリの前に生成された変異形、以前に生成された変異形に対する応答、および/または元のクエリに基づいて、セッション中のクエリについての変異形生成に動的に影響を及ぼし得る。たとえば、いくつかの実施形態では、そのような現状態特徴のうちの1つまたは複数が、別の変異形が生成されるべきかどうか、または代替として、別の変異形の生成なしに、元のクエリに応答して前の変異形(および/または元のクエリ)に対する応答がその代わりに提供されるべきかどうかを決定するのに利用され得る。さらに、たとえば、いくつかの追加または代替の実施形態では、そのような現状態特徴のうちの1つまたは複数が、時間ステップでの変異形生成に影響を及ぼすように、生成モデルに対する入力として(直接的または間接的に)適用され得る。たとえば、現状態特徴のベクトル概要が、生成された変異形に影響を及ぼすように、生成モデルに対する入力として生成され、適用され得る。
【００１７】
いくつかの実施形態では、トレーニング済み制御モデルが、複数の時間ステップのそれぞれにおいて、変異形が生成されるべきかどうか、および/または時間ステップでの変異形生成に影響を及ぼすように生成モデルに対する入力として提供される特徴を決定するのに利用される。たとえば、トレーニング済み制御モデルは、フィードフォワードニューラルネットワークモデルまたは再帰型ニューラルネットワーク(RNN)モデルであり得る。現状態特徴は、トレーニング済み制御モデルに対する入力として適用され、モデルにわたって、別の変異形が生成されるべきかどうかを示す値、および/または変異形生成に影響を及ぼすように生成モデルに提供されるべき特徴(たとえば、現状態特徴のベクトル概要および/またはリワード信号)(別の変異形が生成されるべき場合)が生成され得る。このようにして、俳優-批評家環境内で、制御モデルは「批評家」として働き得、生成モデルは「俳優」として働き得る。したがって、トレーニング済み制御モデルは、観測された現状態特徴に基づいて、別の変異形が生成されるべきかどうか、および/またはそのような生成に影響を及ぼすための特徴を決定するのに利用され得る。このようにして、トレーニング済み制御モデルは、所与のクエリについて生成される追加の変異形の量を制御し得る。制御モデルは、たとえば、所与のクエリについて前の反復において生成された変異形および/またはそのような変異形に対する応答に基づいて、所与のクエリについて変異形生成の反復量を動的に決定するので、そのような制御により、生成される変異形の量がクエリごとに異なるものとなり得る。そのような動的制御により、しばしば、比較的大きい(たとえば、5超、10超、または15超)量の変異形が生成され、かつ/またはそのような変異形に対する比較的大きい量の応答が考慮され得ることを理解されたい。
【００１８】
いくつかの実施形態では、制御モデルおよび/または生成モデルは、強化学習に基づいて少なくとも部分的にトレーニングされ得る。それらの実施形態のうちのいくつかでは、制御モデルと生成モデルは別々にトレーニングされるが、互いに組み合わせてトレーニングされる。強化学習に基づいて制御モデルおよび/または生成モデルをトレーニングする際に、生成された変異形が検索システムにサブミットされ得、検索システムからの応答(および任意選択で応答の欠如)がリワードを示し得る。たとえば、「回答」応答である、クエリ変異形に対する応答について、(たとえば、「回答」応答についての、検索システムによって提供される応答スコアによって示される)回答応答の品質に比例する(もしくは、そうでなければ関連した)リワードが割り当てられ得る。それらの例のうちのいくつかでは、クエリ変異形に応答して応答が提供されない場合、かつ/または応答が(たとえば、検索システムからの出力に基づいて)「回答」応答ではないと見なされるとき、リワードは割り振られない。言い換えれば、最後の「回答」応答だけがリワードされ、(たとえば、モンテカルロQ学習手法で)そのようなリワードに基づいて中間アクションが更新される。このようにして、Q関数学習、または他の強化関数学習が、強化学習中に対話される検索システムによって提供される応答に対して調節されるリワードに基づいて行われ得る。本明細書において説明される強化学習の実施形態では、所与の時間ステップでの状態が、(たとえば、前述のような)状態特徴のうちの1つまたは複数によって示され、アクションはクエリ変異形であり(すなわち、別のクエリ変異形を生成し)、または「回答」応答を提供し得る。アクションスペースの各アクションが、対応する質問または「回答」応答を定義する文字列と対にされ得る。
【００１９】
いくつかの実施形態では、クライアントデバイスを介してユーザのユーザインターフェース入力に基づいて生成される元のクエリを受け取ることを含む、1つまたは複数のプロセッサによって実施される方法が提供される。方法は、トレーニング済み生成モデルに対する入力として、元のクエリのトークンと、ユーザに関連する1つまたは複数の属性とを適用することをさらに含む。トレーニング済み生成モデルは、1つまたは複数の記憶層を有するシーケンスツーシーケンスディープニューラルネットワークモデルである。方法は、トレーニング済み生成モデルに対するトークンおよび1つまたは複数の属性の適用に基づいて、元のクエリの少なくとも1つの変異形を生成することをさらに含む。方法は、少なくとも1つの変異形と、少なくとも1つの変異形に対する少なくとも1つの検索システム応答との少なくとも1つに基づいて出力を生成することをさらに含む。方法は、元のクエリに応答して、クライアントデバイスを介した提示のために出力を提供することをさらに含む。
【００２０】
いくつかの実施形態では、元のクエリを受け取ること、トレーニング済み生成モデルに対する入力として元のクエリのトークンを適用すること、およびトレーニング済み生成モデルに対する元のクエリのトークンの適用に基づいて、元のクエリの複数の変異形を生成することを含む、1つまたは複数のプロセッサによって実施される方法が提供される。元のクエリは、クライアントデバイスを介したユーザのユーザインターフェース入力に基づいて生成され得る。生成された変異形のそれぞれは元のクエリとは異なり、変異形を生成することは、トレーニング済み生成モデルの学習されたパラメータに基づいて変異形を生み出すことを含む。トレーニング済み生成モデルは、複数のタイプのクエリ変異形の生成を可能にするようにトレーニングされ、生成された変異形は、複数のタイプのクエリ変異形のうちの第1のタイプである第1の変異形と、複数のタイプのクエリ変異形のうちの第2のタイプである第2の変異形とを含む。方法は、複数の変異形のうちの少なくとも1つおよび/または複数の変異形のうちの少なくとも1つに対する少なくとも1つの検索システム応答に基づいて出力を生成すること、ならびに元のクエリに応答して、クライアントデバイスを介した提示のために出力を提供することをさらに含む。
【００２１】
いくつかの実施形態では、クライアントデバイスを介したユーザのユーザインターフェース入力に基づいて生成される元のクエリを受け取ることを含む、1つまたは複数のプロセッサによって実施される方法が提供される。方法は、トレーニング済み生成モデルがユーザと共通の1つまたは複数の属性を有するユーザのグループの過去のクエリサブミットに基づいてトレーニングされることに基づいて、複数のトレーニング済み生成モデルから、トレーニング済み生成モデルを選択することをさらに含む。方法は、選択されたトレーニング済み生成モデルに対する入力として元のクエリのトークンを適用すること、トレーニング済み生成モデルに対する元のクエリのトークンの適用に基づいて、元のクエリの少なくとも1つの変異形を生成すること、ならびに少なくとも1つの変異形および/または少なくとも1つの変異形に対する少なくとも1つの検索システム応答に基づいて出力を生成することをさらに含む。方法は、元のクエリに応答して、クライアントデバイスを介した提示のために出力を提供することをさらに含む。
【００２２】
いくつかの実施形態では、元のクエリを受け取ること、トレーニング済み生成モデルに対する入力として元のクエリのトークンを適用すること、および入力に基づいて、トレーニング済み生成モデルを介して元のクエリの変異形を生成することを含む、1つまたは複数のプロセッサによって実施される方法が提供される。元のクエリは、クライアントデバイスを介したユーザのユーザインターフェース入力に基づいて生成され得る。トレーニング済み生成モデルを介して生成された変異形は元のクエリとは異なり、クエリの変異形を生成することは、トレーニング済み生成モデルの学習されたパラメータに基づいて変異形を生み出すことを含む。方法は、検索システムへのクエリの変異形のサブミットに基づいて、クエリの変異形についての変異形応答を決定すること、トレーニング済み生成モデルに追加の入力を適用すること、および追加の入力に基づいて、トレーニング済み生成モデルを介して元のクエリの追加の変異形を生成することをさらに含む。トレーニング済み生成モデルに適用された追加の入力は、元のクエリのトークンと、元のクエリの変異形の変異形トークンとの少なくとも1つを含む。生成された追加の変異形は、変異形および元のクエリとは異なり、元のクエリの追加の変異形を生成することは、トレーニング済み生成モデルの学習されたパラメータに基づいて追加の変異形を生み出すことを含む。方法は、検索システムへの元のクエリの追加の変異形のサブミットに基づいて、元のクエリの追加の変異形についての追加の変異形応答を決定することをさらに含む。方法は、変異形応答および/または追加の変異形応答に基づいて出力を生成すること、および元のクエリに応答して、クライアントデバイスを介した提示のために出力を提供することをさらに含む。
【００２３】
いくつかの実施形態では、クライアントデバイスを介したユーザのユーザインターフェース入力に基づいて生成された元のクエリを受け取ることを含む、1つまたは複数のプロセッサによって実施される方法が提供される。方法は、ユーザについての予測されるタスクを決定すること、およびトレーニング済み生成モデルに対する入力として、元のクエリのトークンと、ユーザについての予測されるタスクの1つまたは複数のタスク属性とを適用することをさらに含む。方法は、トレーニング済み生成モデルに対するトークンおよび1つまたは複数のタスク属性の適用に基づいて、元のクエリの少なくとも1つの変異形を生成することをさらに含む。方法は、少なくとも1つの変異形および/または少なくとも1つの変異形に対する少なくとも1つの検索システム応答に基づいて出力を生成すること、ならびに元のクエリに応答して、クライアントデバイスを介した提示のために出力を提供することをさらに含む。
【００２４】
いくつかの実施形態では、クライアントデバイスを介したユーザのユーザインターフェース入力に基づいて生成された元のクエリを受け取ることを含む、1つまたは複数のプロセッサによって実施される方法が提供される。方法は、ユーザについての予測されるタスクを決定することをさらに含む。方法は、トレーニング済み生成モデルが予測されるタスクに関連する過去のクエリサブミットに基づいてトレーニングされることに基づいて、複数のトレーニング済み生成モデルから、トレーニング済み生成モデルを選択することをさらに含む。方法は、選択されたトレーニング済み生成モデルに対する入力として元のクエリのトークンを適用すること、トレーニング済み生成モデルに対する元のクエリのトークンの適用に基づいて、元のクエリの少なくとも1つの変異形を生成すること、ならびに少なくとも1つの変異形および/または少なくとも1つの変異形に対する少なくとも1つの検索システム応答に基づいて出力を生成することをさらに含む。方法は、元のクエリに応答して出力を提供することをさらに含む。
【００２５】
本明細書において開示される様々な実施形態は、本明細書において説明される方法のうちの1つまたは複数などの方法を実施するようにプロセッサ(たとえば、中央演算処理装置(CPU)、グラフィックス処理装置(GPU)、および/またはテンソル処理装置(TPU))によって実行可能な命令を記憶する1つまたは複数の非一時的コンピュータ可読記憶媒体を含み得る。さらに別の様々な実施形態は、本明細書において説明される方法のうちの1つまたは複数などの方法を実施するように記憶された命令を実行するように動作可能な1つまたは複数のプロセッサを含む1つまたは複数のコンピュータのシステムを含み得る。
【００２６】
前述の概念および本明細書においてより詳細に説明される追加の概念のすべての組合せが、本明細書において開示される主題の一部として企図されていることを理解されたい。たとえば、本開示の終わりに現れる特許請求される主題のすべての組合せが、本明細書において開示される主題の一部として企図されている。
【図面の簡単な説明】
【００２７】
【図１】本明細書において開示した実施形態が実施され得る例示的環境のブロック図である。
【図２】本明細書において開示した実施形態に従って生成モデルをトレーニングすることの一例を示す図である。
【図３】クエリの1つまたは複数の変異形を生成するのに生成モデルを利用することの一例を示す図である。
【図４】制御モデルが変異形の生成を制御するのに利用される、クエリの1つまたは複数の変異形を生成するのに生成モデルを利用することの別の例を示す図である。
【図５】本明細書において開示した実施形態に従って生成モデルをトレーニングする方法を示すフローチャートである。
【図６】クエリの1つまたは複数の変異形を生成するのに生成モデルを利用する方法を示すフローチャートである。
【図７】制御モデルが変異形の生成を制御するのに利用される、クエリの1つまたは複数の変異形を生成するのに生成モデルを利用する方法を示すフローチャートである。
【図８Ａ】本明細書において開示した実施形態に従って生成された変異形に基づく出力を提供するための例示的グラフィカルユーザインターフェースを示す図である。
【図８Ｂ】本明細書において開示した実施形態に従って生成された変異形に基づく出力を提供するための例示的グラフィカルユーザインターフェースを示す図である。
【図９】コンピューティングデバイスの例示的アーキテクチャを示す図である。
【発明を実施するための形態】
【００２８】
図1は、本明細書において開示した実施形態が実施され得る例示的環境を示す。図1の例示的環境は、クライアントデバイス106、クエリシステム110、検索システム140、生成モデルトレーニングエンジン120、およびトレーニングインスタンスエンジン122を含む。そのようなシステムおよびエンジンはそれぞれ、たとえば通信ネットワークを通じて通信する、1つまたは複数のコンピューティングデバイス内で実施され得る。通信ネットワークは、インターネットなどの広域ネットワーク(WAN)、1つまたは複数のイントラネット、ならびに/あるいは1つまたは複数のバスサブシステムを含み得る。任意選択で、通信ネットワークは、1つまたは複数の標準通信技術、プロトコル、および/またはプロセス間通信技法を利用し得る。
【００２９】
クエリシステム110、検索システム140、生成モデルトレーニングエンジン120、およびトレーニングインスタンスエンジン122は、本明細書において説明される技法がその中で実施され得、かつ/または本明細書において説明されるシステム、構成要素、技法がそれとインターフェースし得る例示的な構成要素である。図1のシステム110、140、およびエンジン120、122のうちの1つまたは複数によって実施される動作はそれぞれ、複数のコンピュータシステムにわたって分散され得る。いくつかの実施形態では、システム110、140、およびエンジン120、122のうちの1つまたは複数の態様が単一のシステムとして組み合わされ得、かつ/あるいは1つまたは複数の態様がクライアントデバイス106上で実施され得る。たとえば、それらの実施形態のうちのいくつかでは、クエリシステム110の態様が検索システム140の態様と組み合わされ得る。
【００３０】
クライアントデバイス106のユーザは、クライアントデバイス106の1つまたは複数のユーザインターフェース入力デバイスを介してユーザインターフェース入力を提供することによって、クライアントデバイス106を介してクエリを策定し得る。クライアントデバイス106はクエリシステム110にクエリをサブミットする。いくつかの状況では、クエリはテキスト形式である。他の状況では、クエリは音声および/または他の形式でサブミットされ、クエリシステム110(または他の構成要素)によってテキスト形式に変換され得る。
【００３１】
受け取ったクエリについて、クエリシステム110は、受け取ったクエリの1つまたは複数の変異形を生成し、クライアントデバイス106への出力を提供させ、出力は、変異形のうちの1つまたは複数に基づく。いくつかの実施形態では、出力は、ユーザによる考慮のために、提案される代替変異形として提供されるべき変異形のうちの1つまたは複数を含む。いくつかの実施形態では、追加または代替として、出力は、検索システム140からの1つまたは複数の応答に基づくコンテンツを含み、応答は、検索システム140への変異形のうちの1つまたは複数のサブミットに基づく。検索システム140は、1つまたは複数のリソース166のアクセスに基づいて応答を決定し得、従来の情報検索技法などの様々な技法を利用し得る。応答に基づくコンテンツは、たとえば、応答に基づく(たとえば、応答と同一の)グラフィカルおよび/または可聴「回答」または他の検索結果であり得る。応答に基づくコンテンツが提供される場合、クエリシステム110は、クライアントデバイス106にコンテンツを直接的に提供し得、または検索システム140に、クライアントデバイス106にコンテンツを提供させ得る。いくつかの実施形態では、任意選択で、クエリシステム110および検索システム140は、同一のパーティによって制御され、かつ/または互いに協働して働き得る。1つまたは複数のデータベース内の生成された変異形に割り当てられる広告などの、追加および/または代替の出力が、生成された変異形に基づいて提供され得る。
【００３２】
図1では、クエリシステム110は、変異形エンジン112およびコントローラエンジン114を含む。いくつかの実施形態では、変異形エンジン112およびコントローラエンジン114の1つまたは複数の態様が、クライアントデバイス106などの、クエリシステム110とは別々の構成要素として組み合わされ、かつ/または実施され得る。いくつかの実施形態では、コントローラエンジン114が省略され得る。
【００３３】
変異形エンジン112は、サブミットされたクエリについての1つまたは複数のクエリ変異形を生成するのに、1つまたは複数のトレーニング済み生成モデル152を利用する。いくつかの実施形態では、変異形エンジン112は、トレーニング済み生成モデル152を介して動作する1つまたは複数のCPU、GPU、および/またはTPUを含む。変異形エンジン112は、生成モデル152のうちの1つに対する入力としてクエリのトークンを適用すること、および入力に基づいて、生成モデルを介して変異形を生成することによって、サブミットされたクエリについての変異形を生成する。多くの実施形態では、変異形を生成する際に、変異形エンジン112は、生成モデルに対する入力として追加の入力特徴をさらに適用し、追加の入力特徴に基づいて変異形を生成する。
【００３４】
いくつかの実施形態では、追加の入力特徴は、クエリをサブミットしたユーザに関連する属性、時間的属性、および/または他の特徴を含み得る。たとえば、元のクエリについての変異形を生成する際に、変異形エンジン112は、生成モデル152のうちの1つに対する入力として、元のクエリのトークン、クエリをサブミットしたユーザの属性(たとえば、ユーザの位置、ユーザが携わるタスク)、および時間的属性(たとえば、現在の曜日、現在時刻)を適用して、適用した入力に基づいて、生成モデルを介して変異形を生成し得る。
【００３５】
いくつかの実施形態では、追加または代替として、元のクエリについての変異形を生成することの所与の反復において適用された追加の入力特徴が、前の反復において生成された元のクエリの変異形に基づく特徴、および/またはそのような変異形に対する検索システム応答に基づく特徴を含む。たとえば、元のクエリについての変異形を生成する際に、変異形エンジン112は、複数の時間ステップのそれぞれにおいて変異形を生成し得る。所与の時間ステップにおいて、変異形エンジン112は、生成モデル152のうちの1つに対する入力として、元のクエリに対する検索システム応答、前の時間ステップにおいて生成された元のクエリの変異形に対する検索システム応答、前の時間ステップにおいて生成された元のクエリの変異形、および/または元のクエリに基づく特徴を適用し得る。このようにして、所与の時間ステップの変異形生成が、以前に生成された変異形、以前に生成された変異形に対する応答、および/または元のクエリの影響を受け得る。
【００３６】
いくつかの実施形態では、追加または代替として、元のクエリについての変異形を生成する所与の反復において適用された追加の入力特徴がタイプ値を含む。たとえば、いくつかの実施形態では、生成モデル152のうちの1つは、複数のタイプのクエリ変異形のうちのいずれか1つの生成を可能にするようにトレーニングされるという点で、「マルチタスク」モデルであり得る。それらの実施形態のうちのいくつかでは、変異形エンジン112は、生成モデル152のうちの1つに対する入力として、生成されるべきクエリ変異形のタイプを示すタイプ値を適用し得る。クエリ変異形のタイプには、たとえば、同義クエリ、補足クエリ、汎化クエリ、正規化クエリ、言語翻訳クエリ、および/または含意クエリが含まれ得る。いくつかの実施形態では、変異形エンジン112は、変異形を生成する複数の反復のそれぞれにおいて異なるタイプ値を選択し、それによって、同一の生成モデルを利用して異なるタイプの複数の変異形を生成する。
【００３７】
いくつかの実施形態では、複数の生成モデル152が変異形エンジン112にとってアクセス可能であり、変異形エンジン112は、1つまたは複数のパラメータに基づいて、サブミットされたクエリについての変異形を生成するための複数の生成モデル152のうちの1つまたは複数のサブセットを選択する。たとえば、複数の生成モデル152が提供され得、生成モデルのそれぞれが、ユーザの固有グループの過去のクエリサブミットに基づくトレーニングデータに基づいてトレーニングされる。たとえば、第1の生成モデルが、属性AおよびBを有するユーザの過去のクエリサブミットに基づくトレーニングデータに基づいて生成され得る。第2の生成モデルが、属性BおよびCを有するユーザの過去のクエリサブミットに基づくトレーニングデータに基づいて生成され得る。(属性Aではなく)属性BおよびCを有するユーザのサブミットされたクエリについて、変異形エンジン112は、そのクエリについての変異形を生成する際に(第1の生成モデルをも選択することなく)第2の生成モデルを選択し得る。ユーザ属性BおよびCは、第2の生成モデルをトレーニングする際に利用されるものと合致するからである。
【００３８】
図1には、生成モデルトレーニングエンジン120およびトレーニングインスタンスエンジン122も示されている。トレーニングインスタンスエンジン122は、トレーニングインスタンスを生成し、トレーニングインスタンスデータベース164内にトレーニングインスタンスを記憶する。たとえば、トレーニングインスタンスエンジン122は、ユーザの大集団の過去のクエリサブミットを記憶する、サブミットされたクエリデータベース162に基づいて、複数のトレーニングインスタンスを生成し得る。生成モデルトレーニングエンジン120は、データベース164の記憶されたトレーニングインスタンスに基づいて、生成モデル152をトレーニングする。本明細書において説明されるように、いくつかの実施形態では、任意選択で、生成モデル152のうちの1つまたは複数は、トレーニングインスタンスデータベース164のトレーニングインスタンスに依拠しない強化学習技法を利用してさらにトレーニングされ得る。エンジン120、122、ならびにデータベース162および164の実施形態の追加の説明が、以下の図2に関する説明において与えられる。
【００３９】
コントローラエンジン114は、設けられるとき、変異形エンジン112と協働して働き、変異形エンジン112が変異形を生成するかどうかを制御し、かつ/または変異形生成に影響を及ぼすパラメータを生成し、変異形エンジン112に提供する。任意選択で、コントローラエンジン114は、変異形エンジン112が変異形を生成するかどうかを制御する際に、かつ/または変異形生成に影響を及ぼすパラメータを生成する際に、1つまたは複数のトレーニング済み制御モデル154を利用する。いくつかの実施形態では、変異形エンジン112は、トレーニング済み制御モデル154を介して動作する1つまたは複数のCPU、GPU、および/またはTPUを含む。
【００４０】
いくつかの実施形態では、コントローラエンジン114は、サブミットされたクエリについて、何らかの変異形がサブミットされたクエリについて変異形エンジン112によって生成されるべきであるかどうかを決定する。たとえば、コントローラエンジン114は、サブミットされたクエリ自体に基づいて、かつ/またはサブミットされたクエリについて検索システム140からの応答(それが存在する場合)に基づいてそのような決定を行い得る。たとえば、コントローラエンジン114は、回答応答が検索システム140によって返されない場合、または何らかの返された回答応答が不十分な品質である(たとえば、しきい値を満たすことができない検索システム提供のスコアを有する)場合にのみ、変異形を生成することを決定し得る。それらの実施形態のうちのいくつかでは、コントローラエンジン114は、サブミットされたクエリのトークンおよび/またはサブミットされたクエリに対する応答の特徴を、制御モデル154のうちの1つに適用し、変異形が生成されるべきであるかどうかを示す制御モデル154を介して出力を生成する。いくつかの追加または代替の実施形態では、コントローラエンジン114は、サブミットされたクエリのトークンおよび/または制御モデル154のうちの1つに対する応答の特徴を適用し、変異形を生成する際に生成モデルに対する入力として適用するために変異形エンジン112に提供される制御モデル154を介して出力を生成する(それによって、変異形生成に影響を及ぼす)。
【００４１】
本明細書において説明されるように、いくつかの実施形態では、変異形エンジン112は、複数の時間ステップのそれぞれにおいて、サブミットされたクエリの変異形を生成する。それらの実施形態のうちのいくつかでは、コントローラエンジン114は、変異形生成がいつ停止すべきかを決定する。言い換えれば、変異形エンジン112が所与の時間ステップにおいて変異形を生成するかどうかは、コントローラエンジン114からの許可を条件とする。さらに、コントローラエンジン114は、各時間ステップについて、時間ステップでの変異形生成に影響を及ぼす特徴を提供し得る。変異形生成が停止すべきかどうかを決定する際に、かつ/または変異形生成に影響を及ぼす特徴を生成する際に、コントローラエンジン114は、1つまたは複数の制御モデル154のうちの少なくとも1つを利用し得る。
【００４２】
一例として、コントローラエンジン114は、制御モデル154のうちの1つに対する入力として、元のクエリに対する検索システム応答、前の時間ステップにおいて変異形エンジン112によって生成された元のクエリの変異形に対する検索システム応答、前の時間ステップにおいて変異形エンジンによって生成された元のクエリの変異形、および/または元のクエリに基づく特徴を適用し得る。コントローラエンジン114は、適用された入力に基づいて、制御モデルを介して出力を生成し、出力を利用して、別の変異形を生成し、またはその代わりに変異形生成を停止するように変異形エンジン112に指示するかどうかを決定し得る。変異形生成が停止されるとき、コントローラエンジン114は、その代わりに、サブミットされたクエリに応答して、以前に生成された変異形および/または以前に生成された変異形に対する応答を出力として提供し得る。このようにして、俳優-批評家環境内で、コントローラエンジン114は「批評家」として働き得、変異形エンジン112は「俳優」として働き得る。コントローラエンジン114、制御モデル154のうちの1つ、および/またはコントローラエンジン114の変異形エンジン112との対話の実施形態の追加の説明が、以下で図4に関して説明される。
【００４３】
図2を参照すると、生成モデル152の生成モデル152Aをトレーニングする一例が示されている。トレーニングインスタンス164Aが、トレーニングインスタンスデータベース164から取り出される。トレーニングインスタンス164Aは、トレーニングインスタンスエンジン122(図1)によって、たとえばユーザによって以前にサブミットされ、サブミットされたクエリデータベース162(図1)内に記憶された1対のクエリに基づいて生成され得る。一例として、クエリの対は、「ロジャームーアはダンディ2華麗な冒険においてアストンマーチンを運転したか(did roger moore drive an aston martin in the persuaders)」という前の時間のユーザのクエリと、(前の時間のクエリに対して同義タイプである)「ロジャームーアはダンディ2華麗な冒険においてどのような車を運転したか(what car did roger moore drive in the persuaders)」という後の時間の(たとえば、前の時間のクエリの直後の)ユーザのクエリとを含み得る。別の例として、クエリの対は、「レオナルドダビンチがモナリザを描いたか(did leonardo da vinci paint mona lisa)」という前の時間のユーザのクエリと、(前の時間のクエリに対する補足タイプである)「誰がレオナルドダビンチにモナリザを描くように依頼したか(who commissioned leonardo da vinci to paint the mona lisa)」という後の時間のユーザのクエリとを含み得る。
【００４４】
トレーニングインスタンス164Aは、クエリ(たとえば、対のうちの前の時間のサブミットされたクエリ)、属性、およびタイプを含むトレーニングインスタンス入力を含む。属性は、たとえば、クエリをサブミットしたユーザの属性、クエリの時間的属性(たとえば、サブミットの曜日)、クエリに対する検索システム応答の特徴などを含み得る。タイプは、トレーニングインスタンス出力内にどのようなタイプの変異形が含まれるかを示すタイプ値であり得る。いくつかの実施形態では、タイプは人間のラベリングによって割り当てられ得、またはトレーニングインスタンス164Aを生成するのに利用されるクエリ対の特徴に基づいて(たとえば、クエリ対のクエリのサブミットの時間的分離の大きさ、クエリ対のクエリについての検索システム応答の比較に基づいて)トレーニングインスタンスエンジン122によって推論され得る。トレーニングインスタンス164Aはまた、変異形(たとえば、対のうちの後の時間にサブミットされたもの)を含むトレーニングインスタンス出力をも含む。
【００４５】
生成モデルトレーニングエンジン120は、トレーニングインスタンスのトレーニングインスタンス入力を生成モデル152Aに対する入力として適用する。生成モデルトレーニングエンジン120は、適用された入力と、生成モデル152Aの現在学習されたパラメータとに基づいて、生成モデル152Aを介して出力をさらに生成する。生成モデルトレーニングエンジン120は、トレーニングインスタンス164Aのトレーニングインスタンス出力に対する生成された出力の比較に基づく勾配をさらに生成し、勾配に基づいて生成モデル152Aを更新する(たとえば、生成モデル152A全体を介して勾配を逆伝播する)。
【００４６】
適用された入力に基づいて出力を生成する際に、生成モデルトレーニングエンジン120は、入力のすべてまたは部分を生成モデル152Aのエンコーダ層153Aに適用し、エンコーダ層153A介して符号化を生成する。たとえば、入力の元のクエリのトークンがエンコーダ層153Aに適用され得る。エンジン120は、生成モデル152Aのデコーダ層154Aに符号化をさらに適用し、デコーダ層154Aを介して符号化の復号化を生成し得る。次いで、エンジン120は、生成された符号化をソフトマックス層155Aに適用し、生成された符号化の適用に基づいて、ソフトマックス層155Aを介して出力を生成する。いくつかの実施形態では、エンジン120は、入力の属性および/またはタイプを他の層に適用し、かつ/または「サイド入力」としてエンコーダ層153A、デコーダ層154A、および/またはソフトマックス層155Aのうちの1つに適用する。それらの実施形態のうちのいくつかでは、エンジン120は、デコーダ層154Aの上流側ではなく、エンコーダ層153Aの下流側の他の層に属性および/またはタイプを適用する。
【００４７】
図2は単一のトレーニングインスタンス164Aだけを示すが、多くの追加のトレーニングインスタンスがトレーニング生成モデル152Aにおいて利用されることを理解されたい。いくつかの実施形態では、単一のトレーニングインスタンス164Aおよび追加のトレーニングインスタンスが選択され、それによって、生成モデル152Aがいくつかの属性に特に適合されるようにトレーニングされることに留意されたい。たとえば、生成モデル152Aは、いくつかの属性を有するユーザの過去のサブミットに基づいて生成されるトレーニングインスタンスのみを選択する(またはトレーニングインスタンスに偏らせる)ことによってトレーニングされ得る。たとえば、トレーニングインスタンスのトレーニングインスタンス入力内に明示的に含まれるユーザの属性が、そのような選択において利用され得る。さらに、たとえば、生成モデル152Aは、いくつかのタスク属性に関連するトレーニングインスタンスのみを選択する(またはトレーニングインスタンスに偏らせる)ことによってトレーニングされ得る。たとえば、選択は、携わる(または携わるべき)いくつかのタスクに関連してサブミットされたクエリに偏り得る。いくつかの実施形態では、生成モデル152Aは、トレーニングインスタンス入力内に複数の異なる「タイプ」を含むトレーニングインスタンスを利用してトレーニングされることにも留意されたい。本明細書において説明されるように、これにより、複数の異なるタイプの変異形を生成し得、実行時に、対応するタイプ値を入力として適用することによって特定のタイプに偏り得るマルチタスクモデルの生成が可能となる。
【００４８】
図3は、クエリの1つまたは複数の変異形を生成するのに生成モデルを利用することの一例を示す。図3では、元のクエリおよびユーザの属性が、クライアントデバイス106から変異形エンジン112に送信される。いくつかの他の実施形態では、属性のうちの1つまたは複数(たとえば、すべて)が、クライアントデバイス106によってクエリと共に送信されないことがあり、さらにはクライアントデバイス106によって全く送信されないことがある。たとえば、ユーザの属性が、クライアントデバイスからリモートに記憶され得る。たとえば、属性がリモートに記憶され、(たとえば、他のクライアントデバイスを介した)ユーザの過去の対話に基づき、変異形エンジン112によってリモートストレージからアクセスされ得る。
【００４９】
変異形エンジン112は、生成モデル152のうちの少なくとも1つを利用して、元のクエリの1つまたは複数の変異形を生成する。変異形を生成する際に、変異形エンジン112は、生成モデル152のうちの1つを選択する際に属性を利用し得、かつ/または生成モデルのうちの1つに対する入力として属性のうちの1つまたは複数を適用し得る。変異形エンジン112は、生成モデルおよび/または他の特徴(たとえば、複数の変異形が反復的に生成される場合の、過去に生成された変異形)に元のクエリのトークンをさらに適用し得る。
【００５０】
いくつかの実施形態では、変異形エンジン112は、元のクエリに基づいて提供されるべき出力として変異形をクライアントデバイス106に送信する。いくつかの実施形態では、追加または代替として、変異形エンジン112は、検索システム140に変異形のうちの1つまたは複数を提供し、検索システム140は、変異形についての1つまたは複数の応答(たとえば、単一の回答検索結果、または複数の検索結果)を決定し、元のクエリに基づいて提供されるべき出力として応答をクライアントデバイスに送信する。
【００５１】
図4は、クエリの1つまたは複数の変異形を生成するのに生成モデルを利用することの別の例を示す。具体的には、図4は、制御モデルが変異形の生成を制御するのに利用される一例を示す。
【００５２】
図4では、元のクエリおよびユーザの属性が、クライアントデバイス106からコントローラエンジン114に送信される。図3の場合と同じく、いくつかの他の実施形態では、属性のうちの1つまたは複数(たとえば、すべて)が、クライアントデバイス106によってクエリと共に送信されないことがあり、さらにはクライアントデバイス106によって全く送信されないことがある。
【００５３】
いくつかの実施形態では、コントローラエンジン114は、1つまたは複数の制御モデル154を利用して、元のクエリの変異形を生成するかどうかを決定する。たとえば、コントローラエンジン114は、元のクエリのトークン、元のクエリに対する検索システム応答、および/またはユーザの属性を制御モデル154のうちの1つに適用して、変異形を生成するかどうかを決定し得る。いくつかの他の実施形態では、コントローラエンジン114は、デフォルトで、少なくとも1つの変異形または元のクエリが生成されるべきであると決定し得る。
【００５４】
コントローラエンジン114は、1つまたは複数の制御モデル154を介した出力に基づいて決定されたリワード信号を変異形エンジン112に提供し、現状態も提供する。現状態は、たとえば、元のクエリ、ユーザの属性、および/または一方もしくは両方に基づく特徴ベクトルを含み得、特徴ベクトルも、1つまたは複数の制御モデル154を介した出力に基づく。
【００５５】
変異形エンジンは、元のクエリの1つまたは複数の変異形を生成するのに、生成モデル152のうちの少なくとも1つを利用し得る。変異形を生成する際に、変異形エンジン112は、提供された状態、および任意選択でリワード信号を利用し得る。たとえば、変異形エンジン112は、学習されたリワード関数にリワード信号を適用して、クエリ変異形を生成する際のリワードを決定し得る。変異形エンジン112は、検索システム140に変異形を提供する。それに応答して、検索システム140は、1つまたは複数の応答を生成し、コントローラエンジン114に応答を提供する。
【００５６】
コントローラエンジン114は、今までのところ生成された変異形および/またはそれらの対応する応答を利用して、別の変異形が変異形エンジン112によって生成されるべきかどうかを判定する。たとえば、コントローラエンジン114は、今までのところ生成された変異形のトークンおよび/または対応する応答の特徴を、制御モデル154のうちの1つに対する入力として適用し、入力に基づいて制御モデルを介して出力を生成し、出力を利用して、別の変異形が生成されるべきかどうかを決定し得る。いくつかの実施形態では、コントローラエンジン114は、入力の一部として、元のクエリのトークン、元のクエリに対する検索システム応答、および/またはユーザの属性を入力の一部としてさらに適用する。
【００５７】
別の変異形が生成されるべきであるとコントローラエンジン114が決定する場合、コントローラエンジン114は、更新されたリワード信号および更新された現状態(たとえば、今までのところ生成された変異形および/または対応する変異形応答に基づいて更新される)を提供し得る。次いで、変異形エンジン112は、1つまたは複数の別の変異形を生成し、検索システム140に変異形を提供し得、対応する応答が再び提供される。次いで、コントローラエンジン114は、別の変異形および対応する応答に基づいて、別の変異形が生成されるべきかどうかを再び決定し得る。
【００５８】
所与の反復において、別の変異形が生成されるべきでないとコントローラエンジン114が決定する場合、コントローラエンジン114は、1つまたは複数の検索システム応答および/または1つまたは複数の生成された変異形を、元のクエリに基づいて提供されるべき出力としてクライアントデバイス106に送信する。たとえば、コントローラエンジン114は、すべての提供された応答を記憶し、応答のうちのただ1つを応答出力(たとえば、最高品質応答、または他の応答によっても確認された最高品質応答)として提供し得る。別の例として、コントローラエンジン114は、応答のうちの複数(たとえば、N個の最良の応答、応答の多様なセット)を提供し得る。
【００５９】
いくつかの実施形態では、制御モデル154、生成モデル152、コントローラエンジン114、および/または変異形エンジン112が、強化学習を利用してトレーニングされ得る。それらの実施形態のうちのいくつかでは、制御モデル154および/または生成モデル152が、当初は他の技法を利用してトレーニングされ、強化学習を通じて改良され得る。たとえば、生成モデル152は、当初は図2に関して説明されたようにトレーニングされ、強化学習を通じてさらにトレーニングされ得る。
【００６０】
それらの実施形態のうちのいくつかでは、俳優-批評家アルゴリズム内で、俳優コントローラエンジン114および制御モデル154は「批評家」と見なされ、変異形エンジン112および生成モデル152は「俳優」と見なされ得る。一般に、俳優は変異形を生成し、環境を変異形でプローブする。環境は、たとえば検索システム140であり得る。一般に、批評家は、環境から来る証拠(たとえば、回答文字列などの応答、またはそのランク付けされたリスト)を累積して、グローバルアクション/判断dを生成し、グローバル状態sを維持し、俳優にリワード信号rおよびコンテキストcを提供する。
【００６１】
俳優および批評家の挙動は、2つの異なる時間スケールでの強化によって駆動され得る。俳優は、より細かい時間スケール(t'で索引付けされる)で動作し得る。各ステップにおいて、俳優は、コンテキストを条件として、次の変異形を生成する。批評家は、環境からの証拠をグローバル状態s内に累積する。いくつかの状況では、状態は、少なくとも元のクエリ、生成された変異形、および観測(たとえば、生成された変異形に対する検索システム応答)、ならびにネットワークに供給するのに使用されるベクトル概要hを含む(s=({qt,ot}1..T,ht))。グローバル状態を仮定すると、批評家は、各時間ステップにおいてグローバル判断dを行い、応答を放出し、または変異形生成およびより多くの証拠の蓄積のサイクルを続行する。批評家はまた、俳優にコンテキストを供給して、変異形生成、およびリワード信号を調整する。批評家は、状態-アクション対「Q関数」Q(st,dt)の値を直接モデル化する。Q関数のこの値は、リワード信号として俳優に渡される。Q関数は、応答(たとえば、元のクエリに対する応答)に関して定義されるグローバルリワード、および行われた決定dのシーケンスを使用してトレーニングされる。時間スケールの分離により、変異形生成およびグローバル意思決定という2つのタスクを別々にモデル化するが、エンドツーエンド性能を最適化するように一緒にトレーニングすることが可能となる。
【００６２】
批評家が変異形生成およびより多くの証拠の蓄積のサイクルを続行する代わりに応答を放出するとき、終端状態に達する。俳優についてのアクションスペースが、A:={(a,<w>):a∈{question,answer},<w>∈Strings}と定義され得る。上式で、aは変異形で環境をプローブすること、または応答を放出することであり得る。アクションが、変異形または回答(放出された応答)を定義する文字列<w>と対にされる。いくつかの実施形態では、「変異形で環境をプローブする」アクションはリワードを受け取らず、「応答を放出するアクション」は、回答の品質に比例するリワードを受け取る。批評家は、現状態から予想される戻りE[Gs]にアクション(a,<w>)をマッピングするQ関数を学習し得る。「応答を放出するアクション」だけがリワードされる場合、予想される戻りはE[γκR]と表され、ただし[0,1]は割引きであり、kは最終状態までの反復数であり、Rは最終リワードである。
【００６３】
モンテカルロQ学習手法を利用してQ関数トレーニングが達成され得る。最終状態に達するまで変異形がサンプリングされ得、リワードが決定され、Q関数のすべての中間予測がγκに向かって更新され得る。俳優は変異形を生成し、たとえば、入力として、元のクエリ、最後の変異形、および場合によっては、変異形および応答の履歴を条件とするより多くの特徴を取り、1つまたは複数の別の変異形を返すシーケンスツーシーケンスモデルを含み得る。俳優は、モンテカルロポリシー勾配手法と共にトレーニングされ得る。環境から受け取られる応答セットは、これまでに見られた回答のメモリとして働く。応答セットは、俳優およびQ関数に特徴を提供し、かつ/または批評家が何らかの中間反復において見られた回答を返すことを可能にするのに使用され得る。
【００６４】
次に図5を参照すると、本明細書において開示される様々な実施形態に従って生成モデルをトレーニングする方法500を示すフローチャートが与えられる。便宜上、流れ図の動作が、動作を実施するシステムを参照しながら説明される。このシステムは、1つまたは複数のプロセッサ(たとえば、CPU、GPU、および/またはTPU)などの1つまたは複数の構成要素を含み得る。方法500の動作が特定の順序で示されているが、これは限定を意味するものではない。1つまたは複数の動作が並べ替えられ、省略され、または追加され得る。
【００６５】
ブロック552において、システムは、トレーニングインスタンスのグループを選択する。たとえば、生成モデルがマルチタスクモデルとなるように方法500においてトレーニングされるとき、システムは、グループが複数のタイプの変異形生成を実演するトレーニングインスタンスを含むようにグループを選択し得る。さらに、たとえば、追加または代替として、生成モデルが特定のグループのユーザに個別化されるようにトレーニングされている場合、システムは、トレーニングインスタンスが、特定のグループに準拠するユーザによるクエリの過去のサブミットに基づくトレーニングインスタンスのみを含み、または著しい量(たとえば、半分超、70%超)のトレーニングインスタンスを含むようにグループを選択し得る。さらに、たとえば、追加または代替として、生成モデルが特定のタスクに個別化されるようにトレーニングされている場合、システムは、トレーニングインスタンスが、特定のタスクに関連するクエリの過去のサブミットに基づくトレーニングインスタンスのみを含み、または著しい量(たとえば、半分超、70%超)のトレーニングインスタンスを含むようにグループを選択し得る。
【００６６】
ブロック554において、システムは、グループのトレーニングインスタンスを選択する。
【００６７】
ブロック556において、システムは、トレーニングインスタンスのトレーニングインスタンス入力を生成モデルに対する入力として適用する。トレーニングインスタンス入力は、たとえば、元のクエリの用語、属性(たとえば、元のクエリをサブミットしたユーザの属性)、および(元のクエリの変異形のタイプを示す)タイプ値を含み得る。
【００６８】
ブロック558において、システムは、適用されたトレーニングインスタンス入力に基づいて、生成モデルを介して変異形を生成する。
【００６９】
ブロック560において、システムは、トレーニングインスタンス出力(すなわち、トレーニングインスタンス出力内で示される変異形)に対する生成された変異形の比較に基づいて、トレーニングインスタンスについての誤りを決定する。
【００７０】
ブロック562において、システムは、誤りに基づいて生成モデルを更新する。たとえば、誤りは、生成モデルを更新するために生成モデルを介して逆伝播される勾配であり得る。
【００７１】
ブロック564において、システムは、グループ内に何らかの追加の未処理のトレーニングインスタンスがあるかどうかを決定する。そうである場合、システムはブロック554に進み、追加のトレーニングインスタンスを選択する。次いで、システムは、追加のトレーニングインスタンスに基づいてブロック556、558、560、および562を実施する。
【００７２】
ブロック564の反復において、グループ内の何らかの追加の未処理のトレーニングインスタンスがない(または他のトレーニング基準が満たされた)とシステムが判定する場合、システムはブロック566に進み、トレーニングは終了する。
【００７３】
図5は特定の非バッチトレーニング手法を示すが、追加または代替として、バッチトレーニング(たとえば、トレーニングインスタンスのバッチに基づいて誤りが決定され、逆伝播される場合)がトレーニングにおいて利用され得ることを理解されたい。さらに、様々な実施形態では、方法500に基づいてトレーニング済み生成モデルが、本明細書において開示される技法に従ってさらにトレーニングされ得ることを理解されたい。たとえば、生成モデルが強化学習技法を利用してさらにトレーニングされ得、別々の制御モデルとは別々であるが、別々の制御モデルと組み合わせてさらにトレーニングされ得る。さらに、複数の生成モデルが生成される場合、方法500は、別のモデルを生成するために、ブロック552での異なる選択基準と共に反復され得る。
【００７４】
次に図6を参照すると、本明細書において開示される様々な実施形態による、クエリの1つまたは複数の変異形を生成するのに生成モデルを利用する方法600を示すフローチャートが与えられる。便宜上、流れ図の動作が、動作を実施するシステムを参照しながら説明される。このシステムは、1つまたは複数のプロセッサ(たとえば、CPU、GPU、および/またはTPU)などの1つまたは複数の構成要素を含み得る。方法600の動作が特定の順序で示されているが、これは限定を意味するものではない。1つまたは複数の動作が並べ替えられ、省略され、または追加され得る。
【００７５】
ブロック652において、システムはクエリを受け取る。
【００７６】
ブロック654において、システムは、複数の候補生成モデルから生成モデルを選択する。いくつかの実施形態では、システムは、ブロック652のクエリをサブミットしたユーザの1つまたは複数の属性に基づいて生成モデルを選択する。たとえば、システムは、ユーザの1つまたは複数の属性に合致する属性に関連して生成モデルが記憶されることに基づいて、生成モデルを選択し得る。たとえば、生成モデルは、それらの属性を有するユーザの過去のクエリサブミットに基づくトレーニングインスタンスに基づいてトレーニングされることに基づいて、そのような属性に関連して記憶され得る。いくつかの実施形態では、ブロック654は省略され得る(たとえば、単一の生成モデルだけが利用可能であり得る)。
【００７７】
ブロック656において、システムは、クエリのトークンおよび追加の値を生成モデルに対する入力として適用する。クエリをサブミットしたユーザの属性、時間的属性、および/または受け取ったクエリについての検索システム応答についての属性などの様々な追加の値が適用され得る。1つの特定の例として、追加の値は、クエリをサブミットしたユーザの予測されるタスク属性を含み得る。予測されるタスク属性は、たとえば、ユーザによってコンピューティングデバイス上で最近閲覧されたコンテンツ、ユーザの記憶されたカレンダエントリ、および/またはユーザの電子通信に基づいて予測され得る。
【００７８】
ブロック658において、システムは、適用された入力に基づいて、生成モデルを介して1つまたは複数の変異形を生成する。
【００７９】
ブロック660において、システムは、別の変異形を生成するかどうかを決定する。いくつかの実施形態では、システムは、これまでに生成された変異形のプロパティに基づいて、かつ/またはこれまでに生成された変異形についての検索システムからの応答に基づいて、別の変異形を生成するかどうかを決定する。たとえば、システムは、これまでに生成された変異形に対する応答が検索システムおよび/または応答の品質尺度によって見つかったかどうかに基づいて、別の変異形を生成するかどうかを決定し得る。たとえば、応答が見つからなかった場合、かつ/または品質尺度が1つまたは複数の品質基準を満たすことができなかった場合、システムは別の変異形を生成し得る。
【００８０】
ブロック660の反復において、システムが別の変異形を生成することを決定する場合、システムはブロック662に進み、ブロック656の後続の反復において生成モデルに対する入力として適用されるべき1つまたは複数の追加の値を更新する。たとえば、システムは、ブロック658の最新の反復において生成された変異形を反映するように、変異形に対する応答を反映するように、かつ/またはブロック658の次の反復についてのタイプ値を変更するように追加の値を更新し得る。次いで、システムは、更新された追加の値を使用してブロック656の別の反復を実施し、次いでブロック658および660に進む。
【００８１】
ブロック660の反復において、システムが別の変異形を生成しないことを決定する場合、システムはブロック664に進み、生成された変異形のうちの1つまたは複数に基づく出力を提供する。出力は、変異形のうちの1つまたは複数ならびに/あるいは変異形のうちの1つまたは複数に対する検索システム応答を含み得る。
【００８２】
図7は、制御モデルが変異形の生成を制御するのに利用される、クエリの1つまたは複数の変異形を生成するのに生成モデルを利用する方法700を示すフローチャートである。便宜上、流れ図の動作が、動作を実施するシステムを参照しながら説明される。このシステムは、1つまたは複数のプロセッサ(たとえば、CPU、GPU、および/またはTPU)などの1つまたは複数の構成要素を含み得る。方法700の動作が特定の順序で示されているが、これは限定を意味するものではない。1つまたは複数の動作が並べ替えられ、省略され、または追加され得る。
【００８３】
ブロック752において、システムはクエリを受け取る。
【００８４】
ブロック754において、システムは、現状態に基づいて、制御モデルを介して制御出力を生成する。たとえば、現状態は、現クエリのトークン、現クエリに対する検索システム応答、および/または他の特徴に基づき得る。
【００８５】
ブロック756において、システムは、制御出力に基づいて、受け取ったクエリの変異形を生成するかどうかを決定する。いくつかの実施形態では、ブロック754およびブロック756の最初の反復が省略され得る。言い換えれば、それらの実施形態では、システムは、(たとえば、受け取ったクエリに対する検索システム応答の有効性をチェックするために)常に変異形を生成することを決定し得る。
【００８６】
ブロック756の反復において、システムが変異形を生成しないことを決定する場合、システムはブロック766に進み、現検索システム応答および/または生成された変異形に基づく出力を提供する。
【００８７】
ブロック756の反復において、システムが変異形を生成することを決定する場合、システムはブロック758に進む。
【００８８】
ブロック758において、システムは、ブロック754の最新の反復において生成された制御出力に基づいて、リワード信号および/またはコンテキストを決定する。リワード信号は、本明細書において説明される、学習されたQ関数に基づき得、コンテキストは、たとえば、現状態および/または現状態のベクトル概要を含み得る。
【００８９】
ブロック760において、システムは、受け取ったクエリおよびリワード信号ならびに/あるいはブロック758のコンテキストに基づいて、生成モデルを介して変異形を生成する。
【００９０】
ブロック762において、システムは、ブロック760において生成された変異形に対する応答を決定する。たとえば、システムは、検索システムに変異形をサブミットし、変異形に応答する検索システムから応答を受け取り得る。いくつかの状況では、検索システムは、応答を返さず、かつ/または「ヌル」を生成し、そのそれぞれは、応答(たとえば、回答)が利用可能でないことを示す。
【００９１】
ブロック764において、システムは、変異形、および変異形に対する応答に基づいて、現状態を更新する。次いで、システムはブロック754に戻り、ブロック764の更新を含む現状態に基づいて、制御モデルを介して制御出力を生成する。このようにして、ブロック764の後続の反復において、以前に生成された変異形および応答(すなわち、ブロック760および762の前の反復において生成されたもの)が、ブロック754の次の反復において考慮され得る。次いで、システムはブロック756に戻り、制御出力に基づいて、受け取ったクエリの別の変異形を生成するかどうかを決定する。システムが別の変異形を生成することを決定するとき、ブロック758の次の反復において提供されるリワード信号およびコンテキストは同様に、以前に生成された変異形および応答(すなわち、ブロック760および762の前の反復において生成されたもの)を条件とし得ることに留意されたい。このようにして、ブロック760の次の反復の変異形生成が、結果として以前に生成された変異形および応答の影響を受ける。
【００９２】
次に図8Aおよび図8Bを参照すると、本明細書において開示した実施形態に従って生成された変異形に基づく出力を提供するための例示的グラフィカルユーザインターフェース800Aおよび800Bが示されている。グラフィカルユーザインターフェース800Aおよび800Bは、クライアントデバイス106において(たとえば、クライアントデバイス106において実行中のブラウザ内、および/またはクライアントデバイス106において実行中の別のアプリケーション内で)提示され得る。
【００９３】
図8Aでは、ユーザが「レオナルドダビンチがモナリザを描いたか(did leonardo da vinci paint mona lisa)」というクエリ891Aを提供した。それに応答して、応答892Aを含み、2つの変異形893Aをも含む出力が提供される。2つの変異形893Aは、本明細書において開示した実施形態に従って生成され得る。いくつかの実施形態では、変異形のそれぞれが選択可能であり、選択に応答して、対応する変異形を新しいクエリとしてサブミットさせる。いくつかの実施形態では、応答892Aも、本明細書において開示した実施形態に従って生成される変異形に基づく。たとえば、いくつかの状況では、応答892Aは、クエリ891Aの変異形(変異形893Aとは異なる変異形)についての応答であり得、かつ/または応答892Aはクエリ891Aについてのものであり得るが、(たとえば、それらの変異形も肯定的応答を生成したことを保証することによって)クエリの変異形に対する応答に基づいて検証され得る。
【００９４】
図8Bでは、ユーザが「ミケランジェロがモナリザを描いたか(did michelangelo paint the mona lisa)」というクエリ891Aを提供した。それに応答して、「いいえ」という応答892Bを含む出力が提供される。任意選択で、図8Bのボックス895Bは表示のために表示されないことがあるが、「いいえ」という応答892Bを生成するために、本明細書において説明される技法に従って生成され得る変異形の例として提示されるボックス895Bは、元のクエリ(「O」で示される)を表示し、元のクエリに応答して回答応答が検索システムによって生成されたことを示すために、括弧内の「Y」を含む。たとえば、回答応答は、「はい、ミケランジェロがモナリザを描きました(yes, Michelangelo did paint the Mona Lisa)」であり得る。しかしながら、回答応答を提供する代わりに、「補足」変異形である複数の変異形が、元のクエリの応答の正確さを検証するために生成される。具体的には、変異形V1、V2、およびV3が生成される。括弧内の「N」で示されるように、それらの補足変異形のそれぞれに応答して、検索システムによって「回答なし」応答が生成された。回答がそれらの複数の補足について利用可能でないことに鑑みて、コントローラエンジンは、元のクエリに対する「回答応答」が不正確であると決定し得る(補足は如何なる回答にも至らないからである)。その結果、コントローラエンジンは「いいえ」という応答892Bを提供する。
【００９５】
グラフィカルインターフェースの例が図8Aおよび8Bにおいて提示されるが、追加または代替として、ユーザの発話入力に基づいてクエリが受け取られ得、かつ/または、追加または代替として、その変異形および/または応答がクライアントデバイスを介してユーザへの提示のために可聴に提供され得ることを理解されたい。
【００９６】
本明細書において説明されるシステムがユーザについての個人情報を収集し、または個人情報を利用し得る状況では、プログラムまたは特徴がユーザ情報(たとえば、ユーザのソーシャルネットワークについての情報、ソーシャルアクションまたは活動、職業、ユーザのプリファレンス、またはユーザの現在の地理的位置)を収集するかどうかを制御し、またはユーザにとってより関係のあり得るコンテンツをコンテンツサーバから受け取るかどうか、かつ/またはどのように受け取るかを制御する機会がユーザに与えられ得る。さらに、一定のデータが、記憶され、または使用される前に、個人識別可能情報が除去されるように、1つまたは複数の方式で扱われ得る。たとえば、ユーザについて個人識別可能情報が決定され得るようにユーザの識別が扱われ得、またはユーザの特定の地理的位置を決定することができないように、地理的位置情報が取得されるユーザの地理的位置が汎化され得る(都市、ZIPコード、州レベルなど)。したがって、ユーザは、ユーザについてどのように情報が収集および/または使用されるかに関する制御を有し得る。
【００９７】
図9は、任意選択で、本明細書において説明される技法の1つまたは複数の態様を実施するのに利用され得る例示的コンピューティングデバイス910のブロック図である。コンピューティングデバイス910は、バスサブシステム912を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ914(たとえば、CPU、GPU、および/またはTPU)を含む。これらの周辺デバイスは、たとえばメモリサブシステム925およびファイル記憶サブシステム926を含む記憶サブシステム924と、ユーザインターフェース出力デバイス920と、ユーザインターフェース入力デバイス922と、ネットワークインターフェースサブシステム915とを含み得る。入力および出力デバイスは、コンピューティングデバイス910とのユーザ対話を可能にする。ネットワークインターフェースサブシステム915は、外部ネットワークに対するインターフェースを提供し、他のコンピューティングデバイス内の対応するインターフェースデバイスに結合される。
【００９８】
ユーザインターフェース入力デバイス922は、キーボードと、マウス、トラックボール、タッチパッド、グラフィックスタブレットなどのポインティングデバイスと、スキャナと、ディスプレイ内に組み込まれたタッチスクリーンと、音声認識システム、マイクロフォン、および/または他のタイプの入力デバイスなどのオーディオ入力デバイスとを含み得る。一般には、「入力デバイス」という用語の使用は、すべての可能なタイプのデバイス、およびコンピューティングデバイス910内に、もしくは通信ネットワーク上に情報を入力するための方式を含むものとする。
【００９９】
ユーザインターフェース出力デバイス920は、ディスプレイサブシステム、プリンタ、ファックスマシン、またはオーディオ出力デバイスなどの非視覚的ディスプレイを含み得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影デバイス、または通常のイメージを作成するための何らかの他の機構を含み得る。ディスプレイサブシステムはまた、オーディオ出力デバイスを介するような非視覚的表示をも提供し得る。一般に、「出力デバイス」という用語の使用は、すべての可能なタイプのデバイス、およびコンピューティングデバイス910からの情報をユーザまたは別のマシンもしくはコンピューティングデバイスに出力するための方式を含むものとする。
【０１００】
記憶サブシステム924は、本明細書において説明されるモジュールのうちのいくつかまたはすべての機能を提供するプログラミングおよびデータ構成を記憶する。たとえば、記憶サブシステム924は、本明細書において説明される方法の選択された態様を実施するための論理を含み得る。
【０１０１】
これらのソフトウェアモジュールは一般に、プロセッサ914だけによって、または他のプロセッサと組み合わせて実行される。記憶サブシステム924内で使用されるメモリ925は、プログラム実行中の命令およびデータの記憶のためのメインランダムアクセスメモリ(RAM)930と、固定の命令が記憶される読取り専用メモリ(ROM)932とを含むいくつかのメモリを含み得る。ファイル記憶サブシステム926は、プログラムおよびデータファイルについての永続的記憶を提供し得、ハードディスクドライブ、ソリッドステートドライブ、フロッピィディスクドライブおよび関連する取外し可能媒体、CD-ROMドライブ、光学ドライブ、または取外し可能メディアカートリッジを含み得る。いくつかの実施形態の機能を実施するモジュールは、記憶サブシステム924内のファイル記憶サブシステム926によって、またはプロセッサ914によってアクセス可能な他のマシン内に記憶され得る。
【０１０２】
バスサブシステム912は、コンピューティングデバイス910の様々な構成要素およびサブシステムに所期の通りに互いに通信させるための機構を提供する。バスサブシステム912が単一のバスとして概略的に示されているが、バスサブシステムの代替実装は複数のバスを使用し得る。
【０１０３】
コンピューティングデバイス910は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムもしくはコンピューティングデバイスを含む様々なタイプであり得る。コンピュータおよびネットワークの常に変化する性質のために、図9に示されるコンピューティングデバイス910の説明は、いくつかの実施形態を示すための特定の例に過ぎないものとする。図9に示されるコンピューティングデバイスよりも多くの、または少ない構成要素を有する、コンピューティングデバイス910の多くの他の構成が可能である。
【符号の説明】
【０１０４】
106  クライアントデバイス
110  クエリシステム
112  変異形エンジン
114  コントローラエンジン
120  生成モデルトレーニングエンジン
122  トレーニングインスタンスエンジン
140  検索システム
152  生成モデル
152A  生成モデル
153A  エンコーダ層
154  制御モデル
154A  デコーダ層
155A  ソフトマックス層
162  データベース
164  データベース
164A  トレーニングインスタンス
166  リソース
800A  グラフィカルユーザインターフェース
800B  グラフィカルユーザインターフェース
891A  クエリ
892A  応答
892B  応答
893A  変異形
895B  ボックス
910  コンピューティングデバイス
912  バスサブシステム
914  プロセッサ
915  ネットワークインターフェースサブシステム
920  ユーザインターフェース出力デバイス
922  ユーザインターフェース入力デバイス
924  記憶サブシステム
925  メモリ
926  ファイル記憶サブシステム
930  メインランダムアクセスメモリ(RAM)
932  読取り専用メモリ(ROM)
【図１】
0006918140.tif 000002
【図２】
0006918140.tif 000003
【図３】
0006918140.tif 000004
【図４】
0006918140.tif 000005
【図５】
0006918140.tif 000006
【図６】
0006918140.tif 000007
【図７】
0006918140.tif 000008
【図８Ａ】
0006918140.tif 000009
【図８Ｂ】
0006918140.tif 000010
【図９】
0006918140.tif 000011