見ている前に、この記事で、自己注意の詳細な説明、変圧器のより包括的な概要のコピーを読む前にこの記事を。
この論文を見た後に自己注目の基盤で、それは簡単に感じています。
ペーパー:注意が必要なのです。
記事のディレクトリ
1-2イントロダクション&背景
RNN:この本質的にシーケンシャル自然は並列化を妨げる重大なATなる、トレーニングの実施例中にシーケンスの長さより長く制約の例を越え、ASメモリの制限バッチ処理。
(計算の順序に制限が残っているので、一時的な解決策を)解決:
- 因数分解のトリック。
- 条件付き計算。
CNNの基本的なビルディングブロックとして、そのようにも使用:ByteNet、ConvS2Sしかし:.はIT作り離れた位置間の依存関係を学ぶためにもっとdiffucultを(出力シーケンスの観測シーケンスXとYの長さと計算量に比例)。
歴史:
名前 | 説明 | リミット |
---|---|---|
seq2seq | ||
エンコーダ・デコーダ | 伝統的に、RNNと | |
RNN \ LSTM \ GRU | 方向:双方向方法;深さ:単層または多層; | 、長いシーケンスに対応することが困難RNNを並行して実施することができず、アライメントの問題、ニューラルネットワークのニーズに必要なすべての情報が、固定長ベクトルにソース文を圧縮することができるようにします |
CNN | サンプルの並列コンピューティング、より長い配列 | 合計メモリ、トリックの多くは、データのパラメータ調整が大量に容易ではありません |
注目のメカニズム | サブセットへの注意、アライメントの問題が解決します |
前述のポイント:
セルフ注意;
再発注意メカニズム。
形質導入モデル
3モデルのアーキテクチャ
エンコーダ・デコーダ構造の最も:
入力シーケンス:入力シーケンスX =(X1、...、XN )、Nの数の
エンコーダ出力連続表現:Z =(Z1、...、亜鉛)、Nの数の
出力のdocoder:Y =( Y1、...、YM)、M番号
時間要素に1つ。生成ザ・次の追加入力を消費AS以前に生成されたシンボル。
全体的なアーキテクチャの変圧器を使用して、この従う積み上げセルフ注意とポイント・ワイズが、完全に接続されたレイヤーザ・エンコーダとデコーダの両方のために。
3.1エンコーダとデコーダスタック
エンコーダ:Nのスタックは、= 6同一layers.Each層):(从下到上二つの副層を有します
- マルチヘッド自己の注目メカニズム。
- 単純な、位置ごと完全conntectedフィードフォワードネットワーク(以下叫ffnn)。
採用WE 残留接続副層TWO(二つの副層の間の残留接続)+のそれぞれの周りレイヤ正規。で、各サブ層の出力はLayerNorm(X +サブレイヤ(X)) 。
モデル+ embediding層内のすべてのサブ層は、出力の生成寸法D モデル = 512。
デコーダ:A = N.デコーダの6つの同一スタック層サブレイヤインサート:( A THIRD底部から上部へ)。
- マルチヘッド自己注目副層(出力受信エンコーダスタック)(マスク)
- エンコーダ・デコーダの注意
- ffnn
マスキング位置の予測は、ことを確認し、私は以下の位置にのみ知られている出力に依存することができ、私を。
各副層の残留接続+層正規。(残留接続は、サブ層の各々を丸めます。 )
3.2注意
注意机制就是(すべてがベクトル)を出力するクエリと、キーと値のペアのセットをマッピングします。出力は、各値に割り当てられる重みは、対応するキーを持つクエリの互換性関数によって計算される値の加重和として計算されます。
この記事は、attenionを使用されます。
- スケールドット積注意
- マルチヘッドの注意
3.2.1スケーリングドット積注意
入力クエリと寸法のキーで構成さDK、およびディメンションの値DV。我々は、の内積計算すべてのキーを使用してクエリを、SQRT(DK)によりそれぞれを分割し、ソフトマックス関数を適用得るための値に重みを。
在实践中、我々は上の注意関数を計算行列Qの中に一緒にパック、同時にクエリのセット。キーと値は、行列KおよびVに同梱されています
PS:2注目の最も一般的に使用される機能である添加剤の注意、DOT注意製品-スペースのDOT-製品より速く、より効率的に使用します。
Dときkは、両方の類似の性能が、大きな時間をDK、規模が大幅に増加することなく、製品をドット、その後いつ非常に小さい領域にITが極めて小さい勾配有しのSoftMaxで機能を押し、従って、ドットのスケール1 / SQRT(DK)による生成物 。
3.2.2マルチヘッドご注意
長い注目のケースでは、異なるQ / K / V行列が得られ、ヘッド毎に別々のQ / K / Vの重み行列を維持します。前と同じように、我々は、Q / K / V行列を得るX-WQ / WK / WV行列が乗算されます。
また上:クエリ、キー、値。
上記同様の計算を行うための自己注目した場合、唯一の8つの異なる重み行列は、8つの異なるZ行列を得ることができます。
彼は注意ヘッドは異なる行列Zが生成されると述べました。
クエリ、キーに発表論文は、値が異なる投影ビューhを行い、寸法マップは線形マッピングによりDK、DV、その結果一緒にスプライススケーリングされたドット積の注目を通過し、最終的な出力です。異なるサブスペースの下に位置情報を取得することができ、長い注意モデルによります。
これらは、連結は、と再び写し出され、最終値でで得られた。
8つの異なるZ行列は行列に圧縮され、マトリックスは右結果行列Zを得るために、追加の値W0を乗じて、その情報をキャプチャするために、すべての注目ヘッドからのものでしたしたがって、この文はFFNNを供給する。
マルチヘッドの注目ポイント:
- 採用さH = 8つのパラレル注目層、又はヘッド。
- 以下のためのこれらのWE使用の各DK DV = D = モデル / H = 64。(D モデルの寸法を統合することです)
- 以下のために、各ヘッドの減少した大きさは、総計算コストは、完全な次元のシングルヘッドの注意と同様です。
注意モデルの3.2.3応用
変圧器は、マルチヘッドの注意を使用して 3つの異なる方法で:
-
「エンコーダデコーダ注意」層で
入力として自己注目エンコーダとデコーダの出力。エンコーダから前層、キー、値の出力から--Queriesデコーダ。
エンコーダ・デコーダの注意は、マトリックスを作成するために、下層からのクエリことを除いて、層と同様のマルチヘッド自己注目を動作し、スタック内のエンコーダマトリックスからキーと値出力を得ます。 -
エンコーダ的自己注目層。
エンコーダの各位置は、エンコーダの前の層内の全ての位置に参加することができ
的Q、K、V都是一样的(入力埋め込み、埋め込み位置)输入 -
デコーダ的自己注目層。
このスケーリングの内部には、WE DOT-製品の注意を実装するすべての値マスキングOUT(-∞に設定)でのSoftMax中に違法接続するためにどの対応のINPUTを。
位置現在位置の前方の自己注意層デコーダ、専用アクセスで
位置フィードフォワードネットワークに基づいて3.3ポジションごとのフィードフォワードネットワーク
別々に完全に接続され、フィードフォワードネットワークを構成する各レイヤフィードフォワードネットワークのエンコーダおよびデコーダとそれぞれ同じ位置に適用されます。このから成る2つの線形変換(二緻密層)とで活性化との間A RELU。2つの層が1×1のA-畳み込み1dと見なすことができます。hidden_sizeの変更:512-> 2048> 512
FFN(X)= MAX(0、XW1 + B1)W2 + B2
さまざまな使用彼らは層から層へのパラメータ。
ポジション・ワイズフィードフォワードネットワークは、実際にMLPネットワークです。
3.4組み込み環境とソフトマックス
私たちは次元のベクトルに入力トークンと出力トークンを変換することを学んだの埋め込みを使用して次元モデル。我々は2つの埋込層との間に同じ重み行列共有及びプリソフトマックス線形変換を。埋め込み層において、我々は、SQRT(dmodel)によってそれらの重みを乗算します。
3.5定位置エンコーディング
我々はいくつかの情報を注入しなければならないシーケンス内のトークンの相対的または絶対的な位置については。エンコーダおよびデコーダスタックの底部に入力された埋め込みに「位置エンコーディング」を追加。
各埋め込みにトランス--positionalコードするベクターの入力を追加します。これらのベクターは、決定に役立つ特定のパターン学習モデル、追従各単語の位置、又は異なる単語の中の配列との間の距離を。
位置エンコーディングはトン持っている埋め込みとして、彼と同じ寸法dmodelので、2つを合計することができ、。
位置エンコーディングが可能な学びと固定します。
異なる周波数の正弦と余弦関数を使用します:
WHERE POSは位置であると私は次元である。
私たちはので、我々はこの機能を選択したITが簡単に相対的な位置によって出席するために学ぶためにモデルを可能にする仮定のいずれかの固定オフセットK、Pepos + Kを表すことができAS Aリニア機能にあるため動作し、 。PEposは
正弦および余弦関数は周期、固定長の偏差K(同様のサイクル)を有し、ポスト+ PE kが位置PE(直線関係)の変化線形POS上の位置は、このことができ、容易にモデル学習ワードのように表すことができます。単語間の相対的な位置関係。
この方法の利点は、任意の文に焦点を当て、我々はトレーニングモデルを変換するように求めていたかのようにコード配列の長さは、目に見えないようにまで拡張することができるということであるトレーニングよりも長い文章です。
他のNLPの論文、位置埋め込み、通常は訓練されたベクトルが、唯一の余分な機能を埋め込む位置では、より良い情報があるでしょうが、捕捉することができるため、RNN、CNN自体、素晴らしいパフォーマンスが低下しない持っていませんでした位置情報が、Transformerモデルで、位置埋め込みは、位置情報の唯一のソースであるため、モデルのコアコンポーネントであり、ない特性補助特性。
4なぜ自己の注意
- T otal計算複雑レイヤ当たり(各層の全計算複雑度)
- 計算股関節のamoountをすることができ、並列化。
- 長距離の依存関係との間の経路長のネットワークです。
5トレーニング
5.1トレーニングデータとバッチ処理
文ペアは、文を使用して符号化されたバイトペア符号化を。これは持っている共有ソース・ターゲット語彙 37000程度のトークンを。
文ペアは近似配列の長さによって一緒にバッチ処理しました。
5.2ハードウェアとスケジュール
NVIDIAのGPU P100 8、
ベースモデル:ステップまたは100,000訓練の12時間。
ビッグモデル:トレーニング30万段階(3.5日)。
5.3オプティマイザ
アダム・オプティマイザ、β1= 0:9 。、β2= 0:98とθ= 10-9
の変更は、以下の式に従って運動時のレートを学習します:
5.4正則
ドロップアウト残留は:ドロップアウトに適用し、各サブレイヤの出力にする、埋め込み時の和で及びエンコーダおよびデコーダスタックにおける両ザ定位置エンコーディングにで本稿でPDROP = 0.1。
(残留ドロップアウトとの三箇所の各サブ層、位置エンコーディング埋め込みと、エンコーダおよびデコーダスタックの出力)。
ラベルのスムージング
6つの結果
6.1機械翻訳
モデルパラメータの機械翻訳品種:
我々は、多くの異なる注意ヘッドとアテンションキーと値のディメンションを发现如下。:
- 注意キーサイズのDKを減らすとモデルの品質を痛いです
- ドット積よりもより洗練された互換機能は有益であるかもしれません
- 大きなモデルが優れています
- ドロップアウトは非常に有用であるオーバーフィッティングを避けるには
- 学ん位置埋め込みとの正弦波の位置エンコーディングを交換してください。