(57)【要約】      （修正有）【課題】デジタルアシスタントのための機械学習システムを訓練する方法及びプログラムを提供する。【解決手段】入力シーケンスデータ３４４を出力シーケンスデータ３４８にマッピングするように訓練されるエンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャ３４６に基づく機械学習システム３１０であって、入力シーケンスデータは、初期クエリに関連し、出力シーケンスデータは、このクエリのカノニカルデータ表現を表す。訓練方法は、元のクエリデータサンプルに基づいて機械学習システムの訓練データセットを生成するステップとは、機械学習システムを訓練する際に使用されるカノニカルクエリと元のクエリとの対を生成するために、クエリデータサンプルのベクトル表現をクラスタリングするステップと、を含む。【選択図】図３
2022003520.tif 000002
【特許請求の範囲】
【請求項１】
デジタルアシスタントとともに使用される機械学習システムを訓練する方法であって、
クエリデータサンプルを含む訓練データを得るステップと、
前記クエリデータサンプルのベクトル表現を得るステップと、
前記ベクトル表現をクラスタリングするステップと、
前記クラスタリングされたベクトル表現に基づいてカノニカルクエリおよび対応するクエリグループを求めるステップと、
選択されたカノニカルクエリと各々の選択されたカノニカルクエリに対応する前記クエリグループからの選択とに基づいて、対をなすデータサンプルを生成するステップと、
前記対をなすデータサンプルを使用してエンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャを訓練するステップとを備え、前記対をなすデータサンプル内の前記クエリグループからの前記選択は、入力シーケンスデータとして供給され、前記対応するカノニカルクエリは、出力シーケンスデータとして供給され、
前記訓練されたエンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャは、前記デジタルアシスタントとともに、初期クエリを表すデータを修正クエリを表すデータにマッピングするのに使用可能であり、前記修正クエリを表す前記データは、前記初期クエリに対する応答を提供するようにさらに処理される、方法。
【請求項２】
訓練データを得るステップは、クエリおよび応答を表すテキストデータの対を得るステップを備え、
前記クエリデータサンプルのベクトル表現を得るステップは、前記テキストデータの対を対応するベクトル表現に変換するステップを備える、請求項１に記載の方法。
【請求項３】
前記テキストデータに対して固有表現抽出を実行するステップと、
タグ付けされた固有表現の前記テキストデータを固有表現タイプタグと置換するステップとを備える、請求項２に記載の方法。
【請求項４】
テキストデータの第１の部分は、音声クエリのオーディオデータに対して実行される音声テキスト化処理の出力を表し、テキストデータの第２の部分は、前記音声クエリに対する前記応答を提供する際に使用されるデータを含み、前記訓練されたエンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャは、前記デジタルアシスタントとともに、初期音声クエリを表すデータを修正音声クエリを表すデータにマッピングするのに使用可能である、請求項２または請求項３に記載の方法。
【請求項５】
所与のベクトル表現は、少なくとも応答ベクトル表現を含み、前記応答ベクトル表現は、前記クエリに対する応答を表す前記データのベクトル表現であり、前記応答ベクトル表現は、対応するクエリを表すデータと対にされ、
前記ベクトル表現をクラスタリングするステップは、
ベクトル空間内の前記応答ベクトル表現間の距離に基づいて前記応答ベクトル表現をクラスタリングするステップを備え、
前記クラスタリングされたベクトル表現内の所与のクラスタについて、前記所与のクラスタ内の応答ベクトル表現と対にされる前記クエリデータの頻度に基づいて、カノニカルクエリが選択される、請求項１から請求項３のいずれか１項に記載の方法。
【請求項６】
前記ベクトル表現をクラスタリングするステップは、
別々のクラスタを繰り返し結合するために、階層クラスタリング手法を適用するステップを備える、請求項５に記載の方法。
【請求項７】
ベクトル表現を得るステップは、
少なくとも前記クエリに対する前記応答のテキスト表現を得るステップと、
前記テキスト表現のための埋め込みベクトルを生成するステップと、
前記ベクトル表現を出力するために、前記埋め込みベクトルを下位次元ベクトル空間に投影するステップとを備える、請求項１から請求項５のいずれか１項に記載の方法。
【請求項８】
前記テキスト表現のための埋め込みベクトルを生成するステップは、
前記テキスト表現をトークン化するステップと、
前記埋め込みベクトルを生成するために、前記トークン化されたテキスト表現にトランスフォーマニューラルネットワークアーキテクチャを適用するステップとを備える、請求項７に記載の方法。
【請求項９】
前記埋め込みベクトルを下位次元ベクトル空間に投影するステップは、主成分のサブセットを選択するステップを備え、前記主成分は、クエリデータサンプルの主成分分析の後に決定される、請求項７または請求項８に記載の方法。
【請求項１０】
前記ベクトル表現をクラスタリングするステップは、
クエリに対する応答のベクトル表現に基づいてクラスタリングの第１段階を実行するステップと、
前記応答に先行する前記クエリのベクトル表現に基づいてクラスタリングの第２段階を実行するステップとを備える、請求項１から請求項９のいずれか１項に記載の方法。
【請求項１１】
前記対をなすデータサンプルを生成する前に、前記クラスタリングされたベクトル表現をフィルタリングするステップを備える、請求項１から請求項１０のいずれか１項に記載の方法。
【請求項１２】
前記フィルタリングするステップは、所与のクラスタについて、
前記クラスタリングされたベクトル表現における前記所与のクラスタの重心を求めるステップと、
前記重心から予め規定された距離以上である前記所与のクラスタのクエリのベクトル表現を割り当て解除するステップとを備える、請求項１１に記載の方法。
【請求項１３】
前記フィルタリングするステップは、所与のクラスタについて、
前記所与のクラスタのサイズを求めるステップと、
前記サイズが予め規定された閾値を下回ったことに応答して、前記所与のクラスタのクエリのベクトル表現を割り当て解除するステップとを備える、請求項１１または請求項１２に記載の方法。
【請求項１４】
前記フィルタリングするステップは、
割り当て解除されたクエリのベクトル表現を、最も近いクラスタに再割り当てするステップをさらに備える、請求項１２または請求項１３に記載の方法。
【請求項１５】
対をなすデータサンプルを生成するステップは、
生成された対をなすデータサンプルをフィルタリングするステップを備える、請求項１から請求項１４のいずれか１項に記載の方法。
【請求項１６】
フィルタリングするステップは、
固有表現タグが前記クエリグループからの前記対応する選択における固有表現タグと一致しないカノニカルクエリを有する対をなすデータサンプルを除去するステップ、および
前記カノニカルクエリの意味的距離メトリックと前記クエリグループからの前記対応する選択の意味的距離メトリックとの比較に基づいて、対をなすデータサンプルを除去するステップ、
のうちの１つまたは複数を備える、請求項１５に記載の方法。
【請求項１７】
以下のメトリック、すなわち
１つまたは複数のクラスタリング距離閾値、
１つまたは複数のクラスタサイズ閾値、および
カノニカルクエリの選択のための１つまたは複数の頻度閾値、
のうちの１つまたは複数を最適化するステップを備える、請求項１から請求項１６のいずれか１項に記載の方法。
【請求項１８】
デジタルアシスタントに対するクエリを処理する方法であって、
クエリを表す初期データを受信するステップと、
前記クエリを表す前記初期データから入力シーケンスデータを生成するステップと、
エンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャを使用して前記入力シーケンスデータを出力シーケンスデータにマッピングするステップとを備え、前記出力シーケンスデータは、前記クエリのカノニカルデータ表現を表し、前記方法はさらに、
前記クエリに対する応答を求めるために、前記カノニカルデータ表現を処理するステップと、
前記クエリに対する前記応答を提供するステップとを備える、方法。
【請求項１９】
前記エンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャは、カノニカルクエリおよび対応する初期クエリを表す対をなすデータサンプル上で訓練され、前記対をなすデータサンプルは、クエリを表すデータと前記クエリに対する応答を表すデータとを含むクエリデータサンプルのベクトル表現をクラスタリングすることによって生成される、請求項１８に記載の方法。
【請求項２０】
前記クエリに対する応答を求めるために、前記カノニカルデータ表現を処理するステップは、
前記出力シーケンスデータ内に提供される出力シーケンスのトップＫセットのうちの１つを選択するステップ、
少なくとも前記出力シーケンスデータから導き出されたデータを言語モデルを用いて構文解析し、前記言語モデルによって適用されたスコアリングに基づいて出力シーケンスを選択するステップ、および
前記クエリを表す前記初期データと少なくとも前記出力シーケンスデータから導き出されたデータとを固有表現抽出部を用いて構文解析し、前記構文解析されたデータにおける固有表現間の比較に基づいて出力シーケンスを選択するステップ、
のうちの１つまたは複数を備える、請求項１８または請求項１９に記載の方法。
【請求項２１】
デジタルアシスタントのための機械学習システムであって、
クエリを表す初期データを受信して、前記初期データから導き出された入力シーケンスデータを出力するためのクエリインターフェイスと、
前記入力シーケンスデータを出力シーケンスデータにマッピングするためのエンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャとを備え、前記出力シーケンスデータは、前記クエリのカノニカルデータ表現を表し、前記機械学習システムはさらに、
前記クエリに対する応答を提供する際に使用される前記出力シーケンスデータを提供するための出力インターフェイスを備える、機械学習システム。
【請求項２２】
前記クエリインターフェイスは、音声テキスト化インターフェイスを備える、請求項２１に記載の機械学習システム。
【請求項２３】
前記エンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャから複数の出力シーケンスを受信して、少なくとも１つの自然言語処理メトリックに基づいて前記複数の出力シーケンスのうちの１つを選択するための出力シーケンスフィルタを備える、請求項２１または請求項２２に記載の機械学習システム。
【請求項２４】
少なくとも１つのプロセッサによって実行されたときに、前記少なくとも１つのプロセッサに請求項１から請求項１７のいずれか１項に記載の方法を実行させる、プログラム。
【請求項２５】
前記クエリデータサンプルは、音声クエリに関連する、請求項２４に記載のプログラム。
【請求項２６】
少なくとも１つのプロセッサによって実行されたときに、前記少なくとも１つのプロセッサに請求項１８から請求項２０のいずれか１項に記載の方法を実行させる、プログラム。
【請求項２７】
前記初期データは、音声クエリに関連する、請求項２６に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の分野
本技術は、デジタルアシスタントとともに使用される機械学習システムの分野の技術である。たとえば、本技術は、音声アシスタントおよびテキストベースのデジタル会話エージェントを実現するために使用され得る。特定の例は、初期クエリを処理済みの形式にマッピングするように機械学習システムを訓練する方法に関する。他の例は、デジタルアシスタントを実現する際に使用される訓練された機械学習システムに関する。
【背景技術】
【０００２】
背景
デジタルアシスタント（自然言語インターフェイスを人間に提供するものなど）は、多くの人々にとって急速に日常生活の一部になりつつある。たとえば、コンピューティングの最近の進歩によって、長い間求められてきた多くの音声制御アプリケーションを実現する可能性が高まってきた。効果的なニューラルネットワークアーキテクチャのための実際的なフレームワークを含む統計モデルの改良によって、従前の自然言語処理システムの精度および信頼性が大きく向上した。これは、アプリケーションプログラミングインターフェイスを使用するだけでアクセスできるさまざまなモジュラーサービスを提供する広域コンピュータネットワークの台頭と相まっている。音声アシスタント、デジタル会話エージェント（いわゆる「チャットボット」）および自動テキスト応答システムは、多くの場合、自動コンピュータシステムと接続するための利用しやすい手段として好ましい。音声制御デバイスは、家庭で普及してきており、家庭では、それらは、質問をしたり、音楽を再生したり、リマインダを設定したりするのに使用されることが多く、それらは、自動車分野でも確実な地歩を築き始めている。発話は人間のコミュニケーションの自然な方法であるので、音声制御は、従来のユーザインターフェイス（キーボードおよびマウス、またはより最近では容量性タッチスクリーンなど）と比較して多くのメリットを提供する。発話を使用したデバイスを制御することによって、ユーザは、モータビークルを安全に動かしたり料理を作ったりするなどの複数のタスクを実行することができる。
【０００３】
これらの進歩にもかかわらず、ユーザは、現在の対話システムには人間レベルの応答性および知性がないと訴えることが多い。自然言語処理は、一般に、複雑な処理パイプラインを含んでおり、いかなる段階においてもエラーが機械解釈の成功を狂わせる可能性がある。これらの課題のうちの多くは、意識的思考なしに皮質構造および皮質下構造を使用して音声およびテキストを処理することができる大人の人間にとってはすぐには分からない。しかし、当該分野における技術者は、人間の能力と技術水準の機械処理との間のギャップをすぐに認識するようになる。
【０００４】
成功的なデジタルアシスタントを実現する上での１つの問題点は、環境の固有の情報ノイズである。たとえば、ニューラルネットワークは、特にそれらの訓練データの中に存在していなかったパターンを提供された場合に頑強性がないことで知られている。しかし、現実世界は、固有の不確定要素であふれている。これは、多くの場合、制御された学術環境と実際の家庭、産業または車両環境との間の互いに異なる誤り率につながる。特に、デジタルアシスタントは、重なり合った会話、不適格なクエリ、中断または余談に対処できないことが多いが、実際の音声およびテキスト入力に対するこれらの割合は高い。たとえば、ラジオまたはテレビ放送は、音声クエリに容易にスクランブルをかけることができ、不適格なセンテンスは、多くのチャットボットを混乱させる可能性がある。
【０００５】
したがって、デジタルアシスタントの機能を向上させて、より頑強な対話デバイスを提供することが望まれている。さらに、ノイズの混ざったテキストクエリに対応することができる改良された自然言語インターフェイスを提供することが望まれている。
【発明の概要】
【０００６】
概要
本開示の一局面に従って、デジタルアシスタントとともに使用される機械学習システムを訓練する方法があり、上記方法は、クエリデータサンプルを含む訓練データを得るステップと、上記クエリデータサンプルのベクトル表現を得るステップと、上記ベクトル表現をクラスタリングするステップと、上記クラスタリングされたベクトル表現に基づいてカノニカルクエリおよび対応するクエリグループを求めるステップと、選択されたカノニカルクエリと各々の選択されたカノニカルクエリに対応する上記クエリグループからの選択とに基づいて、対をなすデータサンプルを生成するステップと、上記対をなすデータサンプルを使用してエンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャを訓練するステップとを備え、上記対をなすデータサンプル内の上記クエリグループからの上記選択は、入力シーケンスデータとして供給され、上記対応するカノニカルクエリは、出力シーケンスデータとして供給され、上記訓練されたエンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャは、上記デジタルアシスタントとともに、初期クエリを表すデータを修正クエリを表すデータにマッピングするのに使用可能であり、上記修正クエリを表す上記データは、上記初期クエリに対する応答を提供するようにさらに処理される。
【０００７】
上記の局面の方法は、不適格であって場合によってはノイズが混ざっている初期クエリをカノニカルな、すなわち代表的なクエリにマッピングすることによって性能を向上させる、クエリを処理するための訓練された機械学習システムをもたらす。したがって、この出力されたカノニカルクエリは、応答の算出を容易にするためにクエリ処理パイプラインに供給されてもよい。上記方法は、クエリデータサンプルを対応するベクトル表現に変換し、次いでベクトル空間内のこれらのベクトル表現をクラスタリングすることによって、機械学習システムにとって効果的な訓練データを生成する。クラスタリングによって生成されたクラスタは、クエリをグループ化して、各グループ内で１つのメンバをカノニカルクエリとして選択することを可能にする。次いで、これは、たとえば各グループについて、たとえばこのグループのカノニカルクエリと対にされるクエリのセットを生成する。次いで、このクエリのセットと各グループのカノニカルクエリとをそれぞれ使用して、機械学習システムのためのソースデータサンプルおよびターゲットデータサンプルを生成し、それによって、より多くのバリエーションを有する不適格なクエリを、よく使用される要求に一致するより規則正しく形成されたクエリにどのようにマッピングするかをシステムが学習することができる。
【０００８】
特定の例において、上記訓練データを得るステップは、クエリおよび応答を表すテキストデータの対を得るステップを備え、上記クエリデータサンプルのベクトル表現を得るステップは、上記テキストデータの対を対応するベクトル表現に変換するステップを備える。テキスト形式のクエリデータサンプルを使用することは、本技術が音声テキスト化システム（speech-to-text system）を含むテキストベースのチャットボットも音声システムも含む多くのさまざまな形態の対話および会話エージェントに適用可能であることを意味する。
【０００９】
テキストの場合において、上記方法は、上記テキストデータに対して固有表現抽出を実行するステップと、タグ付けされた固有表現の上記テキストデータを固有表現タイプタグと置換するステップとをさらに備えていてもよい。固有表現抽出を実行して、見かけのトークン値（たとえば、「トロント」）をそれらの対応する一般的な固有表現タイプタグ（たとえば、＜場所＞）と置換することは、たとえばさまざまな地理的地域から収集された複数の異なるクエリデータサンプルを、クラスタリングを容易にし得る共通または共有の表現にマッピングすることに役立ち得る。
【００１０】
特定の場合において、テキストデータの第１の部分は、音声クエリのオーディオデータに対して実行される音声テキスト化処理の出力を表し、テキストデータの第２の部分は、上記音声クエリに対する上記応答を提供する際に使用されるデータを含み、上記訓練されたエンコーダ・デコーダシーケンス・トゥ・シーケンスニューラル機械学習モデルは、上記デジタルアシスタントとともに、初期音声クエリを表すデータを修正音声クエリを表すデータにマッピングするのに使用可能である。本開示は、現実世界にも音声テキスト化システムにも存在する固有のノイズに起因して入力クエリが不正な形式である可能性が高い音声アプリケーションでは特にメリットがある。
【００１１】
特定の例において、所与のベクトル表現は、少なくとも応答ベクトル表現を含み、上記応答ベクトル表現は、上記クエリに対する応答を表す上記データのベクトル表現であり、上記応答ベクトル表現は、対応するクエリを表すデータと対にされ、上記ベクトル表現をクラスタリングするステップは、ベクトル空間内の上記応答ベクトル表現間の距離に基づいて上記応答ベクトル表現をクラスタリングするステップを備え、上記クラスタリングされたベクトル表現内の所与のクラスタについて、上記所与のクラスタ内の応答ベクトル表現と対にされる上記クエリデータの頻度に基づいて、カノニカルクエリが選択される。最初に先行するクエリではなく応答に基づいてクラスタリングを行うことによって、さまざまであるかもしれない入力クエリのより効果的なグループ化を実行することができ、応答を提供する最も頻度の高い表現としてグループのカノニカルクエリを後で選択することを容易にする。頻度に基づいてカノニカルクエリを選択することによって、これは、ダウンストリームクエリ処理および応答の精度も向上させることができる。なぜなら、多くのダウンストリーム機械学習システムは、頻繁に発生するデータほど、そのデータに対して上手く機能するからである（たとえば、これは、訓練コーパスにおいてより頻繁に発生するためパラメータ学習を推進しやすいからである）。
【００１２】
特定の例において、上記ベクトル表現をクラスタリングするステップは、別々のクラスタを繰り返し結合するために、階層クラスタリング手法を適用するステップを備える。階層クラスタリング手法を適用することは、たとえば最初に関連するデータ点の周りにタイトなクラスタを形成し、次いでこれらのタイトなクラスタを反復プロセスの一部として結合することによって、クラスタの品質を向上させることができる。
【００１３】
ある場合において、ベクトル表現を得るステップは、少なくとも上記クエリに対する上記応答のテキスト表現を得るステップと、上記テキスト表現のための埋め込みベクトルを生成するステップと、上記ベクトル表現を出力するために、上記埋め込みベクトルを下位次元ベクトル空間に投影するステップとを備える。ベクトル表現を圧縮することは、（下位次元ベクトル空間での）より効率的なクラスタリングにつながり、低品質のクラスタをもたらし得る表面ノイズの除去に役立つ、ということがテストで分かった。ある場合において、上記テキスト表現のための埋め込みベクトルを生成するステップは、上記テキスト表現をトークン化するステップと、上記埋め込みベクトルを生成するために、上記トークン化されたテキスト表現にトランスフォーマニューラルネットワークアーキテクチャを適用するステップとを備える。したがって、エンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャのエンコーダ部分と同様の、またはその複製ですらあるエンコーダニューラルネットワークアーキテクチャを使用して、たとえばクエリおよびそれらの応答を表すセンテンスレベルの有用な埋め込みを生成することができる。このようにエンコーダニューラルネットワークアーキテクチャを使用することによって、たとえばテキスト表現内の単語埋め込みの平均よりも有益なベクトル表現がもたらされる。その場合、最初のエンコーダからの「センテンス埋め込み」は、次元低減段階への入力を形成し得る。
【００１４】
ある場合において、上記埋め込みベクトルを下位次元ベクトル空間に投影するステップは、主成分のサブセットを選択するステップを備え、上記主成分は、クエリデータサンプルの主成分分析の後に決定される。したがって、主成分分析は、元のクエリデータサンプルの変動に大きく寄与しない成分を除去する次元低減を実行するための有用なツールを提供する。
【００１５】
一例において、上記ベクトル表現をクラスタリングするステップは、クエリに対する応答のベクトル表現に基づいてクラスタリングの第１段階を実行するステップと、上記応答に先行する上記クエリのベクトル表現に基づいてクラスタリングの第２段階を実行するステップとを備える。この二段階クラスタリングによって、カノニカルクエリの選択のための正確かつ有用なクエリクラスタがもたらされる。応答に対する第１のクラスタリングによって、同様の機能または所望の結果を有するクエリをグループ化することができる。次いで、クエリ自体に対するクラスタリングの第２段階によって、カノニカルクエリ上に容易にマッピングされ得るクエリグループが生成される。たとえば、第２段階がなければ、クエリのグループは大きいであろう。クエリをクラスタリングすることによって、ソースサンプルとターゲットサンプルとは近くなり得て、訓練が効果的になる。
【００１６】
ある場合において、上記方法は、上記対をなすデータサンプルを生成する前に、上記クラスタリングされたベクトル表現をフィルタリングするステップを備えていてもよい。これは、所与のクラスタについて、上記クラスタリングされたベクトル表現における上記所与のクラスタの重心を求めるステップと、上記重心から予め規定された距離以上である上記所与のクラスタのクエリのベクトル表現を割り当て解除するステップとを備えていてもよい。また、追加として、または代替として、それは、所与のクラスタについて、上記所与のクラスタのサイズを求めるステップと、上記サイズが予め規定された閾値を下回ったことに応答して、上記所与のクラスタのクエリのベクトル表現を割り当て解除するステップとを備えていてもよい。いずれの場合にも、割り当て解除されたベクトル表現は、次いで、最も近いクラスタに再割り当てされてもよい。このフィルタリングは、上記のクラスタリングの第２段階を（少なくとも部分的に）実現してもよい。これらのフィルタリング発見的手法は、ちょうどよいサイズのクエリグループを生成し、これは、たとえば訓練データにおいてクエリとカノニカル表現との有用な組み合わせをもたらすサイズおよび構成のクエリグループを生成することによって、推論中に性能を向上させる、ということが分かった。
【００１７】
特定の例において、対をなすデータサンプルを生成するステップは、生成された対をなすデータサンプルをフィルタリングするステップを備える。これは、固有表現タグが上記クエリグループからの上記対応する選択における固有表現タグと一致しないカノニカルクエリを有する対をなすデータサンプルを除去するステップ、および上記カノニカルクエリの意味的距離メトリックと上記クエリグループからの上記対応する選択の意味的距離メトリックとの比較に基づいて、対をなすデータサンプルを除去するステップ、のうちの１つまたは複数を備えていてもよい。ソースクエリおよびカノニカルクエリの生成されたデータセットをフィルタリングする（すなわち、事後処理する）ことによって、データセットの品質を向上させ、その結果、訓練を向上させることができる。なお、生産実現例は、１００万を超える訓練サンプルを有するデータセットを含み得るので、この規模では、上記の動作にもかかわらず、統計ノイズおよび最適下限のソース・ターゲット対が依然として存在し得る。したがって、フィルタリングは、訓練前にこのような対をデータセットから除去することに役立つ。
【００１８】
特定の場合において、上記方法は、以下のメトリック、すなわち１つまたは複数のクラスタリング距離閾値、１つまたは複数のクラスタサイズ閾値、およびカノニカルクエリの選択のための１つまたは複数の頻度閾値、のうちの１つまたは複数を最適化するステップをさらに備える。これらのパラメータは、ドメイン、実現例および／またはアプリケーション当たり最適化されてもよい。特定のユースケースについて最適化を行うことにより、そのユースケースでの性能を向上させることができる。手動最適化手法が適用されてもよく、または自動最適化手法が適用されてもよい。
【００１９】
本開示の別の局面に従って、デジタルアシスタントに対するクエリを処理する方法が提供され、上記方法は、クエリを表す初期データを受信するステップと、上記クエリを表す上記初期データから入力シーケンスデータを生成するステップと、エンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャを使用して上記入力シーケンスデータを出力シーケンスデータにマッピングするステップとを備え、上記出力シーケンスデータは、上記クエリのカノニカルデータ表現を表し、上記方法はさらに、上記クエリに対する応答を求めるために、上記カノニカルデータ表現を処理するステップと、上記クエリに対する上記応答を提供するステップとを備える。したがって、訓練されたニューラルネットワークアーキテクチャ、たとえば上記の第１の局面または別の方法に従って訓練されたアーキテクチャを使用して、応答の成功を引き出しやすいカノニカルデータ表現にマッピングするように入来クエリを事前処理してもよい。したがって、上記方法は、チャットボットまたは音声アシスタントなどのデジタルアシスタントを向上させる事前フィルタリングまたはノイズ除去の一形態であると見なされ得る。
【００２０】
ある場合において、上記エンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャは、カノニカルクエリおよび対応する初期クエリを表す対をなすデータサンプル上で訓練され、上記対をなすデータサンプルは、クエリを表すデータと上記クエリに対する応答を表すデータとを含むクエリデータサンプルのベクトル表現をクラスタリングすることによって生成される。この場合、上記ニューラルネットワークアーキテクチャは、上記のメリットを得るために上記の訓練方法に従って訓練されてもよい。
【００２１】
ある場合において、上記クエリに対する応答を求めるために、上記カノニカルデータ表現を処理するステップは、上記出力シーケンスデータ内に提供される出力シーケンスのトップＫセットのうちの１つを選択するステップ、少なくとも上記出力シーケンスデータから導き出されたデータを言語モデルを用いて構文解析し、上記言語モデルによって適用されたスコアリングに基づいて出力シーケンスを選択するステップ、および上記クエリを表す上記初期データと少なくとも上記出力シーケンスデータから導き出されたデータとを固有表現抽出部を用いて構文解析し、上記構文解析されたデータにおける固有表現間の比較に基づいて出力シーケンスを選択するステップ、のうちの１つまたは複数を備える。個々にまたは（好ましくは）一緒に適用され得るこれらの事後処理動作のセットは、たとえば適切な応答を提供するために元の入力クエリの要素を保持することを確実にすること、および／または、正確かつ適切なクエリ応答による応答の見込みを最大化する、ニューラルネットワークアーキテクチャによって生成された考え得る出力のセットのうちの１つを選択することによって、クエリ処理のために選択される出力をさらに向上させることができる。
【００２２】
本開示の別の局面に従って、デジタルアシスタントのための機械学習システムは、クエリを表す初期データを受信して、上記初期データから導き出された入力シーケンスデータを出力するためのクエリインターフェイスと、上記入力シーケンスデータを出力シーケンスデータにマッピングするためのエンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャとを備え、上記出力シーケンスデータは、上記クエリのカノニカルデータ表現を表し、上記機械学習システムはさらに、上記クエリに対する応答を提供する際に使用される上記出力シーケンスデータを提供するための出力インターフェイスを備える。上記クエリインターフェイスは、音声テキスト化インターフェイスを備えていてもよい。この機械学習システムは、デジタルアシスタントのローカルクライアント（および、特定の場合には、埋め込み型）実現例および／または分散型実現例において提供されて、提供される支援を向上させ、より自然な対話を可能にすることができる。上記機械学習システムは、上記の方法のいずれかの関連する局面を適用するように構成されてもよい。
【００２３】
ある場合において、上記機械学習システムは、上記エンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャから複数の出力シーケンスを受信して、少なくとも１つの自然言語処理メトリックに基づいて上記複数の出力シーケンスのうちの１つを選択するための出力シーケンスフィルタを備える。この出力シーケンスフィルタは、上記のメリットを提供するために上記の事後処理を提供してもよい。
【００２４】
さらに別の局面において、命令を格納する非一時的なコンピュータ読取可能な記憶媒体が提供され、上記命令は、少なくとも１つのプロセッサによって実行されたときに、上記少なくとも１つのプロセッサに、クエリデータサンプルを含む訓練データを得ることと、上記クエリデータサンプルのベクトル表現を得ることと、上記ベクトル表現をクラスタリングすることと、上記クラスタリングされたベクトル表現に基づいてカノニカルクエリおよび対応するクエリグループを求めることと、選択されたカノニカルクエリと各々の選択されたカノニカルクエリに対応する上記クエリグループからの選択とに基づいて、対をなすデータサンプルを生成することと、上記対をなすデータサンプルを使用してエンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャを訓練することと、を行わせ、上記対をなすデータサンプル内の上記クエリグループからの上記選択は、入力シーケンスデータとして供給され、上記対応するカノニカルクエリは、出力シーケンスデータとして供給され、上記訓練されたエンコーダ・デコーダシーケンス・トゥ・シーケンスニューラル機械学習モデルは、クエリインターフェイス内で、初期クエリを表すデータを修正クエリを表すデータにマッピングするのに使用可能であり、上記修正クエリを表す上記データは、上記初期クエリに対する応答を提供するようにさらに処理される。特定の場合において、上記クエリデータサンプルは、音声クエリに関連する。たとえば、上記少なくとも１つのプロセッサは、音声制御デバイスのマイクロプロセッサまたは埋め込みプロセッサを備えていてもよい。他の例において、命令を格納する非一時的なコンピュータ読取可能な記憶媒体が提供されてもよく、上記命令は、少なくとも１つのプロセッサによって実行されたときに、上記少なくとも１つのプロセッサに上記の方法のうちのいずれか１つを実行させる。
【図面の簡単な説明】
【００２５】
【図１】一例に係るデジタルアシスタントのためのクエリプロセッサを示す概略図である。
【図２】一例に係る音声アシスタントを示す概略図である。
【図３】デジタルアシスタントとともに使用されるニューラルネットワークプリプロセッサの一例を示す概略図である。
【図４】一例に係るデジタルアシスタントとともに使用される機械学習システムを訓練する方法を示すフロー図である。
【図５】機械学習システムのための訓練データを生成するためのプロセスフローの一例を示す概略図である。
【図６Ａ】図４の方法に従って処理されたデータの一例を示す概略図である。
【図６Ｂ】図４の方法に従って処理されたデータの一例を示す概略図である。
【図６Ｃ】図４の方法に従って処理されたデータの一例を示す概略図である。
【図７Ａ】一例に係る非一時的なコンピュータ読取可能な記憶媒体に格納された命令のセットを処理するように適合されたコンピュータデバイスのさまざまな局面を示す概略図である。
【図７Ｂ】一例に係る非一時的なコンピュータ読取可能な記憶媒体に格納された命令のセットを処理するように適合されたコンピュータデバイスのさまざまな局面を示す概略図である。
【発明を実施するための形態】
【００２６】
詳細な説明
はじめに
さまざまな興味深い局面を示す本技術のさまざまな例について以下で説明する。一般に、例は、記載されている局面を任意の組み合わせで使用することができる。原理、局面および例を記載している本明細書における全ての記述は、それらの構造的等価物も機能的等価物も包含するよう意図されている。さらに、このような等価物は、現在公知の等価物も、将来開発される等価物、すなわち構造にかかわらず同一の機能を実行する、開発される任意の要素も包含することが意図されている。
【００２７】
なお、本明細書における単数形「ａ」、「ａｎ」および「ｔｈｅ」は、文脈上そうでないとする明確な指示がない限り、複数の指示対象を含む。本明細書全体にわたる「１つの」、「ある」、「特定の」、「さまざまな」および「場合」、「例」または同様の言い回しへの言及は、特定の例に関連付けて記載されている特定の局面、特徴、構造または特性が、開示されている発明の少なくとも１つの実施形態に含まれることを意味している。したがって、本明細書全体にわたる「ある場合において」、「少なくとも１つの例において」、「ある例において」、「特定の場合において」という表現および同様の言い回しの登場は、全てが同一の実施形態または同様の実施形態を指してもよいが、必ずしもそうではない。さらに、本明細書に記載されている局面および例は、単なる例示であり、当業者によって理解されるように請求項の範囲または精神を限定するものとして解釈されるべきではない。開示されている実施形態は、事実上、本明細書に記載されている任意の新規の局面を含む任意の例において作成または使用される。さらに、「含んでいる（including）」、「含む（includes）」、「有している（having）」、「有する（has）」、「とともに（with）」という表現またはそれらの変形体が詳細な説明および特許請求の範囲のいずれかで使用される限りにおいて、このような表現は、「備えている（comprising）」という表現と同様に包含的であるよう意図されている。複数の類似した要素を示す例においては、たとえ別々の参照番号が使用されていたとしても、いくつかのこのような例は、これら複数の類似した要素の役割を果たす単一の要素を扱ってもよい。
【００２８】
本明細書に記載されている特定の例は、実質的な処理のために「ノイズの混ざった」入力データを適格な入力データにマッピングすることによってデジタルアシスタントの性能を向上させる、デジタルアシスタントのためのニューラルネットワークベースのデータプリプロセッサを提供する。特定の例は、訓練データがどのように生成され得るかを説明しており、この訓練データは、エンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャ（技術水準のニューラルネットワーク翻訳システムに基づくものなど）を、このニューラルネットワークベースのデータプリプロセッサとして、すなわち訓練データを使用した訓練を介して動作するように適合させることを可能にする。特定の例は、たとえばアシスタントに対するクエリおよび対応する応答を表すデジタルアシスタントのための入力−出力対の既存のコレクションを取得し、これらを使用して入力事前処理のためのさらなる訓練データセットを生成することができる。これらの例は、入力−出力対の中のデータのベクトル表現をクラスタリングして、新たなソース−ターゲット対を生成することができ、これらの新たなソース−ターゲット対は、現実世界の入力（ソース）を好ましい形式（ターゲット）にどのようにマッピングするかをニューラルネットワークベースのデータプリプロセッサに教示する。
【００２９】
デジタルアシスタントの例
図１は、１つまたは複数のデジタルアシスタントを実現するために使用され得るシステムの第１の例１００を示す図である。この例１００においては分散型デジタルアシスタントシステムが示されているが、実現例は、分散処理に限定されるものではなく、その代わりにもっぱらローカルなハードウェア処理を使用してもよい。
【００３０】
図１は、デジタルアシスタントにクエリインターフェイスを提供する複数のクライアントデバイス１１０を示している。クライアントデバイス１１０は、埋め込み型コンピューティングデバイス、たとえば非コンピューティングデバイス内に位置する電子回路内の処理リソース、を含むさまざまなコンピューティングデバイスを備えていてもよい。図１において、クライアントデバイス１１０は、例として、パーソナルコンピューティングデバイス１１２と、ウェアラブルデバイス１１４と、モータビークル１１６と、ホームアシスタント１１８とを備える。これらの例は、限定的なものではない。たとえば、クライアントデバイスは、代わりに、冷蔵庫およびテレビなどの「スマート」機器、セキュリティ機器、レストラン注文ステーション、自動販売機、デスクトップおよびオフィスコンピューティングデバイス、カメラ、ならびにロボットデバイスを備えていてもよい。パーソナルコンピューティングデバイス１１２は、セルラー通信デバイスおよび／またはワイヤレスネットワーキングデバイスを備えていてもよい。パーソナルコンピューティングデバイス１１２は、スマートフォン、タブレット、ラップトップまたはデスクトップデバイスを備えていてもよい。図１におけるウェアラブルデバイス１１４は、いわゆる「スマート」ウォッチとして示されているが、代わりに、頭部装着型のユーザインターフェイスデバイス、イヤホン、ウェアラブルフィットネストラッカ、および埋め込み回路を有する「スマート」衣服などのデバイスを備えていてもよい。モータビークル１１６は、車として示されており、たとえば、クライアントデバイスは、車両制御システム内に埋め込まれてもよいが、他の車両タイプおよび形式、たとえば航空機または船舶が使用されてもよい。車両は、手動で制御されてもよく、および／または、自律的機能を有していてもよい（たとえば、空中「ドローン」）。ホームアシスタント１１８は、家で使用されるオーディオデバイスを備えていてもよい。
【００３１】
クライアントデバイス１１０によって提供されるクエリインターフェイスは、ユーザがデジタルアシスタントに照会することを可能にする。特定の例において、クエリインターフェイスは、音声クエリインターフェイスを備えていてもよい。たとえば、ユーザは、モータビークル１１６またはホームアシスタント１１８に話しかけてもよく、それらの発語は、情報提供の要求または特定のコマンドを実行する要求などの音声クエリを備えていてもよい。他の例において、クエリインターフェイスは、パーソナルコンピューティングデバイス１１２上のメッセージングアプリケーションなどのテキストインターフェイスを備えていてもよい。この場合、ユーザは、画面上のキーボードまたは別のユーザ入力デバイスを介してテキストを入力してもよい。いずれの場合にも、クエリは、たとえば入力されて指示された通りに、または音声テキスト化システムを介して、クライアントデバイス１１０によってテキストデータの形式で表されてもよい。クライアントデバイス１１０が音声制御デバイスを備える場合には、それは、１つまたは複数のマイクとオーディオプリプロセッサとをさらに備えていてもよい。
【００３２】
図１の例１００において、クライアントデバイス１１０は、１つまたは複数のネットワーク１３０を介してサーバデバイス１２０に通信可能に結合されている。１つまたは複数のネットワーク１３０は、さまざまな物理的技術（たとえば、イーサネット（登録商標）などの有線技術、ならびに／または、Ｗｉ−Ｆｉ（ＩＥＥＥ８０２．１１）規格およびセルラー通信技術などの無線技術）を使用して実現され得る１つまたは複数のローカルおよび／またはワイドエリアネットワークを備えていてもよい。特定の場合において、１つまたは複数のネットワーク１３０は、インターネットなどの１つまたは複数のプライベートおよびパブリックネットワークの組み合わせを備えていてもよい。クライアントデバイス１１０およびサーバデバイス１２０は、さまざまな技術および通信経路を使用してネットワークを介して通信してもよい。サーバデバイス１２０は、１つまたは複数の中央処理装置および／またはグラフィック処理ユニットとメモリリソースとを有するコンピューティングデバイスを備えていてもよい。
【００３３】
図１において、サーバデバイス１２０は、ネットワークインターフェイス１２２と、クエリプロセッサ１２４とを備える。ネットワークインターフェイス１２２は、通信インターフェイスと、（たとえば、多層通信スタックにおける）１つまたは複数の通信プロトコルの実現例とを備えていてもよい。ネットワークインターフェイス１２２は、ネットワーク１３０を介してクライアントデバイス１１０からデータを受信するように構成される。一実現例において、ネットワークインターフェイス１２２は、有線または無線物理インターフェイスと、予め規定されたフォーマットで要求を受信するための方法を提供する１つまたは複数の通信プロトコルとを備えていてもよい。ある場合において、ネットワークインターフェイス１２２は、インターネットプロトコルスイート上で動作するアプリケーション層インターフェイスを備えていてもよい。この場合、アプリケーション層インターフェイスは、サーバデバイス１２０を識別する特定のインターネットプロトコルアドレスの方に向けられる通信を受信するように構成されてもよく、経路名またはウェブアドレスに基づくルーティングは、１つまたは複数のプロキシおよび／または通信（たとえば、「ウェブ」）サーバによって実行される。
【００３４】
図１におけるサーバデバイス１２０は、クライアントデバイス１１０のうちの１つまたは複数からクエリデータ１４０を受信するように構成される。クエリデータ１４０は、たとえば音声テキスト化処理後の音声またはテキスト入力のいずれかによってユーザによってもたらされるクエリを表すテキストデータを備えていてもよい。他の場合において、クエリデータ１４０は、クエリプロセッサ１２４での受信後にテキストデータに変換されるオーディオデータまたはオーディオ特徴を備えていてもよい。クエリデータ１４０は、会話状態、ユーザ位置情報および他のユーザプロファイル情報などの関連付けられたメタデータも有していてもよい。クエリプロセッサ１２４は、クエリデータ１４０を受信して、応答データ１４２を算出してクエリに対する応答を提供するように構成される。応答データ１４２は、テキストデータ、ならびに／または、テキスト応答、音声応答（たとえば、テキスト音声化システムを介する）および視覚応答（たとえば、１つまたは複数のディスプレイデバイスを介する）のうちの１つまたは複数を生成するのに使用される応答表現から導き出されたデータを備えていてもよい。たとえば、ユーザは、「国道４８号線の交通量はどうですか？」、「今日の天気はどうですか？」または「最高のビーガンタコスはどこで買えますか？」などの情報を要求してもよく、応答データ１４２は、「国道４８号線の現在の交通量は少ないです」、「現在は晴れていますが、５０％の確率で雨が降るでしょう」、「３ブロック先のＸ通りのシェリアズスナック」などの情報を提供するフォーマット済みの応答であってもよい。ユーザは、人間であってもよく、または機械であってもよい（たとえば、後者は、テキストまたは人工音声を使用したマシン・トゥ・マシン通信に相当し得る）。なお、クエリプロセッサ１２４は、リモートサーバデバイス内に位置する代わりに、代替として初期応答を受信するクライアントデバイス１１０内に実装されてもよい（すなわち、ローカルに実装されてもよい）。さまざまな実現例は、ローカルおよびリモート処理機能をさまざまに分割してもよいが、全ての種類は、以下の例のプリプロセッサを使用してもよい。
【００３５】
本明細書に記載されている特定の例において、クエリプロセッサ１２４は、クエリプロセッサ１２４の動作の前にクエリデータを処理するためのニューラルネットワークプリプロセッサを備える。したがって、本願は、クエリプロセッサ１２４の下流の構成に向けられるものではない。クエリプロセッサ１２４は、構成されたモダリティのセットのうちの１つまたは複数の状態でユーザに供給されるようにクエリ（たとえば、テキスト形式またはその他の形式）を応答（たとえば、テキスト形式またはその他の形式）に変換するための任意の公知のまたは将来的なパイプラインを備えていてもよい。プリプロセッサをクエリプロセッサと強固に統合することも可能である。
【００３６】
図２は、図１におけるクライアントデバイス１１０のうちの１つを実現し得るデジタル音声アシスタント２１０の一例２００を示す図である。デジタル音声アシスタント２１０は、オーディオ入力データ２２０を受信して、１つまたは複数の構成されたモダリティにおける応答２３０を生成するように構成される。図２の例において、デジタル音声アシスタント２１０は、オーディオ出力２３２（たとえば、音声応答）、テキスト応答２３４および／または視覚応答２３６（映像の１つまたは複数のフレームなど）のうちの１つまたは複数としてクエリに対する応答を供給するように構成されてもよい。デジタル音声アシスタント２１０の実現例によってさまざまなモダリティが提供されてもよい。図２の例２００において、デジタル音声アシスタント２１０は、オーディオキャプチャデバイス２４２と、音声テキスト化システム２４４と、ニューラルネットワークプリプロセッサ２４６と、クエリプロセッサ２４８と、応答インターフェイス２５０とを備える。
【００３７】
オーディオキャプチャデバイス２４２は、時系列圧力変動測定値および／または時系列周波数測定値などの時系列測定値を備えるオーディオデータを生成するように構成された１つまたは複数のマイクを備えていてもよい。たとえば、パルス符号変調（ＰＣＭ）データの１つまたは複数のチャネルは、予め規定されたサンプリングレート（たとえば、８ｋＨｚまたは４４．１ｋＨｚ）で取り込まれてもよく、各サンプルは、予め規定されたビット数（たとえば、サンプル当たり８ビット、１６ビットまたは２４ビットであって、各サンプルは、整数または浮動小数点値を備える）によって表される。オーディオデータは、たとえば時間ドメインおよび周波数ドメインのうちの１つまたは複数におけるフィルタリングによって、ビーム形成およびノイズリダクションを適用することによって、ならびに／または、フィルタリングおよび正規化によって、取り込み後に処理されてもよい。ある場合において、オーディオデータは、たとえば高速フーリエ変換を実行してスペクトログラムデータの１つまたは複数のフレームを作成することによって、周波数ドメインにおける経時的な測定値に変換されてもよい。特定の場合において、フィルタバンクを適用して、メル周波数ケプストラム係数などの１つまたは複数の周波数ドメイン特徴の値を求めてもよい。本明細書に記載されているオーディオデータは、オーディオ処理パイプラインに沿って得られる任意の測定値を備えていてもよい。
【００３８】
音声テキスト化システム２４４は、オーディオデータを受信して、これをテキストデータ出力に翻訳する。たとえば、音声テキスト化システム２４４は、隠れマルコフモデルおよびニューラルネットワークアーキテクチャ（たとえば、畳み込みおよび再帰型ニューラルネットワークエンコーダ）のうちの１つまたは複数に基づく自動トランスクリプションシステムを備えていてもよい。この例において、音声テキスト化システム２４４は、ニューラルネットワークプリプロセッサ２４６にテキストデータ出力を提供する。ニューラルネットワークプリプロセッサ２４６は、クエリプロセッサ２４８の起動の前に、音声テキスト化システム２４４から受信されたテキストデータを処理するためのニューラルネットワークアーキテクチャを備える。たとえば、ニューラルネットワークプリプロセッサ２４６は、音声テキスト化システム２４４から受信されたテキストデータの第１のシーケンスを、クエリプロセッサ２４８に供給するのに適したテキストデータの第２のシーケンスに変換してもよい。ニューラルネットワークプリプロセッサ２４６は、機械翻訳システムと同様に動作してもよいが、この場合、テキストデータのシーケンスは両方とも、好ましくは同一の言語である。ニューラルネットワークプリプロセッサ２４６は、テキストデータのシーケンスをより一般的なまたは「カノニカルな」形式にマッピングするように訓練される。たとえば、ニューラルネットワークプリプロセッサ２４６は、ノイズの混ざったまたは不適格な入力テキストデータを適格なまたは標準化されたテキストデータにマッピングするように推論モードで動作してもよい。カノニカルな形式は、元のクエリのより頻度の高い、クリーンなおよび／または予想されるバージョンに相当し得る。たとえば、ユーザが背景のテレビを用いて天気について尋ねると、音声テキスト化システム２４４によって出力されるテキストデータは、「ここで．．．チャネルでは．．．えーと．．．天気はどうですか．．．後で．．．」に類似していてもよく、これは、ニューラルネットワークプリプロセッサ２４６によって「天気はどうですか？」にマッピングされてもよい。このように、ニューラルネットワークプリプロセッサ２４６は、クエリデータを、クエリプロセッサ２４８によってより正確かつ効率的に処理され得るカノニカルクエリデータにマッピングする。
【００３９】
図２において、クエリプロセッサ２４８は、図１のクエリプロセッサ１２４と同様に動作してもよい。クエリプロセッサ２４８は、マッピングされたテキストデータをニューラルネットワークプリプロセッサ２４６から受信して、元のクエリに対する応答を導き出すのに使用可能なデータを生成する。たとえば、これは、構成されたおよび／または利用可能なモダリティへのレンダリングのために応答インターフェイス２５０に提供されるテキストデータを備えていてもよい。クエリプロセッサ２４８は、応答を提供するためのデータを得るために、図１に示されるような応答を提供するおよび／またはネットワーク要求を行うようにローカル処理を実行してもよい。クエリプロセッサ２４８は、予めレンダリングされたデータ（たとえば、オーディオおよび／または映像サンプル）として応答を出力してもよく、または、応答インターフェイス２５０は、応答２３０を提供するためのテキストモダリティ化システム（テキスト音声化もしくはテキスト映像化システムなど）または他のベクトル化情報表現システム（楽器デジタルインターフェイス（ＭＩＤＩ）音楽、スケーラブルベクトルグラフィックス（ＳＶＧ）グラフィックスもしくはフラッシュアニメーションなど）を備えていてもよい。
【００４０】
機械学習システムの例
図３は、機械学習システム３１０の一例３００を示す図であり、機械学習システム３１０は、図２のニューラルネットワークプリプロセッサ２４６を提供するために使用されてもよく、または図１のクエリプロセッサ１２４の一部を形成してもよい。機械学習システム３１０は、デジタルアシスタントの一部を形成してもよく、またはデジタルアシスタントとともに使用されてもよい。機械学習システム３１０は、推論モードにおいて初期クエリデータ３２０を修正クエリデータ３３０にマッピングするように構成される。機械学習システム３１０は、クエリインターフェイス３４２と、エンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャ３４６と、出力インターフェイス３５０とを備える。クエリインターフェイス３４２は、初期クエリデータ３２０を受信して、初期クエリデータ３２０から導き出された入力シーケンスデータ３４４を提供するように構成される。ある場合において、初期クエリデータ３２０は、テキストデータを備えており、クエリインターフェイス３４２は、このテキストデータを構文解析して、数値のシーケンスの形式の入力シーケンスデータ３４４を提供するように構成される。クエリインターフェイス３４２は、入力シーケンスデータ３４４が整数（たとえば、トークンインデックスを表す）またはベクトル（たとえば、埋め込みベクトルを表す）のシーケンスを備えるようにトークナイザおよび／または埋め込み層を備えていてもよい。特定の場合において、トークン化および／または埋め込みは、ニューラルネットワークアーキテクチャ３４６の一部を形成してもよく、そのためクエリインターフェイス３４２によって省略されてもよい。クエリインターフェイス３４２は、内部インターフェイス（アプリケーションプログラミングインターフェイスもしくは関数インターフェイスなど）を備えていてもよく、またはリモートインターフェイス（分散システムにおけるネットワークインターフェイスなど）を備えていてもよい。
【００４１】
エンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャ３４６は、入力シーケンスデータ３４４を出力シーケンスデータ３４８にマッピングするように構成される。ニューラルネットワークアーキテクチャは、トークンの入力シーケンス（可変長であるかもしれない）をトークンの出力シーケンス（場合によっては入力シーケンス長とは異なっているであろう可変長であるかもしれない）にマッピングするので、「シーケンス・トゥ・シーケンス」と称される。さらに、ニューラルネットワークアーキテクチャは、たとえばニューラルアテンション層を用いて入力シーケンスを固定サイズベクトルとして「符号化し」、次いでたとえば再びニューラルアテンション層を用いてこの固定サイズベクトルを「復号して」、出力シーケンスを生成するように動作するニューラルネットワーク層の第１のセットを備えているので、エンコーダ・デコーダアーキテクチャと称される。入力シーケンスデータ３４４は、出力シーケンスデータ３４８のシーケンス長とは異なるかまたは同一のシーケンス長を有していてもよい。シーケンス長は、入力間でさまざまであってもよい（出力シーケンス長も同様であってもよい）。多くの場合、出力シーケンスデータ３４８のシーケンス長は、入力シーケンスデータ３４４のシーケンス長未満であってもよいが、出力シーケンスデータ３４８の長さの制御は、ニューラルネットワークアーキテクチャ３４６自体によって提供されてもよい。たとえば、ニューラルネットワークアーキテクチャ３４６は、シーケンスの開始および終了を表す＜開始＞および＜停止＞などの特別な制御トークンを使用して訓練されてもよい。したがって、出力シーケンスデータ３４８を形成する出力値は、＜停止＞値が出力されるまでニューラルネットワークアーキテクチャ３４６から読み取られてもよい。特定の場合において、ニューラルネットワークアーキテクチャ３４６は、トップのＫシーケンスのセット（Ｋは構成可能なパラメータである）などの複数の考え得る出力シーケンスを出力してもよい。
【００４２】
一般に、出力シーケンスデータ３４８は、クエリのカノニカルデータ表現を表す。図３に示されるように、それは、入力シーケンスデータ３４４と同様の形式であってもよく、たとえば整数トークンインデックスおよび／または埋め込みベクトルのシーケンスを備えていてもよい。出力インターフェイス３５０は、クエリに対する応答を提供する際に使用される出力シーケンスデータ３５０を処理するように構成される。図３の例３００において、出力インターフェイス３５０は、出力シーケンスデータ３４８を受信して、修正クエリデータ３３０を生成する。たとえば、出力インターフェイス３５０は、たとえばトークンインデックスを対応するテキストトークンと置換することによって、および／または、埋め込みベクトルをトークンの辞書からの選択にマッピングすることによって、出力シーケンスデータ３４８をテキストデータに戻してもよい。
【００４３】
ある場合において、エンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャ３４６は、ニューラル機械翻訳システムを備えていてもよく、このニューラル機械翻訳システムは、それが同一言語テキストマッピングを学習することを可能にする特定の訓練セットを用いて訓練される（たとえば、ゼロから、または予め訓練されたパラメータを使用して微調整される）。ニューラルネットワークアーキテクチャ３４６は、いわゆるトランスフォーマアーキテクチャ（ヴァスワニ等による論文「Attention Is All You Need」（２０１７年６月にアーカイブ（arXiv）上で公開）で紹介された初期設計から導き出されるものなどであって、この論文は引用によって本明細書に援用される）に基づいていてもよい。このトランスフォーマアーキテクチャは、連続的な符号化および復号段階を通してシーケンスデータに適用されるアテンション層を使用して、シーケンス出力を提供する。他のエンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャ３４６（再帰型ニューラルネットワークエンコーダおよび／またはデコーダに基づくものなど）も使用されてもよい。実現例は、ＰｙＴｏｒｃｈ、テンソルフローおよび／またはオープンニューラル機械翻訳ツールキットなどのオープンソースライブラリおよびツールキットを使用して、ニューラルネットワークアーキテクチャ３４６を実現してもよい。
【００４４】
ある場合において、クエリインターフェイス３４２は、図２における音声テキスト化システム２４４などの音声テキスト化システムを実装してもよい。この場合、クエリデータ３２０は、最初は図２に示されるように音声データとして受信されてもよい。他の場合において、クエリインターフェイス３４２は、リモートクライアントデバイスからクエリデータを受信するように適合された図１におけるネットワークインターフェイス１２２の一部を形成してもよい。さまざまな構成が可能である。
【００４５】
特定の例において、ニューラルネットワークアーキテクチャ３４６および出力インターフェイス３５０のうちの１つまたは複数は、出力シーケンスフィルタを備えていてもよい。この出力シーケンスフィルタは、エンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャ３４６から複数の出力シーケンスを受信して、少なくとも１つの自然言語処理メトリックに基づいて複数の出力シーケンスのうちの１つを選択するように構成されてもよい。たとえば、ニューラルネットワークアーキテクチャ３４６は、（たとえば、構成された事後処理段階によって）複数の考え得るシーケンスを出力として提供してもよい。ある場合において、クエリデータ３２０または入力シーケンスデータ３４４内に表される入力シーケンスと出力シーケンスとの類似度を表す自然言語メトリックが使用されてもよい。この場合、入力シーケンスに最も類似している出力シーケンスが選択されてもよい。別の場合において、言語モデルによって出力されるスコアを表す自然言語メトリックが使用されてもよく、このスコアは、言語モデルの信頼度のレベル（すなわち、出力シーケンスがどれぐらい構文解析しやすいかのレベル）を表す。この場合、最も高い言語モデルスコアを有する出力シーケンスが選択されてもよい。組み合わせスコアを出力する複合メトリック関数も定義されてもよく、出力シーケンスは、最も高い組み合わせスコアに基づいて選択される。出力シーケンスフィルタによって実行され得る事後処理のさらなる詳細については後述する。
【００４６】
機械学習システムを訓練する方法
図４は、デジタルアシスタントとともに使用される機械学習システムを訓練する方法の一例４００を示す図である。たとえば、機械学習システムは、図３の機械学習システム３１０を備えていてもよく、または、図１のクエリプロセッサ１２４もしくは図３のニューラルネットワークプリプロセッサ２４６のうちの１つまたは複数の一部を形成してもよい。方法４００は、１つまたは複数のプロセッサによって実行されるコンピュータプログラムコードとして具体化されてもよい。コンピュータプログラムコードは、非一時的なコンピュータ読取可能な媒体内に格納される命令のセットを形成してもよい。
【００４７】
ブロック４０５において、訓練データを得る。この訓練データは、クエリデータサンプルを備える。このクエリデータサンプルは、少なくともクエリを表すテキストデータから導き出されたデータを備えていてもよい。ある場合において、各クエリデータサンプルは、クエリデータサンプルに関連付けられたクエリに対する応答を表すテキストデータから導き出されたデータも備えていてもよい。各クエリデータサンプルは、たとえば図１におけるクライアントデバイス１１０のユーザによってもたらされるクエリを表すテキストの文字列などのテキストデータを備えていてもよい。他の場合において、クエリデータサンプルは、別の入力モダリティに従ってクエリまたはデータを表すオーディオデータを備えていてもよい。訓練データは、デジタルアシスタントによって取り込まれた現実世界のクエリ、ならびに／または、クエリおよび関連付けられた応答を特徴付けるパブリックデータセットから収集されてもよい。
【００４８】
ブロック４１０において、クエリデータサンプルのベクトル表現を得る。これは、クエリを表すテキストデータおよび対応する応答を表すテキストデータのうちの１つまたは複数のベクトル符号化を得ることを備えていてもよい。ベクトル符号化は、ニューラルネットワークエンコーダによって生成されてもよい。本明細書における例は、主にテキスト−ベクトルマッピングに基づいているが、他の例においては、直接的なオーディオ−ベクトルマッピングも使用されてもよい。ニューラルネットワークエンコーダは、機械学習システムとは別のニューラルネットワークアーキテクチャ（たとえば、ニューラルネットワークアーキテクチャ３４６とは異なるシステム）を備えていてもよく、または機械学習システムのエンコーダ部分（たとえば、エンコーダ・デコーダニューラルネットワークアーキテクチャ３４６のエンコーダ部分）を備えていてもよい。ある場合において、ニューラルネットワークエンコーダは、予め訓練されたセンテンスエンコーダ（２０１８年３月にアーカイブ上で公開され、引用によって本明細書に援用されるケール等による同一名の論文に記載されたユニバーサルセンテンスエンコーダ、または後述するセンテンス−ＢＥＲＴエンコーダなど）を備えていてもよい。ブロック４１０のためのベクトル符号化の形式は、実現例によってさまざまであってもよく、推論手順の一部を形成しなくてもよく、たとえば訓練データの作成のみに使用されてもよい。ベクトル表現は、予め規定された範囲（たとえば、０〜１または−１〜１）の範囲内で正規化される予め規定された数の浮動小数点要素（たとえば、２５６〜１０２４）を備えていてもよい。
【００４９】
ブロック４１５において、ブロック４１０において得られたベクトル表現をクラスタリングする。これは、ベクトル空間内のベクトル表現をクラスタリングすること、すなわち１つまたは複数のクラスタリング関数に基づいてクラスタを識別することを備えていてもよい。クラスタリング関数は、sci-kit learnなどの機械学習ライブラリによって提供されてもよい。なお、クラスタリングは、一般に、数百個の次元（たとえば、数百個のベクトル要素に対応する）を有するベクトル空間において実行され、これは、一般に、２つまたは３つの次元の世界では視覚化することが困難である。ある場合において、階層クラスタリング関数を使用して、クラスタを繰り返し定義してもよい。ある場合において、ベクトル表現は、クエリデータのベクトル表現と、付随する応答データのベクトル表現とを備えていてもよく、この場合、付随する応答データのベクトル表現は、第１段階においてクラスタリングされてもよく、クエリデータのベクトル表現は、第１段階クラスタリングの結果を使用して第２段階（たとえば、第１段階クラスタリングによって定義されたグループ内でのクラスタリングの第２段階）でクラスタリングされてもよい。クラスタリングは、コサイン類似度距離などのベクトル空間内の距離メトリックを評価して、この距離メトリックに基づいてベクトル空間内の隣接する点をグループ化することを備えていてもよい。
【００５０】
ブロック４２０において、クラスタリングされたベクトル表現に基づいてカノニカルクエリおよび対応するクエリグループを求める。これは、たとえばブロック４１５において求められた、さまざまなクエリに関連するベクトル表現のクラスタを選択して、各クラスタについて１つの代表的なクエリデータサンプルを求めることを備えていてもよい。たとえば、代表的な（カノニカルな）クエリデータサンプルは、当該クラスタ内により頻度の高いクエリデータサンプルを備えていてもよく、および／または、当該クラスタの集約ベクトル表現（当該グループの平均ベクトル表現など）に最も近いベクトル表現を有していてもよい。これらの場合、各クラスタまたはグループにおけるクエリデータサンプルは、対応するクエリグループからの選択されたカノニカルクエリデータサンプルではない。対応するクエリグループは、カノニカルクエリデータサンプルを含んでいてもよく、または含んでいなくてもよい（これは、訓練に重大な影響を及ぼさない）。好ましくは、カノニカルクエリデータサンプルは除外される。
【００５１】
ブロック４２５において、選択されたカノニカルクエリと各々の選択されたカノニカルクエリに対応するクエリグループからの選択とに基づいて、対をなすデータサンプルを生成する。たとえば、各クラスタについて、カノニカルクエリ（すなわち、テキストまたはシーケンス形式の上記クエリのデータ表現）は、ターゲットまたはグラウンドトゥルース出力データとして設定されてもよく、次に、このクラスタ内の各クエリは、ソース入力データとしてこのカノニカルクエリと対にされてもよい。したがって、ブロック４２５において、ソースデータとターゲットデータとの対を用いて訓練データの新たなセットが生成され、各対は、データサンプルを形成する。
【００５２】
次いで、ブロック４３０において、ブロック４２５からの対をなすデータサンプルを使用してエンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャを訓練する。ここで、対をなすデータサンプル内のクエリグループからの選択は、入力シーケンスデータとして供給され、対応するカノニカルクエリは、出力シーケンスデータとして供給される。したがって、エンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャは、ソースデータをターゲットデータにマッピングするように訓練される。ブロック４３０における訓練は、通常のトランスフォーマまたはニューラル機械翻訳システム訓練手順を使用してもよい。推奨されるパブリックな値に基づいておよび／または実験を介して、訓練のためのハイパーパラメータが求められてもよい。エンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャは、とりわけ、図３のエンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャ３４６を備えていてもよく、または図１におけるクエリプロセッサ１２４もしくは図２のニューラルネットワークプリプロセッサ２４６の一部を形成してもよい。エンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャは、一方向再帰型ニューラルネットワークアーキテクチャ、二方向再帰型ニューラルネットワークアーキテクチャ、トランスフォーマニューラルネットワークアーキテクチャおよび畳み込みニューラルネットワークアーキテクチャのうちの１つまたは複数に基づいていてもよい。ニューラルネットワークアーキテクチャの例のさらなる詳細は、クライン等による論文「The OpenNMT Neural Machine Translation Toolkit: 2020 Edition」（ＡＭＴＡ、２０２０年）に記載されており、この論文は引用によって本明細書に援用される。
【００５３】
訓練されたエンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャは、たとえば図２および図３を参照して説明したように、デジタルアシスタントとともに、初期クエリを表すデータを修正クエリを表すデータにマッピングするのに使用可能である。ニューラルネットワークアーキテクチャによって出力される修正クエリを表すデータは、たとえば図１および図２を参照して説明したように、初期クエリに対する応答を提供するようにさらに処理されてもよい。ブロック４２５においてクラスタから生成されたソースデータサンプルおよびターゲットデータサンプルを供給することによって、ニューラルネットワークアーキテクチャは、標準外のトークンのシーケンスを、成功裏のかつ正確なクエリ処理のための適格な入力を反映する標準的なまたはカノニカルなトークンのシーケンスにマッピング「できるようになる」。
【００５４】
プロセスフローの例
図５は、図４の訓練方法４００の一実現例の結果として生じ得るプロセスフローの一例を示す図である。この例において、初期訓練データのセット５１０は、テキストデータのＭ個の対、すなわちクエリデータを備える各対の第１の部分５１２と、応答データを備える各対の第２の部分５１４とを備える。このテキストデータは、文字列形式（たとえば、文字符号化のシーケンス）で提供されてもよく、または特定の処理パイプラインに適合された派生データ形式（たとえば、予めトークン化された整数リストなど）で提供されてもよい。
【００５５】
図４におけるブロック４１０などの第１のプロセスを介して、テキストデータ対５１２，５１４は、対応するベクトル対５２２，５２４に変換される。これは、データ対５１２，５１４におけるテキスト表現をトークン化して、トークン化されたテキスト表現にトランスフォーマまたは再帰型ニューラルネットワークアーキテクチャを適用して埋め込みベクトルを生成することを備えていてもよい。埋め込みベクトルを生成することは、上記のエンコーダのうちの１つまたはライマー等による論文「Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks」（２０１９年８月にアーカイブ上で公開）（この論文は引用によって本明細書に援用される）に記載されているセンテンス−ＢＥＲＴエンコーダなどのセンテンスエンコーダの適用を備えていてもよい。公知のパブリックセンテンスエンコーダパラメータが、別の訓練（たとえば、大きなデータセットに基づく予め訓練されたパラメータ）なしに使用されてもよい。図５はベクトル対５２２，５２４を示しているが、特定の実現例においては、これらは、たとえばテキストデータ対５１２，５１４または結果として生じるベクトル符号化のいずれかを連結することによって単一のベクトル表現に結合されてもよい。より大きなベクトルのマスキングされた次元もしくは制限された次元でクラスタリングを実行すること、または、別々のベクトル部分で二段階クラスタリングを実行することは、機能的に等価であり得て、または少なくとも好適な訓練データを生成するための同様の使用可能なグループ化を提供し得る。特定のテスト例において、ベクトル対５２２，５２４は、７６８次元のベクトルとして生成された。特定の実現例において、ベクトル対５２２，５２４は、データ検索の時間を節約するためにキャッシュされてもよい。
【００５６】
特定の変形例において、ベクトル対５２２，５２４（または、単一の結合されたベクトル）は、クラスタリングの前にさらに処理されてもよい。たとえば、特定の実現例において、次元低減プリプロセッサが適用されてもよい。次元低減プリプロセッサは、埋め込みベクトルを下位次元ベクトル空間に投影する動作を備えていてもよい。たとえば、ある場合において、初期ベクトル対５２２，５２４に対して主成分分析（ＰＣＡ）が実行されて、線形変分成分のセットを求めてもよく、これらの線形変分成分のセットは、ベクトル表現を分解するのに使用されてもよい。ある場合において、初期ベクトル対５２２，５２４によって表されるデータにおける特定の予め規定された変動量を表す線形変分成分のサブセットが選択されてもよい。ベクトル表現は、ＰＣＡを介して、単一の連結されたベクトルとして、または別々に、低減されてもよい。たとえば、クエリベクトルによって形成されたデータは、ＰＣＡフィッティング関数によって処理されてもよく、変動の９５％を表す線形変分成分のサブセットが選択されてもよく、変換された出力の要素は、線形変分成分のサブセットの各々のさまざまな量を表す。この動作は、高次元表現（たとえば、７６８個の要素）から低次元表現（たとえば、数百個の要素）に次元を低減することに役立ち得る。これは、メモリ効率を向上させ得る。
【００５７】
図４におけるブロック４１５を適用した結果として生じ得るプロセスの次の段階において、ベクトル表現５２２，５２４はクラスタリングされる。図５には、ｎ次元空間におけるクラスタリングの二次元概略図が示されている。上記のように、ｎは、数百に等しくてもよい。ある場合において、応答ベクトル５２４に基づくクラスタリングの第１段階が実行される。たとえば、これは、応答ベクトル５２４をクラスタリングすることを備えていてもよい。図５には、クラスタの２つの例５３２および５３４が示されている。ある場合において、クラスタリングは、階層クラスタリング手法を適用して、別々のクラスタを繰り返し結合することを備えていてもよく、たとえば、第１の予め規定された距離閾値に基づいて小さなクラスタが定義されてもよく、次いで、これらの小さなクラスタは、第２の予め規定された距離閾値に基づいて、それら自体がクラスタリングされるかまたは他の点と結合されてもよい。これらの距離閾値は、手動でおよび／または自動最適化手順を介して最適化されるハイパーパラメータを備えていてもよい。
【００５８】
一例において、クエリサンプル（たとえば、５１２）は、最初に、第１の規定された距離基準または応答ベクトル５２４を表す点間の閾値に基づいてグループ化されてもよい。これは、クラスタの第１のセットをもたらし得る。次いで、応答ベクトル５２４を表す残りの点は、第２の規定された距離基準または閾値を使用してクラスタリングされてもよい。第２の距離基準は、第１の距離基準よりも大きくてもよいが、第２の距離基準は、ほぼ同一の応答をグループ化するために低い値であってもよい。階層クラスタリング関数は、クラスタリングのための距離基準としてコサイン類似度距離を使用してもよい。この例において、初期のタイトなクラスタリングは、非常に類似している応答のみがグループ化されることを保証する。しかし、これは、他の類似している応答を別々のクラスタに配置し得る。したがって、このクラスタリング動作は、複数回実行されて、最初は切り離されている類似している応答クラスタを結合してもよい。ある場合において、テキスト応答は、凝集型クラスタリングを使用してクラスタリングされてもよく、次いで、対応するテキストクエリは、やはり同一のアプローチを使用してクラスタリングされてもよい。例の一つのセットにおいて、さまざまなクエリベクトル５２２および応答ベクトル５２４にさまざまなレベルのクラスタリングが適用されてもよい。たとえば、クエリベクトルの初期グループは、（たとえば、応答空間での１回または複数回のクラスタリング後の）応答ベクトルのクラスタに基づいていてもよく、次いで、クラスタリングは、クエリベクトル空間における初期グループ内（または、初期グループ間）で実行されてもよい。
【００５９】
図６Ａは、応答クラスタに基づいてグループ化されるクエリの一例を示す図である。図６Ａは、テキストデータのリストとして、各クラスタについてクエリデータ（たとえば、５１２）の３つのクラスタ６０１，６０２および６０３を示している。この例において、３つのクラスタ６０１〜６０３は、クラスタリングの初期段階の結果として生じ得る。その次のクラスタリングの繰り返しにおいて、クラスタ６０１と６０３とが（たとえば、各クラスタの重心または平均間の距離および第２の予め規定された距離閾値に基づいて）結合されてもよい。
【００６０】
図５に戻って、クラスタリングは、クエリデータのグループ５４０などのクエリのグループをもたらす。これらは、図６Ａに示されるグループ（または、２つのグループ６０２およびグループ６０１と６０３とを結合した結果）と類似していてもよい。これらのクエリのグループは、元のデータ空間（たとえば、５１０に基づく）またはベクトル空間のうちの１つまたは複数におけるグループであってもよい。図４におけるブロック４２０の一部として、応答クラスタ（たとえば、５３２，５３４）に対応するクエリのグループは、グループメンバーシップをさらに正確にするようにさらに処理されてもよい。たとえば、各応答クラスタが順番に取得されて、これらのクラスタにおける応答点またはベクトルが識別されてもよく、次いで、これらの応答点またはベクトル（たとえば、データセット５１０からの応答ベクトルｉおよび対応するクエリｉ）に対応するクエリインデックスは、応答クラスタに従ってグループ化される。特定の場合において、各グループ内のクエリベクトルは、それら自体がクラスタリングされてもよい。これを使用して、たとえばクエリクラスタの重心までの距離に基づいてグループのうちの１つをそのグループのカノニカルクエリとして選択してもよい。
【００６１】
特定の場合において、たとえばブロック４１５の結果として生じるクラスタリングされたベクトル表現は、図４におけるブロック４２０の一部としてフィルタリングされてもよい。これは、クエリベクトル５２２の各クラスタの重心を求めて、この重心から予め規定された距離以上である所与のクラスタのクエリのベクトル表現を割り当て解除することを備えていてもよい。追加として、または代替として、これは、クエリベクトル５２２の各クラスタのサイズを求めて、このサイズが予め規定された閾値を下回ったことに応答して所与のクラスタのクエリのベクトル表現を割り当て解除することを備えていてもよい。次いで、これらのフィルタリング動作の後に再割り当て動作が行われてもよく、それによって、以前に割り当て解除されたベクトル表現が、最も近いクラスタに再割り当てされる。したがって、このフィルタリングは、応答ベクトル５２４とは対照的にクエリベクトル５２２に基づいたクラスタリングの第２段階と見なされてもよい。
【００６２】
図５は、クエリの各グループまたはクラスタについてカノニカルクエリを選択するプロセスも示している。図５において、カノニカルクエリは、各グループ内のクエリの順序付きリスト５４４における最上位クエリ５４２として選択される。一例において、この順序付きリストは、元のデータセット５１０における発生頻度に基づいていてもよい。別の例において、この順序付きリストは、クエリクラスタの重心からの距離に基づいていてもよい。さらに別の例において、複数のメトリックが結合されて評価されてもよい。最上位クエリ５４２は、最も頻繁に発生するおよび／またはクエリクラスタの重心に最も近いクエリであってもよい。
【００６３】
図５には、カノニカルクエリ５４６（最上位クエリ５４２として選択される）がどのようにターゲットデータサンプルとして設定され、グループまたはクラスタ内の残りのクエリがどのようにソースデータサンプル５４８として設定されるかが示されている。これは、対応するクラスタリングされたベクトル表現に基づいてデータセット５１０から元のテキストデータ入力を選択することを備えていてもよい。図５の下には、グループ内の各ソースデータサンプル５５２がどのようにターゲットデータサンプル５５４と対にされて、複数のターゲット−ソースデータサンプル５５０を作成するかが示されており、これらの複数のターゲット−ソースデータサンプル５５０は、図４のブロック４３０におけるニューラルネットワークアーキテクチャを訓練するための訓練セットを形成する。
【００６４】
一変形例において、図４の方法４００および／または図５に示されるプロセスは、機械学習システムを訓練する前に、ターゲット−ソースデータサンプル５５０などの生成された対をなすデータサンプルをフィルタリングすることをさらに備える。このフィルタリングは、規定された基準を満たさないマッピングされた出力シーケンスを廃棄するために推論モードでも適用されてもよい。フィルタリング段階を有することにより、機械学習システムのための訓練セットの品質を向上させ、したがって推論中のマッピングを向上させることができる。それは、推論後の事後処理段階として実行された場合には、機械学習システムに対する制約も緩和し、たとえばマッピング出力シーケンス内にエラーおよびノイズを時折発生させ得るが、これらのエラーおよびノイズは、次いで、クエリ処理パイプラインによって処理され得る。
【００６５】
ある場合において、上記のフィルタリングは、固有表現タグがクエリグループからの対応する選択における固有表現タグに一致しないカノニカルクエリを有する対をなすデータサンプルを除去すること、および、当該カノニカルクエリの意味的距離メトリックとクエリグループからの対応する選択の意味的距離メトリックとの比較に基づいて、対をなすデータサンプルを除去すること、のうちの１つまたは複数を備える。第１の場合において、方法４００は、たとえばブロック４０５または４１０の一部として、クエリデータ５１２および応答データ５１４のうちの１つまたは複数に対して固有表現抽出を実行することを備えていてもよい。これは、ＥｘｐｌｏｓｉｏｎＡＩ社によって管理されるｓｐａＣｙライブラリまたはスタンフォード大学によって提供されるスタンフォード固有表現抽出部などの利用可能な機械学習処理ライブラリからの１つまたは複数の機能を適用することによって実行されてもよい。固有表現抽出は、人、場所および時間などの一貫した指示対象を有するエンティティまたはものに関連するトークン（たとえば、文字、単語または単語群）をテキストデータ内に位置づけるために非構造化テキストデータに適用され得る公知の構文解析機能である。特定の場合において、固有表現抽出は、ベクトル化およびクラスタリングの前にクエリデータ５１２および応答データ５１４の両方に対して実行される。この場合、方法４００は、人、場所および時間の検出された名前を規定のタグ＜人＞、＜場所＞および＜時間＞とそれぞれ置換するなど、タグ付けされた固有表現のテキストデータを固有表現タイプタグと置換することを備えていてもよい。これは、さまざまな固有表現を有する類似したクエリをクラスタリングすることに役立つ。たとえば、「トロントの天気はどうですか？」および「サンディエゴの天気はどうですか？」というテキスト文字列は両方とも、「［＜場所＞、の、天気、は、どう、ですか、？］」というトークンシーケンスに変換されるため、ベクトル空間内の共通の点にマッピングされてもよい。
【００６６】
特定の場合において、固有表現抽出およびタグ置換が上記のように実行される場合、元のテキストトークンは、対５１２および５１４などの処理されたテキスト部分に関連付けて（たとえば、処理されたテキスト部分とともに、または処理されたテキスト部分によって索引付けされて）格納されてもよい。機械学習システムを訓練するためのデータセット５５０の生成後に、元のテキストトークンは、データサンプルに再び書き込まれてもよい。たとえば、固有表現構文解析後、クエリデータ５１２は、［［「＜場所＞、の、天気、は、どう、ですか、？」］、「トロント」］を備えていてもよく、ここでは、第１のリスト要素に対してクラスタリングが実行され、次いで、ターゲットデータ５５２およびソースデータ５５４のうちの１つにおけるテキストトークン内で、元のトークンである「トロント」が＜場所＞の代わりにトークンのセットに再び挿入され、すなわち再び［「「トロント」、の、天気、は、どう、ですか、？」］になる。これは、ソースデータサンプル５１２に対してもターゲットデータサンプル５１４に対しても実行され、ソースデータサンプル５１２においてもターゲットデータサンプル５１４においても同一の置換が実行され、すなわち「トロント」が＜場所＞タグの代わりに挿入される。これは、たとえば訓練データを強化して精度を向上させることにも役立ち得る。なぜなら、固有表現はさまざまであるが共通の処理された形式を有するソースクエリサンプルは、さらなる異なる固有表現を有するターゲットクエリサンプルにマッピングされてもよく、次いで、元の固有表現のさまざまなバージョンを使用してさまざまなバージョンが作成されてもよいからである。たとえば、データ６０１および６０３における全てのクエリを１つのターゲットデータサンプルにマッピングして、最初に１６個のソース−ターゲット対を生成してもよく、次いで、１６個を超える多くのエンティティが存在し得るさまざまな日付および場所に対応する全ての元の＜日付＞および＜場所＞固有表現を１６個のソース−ターゲット対のさまざまなコピーに挿入して、１６個を超える訓練サンプルを生成してもよい。
【００６７】
さらなる事後処理フィルタは、さらに、所与の対のソースデータサンプル５１２およびターゲットデータサンプル５１４内の固有表現を比較して、この比較結果を使用して、当該対が除去されるべきであるかを判断してもよい。たとえば、ソースにおける固有表現タグとターゲットテキストにおける固有表現タグとが一致しない場合、所与の対は削除されてもよい。これは、クエリに対して応答するのに必要とされる任意の固有表現タグがソースデータサンプルにもターゲットデータサンプルにも存在することを確実にする。たとえば、＜日付＞および／または＜場所＞がソースクエリ５５２内に存在する場合、それらは、訓練データ５５０内に残るようにターゲットクエリ５５４内にも存在する必要がある。
【００６８】
意味的距離に関するチェックが実行される場合、これは、ソースデータサンプルとターゲットデータサンプルとの間でベクトル空間内の距離基準を比較し、予め規定された閾値よりも大きなデータサンプル対を除去することを備えていてもよい。また、それは、ソースデータサンプルについてもターゲットデータサンプルについても言語構文解析メトリックを生成し、次いでこれらのメトリックの比較に基づいてデータサンプルを除去することも備えていてもよい。さらに別の場合において、ソースデータサンプルおよびターゲットデータサンプルのうちの１つまたは複数にさらなるテストが適用されてもよく、ソースデータサンプルおよびターゲットデータサンプルのうちの１つまたは複数が、予め規定された閾値を下回るまたは上回るテストメトリックを有する場合に、対がデータサンプルとして削除されてもよい。たとえば、ターゲットデータサンプルに提供される言語モデルの信頼度スコアが、予め規定された閾値を下回る場合、たとえばターゲットデータサンプルが構文解析しにくいまたは適格なテキストを反映しないことを示す場合、データサンプルは削除されてもよい。この言語モデルは、たとえば音声クエリを構文解析したり音声応答をレンダリングしたりするのに使用される、デジタルアシスタントに関連付けられた音声テキスト化システムおよびテキスト音声化システムのうちの１つまたは複数によって使用される言語モデルであってもよい。
【００６９】
ここで、推論モードで適用され得る事後処理を参照して、これは、機械学習システムによって提供される考え得るまたは候補となる出力シーケンスのセットからクエリ処理のための出力シーケンスを選択するために適用されてもよい。ある場合において、たとえばエンコーダ・デコーダシーケンス・トゥ・シーケンスニューラルネットワークアーキテクチャの形式の機械学習システムは、標準的な動作の一部として、考え得るまたは候補となる出力シーケンスのセットを出力する選択肢を有していてもよい。たとえば、提供される考え得るまたは候補となる出力シーケンスの数は、たとえば考え得るトップＫ出力シーケンスに対応する機械学習システムのハイパーパラメータであってもよい。事後処理のために、後述するフィルタのうちの１つまたは複数が適用されてもよい。
【００７０】
第１の場合において、フィルタリングは、標準的な動作の一部として機械学習システムによって出力される信頼度または予測スコアに基づいて実行されてもよい。たとえば、これは、他の比較用途において各々の考え得る出力シーケンスについての信頼度レベル（たとえば、機械翻訳で使用されたときの翻訳のセットの各々における信頼度）を示す確率値を備えていてもよい。したがって、この信頼度または予測スコアは、クエリ処理のための出力シーケンスを選択するためのメトリックとして使用されてもよい。ある場合において、これは、ソースデータサンプルのベクトル表現とターゲットデータサンプルのベクトル表現とを比較することによって生成されるコサイン類似度スコアと結合されてもよい。最終スコアは、合成関数を使用して生成されてもよく、最高スコアの出力シーケンスは、機械学習システムの出力として選択されてもよい。ある場合において、最高スコアの出力シーケンスは、これを出力として使用するか否かまたはエラーを返すか否かを判断するための閾値とも比較されてもよく、たとえば、エラーを返すことにより、デジタルアシスタントは、それらのクエリを繰り返すようにユーザに要求することになる。
【００７１】
事後処理の第２の場合において、固有表現タグ一致動作が実行されてもよい。これは、訓練データセット５５０に適用される上記の固有表現タグ一致動作と同様であってもよい。この場合、固有表現タグ一致動作は、固有表現タグが、入力シーケンスデータ（たとえば、クエリデータ３２０のテキスト形式から抽出）に関連付けられた固有表現タグと一致しない考え得るまたは候補となる出力シーケンスを除去することを備えていてもよい。たとえば、固有表現抽出は、クエリデータ３２０のテキスト形式に対しても、考え得るまたは候補となる出力シーケンスの各々のテキスト形式に対しても実行されてもよい。好ましくは、機械学習システムは、元の固有表現値（たとえば、「トロント」、「午後１２時１５分」、「マイク」）を用いて訓練され、これらを出力シーケンスに渡す出力を生成するように構成される。固有表現タグ一致は、機械学習システムの入力テキストデータ内でも出力テキストデータ内でもタグタイプ（たとえば、＜場所＞、＜時間＞）とタグ値（たとえば、「トロント」、「午後１２時１５分」）とが一致することを必要とし得る。所与の候補出力シーケンス、たとえばより高いまたは最も高いスコアの出力シーケンスにさえ一致がなければ、当該出力シーケンスは、クエリ処理のために可能性のリストから除去されてもよい。固有表現一致と加えて、またはその代わりに、名詞句一致も適用されてもよい。
【００７２】
第３の場合において、提案された出力シーケンスは、クエリ処理のために渡される前に品詞検証を受けてもよい。これは、上記の複合スコアリングおよび固有表現一致後に適用されてもよい。この事後処理チェックは、クエリ処理のために渡されるいかなる出力も文法的に正しいまたは正確な文であることを確実にするために適用されてもよい。
【００７３】
図６Ｂは、品詞（ＰＯＳ）検証の適用の結果として生じるデータ６１０を示す図である。この検証は、クエリフィールド６１２として示されている候補出力シーケンスのテキストバージョンに対して実行される。この検証では、固有表現抽出が上記のように実行されて、クエリ開始（＜ＢＯＱ＞）タグおよびクエリ終了（＜ＥＯＱ＞）タグが追加される。この処理からの出力は、タグ付けされたクエリ６１４として示されている。この後、品詞タグ付けが適用されて、各トークンのスピーチタグが、図６Ｂにおいて６１６として示されている出力品詞リストに格納される。品詞タグ付けは、上記のｓｐａＣｙまたはスタンフォード大学によって提供される自然言語ツールキット（ＮＬＴＫ）などの公知の自然言語処理ライブラリを使用して実行されてもよい。図６Ｂに見られるように、標準的な品詞タグ付け機能は、これらのトークンに品詞タグを使用するのではなく、既存の固有表現およびカスタムタグ（＜ＢＯＱ＞、＜場所＞、＜日付＞、＜ＥＯＱ＞）自体を保持するように構成される（たとえば、既存のタグのための品詞変換を効果的にスキップする）。次いで、品詞リストは、構文解析されてもよく、構文解析の出力は、クエリ６１２を維持してクエリ処理のためにそれを渡すか否か、またはクエリを拒否して別の出力を選択するもしくはエラーを返すか否かを判断するのに使用される。
【００７４】
第３の場合において、応答の成功をもたらしたクエリのデータベース、たとえば図５におけるクエリデータ５１２から、構文解析木のようなオブジェクトが構築されてもよい。この場合、クエリデータ５１２におけるサンプルは、上記の６１６と同様の品詞リストに変換されてもよい。したがって、「成功的な」クエリのための品詞リストのセットは、比較データベースとして使用されてもよい。したがって、提案された出力クエリ６１２について生成される品詞リスト６１６は、この比較データと比較されて（たとえば、構築された構文解析木がトラバースされてもよい）、一致（たとえば、＜ＥＯＱ＞トークンまでの構文解析の成功）があるか否かを判断してもよい。図６Ｂでは、品詞リスト全体がトラバースされ（たとえば、トラバースされたフィールドデータ６２０が品詞リスト６１６全体と一致し）、（たとえば、６２２に示される一致したシーケンスの識別子によって示されるように）一致が比較データベースに位置づけられているので、ブーリアン変数６１８によって示されるように検証は成功している。したがって、この場合、クエリ６１２は、クエリ処理のための好適な「翻訳された」出力クエリとして確定されてもよく、クエリ６１２は、たとえばさらなる処理のためにクエリプロセッサ１２４またはクエリプロセッサ２４８によって送られて、図１または図２における応答１４２または２３０を生成するのに使用される。
【００７５】
上記のように、本明細書に記載されているアプローチは、訓練セット５５０のフィルタリングおよび訓練された機械学習システムによる生成された考え得る出力シーケンスのフィルタリングのうちの１つまたは複数で使用されるように適合されてもよい。たとえば、訓練データ事後処理または出力シーケンス事後処理のうちの一方に関して上記したアプローチは、他方にも適用されてもよい。ある場合において、訓練セット５５０のフィルタリングまたは訓練された機械学習システムによる生成された考え得る出力シーケンスのフィルタリングは、複数の異なるメトリックの合成重み付け関数を使用してもよい。これらの異なるメトリックは、上記の基準の任意の組み合わせに基づいていてもよい。この場合、この合成重み付け関数によって正規化合成メトリック値が生成されてもよく、これは、訓練データサンプルを保持するか否か、および／または、候補出力シーケンスのセットからさらなる処理のための出力シーケンスを選択するか否かを判断するための予め規定された閾値と比較されてもよい。合成重み付け関数の重みは、予め規定されたまたは学習されたハイパーパラメータであってもよい（特定の場合において、１であってもよい）。事後処理は、たとえば本明細書に記載されている機械学習システムによって実行されるクエリ翻訳または修正に加えて、またはそれと相乗効果的に、訓練データ５５０およびクエリ処理に使用される出力シーケンスの品質を（さらに）向上させることに役立つ任意の動作である。
【００７６】
クエリ事前処理の例
図６Ｃは、本明細書に記載されているように構成および訓練された機械学習システムを使用して実行され得るクエリマッピングのいくつかの例を示す図である。左側は、考え得るクエリデータ入力６３２，６４２，６５２を示している。これらは、クエリインターフェイス３４２で受信された初期クエリデータ３２０（または、上記インターフェイスにおける部分的に処理されたクエリデータ）に関連していてもよい。右側は、考え得る修正クエリデータ出力６３４，６４４，６５４を示している。これらは、図３において出力された修正クエリデータ３３０（または、出力インターフェイス３５０における部分的に処理された修正クエリデータ）に関連していてもよい。なお、これらの例は、説明しやすくするために当然のことながら簡略化されており、実際のデータフォーマットは、実現例に示されているものとは異なっていてもよい。図６Ｃでは、固有表現抽出が実行されており、固有表現は山括弧＜...＞内に示されている（ここでも、タグ付け形式は、利用される構文解析ライブラリに基づいて、実現例によって異なっていてもよい）。第１の例において、「妻と私は、＜水曜日＞に＜シアトル＞に行く予定です。荷物をスーツケースに詰める前に天気をチェックするように妻に頼まれました。」という初期入力クエリ６３２は、「＜水曜日＞の＜シアトル＞の天気を教えて下さい」というカノニカルクエリ６３４に「翻訳」される。このカノニカルクエリは、適格であり、応答を生成するように処理しやすいことが分かる。同様に、第２の例において、「＜明日＞＜サンフランシスコ＞に行く予定です。雨が降るだろうか。」という初期入力クエリ６４２は、「＜サンフランシスコ＞では＜明日＞雨が降りますか」というカノニカルクエリ６４４に「翻訳」される。最後に、何らかの重複するまたは混乱させる発話を有する「＜明日＞、＜シアトル＞はどのような天気ですか」という初期入力クエリ６５２は、「＜シアトル＞の＜明日＞の天気はどうですか」というカノニカルクエリ６５４にマッピングされる。
【００７７】
ここに記載されている例は、任意の形式の対話または会話システム（たとえば、オンラインでおよびショートメッセージサービスを介して使用されるテキストチャットボット）において使用されてもよいが、それらは、不明瞭で不適格な発話が例外ではなく標準であることを実験およびデータ収集が証明している（人間は、常に適格な発話を行うと当然のことながら想像するが、現実世界の発話記録に関する実験は、これが実際には真実ではなく、組み込まれた正バイアスを反映したものであることを示している）音声アシスタントおよび音声クエリインターフェイスに特に適している。
【００７８】
図６Ｃにおいて、第３の例６５２，６５４は、任意の固有表現抽出プロセスを示すように注釈をつけられている。この例において、テキスト形式の入力クエリデータ６５２は、構文解析され、「シアトル」および「明日」というトークンは、それぞれのタグタイプ＜場所＞６６２および＜日付＞６６４を有する固有表現として検出される。この場合、元のトークン値は、タグタイプ６６２および６６４に関連付けて変数６７２，６７４として格納される。図６Ｃには、出力６５４に対して実行される固有表現抽出の結果６８４が示されている。ここでは、事後処理検証チェックの一部としてタグタイプ６６２，６６４およびタグ値６７２，６７４をどのように一致させ得るかが示され得る。
【００７９】
特定の変形例において、機械学習システムは、固有表現値ではなく固有表現タグを使用するデータサンプル（たとえば、６５２ではなく６８４のようなクエリデータ）に対して訓練されてもよい。この場合、機械学習システムは、（たとえば、ソースにおける固有表現タグとターゲットにおける固有表現タグとが一致するフィルタリングされた訓練データの結果として）入力から出力まで固有表現タグを維持するように訓練されてもよい。しかし、このアプローチは、初めは固有表現タグを使用して訓練されないであろう大型の予め訓練されたニューラルネットワークアーキテクチャ（たとえば、利用可能な予め訓練された単一言語「言語モデル」またはニューラル翻訳システム）の使用とは相性がよくないかもしれない。大型の予め訓練されたニューラルネットワークアーキテクチャが使用される（たとえば、それらは、より自然なマッピングに好ましいであろう）場合、訓練データ（５５０など）は、（たとえば、６３２〜６５４の通りに）実際の固有表現値で構成されてもよく、固有表現抽出は、並列する事前および事後処理動作として実行されてもよい。特定の場合において、予め訓練されたニューラルネットワークアーキテクチャを使用した後にいわゆる転移学習訓練を適用することが好ましく、予め訓練されたパラメータは、特定のユースケース（この場合、クエリマッピング）に合わせて微調整される。これにより、予め訓練されたモデルにおいて具体化される言語学の原則を保持することが可能になり得て、特定のユースケースは、「オントップで（on-top）」素早く学習される。これは、ゼロからのニューラルネットワークアーキテクチャの訓練に好ましいであろう。それは、訓練を高速化し、マッピングを向上させることができる。
【００８０】
サーバデバイスの例
図７Ａおよび図７Ｂは、本明細書に記載されている特定の方法および機械学習システムを実現するために使用され得るサーバデバイスの一例７１０を示す図である。図７Ａは、図１におけるサーバデバイス１２０、または機械学習システム３１０（たとえば、これがリモートで実現される場合）を実現し得るサーバデバイスの一例７１０を示している。サーバデバイス７１０は、ラックマウント型のサーバブレードマルチプロセッササーバシステムを備えていてもよい。それは、並行してソフトウェアを実行する複数のネットワーク接続型のコンピュータプロセッサを備えていてもよい。図７Ｂは、サーバデバイス７１０の特定の例示的なコンポーネントを示している。サーバデバイス７１０は、コンピュータプロセッサ（ＣＰＵ）コア７１２のマルチコアクラスタと、グラフィックスプロセッサ（ＧＰＵ）コア７１４のマルチコアクラスタとを備える。これらのプロセッサは、プログラムコードおよびデータ格納のために、基板レベルインターコネクト７１６を介してランダムアクセスメモリ（ＲＡＭ）デバイス７１８に接続されている。サーバシステム７１０は、これらのプロセッサがインターネットにアクセスすることを可能にするためのネットワークインターフェイス７２０も備える。ＲＡＭデバイスに格納された命令をインターフェイス７１６を介して実行することによって、ＣＰＵ７１２およびＧＰＵ７１４は、本明細書に記載されている方法のステップを実行してもよい。特定の場合において、本明細書に記載されているクライアントデバイスは、同様の一般的なコンポーネント配置を有していてもよいが、特定の場合において、より少ないコンピューティングリソースを有していてもよく、専用のグラフィックスプロセッサ７１４を有していなくてもよい。クライアントデバイスは、本明細書に記載されている方法のステップをサーバデバイス７１０と同様に実行する１つまたは複数のＣＰＵを有していてもよい。特定の場合において、サーバデバイス７１０は、ニューラルネットワークアーキテクチャの訓練を実行してパラメータのセットを求めるのに使用されてもよく、これらのパラメータのセットは、次いで、（たとえば、クライアントデバイスにおける）ニューラルネットワークアーキテクチャのローカルでのインスタンス化に対して配布される。
【００８１】
ハイパーパラメータおよびテスト構成の例
上記のように、機械学習システムは、複数のハイパーパラメータで構成されてもよい。ハイパーパラメータの値は、業界のベストプラクティス、実験および／または自動最適化に基づいて設定されてもよい。追加のハイパーパラメータを訓練する方法は、クラスタリング距離閾値（たとえば、コサイン距離閾値）、クラスタサイズ閾値、およびカノニカルクエリの選択のための頻度（たとえば、ターゲットデータサンプルカウント）閾値のうちの１つまたは複数を備えていてもよい。特定の場合において、動作のさまざまなドメインのためにさまざまなハイパーパラメータを求めてもよい。たとえば、ハイパーパラメータの１つのセットが自動車ドメインのために選択されてもよく、別のセットが医療ドメインチャットボットのために選択されてもよく、第３のセットが家庭用音声アシスタントのために選択されてもよい。
【００８２】
以下は、機械学習モデルのハイパーパラメータとして一般に選択および／または最適化され得るハイパーパラメータのいくつかの例である。すなわち、入力および出力のための単語埋め込みサイズ、エンコーダタイプ（再帰型ニューラルネットワーク、二方向ニューラルネットワーク、グラフニューラルネットワーク（ゲーテッド（gated）グラフニューラルネットワークなど）、トランスフォーマニューラルネットワーク、畳み込みニューラルネットワークおよびミーン（mean）ニューラルネットワークのうちの１つとして選択されてもよい）、デコーダタイプ（再帰型ニューラルネットワーク、トランスフォーマニューラルネットワークおよび畳み込みニューラルネットワークのうちの１つとして選択されてもよい）、複数の符号化層、複数の復号層、任意の再帰型ニューラルネットワーク隠れ状態のサイズ、パラメータ初期化（たとえば、これが実行されるか否か、および／または、サポートを伴う一様分布で、もしくは、トランスフォーマアーキテクチャのためのＸａｖｉｅｒ一様分布を伴うＧｌｏｒｏｔ初期化で実行されるか否か）、バッチサイズ（たとえば、訓練のための最大バッチサイズ）、最適化手法（たとえば、確率的勾配降下法、ＡＤＡおよび変形体、ＡＤＭＡおよび変形体のうちの１つ）、ドロップアウト（たとえば、ドロップアウトを適用するか否かおよびドロップアウトの確率）である。これらのハイパーパラメータは、実験を介してさまざまなドメインおよびアプリケーションのために構成されてもよく、最初はデフォルト設定が使用されてもよい。
【００８３】
性能を微調整するために実験において変更され得る他のハイパーパラメータは、とりわけ、学習率、学習率減衰オプション、学習率減衰手法（たとえば、使用される場合には、ＮＯＡＭまたはＲＳＱＲＴ）、カスタム減衰手法のためのウォームアップステップ、共有重みが（たとえば、エンコーダおよびデコーダにおいて、ならびに／または、入力単語埋め込みにも出力単語埋め込みにも）使用されるか否か、浮動小数点ビット深さ（たとえば、１６ビット、３２ビットまたは６４ビット）、固定小数点表現（たとえば、８ビットまたは１６ビット）、再帰型ニューラルネットワークタイプ（ＬＳＴＭ、ＧＲＵまたはＳＲＵなど）、ノイズ設定、およびアテンション層を訓練してコピーするか否かを含む。
【００８４】
図６Ｃに示される例は、６０，０００回にわたって１００万個の訓練サンプル（たとえば、ソース−ターゲット対）に対して天気ドメインデータを用いて訓練されたテスト実現例に基づいている。初期クエリおよび応答は、１８０万個のクエリおよび応答対（テキストとして提供される）を有する天気データセットから取得された。訓練中、このデータセットのうちの９０％が訓練に使用され、５％が検証に使用され、残りの５％がテストに使用された。５００，０００個〜１００万個のサンプルを用いた訓練が適切な結果を提供することが分かった。１１８０万個のクエリとそれらの応答（テキスト形式）およびそれらのドメインを有するより幅広いデータセットを用いて他のテストが行われた。特定の例において、１０００個未満のサンプルを有するドメインは除去された。他のデータセットフィルタリングは、一般的な有用でないパターンを有する短い応答を除去すること、エラーまたは無効なクエリを示す応答を除去すること、および辞書または翻訳要求などのカスタムドメインを除去することを含んでいてもよい。テストでは、クラスタリングされたテキスト応答に基づいてクエリトランスクリプションをグループ化するプロセスが最初に実行され（たとえば、完全なまたは非常に近い一致を有する応答のクラスタリングされたベクトル表現）、その後、クエリのベクトル表現がクラスタリングされる。後者のクラスタリングは、ドメイン、書き込まれた応答クラスタおよびクエリコンテンツのうちの１つまたは複数に基づいていてもよい。
【００８５】
テストでは、機械学習システムの品質は、精度およびパープレキシティメトリック（たとえば、ニューラル機械翻訳で使用されるものと同様）を使用して評価されてもよい。たとえば、これらのメトリックは、訓練および検証性能を比較して、モデルの学習能力をとらえて過剰適合を回避するのに使用されてもよい。なお、パープレキシティは有用なメトリックであり得るが、精度は、ターゲット言語の中にソースセンテンスの翻訳（または、わずかに修正されたバージョン）が１つだけ存在する機械翻訳タスクほどは関連性がないであろう。
【００８６】
代替的な方法の例
以下は、記載されている特定の例のさまざまな局面を参照する例示的な項目のセットである。これらは全て非限定的である。一局面において、トランスクリプションを書き換えるためのモデルを訓練する方法は、元のトランスクリプションおよびそれらの書き込まれた応答埋め込みベクトルを下位次元空間に投影するステップと、書き込まれた応答の完全一致に基づいてトランスクリプションをクラスタにグループ化するステップと、トランスクリプションをグループのターゲットトランスクリプションとして割り当てるステップとを備える。この場合の変形例において、上記方法は、グループ化されていない残りの応答を、ほぼ同一の応答を有するクラスタにグループ化するステップをさらに備える。このグループ化動作は、複数回繰り返されてもよい。一変形例において、上記方法は、特定の閾値よりもクラスタ重心から遠いトランスクリプションを除去するステップと、特定の閾値よりも小さなクラスタを細分するステップと、前のステップからの個々のトランスクリプションをそれらの最も近いクラスタに割り当てるステップとを備える。別の変形例において、上記方法は、特定の閾値よりも大きな頻度を有する各クラスタ内のトランスクリプションをターゲットトランスクリプションとして割り当て、クラスタ内の残りのトランスクリプションをソーストランスクリプションとして割り当てることによって、対を生成するステップと、ターゲットトランスクリプションが、ソーストランスクリプションで利用可能な全てのエンティティタグを有していない対を削除するステップと、閾値よりも大きな意味的距離を有する対を削除するステップとを備える。さらに別の変形例において、上記方法は、ターゲットトランスクリプションの品詞シーケンスを判断するステップを備え、トランスクリプションをターゲットトランスクリプションとして割り当てるステップは、上記品詞シーケンスが、成功裏に解釈されたトランスクリプションのものと一致することを条件とする。別の局面において、トランスクリプションを書き換える方法は、ソーストランスクリプションを受信するステップと、その埋め込みベクトルを算出するステップと、その埋め込みベクトルをグループにマッピングするステップと、トランスクリプションをグループのターゲットトランスクリプションに書き換えるステップとを備える。この局面は、ニューラル機械翻訳モデルからモデル予測スコアを算出するステップと、ソーストランスクリプションと生成されたトランスクリプションとの間のコサイン距離として類似度スコアを算出するステップとを含んでいてもよく、マッピングは、モデル予測スコアと類似度スコアとの加重平均が閾値を上回ることを条件とする。
【００８７】
要約およびメリットの例
本明細書に記載されている特定の例は、処理および回答しやすくなるように入力クエリをフィルタリングすることによってデジタルアシスタントの動作を向上させるように構成された機械学習システムのための訓練セットを構築する方法を提示している。特定の例において、訓練セットは、入力（ソース）クエリを表すトランスクリプションと所望の出力（ターゲット）クエリを表すトランスクリプションとの対に基づいて生成される。これにより、ニューラルネットワークアーキテクチャ（従来から機械翻訳の一部としてシーケンス・トゥ・シーケンスマッピングに使用されてきたものなど）をクエリプリプロセッサとして適合させる（たとえば、提案された訓練セットを使用したさらなる訓練を介して精巧に訓練する）ことができる。記載されている方法は、最初は教師なしデータに関連する問題であるもの（たとえば、予測不可能な入力の変化をどのように管理するか）を、機械学習システムを訓練することによって解決され得る教師あり学習の問題に変換する。そして、訓練された機械学習システムは、頻度の低い形式の入力（ノイズの混ざった音声クエリから導き出されるテキストまたは不完全なタイプのテキストなど）を頻度の高い形式（「理想的な」、標準的なまたはカノニカルな形式であると考えられ得る）にマッピングするクエリ処理パイプラインにおける特別な事前処理モジュールとしての使用に適している。したがって、本明細書に記載されている訓練された機械学習システムは、不規則なテキストクエリを学習済みのカノニカルクエリパターンに変換することができる。訓練されたニューラルネットワークアーキテクチャを使用してマッピングが実行されるので、マッピングは必ずしも訓練データに類似しているとは限らない。たとえば、訓練ターゲット例は、必ずしも生成されるとは限らない。しかし、生成される出力シーケンスは、訓練ターゲット例に類似しており、機械学習アーキテクチャは、初見のデータを強固に管理することができるであろう。
【００８８】
これらの例では、無効なクエリと有効なクエリとの対を有する訓練データは、一般に、入手できないまたは収集するのが面倒であると考えられている。これらの例は、このようなクエリの訓練セットを構築する方法を提供する。この方法は、高品質のマッピングによって訓練セットを構築し、高品質のプリプロセッサを訓練することを可能にする。次いで、機械学習システムは、無効なクエリと有効なクエリとの間のマッピングパターンをピックアップして、妥当な変換を提供することができる。ソースデータサンプルとターゲットデータサンプルとの間の距離は、一般に小さいので、機械学習システムを素早くかつ効果的に訓練することができる（たとえば、問題は機械翻訳全般よりも狭くなるため、多くのトークン埋め込みが維持され得るので、ニューラル機械翻訳システムは、一般に、ソースとターゲットとの間の強力な良質なマッピングを提供する）。機械学習システムの品質は、訓練用データセットの品質に直接関係し、データに導入されるいかなるノイズまたはバイアスもこの品質に影響を及ぼすので、この方法は、高品質のデータセットによる高品質の機械学習システムを可能にする。
【００８９】
本明細書に記載されている特定の例は、比較例に対して改良を提供する。ある場合において、クエリテキストは、テキスト応答の完全一致に基づいてグループ化されてもよい。しかし、この比較アプローチは、テキスト応答の品質および（たとえば、記載されているように値をタグタイプと置換するために）実行される任意の固有表現抽出によって大きく影響を受ける。また、それは、多くの無効な／有効な対を逃してしまう。なぜなら、同一であるように見える書き込まれた応答間のわずかな相違でさえ、類似したクエリをグループ化して訓練データを形成することを許さないからである。別の比較例において、クエリの対間の意味的距離が比較されてもよく（たとえば、ｎ個のクエリについてのｎ２個の対）、次いで、これらの対は、意味的距離閾値に基づいてフィルタリングされてもよい（たとえば、予め規定された閾値を上回る類似度スコアを有する対のみが保持される）。この場合、データセット内の対のうちの最も頻度の高い方がターゲットとして選択されてもよく、対のうちのもう一方がソースとして設定される。ここで、第１の比較例と同様に、ペアリングは、使用される意味的距離メトリックに大きく依存しており、このアプローチは、大きなデータセットでは非現実的である（たとえば、１００万個のデータサンプルは、評価すべき１０１２個の対をもたらすであろう）。また、このアプローチは、ターゲットデータサンプルの変化が大量であるデータセットをもたらす可能性があり、頑強な機械学習システムを成功裏に訓練することを困難にする。
【００９０】
本明細書では特定の例について説明してきたが、さまざまな例からのさまざまな構成要素のさまざまな組み合わせが可能であり得るということに注意されたい。例をよりよく説明するために目立った特徴が示されているが、記載されているこれらの例の機能的局面を変更することなく、特定の特徴が追加されたり、変更されたり、省略されたりしてもよい、ということは明らかである。
【００９１】
さまざまな例は、人間もしくは機械のいずれか、または人間と機械との組み合わせの挙動を使用する方法である。方法例は、構成しているほとんどのステップがどこで行われようと完全である。いくつかの例は、本明細書に記載されている方法のためのこのような命令を格納するように配置された１つまたは複数の非一時的なコンピュータ読取可能な媒体である。必要なコードのいずれかを備える非一時的なコンピュータ読取可能な媒体を保持する機械はどれも、例を実現し得る。いくつかの例は、半導体チップなどの物理的デバイスとして実現されてもよく、このようなデバイスの論理的または機能的挙動のハードウェア記述言語表現として実現されてもよく、このようなハードウェア記述言語表現を格納するように配置された１つまたは複数の非一時的なコンピュータ読取可能な媒体として実現されてもよい。原理、局面および実施形態を記載している本明細書における説明は、それらの構造的等価物も機能的等価物も包含する。
【００９２】
当業者は、多くの考え得る変更例および変形例を認識するであろう。これらの変更例および変形例は、開示されている特徴のいかなる関連する組み合わせも包含する。原理、局面および例を記載している本明細書における説明は、それらの構造的等価物も機能的等価物も包含する。したがって、本開示の範囲は、本明細書に示され記載されている例に限定されるよう意図されていない。むしろ、本発明の範囲および精神は、添付の特許請求の範囲によって具体化される。
【図１】
2022003520.tif 000003
【図２】
2022003520.tif 000004
【図３】
2022003520.tif 000005
【図４】
2022003520.tif 000006
【図５】
2022003520.tif 000007
【図６Ａ】
2022003520.tif 000008
【図６Ｂ】
2022003520.tif 000009
【図６Ｃ】
2022003520.tif 000010
【図７Ａ】
2022003520.tif 000011
【図７Ｂ】
2022003520.tif 000012
【外国語明細書】
2022003520000001.pdf