(57)【特許請求の範囲】
【請求項１】
1つまたは複数のコンピュータと、命令を格納する1つまたは複数のストレージデバイスとを備えるシステムであって、前記命令は、前記1つまたは複数のコンピュータによって実行されるとき、前記1つまたは複数のコンピュータに、入力順に複数の入力位置の各々においてそれぞれのネットワーク入力を有する入力シーケンスを、出力順に複数の出力位置の各々においてそれぞれのネットワーク出力を有する出力シーケンスに変換するためのシーケンス変換ニューラルネットワークを実施させ、前記シーケンス変換ニューラルネットワークは、
前記入力シーケンスを受信し、前記入力シーケンス内の前記ネットワーク入力の各々のそれぞれエンコードされた表現を生成するように構成され、1つまたは複数のエンコーダサブネットワークのシーケンスを備えるエンコーダニューラルネットワークであって、各エンコーダサブネットワークは、前記複数の入力位置の各々についてそれぞれのエンコーダサブネットワーク入力を受信し、前記複数の入力位置の各々についてそれぞれのサブネットワーク出力を生成するように構成され、各エンコーダサブネットワークは、
前記複数の入力位置の各々についてサブネットワーク入力を受信するように構成されるエンコーダセルフアテンションサブレイヤであって、入力順に各特定の入力位置について、
前記複数の入力位置において前記エンコーダサブネットワーク入力にわたりセルフアテンションメカニズムを適用して、前記特定の入力位置についてそれぞれの出力を生成するように構成されるエンコーダセルフアテンションサブレイヤを備え、セルフアテンションメカニズムを適用することは、前記特定の入力位置において前記サブネットワーク入力からクエリを決定することと、前記複数の入力位置において前記サブネットワーク入力から導出されたキーを決定することと、前記複数の入力位置において前記サブネットワーク入力から導出された値を決定することと、前記決定されたクエリ、キー、および値を使用して、前記特定の入力位置について前記それぞれの出力を生成することとを含む、エンコーダニューラルネットワークと、
前記エンコードされた表現を受信し、前記出力シーケンスを生成するように構成されたデコーダニューラルネットワークとを備えるシステム。
【請求項２】
前記エンコーダニューラルネットワークは、
前記入力シーケンス内の各ネットワーク入力について、
前記ネットワーク入力を前記ネットワーク入力の埋め込み表現にマップし、
前記ネットワーク入力の前記埋め込み表現を、入力順に前記ネットワーク入力の前記入力位置の位置埋め込みと結合して前記ネットワーク入力の結合された埋め込み表現を生成して、
前記ネットワーク入力の前記結合された埋め込み表現を、エンコーダサブネットワークの前記シーケンス内の第1のエンコーダサブネットワークに対する前記エンコーダサブネットワーク入力として提供するように構成された埋め込みレイヤをさらに備える請求項1に記載のシステム。
【請求項３】
前記ネットワーク入力の前記それぞれエンコードされた表現は、前記シーケンス内の最後のエンコーダサブネットワークにより生成されたエンコーダサブネットワーク出力である請求項1に記載のシステム。
【請求項４】
1つまたは複数のエンコーダサブネットワークの前記シーケンスが少なくとも2つのエンコーダサブネットワークを含み、前記シーケンス内の第1のエンコーダサブネットワーク以外の各エンコーダサブネットワークについて、前記エンコーダサブネットワーク入力は、前記シーケンス内の先行するエンコーダサブネットワークのエンコーダサブネットワーク出力である請求項1に記載のシステム。
【請求項５】
前記エンコーダサブネットワークの少なくとも1つは、
各入力位置について、
前記入力位置において入力を受信し、
前記入力位置において変換のシーケンスを前記入力に適用して、前記入力位置に対する出力を生成するように構成される位置ごとのフィードフォワードレイヤをさらに備える請求項1に記載のシステム。
【請求項６】
前記シーケンスは、活性化関数によって分離される2つの学習された線形変換を備える請求項5に記載のシステム。
【請求項７】
前記少なくとも1つのエンコーダサブネットワークは、
前記位置ごとのフィードフォワードレイヤの前記出力を前記位置ごとのフィードフォワードレイヤへの前記入力と結合してエンコーダ位置ごとの残余出力を生成する残余接続レイヤと、
レイヤ正規化を前記エンコーダ位置ごとの残余出力に適用するレイヤ正規化レイヤとをさらに備える請求項5に記載のシステム。
【請求項８】
各エンコーダサブネットワークは、
前記エンコーダセルフアテンションサブレイヤの出力を前記エンコーダセルフアテンションサブレイヤへの入力と結合してエンコーダセルフアテンション残余出力を生成する残余接続レイヤと、
レイヤ正規化を前記エンコーダセルフアテンション残余出力に適用するレイヤ正規化レイヤとをさらに備える請求項1に記載のシステム。
【請求項９】
各エンコーダセルフアテンションサブレイヤは、複数のエンコーダセルフアテンションレイヤを備える請求項1に記載のシステム。
【請求項１０】
各エンコーダセルフアテンションレイヤは、
学習されたクエリ線形変換を各入力位置において各エンコーダサブネットワーク入力に適用して、各入力位置に対してそれぞれのクエリを生成し、
学習されたキー線形変換を各入力位置において各エンコーダサブネットワーク入力に適用して、各入力位置に対してそれぞれのキーを生成し、
学習された値線形変換を各入力位置において各エンコーダサブネットワーク入力に適用して、各入力位置に対してそれぞれの値を生成するように構成され、
各入力位置について、
前記入力位置の前記クエリと前記複数の入力位置について生成された前記キーとの間に適合関数を適用することにより、前記入力位置についてそれぞれ入力位置固有の重みを決定し、
前記入力位置の初期エンコーダセルフアテンション出力を、前記複数の入力位置の対応する入力位置固有の重みにより加重された値の加重合計を決定することにより、決定するように構成され、前記値が前記複数の入力位置について生成される、請求項9に記載のシステム。
【請求項１１】
前記エンコーダセルフアテンションサブレイヤは、各入力位置について、前記エンコーダセルフアテンションサブレイヤにより生成された前記入力位置の前記初期エンコーダセルフアテンション出力を結合して、前記エンコーダセルフアテンションサブレイヤの出力を生成するように構成される請求項10に記載のシステム。
【請求項１２】
前記エンコーダセルフアテンションレイヤは、並行して動作する請求項9に記載のシステム。
【請求項１３】
前記デコーダニューラルネットワークは、複数の生成時間ステップの各々において、前記エンコードされた表現、および前記出力順に前記出力位置に先行する出力位置におけるネットワーク出力に条件付けられた前記生成時間ステップに対応する出力位置においてネットワーク出力を生成することにより、前記出力シーケンスを自己回帰の方法で生成する請求項1に記載のシステム。
【請求項１４】
前記デコーダニューラルネットワークは、デコーダサブネットワークのシーケンスを備え、各デコーダサブネットワークは、各生成時間ステップにおいて、前記対応する出力位置に先行する前記複数の出力位置の各々についてそれぞれのデコーダサブネットワーク入力を受信し、前記対応する出力位置に先行する前記複数の出力位置の各々についてそれぞれのデコーダサブネットワーク出力を生成するように構成される請求項13に記載のシステム。
【請求項１５】
前記デコーダニューラルネットワークは、
各生成時間ステップにおいて
前記出力順に前記対応する出力位置に先行する出力位置において各ネットワーク出力について、
前記ネットワーク出力を前記ネットワーク出力の埋め込み表現にマップし、
前記ネットワーク出力の前記埋め込み表現を、出力順に前記ネットワーク出力の前記対応する出力位置の位置埋め込みと結合して前記ネットワーク出力の結合された埋め込み表現を生成し、
前記ネットワーク出力の前記結合された埋め込み表現を、デコーダサブネットワークの前記シーケンス内の第1のデコーダサブネットワークへの入力として提供するように構成された埋め込みレイヤをさらに備える請求項14に記載のシステム。
【請求項１６】
前記デコーダサブネットワークの少なくとも1つは、
各生成時間ステップにおいて
前記対応する出力位置に先行する各特定の出力位置について
前記特定の出力位置において入力を受信し、
前記特定の出力位置において変換のシーケンスを前記入力に適用して、前記特定の出力位置について出力を生成するように構成される位置ごとのフィードフォワードレイヤを備える請求項14に記載のシステム。
【請求項１７】
前記シーケンスは、活性化関数によって分離される2つの学習された線形変換を備える請求項16に記載のシステム。
【請求項１８】
前記少なくとも1つのデコーダサブネットワークは、
前記位置ごとのフィードフォワードレイヤの前記出力を前記位置ごとのフィードフォワードレイヤへの前記入力と結合して残余出力を生成する残余接続レイヤと、
レイヤ正規化を前記残余出力に適用するレイヤ正規化レイヤとをさらに備える請求項16に記載のシステム。
【請求項１９】
各デコーダサブネットワークは、
各生成時間ステップにおいて、
前記対応する出力位置に先行する各特定の出力位置について入力を受信し、前記特定の出力位置の各々について、
前記特定の出力位置の前記入力から導き出された1つまたは複数のクエリを使用して前記入力位置において前記エンコードされた表現にわたりアテンションメカニズムを適用して、前記特定の出力位置に対する更新された表現を生成するように構成されるエンコーダ-デコーダアテンションサブレイヤを備える請求項14に記載のシステム。
【請求項２０】
各エンコーダ-デコーダアテンションサブレイヤは、複数のエンコーダ-デコーダアテンションレイヤを備え、各エンコーダ-デコーダアテンションレイヤは、各生成時間ステップにおいて、
学習されたクエリ線形変換を前記対応する出力位置に先行する各特定の出力位置において入力に適用して、各特定の出力位置に対してそれぞれのクエリを生成し、
学習されたキー線形変換を各入力位置において各エンコードされた表現に適用して、各入力位置に対してそれぞれのキーを生成し、
学習された値線形変換を各入力位置において各エンコードされた表現に適用して、各入力位置に対してそれぞれの値を生成し、
前記対応する出力位置に先行する各特定の出力位置について
前記特定の出力位置の前記クエリと前記キーの間に適合関数を適用することにより、前記入力位置の各々についてそれぞれ入力位置固有の重みを決定し、
前記特定の出力位置の初期エンコーダ-デコーダアテンション出力を、前記入力位置の前記対応する出力位置固有の重みにより加重された値の加重合計を決定することにより、決定するように構成される請求項19に記載のシステム。
【請求項２１】
前記エンコーダ-デコーダアテンションサブレイヤは、各生成時間ステップにおいて、前記エンコーダ-デコーダアテンションレイヤにより生成されたエンコーダ-デコーダアテンション出力を結合して、前記エンコーダ-デコーダアテンションサブレイヤの出力を生成するように構成される請求項20に記載のシステム。
【請求項２２】
前記エンコーダ-デコーダアテンションレイヤは、並行して動作する請求項20に記載のシステム。
【請求項２３】
各デコーダサブネットワークは、
前記エンコーダ-デコーダアテンションサブレイヤの出力を前記エンコーダ-デコーダアテンションサブレイヤへの前記入力と結合して残余出力を生成する残余接続レイヤと、
レイヤ正規化を前記残余出力に適用するレイヤ正規化レイヤとをさらに備える請求項19に記載のシステム。
【請求項２４】
各デコーダサブネットワークは、
各生成時間ステップにおいて、
前記対応する出力位置に先行する各特定の出力位置について入力を受信し、前記特定の出力位置の各々について、
前記特定の出力位置において前記入力から導き出された1つまたは複数のクエリを使用して前記対応する出力位置に先行する前記特定の出力位置において前記入力にわたりアテンションメカニズムを適用して、前記特定の出力位置に対する更新された表現を生成するように構成されるデコーダセルフアテンションサブレイヤを備える請求項14に記載のシステム。
【請求項２５】
各デコーダセルフアテンションサブレイヤは、複数のデコーダセルフアテンションレイヤを備え、各デコーダセルフアテンションレイヤは、各生成時間ステップにおいて、
学習されたクエリ線形変換を前記対応する出力位置に先行する各特定の出力位置において前記入力に適用して、各特定の出力位置に対してそれぞれのクエリを生成し、
学習されたキー線形変換を前記対応する出力位置に先行する各特定の出力位置において各入力に適用して、各特定の出力位置に対してそれぞれのキーを生成し、
学習された値線形変換を前記対応する出力位置に先行する各特定の出力位置において各入力に適用して、各特定の出力位置に対してそれぞれのキーを生成し、
前記対応する出力位置に先行する前記各特定の出力位置について
前記特定の出力位置の前記クエリと前記キーの間に適合関数を適用することにより、各特定の出力位置についてそれぞれ入力位置固有の重みを決定し、
前記特定の出力位置の初期デコーダアテンション出力を、前記特定の出力位置の前記対応する出力位置固有の重みにより加重された前記値の加重合計を決定することにより、決定するように構成される請求項24に記載のシステム。
【請求項２６】
前記デコーダセルフアテンションサブレイヤは、各生成時間ステップにおいて、前記デコーダセルフアテンションレイヤにより生成されたデコーダアテンション出力を結合して、前記デコーダセルフアテンションサブレイヤの出力を生成するように構成される請求項25に記載のシステム。
【請求項２７】
デコーダアテンションレイヤは、並行して動作する請求項25に記載のシステム。
【請求項２８】
各デコーダサブネットワークは、
前記デコーダセルフアテンションサブレイヤの出力を前記デコーダセルフアテンションサブレイヤへの前記入力と結合して残余出力を生成する残余接続レイヤと、
レイヤ正規化を前記残余出力に適用するレイヤ正規化レイヤとをさらに備える請求項24に記載のシステム。
【請求項２９】
命令を格納する1つまたは複数の非一時的コンピュータストレージ媒体であって、前記命令は、前記1つまたは複数のコンピュータによって実行されるとき、前記1つまたは複数のコンピュータに、入力順に複数の入力位置の各々においてそれぞれのネットワーク入力を有する入力シーケンスを、出力順に複数の出力位置の各々においてそれぞれのネットワーク出力を有する出力シーケンスに変換するためのシーケンス変換ニューラルネットワークを実施させ、前記シーケンス変換ニューラルネットワークは、
前記入力シーケンスを受信し、前記入力シーケンス内の前記ネットワーク入力の各々のそれぞれエンコードされた表現を生成するように構成され、1つまたは複数のエンコーダサブネットワークのシーケンスを備えるエンコーダニューラルネットワークであって、各エンコーダサブネットワークは、前記複数の入力位置の各々についてそれぞれのエンコーダサブネットワーク入力を受信し、前記複数の入力位置の各々についてそれぞれのサブネットワーク出力を生成するように構成され、各エンコーダサブネットワークは、
前記複数の入力位置の各々についてサブネットワーク入力を受信するように構成されるエンコーダセルフアテンションサブレイヤであって、入力順に各特定の入力位置について、
前記複数の入力位置において前記エンコーダサブネットワーク入力にわたりセルフアテンションメカニズムを適用して、前記特定の入力位置についてそれぞれの出力を生成するように構成されるエンコーダセルフアテンションサブレイヤを備え、セルフアテンションメカニズムを適用することは、前記特定の入力位置において前記サブネットワーク入力からクエリを決定することと、前記複数の入力位置において前記サブネットワーク入力から導出されたキーを決定することと、前記複数の入力位置において前記サブネットワーク入力から導出された値を決定することと、前記決定されたクエリ、キー、および値を使用して、前記特定の入力位置について前記それぞれの出力を生成することとを含む、エンコーダニューラルネットワークと、
前記エンコードされた表現を受信し、前記出力シーケンスを生成するように構成されたデコーダニューラルネットワークとを備える、1つまたは複数の非一時的コンピュータストレージ媒体。
【請求項３０】
入力順に複数の入力位置の各々においてそれぞれの入力を有する入力シーケンスを受信するステップと、
エンコーダニューラルネットワークを介して前記入力シーケンスを処理して、前記入力シーケンス内の前記入力の各々のそれぞれエンコードされた表現を生成するステップであって、前記エンコーダニューラルネットワークが、1つまたは複数のエンコーダサブネットワークのシーケンスを備え、各エンコーダサブネットワークが、前記複数の入力位置の各々についてそれぞれのエンコーダサブネットワーク入力を受信し、前記複数の入力位置の各々についてそれぞれのサブネットワーク出力を生成するように構成され、各エンコーダサブネットワークは、
前記複数の入力位置の各々についてサブネットワーク入力を受信するように構成されるエンコーダセルフアテンションサブレイヤであって、入力順に各特定の入力位置について、
前記複数の入力位置において前記エンコーダサブネットワーク入力にわたりセルフアテンションメカニズムを適用して、前記特定の入力位置についてそれぞれの出力を生成するように構成されるエンコーダセルフアテンションサブレイヤを備え、セルフアテンションメカニズムを適用することは、前記特定の入力位置において前記サブネットワーク入力からクエリを決定することと、前記複数の入力位置において前記サブネットワーク入力から導出されたキーを決定することと、前記複数の入力位置において前記サブネットワーク入力から導出された値を決定することと、前記決定されたクエリ、キー、および値を使用して、前記特定の入力位置について前記それぞれの出力を生成することとを含む、ステップと、
デコーダニューラルネットワークを介して前記エンコードされた表現を処理して、出力順に複数の出力位置の各々においてそれぞれの出力を有する出力を生成するステップと
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2017年5月23日に出願した米国仮特許出願第62/510、256号明細書、および2017年8月4日に出願した米国仮特許出願第62/541、594号明細書の通常出願であり、その優先権を主張するものである。前述の出願の内容全体は、参照により本明細書に組み込まれる。
【０００２】
本明細書は、ニューラルネットワークを使用してシーケンスを変換することに関する。
【背景技術】
【０００３】
ニューラルネットワークは、非線形ユニットの1つまたは複数のレイヤを採用して、受信された入力に対する出力を予測する機械学習モデルである。一部のニューラルネットワークは、出力レイヤに加えて、1つまたは複数の隠れレイヤを含む。各隠れレイヤの出力は、ネットワーク内の次のレイヤ、つまり次の隠れレイヤまたは出力レイヤへの入力として使用される。ネットワークの各レイヤは、パラメータのそれぞれのセットの現在値に従って受信された入力から出力を生成する。
【発明の概要】
【課題を解決するための手段】
【０００４】
本明細書は、入力順に複数位置の各々においてそれぞれの入力を含む入力シーケンスから出力順に複数位置の各々においてそれぞれの出力を含む出力シーケンスを生成する、つまり入力シーケンスを出力シーケンスに変換する、1つまたは複数の場所における1つまたは複数のコンピュータ上でコンピュータプログラムとして実施されるシステムについて説明する。特に、システムは、いずれもアテンションベースであるエンコーダニューラルネットワークおよびデコーダニューラルネットワークを使用して出力シーケンスを生成する。
【０００５】
本明細書において説明される主題の特定の実施態様は、以下の利点の1つまたは複数を実現するために実施されてもよい。
【０００６】
ニューラルネットワークを使用するシーケンス変換への多くの既存の手法は、エンコーダおよびデコーダにおいて再帰型ニューラルネットワークを使用する。これらの種類のネットワークは、シーケンス変換タスクで良好なパフォーマンスを達成することができるが、それらの計算は本質的に順次である、つまり再帰型ニューラルネットワークは、先行の時間ステップにおける再帰型ニューラルネットワークの隠れ状態に条件付けられた現在時間ステップにおいて出力を生成する。この順次の特性は、並列化を妨げ、その結果として長いトレーニングおよび推論時間と、それに応じて膨大量の計算リソースを利用するワークロードをもたらすことになる。
【０００７】
一方、説明されるシーケンス変換ニューラルネットワークのエンコーダおよびデコーダはアテンションベースであるため、シーケンス変換ニューラルネットワークは、シーケンスをより迅速に変換することが可能であり、より高速にトレーニングされることが可能であるか、またはネットワークの動作がさらに容易に並列化され得るのでその両方が可能となる。すなわち、説明されるシーケンス変換ニューラルネットワークが入力と出力の間のグローバル依存関係を引き出すためにアテンションメカニズムに全面的に依存し、いかなる再帰型ニューラルネットワークレイヤも採用しないので、再帰型ニューラルネットワークレイヤの順次の特性により引き起こされる長いトレーニングおよび推論時間ならびに高いリソース使用量に関連する問題が緩和される。
【０００８】
さらに、シーケンス変換ニューラルネットワークは、たとえトレーニングおよび推論時間が短いとしても、畳み込みレイヤまたは再帰型レイヤに基づく既存のネットワークよりもさらに正確に、シーケンスを変換することができる。特に、従来のモデルにおいて、2つの任意の入力または出力位置からの信号を関連付けるために必要とされる動作の数は、たとえばモデルアーキテクチャに線形または対数的に依存する、位置間の距離に伴って増大する。これは、トレーニング中に遠隔位置間の依存関係を学習することをさらに困難にする。現在説明されているシーケンス変換ニューラルネットワークにおいて、この動作の数は、再帰または畳み込みに依存することなく、アテンション(および、特に、セルフアテンション)の使用により、一定数の動作まで低減される。セルフアテンションは、場合によってはイントラアテンションと称されるが、シーケンスの表現を計算するために、単一のシーケンスの異なる位置を関係付けるアテンションメカニズムである。アテンションメカニズムの使用により、シーケンス変換ニューラルネットワークは、トレーニング中に遠隔位置間の依存関係を効果的に学習することができるようになり、たとえば機械翻訳のようなさまざまな変換タスクでのシーケンス変換ニューラルネットワークの精度を高めることができる。実際に、説明されるシーケンス変換ニューラルネットワークは、従来の機械翻訳ニューラルネットワークよりもトレーニングしやすく、迅速に出力を生成するにもかかわらず、機械翻訳タスクに最先端の結果を達成することができる。シーケンス変換ニューラルネットワークはまた、アテンションメカニズムの使用を通じてタスク固有の調整を行うことなく従来の機械翻訳ニューラルネットワークにまさる改善されたパフォーマンスを呈することもできる。
【０００９】
本明細書の主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に示される。主題のその他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかとなろう。
【図面の簡単な説明】
【００１０】
【図１】例示のニューラルネットワークシステムを示す図である。
【図２】エンコーダニューラルネットワークおよびデコーダニューラルネットワークのサブネットワークにおいてアテンションサブレイヤにより適用されるアテンションメカニズムを示す図である。
【図３】入力シーケンスから出力シーケンスを生成するための例示のプロセスを示す流れ図である。
【発明を実施するための形態】
【００１１】
さまざまな図面において類似する番号および記号表示は類似する要素を示す。
【００１２】
本明細書は、入力順に複数位置の各々においてそれぞれの入力を含む入力シーケンスから出力順に複数位置の各々においてそれぞれの出力を含む出力シーケンスを生成する、つまり入力シーケンスを出力シーケンスに変換する、1つまたは複数の場所における1つまたは複数のコンピュータ上にコンピュータプログラムとして実施されるシステムについて説明する。
【００１３】
たとえば、システムは、ニューラル機械翻訳システムであってもよい。すなわち、入力シーケンスがソース言語の単語のシーケンス、たとえば文または句である場合、出力シーケンスは、入力シーケンスのターゲット言語への変換、つまりソース言語の単語のシーケンスを表すターゲット言語の単語のシーケンスであってもよい。
【００１４】
もう1つの例として、システムは、音声認識システムであってもよい。すなわち、入力シーケンスが口頭の発話を表すオーディオデータのシーケンスである場合、出力シーケンスは、発話を表す、つまり入力シーケンスの翻音である、書記素、特徴、または単語のシーケンスであってもよい。
【００１５】
もう1つの例として、システムは、自然言語処理システムであってもよい。たとえば、入力シーケンスがソース言語の単語のシーケンス、たとえば文または句である場合、出力シーケンスは、ソース言語の入力シーケンスの要約、つまり入力シーケンスよりも少ない単語を有するが、入力シーケンスの本質的な意味を保持するシーケンスであってもよい。もう1つの例として、入力シーケンスが、質問を形成する単語のシーケンスである場合、出力シーケンスは、質問への回答を形成する単語のシーケンスであってもよい。
【００１６】
もう1つの例として、システムは、コンピュータ支援医療診断システムの一部であってもよい。たとえば、入力シーケンスは、電子医療記録からのデータのシーケンスであってもよく、出力シーケンスは、予測される治療のシーケンスであってもよい。
【００１７】
もう1つの例として、システムは、画像処理システムの一部であってもよい。たとえば、入力シーケンスは、画像、つまり画像からの明度のシーケンスであってもよく、出力は、画像を説明するテキストのシーケンスであってもよい。もう1つの例として、入力シーケンスは、テキストまたは異なるコンテキストのシーケンスであってもよく、出力シーケンスは、コンテキストを説明する画像であってもよい。
【００１８】
特に、ニューラルネットワークは、エンコーダニューラルネットワークおよびデコーダニューラルネットワークを含む。一般に、エンコーダおよびデコーダはいずれも、アテンションベースである、つまりいずれも、入力シーケンスを変換する間に、それぞれの受信入力にわたりアテンションメカニズムを適用する。場合によっては、エンコーダまたはデコーダのいずれも、畳み込みレイヤまたは再帰型レイヤを含まない。
【００１９】
図1は、例示のニューラルネットワークシステム100を示す。ニューラルネットワークシステム100は、以下に説明されるシステム、コンポーネント、および技法が実施され得る、1つまたは複数の場所において1つまたは複数のコンピュータ上でコンピュータプログラムとして実施されるシステムの例である。
【００２０】
ニューラルネットワークシステム100は、入力シーケンス102を受信し、入力シーケンス102を処理して、入力シーケンス102を出力シーケンス152に変換する。
【００２１】
入力シーケンス102は、入力順に複数の入力位置の各々においてそれぞれのネットワーク入力を有し、出力シーケンス152は、出力順に複数の出力位置の各々においてそれぞれのネットワーク出力を有する。すなわち、入力シーケンス102は、入力順に従って配列された複数の入力を有し、出力シーケンス152は、出力順に従って配置された複数の出力を有する。
【００２２】
上記で説明されているように、ニューラルネットワークシステム100は、順次出力を生成するために順次入力を処理する必要があるさまざまなタスクのいずれかを実行することができる。
【００２３】
ニューラルネットワークシステム100は、アテンションベースのシーケンス変換ニューラルネットワーク108を含み、このニューラルネットワーク108は、エンコーダニューラルネットワーク110およびデコーダニューラルネットワーク150を含む。
【００２４】
エンコーダニューラルネットワーク110は、入力シーケンス102を受信して、入力シーケンス内の各々のネットワーク入力のそれぞれエンコードされた表現を生成するように構成される。一般に、エンコードされた表現は、数値のベクトルまたはその他の順序付きコレクションである。
【００２５】
次いで、デコーダニューラルネットワーク150は、出力シーケンス152を生成するためにネットワーク入力のエンコードされた表現を使用するように構成される。
【００２６】
一般に、および以下でさらに詳細に説明されるように、エンコーダ110およびデコーダ150はいずれも、アテンションベースである。場合によっては、エンコーダまたはデコーダのいずれも、畳み込みレイヤまたは再帰型レイヤを含まない。
【００２７】
エンコーダニューラルネットワーク110は、埋め込みレイヤ120、および1つまたは複数のエンコーダサブネットワーク130のシーケンスを含む。特に、図1に示されるように、エンコーダニューラルネットワークは、N個のエンコーダサブネットワーク130を含む。
【００２８】
埋め込みレイヤ120は、入力シーケンス内の各ネットワーク入力について、ネットワーク入力を、埋め込みスペース内のネットワーク入力の数値表現に、たとえば埋め込みスペース内のベクトルに、マップするように構成される。次いで、埋め込みレイヤ120は、ネットワーク入力の数値表現を、エンコーダサブネットワーク130のシーケンス内の第1のサブネットワークに、つまりN個のエンコーダサブネットワーク130の第1のエンコーダサブネットワーク130に提供する。
【００２９】
特に、一部の実施態様において、埋め込みレイヤ120は、各ネットワーク入力を、ネットワーク入力の埋め込み表現にマップし、次いでネットワーク入力の埋め込み表現を、入力順にネットワーク入力の入力位置の位置埋め込みと結合、たとえば合計または平均して、ネットワーク入力の結合された埋め込み表現を生成するように構成される。すなわち、入力シーケンス内の各位置は、対応する埋め込みを有し、各ネットワーク入力について、埋め込みレイヤ120は、ネットワーク入力の埋め込み表現を、入力シーケンス内のネットワーク入力の位置の埋め込みと結合する。そのような位置埋め込みは、モデルが、再帰または畳み込みに依存することなく、入力シーケンスの順序を十分に活用できるようにすることができる。
【００３０】
場合によっては、位置埋め込みが学習される。本明細書において使用される、「学習される」という用語は、動作または値が、シーケンス変換ニューラルネットワーク108のトレーニング中に調整されていることを意味する。シーケンス変換ニューラルネットワーク108のトレーニングについては、図3を参照して以下で説明される。
【００３１】
場合によっては、位置埋め込みは、固定されており、各位置ごとに異なっている。たとえば、埋め込みは、さまざまな周波数の正弦関数および余弦関数で構成されてもよく、以下の式を満たすことができる。
【００３２】
【数１】
0006884871.tif 000002
【００３３】
ここで、posは位置であり、iは位置埋め込み内の次元であり、dmodelは、位置埋め込みの(およびニューラルネットワーク108により処理されるその他のベクトルの)次元数である。正弦関数の位置埋め込みの使用は、モデルが、より長いシーケンス長さに外挿できるようにし、それによりモデルが採用され得る用途の範囲を増大させることができる。
【００３４】
次いで、結合された埋め込み表現は、ネットワーク入力の数値表現として使用される。
【００３５】
エンコーダサブネットワーク130の各々は、複数の入力位置の各々についてそれぞれのエンコーダサブネットワーク入力を受信するように、および複数の入力位置の各々についてそれぞれのサブネットワーク出力を生成するように構成される。
【００３６】
次いで、シーケンス内の最後のエンコーダサブネットワークにより生成されたエンコーダサブネットワーク出力は、ネットワーク入力のエンコードされた表現として使用される。
【００３７】
シーケンス内の第1のエンコーダサブネットワークの場合、エンコーダサブネットワーク入力は、埋め込みレイヤ120により生成された数値表現であり、シーケンス内の第1のエンコーダサブネットワーク以外の各エンコーダサブネットワークの場合、エンコーダサブネットワーク入力は、シーケンス内の先行のエンコーダサブネットワークのエンコーダサブネットワーク出力である。
【００３８】
各エンコーダサブネットワーク130は、エンコーダセルフアテンションサブレイヤ132を含む。エンコーダセルフアテンションサブレイヤ132は、複数の入力位置の各々についてサブネットワーク入力を受信し、入力順に各特定の入力位置ごとに、特定の入力位置においてエンコーダサブネットワーク入力から導き出された1つまたは複数のクエリを使用して入力位置においてエンコーダサブネットワーク入力にわたりアテンションメカニズムを適用して、特定の入力位置のそれぞれの出力を生成するように構成される。場合によっては、アテンションメカニズムは、マルチヘッドアテンションメカニズムである。アテンションメカニズムについて、およびエンコーダセルフアテンションサブレイヤ132によってアテンションメカニズムがどのように適用されるかについては、図2を参照して以下でさらに詳細に説明される。
【００３９】
一部の実施態様において、エンコーダサブネットワーク130の各々はまた、エンコーダセルフアテンションサブレイヤの出力をエンコーダセルフアテンションサブレイヤへの入力と結合して、エンコーダセルフアテンション残余出力を生成する残余接続レイヤと、レイヤ正規化をエンコーダセルフアテンション残余出力に適用するレイヤ正規化レイヤとを含む。これらの2つのレイヤは、図1の「追加および正規化」動作として集合的に称される。
【００４０】
エンコーダサブネットワークの一部または全部はまた、それぞれ入力シーケンス内の各位置で動作するように構成される位置ごとのフィードフォワードレイヤ134を含むことができる。特に、各入力シーケンス位置について、フィードフォワードレイヤ134は、入力位置において入力を受信し、入力位置において入力に変換のシーケンスを適用して入力位置の出力を生成するように構成される。たとえば、変換のシーケンスは、活性化関数、たとえば非線形要素ごとの活性化関数、たとえば、大規模で複雑なデータベースへのより速く効果的なトレーニングを可能にすることができる、ReLU活性化関数、によって各々分割された2つ以上の学習された線形変換を含むことができる。位置ごとのフィードフォワードレイヤ134により受信された入力は、残余およびレイヤ正規化レイヤが含まれる場合、レイヤ正規化レイヤの出力であってもよいか、または残余およびレイヤ正規化レイヤが含まれない場合、エンコーダセルフアテンションサブレイヤ132の出力であってもよい。レイヤ134により適用された変換は、一般に、各入力位置に対して同じである(しかし、異なるサブネットワークの異なるフィードフォワードレイヤは異なる変換を適用する)。
【００４１】
エンコーダサブネットワーク130が、位置ごとのフィードフォワードレイヤ134を含む場合において、エンコーダサブネットワークはまた、位置ごとのフィードフォワードレイヤの出力を、位置ごとのフィードフォワードレイヤへの入力と結合して、エンコーダ位置ごとの残余出力を生成する残余接続レイヤと、レイヤ正規化をエンコーダ位置ごとの残余出力に適用するレイヤ正規化レイヤとを含むことができる。これらの2つのレイヤはまた、図1の「追加および正規化」動作として集合的に称される。次いで、このレイヤ正規化レイヤの出力は、エンコーダサブネットワーク130の出力として使用されてもよい。
【００４２】
エンコーダニューラルネットワーク110がエンコードされた表現を生成すると、デコーダニューラルネットワーク150は、自己回帰の方式で出力シーケンスを生成するように構成される。
【００４３】
すなわち、デコーダニューラルネットワーク150は、複数の生成時間ステップの各々において、(i)エンコードされた表現、および(ii)出力順に出力位置に先行する出力位置におけるネットワーク出力、に条件付けられた対応する出力位置のネットワーク出力を生成することにより、出力シーケンスを生成する。
【００４４】
特に、所与の出力位置について、デコーダニューラルネットワークは、所与の出力位置における可能なネットワーク出力にわたり確率分布を定義する出力を生成する。次いで、デコーダニューラルネットワークは、確率分布からサンプリングすることによるか、または最も高い確率を伴うネットワーク出力を選択することによって、出力位置のネットワーク出力を選択することができる。
【００４５】
デコーダニューラルネットワーク150は、自己回帰であるため、各生成時間ステップにおいて、デコーダ150は、生成時間ステップの前にすでに生成されているネットワーク出力、つまり出力順に対応する出力位置に先行する出力位置におけるネットワーク出力で動作する。一部の実施形態において、これが推理およびトレーニングの間にあてはまることを保証するため、各生成時間ステップにおいて、デコーダニューラルネットワーク150は、すでに生成されているネットワーク出力を1つの出力順序位置だけ右に移動させ(つまり、すでに生成されているネットワーク出力シーケンスに1つの位置オフセットを導入し)、(以下でさらに詳細に説明されるように)位置が出力シーケンス内のその位置までおよびその位置を含む位置(後続の位置ではなく)にのみ注意を払うことができるように特定の動作をマスクする。以下の説明の残りの部分は、所与の出力位置において所与の出力を生成するときに、デコーダ150のさまざまなコンポーネントが所与の出力位置に先行する出力位置におけるデータ上で(しかも任意のその他の出力位置におけるデータ上ではなく)動作することを説明するが、このタイプの条件付けが上記で説明される移動を使用して効果的に実施され得ることが理解されよう。
【００４６】
デコーダニューラルネットワーク150は、埋め込みレイヤ160、デコーダサブネットワーク170のシーケンス、線形レイヤ180、およびソフトマックスレイヤ190を含む。特に、図1に示されるように、デコーダニューラルネットワークは、N個のデコーダサブネットワーク170を含む。しかし、図1の例は、同じ数のサブネットワークを含むエンコーダ110およびデコーダ150を示すが、場合によっては、エンコーダ110およびデコーダ150は、異なる数のサブネットワークを含む。すなわち、デコーダ150は、エンコーダ110よりも多いかまたは少ないサブネットワークを含むことができる。
【００４７】
埋め込みレイヤ160は、各生成時間ステップにおいて、出力順に現在の出力位置に先行する出力位置における各ネットワーク出力について、ネットワーク出力を、埋め込みスペース内のネットワーク出力の数値表現にマップするように構成される。次いで、埋め込みレイヤ160は、ネットワーク出力の数値表現を、デコーダサブネットワークのシーケンス内の第1のサブネットワーク170に、つまりN個のデコーダサブネットワークの第1のデコーダサブネットワーク170に、提供する。
【００４８】
特に、一部の実施態様において、埋め込みレイヤ160は、各ネットワーク出力を、ネットワーク出力の埋め込み表現にマップして、ネットワーク出力の埋め込み表現を、出力順にネットワーク出力の出力位置の位置埋め込みと結合して、ネットワーク出力の結合された埋め込み表現を生成するように構成される。次いで、結合された埋め込み表現は、ネットワーク出力の数値表現として使用される。埋め込みレイヤ160は、埋め込みレイヤ120を参照して上記で説明されている方法と同じ方法で結合された埋め込み表現を生成する。
【００４９】
それぞれのデコーダサブネットワーク170は、各生成時間ステップにおいて、対応する出力位置に先行する複数の出力位置の各々についてそれぞれのデコーダサブネットワーク入力を受信し、対応する出力位置に先行する複数の出力位置の各々についてそれぞれのデコーダサブネットワーク出力を(または同等に、出力シーケンスが右に移動されている場合、現在の出力位置までおよびその位置を含む位置において各ネットワーク出力を)生成するように構成される。
【００５０】
特に、各デコーダサブネットワーク170は、デコーダセルフアテンションサブレイヤ172およびエンコーダ-デコーダアテンションサブレイヤ174という2つの異なるアテンションサブレイヤを含む。
【００５１】
各デコーダセルフアテンションサブレイヤ172は、各生成時間ステップにおいて、対応する出力位置に先行する各出力位置について入力を受信し、特定の出力位置の各々について、特定の出力位置において入力から導き出された1つまたは複数のクエリを使用して対応する位置に先行する出力位置において入力にわたりアテンションメカニズムを適用して、特定の出力位置の更新された表現を生成するように構成される。すなわち、デコーダセルフアテンションサブレイヤ172は、出力シーケンス内の現在の出力位置に先行する位置にはない任意のデータを注意または処理しないようにマスクされるアテンションメカニズムを適用する。
【００５２】
一方、各エンコーダ-デコーダアテンションサブレイヤ174は、各生成時間ステップにおいて、対応する出力位置に先行する各出力位置について入力を受信し、出力位置の各々について、出力位置の入力から導き出された1つまたは複数のクエリを使用して入力位置においてエンコードされた表現にわたりアテンションメカニズムを適用して出力位置の更新された表現を生成するように構成される。したがって、エンコーダ-デコーダアテンションサブレイヤ174は、エンコードされた表現にわたりアテンションを適用するが、エンコーダセルフアテンションサブレイヤ172は、出力位置において入力にわたりアテンションを適用する。
【００５３】
これらのアテンションサブレイヤの各々によって適用されるアテンションメカニズムについては、図2を参照して以下でさらに詳細に説明される。
【００５４】
図1において、デコーダセルフアテンションサブレイヤ172は、デコーダサブネットワーク170内の処理順でエンコーダ-デコーダアテンションサブレイヤの前にあるものとして示される。しかし、その他の例において、デコーダセルフアテンションサブレイヤ172は、デコーダサブネットワーク170内の処理順でエンコーダ-デコーダアテンションサブレイヤ174の後にあってもよいか、または異なるサブネットワークが異なる処理順序を有してもよい。
【００５５】
一部の実施態様において、各デコーダサブネットワーク170は、デコーダセルフアテンションサブレイヤ172の後、エンコーダ-デコーダアテンションサブレイヤ174の後、または2つのサブレイヤの各々の後に、アテンションサブレイヤの出力をアテンションサブレイヤへの入力と結合して残余出力を生成する残余接続レイヤと、レイヤ正規化を残余出力に適用するレイヤ正規化レイヤとを含む。図1は、2つのサブレイヤの各々の後に挿入される、いずれも「追加および正規化」動作と称される、これらの2つのレイヤを示す。
【００５６】
デコーダサブネットワーク170の一部または全部はまた、エンコーダ110から位置ごとのフィードフォワードレイヤ134と類似する方法で動作するように構成される位置ごとのフィードフォワードレイヤ176を含む。特に、レイヤ176は、各生成時間ステップにおいて、対応する出力位置に先行する各出力位置について、出力位置において入力を受信し、出力位置において入力に変換のシーケンスを適用して出力位置の出力を生成するように構成される。たとえば、変換のシーケンスは、活性化関数、たとえば非線形要素ごとの活性化関数、たとえば、ReLU活性化関数、によって各々分割された2つ以上の学習された線形変換を含むことができる。位置ごとのフィードフォワードレイヤ176により受信された入力は、残余およびレイヤ正規化レイヤが含まれる場合、(サブネットワーク170内の最後のアテンションサブレイヤに続く)レイヤ正規化レイヤの出力であってもよいか、または残余およびレイヤ正規化レイヤが含まれない場合、サブネットワーク170内の最後のアテンションサブレイヤの出力であってもよい。
【００５７】
デコーダサブネットワーク170が、位置ごとのフィードフォワードレイヤ176を含む場合において、デコーダサブネットワークはまた、位置ごとのフィードフォワードレイヤの出力を、位置ごとのフィードフォワードレイヤへの入力と結合してデコーダ位置ごとの残余出力を生成する残余接続レイヤと、レイヤ正規化をデコーダ位置ごとの残余出力に適用するレイヤ正規化レイヤとを含むことができる。これらの2つのレイヤはまた、図1の「追加および正規化」動作として集合的に称される。次いで、このレイヤ正規化レイヤの出力は、デコーダサブネットワーク170の出力として使用されてもよい。
【００５８】
各生成時間ステップにおいて、線形レイヤ180は、最後のデコーダサブネットワーク170の出力を、ソフトマックスレイヤ190による処理に適切なスペースに投影するために、学習された線形変換を最後のデコーダサブネットワーク170の出力に適用する。次いで、ソフトマックスレイヤ190は、線形レイヤ180の出力にわたりソフトマックス関数を適用して、生成時間ステップにおける可能なネットワーク出力にわたり確率分布を生成する。上記で説明されるように、デコーダ150は、次いで、確率分布を使用して可能なネットワーク出力からネットワーク出力を選択することができる。
【００５９】
図2は、エンコーダニューラルネットワーク110およびデコーダニューラルネットワーク150のサブネットワークにおいてアテンションサブレイヤにより適用されるアテンションメカニズムを示す図200である。
【００６０】
一般に、アテンションメカニズムは、クエリおよびキー値ペアのセットを出力にマップし、クエリ、キー、および値はすべてベクトルである。出力は、値の加重合計として計算され、ここで各値に割り当てられる重みは、対応するキーとのクエリの適合関数によって計算される。
【００６１】
さらに詳細には、各アテンションサブレイヤは、縮小付き内積アテンションメカニズム230を適用する。縮小付き内積アテンションにおいて、所与のクエリについて、アテンションサブレイヤは、キーのすべてとのクエリの内積を計算し、内積の各々を、倍率により、たとえばクエリとキーの次元の平方根により、除算して、縮小付き内積にわたりソフトマックス関数を適用して値への重みを取得する。次いで、アテンションサブレイヤは、これらの重みに従って値の加重合計を計算する。したがって、縮小付き内積アテンションの場合、適合関数は内積であり、適合関数の出力は、倍率によりさらに縮小される。
【００６２】
動作中、および図2の左側に示されるように、アテンションサブレイヤは、クエリのセットにわたり同時にアテンションを計算する。特に、アテンションサブレイヤは、クエリを行列Qにパックし、キーを行列Kにパックし、値を行列Vにパックする。ベクトルのセットを行列にパックするために、アテンションサブレイヤは、行列の行としてベクトルを含む行列を生成することができる。
【００６３】
次いで、アテンションサブレイヤは、行列Qと行列Kの転置の間に行列乗算(MatMul)を実行して、適合関数出力の行列を生成する。
【００６４】
次いで、アテンションサブレイヤは、適合関数出力行列を縮小する、つまり倍率により行列の各要素を除算する。
【００６５】
次いで、アテンションサブレイヤは、縮小付き出力行列にソフトマックスを適用して、重みの行列を生成し、重み行列と行列Vの間に行列乗算(MatMul)を実行して、値ごとのアテンションメカニズムの出力を含む出力行列を生成する。
【００６６】
マスキングを使用するサブレイヤ、つまりデコーダアテンションサブレイヤの場合、アテンションサブレイヤは、ソフトマックスを適用する前に縮小付き出力行列をマスクする。すなわち、アテンションサブレイヤは、現在の出力位置の後の位置に対応する縮小付き出力行列のすべての値を、マスクにより除外する(負の無限大にセットする)。
【００６７】
一部の実施態様において、アテンションサブレイヤが、さまざまな位置においてさまざまな表現サブスペースから情報に共同で注意できるようにするため、アテンションサブレイヤは、図2の右側に示されているマルチヘッドアテンションを採用する。
【００６８】
特に、マルチアヘッドアテンションを実施するため、アテンションサブレイヤは、hの異なるアテンションメカニズムを並行して適用する。言い換えれば、アテンションサブレイヤは、hの異なるアテンションレイヤを含み、同じアテンションサブレイヤ内の各々のアテンションレイヤが同じ元のクエリQ、元のキーK、および元の値Vを受信するようになっている。
【００６９】
各アテンションレイヤは、元のクエリ、キー、および値を、学習された線形変換を使用して変換して、アテンションメカニズム230を変換されたクエリ、キー、および値に適用するように構成される。各アテンションレイヤは、一般に、同じアテンションサブレイヤ内の相互のアテンションレイヤからさまざまな変換を学習する。
【００７０】
特に、各アテンションレイヤは、学習されたクエリ線形変換を各元のクエリに適用して、各元のクエリのレイヤ固有のクエリを生成し、学習されたキー線形変換を各元のキーに適用して、各元のクエリのレイヤ固有のキーを生成し、学習された値線形変換を各元の値に適用して、各元の値のレイヤ固有の値を生成するように構成される。次いで、アテンションレイヤは、これらのレイヤ固有のクエリ、キー、および値を使用して上記で説明されているアテンションメカニズムを適用して、アテンションレイヤの初期出力を生成する。
【００７１】
次いで、アテンションサブレイヤは、アテンションレイヤの初期出力を結合して、アテンションサブレイヤの最終出力を生成する。図2に示されるように、アテンションサブレイヤは、アテンションレイヤの出力を連結(concat)し、学習された線形変換を連結された出力に適用して、アテンションサブレイヤの出力を生成する。
【００７２】
場合によっては、アテンションサブレイヤによって適用された学習された変換は、元のキー、値、およびオプションとしてクエリの次元を減らす。たとえば、元のキー、値、およびクエリの次元がdであり、サブレイヤ内にhのアテンションレイヤがある場合、サブレイヤは、元のキー、値、およびクエリの次元をd/hまで減らすことがある。これは、マルチヘッドアテンションメカニズムの計算コストを、全次元数でアテンションメカニズムを1回実行するために要したであろう計算コストと同様に維持し、しかも同時に、アテンションサブレイヤの表現能力を増大させる。
【００７３】
各アテンションサブレイヤによって適用されるアテンションメカニズムは同じであるが、クエリ、キー、および値は、アテンションの異なるタイプに対して異なっている。すなわち、異なるタイプのアテンションサブレイヤは、アテンションサブレイヤによって入力として受信される元のクエリ、キー、および値に対して異なるソースを使用する。
【００７４】
特に、アテンションサブレイヤがエンコーダセルフアテンションサブレイヤである場合、キー、値、およびクエリのすべては、同じ場所、この場合はエンコーダ内の以前のサブネットワークの出力から生じるか、または第1のサブネットワーク内のエンコーダセルフアテンションサブレイヤに対して、エンコーダの入力および各位置の埋め込みは、入力順にすべての位置に注意することができる。したがって、入力順に各位置に対してそれぞれのキー、値、およびクエリがある。
【００７５】
アテンションサブレイヤがデコーダセルフアテンションサブレイヤである場合、デコーダ内の各位置は、その位置に先行するデコーダのすべての位置に注意する。したがって、キー、値、およびクエリのすべては、同じ場所、この場合はデコーダの以前のサブネットワークの出力から生じるか、または第1のデコーダサブネットワーク内のデコーダセルフアテンションサブレイヤについては、すでに生成された出力の埋め込みから、生じる。したがって、現在の位置の前に出力順に各位置に対してそれぞれのキー、値、およびクエリがある。
【００７６】
アテンションサブレイヤがエンコーダ-デコーダアテンションサブレイヤである場合、クエリはデコーダ内の以前のコンポーネントから生じ、キーおよび値はエンコーダの出力から、つまりエンコーダによって生成されたエンコードされた表現から生じる。これは、デコーダ内のあらゆる位置が、入力シーケンス内のすべての位置にわたり注意できるようにする。したがって、現在の位置の前に出力順に各位置に対してそれぞれのクエリがあり、入力順で各位置に対してそれぞれのキーおよびそれぞれの値がある。
【００７７】
さらに詳細には、アテンションサブレイヤがエンコーダセルフアテンションサブレイヤである場合、入力順に特定の入力位置ごとに、エンコーダセルフアテンションサブレイヤは、特定の入力位置においてエンコーダサブネットワーク入力から導き出された1つまたは複数のクエリを使用して入力位置においてエンコーダサブネットワーク入力にわたりアテンションメカニズムを適用して、特定の入力位置のそれぞれの出力を生成するように構成される。
【００７８】
エンコーダセルフアテンションサブレイヤがマルチヘッドアテンションを実施する場合、エンコーダセルフアテンションサブレイヤ内の各エンコーダセルフアテンションレイヤは、学習されたクエリ線形変換を各入力位置において各エンコーダサブネットワーク入力に適用して、各入力位置に対してそれぞれのクエリを生成し、学習されたキー線形変換を各入力位置において各エンコーダサブネットワーク入力に適用して、各入力位置に対してそれぞれのキーを生成し、学習された値線形変換を各入力位置において各エンコーダサブネットワーク入力に適用して、各入力位置に対してそれぞれの値を生成し、次いでクエリ、キー、および値を使用してアテンションメカニズム(つまり、上記で説明されている縮小付き内積アテンションメカニズム)を適用して、各入力位置に対する初期エンコーダセルフアテンション出力を決定するように構成される。次いで、サブレイヤは、上記で説明されているようにアテンションレイヤの初期出力を結合する。
【００７９】
アテンションサブレイヤがデコーダセルフアテンションサブレイヤである場合、デコーダセルフアテンションサブレイヤは、各生成時間ステップにおいて、対応する出力位置に先行する各出力位置について入力を受信し、特定の出力位置の各々について、特定の出力位置において入力から導き出された1つまたは複数のクエリを使用して対応する位置に先行する出力位置において入力にわたりアテンションメカニズムを適用して、特定の出力位置の更新された表現を生成するように構成される。
【００８０】
デコーダセルフアテンションサブレイヤがマルチヘッドアテンションを実施する場合、デコーダセルフアテンションサブレイヤ内の各アテンションレイヤは、各生成時間ステップにおいて、学習されたクエリ線形変換を対応する出力位置に先行する各出力位置において入力に適用して、各出力位置に対してそれぞれのクエリを生成し、学習されたキー線形変換を対応する出力位置に先行する各出力位置において各入力に適用して、各出力位置に対してそれぞれのキーを生成し、学習された値線形変換を対応する出力位置に先行する各出力位置において各入力に適用して、各出力位置に対してそれぞれのキーを生成し、次いでクエリ、キー、および値を使用してアテンションメカニズム(つまり、上記で説明されている縮小付き内積アテンションメカニズム)を適用して、各出力位置に対する初期デコーダセルフアテンション出力を決定するように構成される。次いで、サブレイヤは、上記で説明されているようにアテンションレイヤの初期出力を結合する。
【００８１】
アテンションサブレイヤがエンコーダ-デコーダアテンションサブレイヤである場合、エンコーダ-デコーダアテンションサブレイヤは、各生成時間ステップにおいて、対応する出力位置に先行する各出力位置について入力を受信し、出力位置の各々について、出力位置の入力から導き出された1つまたは複数のクエリを使用して入力位置においてエンコードされた表現にわたりアテンションメカニズムを適用して、出力位置に対する更新された表現を生成するように構成される。
【００８２】
エンコーダ-デコーダアテンションサブレイヤがマルチヘッドアテンションを実施する場合、各アテンションレイヤは、各生成時間ステップにおいて、学習されたクエリ線形変換を対応する出力位置に先行する各出力位置において入力に適用して、各出力位置に対してそれぞれのクエリを生成し、学習されたキー線形変換を各入力位置において各エンコードされた表現に適用して、各入力位置に対してそれぞれのキーを生成し、学習された値線形変換を各入力位置において各エンコードされた表現に適用して、各入力位置に対してそれぞれの値を生成し、次いでクエリ、キー、および値を使用してアテンションメカニズム(つまり、上記で説明されている縮小付き内積アテンションメカニズム)を適用して、各入力位置に対する初期エンコーダ-デコーダアテンション出力を決定するように構成される。次いで、サブレイヤは、上記で説明されているようにアテンションレイヤの初期出力を結合する。
【００８３】
図3は、入力シーケンスから出力シーケンスを生成するための例示のプロセスを示す流れ図である。便宜上、プロセス300は、1つまたは複数の場所に配置された1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラムされた、ニューラルネットワークシステム、たとえば図1のニューラルネットワークシステム100は、プロセス300を実行することができる。
【００８４】
システムは、入力シーケンスを受信する(ステップ310)。
【００８５】
システムは、エンコーダニューラルネットワークを使用して入力シーケンスを処理して、入力シーケンス内の各々のネットワーク入力のそれぞれエンコードされた表現を生成する(ステップ320)。特に、システムは、埋め込みレイヤを通じて入力シーケンスを処理して、各ネットワーク入力の埋め込み表現を生成し、次いでエンコーダサブネットワークのシーケンスを通じて埋め込み表現を処理して、ネットワーク入力のエンコードされた表現を生成する。
【００８６】
システムは、デコーダニューラルネットワークを使用してエンコードされた表現を処理して、出力シーケンスを生成する(ステップ330)。デコーダニューラルネットワークは、自己回帰の方式でエンコードされた表現から出力シーケンスを生成するように構成される。すなわち、デコーダニューラルネットワークは、各生成時間ステップにおいて出力シーケンスから1つの出力を生成する。所与の出力が生成されている所与の生成時間ステップにおいて、システムは、デコーダの埋め込みレイヤを通じて出力シーケンス内の所与の出力の前の出力を処理して、埋め込み表現を生成する。次いで、システムは、デコーダサブネットワーク、線形レイヤ、およびソフトマックスレイヤのシーケンスを通じて埋め込み表現を処理して、所与の出力を生成する。デコーダサブネットワークはエンコーダ-デコーダアテンションサブレイヤおよびデコーダセルフアテンションサブレイヤを含むので、デコーダは、所与の出力を生成するときに、すでに生成されている出力とエンコードされた表現の両方を利用する。
【００８７】
システムは、所望の出力、つまり入力シーケンスに対してシステムにより生成されるべき出力シーケンスが不明である出力の入力シーケンスについてプロセス300を実行することができる。
【００８８】
システムはまた、エンコーダおよびデコーダのパラメータにトレーニングされた値を決定するようにエンコーダおよびデコーダをトレーニングするため、トレーニングデータのセット、つまりシステムにより生成されるべき出力シーケンスが知られている入力のセットの入力シーケンスにプロセス300を実行することができる。プロセス300は、たとえばAdamオプティマイザのような従来のオプティマイザを使用する逆伝搬トレーニング技法による勾配降下など、初期ニューラルネットワークレイヤをトレーニングするための従来の機械学習トレーニング技法の一部として、トレーニングデータのセットから選択された入力に繰り返し実行され得る。トレーニング中、システムは、トレーニングプロセスの速度、有効性、またはその両方を改善するため、任意の数の技法を組み入れることができる。たとえば、システムは、過剰適合を低減するために、ドロップアウト、ラベルスムージング、またはその両方を使用することができる。もう1つの例として、システムは、並行してシーケンス変換ニューラルネットワークの複数のインスタンスをトレーニングする分散型アーキテクチャを使用してトレーニングを実行することができる。
【００８９】
本明細書は、システムおよびコンピュータプログラムコンポーネントに関連して「構成される」という用語を使用する。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つまたは複数の大容量ストレージデバイスを含むか、または大容量ストレージデバイスとの間で、データの受信、もしくはデータの送信、またはその両方を行うように動作可能に結合される。しかし、コンピュータは、そのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、ほんの一例をあげると、たとえば携帯電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレイヤー、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス、たとえばユニバーサルシリアルバス(USB)フラッシュドライブに組み入れられてもよい。
【００９７】
コンピュータプログラム命令およびデータを格納するために適したコンピュータ可読媒体は、一例として、たとえばEPROM、EEPROM、およびフラッシュメモリデバイスのような半導体メモリデバイス、たとえば内蔵ハードディスクまたは取り外し可能ディスクのような磁気ディスク、磁気光学ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含むすべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。
【００９８】
ユーザとの対話を提供するため、本明細書において説明される主題の実施形態は、情報をユーザに表示するためのディスプレイデバイス、たとえばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザが入力をコンピュータに提供することができるキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールを有するコンピュータで実施されてもよい。その他の種類のデバイスがユーザとの対話を提供するために使用されてもよく、たとえば、ユーザに提供されるフィードバックは任意の形態の感知フィードバック、たとえば視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってもよく、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信されてもよい。加えて、コンピュータは、たとえばWebブラウザから受信された要求に応じてユーザのデバイス上のWebブラウザにWebページを送信することにより、ユーザによって使用されるデバイスとの間で文書を送信および受信することによって、ユーザと対話することができる。また、コンピュータは、たとえばメッセージングアプリケーションを実行しているスマートフォンのようなパーソネルデバイスにテキストメッセージまたはその他のフォームのメッセージを送信すること、および返信としてユーザから応答メッセージを受信することによって、ユーザと対話することができる。
【００９９】
機械学習モデルを実施するためのデータ処理装置はまた、たとえば、機械学習トレーニングまたは生産、つまり推論、ワークロードの共通および計算主体の部分を処理するための専用ハードウェアアクセラレータユニットを含むこともできる。
【０１００】
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはAoache MXNetフレームワークを使用して実施および配備されてもよい。
【０１０１】
本明細書において説明される主題の実施形態は、たとえばデータサーバとしてバックエンドコンポーネントを含むか、またはたとえばアプリケーションサーバのようなミドルウェアコンポーネントを含むか、またはたとえば本明細書において説明される主題の実施態様とユーザが対話することができるグラフィカルユーザインターフェイス、Webブラウザ、もしくはアプリケーションを有するクライアントコンピュータのようなフロントエンドコンポーネントを含むか、または1つまたは複数のそのようなバックエンド、ミドルウェア、もしくはフロントエンドのコンポーネントの任意の組み合わせを含む、コンピューティングシステムにおいて実施されてもよい。システムのコンポーネントは、たとえば通信ネットワークのような、デジタルデータ通信の任意の形態または媒体によって相互接続されてもよい。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、およびたとえばインターネットのようなワイドエリアネットワーク(WAN)を含む。
【０１０２】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは一般に、相互に離れており、通常は通信ネットワークを通じて対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で稼働し、相互にクライアント-サーバの関係を有するコンピュータプログラムにより生じる。一部の実施形態において、サーバは、たとえばクライアントの機能を果たす、デバイスと対話するユーザにデータを表示し、ユーザからユーザ入力を受信する目的で、たとえばHTMLページのようなデータをユーザデバイスに送信する。ユーザデバイスにおいて生成されたデータ、たとえばユーザインタラクションの結果は、デバイスからサーバにおいて受信されてもよい。
【０１０３】
本明細書は多くの固有の実施態様の詳細を含むが、これらは任意の発明または主張され得るものの範囲を限定するものとして解釈されるべきではなく、特定の発明の特定の実施形態に固有となり得る特徴の説明として解釈されるべきである。別個の実施形態のコンテキストで本明細書において説明される特定の特徴はまた、単一の実施形態において組み合わせて実施されてもよい。逆に、単一の実施形態のコンテキストで説明されるさまざまな特徴はまた、別個に、または任意の適切な部分的組み合わせで複数の実施形態において実施されてもよい。その上、特徴が特定の組み合わせにおいて動作するものと上記で説明され、そのようなものとして最初に主張されているとしても、主張される組み合わせからの1つまたは複数の特徴は、場合によっては組み合わせから削除されてもよく、主張される組み合わせは、部分的組み合わせまたは部分的組み合わせの変形に向けられてもよい。
【０１０４】
同様に、動作は、特定の順序で図面に示され、特許請求の範囲に列挙されているが、これは、望ましい結果を達成するために、そのような動作が示されている特定の順序または順次に実行されること、またはすべての説明されている動作が実行されることを要求するものと理解されるべきではない。ある特定の状況において、マルチタスキングおよび並列処理が有益となり得る。その上、上記で説明される実施形態におけるさまざまなシステムモジュールおよびコンポーネントの分離は、すべての実施形態においてそのような分離を要求するものと理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムが一般に単一のソフトウェア製品に一体化されるか、または複数のソフトウェア製品にパッケージングされてもよいことを理解されたい。
【０１０５】
主題の特定の実施形態が説明された。その他の実施形態は、添付の特許請求の範囲に含まれる。たとえば、特許請求の範囲において列挙されるアクションは、異なる順序で実行され得るが、引き続き望ましい結果を達成する。一例として、添付の図面に示されるプロセスは、望ましい結果を達成するために、示されている特定の順序、または一連の順序を必ずしも要求するとは限らない。場合によっては、マルチタスキングおよび並列処理が有益となり得る。
【符号の説明】
【０１０６】
100  ニューラルネットワークシステム
108  アテンションベースのシーケンス変換ニューラルネットワーク
110  エンコーダニューラルネットワーク
120  埋め込みレイヤ
130  エンコーダサブネットワーク
132  エンコーダセルフアテンションサブレイヤ
134  位置ごとのフィードフォワードレイヤ
150  デコーダニューラルネットワーク
152  出力シーケンス
160  埋め込みレイヤ
170  デコーダサブネットワーク
172  デコーダセルフアテンションサブレイヤ
174  エンコーダ-デコーダアテンションサブレイヤ
176  位置ごとのフィードフォワードレイヤ
180  線形レイヤ
190  ソフトマックスレイヤ
230  アテンションメカニズム
【図１】
0006884871.tif 000003
【図２】
0006884871.tif 000004
【図３】
0006884871.tif 000005