(57)【特許請求の範囲】
【請求項１】
1つまたは複数のコンピュータと、命令を記憶する1つまたは複数の記憶デバイスとを備えるシステムであって、前記命令が、前記1つまたは複数のコンピュータによって実行されるとき、前記1つまたは複数のコンピュータに、
(i)モデル入力と、(ii)前記モデル入力に関して実施すべき第1の機械学習タスクを特定するデータとを受け取り、前記モデル入力に対する第1のタイプのモデル出力を生成することであって、前記第1の機械学習タスクが、前記モデル入力をターゲット言語に翻訳することであり、前記ターゲット言語が、前記第1のタイプの生成したモデル出力を表すこと、
前記第1の機械学習タスクを特定する機械学習タスク識別子で前記モデル入力を拡張し、拡張モデル入力を生成することであって、前記機械学習タスク識別子で前記モデル入力を拡張することが、少なくとも前記ターゲット言語を示すトークンで前記モデル入力を拡張することを含むこと、
機械学習モデルを使用して前記拡張モデル入力を処理することであって、前記機械学習モデルが、前記第1の機械学習タスクを含む複数の機械学習タスクを実施するようにトレーニングデータに関してトレーニングされており、前記複数の機械学習タスクが、N個の言語間の翻訳のための機械学習タスクを含み、前記機械学習モデルが、前記拡張モデル入力を処理して、前記拡張モデル入力の前記機械学習タスク識別子に応じて、前記モデル入力に対する前記第1のタイプの機械学習モデル出力を生成するように、トレーニングを通じて構成されていること
を含む動作を実施させるように動作可能であるシステム。
【請求項２】
前記機械学習モデルが、(i)拡張モデル入力を受け取るように構成されたエンコーダサブシステムと、(ii)モデル出力を生成するように構成されたデコーダサブシステムとを備える請求項1に記載のシステム。
【請求項３】
前記エンコーダサブシステムおよびデコーダサブシステムが、それぞれの再帰型ニューラルネットワークを備える請求項2に記載のシステム。
【請求項４】
前記デコーダサブシステムがアテンション機構を備える請求項2または3に記載のシステム。
【請求項５】
前記拡張モデル入力が、前記機械学習タスクを特定する先頭に付加されたトークン識別子を有するモデル入力を含む請求項1から4のいずれか一項に記載のシステム。
【請求項６】
トレーニングデータに関して機械学習モデルをトレーニングするための方法であって、
前記機械学習モデルが、
モデル入力に関して実施すべき機械学習タスクを特定する機械学習タスク識別子を有する前記モデル入力を含む拡張モデル入力を受け取ることであって、前記拡張モデル入力が、少なくともターゲット言語を示すトークンで拡張された前記モデル入力を含むこと、
前記受け取った拡張モデル入力に関して前記機械学習タスクを実施して、前記モデル入力に対するそれぞれのタイプのモデル出力を生成することであって、前記それぞれのタイプのモデル出力の前記生成が、前記拡張モデル入力の前記機械学習タスク識別子に依存し、前記機械学習タスクが、前記モデル入力を前記ターゲット言語に翻訳することであり、前記ターゲット言語が、前記それぞれのタイプの生成したモデル出力を表すこと、
を行うように構成され、
複数の対データセットを含むトレーニングデータを取得するステップであって、前記対データセットのそれぞれが、(i)入力データセットおよび(ii)出力データセットを含む、ステップと、
前記トレーニングデータに関して前記機械学習モデルをトレーニングして、複数の機械学習タスクを実施するステップであって、前記複数の機械学習タスクが、前記モデル入力に関して実施すべき前記機械学習タスクを含み、前記複数の機械学習タスクが、N個の言語間の翻訳のための機械学習タスクを含む、ステップと
を含む方法。
【請求項７】
前記拡張モデル入力が、前記機械学習タスクを特定する先頭に付加されたトークン識別子を有するモデル入力を含む請求項6に記載の方法。
【請求項８】
前記モデル入力が第1の入力タイプのモデル入力を含み、前記モデル出力が第1の出力タイプのモデル出力を含み、
前記複数の対データセットが、前記第1の出力タイプの出力データセットと対になった前記第1の入力タイプの入力データセットを含まない請求項6または7に記載の方法。
【請求項９】
前記複数の対データセット内のデータセットが、異なる言語のテキストセグメントを含む請求項6から8のいずれか一項に記載の方法。
【請求項１０】
前記トレーニングデータを生成するステップであって、
前記異なる言語のそれぞれにおいて固定サイズVの語彙を生成するステップと、
新しい語彙のサイズがVに達するまで、それぞれの生成した語彙内の最高に出現する語を順次選択することによって、前記生成した語彙をマージして前記新しい語彙を生成するステップと
を含むステップをさらに含む請求項9に記載の方法。
【請求項１１】
各対データセットが、入力言語とは異なるターゲット言語のテキストセグメントと対になった前記入力言語の入力テキストセグメントを含む請求項9または10に記載の方法。
【請求項１２】
前記複数の機械学習タスクが、各対データセットについて、入力テキストセグメントを前記ターゲット言語のテキストセグメントに翻訳するステップを含む請求項11に記載の方法。
【請求項１３】
前記拡張モデル入力が、少なくとも前記ターゲット言語を示す、先頭に付加されたトークンを有するモデル入力を含む請求項11または12に記載の方法。
【請求項１４】
(i)モデル入力と、(ii)前記モデル入力に関して実施すべき第1の機械学習タスクを特定するデータとを受け取り、前記モデル入力に対する第1のタイプのモデル出力を生成するステップであって、前記第1の機械学習タスクが、前記モデル入力をターゲット言語に翻訳することであり、前記ターゲット言語が、前記第1のタイプの生成したモデル出力を表す、ステップと、
前記第1の機械学習タスクを特定する機械学習タスク識別子で前記モデル入力を拡張し、拡張モデル入力を生成するステップであって、前記機械学習タスク識別子で前記モデル入力を拡張することが、少なくとも前記ターゲット言語を示すトークンで前記モデル入力を拡張することを含む、ステップと、
機械学習モデルを使用して前記拡張モデル入力を処理するステップであって、前記機械学習モデルが、前記第1の機械学習タスクを含む複数の機械学習タスクを実施するようにトレーニングデータに関してトレーニングされており、前記複数の機械学習タスクが、N個の言語間の翻訳のための機械学習タスクを含み、前記機械学習モデルが、
前記拡張モデル入力を処理して、前記モデル入力に対する前記第1のタイプの第1の機械学習モデル出力を生成するように、トレーニングを通じて構成されており、前記第1のタイプの前記モデル出力の生成が、前記拡張モデル入力の前記機械学習タスク識別子に依存する、ステップと
を含むコンピュータ実装方法。
【請求項１５】
機械学習タスク識別子で前記モデル入力を拡張する前記ステップが、前記第1の機械学習タスクを特定するトークン識別子を前記モデル入力の先頭に付加するステップを含む請求項14に記載の方法。
【請求項１６】
前記トレーニングデータが複数の対データセットを含み、前記対データセットのそれぞれが、出力データセットと対になった入力データセットを含み、
前記モデル入力が第1のタイプのモデル入力であり、前記複数の対データセットが、前記第1のタイプのモデル出力の出力データセットと対になった前記第1のタイプのモデル入力の入力データセットを含むデータセットの対生成を含まない請求項14または15に記載の方法。
【請求項１７】
前記複数の対データセット内のデータセットが、異なる言語のテキストセグメントを含み、各対データセットが、入力言語とは異なるターゲット言語のテキストセグメントと対になった前記入力言語の入力テキストセグメントを含む請求項16に記載の方法。
【請求項１８】
前記複数の機械学習タスクが、各対データセットについて、入力テキストセグメントを前記ターゲット言語のテキストセグメントに翻訳することを含む請求項17に記載の方法。
【請求項１９】
前記機械学習タスクを特定する機械学習タスク識別子で前記モデル入力を拡張し、拡張モデル入力を生成する前記ステップが、少なくとも前記ターゲット言語を示すトークンを前記モデル入力の先頭に付加するステップを含む請求項17または18に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
機械翻訳システムは、高いレベルの精度を達成するために大量の並列トレーニングデータを必要とする。一般には、多くの人々によって話される言語よりも少ない人々によって話される言語について大量の並列データを得ることは難しい。たとえば、インターネット上で見出されるテキストの大部分は英語であるのに対して、日本語や韓国語などの言語で見出されるテキストの量は少ない。これにより、より小規模の言語について並列データを得ることが困難になる。
【背景技術】
【０００２】
従来型機械翻訳システムは、第3の言語を通じて、より小規模の言語間の翻訳をブリッジすることによって、すなわち、第1の言語のテキストの一部を第3の言語に翻訳し、次いで第3の言語から第2の言語に翻訳することによってこの問題を克服する。そのようなブリッジングプロセスには、誤りの伝播、待ち時間の増大、およびシステムの複雑さの増大を含む多くの問題がある。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】「Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation」、Wu、Yonghui等、arXiv:1609.08144 (2016)
【発明の概要】
【課題を解決するための手段】
【０００４】
本明細書で説明される主題は、以下の利点のうちの1つまたは複数を実現するように、特定の実施形態において実装され得る。
【０００５】
本明細書で説明される、機械学習タスクのための暗黙的ブリッジングを適用するシステムは、機械学習モデルをトレーニングして、トレーニング中に使用される一定のタイプの機械学習タスクのための明示的トレーニングデータを必要とすることなく、一定のタイプの機械学習タスクを実施する。たとえば、システムは、日本語テキストセグメントを対応する韓国語テキストセグメントに翻訳するための機械学習モデルをトレーニングするために、このタイプのタスクのためのトレーニングデータがトレーニング中に使用されなかった場合であっても、ゼロショット翻訳を実施し得る。したがって、翻訳のための明示的ブリッジングが回避され、したがって誤りの伝播が回避され、機械学習タスクの待ち時間が削減され、システムの複雑さが低減される。たとえば、日本語から韓国語に翻訳するとき、第3の言語を介する明示的ブリッジングが不要であるので、復号化速度が2倍となり得る。
【０００６】
さらに、機械学習モデルがトレーニングされると、本明細書で説明される、ゼロショット翻訳を実施するシステムは、翻訳のための明示的ブリッジングを適用するシステムよりも良好ではないとしても、それに匹敵する高いレベルの精度を達成し得る。
【０００７】
本明細書で説明される、ゼロショット翻訳を実施するシステムは、N個の言語間の機械翻訳を実施するために、N^2個の別々のモデルを有するのではなく、単一の機械学習モデルを使用し得、したがってモデルパラメータチューニングに必要とされる時間、およびその複雑さを低減し、機械学習モデルによって消費される計算資源を削減する。さらに、モデル数の削減により、単一のデバイス内でより多くの言語対を使用することが可能となり得る。サービングマシンは通常、限られたメモリを有するからである。さらに、モデル数の削減により、システムアーキテクチャが劇的に簡略化され、システムに関連する製造/セットアップ時間が改善される。
【０００８】
本明細書で説明される、ゼロショット翻訳を実施するシステムは、追加の言語へのスケーリングを可能にし得る。たとえば、新しいデータが、恐らくはオーバーサンプリングまたはアンダーサンプリングと共に既存のモデルに追加され得、それによって、ターゲット言語が変化する場合に、すべての言語が適切に表され、新しい先頭に付加されたトークンと共に使用される。既存のモデルのアーキテクチャへの変更は不要である。
【０００９】
本明細書で説明される、ゼロショット翻訳を実施するシステムは、低リソース言語改善を可能にし得る。システムのすべてのパラメータが、モデル化されているすべての言語対によって暗黙的に共有される。このことは、システムに、トレーニング中に言語境界にわたって強制的に一般化させる。利用可能なデータがほとんどない言語対と、豊富なデータを有する言語対とが単一のシステムとして混合されるとき、低リソース言語対に関する翻訳精度が改善され得る。
【００１０】
本明細書で説明される様々な例示的実装は、ニューラルネットワークに関する。ニューラルネットワークは、非線型ユニットの1つまたは複数の層を利用して、受け取った入力に対する出力を予測する機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワーク内の次の層、すなわち次の隠れ層または出力層に対する入力として使用される。ネットワークの各層は、パラメータのそれぞれのセットの現在値に従って、受け取った入力から出力を生成する。ニューラルネットワークは、トレーニングデータを使用して機械学習タスクに関してトレーニングされ、層パラメータのトレーニングされた値が決定され得、ニューラルネットワーク入力に関して機械学習タスクを実施するように使用され得る。
【００１１】
一般には、本明細書で説明される主題の革新的な態様は、トレーニングデータに関して機械学習モデルをトレーニングするための方法として実施され得、機械学習モデルは、モデル入力に関して機械学習タスクを実施するための識別子を有するモデル入力を含む拡張モデル入力を受け取り、受け取った拡張モデル入力に関して機械学習タスクを実施して、モデル入力に対するそれぞれのタイプのモデル出力を生成するように構成され、方法は、複数の対データセットを含むトレーニングデータを取得することであって、対データセットのそれぞれが、(i)入力データセットおよび(ii)出力データセットを含むこと、およびトレーニングデータに関して機械学習モデルをトレーニングして、複数の機械学習タスクを実施することであって、複数の機械学習タスクが、モデル入力に関して実施すべき機械学習タスクを含むことを含む。
【００１２】
この態様の他の実施形態は、方法の処置を実施するようにそれぞれ構成された、対応するコンピュータシステム、装置、および1つまたは複数のコンピュータ記憶デバイス上に記録されたコンピュータプログラムを含む。1つまたは複数のコンピュータのシステムは、動作の際にシステムに処置を実施させ得る、システム上にインストールされたソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せによって、特定の動作または処置を実施するように構成され得る。1つまたは複数のコンピュータプログラムは、データ処理装置によって実行されるとき、装置に処置を実施させる命令を含むことによって、特定の動作または処置を実施するように構成され得る。
【００１３】
任意選択で、上記および他の実施形態はそれぞれ、以下の特徴のうちの1つまたは複数を、単独で、または組み合わせて含み得る。いくつかの実装では、拡張モデル入力は、機械学習タスクのための先頭に付加されたトークン識別子を有するモデル入力を含む。
【００１４】
いくつかの実装では、モデル入力は第1の入力タイプのモデル入力を含み、モデル出力は第1の出力タイプのモデル出力を含み、複数の対データセットは、第1の出力タイプの出力データセットと対になった第1の入力タイプの入力データセットを含まない。
【００１５】
いくつかの実装では、複数の対データセット内のデータセットは、異なる言語のテキストセグメントを含む。
【００１６】
いくつかの実装では、方法は、トレーニングデータを生成することであって、異なる言語のそれぞれにおいて固定サイズVの語彙を生成すること、および新しい語彙のサイズがVに達するまで、それぞれの生成した語彙内の最高に出現する語を順次選択することによって、生成した語彙をマージして新しい語彙を生成することを含むことをさらに含む。
【００１７】
いくつかの実装では、各対データセットは、入力言語とは異なるターゲット言語のテキストセグメントと対になった入力言語の入力テキストセグメントを含む。
【００１８】
いくつかの実装では、複数の機械学習タスクは、各対データセットについて、入力テキストセグメントをターゲット言語のテキストセグメントに翻訳することを含む。
【００１９】
いくつかの実装では、拡張モデル入力は、少なくともターゲット言語を示す、先頭に付加されたトークンを有するモデル入力を含む。
【００２０】
一般には、本明細書で説明される主題の革新的な態様は、(i)モデル入力と、(ii)モデル入力に関して実施すべき第1の機械学習タスクを特定するデータとを受け取り、モデル入力に対する第1のタイプのモデル出力を生成するための方法と、第1の機械学習タスクのための識別子でモデル入力を拡張し、拡張モデル入力を生成するための方法と、機械学習モデルを使用して拡張モデル入力を処理するための方法として実施され得、機械学習モデルが、第1の機械学習タスクを含む複数の機械学習タスクを実施するようにトレーニングデータに関してトレーニングされており、機械学習モデルが、拡張モデル入力を処理して、モデル入力に対する第1のタイプの第1の機械学習モデル出力を生成するように、トレーニングを通じて構成されている。
【００２１】
この態様の他の実施形態は、方法の処置を実施するようにそれぞれ構成された、対応するコンピュータシステム、装置、および1つまたは複数のコンピュータ記憶デバイス上に記録されたコンピュータプログラムを含む。1つまたは複数のコンピュータのシステムは、動作の際にシステムに処置を実施させ得る、システム上にインストールされたソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せによって、特定の動作または処置を実施するように構成され得る。1つまたは複数のコンピュータプログラムは、データ処理装置によって実行されるとき、装置に処置を実施させる命令を含むことによって、特定の動作または処置を実施するように構成され得る。
【００２２】
任意選択で、上記および他の実施形態はそれぞれ、以下の特徴のうちの1つまたは複数を、単独で、または組み合わせて含み得る。いくつかの実装では、識別子でモデル入力を拡張することは、第1の機械学習タスクのためのトークン識別子をモデル入力の先頭に付加することを含む。
【００２３】
いくつかの実装では、トレーニングデータは複数の対データセットを含み、対データセットのそれぞれは、出力データセットと対になった入力データセットを含み、モデル入力は第1のタイプのモデル入力であり、複数の対データセットは、第1のタイプのモデル出力の出力データセットと対になった第1のタイプのモデル入力の入力データセットを含むデータセットの対生成を含まない。
【００２４】
いくつかの実装では、複数の対データセット内のデータセットは、異なる言語のテキストセグメントを含み、各対データセットは、入力言語とは異なるターゲット言語のテキストセグメントと対になった入力言語の入力テキストセグメントを含む。
【００２５】
いくつかの実装では、複数の機械学習タスクは、各対データセットについて、入力テキストセグメントをターゲット言語のテキストセグメントに翻訳することを含む。
【００２６】
いくつかの実装では、機械学習タスクのための識別子でモデル入力を拡張し、拡張モデル入力を生成することは、少なくともターゲット言語を示すトークンをモデル入力の先頭に付加することを含む。
【００２７】
本明細書の主題の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明で述べられる。主題の他の特徴、態様、および利点が、説明、図面、および特許請求の範囲から明らかとなるであろう。
【図面の簡単な説明】
【００２８】
【図１】機械学習タスクを実施するための例示的暗黙的ブリッジングシステムを示す図である。
【図２】機械学習タスクの暗黙的ブリッジングを実施するための例示的プロセスの流れ図である。
【図３】機械学習タスクの暗黙的ブリッジングを実施するように機械学習システムをトレーニングするための例示的プロセスの流れ図である。
【発明を実施するための形態】
【００２９】
様々な図面内の同様の参照番号および名称は同様の要素を示す。
【００３０】
本明細書は、暗黙的ブリッジングを使用して機械学習タスクを実施するための方法およびシステムを説明する。たとえば、ゼロショット翻訳システムが、言語対のセット、たとえば英語-日本語、日本語-英語、英語-韓国語、韓国語-英語からのトレーニングデータを使用して、ソース言語のテキストをターゲット言語のテキストに翻訳するように機械翻訳モデルをトレーニングする。トレーニングを通じて、ゼロショット翻訳システムは、未知の言語対、たとえば韓国語-日本語および日本語-韓国語を、このタイプの明示的データがトレーニングにおいて使用されなかった場合であっても翻訳するように学習する。別の例として、システムは、テキストの構文木表現を構築するように学習し、(文、構文木)および(構文木、意味)対のセットからのトレーニングデータを使用して所与の構文木の意味を予測するように機械学習モデルをトレーニングする。トレーニングを通じて、システムは、このタイプの明示的データがトレーニングにおいて使用されなかった場合であっても、所与の文の意味を直接的に予測するように学習する。
【００３１】
図1は、機械学習タスクを実施するための例示的暗黙的ブリッジングシステム100を示す。たとえば、システム100は、以下でより詳細に説明されるように、ゼロショット翻訳を実施するために使用されるシステムであり得る。他の機械学習タスクは、意味解析または他の自然言語処理タスクを含む。システム100は、1つまたは複数の場合の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの一例であり、その中で、以下で説明されるシステム、構成要素、および技法が実装され得る。
【００３２】
暗黙的ブリッジングシステム100は、モデル入力102aと、モデル入力に関して実施すべき機械学習タスクを特定するデータ102bとを受け取る。暗黙的ブリッジングシステム100は、拡張モジュール104および機械学習モデル106を使用して、受け取ったモデル入力102aと、モデル入力に関して実施すべき機械学習タスクを特定するデータ102bとを処理し、モデル出力110を生成する。生成されたモデル出力110は特定のタイプのモデル出力である。たとえば、いくつかのケースでは、モデル入力は、ソース言語のテキストセグメント、たとえば「Hello, how are you?」であり得、テキストセグメントに関して実施すべき機械学習タスクは、テキストセグメントをソース言語からターゲット言語に翻訳すること、たとえば「Hello, how are you?」を英語からスペイン語に翻訳することであり得る。この例では、ターゲット言語は、生成されたモデル出力のタイプを表し得る。
【００３３】
拡張モジュール104は、モデル入力102aと、モデル入力に関して実施すべき機械学習タスクを特定するデータ102bとを受け取り、モデル入力102aを第1の機械学習タスクのための識別子で拡張して、拡張モデル入力108を生成する。いくつかの実装では、拡張モジュール104は、第1の機械学習タスクのためのトークン識別子をモデル入力の先頭に付加することによってモデル入力102aを拡張する。たとえば、前述のように、いくつかのケースでは、モデル入力102aは、ソース言語のテキストセグメントであり得、テキストセグメントに関して実施すべき機械学習タスクは、テキストセグメントをソース言語からターゲット言語に翻訳することであり得る。この例では、拡張モジュール104は、少なくともターゲット言語を示すトークンをモデル入力の先頭に付加し得る。たとえば、拡張モジュール104は、トークン<2xx>を先頭に付加し得、「xx」はターゲット言語コード、たとえばENは英語、JPは日本語を表す。上記の例を続けると、拡張モデル入力108は<2ES>Hello, how are you?であり得る。
【００３４】
いくつかの実装では、拡張モジュール104はまた、たとえば標準トークン
の代わりに、トークン<2xx>を出力テキストセグメントの先頭に付加することによってターゲット言語の出力テキストセグメントを拡張し得る。たとえば、いくつかのケースでは、ターゲット言語のテキストセグメントの先頭に付加することは有益であり得る。その場合、ソース言語の入力テキストセグメントを符号化することは、ターゲット言語とは無関係であるからである。これにより、ただ1つの符号化で、ソース言語の1つのテキストセグメントの、多くの言語への翻訳が可能となり得る。
【００３５】
いくつかの実装では、拡張モジュールは、ソース言語のテキストセグメントの先頭に「<xx>」シンボルを付加し、ターゲット言語の対応するテキストセグメントの先頭に「<xx>」トークンを付加し得る。たとえば、いくつかのケースでは、このタイプの付加により、システムが、たとえば低リソース言語のために、機械学習モデルに単一言語データを追加することが可能となり得る。これらのケースでは、拡張モジュール104は、モデル入力102a、およびモデル入力に関して実施すべき機械学習タスクを特定するデータ102b、ならびに機械学習モデル106からの出力を受け取るように構成され得る。
【００３６】
機械学習モデル106は、生成された拡張モデル入力108を受け取る。機械学習モデル106は、トレーニングを通じて、拡張モデル入力108を処理して、モデル入力102aのための機械学習モデル出力110を生成するように構成されている。機械学習モデルによって生成される機械学習モデル出力のタイプは、受け取った拡張モデル入力、すなわち、機械学習タスク識別子、および機械学習モデルが実施するようにトレーニングされたタスクのタイプに依存する。たとえば、上記の例を続けると、機械学習モデル出力110は「Hola, como estas?」であり得る。機械学習タスクの暗黙的ブリッジングを実施するように機械学習モデルをトレーニングすることが、図3を参照しながら以下でより詳細に説明される。
【００３７】
機械学習モデル106は、エンコーダ構成要素112およびデコーダ構成要素114を含む。いくつかの実装では、エンコーダ構成要素112とデコーダ構成要素114はどちらも再帰型ニューラルネットワークである。いくつかの実装では、デコーダニューラルネットワークはアテンション機構を含み得、ソフトマックス出力層を含み得る。例示的ニューラル機械翻訳モデルが、「Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation」、Wu、Yonghui等、arXiv:1609.08144 (2016)により詳細に記載されている。
【００３８】
前述のように、いくつかのケースでは、モデル入力102aはソース言語のテキストセグメントであり得、テキストセグメントに関して実施すべき機械学習タスクは、テキストセグメントをソース言語からターゲット言語に翻訳することであり得る。ソース言語は、多くの可能なソース言語のうちの1つであり得、ターゲット言語は、多くの可能なターゲット言語のうちの1つであり得る。これらのケースでは、機械学習モデル106は、相異なるソース言語にわたって共有されるエンコーダと、相異なるターゲット言語にわたって共有されるデコーダと、相異なる言語にわたるサイズVの共有語彙とを含み得る。いくつかの実装では、語彙は共有ワードピース語彙、すなわち語として組み立てられ得るサブワードユニットを含む語彙であり得る。
【００３９】
いくつかの実装では、暗黙的ブリッジングシステム100は、共有語彙を生成するように構成され得る。たとえば、システム100は、複数の言語のそれぞれの固定サイズVの複数の語彙を生成し、生成した語彙をマージして、サイズVの新しい単一の語彙を生成し得る。たとえば、システム100は、新しい語彙のサイズがVに達するまで、それぞれの生成した語彙内の最高に出現する語を順次選択し得る。任意選択で、システムは、新しい語彙のサイズがVに達するまで、生成した語彙から重複した語を除去し得る。たとえば、英語の語をドイツ語の語にマージする語彙を生成するとき、システムは、英語の語「die」をドイツ語の冠詞「die」と重複解除し得る。
【００４０】
いくつかのケースでは、語彙は、相異なる言語にわたる語の確率分布、たとえば、n個の異なる言語について、生成される語彙が各言語内にV/n個の語を含む一様な分布を含み得る。別のケースでは、語彙は、相異なる言語にわたる語のデータドリブン分布を含み得、たとえば、生成された語彙は、各言語の相異なる数の語を含み得る。
【００４１】
いくつかのケースでは、暗黙的ブリッジングシステム100は、受け取ったモデル入力の、単一のターゲット言語への翻訳であるモデル出力を生成するように構成され得る。これらのケースでは、機械学習モデル106は、相異なるソース言語にわたって共有されるエンコーダ112と、単一のターゲット言語のためのデコーダと、相異なるソース言語にわたって共有される語彙とを含み得る。別のケースでは、暗黙的ブリッジングシステム100は、単一のソース言語の受け取ったモデル入力の、複数のターゲット言語への翻訳であるモデル出力を生成するように構成され得る。
【００４２】
図2は、機械学習タスクの暗黙的ブリッジングを実施するための例示的プロセスの流れ図である。便宜上、プロセス200は、1つまたは複数の場所に位置する1つまたは複数のコンピュータのシステムによって実施されるものとして説明される。たとえば、本明細書に従って適切にプログラムされた、機械学習モデルを含むシステム、たとえば図1の暗黙的ブリッジングシステム100がプロセス200を実施し得る。
【００４３】
システムは、(i)モデル入力と、(ii)モデル入力に関して実施すべき第1の機械学習タスクを特定するデータとを受け取って、モデル入力に対する第1のタイプのモデル出力を生成する(ステップ202)。たとえば、いくつかの実装では、受け取ったモデル入力は、ソース言語、たとえば日本語のテキストセグメントを含み得る。モデル入力に対する第1のタイプのモデル出力を生成するためにモデル入力に関して実施すべき第1の機械学習タスクを特定する、受け取ったデータは、ソース言語のテキストセグメントを翻訳して、ターゲット言語、たとえば韓国語の対応するテキストセグメントを生成するタスクを特定するデータを含み得る。他の実装では、受け取ったモデル入力はテキストセグメントを含み得、モデル入力に対する第1のタイプのモデル出力を生成するためにモデル入力に関して実施すべき第1の機械学習タスクを特定する、受け取ったデータは、テキストセグメントの意味を予測するタスクを特定するデータを含み得る。
【００４４】
システムは、モデル入力を第1の機械学習タスクのための識別子で拡張して、拡張モデル入力を生成する(ステップ204)。いくつかの実装では、システムは、第1の機械学習タスクのためのトークン識別子をモデル入力の先頭に付加することによって、モデル入力を第1の機械学習タスクのための識別子で拡張し得る。たとえば、モデル入力がソース言語のテキストセグメントであり、機械学習タスクがテキストセグメントをターゲット言語のテキストセグメントに翻訳することを含むケースでは、システムは、ソース言語のテキストセグメントの先頭に「<2xx>」トークンを付加し得る。ただしxxはターゲット言語コード、たとえばENは英語、DEはドイツ語を表す。別の例として、モデル入力がテキストセグメントであり、機械学習タスクがテキストセグメントの意味を予測することを含むケースでは、システムは、テキストセグメントの先頭に「<2sentiment」トークンを付加し得る。
【００４５】
別の例として、システムは、たとえば
<EN><DE>How are you>
 
Wie geht es Ihnen?
のように、ソース言語のテキストセグメントの先頭に、やはりソース言語を示す追加のトークンを付加し得る。いくつかのケースでは、たとえば、英語の「die」とドイツ語の「die」などの、異なる意味を有する2つの異なる言語の同音異義語を翻訳するとき、この手法は有益であり得る。テキストセグメントの先頭に、ソース言語およびターゲット言語を示すトークンを付加するとき、それぞれの例においてトークンの順序を維持しなければならない。次いで、システムは、第1のトークンがソース言語を示し、第2のトークンがターゲット言語を示すこと、またはその逆であることを学習し得る。
【００４６】
あるいは、いくつかのケースでは、システムは、たとえば標準トークン
の代わりにトークン<2xx>を出力テキストセグメントの先頭に付加することによってターゲット言語の出力テキストセグメントを拡張し得る。いくつかのケースでは、ターゲット言語のテキストセグメントを付加することは有益であり得る。その場合、ソース言語の入力テキストセグメントを符号化することは、ターゲット言語とは無関係であるからである。これにより、ただ1つの符号化で、ソース言語の1つのテキストセグメントの、多くの言語への翻訳が可能となり得る。
【００４７】
別の代替として、たとえば、多言語および単一言語トレーニングを可能にするために、いくつかのケースでは、システムは、ソース言語のテキストセグメントの先頭に「<xx>」シンボルを付加し、ターゲット言語の対応するテキストセグメントに「<xx>」トークンを付加し得る。いくつかのケースでは、この付加の方法により、システムが、たとえば低リソース言語のために、機械学習モデルに単一言語データを追加することが可能となり得る。たとえば、英語、ヒンディー語、パンジャブ語機械学習モデルを低リソース言語としてのパンジャブ語でトレーニングするとき、システムは、以下を介して、モデルに対する単一言語パンジャブ語データを含み得る。
<pa>パンジャブ語の文
<pa>パンジャブ語の文

これらの例では、システムは、システムがテキストセグメントをパンジャブ語から、またはパンジャブ語に直接的に翻訳しない場合であっても、より多量のパンジャブ語テキストにさらされ得、パンジャブ語語彙および珍しい語について学習し得る。このようにして、テキストセグメントをパンジャブ語に、またはパンジャブ語から翻訳する機械学習モデルの能力が向上し得る。
【００４８】
システムは、機械学習モデルを使用して拡張モデル入力を処理する(ステップ206)。機械学習モデルは、第1の機械学習タスクを含む機械学習タスクのセットを実施するようにトレーニングデータに関してトレーニングされており、拡張モデル入力を処理して、モデル入力に対する第1のタイプの第1の機械学習モデル出力を生成するように、トレーニングを通じて構成されている機械学習モデルである。
【００４９】
たとえば、第1の機械学習タスクは、モデル入力を特定の言語、たとえば韓国語に翻訳するタスクであり得、機械学習モデルは、所与のモデル入力を、特定の言語を含む1つまたは複数の言語に翻訳するタスクを実施するようにトレーニングデータに関してトレーニングされているものであり得、たとえば、機械学習モデルは、所与のモデル入力を英語、韓国語、および日本語に翻訳するようにトレーニングされているものであり得る。別の例として、第1の機械学習タスクは、テキストセグメントの意味を予測するタスクであり得、機械学習モデルは、所与のモデル入力の構文木表現を生成すること、および構文木表現の意味を予測することという2つのサブタスクを実施するようにトレーニングデータに関してトレーニングされているものであり得る。
【００５０】
いくつかのケースでは、機械学習モデルをトレーニングするために使用されるトレーニングデータは、対データセットのセットを含み得、対データセットのそれぞれは、出力データセットと対になった入力データセットを含む。このケースでは、モデル入力は、第1のタイプのモデル入力であり得、対データセットのセットは、第1のタイプのモデル出力の出力データセットと対になった第1のタイプのモデル入力の入力データセットを含まないことがある。
【００５１】
たとえば、モデル入力は、ターゲット言語、たとえば韓国語のテキストセグメントに翻訳すべきソース言語、たとえば日本語のテキストセグメントであり得る。このケースでは、機械学習モデルをトレーニングするために使用されるトレーニングデータは、異なる言語のテキストセグメントの対のセット、たとえば(日本語、英語)、(英語、日本語)、(韓国語、英語)、(英語、韓国語)を含み得、異なる言語のテキストセグメントの対のセットは、ターゲット言語のテキストとソース言語のテキストの対生成、たとえば(日本語、韓国語)を含まない。しかしながら、機械学習モデルが、たとえば日本語のテキストセグメントを英語のテキストセグメントに翻訳するときに、日本語のテキストセグメントを含むモデル入力を受け取るようにトレーニングされており、たとえばトレーニングデータ対(英語、韓国語)を処理することを通じて、所与のテキストセグメントを韓国語に翻訳するようにトレーニングされているので、機械学習モデルは、たとえば英語のテキストセグメントを通じて、ゼロショット翻訳を実施するようにトレーニングされており、日本語のテキストセグメントを韓国語の対応するテキストセグメントに直接的に翻訳することができる。
【００５２】
別の例として、モデル入力は、その意味を予測すべきテキストセグメントであり得る。このケースでは、機械学習モデルをトレーニングするために使用されるトレーニングデータは、文とそれぞれの構文木表現の対、および構文木表現とそれぞれの意味の対を含み得る。このトレーニングデータを使用して、システムは、所与のテキストセグメントの意味を直接的に予測するようにトレーニングされ得る。機械学習タスクの暗黙的ブリッジングを実施するように機械学習モデルをトレーニングすることが、図3を参照しながら以下でより詳細に説明される。
【００５３】
図3は、機械学習タスクの暗黙的ブリッジングを実施するように機械学習モデルをトレーニングするための例示的プロセス300の流れ図である。たとえば、プロセス300は、図1の機械学習モデル106をトレーニングするために使用され得る。便宜上、プロセス300は、1つまたは複数の場所に位置する1つまたは複数のコンピュータのシステムによって実行されているものとして説明される。たとえば、本明細書に従って適切にプログラムされた、暗黙的ブリッジングを実施するためのシステム、たとえば図1のシステム100がプロセス300を実施し得る。
【００５４】
システムは、機械学習モデルをトレーニングするためにトレーニングデータを取得する(ステップ302)。機械学習モデルをトレーニングするために使用されるトレーニングデータは、対データセットのセットを含み、対データセットのそれぞれは、出力データセットと対になった入力データセットを含む。いくつかの実装では、実行時に機械学習モデルによって受け取られるモデル入力は、第1の入力タイプのモデル入力、たとえばinput1であり得、機械学習モデルによって生成されるモデル出力は、第1の出力タイプのモデル出力、たとえばoutput1であり得る。いくつかのケースでは、機械学習モデルをトレーニングするために使用される対データセットのセットは、第1の出力タイプの出力データセットと対になった第1の入力タイプの入力データセットを含まないことがあり、たとえば、対データセットのセットは対(input1,output1)を含まないことがある。たとえば、対データセットのセットは、対(input1,output2)、(input2,output2)、(input2,output3)、(input3,output1)、(input3,output3)のうちの1つまたは複数を含み得、添字は入力または出力のタイプを示す。
【００５５】
いくつかの実装では、対データセットのセット内のデータセットは、異なる言語のテキストセグメントであり得る。このケースでは、各対データセットは、入力言語とは異なる出力言語の出力テキストセグメントと対になった入力言語の入力テキストセグメントを含み得る。これらの実装では、実行時に機械学習モデルによって受け取られるモデル入力は、第1の言語の入力テキストセグメント、たとえば日本語のテキストセグメントであり得、機械学習モデルによって生成されるモデル出力は、第2の言語、たとえば韓国語のテキストセグメントであり得る。対データセットのセットは、第2の言語のテキストセグメントと対になった第1の言語のテキストセグメント、たとえば対(日本語、韓国語)を含まないことがある。たとえば、対データセットのセットは、(英語、韓国語)、(韓国語、英語)、(英語、日本語)、(日本語、英語)などの対を含み得る。
【００５６】
対データセットのそれぞれは、対データセットに関連する機械学習タスクを指定する言語識別子をさらに含み、たとえば、対データセット(英語、韓国語)は、英語データセットが韓国語データセットに翻訳されることを指定する識別子を含み得る。
【００５７】
いくつかの実装では、対データセットのセット内のデータセットは、1つまたは複数の言語のテキストセグメント、構文木表現、および意味であり得る。このケースでは、対データセットは、それぞれの構文木表現と対になったテキストセグメントと、それぞれの意味と対になった構文木表現とを含み得る。実行時に機械学習モデルによって受け取られるモデル入力は、入力テキストセグメント、たとえば「私は花が嫌いです(I hate flowers)」であり得、機械学習モデルによって生成されるモデル出力は、意味、たとえば「否定的(negative)」であり得る。対データセットのそれぞれは、対データセットに関連するタスクを指定する識別子、たとえば「構文木表現を生成する」または「意味を予測する」を指定する識別子をさらに含む。
【００５８】
システムは、トレーニングデータに関して機械学習モデルをトレーニングして、機械学習タスクのセットを実施する(ステップ304)。システムは、標準機械学習技法を使用して機械学習モデルをトレーニングする。たとえば、機械学習モデルがニューラルネットワークであるケースでは、システムは、所与の機械学習タスク、たとえば所与の入力をターゲット言語のテキストセグメントに翻訳することに従って、トレーニング入力、たとえばソース言語のテキストセグメントを処理して、トレーニング出力、たとえばターゲット言語のテキストセグメントを生成することによって、トレーニングデータに関してニューラルネットワークをトレーニングし得る。次いでシステムは、図1を参照しながら上記で説明されたように、損失関数を計算すること、および現ニューラルネットワーク重みに対する損失関数勾配を逆伝播することによってトレーニング出力を既知の出力と比較して、損失関数を最小限に抑えるニューラルネットワーク重みの更新後セットを決定し得る。
【００５９】
機械学習タスクのセットは、ステップ304を参照しながら上記で説明されたように、実行時にモデル入力に関して実施すべき機械学習タスクを含む。言い換えれば、機械学習モデルは、実行時にシステムに与えられ得る機械学習タスクを実施するようにトレーニングされる。たとえば、ステップ302において上記で与えられた例を続けると、いくつかのケースでは、対データセットのセット内のデータセットは、異なる言語のテキストセグメント、たとえば、日本語、英語、または韓国語を含む。この例では、各対データセットは、入力言語とは異なるターゲット言語のテキストセグメントと対になった入力言語の入力テキストセグメント、たとえば(日本語、英語)、(英語、日本語)、(英語、韓国語)、(韓国語、英語)を含む。その場合、機械学習タスクのセットは、各対データセットについて、入力テキストセグメントをターゲット言語のテキストセグメントに翻訳すること、たとえば入力テキストセグメントを英語のテキストセグメントに翻訳すること、入力テキストセグメントを日本語のテキストセグメントに翻訳すること、および入力テキストセグメントを韓国語のテキストセグメントに翻訳することを含み得る。
【００６０】
トレーニングプロセス300を通じて、機械学習モデルは、特定のタイプのモデル入力に関して機械学習タスクを実施するようにモデルが明示的にトレーニングされていない場合であっても、所与の機械学習タスクに従って所与のモデル入力を処理するように学習する。たとえば、前述のように、機械学習モデルが日本語テキストを第3の「ブリッジ」言語に翻訳し、第3の言語を韓国語に翻訳するようにトレーニングされただけであっても、機械学習モデルは、日本語のテキストセグメントを韓国語の対応するテキストセグメントに直接的に翻訳するように学習し得る。
【００６１】
いくつかの実装では、システムは、利用可能な並列データを活用してプロセス300の有効性を改善するように、トレーニングプロセス300を拡張し得る。この文脈では、前述のように、並列データは、実行時にモデル入力に関して実施すべき機械学習タスクについてのトレーニングデータを記述する。言い換えれば、並列データは、ステップ302において得られたトレーニングデータに含まれなかった機械学習タスクについてのトレーニングデータを記述し得る。上記の例を続けると、並列データは、日本語のテキストセグメントを韓国語の対応するテキストセグメントに翻訳するように機械学習モデルをトレーニングするために使用され得るトレーニングデータ、たとえば対データセット(日本語、韓国語)を含み得る。
【００６２】
システムは、前述のステップ302および304を実施して、機械学習タスクの暗黙的ブリッジングを実施するように機械学習モデルをトレーニングし得る。たとえば、前述のように、ステップ302において取得されたトレーニングデータが、日本語テキストを第3の「ブリッジ」言語に翻訳し、第3の言語を韓国語に翻訳するように機械学習モデルをトレーニングするためのトレーニングデータを含む場合であっても、機械学習モデルは、日本語のテキストセグメントを韓国語の対応するテキストセグメントに直接的に翻訳し得る。
【００６３】
システムは、ステップ302において取得されたトレーニングデータによって表されなかった機械学習タスクを実施するように機械学習モデルをトレーニングするための追加の並列トレーニングデータを取得する。ステップ302を参照しながら上記で説明されたトレーニングデータと同様に、取得された並列トレーニングデータは、対データセットのセットを含み得、対データセットのそれぞれは、出力データセットと対になった入力データセットを含む。上記の例を続けると、並列トレーニングデータは、韓国語の対応するテキストセグメントと対になった日本語のテキストセグメントのセットを含み得る。いくつかの実装では、取得された並列トレーニングデータは、少量のトレーニングデータであり得る。たとえば、並列トレーニングデータのサイズは、ステップ302を参照しながら上記で説明されたトレーニングデータのセットよりも小さいものであり得、かつ/または並列トレーニングデータは、ステップ302において取得されたトレーニングデータのセットよりも少ないトレーニング例を含み得る。
【００６４】
システムは、取得された並列トレーニングデータを使用して、ステップ302において取得されたトレーニングデータによって表されなかった機械学習タスクを実施するように機械学習モデルをトレーニングする。前述のように、これは、標準機械学習技法を適用することを含み得る。たとえば、機械学習モデルがニューラルネットワークであるケースでは、システムは、並列データトレーニング入力、たとえばソース言語日本語のテキストセグメントを処理して、並列データトレーニング出力、たとえばターゲット言語韓国語のテキストセグメントを生成することによって、並列トレーニングデータに関してニューラルネットワークをトレーニングし得る。次いでシステムは、図1を参照しながら上記で説明されたように、損失関数を計算すること、および現ニューラルネットワーク重みに対する損失関数勾配を逆伝播することによって並列データトレーニング出力を既知の並列データ出力と比較して、損失関数を最小限に抑えるニューラルネットワーク重みの更新後セットを決定し得る。
【００６５】
追加の並列データがシステムにとって利用可能になったとき、システムは、追加の並列データについてこの追加のトレーニングプロセスを反復し得る。
【００６６】
ゼロショット方向について、すなわち元々取得されたトレーニングデータによって表されなかった機械学習タスクについて、追加の並列データに関してマルチタスク機械学習モデルを増分式にトレーニングすることによって、システムは、マルチタスク機械学習モデルをさらに改良し、実行時に機械学習モデルを使用することから得られる結果の精度を改善し得る。いくつかの実装では、前述のように、拡張トレーニングプロセスを実施することにより、機械学習モデルが、利用可能なトレーニングデータ、すなわち並列データを含むトレーニングデータの混合で、単一のトレーニングプロセスを使用してトレーニングされるモデルと比較して、いくつかの機械学習タスクをより高い精度で実施することが可能となり得る。
【００６７】
例示的のために、本明細書で説明されるシステムおよび方法は、主な例示的使用ケースとして機械翻訳を用いた。しかしながら、記載のシステムおよび方法は、構文解析や意味解析などの他の自然言語タスクを含む様々な他の設定に適用され得る。たとえば、システムおよび方法は、所与の文から意味を予測するために、たとえば、「私は花が嫌いです(I hate flowers)」という語句の意味を予測するために使用され得る。この例では、システムは、2つの機械学習サブタスク、すなわち(1)所与のテキストセグメントを構文木に翻訳すること、および(2)構文木の意味を予測することを実施するようにトレーニングされ得る。たとえば、
<2parsetree>I love flowers
(ROOT(S(NP(PRP I))(VP(VBP love)(NP(NNS flowers))) (..)))

<2sentiment>(ROOT(S(NP(PRP I))(VP(VBP love)(NP(NNS flowers))) (..)))
positive

次いでシステムは、文から意味にブリッジすることを直接的に学習し得る。
<2sentiment>I hate flowers
"negative"
【００６８】
本明細書で説明される主題および機能動作の実施形態は、本明細書で開示される構造およびその構造的均等物を含むデジタル電子回路、有形に実施されたコンピュータソフトウェアまたはファームウェア、コンピュータハードウェア、あるいはそれらのうちの1つまたは複数の組合せとして実装され得る。本明細書で説明される主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のための、またはデータ処理装置の動作を制御するための、有形の非一時的プログラムキャリア上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替または追加として、プログラム命令は、データ処理装置による実行のために、適切なレシーバ装置への伝送のために情報を符号化するように生成される人工的に生成された伝播信号、たとえば機械で生成された電気信号、光信号、または電磁気信号上に符号化され得る。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくは逐次アクセスメモリデバイス、またはそれらのうちの1つまたは複数の組合せであり得る。しかしながら、コンピュータ記憶媒体は伝播信号ではない。
【００６９】
「データ処理装置」という用語は、例としてプログラム可能プロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。装置はまた、ハードウェアに加えて、当該のコンピュータプログラムのための実行環境を作成するコード、たとえばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、あるいはそれらのうちの1つまたは複数の組合せを構成するコードをも含み得る。
【００７０】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれる)は、コンパイル型言語またはインタプリタ型言語、宣言型言語または手続型言語を含む任意の形態のプログラミング言語で書かれ得、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境内での使用に適した他のユニットとしての形態を含む任意の形態として配置され得る。コンピュータプログラムは、必須ではないがファイルシステム内のファイルに対応し得る。プログラムは、他のプログラムまたはデータを保持するファイルの一部、たとえばマークアップ言語文書内に記憶された1つまたは複数のスクリプト内に、当該のプログラム専用の単一のファイル内に、または複数の協調ファイル、たとえば1つまたは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイル内に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に配置され、もしくは複数の場所にわたって分散される複数のコンピュータ上で実行されるように配置され得る。
【００７１】
本明細書では、「エンジン」または「ソフトウェアエンジン」とは、入力とは異なる出力を提供するソフトウェアで実装された入力/出力システムを指す。エンジンは、ライブラリ、プラットフォーム、ソフトウェア開発キット(「SDK」)、オブジェクトなどの、機能の符号化ブロックであり得る。各エンジンは、1つまたは複数のプロセッサおよびコンピュータ可読媒体を含む任意の適切なタイプのコンピューティングデバイス、たとえば、サーバ、携帯電話、タブレットコンピュータ、ノートブックコンピュータ、音楽プレーヤ、eブックリーダ、ラップトップもしくはデスクトップコンピュータ、PDA、スマートフォン、または他の静止もしくはポータブルデバイス上で実装され得る。さらに、2つ以上のエンジンが、同一のコンピューティングデバイス上で、または異なるコンピューティングデバイス上で実装され得る。
【００７２】
本明細書で説明されるプロセスおよび論理フローは、入力データに対して演算し、出力を生成することによって機能を実施するように1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能コンピュータによって実施され得る。プロセスおよび論理フローはまた、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実施され得、装置はまた、それらとして実装され得る。
【００７３】
コンピュータプログラムの実行に適したコンピュータは、例として、汎用もしくは専用マイクロプロセッサまたはその両方、あるいは任意の他の種類の中央演算処理装置に基づき得る。一般には、中央演算処理装置は、読取り専用メモリもしくはランダムアクセスメモリまたはその両方から命令およびデータを受け取る。コンピュータの不可欠な要素は、命令を実施または実行するための中央演算処理装置と、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般には、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば磁気ディスク、光磁気ディスク、または光ディスクをも含み、あるいはそれらからデータを受け取り、もしくはそれらにデータを転送し、またはその両方を行うように動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、ほんのいくつかの例を挙げれば、別のデバイス、たとえば携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、たとえばユニバーサルシリアルバス(USB)フラッシュドライブ内に組み込まれ得る。
【００７４】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば内部ハードディスクまたは取外し可能ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補足され、またはその中に組み込まれ得る。
【００７５】
ユーザとの対話を実現するために、本明細書で説明される主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえばCRT(陰極線管)もしくはLCD(液晶ディスプレイ)モニタと、ユーザがそれによってコンピュータに入力を与えることのできるキーボードおよびポインティングデバイス、たとえばマウスもしくはトラックボールとを有するコンピュータ上に実装され得る。他の種類のデバイスもユーザとの対話を実現するために使用され得、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚フィードバック、音声フィードバック、または触覚フィードバックであり得、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態として受け取られ得る。さらに、コンピュータは、ユーザによって使用されるデバイスに文書を送り、デバイスから文書を受け取ることによって、たとえば、ユーザのクライアントデバイス上のウェブブラウザから受け取った要求に応答して、ウェブブラウザにウェブページを送ることによって、ユーザと対話し得る。
【００７６】
本明細書で説明される主題の実施形態は、バックエンド構成要素をたとえばデータサーバとして含み、またはミドルウェア構成要素、たとえばアプリケーションサーバを含み、またはフロントエンド構成要素、たとえばユーザが本明細書で説明される主題の実装とそれを通じて対話することができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含み、あるいは1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムとして実装され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば通信ネットワークによって相互接続され得る。通信ネットワークの例には、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、たとえばインターネットが含まれる。
【００７７】
コンピューティングシステムはクライアントおよびサーバを含み得る。クライアントおよびサーバは、一般には互いに離れており、通常は通信ネットワークを通じて対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行中の、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、クライアントとして働くユーザデバイスと対話するユーザにデータを表示し、ユーザからユーザ入力を受け取る目的で、データ、たとえばHTMLページをユーザデバイスに送信する。ユーザデバイスにおいて、たとえばユーザ対話の結果として生成されるデータは、ユーザデバイスからサーバにおいて受け取られ得る。
【００７８】
本明細書は、多くの特定の実装詳細を含むが、これらを、何らかの発明の範囲、または特許請求され得るものの範囲に関する限定と解釈すべきではなく、むしろ特定の発明の特定の実施形態に特有のものであり得る特徴の説明と解釈すべきである。本明細書で別々の実施形態の状況において説明されるいくつかの特徴はまた、単一の実施形態において組み合わせて実装され得る。逆に、単一の実施形態の状況において説明される様々な特徴はまた、複数の実施形態として別々に、または任意の適切な部分組合せとして実装され得る。さらに、特徴が、いくつかの組合せとして働くものとして上記で説明され、さらにはそのように最初に特許請求され得るが、いくつかのケースでは、特許請求される組合せからの1つまたは複数の特徴が組合せから削除され得る。
【００７９】
同様に、図面では動作が特定の順序で示されるが、このことは、望ましい結果を達成するために、そのような動作が図示される特定の順序で、または順次的に実施されること、またはすべての図示される動作が実施されることを必要とすると理解すべきではない。いくつかの環境では、マルチタスキングおよび並列処理が有利であり得る。さらに、前述の実施形態での様々なシステムモジュールおよび構成要素の分離を、すべての実施形態においてそのような分離を必要とすると理解すべきではなく、記載のプログラム構成要素およびシステムは一般に、単一のソフトウェア製品として共に一体化され、または複数のソフトウェア製品としてパッケージ化され得ることを理解されたい。
【００８０】
主題の特定の実施形態が説明された。他の実施形態は以下の特許請求の範囲内にある。たとえば、請求項に記載の動作は、異なる順序で実施され、それでもなお望ましい結果を達成し得る。一例として、添付の図に示されるプロセスは、望ましい結果を達成するために、図示される特定の順序、または順次的順序を必ずしも必要とするわけではない。いくつかの実装では、マルチタスキングおよび並列処理が有利であり得る。
【符号の説明】
【００８１】
100  暗黙的ブリッジングシステム
102a  モデル入力
102b  モデル入力に関して実施すべき機械学習タスクを特定するデータ
104  拡張モジュール
106  機械学習モデル
108  拡張モデル入力
110  機械学習モデル出力
112  エンコーダ構成要素
114  デコーダ構成要素
【図１】
0006776448.tif 000002
【図２】
0006776448.tif 000003
【図３】
0006776448.tif 000004