(57)【要約】  ニューラル機械翻訳のための、コンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む方法、システム、および装置が提供される。システムのうちの1つは、各入力トークンのそれぞれの順方向表現を生成するために、入力シーケンス内の各入力トークンを順方向に処理するように構成される入力順方向長短期メモリ(LSTM)層と、各入力トークンのそれぞれの逆方向表現を生成するために、各入力トークンを逆方向に処理するように構成される入力逆方向LSTM層と、入力トークンの各々のそれぞれの符号化表現を生成するために、入力トークンの各々のそれぞれの組合せ表現を順方向に処理するように構成される複数の隠れLSTM層とを備えるエンコーダニューラルネットワークと、それぞれの符号化表現を受信することと、出力シーケンスを生成するために符号化表現を処理することとを行うように構成されるデコーダサブシステムとを含む。
2019537096.tif 000002
【特許請求の範囲】
【請求項１】
1つまたは複数のコンピュータによって実装されるニューラル機械翻訳システムであって、前記ニューラル機械翻訳システムが、第1の自然言語における第1の単語のシーケンスを表す入力トークンの入力シーケンスを受信し、かつ前記第1のシーケンスの第2の自然言語への翻訳である第2の単語のシーケンスを表す出力トークンの出力シーケンスを生成するように構成され、
エンコーダニューラルネットワークであって、
各入力トークンのそれぞれの順方向表現を生成するために、前記入力シーケンス内の各入力トークンを順方向に処理するように構成される入力順方向長短期メモリ(LSTM)層と、
各入力トークンのそれぞれの逆方向表現を生成するために、前記入力シーケンス内の各入力トークンを逆方向に処理するように構成される入力逆方向LSTM層と、
前記入力シーケンス内の入力トークンごとに、前記入力トークンの組合せ表現を生成するために、前記入力トークンの前記順方向表現と前記入力トークンの前記逆方向表現とを組み合わせるように構成される組合せ層と、
前記入力シーケンス内の前記入力トークンの各々のそれぞれの符号化表現を生成するために、各組合せ表現を前記順方向に処理するように構成される複数の隠れLSTM層と
を備える、エンコーダニューラルネットワークと、
前記入力シーケンス内の前記入力トークンの各々の前記それぞれの符号化表現を受信し、かつ前記出力シーケンスを生成するために前記符号化表現を処理するように構成されるデコーダサブシステムと
を備える、ニューラル機械翻訳システム。
【請求項２】
前記隠れLSTM層が次々に重ねられて配置され、前記複数の隠れLSTM層が少なくとも7つのLSTM層を備える、請求項1に記載のニューラル機械翻訳システム。
【請求項３】
前記複数の隠れLSTM層のうちの少なくとも2つが残差接続と接続される、請求項2に記載のニューラル機械翻訳システム。
【請求項４】
前記デコーダサブシステムが、
デコーダニューラルネットワークであって、
上下に重ねられて配置された複数のLSTM層であって、前記出力シーケンス内の複数の位置ごとに、
前記出力シーケンス内の前の位置においてアテンション文脈ベクトルと前記出力トークンとを受信し、
前記位置のLSTM出力を生成するために、前記出力シーケンス内の前記前の位置において前記アテンション文脈ベクトルと前記トークンとを処理する
ように構成される、複数のLSTM層と、
ソフトマックス出力層であって、前記複数の位置ごとに、前記位置についての前記LSTM出力を受信し、かつ出力トークンの語彙内の出力トークンごとにそれぞれのスコアを生成するように構成される、ソフトマックス出力層と
を備える、デコーダニューラルネットワーク
を備える、請求項1〜3のいずれか一項に記載のニューラル機械翻訳システム。
【請求項５】
前記複数のLSTM層が少なくとも8つのLSTM層を備える、請求項4に記載のニューラル機械翻訳システム。
【請求項６】
前記複数のLSTM層のうちの少なくとも2つが残差接続と接続される、請求項4または5のいずれか一項に記載のニューラル機械翻訳システム。
【請求項７】
前記スタック内の第1のLSTM層が、前記複数の位置ごとに、
前記アテンション文脈ベクトルを備える第1の層入力と、前記スタック内の前記第1のLSTM層の直下のLSTM層によって生成された層出力と、前記スタック内の前記第1のLSTM層の直下の前記LSTM層への層入力とを受信し、
第1の層出力を生成し、かつ現在の隠れ状態を更新するために、前記第1のLSTM層の前記現在の隠れ状態に従って前記第1の層入力を処理する
ように構成される、請求項6に記載のニューラル機械翻訳システム。
【請求項８】
前記デコーダサブシステムが、
アテンションサブシステムであって、前記複数の位置ごとに、
前記前の位置について、前記デコーダニューラルネットワーク内のLSTM層の前記スタック内のLSTM最下層によって生成された最下層出力を備えるアテンション入力を受信し、
時間ステップの前記アテンション文脈ベクトルを生成するために、前記アテンション入力を処理する
ように構成される、請求項4〜7のいずれか一項に記載のニューラル機械翻訳システム。
【請求項９】
前記時間ステップの前記アテンション文脈ベクトルを生成するために、前記入力シーケンス内の前記最下層出力および前記入力トークンの各々の前記それぞれの符号化表現を処理することが、前記複数の時間ステップごとに、
前記入力トークンの各々のそれぞれのスコアを生成するために、1つまたは複数のニューラルネットワーク層を通じて前記最下層出力および前記符号化表現を処理することと、
前記それぞれのスコアから前記入力トークンの各々のそれぞれの重みを生成することと、
前記重みに従って前記符号化表現の加重合計を決定することと
を備える、請求項8に記載のニューラル機械翻訳システム。
【請求項１０】
前記入力および出力トークンが単語ピースである、請求項1〜9のいずれか一項に記載のニューラル機械翻訳システム。
【請求項１１】
前記エンコーダニューラルネットワークおよび前記デコーダサブシステムが、前記出力シーケンスの生成中に量子化計算を実行するように構成される、請求項1〜10のいずれか一項に記載のニューラル機械翻訳システム。
【請求項１２】
第1の単語のシーケンスの第2の自然言語への翻訳である第2の単語のシーケンスを表す出力トークンの出力シーケンスを生成する方法であって、
ニューラル機械翻訳システムから複数の候補出力シーケンスを取得するステップと、
前記ニューラル機械翻訳システムによるさらなる検討のために、最大で所定の数の前記候補出力シーケンスをビーム内に維持するステップであって、
各候補出力シーケンスにそれぞれのスコアを割り当てるステップと、
前記それぞれのスコアに基づいて前記候補出力シーケンスをランク付けするステップと、
前記ランク付けに従って、前記所定の数の最高ランクの候補出力シーケンス以外のすべての候補出力シーケンスを前記ビームから除去するステップと、
前記ビーム内の前記候補出力シーケンスのうちのいずれかが、前記ニューラル機械翻訳システムによって最終決定候補出力シーケンスとして識別されたかどうかを判定するステップと、
前記候補出力シーケンスのうちの少なくとも1つが最終決定候補出力シーケンスとして識別されたとき、
最高ランクの最終決定候補出力シーケンスの前記スコアより低いしきい値よりも大きいスコアを有するすべての候補出力シーケンスを前記ビームから除去するステップと
を備える、ステップと
を備える、方法。
【請求項１３】
前記ニューラル機械翻訳システムが、請求項1〜11のいずれか一項に記載の前記ニューラル機械翻訳システムである、請求項12に記載の方法。
【請求項１４】
前記ニューラル機械翻訳システムによって前記候補出力シーケンスのいずれかが最終決定候補出力シーケンスとして識別されたかどうかを判定するステップが、
前記候補出力シーケンスのいずれかが所定の文末出力トークンで終わるかどうかを判定するステップ
を備える、請求項12または13のいずれか一項に記載の方法。
【請求項１５】
各候補出力シーケンスにそれぞれのスコアを割り当てるステップが、
前記ニューラル機械翻訳システムによって生成された出力スコアに従って前記候補出力シーケンスの対数尤度を決定するステップと、
長さ正規化対数尤度を生成するために、前記候補出力シーケンス内のいくつかの出力トークンに基づいて前記対数尤度を正規化するステップと
を備える、請求項12〜14のいずれか一項に記載の方法。
【請求項１６】
各候補出力シーケンスにそれぞれのスコアを割り当てるステップが、
前記第1のシーケンス内の前記単語を完全に網羅する候補出力シーケンスを優先するために、カバレッジペナルティを使用して前記長さ正規化対数尤度を修正するステップ
をさらに備える、請求項15に記載の方法。
【請求項１７】
前記ビーム内のすべての前記候補出力シーケンスが、前記ニューラル機械翻訳システムによって最終決定候補出力シーケンスとして識別されたとき、最高スコアの候補出力シーケンスを前記出力シーケンスとして選択するステップ
をさらに備える、請求項12〜16のいずれか一項に記載の方法。
【請求項１８】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1〜11のいずれか一項に記載の前記システムを実装させる命令で符号化された、1つまたは複数のコンピュータ記憶媒体。
【請求項１９】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項12〜17のいずれか一項に記載の前記それぞれの方法の前記動作を実行させる命令で符号化された、1つまたは複数のコンピュータ記憶媒体。
【請求項２０】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項12〜17のいずれか一項に記載の前記それぞれの方法の前記動作を実行させる命令を記憶する前記1つまたは複数のコンピュータおよび1つまたは複数の記憶デバイスを備える、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、ニューラルネットワークを使用してテキストを翻訳することに関する。
【背景技術】
【０００２】
機械学習モデルは、入力を受信し、受信した入力に基づいて出力、たとえば予測出力を生成する。いくつかの機械学習モデルはパラメトリックモデルであり、受信した入力とモデルのパラメータの値とに基づいて出力を生成する。
【０００３】
いくつかの機械学習モデルは、受信した入力に対する出力を生成するために複数のモデルの層を採用するディープモデルである。たとえば、ディープニューラルネットワークは、出力層と、出力を生成するために受信した入力に非線形変換をそれぞれが適用する1つまたは複数の隠れ層とを含むディープ機械学習モデルである。
【０００４】
いくつかのニューラルネットワークはリカレントニューラルネットワークである。リカレントニューラルネットワークは、入力シーケンスを受信し、その入力シーケンスから出力シーケンスを生成するニューラルネットワークである。具体的には、リカレントニューラルネットワークは、入力シーケンス内の現在の入力から出力を生成する際に、入力シーケンス内の前の入力を処理した後に、ネットワークの内部状態の一部または全部を使用する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Schuster, M.およびNakajima, K.のJapanese and Korean voice search. 2012 IEEE International Conference on Acoustics, Speech and Signal Processing (2012)
【非特許文献２】Sennrich, R.、Haddow, B.、およびBirch, A.のNeural machine translation of rare words with subword units
【非特許文献３】第54回計算言語学会年会(2016)の議事録
【発明の概要】
【課題を解決するための手段】
【０００６】
本明細書は、ニューラルネットワークを使用してテキストをソース言語からターゲット言語に翻訳する、1つまたは複数の場所にある1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムを説明する。
【０００７】
説明される主題のいくつかの態様では、1つまたは複数のコンピュータによって実装されるニューラル機械翻訳システムは、第1の自然言語における第1の単語のシーケンスを表す入力トークンの入力シーケンスを受信し、第1のシーケンスの第2の自然言語への翻訳である第2の単語のシーケンスを表す出力トークンの出力シーケンスを生成するように構成され、エンコーダニューラルネットワークとデコーダサブシステムとを備える。次に、エンコーダニューラルネットワークは、各入力トークンのそれぞれの順方向表現を生成するために、入力シーケンス内の各入力トークンを順方向に処理するように構成される入力順方向長短期メモリ(LSTM)層と、各入力トークンのそれぞれの逆方向表現を生成するために、入力シーケンス内の各入力トークンを逆方向に処理するように構成される入力逆方向LSTM層と、入力シーケンス内の入力トークンごとに、入力トークンの組合せ表現を生成するために、入力トークンの順方向表現と入力トークンの逆方向表現とを組み合わせるように構成される組合せ層と、入力シーケンス内の入力トークンの各々のそれぞれの符号化表現を生成するために、各組合せ表現を順方向に処理するように構成される複数の隠れLSTM層とを備える。デコーダサブシステムは、入力シーケンス内の入力トークンの各々のそれぞれの符号化表現を受信することと、出力シーケンスを生成するために符号化表現を処理することとを行うように構成される。
【０００８】
これらの態様のいくつかにおいて、隠れLSTM層は次々に重ねられて配置され、複数の隠れLSTM層は少なくとも7つのLSTM層を備える。これらの態様のいくつかにおいて、複数の隠れLSTM層のうちの少なくとも2つは残差接続と接続される。
【０００９】
これらの態様のいくつかにおいて、デコーダサブシステムは、デコーダニューラルネットワークを備え、デコーダニューラルネットワークは、上下に重ねられて配置された複数のLSTM層であって、出力シーケンス内の複数の位置ごとに、出力シーケンス内の前の位置においてアテンション文脈ベクトルと出力トークンを受信することと、その位置のLSTM出力を生成するために、出力シーケンス内の前の位置においてアテンション文脈ベクトルとトークンを処理することとを行うように構成される、複数のLSTM層と、ソフトマックス出力層であって、複数の位置ごとに、その位置についてのLSTM出力を受信することと、出力トークンの語彙内の出力トークンごとにそれぞれのスコアを生成することとを行うように構成される、ソフトマックス出力層とを備える。
【００１０】
これらの態様のいくつかにおいて、デコーダ内の複数のLSTM層は少なくとも8つのLSTM層を備える。これらの態様のいくつかにおいて、デコーダ内の複数のLSTM層のうちの少なくとも2つは残差接続と接続される。これらの態様のいくつかにおいて、スタック内の第1のLSTM層は、複数の位置ごとに、アテンション文脈ベクトルを備える第1の層入力と、スタック内の第1のLSTM層の直下のLSTM層によって生成された層出力と、スタック内の第1のLSTM層の直下のLSTM層への層入力とを受信することと、第1の層出力を生成し、現在の隠れ状態を更新するために、第1のLSTM層の現在の隠れ状態に従って第1の層入力を処理することとを行うように構成される。
【００１１】
これらの態様のいくつかにおいて、デコーダシステムは、アテンションサブシステムをさらに備え、アテンションサブシステムは、複数の位置ごとに、前の位置について、デコーダニューラルネットワーク内のLSTM層のスタック内のLSTM最下層によって生成された最下層出力を備えるアテンション入力を受信することと、時間ステップのアテンション文脈ベクトルを生成するために、アテンション入力を処理することとを行うように構成される。
【００１２】
これらの態様のいくつかにおいて、時間ステップのアテンション文脈ベクトルを生成するために、入力シーケンス内の最下層出力および入力トークンの各々のそれぞれの符号化表現を処理することは、複数の時間ステップごとに、入力トークンの各々のそれぞれのスコアを生成するために、1つまたは複数のニューラルネットワーク層を通じて最下層出力および符号化表現を処理することと、それぞれのスコアから入力トークンの各々のそれぞれの重みを生成することと、重みに従って符号化表現の加重合計を決定することとを備える。
【００１３】
これらの態様のいくつかにおいて、入力および出力トークンは単語ピースである。
【００１４】
これらの態様のいくつかにおいて、エンコーダニューラルネットワークおよびデコーダサブシステムは、出力シーケンスの生成中に量子化計算を実行するように構成される。
【００１５】
他の態様は、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに、上記態様のいずれかのニューラル機械翻訳システムを実装させる命令で符号化された1つまたは複数のコンピュータ記憶媒体を含む。
【００１６】
いくつかの他の態様は、第1の単語のシーケンスの第2の自然言語への翻訳である第2の単語のシーケンスを表す出力トークンの出力シーケンスを生成する方法であって、ニューラル機械翻訳システムから複数の候補出力シーケンスを取得するステップと、ニューラル機械翻訳システムによるさらなる検討のために、最大で所定の数の候補出力シーケンスをビーム内に維持するステップであって、各候補出力シーケンスにそれぞれのスコアを割り当てるステップと、それぞれのスコアに基づいて候補出力シーケンスをランク付けするステップと、ランク付けに従って、所定の数の最高ランクの候補出力シーケンス以外のすべての候補出力シーケンスをビームから除去するステップと、ビーム内の候補出力シーケンスのうちのいずれかが、ニューラル機械翻訳システムによって最終決定候補出力シーケンスとして識別されたかどうかを判定するステップと、候補出力シーケンスのうちの少なくとも1つが最終決定候補出力シーケンスとして識別されたとき、最高ランクの最終決定候補出力シーケンスのスコアより低いしきい値よりも大きいスコアを有するすべての候補出力シーケンスをビームから除去するステップとを備える、ステップとのアクションを含む、方法を含む。
【００１７】
これらの態様のいくつかにおいて、ニューラル機械翻訳システムによって候補出力シーケンスのいずれかが最終決定候補出力シーケンスとして識別されたかどうかを判定するステップは、候補出力シーケンスのいずれかが所定の文末出力トークンで終わるかどうかを判定するステップを備える。
【００１８】
これらの態様のいくつかにおいて、各候補出力シーケンスにそれぞれのスコアを割り当てるステップは、ニューラル機械翻訳システムによって生成された出力スコアに従って候補出力シーケンスの対数尤度を決定するステップと、長さ正規化対数尤度を生成するために、候補出力シーケンス内のいくつかの出力トークンに基づいて対数尤度を正規化するステップとを備える。
【００１９】
これらの態様のいくつかにおいて、各候補出力シーケンスにそれぞれのスコアを割り当てるステップは、第1のシーケンス内の単語を完全に網羅する候補出力シーケンスを優先するために、カバレッジペナルティを使用して長さ正規化対数尤度を修正するステップをさらに備える。
【００２０】
いくつかの態様では、ビーム内のすべての候補出力シーケンスが、ニューラル機械翻訳システムによって最終決定候補出力シーケンスとして識別されたとき、アクションは、最高スコアの候補出力シーケンスを出力シーケンスとして選択するステップをさらに含む。
【００２１】
他の態様は、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに、上記方法のいずれかの動作を実行させる命令で符号化された1つまたは複数のコンピュータ記憶媒体を含む。
【００２２】
他の態様は、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに、上記方法のいずれかの動作を実行させる命令を記憶する1つまたは複数のコンピュータおよび1つまたは複数の記憶デバイスを備えるシステムを含む。
【００２３】
本明細書に記載される主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実装することができる。
【００２４】
双方向LSTM層をエンコーダの最下層として使用することによって、入力シーケンス内の単語の文脈を効果的に捉えることができ、翻訳品質が向上する。他のエンコーダ層は一方向であるため、計算中の並列化は依然として達成でき、トレーニングを削減し、場合によっては推論時間を短縮することができる。
【００２５】
エンコーダとデコーダの両方におけるLSTM層の深いスタック、たとえばデコーダとエンコーダの各々における合計8つ以上のLSTM層を使用することによって、エンコーダとデコーダの両方は、ソース言語とターゲット言語における微妙な不規則性を捉えるのに十分深くなり、システムによって生成された翻訳の精度が向上する。
【００２６】
アテンションサブシステムを通じてデコーダの最下層をエンコーダの最上層に接続することによって、デコーダニューラルネットワークがソースシーケンスを正確に翻訳することを可能にする効果的なアテンション方式を依然として採用しながら、並列性を高め、それによってトレーニング時間を短縮することができる。すなわち、アテンションサブシステムは、従来のアテンション方式とは異なり、デコーダ内の他のLSTM層のうちのいずれかからではなく、デコーダ内のLSTM最下層から入力を受信するので、アテンションサブシステムによって実行される計算は、翻訳の品質に悪影響を与えることなしに、他のLSTM層によって実行される計算と並行して効果的に実行できる。
【００２７】
本明細書に記載されるように、推論計算中に低精度算術、すなわち量子化計算を採用することによって高い翻訳品質を維持しながら最終翻訳時間を加速することができる。
【００２８】
記載されたビームサーチ技法を使用して復号することによって、従来のビームサーチ技法と比較して高い翻訳品質を維持しながら推論時の翻訳時間を短縮することができる。
【００２９】
本明細書に記載される主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に説明されている。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００３０】
【図１】例示的なニューラル機械翻訳システムを示す図である。
【図２】入力シーケンスの翻訳を生成するための例示的なプロセスの流れ図である。
【図３】入力シーケンスにおいてトークンの符号化表現を生成するための例示的なプロセスの流れ図である。
【図４】出力シーケンス内の位置に対する出力を生成するための例示的なプロセスの流れ図である。
【図５】アテンションベクトルを生成するための例示的なプロセスの流れ図である。
【図６】候補出力シーケンスのビームを維持するための例示的なプロセスの流れ図である。
【発明を実施するための形態】
【００３１】
様々な図面における同様の参照番号および名称は同様の要素を示す。
【００３２】
図1は、例示的なニューラル機械翻訳システム100を示す。ニューラル機械翻訳システム100は、1つまたは複数の場所にある1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されるシステムの一例であり、以下に記載のシステム、構成要素、および技法を実装することができる。
【００３３】
ニューラル機械翻訳システム100は、ソース自然言語における単語のソースシーケンスをターゲット自然言語における単語のターゲットシーケンス、たとえば英語の文または語句からフランス語の文または語句へ、英語の文または語句からドイツ語の文または語句へ、あるいは韓国語の文または語句からスペイン語のまたは語句へ翻訳する。たとえば、ニューラル機械翻訳システム100は、ソース自然言語でソースシーケンス102を受信し、ソースシーケンス102のターゲット自然言語への翻訳であるターゲットシーケンス152を生成することができる。
【００３４】
ニューラル機械翻訳システムは、エンコーダニューラルネットワーク110、デコーダニューラルネットワーク120、およびアテンションサブシステム130を含む。
【００３５】
エンコーダニューラルネットワーク110への入力を生成するために、ニューラル機械翻訳システム100は、ソースシーケンス102を入力トークンの入力シーケンス104にトークン化する。一般に、入力シーケンス104内の各入力トークンは、単語単位のセットの各々に対するそれぞれのトークンを含む入力トークンの語彙から選択される。単語単位に加えて、入力トークンの語彙はまた、1つまたは複数の特別に指定されたトークン、たとえば文頭のトークンおよび文末のトークンを含む。いくつかの実装形態では、単語単位はソース自然言語における単語である。いくつかの他の実装形態では、単語単位のうちのいくつかまたはすべては、サブ単語単位、たとえば文字、単語/文字の混合などである。
【００３６】
具体的には、これらの実装形態のいくつかにおいて、単語単位は単語ピースであり、システム100は、単語を単語ピースに分割するようにトレーニングされた、また元の単語シーケンスを曖昧さなしに単語ピースシーケンスから回復することができるように、特別な単語境界記号を含む、トレーニング済み単語ピース機械学習モデルを使用して最初にシーケンス内の単語を単語ピースに分割することによって、ソースシーケンス102をトークン化する。シーケンスを単語ピースにトークン化するための例示的な手法は、Schuster, M.およびNakajima, K.のJapanese and Korean voice search. 2012 IEEE International Conference on Acoustics, Speech and Signal Processing (2012)、ならびにSennrich, R.、Haddow, B.、およびBirch, A.のNeural machine translation of rare words with subword unitsに記載される。第54回計算言語学会年会(2016)の議事録における。
【００３７】
エンコーダニューラルネットワーク110は、入力シーケンス104を受信し、入力シーケンス104内の各トークンのそれぞれの符号化表現112を生成するために入力シーケンス104を処理するように構成される。
【００３８】
一般にエンコーダニューラルネットワーク110は、複数の長短期記憶(LSTM)ニューラルネットワーク層を含む。より具体的には、エンコーダニューラルネットワーク110は、双方向LSTM層114と、それに続く一方向LSTM層のスタック116とを含む。場合によっては、スタック116内のLSTM層のうちの2つ以上が残差接続118と接続される。エンコーダニューラルネットワークの動作については、図2および図3を参照して以下でより詳細に説明する。
【００３９】
デコーダニューラルネットワーク120およびアテンションサブシステム130は、出力語彙からの出力トークンを含む出力シーケンス142を生成するために、符号化表現112を処理するように構成される。
【００４０】
一般に、出力語彙は、ターゲット自然言語における単語の単語単位のセットの各々に対するそれぞれのトークンを含む。単語単位に加えて、語彙はまた、1つまたは複数の特別に指定されたトークン、たとえば文末トークンを含む。いくつかの実装形態では、単語単位はターゲット自然言語における単語である。いくつかの他の実装形態では、単語単位は、ターゲット自然言語内の単語についての、たとえば文字、単語/文字混合、単語ピースなどのサブ単語単位である。場合によっては、単語単位が単語ピースであるとき、ストリングがソースシーケンスからターゲットシーケンスにコピーされることを可能にするために、単語ピースモデルはソース言語とターゲット言語との間で共有される。
【００４１】
一般に、出力シーケンス142における位置ごとに、デコーダニューラルネットワーク120は、出力シーケンス142内の前の位置にあるトークン、たとえば出力シーケンス142の第2の位置にあるトークン128を受信するように構成される。デコーダニューラルネットワーク120はまた、位置についてアテンションサブシステム130によって生成されたアテンション文脈ベクトル、たとえば出力シーケンス142の第2の位置についてのアテンション文脈ベクトル132を受信することと、出力語彙内の出力トークンごとにそれぞれのスコアを含むスコアのセットを生成するために、先行するトークンおよびアテンション文脈ベクトルを処理することとを行うように構成される。
【００４２】
具体的には、デコーダニューラルネットワーク120は、LSTM層のスタック122と、ソフトマックス出力層124とを含む。各位置において、LSTM層のスタック122は、その位置についてのLSTM出力を生成するために、先行トークンおよびアテンション文脈ベクトルを処理するように構成され、ソフトマックス出力層124は、位置のスコアのセットを生成するためにLSTM出力を処理するように構成される。エンコーダニューラルネットワーク110と同様に、いくつかの実装形態では、スタック122内のLSTM層のうちの2つ以上は、残差接続126と接続される。
【００４３】
デコーダニューラルネットワークの動作については、図4を参照して以下により詳細に説明される。
【００４４】
アテンションサブシステム130は、出力シーケンス内の各位置において、前の位置においてスタック122内のLSTM最下層によって生成されたLSTM出力を受信することと、その位置についてのアテンション文脈ベクトルを生成するために、受信したLSTM出力を使用することとを行うように構成される。一般に、アテンション文脈ベクトルは符号化表現112の加重合計であり、加重合計における重みは受信されたLSTM出力に基づいて決定される。アテンションサブシステムの動作については図5を参照して以下により詳細に説明される。
【００４５】
出力シーケンス142内の所与の位置に出力を生成するために、システム100は、その位置内のスコアのセット内のスコアに基づいて、すなわち最高スコアを有するトークンを選択することによって、または出力トークンの語彙からのスコアに従ってトークンをサンプリングすることによってトークンを選択する。
【００４６】
システム100は、システム100が出力シーケンス142内の現在位置に対して文末出力トークンを選択するまで、トークンを選択し、出力シーケンスにトークンを追加し続ける。文末出力トークンが選択されると、システム100は、文末出力の前に出力シーケンス142に追加された出力を最終出力シーケンス142として扱う。
【００４７】
いくつかの実装形態では、システム100はビームサーチを使用して出力シーケンス142を生成する。すなわち、システム100は、並行して処理および拡張される複数の候補出力シーケンスのビームを維持し、ビーム内のすべての候補出力シーケンスが最終決定されるか、またはビームから取り除かれるまで処理を続ける。ビームを維持および更新するための例示的な技法は、図6を参照して以下に説明される。
【００４８】
出力シーケンス142が生成されると、システム100は、出力シーケンス142内のトークンによって表される単語単位をターゲット言語における単語に変換することによってターゲットシーケンス152を生成する。
【００４９】
いくつかの実装形態では、エンコーダニューラルネットワーク100およびデコーダサブシステム、すなわちデコーダニューラルネットワーク120およびアテンションサブシステム130は、出力シーケンス142の生成中に量子化計算を実行するように構成される。具体的には、いくつかの実装形態では、エンコーダニューラルネットワーク100およびデコーダサブシステムは、8ビット整数演算を使用して計算集約的な演算、たとえば行列乗算を実行し、エラーに敏感なアキュムレータ値は16ビット整数値を使用して記憶される。いくつかの実装形態では、エンコーダおよびデコーダニューラルネットワークのLSTMスタック内の計算のみが量子化され、すなわちソフトマックス出力層またはアテンションサブシステムの計算は行われない。
【００５０】
図2は、入力シーケンスの翻訳である出力シーケンスを生成するための例示的なプロセス200の流れ図である。便宜上、プロセス200は、1つまたは複数の場所に配置された1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、適切にプログラムされたニューラル機械翻訳システム、たとえば図1のニューラル機械翻訳システム100は、プロセス200を実行することができる。
【００５１】
システムはトークンの入力シーケンスを受信する(ステップ202)。トークンの入力シーケンスは、自然言語における第1の単語のシーケンスを表すシーケンスである。
【００５２】
システムは、入力シーケンス内のトークンごとにそれぞれの符号化表現を生成するために、エンコーダニューラルネットワークを使用してトークンの入力シーケンスを処理する(ステップ204)。トークンの入力シーケンスを処理することについては、図3を参照して以下に説明される。
【００５３】
システムは、第1の単語のシーケンスの異なる自然言語への翻訳である単語のシーケンスを表す出力トークンの出力シーケンスを生成するために、デコーダサブシステムを使用して符号化表現を処理する(ステップ206)。具体的には、デコーダサブシステムは、デコーダニューラルネットワークおよびアテンションサブシステムを含む。デコーダサブシステムを使用して符号化表現を処理することについては、図4および図5を参照して以下により詳細に説明される。
【００５４】
図3は、入力シーケンスにおいてトークンの符号化表現を生成するための例示的なプロセス300の流れ図である。便宜上、プロセス300は、1つまたは複数の場所に配置された1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、適切にプログラムされたエンコーダニューラルネットワーク、たとえば図1のニューラル機械翻訳システム100のエンコーダニューラルネットワークは、プロセス300を実行することができる。
【００５５】
エンコーダニューラルネットワークは、入力順方向LSTM層を通じて入力シーケンスを処理する(ステップ302)。入力順方向LSTMは、エンコーダニューラルネットワークは、各入力トークンのそれぞれの順方向表現を生成するために、入力シーケンス内の各入力トークンを順方向に処理するように構成される。
【００５６】
エンコーダニューラルネットワークは、入力逆方向LSTM層を通じて入力シーケンスを処理する(ステップ304)。入力逆方向LSTM層は、各入力トークンのそれぞれの逆方向表現を生成するために、入力シーケンス内の各入力トークンを逆方向に処理するように構成される。
【００５７】
エンコーダニューラルネットワークは、組合せ層を通じて入力トークンの順方向表現および逆方向表現を処理する(ステップ306)。組合せ層は、入力トークンの組合せ表現を生成するために、入力トークンごとに入力トークンの順方向表現と入力トークンの逆方向表現とを組み合わせる、たとえば連結するように構成される。
【００５８】
エンコーダニューラルネットワークは、複数の隠れLSTM層のスタックを通じて入力トークンの組合せ表現を処理する(ステップ308)。複数の隠れLSTM層は、入力シーケンス内の入力トークンの各々のそれぞれの符号化表現を生成するために、順方向に各組合せ表現を処理するように構成される。具体的には、複数の隠れLSTM層は次々にスタック内に配置され、所与の入力トークンの符号化表現は、所与の入力トークンの組合せ表現がスタックを通じて処理された後のスタック内のLSTM最上位層の出力である。
【００５９】
したがって、エンコーダニューラルネットワークの最下層は、エンコーダの最下層として、順方向および逆方向の両方で入力シーケンスを効果的に処理し、入力シーケンス内の単語の文脈を効果的に捉えることができ、翻訳品質が向上する、双方向LSTM層、すなわち入力順方向、入力逆方向、および組合せ層の組合せである。他のエンコーダ層、すなわちスタック内の隠れLSTM層は一方向性であるため、計算中の並列化は依然として達成でき、トレーニングを削減し、場合によっては推論時間を短縮することができる。
【００６０】
一般に、エンコーダニューラルネットワークがソース言語における微妙な不規則性を効果的に捉えることを可能にするために、スタック内に隠れLSTM層が多数、すなわち7つ以上ある。
【００６１】
トレーニング中に隠れ層間の勾配フローを促進することによってエンコーダニューラルネットワークの性能を改善するために、いくつかの実装形態では、エンコーダニューラルネットワークは、スタック内の隠れ層のいくつかまたはすべての間の残差接続を含む。たとえば、いくつかの実装形態では、残差接続は、エンコーダの底部から3番目の層、すなわち隠れ層のスタックの底部から2番目の層から始まる。
【００６２】
LSTM層のスタックにおいてLSTM層Aと層Aの直上のLSTM層Bとの間に残差接続が含まれる場合、層Bは、層Aの出力と層Aへの入力の両方を入力として受信する。次いで、層Bは、層Aの出力と層Aへの入力を要素ごとに加算し、次いでその合計を層への新しい入力として処理する。
【００６３】
図4は、出力シーケンス内の所与の位置に対する出力を生成するための例示的なプロセス400の流れ図である。便宜上、プロセス400は、1つまたは複数の場所に配置された1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、適切にプログラムされたデコーダニューラルネットワーク、たとえば図1のニューラル機械翻訳システム100のデコーダニューラルネットワークは、プロセス400を実行することができる。
【００６４】
デコーダニューラルネットワークは、所与の位置についてのアテンション文脈ベクトル、および前の位置、すなわち出力シーケンスにおいて所与の位置の直前の位置にある出力トークンを取得する(ステップ402)。一般に、アテンション文脈ベクトルは、アテンションサブシステムによって生成された入力シーケンス内の入力トークンの符号化表現に対する加重合計である。所与の位置に対するアテンション文脈ベクトルを生成することについては、図5を参照して以下により詳細に説明される。所与の位置が出力シーケンス内の第1の位置であるとき、すなわち直前の位置がないとき、受信される出力トークンは指定されたプレースホルダトークン、たとえば所定の文頭トークンとすることができる。
【００６５】
デコーダニューラルネットワークは、その位置に対するLSTM出力を生成するために、LSTM層のスタックを通じてアテンション文脈ベクトルおよび出力トークンを処理する(ステップ404)。一般に、デコーダニューラルネットワークがターゲット言語における微妙な不規則性を捉えることを可能にするために、LSTM層のスタックは、多くのLSTM層、たとえば8つ以上のLSTM層を含む。
【００６６】
スタック内の第1のLSTM層、すなわちLSTM最下層は、アテンション文脈ベクトルおよび出力トークンを受信することと、最下層出力を生成するために出力トークンを処理することとを行うように構成される。スタック内の他の各LSTM層は、スタック内の層の直前でアテンション文脈ベクトルおよびLSTM層によって生成された層出力を含む入力を受信することと、入力に対する層出力を生成するために入力を処理することとを行うように構成される。
【００６７】
エンコーダニューラルネットワークと同様に、いくつかの実装形態では、トレーニング中に層間の勾配フローを促進することによってデコーダニューラルネットワークの性能を改善するために、デコーダニューラルネットワークは、スタック内の層のいくつかまたはすべての間の残差接続を含む。たとえば、いくつかの実装形態では、残差接続は、デコーダの下から3番目の層から始まる。
【００６８】
デコーダニューラルネットワークは、出力トークンの語彙内の出力トークンごとにそれぞれのスコア、たとえばそれぞれの確率を生成するために、ソフトマックス出力層を通じてLSTM出力を処理する(ステップ406)。
【００６９】
次いで、システムは、スコアを使用して位置のための出力トークンを選択することができ、または以下に説明されるように候補出力シーケンスの維持されたビームを更新するためにスコアを使用することができる。
【００７０】
図5は、出力シーケンス内の所与の位置に対するアテンション文脈ベクトルを生成するための例示的なプロセス500の流れ図である。便宜上、プロセス500は、1つまたは複数の場所に配置された1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、適切にプログラムされた、アテンションサブシステム、たとえば図1のニューラル機械翻訳システム100のアテンションサブシステムは、プロセス500を実行することができる。
【００７１】
アテンションサブシステムは、出力シーケンス内の前の位置に対するデコーダニューラルネットワーク内のLSTM層のスタック内の最下層によって生成されたLSTM出力を受信する(ステップ502)。具体的には、アテンションサブシステムは、出力シーケンス内の前の位置(および、入力トークンの符号化表現)の処理中にデコーダスタック内のLSTM最下層によって生成された出力からのみアテンション文脈ベクトルを生成し、すなわちデコーダスタック内の他のLSTM層の出力からではない。このため、前の位置での出力トークンの生成が完了する前にアテンション文脈ベクトルの生成を開始することができ、システムによって実行される動作の並列化を改善し、推論を実行してシステムをトレーニングするために必要な時間を短縮する。
【００７２】
出力シーケンス内の第1の位置について、アテンションサブシステムによって受信されたLSTM出力は、プレースホルダ出力であってもよく、たとえば入力シーケンス内のトークンのうちの1つ、たとえば第1のトークンまたは最後のトークンの符号化表現であってもよい。
【００７３】
アテンションサブシステムは、最下位LSTM出力からの符号化表現、および入力トークンの符号化表現の各々について、それぞれのアテンション重みを生成する(ステップ504)。具体的には、システムは、符号化表現の各々についてそれぞれのスコアを生成し、次いで生成されたスコアを正規化することによって重みを生成するために、最下位LSTM出力および入力トークンの符号化表現にアテンション関数を適用する。いくつかの実装形態では、アテンション関数は、フィードフォワードニューラルネットワーク、たとえば1つの隠れ層を有するフィードフォワードニューラルネットワークである。他の実装形態では、アテンション関数は距離関数、たとえばコサイン類似度関数であることが可能である。
【００７４】
アテンションサブシステムは、対応するアテンション重みに従って符号化表現の加重合計を決定することによって、出力位置に対するアテンション文脈ベクトルを生成する(ステップ506)。
【００７５】
図6は、候補出力シーケンスのビームを維持するための例示的なプロセス600の流れ図である。便宜上、プロセス600は、1つまたは複数の場所に配置された1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、適切にプログラムされたニューラル機械翻訳システム、たとえば図1のニューラル機械翻訳システム100は、プロセス600を実行することができる。
【００７６】
システムは、ビームサーチ復号化手順の一部としてプロセス600を繰り返し実行することができる。具体的には、システムは、ビーム内のすべてのシーケンスが最終決定されるまで、あるいは復号のためのいくつかの他の終了基準が満たされるまで、たとえばある数の候補出力シーケンスのみがビーム内に留まるための基準を満たすか、またはビーム内の最も長い候補出力シーケンスがしきい値数を超えるトークンを有するまで、プロセス600を繰り返し実行することができる。
【００７７】
システムは、ニューラル機械翻訳システム、たとえば図1のニューラル機械翻訳システム100から複数の候補出力シーケンスを取得する(ステップ602)。具体的には、候補出力シーケンスは、プロセス600の前の反復の終わりにビーム内にあった各最終決定候補シーケンスと、プロセス600の前の反復の終わりにビーム内にあったが最終決定されていない各候補シーケンスと、候補シーケンスの1つまたは複数の拡張とを含むことができる。候補シーケンスの拡張は候補シーケンスの終わりに追加された新しいトークンを有し、候補シーケンスの各拡張はシーケンスの終わりに追加された異なるトークンを有する。システムはまた、拡張ごとにニューラル機械翻訳システムによって生成されたシーケンスの終わりに追加されたトークンのローカルスコアも取得する。
【００７８】
いくつかの実装形態では、ビーム内にあったが最終決定されていない候補シーケンスごとに、システムは、最高ローカルスコアを下回るしきい値を超えるローカルスコアを有する候補シーケンスの拡張を破棄する。
【００７９】
次いで、システムは、ニューラル機械翻訳システムによるさらなる検討のために、すなわちニューラル機械翻訳システムによるさらなる処理のために、最大で所定の数の候補出力シーケンスをビーム内に維持する。
【００８０】
具体的には、どの候補出力シーケンスをビーム内に維持するかを決定するために、システムは候補出力シーケンスの各々にそれぞれのスコアを割り当てる(ステップ604)。一般に、システムは、シーケンスの最終スコアを生成するために、初期スコアをシーケンスの各々に割り当て、オプションでカバレッジペナルティ、長さ正規化ペナルティ、またはその両方を初期スコアに適用することによって各シーケンスの初期スコアを修正する。
【００８１】
具体的には、システムは、ニューラル機械翻訳システムによって生成された出力スコアに従って、候補出力シーケンスの対数尤度に基づいて、所与のシーケンスの初期スコアを決定する。すなわち、上述したように出力シーケンス内の各位置において、ニューラル機械翻訳システムは、出力シーケンス内の複数の可能なトークンごとにそれぞれのスコアを生成する。候補出力シーケンスの初期スコアを決定するために、システムは、そのトークンが配置された位置で、シーケンス内のトークンごとに生成されたスコアの対数の合計をニューラル機械翻訳システムによって決定する。翻訳システムによって生成されたスコアは一般に確率であるため、シーケンスの初期スコアは通常は負になり、すなわちゼロと1の間の数の対数は負の数であるためである。
【００８２】
いくつかの実装形態では、初期スコアを計算する前に、およびプロセスの前の反復からの候補シーケンスごとに、システムは、ニューラルマシン変換システムによって新しいトークンに割り当てられたスコアが、候補シーケンスの任意の拡張に割り当てられた最高スコアよりしきい値を超えて低い候補シーケンスの任意の拡張を考慮から除外する。
【００８３】
次いで、システムが長さ正規化ペナルティを適用する実装形態では、システムは、出力シーケンス内にあるいくつかの出力トークンに基づいて候補シーケンスの初期スコアを正規化する。一般に、システムは、初期スコアを、出力シーケンスに存在する出力トークンが多いほど大きいペナルティ項で除算することによってペナルティを適用する。そのようなペナルティを採用することにより、システムは復号化中に、すなわちより長い結果よりも短い結果を過度に優先することなしに、異なる長さの候補シーケンスを効果的に比較することが可能になる。いくつかの実装形態では、ペナルティ項は、シーケンスの長さ、すなわちシーケンス内にあるトークンの数である。いくつかの他の実装形態では、ペナルティ項は長さαであり、αは0と1との間の定数、たとえば0.6と0.7との間の値であり、長さはシーケンスの長さ、すなわちシーケンス内のトークンの数である。他の実装形態では、ペナルティlpは、
【数１】
2019537096.tif 000003
を満たすことができる。ここで、bは正の定数、たとえば5であり、|Y|はシーケンスの長さであり、αは0と1との間の定数、たとえば0.2である。
【００８４】
次いで、システムがカバレッジペナルティを適用する実装形態では、システムは次いでカバレッジペナルティ項を正規化された初期スコア(または、長さの正規化が採用されていない場合、初期スコア)に追加する。一般に、カバレッジペナルティ項は、ニューラル機械翻訳システムで採用されているアテンションメカニズムによって決定される第1のシーケンス内の単語を完全に網羅する候補出力シーケンスを優先する。たとえば、カバレッジペナルティ項cpは、
【数２】
2019537096.tif 000004
を満たすことができる。ここで、βは、0と1の間の正の定数値、たとえば0.2であり、iは入力シーケンス内のトークンにわたり、jは候補出力シーケンス内のトークンにわたり、pi,jは、j番目の出力トークンを処理するときのi番目の入力トークンのアテンションメカニズムによって生成される重みである。
【００８５】
システムは、最終スコアに基づいて、すなわち最高の最終スコアを有する候補出力シーケンスから最低のスコアを有するシーケンスまでに候補出力シーケンスをランク付けする(ステップ606)。
【００８６】
システムは、ランク付けに従って、所定の数の最高ランクの候補出力シーケンス以外のすべての候補出力シーケンスをビームから除去する(ステップ608)。
【００８７】
次いで、システムは、ビーム内の残りの候補出力シーケンスのうちのいずれかがニューラル機械翻訳システムによって最終決定されたものとして識別されたかどうかを判定する(ステップ610)。一般に、出力シーケンスは、出力シーケンスが指定されたトークン、たとえば所定の文末出力トークンで終了したときに最終決定したと識別されている。
【００８８】
少なくとも1つの候補出力シーケンスが最終決定されると、システムは、最高ランクの最終決定候補出力シーケンスのスコアより低いしきい値よりも大きいスコアを有するすべての候補出力シーケンスをビームから除去する(ステップ612)。このようにビームを取り除くことによって、システムは、十分に高品質の仮説が識別された後に実行される必要がある追加の反復の数を減らし、翻訳品質に大きな影響を与えずに推論時間を短縮することができる。この追加の除去後、ビームが最終決定されたシーケンスのみを含む場合、システムは入力シーケンスの翻訳として最高ランクの候補シーケンスを選択することができる。ビームが最終決定されていない候補シーケンスを依然として含み、任意の他の終了基準が満たされていない場合、システムは、さらなる処理のためにビーム内の最終決定されていない候補シーケンスをニューラル機械翻訳システムに提供する。すなわち、システムは、ニューラル機械翻訳システムが各最終決定されていないシーケンスへの可能な拡張をスコア付けすることができるように、ビーム内の各最終決定されていないシーケンスをニューラル機械翻訳システムに提供する。
【００８９】
候補出力シーケンスのいずれも最終決定されていない場合、システムはビームをそれ以上取り除かず、さらなる処理のためにビーム内の候補出力シーケンスをニューラル機械翻訳システムに提供する(ステップ614)。
【００９０】
本明細書は、システムおよびコンピュータプログラム構成要素に関して「構成される」という用語を使用する。1つまたは複数のコンピュータのシステムが特定の動作またはアクションを実行するように構成されるとは、動作中にシステムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをシステムがインストールしたことを意味する。1つまたは複数のコンピュータプログラムが特定の動作またはアクションを実行するように構成されるとは、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置に動作またはアクションを実行させる命令を含むことを意味する。
【００９１】
本明細書に記載される主題および機能動作の実施形態は、本明細書に開示された構造およびそれらの構造上の均等物を含む、デジタル電子回路、有形のコンピュータソフトウェアまたはファームウェア、コンピュータハードウェア、あるいはそれらの1つまたは複数の組合せにおいて実装されることが可能である。
【００９２】
本明細書に記載される主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわちデータ処理装置による実行のため、またはデータ処理装置の動作を制御するために、有形の非一時的プログラムキャリア上で符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装されることが可能である。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために適切なレシーバ装置への送信のために情報を符号化するために生成された、人工的に生成された伝搬信号、たとえば機械的に生成された電気信号、光信号、または電磁信号上で符号化されることが可能である。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムまたはシリアルアクセスメモリデバイス、あるいはそれらの1つまたは複数の組合せとすることができる。
【００９３】
「データ処理装置」という用語は、例としてプログラマブルプロセッサ、コンピュータ、あるいは複数のプロセッサまたは複数のコンピュータを含むデータを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路を含むことができる。装置はまた、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を作成するコード、たとえばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、あるいはそれらの1つまたは複数の組合せを構成するコードも含むことができる。
【００９４】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれる、あるいは記述されることがある)は、コンパイラ型言語またはインタープリタ型言語、あるいは宣言型言語または手続き型言語を含む任意の形態のプログラミング言語で記述することができ、またスタンドアロンプログラムとして、あるいはモジュール、構成要素、サブルーチン、またはコンピューティング環境での使用に適した他のユニットとして、を含む、任意の形態で展開することができる。コンピュータプログラムは、必ずしもそうである必要はないが、ファイルシステム内のファイルに対応してもよい。プログラムは、他のプログラムまたはデータを保持するファイルの一部、たとえばマークアップ言語文書に記憶されている1つまたは複数のスクリプト、問題のプログラム専用の単一のファイル、または複数の協調ファイル、たとえば1つまたは複数のモジュール、サブプログラム、あるいはコードの一部を記憶するファイルに記憶することができる。コンピュータプログラムは、1つのサイトに配置されているか、複数のサイトにわたって分散されて通信ネットワークによって相互接続される1つのコンピュータまたは複数のコンピュータ上で実行されるように展開することができる。
【００９５】
本明細書に記載されるプロセスおよび論理フローは、入力データを操作して出力を生成することによって機能を実行するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルコンピュータによって実行することができる。プロセスおよび論理フローはまた、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路によって実行することもでき、装置はそれらとして実装することもできる。
【００９６】
コンピュータプログラムの実行に適したコンピュータは、例として汎用マイクロプロセッサもしくは専用マイクロプロセッサ、またはその両方、あるいは他の種類の中央処理装置を含む。一般に、中央処理装置は、読出し専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令およびデータを受け取る。コンピュータの必須要素は、命令を実行または実施するための中央処理装置と、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば磁気、光磁気ディスク、または光ディスクを含むか、そこからデータを受信するために、またはそれらにデータを転送するために、あるいはその両方のために、動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、ほんの数例を挙げると、たとえばモバイル電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲーム機、全地球測位システム(GPS)レシーバ、またはポータブル記憶デバイス、たとえばユニバーサルシリアルバス(USB)フラッシュドライブに組み込むことができる。
【００９７】
コンピュータプログラムの命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびCD-ROMとDVD-ROMディスクを含むあらゆる形態の不揮発性メモリ、媒体、ならびにメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完されるか、その中に組み込まれることが可能である。
【００９８】
ユーザとの対話を提供するために、本明細書に記載される主題の実施形態は、情報をユーザに表示するためのCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタなどのディスプレイデバイス、ならびにユーザがコンピュータに入力を提供することができるキーボード、およびたとえばマウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上に実装されることが可能である。ユーザとの対話を提供するために、他の種類のデバイスも使用することができる。たとえば、ユーザに提供されるフィードバックは、たとえば視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなどの任意の形態の感覚的フィードバックであってよく、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受信されることが可能である。さらに、コンピュータは、ユーザによって使用されるデバイスに文書を送受信することによって、たとえばウェブブラウザから受信した要求に応じて、ウェブページをユーザのクライアントデバイス上のウェブブラウザに送信することによって、ユーザと対話することができる。
【００９９】
本明細書に記載される主題の実施形態は、たとえばデータサーバとしてのバックエンド構成要素を含むか、またはたとえばアプリケーションサーバなどのミドルウェア構成要素を含むか、またはたとえば、ユーザが本明細書に記載される主題の実装形態と対話することができるグラフィカルユーザインタフェースまたはウェブブラウザを有するクライアントコンピュータなどのフロントエンド構成要素を含むコンピューティングシステムにおいて、あるいはそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の1つまたは複数の組合せにおいて実装することができる。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば通信ネットワークによって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク("LAN")およびワイドエリアネットワーク("WAN")、たとえばインターネットを含む。
【０１００】
コンピューティングシステムはクライアントおよびサーバを含むことができる。クライアントとサーバは一般に互いに離れており、通常は通信ネットワークを通じて対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
【０１０１】
本明細書は多くの具体的な実装形態の詳細を含むが、これらはいかなる発明の範囲または主張される場合があるものに対する限定としてではなく、むしろ特定の発明の特定の実施形態に特有である場合がある特徴の説明として解釈されるべきである。本明細書において別々の実施形態の文脈において記載される特定の特徴は、単一の実施形態において組み合わせて実装することもできる。逆に、単一の実施形態の文脈において説明されている様々な特徴はまた、別々にまたは任意の適切なサブコンビネーションで複数の実施形態において実装することができる。さらに、特徴は特定の組合せにおいて作用するものとして上述され、最初はそのように主張される場合があるが、主張された組合せからの1つまたは複数の特徴は、場合によっては組合せから切り取られてよく、主張された組合せはサブコンビネーションまたはサブコンビネーションのバリエーションに向けられてもよい。
【０１０２】
同様に、動作は特定の順序で図面に描かれているが、望ましい結果を達成するために、そのような動作が示された特定の順序または順番に実行されること、または示されたすべての動作が実行されることを必要とするものと理解されるべきではない。特定の状況では、マルチタスキングおよび並列処理が有利な場合がある。さらに、上述の実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とするものと理解されるべきではなく、説明されるプログラム構成要素およびシステムは、一般に単一のソフトウェア製品に統合されるか、複数のソフトウェア製品にパッケージ化されることが可能であることを理解されたい。
【０１０３】
主題の特定の実施形態が説明された。他の実施形態は添付の特許請求の範囲内にある。たとえば、特許請求の範囲に記載されるアクションは異なる順序で実行されてよく、依然として望ましい結果を達成することができる。一例として、添付の図面に描かれたプロセスは、望ましい結果を達成するために、示された特定の順序、または順番を必ずしも必要としない。特定の実装形態では、マルチタスキングおよび並列処理が有利な場合がある。
【符号の説明】
【０１０４】
100  ニューラル機械翻訳システム
100  エンコーダニューラルネットワーク
102  ソースシーケンス
104  入力シーケンス
110  エンコーダニューラルネットワーク
112  符号化表現
114  双方向LSTM層
116  一方向LSTM層のスタック
118  残余接続
120  デコーダニューラルネットワーク
122  LSTM層のスタック
124  ソフトマックス出力層
126  残留接続
128  トークン
130  アテンションサブシステム
132  アテンション文脈ベクトル
142  出力シーケンス
152  ターゲットシーケンス
200  プロセス
300  プロセス
400  プロセス
500  プロセス
600  プロセス
【図１】
2019537096.tif 000005
【図２】
2019537096.tif 000006
【図３】
2019537096.tif 000007
【図４】
2019537096.tif 000008
【図５】
2019537096.tif 000009
【図６】
2019537096.tif 000010
【国際調査報告】
2019537096.tif 000011
2019537096.tif 000012
2019537096.tif 000013