(57)【特許請求の範囲】
【請求項１】
1つまたは複数のコンピュータによって実施されるニューラル機械翻訳システムであって、
前記ニューラル機械翻訳システムが、ソース自然言語の単語のソースシーケンスを表すソース埋め込みの入力シーケンスを受信し、前記ソースシーケンスのターゲット自然言語への翻訳である単語のターゲットシーケンスを表すターゲット埋め込みの出力シーケンスを生成するように構成され、
前記ニューラル機械翻訳システムが、
前記ソースシーケンスの符号化表現を生成するために、ソース埋め込みの入力シーケンスを処理するように構成された拡張畳み込みニューラルネットワークと、
ターゲット埋め込みの前記出力シーケンスを生成するために、前記ソースシーケンスの前記符号化表現を処理するように構成されたマスクされた拡張畳み込みニューラルネットワークと
を含む、ニューラル機械翻訳システム。
【請求項２】
前記マスクされた拡張畳み込みニューラルネットワークが、動的展開を使用して、前記出力シーケンスを生成するように構成される、請求項1に記載のニューラル機械翻訳システム。
【請求項３】
前記符号化表現が、ソース埋め込みごとのデータのそれぞれの列を含む行列であり、
前記出力シーケンスにおける各時間ステップにおいて、前記マスクされた拡張畳み込みネットワークが、前記符号化表現の対応する列を入力として受け取り、ターゲット埋め込みを生成するように構成される、請求項2に記載のニューラル機械翻訳システム。
【請求項４】
前記符号化表現内に対応する列を有していない時間ステップごとに、前記システムが、前記時間ステップに対応する前記符号化表現に新しい列を追加し、前記列内の値をゼロに設定するように構成される、請求項3に記載のニューラル機械翻訳システム。
【請求項５】
各時間ステップにおいて、前記マスクされた拡張畳み込みニューラルネットワークが、前記時間ステップの前の時間ステップにおける前記符号化表現および前記ターゲット埋め込みに基づいて調整される、請求項3または4のいずれか一項に記載のニューラル機械翻訳システム。
【請求項６】
前記拡張畳み込みニューラルネットワークが、前記拡張畳み込みニューラルネットワーク全体にわたって前記ソース埋め込みの表現の解像度を保持するように構成される、請求項1〜5のいずれか一項に記載のニューラル機械翻訳システム。
【請求項７】
前記マスクされた拡張畳み込みニューラルネットワークが、複数の1次元のマスクされた拡張畳み込みニューラルネットワーク層を含む、請求項1〜6のいずれか一項に記載のニューラル機械翻訳システム。
【請求項８】
特定の1次元のマスクされた拡張畳み込みニューラルネットワーク層の後に、サブバッチ正規化層が続き、
前記サブバッチ正規化層が、トレーニングシーケンスのバッチにおける前記ニューラル機械翻訳システムのトレーニング中に、
トレーニングシーケンスの前記バッチの補助サブバッチ内のトレーニングシーケンスについて前記特定の1次元のマスクされた拡張畳み込みニューラルネットワーク層によって生成された出力のバッチ正規化統計を決定し、
前記バッチ正規化統計を使用して、前記補助サブバッチとは異なるトレーニングシーケンスの前記バッチのメインサブバッチ内のトレーニングシーケンスについて前記特定の1次元のマスクされた拡張畳み込みニューラルネットワーク層によって生成された出力を正規化する
ように構成される、請求項7に記載のニューラル機械翻訳システム。
【請求項９】
前記1次元のマスクされた拡張畳み込みニューラルネットワーク層のうちの1つまたは複数が、1つまたは複数の追加の畳み込み層を含む残差ブロックでラップされる、請求項7または8のいずれか一項に記載のニューラル機械翻訳システム。
【請求項１０】
前記残差ブロックが、正規化線形ユニット(ReLU)活性化層を含む、請求項9に記載のニューラル機械翻訳システム。
【請求項１１】
前記残差ブロックが、乗算ユニット活性化層を含む、請求項9に記載のニューラル機械翻訳システム。
【請求項１２】
前記複数の1次元のマスクされた拡張畳み込みニューラルネットワーク層が、複数のグループにグループ化され、
各グループ内で、前記グループ内の1次元のマスクされた拡張畳み込みニューラルネットワーク層の拡張率が層ごとに2倍になる、請求項7〜11のいずれか一項に記載のニューラル機械翻訳システム。
【請求項１３】
各ソース埋め込みが、それぞれのn-gram埋め込みのバッグであり、
前記ソースシーケンス内の所与の文字について、前記文字についての前記n-gram埋め込みのバッグが、前記ソースシーケンス内の所与の文字に隣接する文字のn-gram埋め込みの組合せである、請求項1〜12のいずれか一項に記載のニューラル機械翻訳システム。
【請求項１４】
前記所与の文字の前記n-gram埋め込みのバッグが、nの範囲が1からkについての前記所与の文字に隣接するn-gramの前記n-gram埋め込みの合計であり、ここで、kが、2以上の所定の正の整数である、請求項13に記載のニューラル機械翻訳システム。
【請求項１５】
前記ソースシーケンスを受信し、
前記ソースシーケンスからn-gram埋め込みのバッグのシーケンスを生成する
ように構成された入力サブシステムをさらに含む請求項13または14のいずれか一項に記載のニューラル機械翻訳システム。
【請求項１６】
前記拡張畳み込みニューラルネットワークが、マスクされていない複数の1次元の拡張畳み込みニューラルネットワーク層を含む、請求項1〜15のいずれか一項に記載のニューラル機械翻訳システム。
【請求項１７】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1〜16のいずれか一項に記載の前記ニューラル機械翻訳システムを実現させるための命令を記憶した1つまたは複数のコンピュータ記憶媒体。
【請求項１８】
ソース自然言語の単語のソースシーケンスを表すソース埋め込みの入力シーケンスを取得するステップと、
前記ソースシーケンスのターゲット自然言語への翻訳である単語のターゲットシーケンスを表すターゲット埋め込みの出力シーケンスを生成するために、請求項1〜16のいずれか一項の前記ニューラル機械翻訳システムを使用して、前記入力シーケンスを処理するステップと
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、ニューラルネットワークを使用してテキストシーケンスを処理することに関する。
【背景技術】
【０００２】
機械学習モデルは、入力を受信し、受信した入力に基づいて、たとえば予測出力などの出力を生成する。いくつかの機械学習モデルは、パラメトリックモデルであり、受信した入力およびモデルのパラメータの値に基づいて、出力を生成する。
【０００３】
一部の機械学習モデルは、受信した入力についての出力を生成するために、複数のモデル層を使用するディープモデル(deep model)である。たとえば、ディープニューラルネットワークは、出力層と、各々受信した入力に非線形変換を適用して出力を生成する1つまたは複数の隠れ層とを含むディープ機械学習モデルである。
【発明の概要】
【課題を解決するための手段】
【０００４】
本明細書は、たとえばテキストをソース言語からターゲット言語に翻訳する、テキスト要約を実行する、または音声認識を実行するなど、シーケンストランスダクション(sequence transduction)タスクを実行する、1つまたは複数の場所にある1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されるシステムについて記述する。
【０００５】
第1の態様によれば、テキストシーケンスを処理するためのニューラル機械翻訳システムが提供される。システムは、たとえば、ソース自然言語の単語のシーケンスなど、ソースシーケンスを表すソース埋め込みの入力シーケンスを受信し、たとえば、ソースシーケンスのターゲット自然言語への翻訳である単語のシーケンスなど、ターゲットシーケンスを表すターゲット埋め込みの出力シーケンスを生成するように構成され、システムは、ソースシーケンスの符号化表現を生成するために、ソース埋め込みの入力シーケンスを処理するように構成された拡張畳み込みニューラルネットワーク(dilated convolutional neural network)と、ターゲット埋め込みの出力シーケンスを生成するために、ソースシーケンスの符号化表現を処理するように構成されたマスクされた拡張畳み込みニューラルネットワークとを含む。
【０００６】
いくつかの実装形態では、システムのマスクされた拡張畳み込みニューラルネットワークは、動的展開を使用して、出力シーケンスを生成するように構成される。たとえば、デコーダは、以前に生成されたターゲット埋め込みと符号化されたソース表現とに基づいて、ターゲット埋め込みを繰り返し生成する。
【０００７】
いくつかの実装形態では、符号化表現は、ソース埋め込みごとのデータのそれぞれの列を含む行列であり、出力シーケンスにおける各時間ステップにおいて、マスクされた拡張畳み込みネットワークは、符号化表現の対応する列を入力として受け取り、ターゲット埋め込みを生成するように構成される。
【０００８】
いくつかの実装形態では、符号化表現内に対応する列を有していない時間ステップごとに、システムは、その時間ステップに対応する符号化表現に新しい列を追加し、その列内の値をゼロに設定するように構成される。
【０００９】
いくつかの実装形態では、各時間ステップにおいて、マスクされた拡張畳み込みニューラルネットワークは、その時間ステップの前の時間ステップにおける符号化表現およびターゲット埋め込みに基づいて調整される。
【００１０】
いくつかの実装形態では、拡張畳み込みニューラルネットワークは、拡張畳み込みニューラルネットワーク全体にわたってソース埋め込みの表現の解像度を保持するように構成される。
【００１１】
いくつかの実装形態では、マスクされた拡張畳み込みニューラルネットワークは、複数の1次元のマスクされた拡張畳み込みニューラルネットワーク層を含む。
【００１２】
いくつかの実装形態では、特定の1次元のマスクされた拡張畳み込みニューラルネットワーク層の後に、サブバッチ正規化層(sub-batch normalization layer)が続き、サブバッチ正規化層は、トレーニングシーケンスのバッチにおけるニューラル機械翻訳システムのトレーニング中に、トレーニングシーケンスのバッチの補助サブバッチ内のトレーニングシーケンスについて特定の1次元のマスクされた拡張畳み込みニューラルネットワーク層によって生成された出力のバッチ正規化統計を決定し、バッチ正規化統計(batch normalization statistic)を使用して、補助サブバッチとは異なるトレーニングシーケンスのバッチのメインサブバッチ内のトレーニングシーケンスについて特定の1次元のマスクされた拡張畳み込みニューラルネットワーク層によって生成された出力を正規化するように構成される。
【００１３】
いくつかの実装形態では、1次元のマスクされた拡張畳み込みニューラルネットワーク層のうちの1つまたは複数は、1つまたは複数の追加の畳み込み層を含む残差ブロックでラップされる。
【００１４】
いくつかの実装形態では、残差ブロックは、正規化線形ユニット(rectified linear unit: ReLU)活性化層を含む。
【００１５】
いくつかの実装形態では、残差ブロックは、乗算ユニット活性化層を含む。
【００１６】
いくつかの実装形態では、複数の1次元のマスクされた拡張畳み込みニューラルネットワーク層は、複数のグループにグループ化され、各グループ内で、そのグループ内の1次元のマスクされた拡張畳み込みニューラルネットワーク層の拡張率が層ごとに2倍になる。
【００１７】
いくつかの実装形態では、各ソース埋め込みは、それぞれのn-gram埋め込みのバッグ(bag of n-grams embedding)であり、ソースシーケンス内の所与の文字について、その文字についてのn-gram埋め込みのバッグは、ソースシーケンス内の所与の文字に隣接するトークンのn-gram埋め込みの組合せである。
【００１８】
いくつかの実装形態では、所与の文字のn-gram埋め込みのバッグは、所与の文字に隣接するn-gramのn-gram埋め込みの合計であり、この場合、nの範囲が1からkであり、ここで、kは、2以上の所定の正の整数である。
【００１９】
いくつかの実装形態では、システムは、ソースシーケンスを受信し、ソースシーケンスからn-gram埋め込みのバッグのシーケンスを生成するように構成された入力サブシステムをさらに含む。
【００２０】
いくつかの実装形態では、拡張畳み込みニューラルネットワークは、マスクされていない複数の1次元の拡張畳み込みニューラルネットワーク層を含む。
【００２１】
第2の態様によれば、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに、システムを実施させる命令で符号化された1つまたは複数のコンピュータ記憶媒体が提供される。
【００２２】
第3の態様によれば、たとえば、ソース自然言語の単語のシーケンスなど、ソースシーケンスを表すソース埋め込みの入力シーケンスを取得するステップと、たとえば、ソースシーケンスのターゲット自然言語への翻訳である単語のシーケンスなど、ターゲットシーケンスを表すターゲット埋め込みの出力シーケンスを生成するために、システムを使用して入力シーケンスを処理するステップとを含む方法が提供される。
【００２３】
本明細書に記載される主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実施することができる。本明細書に記載されているニューラル機械翻訳システムは、システムの計算時間が最小限に抑えられるように、すなわち、計算時間がソースストリングおよびターゲットストリングの長さにおいて線形であるように翻訳を生成することができる。ニューラル機械翻訳システムは、システムによって計算された表現の解像度が計算全体を通して可能な限り最大のままであるように入力を処理し、それによって、翻訳品質を向上させる。畳み込みエンコーダおよびデコーダを使用することによって、ニューラル機械翻訳システムは、最新技術のシステムよりも短い学習時間および推論時間を有しながら、最新技術と一致する、またはそれを超える品質を有する翻訳を生成することができる。たとえば、リカレントニューラルネットワーク、たとえば長期短期記憶(LSTM)ベースのアーキテクチャと比較して、畳み込みエンコーダおよびデコーダは、時間ステップごとにロールアウトされる必要がなく、トレーニングおよび推論に必要とされる計算フットプリントを減少させる。n-gram埋め込みのバッグを使用することによって、ニューラル機械翻訳システムは、オープン語彙(open vocabulary)を保持し、希少語、固有名詞、数字などを予測することができる。さらに、入力と出力との間のニューラル機械翻訳システムにおける順方向信号および逆方向信号によってトラバースされる経路は、入力と出力との間のシーケンス距離とは無関係であり、それによって、より良い信号伝搬および長期依存学習を可能にし、それによって翻訳品質が向上する。
【００２４】
本明細書の主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載されている。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００２５】
【図１】例示的なニューラル機械翻訳システムを示す図である。
【図２】ソースシーケンスからターゲットシーケンスを生成するための例示的なプロセスのフロー図である。
【図３】デコーダネットワークを使用してターゲットシーケンスを生成するための例示的なプロセスのフロー図である。
【図４】サブバッチ正規化のための例示的なプロセスのフロー図である。
【００２６】
様々な図面における同様の参照番号および名称は同様の要素を示す。
【発明を実施するための形態】
【００２７】
本明細書は、ニューラルネットワークを使用して、言語モデリングタスクを実行する、またはテキストをソース言語からターゲット言語に翻訳する、1つまたは複数の場所にある1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されるシステムについて記述する。
【００２８】
特に、翻訳のために、システムは、ソース自然言語の単語のソースシーケンスを表すソース埋め込みの入力シーケンスを受信し、ソースシーケンスのターゲット自然言語への翻訳である単語のターゲットシーケンスを表すターゲット埋め込みの出力シーケンスを生成するように構成される。より一般的には、このシステムは、ソースシーケンスがターゲットシーケンスにマッピングされている他のシーケンストランスダクションの用途に適用することができる。
【００２９】
システムは、ソースシーケンスの符号化表現を生成するために、ソース埋め込みの入力シーケンスを処理するように構成された拡張畳み込みニューラルネットワークエンコーダを含む。
【００３０】
システムはまた、ターゲット埋め込みの出力シーケンスを生成するために、ソースシーケンスの符号化表現を処理するように構成されたマスクされた拡張畳み込みニューラルネットワークデコーダも含む。
【００３１】
図1は、例示的なニューラル機械翻訳システム100を示す。ニューラル機械翻訳システム100は、以下に説明するシステム、構成要素、および技法が実装される1つまたは複数の場所にある1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されるシステムの一例である。
【００３２】
ニューラル機械翻訳システム100は、ソース自然言語のソースシーケンス102からソース埋め込みモデル104によって生成されたソース埋め込みシーケンス106を入力として受信する。シーケンスは、各単語が1つまたは複数の文字によって構成されている、ソース言語の単語のシーケンスである(「単語」の使用は、入力シーケンスが数字を含む可能性を排除しない)。いくつかの実装形態では、ソース埋め込みモデル104は、n-gram埋め込みのバッグモデル(bag of n-grams embedding model)とすることができる(すなわち、ソース埋め込みモデルは、ソースシーケンス102を受信し、ソースシーケンスから、たとえば、n-gram埋め込みのバッグのシーケンスなど、ソース埋め込みシーケンス106を生成するように構成された入力サブシステムを構成する)。
【００３３】
ニューラル機械翻訳システム100は、ソース埋め込みシーケンス106を入力として受け取り、符号化されたソース表現110を出力として生成する畳み込みニューラルネットワークエンコーダ108を含む。
【００３４】
エンコーダ108は、拡張畳み込みアーキテクチャを有し、1次元の畳み込みをソース埋め込みシーケンス106に適用する。一般に、拡張畳み込みアーキテクチャには、畳み込みネットワーク内のニューロンの受容野のサイズを増加させる効果があり、それによって、拡張せずに実行可能となるよりも長い範囲のニューロン間の相互作用が可能になる。拡張された1次元の畳み込み層は、その層に対応するカーネルにより入力を畳み込むことによって出力を生成し、畳み込みは、拡張率と呼ばれるステップサイズに従って入力をスキップする。拡張畳み込みネットワーク内の異なる拡張畳み込み層は、異なる拡張率を有し得る。拡張率が層間で指数関数的に増加する場合、畳み込みニューラルネットワーク内のニューロンの受容野のサイズは、層の数とともに指数関数的に増大する。いくつかの実装形態では、エンコーダ108の層は、1つまたは複数のグループに割り当てられ、各グループ内で、グループ内の層の拡張率は、拡張率1から始めて層ごとに2倍になる。
【００３５】
特に、エンコーダ108は、ソース埋め込みシーケンス106と同じ長さを有する符号化されたソース表現110を生成し、それによって、ソース埋め込みシーケンスの解像度を維持する。
【００３６】
ニューラル機械翻訳システム100は、符号化されたソース表現110を入力として受け取り、ターゲットシーケンス116の表現であるターゲット埋め込みシーケンス114を出力として生成するマスクされた畳み込みニューラルネットワークデコーダ112を含む。ターゲットシーケンス116は、ソースシーケンス102のターゲット自然言語への翻訳である単語のシーケンスである。
【００３７】
エンコーダ108と同様に、デコーダ112は、拡張された1次元の畳み込みアーキテクチャを有し、たとえば、マスクされた拡張畳み込みニューラルネットワークデコーダ112は、複数の1次元のマスクされた拡張畳み込みニューラルネットワーク層を含み得る(対照的に、拡張畳み込みニューラルネットワークエンコーダ108は、マスクされていない複数の1次元拡張畳み込みニューラルネットワーク層を含み得る)。一般に、デコーダ112のマスクされた畳み込みアーキテクチャは、所与の時間ステップにおいてターゲット埋め込みを生成するために、デコーダが将来の時間ステップにおいて生成されたターゲット埋め込みに依存しないことを確実にする。いくつかの実装形態では、デコーダ112の層は、1つまたは複数のグループに割り当てられ、各グループ内で、グループ内の層の拡張率は、拡張率1から始めて層ごとに2倍になる。
【００３８】
デコーダ112は、動的な展開によって可変長のターゲット埋め込みシーケンス114を生成し、ここで、デコーダは、たとえば、デコーダがシーケンス終了(end-of-sequence: EOS)トークンを生成するまで、以前に生成されたターゲット埋め込みおよび符号化されたソース表現に基づいて、ターゲット埋め込みを反復的に生成する。
【００３９】
拡張されたマスクされた畳み込み層に加えて、デコーダ112は、サブバッチ正規化層も含み得る。すなわち、これらの実装形態では、デコーダの1つまたは複数の1次元のマスクされた畳み込み層の後に、サブバッチ正規化層が続く。サブバッチ正規化層の動作について、図4のプロセス400を参照して以下に説明する。
【００４０】
エンコーダおよびデコーダニューラルネットワークを使用して、ソースシーケンスからターゲットシーケンスを生成するための例示的なプロセスについて、図2を参照して以下により詳細に説明する。
【００４１】
図2は、ソースシーケンスからターゲットシーケンスを生成するための例示的なプロセス200のフロー図である。便宜上、プロセス200は、1つまたは複数の場所にある1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、この仕様に従って適切にプログラムされた図1のニューラル機械翻訳システム100などのニューラル機械翻訳システムは、プロセス200を実行することができる。
【００４２】
システムは、ソース埋め込みモデルを使用して、ソース自然言語のテキストのソースシーケンスからソース埋め込みのシーケンスを生成する(ステップ202)。特に、システムは、ソース自然言語の文字を、対応するソース埋め込みベクトルに順次マッピングする。
【００４３】
いくつかの実装形態では、ソース埋め込みモデルは、ソース自然言語の文字を、その文字自体のみに基づいて、対応するソース埋め込みベクトルにマッピングする。いくつかの他の実装形態では、ソース埋め込みモデルは、ソースシーケンス内の単語を、対応するソース埋め込みベクトルにマッピングする。いくつかの他の実装形態では、ソース埋め込みモデルは、n-gram埋め込みのバッグモデルであり、所与の文字に隣接する文字のn-gramに基づいて、ソース自然言語の文字を、対応するソース埋め込みベクトルにマッピングし、この場合、nの範囲が1からkであり、ここで、kは、2以上の所定の正の整数である。たとえば、ソース埋め込みモデルは、最初に、所与の文字に隣接する文字の各n-gramを、それぞれのn-gram埋め込みベクトルに関連付け、それぞれのn-gram埋め込みベクトルを加算することによって、ソース埋め込みベクトルを生成し得る。別の例として、ソース埋め込みモデルは、最初に、所与の文字に隣接する文字の各n-gramを、それぞれのn-gram埋め込みベクトルに関連付け、それぞれのn-gram埋め込みベクトルを連結することによって、ソース埋め込みベクトルを生成し得る。
【００４４】
次に、システムは、出力として符号化されたソース表現を生成する畳み込みニューラルネットワークエンコーダへの入力として、ソース埋め込みのシーケンスを提供する(ステップ204)。一般に、エンコーダは、ソース埋め込みシーケンスと同じ長さの符号化されたソース表現を生成するように構成される。したがって、符号化されたソース表現の長さは、ソースシーケンス間で異なるソース埋め込みシーケンスの長さによって決定されるので、符号化されたソース表現は、固定長を有さない。一般に、エンコーダは、ソース埋め込みのシーケンス内のソース埋め込みごとのデータのそれぞれの列を含む行列である符号化されたソース表現を生成するように構成される。
【００４５】
特に、畳み込みニューラルネットワークエンコーダは、拡張畳み込みニューラルネットワーク層のスタックを含み、拡張畳み込みニューラルネットワーク層のスタックを介してソース埋め込みのシーケンスを処理することによって、符号化されたソース表現を生成する。上記で説明したように、いくつかの実装形態では、エンコーダの層は、1つまたは複数のグループに割り当てられ、各グループ内で、グループ内の層の拡張率は、拡張率1から始めて層ごとに2倍になる。ソース埋め込みモデルが、ソースシーケンス内の所与の文字に隣接する文字の各n-gramを、それぞれのn-gram埋め込みベクトルに関連付け、それぞれのn-gram埋め込みベクトルを連結することによって、ソース埋め込みベクトルを生成するいくつかの実装形態では、エンコーダの第1の層は、1×1畳み込み層である。
【００４６】
次に、システムは、ターゲット埋め込みのシーケンスを出力として生成するマスクされた畳み込みニューラルネットワークデコーダへの入力として、符号化されたソース表現を提供する(ステップ206)。
【００４７】
デコーダは、動的展開を使用してターゲット埋め込みの出力シーケンスを生成する。動的展開を使用してターゲット埋め込みの出力シーケンスを生成するための例示的なプロセスについて、図3のプロセス300を参照して以下に説明する。
【００４８】
次に、システムは、ソース自然言語のソースシーケンスの翻訳であるターゲット自然言語のターゲットシーケンスを生成するために、ターゲット埋め込みのシーケンスを処理する(ステップ208)。一般に、システムは、ターゲット埋め込みをターゲット自然言語の文字または単語に順次マッピングすることによって、ターゲット自然言語のターゲットシーケンスを生成する。
【００４９】
図3は、デコーダネットワークを使用してターゲットシーケンスを生成するための例示的なプロセス300のフロー図である。便宜上、プロセス300は、1つまたは複数の場所にある1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、この仕様に従って適切にプログラムされた図1のニューラル機械翻訳システム100などのニューラル機械翻訳システムは、プロセス300を実行することができる。
【００５０】
プロセス300は、各反復でそれぞれのターゲット埋め込みを順次生成するシステムによって実行される反復プロセスを説明する。反復は順次実行されるので、以下では、便宜上、各反復は、時間ステップと呼ばれる。
【００５１】
システムは、ソース埋め込みのシーケンスの符号化表現がその時間ステップに対応する列を有するかどうかを判定する(ステップ302)(述べたように、符号化表現は、ソース埋め込みのシーケンス内のソース埋め込みごとのデータのそれぞれの列を含む行列とすることができる)。符号化表現がその時間ステップに対応する列を有していないとの決定に応答して、システムは、ゼロの列を、その時間ステップについての符号化表現の対応する列として識別する(ステップ304)。たとえば、ターゲット埋め込みのシーケンスがソース埋め込みのシーケンスよりも長い場合、符号化表現は、その時間ステップに対応する列を有していない可能性がある。符号化表現がその時間ステップに対応する列を有すると決定したことに応答して、システムは、符号化表現を修正することを控える。
【００５２】
次に、システムは、前の時間ステップにおいて生成されたターゲット埋め込みを連結し、連結されたターゲット埋め込み、および時間ステップについてのソース埋め込みのシーケンスの符号化表現の対応する列を、現在の時間ステップのマスクされた1次元の畳み込みニューラルネットワークデコーダへの入力として提供する(ステップ306)。デコーダは、時間ステップの可能なターゲット埋め込みのセットについての確率を出力として生成するように構成される。システムは、確率に従って可能なターゲット埋め込みのセットから1つのターゲット埋め込みをサンプリングする、または時間ステップのターゲット埋め込みとして最も高い確率を有するターゲット埋め込みを選択する。たとえば、デコーダの最終層は、確率を生成するソフトマックス出力層であり得る。
【００５３】
一般に、デコーダが、所与の時間ステップについてのターゲット埋め込みを生成するために、所与の時間ステップにおいて生成されていない将来のターゲット埋め込みに依存しないことを確実にするために、デコーダは、マスクされた畳み込みを実施する。いくつかの実装形態では、1次元のマスクされた畳み込みは、畳み込みカーネルの重みのいくつかをゼロにすることによって実施される。
【００５４】
第1の時間ステップでは、前の時間ステップにおいてターゲット埋め込みが生成されていないとき、デコーダへの入力は、ソース埋め込みの符号化表現の対応する列のみである。
【００５５】
システムは、様々な方法のうちの任意の方法で、ターゲット埋め込みおよび符号化表現の対応する列をデコーダへの入力として提供し得る。たとえば、システムは、ターゲット埋め込みと符号化表現の対応する列とを連結することができる。別の例として、システムは、対応する列をターゲット埋め込みに追加することができる。さらに別の例として、デコーダは、最初に、1つまたは複数の初期ニューラルネットワーク層、たとえば1つまたは複数の1×1畳み込み層を使用してターゲット埋め込みを処理し、次いで、その列を初期ニューラルネットワーク層の出力に追加することができる。
【００５６】
次に、システムは、デコーダによって生成されたターゲット埋め込みがシーケンス終了(EOS)シンボルであるかどうかを判定する(ステップ310)。生成されたターゲット埋め込みがEOSシンボルであると決定したことに応答して、ターゲット埋め込みのシーケンスが出力される(ステップ312)。生成されたターゲット埋め込みがEOSシンボルではないと決定したことに応答して、プロセス300はステップ302に戻り、前のステップを繰り返す。
【００５７】
システムは、エンコーダおよびデコーダを並列に実行することができ、各時間ステップにおいて、エンコーダは、符号化されたソース表現の対応する列を生成し、デコーダは、ソース表現の対応する列、および以前に生成されたターゲット埋め込みを処理して、時間ステップについてのターゲット埋め込みを生成する。
【００５８】
システムは、所望の出力、すなわちソースシーケンスをソース自然言語からターゲット自然言語に翻訳するターゲットシーケンスがわからないソースシーケンス入力について、プロセス200および300を実行することができる。システムはまた、エンコーダおよびデコーダの層のパラメータについてのトレーニング値を決定するために、トレーニングデータのセット、すなわちシステムによって生成されるべきターゲットシーケンスがわかっている入力のセットにおけるソースシーケンス入力に対してプロセス200および300を実行することができる。プロセス200および300は、層をトレーニングするための従来の機械学習トレーニング技法の一部として、トレーニングデータのセットから選択された入力に対して繰り返し実行される。
【００５９】
層をトレーニングするための機械学習トレーニング技法は、「バッチ」と呼ばれるトレーニングデータのサブセットをシステムが選択し、システムがバッチ内のソースシーケンスに対応する予測ターゲットシーケンスを生成し、システムが、バックプロパゲーションによる性能尺度に従って、システムの性能を向上させるために、エンコーダおよびデコーダの層のパラメータの値を調整するバックプロパゲーションによる確率勾配降下法であり得る。
【００６０】
いくつかの実装形態では、デコーダの1つまたは複数の1次元のマスクされた畳み込み層の後に、サブバッチ正規化層が続く。サブバッチ正規化層の動作について、次に参照する図4のプロセス400を参照して説明する。
【００６１】
図4は、サブバッチ正規化のための例示的なプロセス400のフロー図である。便宜上、プロセス400は、1つまたは複数の場所にある1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、この仕様に従って適切にプログラムされた図1のニューラル機械翻訳システム100などのニューラル機械翻訳システムは、プロセス400を実行することができる。
【００６２】
トレーニング反復中、ソース-ターゲットシーケンス対の所与のバッチについて、システムは、そのバッチをメインサブバッチと補助サブバッチとに分割する(ステップ402)。たとえば、バッチは、ランダムにまたは任意に、それぞれ固定サイズのメインサブバッチと補助サブバッチとに分割されてもよい。
【００６３】
システムは、シーケンスの補助サブバッチ内のシーケンスについて、サブバッチ正規化層への入力のバッチ正規化統計を決定する(ステップ404)。バッチ正規化統計は、サブバッチ正規化層への入力の平均および分散を含み得る。
【００６４】
システムは、補助サブバッチについてのバッチ正規化統計を使用して、補助サブバッチとメインサブバッチの両方におけるシーケンスについてのサブバッチ正規化層への入力を正規化する(ステップ406)。
【００６５】
システムは、サブバッチ正規化層から、サブバッチ正規化層への正規化入力を、すなわちデコーダ内の別の層、たとえば拡張されたマスクされた畳み込み層への入力として出力する(ステップ408)。
【００６６】
バックプロパゲーションを実行する際に補助サブバッチについての予測ターゲットシーケンスが無視される一方で、サブバッチ正規化を用いたシステムのトレーニング中に、メインサブバッチについての予測ターゲットシーケンスのみに基づいて、各反復においてバックプロパゲーションが実行される。
【００６７】
サブバッチ正規化層は、バッチをメインサブバッチと補助サブバッチとに分割するのではなく、むしろバッチ全体に基づいてバッチ正規化統計を決定する従来のバッチ正規化層とは異なる。バッチ正規化統計の計算は、ターゲット埋め込みシーケンス内のすべてのターゲット埋め込みに沿ったバッチ正規化層への入力を考慮に入れ、したがって、バッチ正規化統計を用いてバッチ正規化層への入力を正規化することは、デコーダの調整構造に違反する。しかしながら、サブバッチ正規化層を使用して、バッチ正規化統計は、メインサブバッチではなく補助サブバッチに基づいて計算されるので、デコーダの調整構造は、メインサブバッチ内のシーケンスについて保持され、補助サブバッチではなく、メインサブバッチの予測シーケンスに基づいて、バックプロパゲーションが実行される。
【００６８】
いくつかの実装形態では、畳み込みニューラルネットワークエンコーダおよび/またはデコーダの層のうちの1つまたは複数は、1つまたは複数の追加の畳み込み層を含む残差ブロックでラップされる。一般に、残差ブロックは、残差ブロックへの入力を残差ブロックの出力に加えることによって、ニューラルネットワークのより効果的なトレーニングを可能にし、それによって、残差ブロック内の層が増分表現を学習することを可能にする。いくつかの実装形態では、残差ブロックは、正規化線形ユニット(ReLU)活性化層を含む。他の実装形態では、残差ブロックは、乗算ユニット活性化層を含む。
【００６９】
本明細書は、システムおよびコンピュータプログラム構成要素に関して「構成された」という用語を使用する。1つまたは複数のコンピュータのシステムが特定の動作またはアクションを実行するように構成されているとは、システムが、動作中、システムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしていることを意味する。1つまたは複数のコンピュータプログラムが特定の動作またはアクションを実行するように構成されているとは、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置に動作またはアクションを実行させる命令を含むことを意味する。
【００７０】
本明細書に記載された主題および機能的動作の実施形態は、デジタル電子回路、有形に実施されたコンピュータソフトウェアまたはファームウェア、本明細書に開示される構造およびそれらの構造的均等物を含むコンピュータハードウェア、またはそれらの1つもしくは複数の組合せに実装することができる。本明細書に記載される主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置によって実行される、またはデータ処理装置の動作を制御するための有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムまたはシリアルアクセスメモリデバイス、またはそれらの1つもしくは複数の組合せとすることができる。代替的に、または追加として、プログラム命令は、人工的に生成された伝搬信号、たとえば、データ処理装置によって実行するための適切な受信機装置への送信のために情報を符号化するために生成された機械生成電気、光学、または電磁信号上で符号化することができる。
【００７１】
「データ処理装置」という用語は、データ処理ハードウェアを指し、たとえば、プログラム可能プロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイスおよび機械を包含する。装置は、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路でもよく、またはそれをさらに含むことができる。装置は、随意に、ハードウェアに加えて、コンピュータプログラムの実行環境を生成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの1つまたは複数の組合せを構成するコードを含むことができる。
【００７２】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれるまたは記述されることもあるコンピュータプログラムは、コンパイルもしくはインタープリタ型言語、宣言型言語もしくは手続き型言語を含む、任意の形式のプログラミング言語で記述することができ、それは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境での使用に適した他のユニットとしてなど、あらゆる形式で展開できる。プログラムは、必ずしも必要はないが、ファイルシステム内のファイルに対応し得る。プログラムは、問題のプログラム専用の単一のファイル、または、たとえば、1つまたは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルなど、複数のコーディネートされたファイルに、たとえば、マークアップ言語文書に記憶された1つまたは複数のスクリプトなど、他のプログラムまたはデータを保持するファイルの一部に記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置するか、もしくは複数のサイトに分散され、データ通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように配備することができる。
【００７３】
本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を実行するようにプログラムされているソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広く使用されている。一般に、エンジンは、1つまたは複数の場所における1つまたは複数のコンピュータにインストールされた1つまたは複数のソフトウェアモジュールまたは構成要素として実装される。いくつかの場合には、1つまたは複数のコンピュータが特定のエンジンに専用であり、他の場合には、複数のエンジンを、同じ1つまたは複数のコンピュータにインストールし、そこにおいて実行することができる。
【００７４】
本明細書で記述されたプロセスおよび論理フローは、入力データ上で動作し、出力を生成することによって機能を実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能コンピュータによって実行することができる。プロセスおよび論理フローは、たとえばFPGAまたはASICなどの専用論理回路によって、または専用論理回路と1つまたは複数のプログラムされたコンピュータとの組合せによっても実行することができる。
【００７５】
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサ、またはその両方、あるいは任意の他の種類の中央処理装置に基づき得る。一般に、中央処理装置は、読取り専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実行または実行するための中央処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理装置およびメモリは、専用論理回路によって補うまたは組み込むことができる。一般に、コンピュータは、たとえば磁気、光磁気ディスク、または光ディスクなど、データを記憶するための1つまたは複数の大容量記憶デバイスをも含み、あるいは、1つまたは複数の大容量記憶デバイスからデータを受信する、それにデータを転送する、またはその両方のために動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げれば、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはユニバーサルシリアルバス(USB)フラッシュドライブなどのポータブルストレージデバイス中に埋め込むことができる。
【００７６】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、一例として、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、たとえば内部ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含むすべての形態の不揮発性メモリ、メディアおよびメモリデバイスを含む。
【００７７】
ユーザとの対話を提供するために、本明細書に記載される主題の実施形態は、ユーザに情報を表示するための、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタなどのディスプレイデバイス、ならびにキーボードおよび、ユーザがコンピュータに入力を提供することができる、たとえば、マウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上に実装することができる。他の種類のデバイスを使用して、ユーザとの対話を提供することもでき、たとえば、ユーザに提供されるフィードバックは、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形態の感覚フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。さらに、コンピュータは、たとえば、ウェブブラウザから受信された要求に応答して、ユーザのデバイス上のウェブブラウザにウェブページを送信することによってなど、ユーザによって使用されるデバイスとの間でドキュメントを送受信することによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形態のメッセージをパーソナルデバイス、たとえば、メッセージングアプリケーションを実行しているスマートフォンに送信し、代わりに、ユーザから応答メッセージを受信することによって、ユーザと対話することができる。
【００７８】
機械学習モデルを実装するためのデータ処理装置はまた、たとえば、機械学習のトレーニングまたは製作、すなわち推論、作業負荷の共通部分および計算集約的部分を処理するための専用ハードウェアアクセラレータユニットも含むことができる。
【００７９】
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して実装および展開することができる。
【００８０】
本明細書に記載される主題の実施形態は、たとえばデータサーバとしてのバックエンド構成要素を含む、またはアプリケーションサーバなどのミドルウェア構成要素を含む、またはたとえば、ユーザが本明細書に記載された主題の実装と対話することができる、グラフィカルユーザインタフェース、ウェブブラウザ、またはアプリを有するクライアントコンピュータなどのフロントエンド構成要素を含む、または1つもしくは複数のそのようなバックエンド、ミドルウェア、またはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムにおいて実装することができる。システムの構成要素は、たとえば、通信ネットワークなど、任意の形式または媒体のデジタルデータ通信によって相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、たとえばインターネットがある。
【００８１】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバは、一般に、互いに遠隔であり、典型的には、通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムのおかげで生じる。いくつかの実施形態では、サーバは、たとえば、クライアントとして動作するデバイスと対話しているユーザにデータを表示し、ユーザからユーザ入力を受信するために、データ、たとえば、HTMLページをユーザデバイスに送信する。たとえば、ユーザ対話の結果など、ユーザデバイスにおいて生成されたデータは、デバイスからサーバにおいて受信することができる。
【００８２】
本明細書は、多くの具体的な実施の詳細を含むが、これらは、いかなる発明の範囲または特許請求される可能性のある範囲に対する限定ではなく、むしろ特定の発明の特定の実施形態に固有であり得る特徴の説明として解釈されるものとする。別個の実施形態の文脈において本明細書で説明されるいくつかの特徴は、単一の実施形態において組み合わせて実装することもできる。逆に、単一の実施形態の文脈で記載されている様々な特徴は、複数の実施形態で別々にまたは任意の適切な部分組合せで実装することもできる。さらに、特徴は、いくつかの組合せで作用するものとして上述されており、当初はそのように請求されているものであるが、いくつかの場合、請求された組合せからの1つまたは複数の特徴を、組合せから削除することができ、請求された組合せは、部分組合せ、または部分組合せの変形を対象とし得る。
【００８３】
同様に、動作が図面に示され、特許請求の範囲に特定の順序で記載されているが、これは、そのような動作が、示された特定の順序で、または順番に実行されること、あるいは望ましい結果を達成するために、図示されたすべての動作が実行されることを必要とするものとして理解されないものとする。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。さらに、上述した実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とするものと理解されないものとし、記述されたプログラム構成要素およびシステムを、一般に、単一のソフトウェア製品に一緒に組み入れることができ、または複数のソフトウェア製品にパッケージ化することができることを理解されたい。
【００８４】
主題の特定の実施形態が記載されている。他の実施形態は、以下の特許請求の範囲内にある。たとえば、特許請求の範囲に列挙されたアクションは、異なる順序で実行され、依然として望ましい結果を達成することができる。一例として、添付の図面に示されるプロセスは、望ましい結果を達成するために、示された特定の順序または逐次的な順序を必ずしも必要としない。いくつかの場合には、マルチタスキングおよび並列処理が有利であり得る。
【符号の説明】
【００８５】
100  ニューラル機械翻訳システム
102  ソースシーケンス
104  ソース埋め込みモデル
106  ソース埋め込みシーケンス
108  畳み込みニューラルネットワークエンコーダ
110  符号化されたソース表現
112  マスクされた畳み込みニューラルネットワークデコーダ
114  ターゲット埋め込みシーケンス
116  ターゲットシーケンス
【図１】
0006756916.tif 000002
【図２】
0006756916.tif 000003
【図３】
0006756916.tif 000004
【図４】
0006756916.tif 000005