ペーパー| 注意されたすべてのあなたの必要性

[これは、4000 +の記事への参照です。ブロガーは、NLPを行うが、それでも非常に興味を持っていませんが。もちろん、ブロガーが理解し、この記事の翻訳は非常にぎくしゃくしています]

モチベーションは:注意機構は非常に重要であり、NLPモデルは現在SOTAは注意機構エンコーダおよびデコーダによって一緒に接続されます。

貢献:本論文では、コンバータ(変圧器)を提案しました。この構造は、唯一の注意メカニズムと、循環畳み込みネットワークとは何の関係もありません。モデル全体のトレーニング迅速かつ容易に並列、最良の結果を得ます。

動機の詳細

現在のサイクルの論理ネットワークとロジックは、ヒトに記載の配列である:送り操作が開始シンボル位置である、すなわち、で\(T \)時間暗黙状態\(h_t \)は、A上にあります時間暗黙状態\(H_ {T-1} \) と入力電流の時間関数。

並列化に資するもの:しかし、この論理シーケンスは欠点があります。長い配列は、この欠点が拡大されている場合は特に。

この場合、著者のビジョンに、注意メカニズム。注意メカニズムは既にするために使用することができる多くの配列モデリングタスクおよび変換(変換)モデルの不可欠な一部である任意の長距離の依存関係をモデル化しますしかし、このメカニズムは、同時に使用注意とリサイクルネットワークです

提案されたコンバータは、注意がフレームループネットワークの外にモデルを作ることです。この時点で、それはパラレル変換機能を備えています。

2.関連研究

いくつかのシーケンスを計算量を削減しようとする試みでの作業、および、そのようなByteNet ConvS2Sがありました。これらは、すべてのコンボリューションニューラルネットワークによって支えられています。彼らの共通の問題:配列の長さが増加し、計算の線形または対数増殖の量が増加します。

パフォーマンスのいくつかの損失が、計算量が一定の定数でみましょう:コンバータが行うことができます。

注意機構以降:単一配列内の異なる位置の間で注意メカニズムの確立、および配列自体をモデル化します。

[終了思い出:ブロガーは理解していなかったが、知って取得できませんでした。]

著者の主張は、第1のコンバータは、RNN又は畳み込み構造なしに、変換モデルから注目のメカニズムに完全に基づいています。

3.コンバータ構造

7_1

左、右のデコーダでは、エンコーダです。

(左側に示すように、エンコーダ6と同様の構成\(N = 6 \) )、各構造体は、2つの層を含む一層長い注目機構(オレンジ)、完全に接続されたネットワーク層(青)。内層及び正規化を接続する2つの短があります。全ての層が出力されます\(d_k = 512 \)の寸法。

右側はデコーダです。デコーダは、同じ構造6組成物でもあるが、長い注目機構(中央)の複数のそれぞれの構造。このモジュールは、エンコーダの出力に対して行われます。加えて、その長い注目モジュールの底部はまた、修飾されています。注意機構からの出力のみが後に関わらず、その出力の前に実行します。修正方法がマスクされています。

3.1詳細な注意メカニズム

注目機構本質的に非常に簡単:入力クエリとキーのセット - 値のペア、クエリと互換性の結合によって得られた重み算出機能と、出力値が重み付け組み合わせです。

注意機構の内積の3.1.1スケーリング

注意(スケールドット積注意)のドット積をスケーリング:著者はの注意のために提案されたメカニズムを言います。図左:

7_2

クエリとは、(ズーミング)512の平方根で割った、キードット、及び重み付け処理を乗じたソフトマックス値の後に完了注目あります。

このプロセスの実用的な動作では、マトリックス化、すなわち、最初のパック行列う\(Q \)、\ (K \)及び(V \)\、次いで計算:
\ [\テキスト注意} {(Q、K、V) = \テキスト{ソフトマックス}(\ FRAC {QK ^ T} {\ SQRT {d_k}})V \]

除了这里用到的点积形式,还有一种常用的注意力策略:加性注意力。加性注意力(additive attention)只需要借助单层前向网络计算兼容函数。尽管理论上,加性注意力和点积注意力的计算复杂度接近,但由于矩阵操作有加速算法,因此点积注意力更高效。在性能上,当\(d_k\)较大时,点积注意力不如加性注意力。可能的原因是:当维度较高时,点积结果可能会很大(脚注4),因此softmax函数的梯度很小,导致训练困难。因此,我们将点积结果除以根号512。

3.1.2 多头注意力机制

我们总结一下上一节的放缩点积注意力机制:只有单个注意力函数,输入key和query,输出加权后的value。注意,输入、输出都是\(d_k = 512\)维。

除此之外,作者提出了更进一步的处理,如上图右:我们首先将value、query和key分别线性映射到\(d_k = 64\)\(d_k\)\(d_v = 64\)维,然后再通过上一节的注意力机制,处理得到\(d_v\)维的输出。该操作执行\(h = 8\)次,每一次的线性映射函数和注意力函数都不一样。最后,\(h\)\(d_v\)维输出再经过一次线性映射,得到一个\(d_v\)维最终输出。这就是所谓的multi-head。

多头与之前的“单头”有什么进步呢?博主的想法:

  1. キー、クエリの包括的治療、またキー、クエリ処理と値だけではなく、別々に。本質的に非常に興味深いいくつかのキーとクエリがあるかもしれません。

  2. 彼らは、8つの異なる「シングルヘッド」を実施し、その後、最終的な結果は、すべての組み合わせを再重み付け。この事実は、各フォーカス機能は、スペースの8つの異なる表現をする責任があることができます。例えば、いくつかの機能をより多くの注意を対象に、動詞、などいくつかの機能にもっと注意を払います。

  3. すべての「シングルヘッド」寸法が縮小されるため、計算の全体的な量は改善しませんでした。

最初のグラフに戻って。変圧器では、著者は3つの長いの注意で使用しています:

  1. エンコーダ - デコーダの間です。デコーダの層、鍵及びエンコーダから出力される値からのクエリ。すなわち:なお、デコーダように入力シーケンスの各々の位置。これは注意機構の典型的なものです。

  2. エンコーダ。このとき、キー、値、およびは、一つのクエリから派生しています。すなわち:それぞれの場所の層の上に層の注目。

  3. デコーダー。このとき、キー、値、およびは、一つのクエリから派生しています。すなわち:それぞれの場所の層の上に層の注目。我々は、関連するマスクは、負の無限大(完全に無関係)で聞かせて私たちは、情報の左方向への流れを必要としないことに注意してください。

3.2に完全に接続されたネットワーク

完全に接続されたネットワークは、二つのマップ、ReLU非線形を備えます。入力と出力が512次元隠れ層の寸法が2048です。

埋め込みは読んでいない、知りません。

3.3符号化された位置情報

変圧器の畳み込みは、環状構造を含み、かつ、具体的には、私たちはエンコード位置情報に望んでいないので。少し詳しく説明します。

少し休みます。

RNNやCNNとの注意をモデル化:一般的には、Googleが本来のオリジナルモデルを壊します。このブレークスルーは、この論文の最大の貢献です。

おすすめ

転載: www.cnblogs.com/RyanXing/p/Transformer.html