リニア アテンションの探求: アテンションにはソフトマックスが必要ですか?

ご存知のとおり、Attention メカニズムに基づくTransformer クラスモデルは並列性能が優れていますが、その空間計算量と時間計算量はいずれもO(n2)レベルであり、nは系列の長さであるため、 nが比較的大きい場合、計算量は非常に多くなります。トランスフォーマーモデルは難しいですね最近では、モデルの枝刈り、量子化、蒸留、その他の合理化手法や、複雑さをO(nlogn)に軽減できるように Attendance 構造を変更するなど、Transformer モデルの計算負荷を軽減するために多くの作業が行われています。あるいはO(n)さえも。

数日前、著者は「トランスフォーマーは RNN です: 線形アテンションを備えた高速自己回帰トランスフォーマー」という論文を読み、線形アテンション (Linear Attendant)の探索ポイントについて学び、その後いくつかの関連文献を読み、いくつかの良い結果を得ました。線形化されたアテンションの理解については、この記事にまとめられています。

注意 番号

現在、最も人気のあるアテンション メカニズムは、次の形式のScaled-Dot アテンションです。

アテンション(Q,K,V)=ソフトマックス(QK⊤)V(1)(1)

ここで、Q∈Rn ×dk 、 K∈Rm×dk 、 V∈Rm×dv は 、簡単にするために、 Attendance のスケーリング係数を明示的に記述しませんでした。この記事では、Self Attendance シナリオを主に扱います。そのため、導入の便宜上、Q、K、V∈Rn×d を一律に設定します。一般的なシナリオでは、n>dまたはn≫d ( d =64 (BERT ベース)。関連する解釈については、著者の「Attending is All You Need」の浅い読み物 (導入 + コード)を参照してください。また、その改善作業の一部は、「ボトルネックを突破し、より強力なトランスフォーマーを構築する」「Google の新しいシンセサイザー」も参照できます。:私たちはSelf-attentionを十分に知らない」ので、ここでは詳しく紹介しません。

ソフトマックスを削除 #

読者は、アテンションのパフォーマンスを制限する重要な要素が、実際には定義内のソフトマックスであるとは考えていないかもしれません実際、簡単な導出でこの結論に達することができます。QK⊤��⊤のこのステップでは、 n×n��× �� の行列を取得します。このステップでは、Softmax が存在しない場合、 Attendee の複雑さはO(n2)��(��2)であると決定されます。の場合、それは 3 つの行列QK⊤V��⊤��の乗算であり、行列の乗算は結合率を満たすため、最初にK⊤V��⊤�� を計算してd×d�� × �� を取得できます。 d «n�≪� であるため、この計算のおおよその複雑さは O(n)�(�) だけです(つまりQ�� の左乗算のステップ)支配します)。

言い換えれば、Softmax のアテンションを削除する複雑さは、最も理想的な線形レベルO(n)�(�)まで削減できます。これは明らかに私たちの究極の追求です。線形の注意、線形レベルの複雑さを伴う注意です。したがって、この記事のテーマは、Softmax を削除した後の線形アテンションを調査することです。

一般的な定義 #

問題は、Softmax を削除することがアテンションとみなされるかということです。標準のアテンションの効果はまだ得られますか? この質問に答えるために、まず Scaled-Dot Attendance の定義(1) (1)を等価に書き換えます (この記事のベクトルはすべて列ベクトルです)。

注意(Q,K,V)i=∑j=1neq⊤ikvj∑j=1neq⊤...(2)(2)����������(�,�,�)�=∑�=1 ����⊤����∑�=1����⊤��

したがって、Scaled-Dot Attendance は、実際には、重みとしてeq⊤ik����⊤�� を使用したvj�� の加重平均です。したがって、注意の一般化された定義を提案できます。
注意(Q,K,V)i=∑j=1nsim(qi,kj)vj∑j=1nsim(qi,kj)(3)(3)����������(�,�,� )�=∑�=1�sim(��,��)��∑�=1�sim(��,��)

つまり、eq⊤ik����⊤�� を qi,kj��, �� の一般関数sim(qi,kj)sim(��,��)に置き換えます。注意点としては、sim(qi,kj)≥0 sim(��,��)≥0 が常に成立することが必要です。言い換えれば、新しいタイプのアテンションを定義したい場合は、式(3) (3)の形式を維持し、 sim(qi,kj)≥0sim(��,��)≥0を満たす必要があります

この一般的な形式のアテンションは、論文「非ローカル ニューラル ネットワーク」から、 CV の非ローカル ネットワークとしても知られています。

いくつかの例 #

Softmax が直接削除される場合、sim(qi,kj)=q⊤iksim(��,��)=��⊤�� になります。問題は、内積が非負であることを保証できないため、これは合理的ではありません。選択。以下に、考えられるいくつかのオプションを簡単に紹介します。

以下に紹介するリニア アテンションの種類のうち、最初の 2 つは CV 分野のもので、3 つ目は著者自身が考案したものであるため、NLP タスクについては実験を行っていないことを指摘しておきます。改善実験的な方向性あります(^_^)~~ちなみに、CV分野のAttentionの改善点は数多くあり(下記以外にもEMANet等もあります)、価値のあるものが多いです。 NLPの読書。

カーネル関数形式 #

自然な考え方としては、qi,kj��, �� の各要素が非負であれば、内積も当然非負になるというものです。これを達成するために、活性化関数ϕ, φ�� , �� をそれぞれ �� に追加できます。

sim(qi,kj)=ϕ(qi)⊤φ(kj)(4)(4)sim(��,��)=�(��)⊤�(��)

ここで、φ(⋅)、φ(⋅)�(⋅),�(⋅) は非負の範囲の活性化関数です。この記事の冒頭で述べた論文「トランスフォーマーは RNN: 線形アテンションを備えた高速自己回帰トランスフォーマー」では、φ(x)=φ(x)=elu(x)+1�(�)=�(�)=elu( )+1

ストーリーを語らなければならない場合、式(4) (4)は、特にϕ=ϕ�= �、ϕ�がカーネル関数に相当し、<ϕ(qi), ϕの場合、「カーネル法」に関連付けることができます。(kj)><�(��),�(��)>はカーネル関数によって定義される内積です。この点について考えるには、論文「トランスフォーマーの解剖: カーネルのレンズを介したトランスフォーマーの注意に対する統一された理解」を参照できますが、ここではあまり拡張しません。

ソフトマックスの魔法の使い方 #

以前の別の記事「効率的な注意: 線形複雑性による注意」では、より興味深い選択肢が提供されています。QK⊤��⊤ , Q,K,∈Rn×d�,�,∈��× �� において、 「 Q� はd�正規化され、 K� は n� で正規化されている場合、その 1 つの次元は正規化されている」ことに注目します。この場合、QK⊤��⊤は正規化で自動的に満たされるため、次の選択肢が得られます。

注意(Q,K,V)=softmax2(Q)softmax1(K)⊤V(5)(5)����������(�,�,�)=�������2 (�)��������1(�)⊤�

このうち、softmax1������1Softmax2������2は、それぞれ1 次元目 ( n�� ) と 2 次元目 ( d�� )での Softmax 演算を指します。つまり、このとき、QK⊤��⊤を計算した後にSoftmaxを加えるSoftmaxを加えます

ϕ(qi)=softmax(qi),φ(kj)=softmax(kj)�(��)=��������(��),�(��)=��を直接取ると��(��)の場合、明らかにこの形式も式(4) (4)の特殊なケースです。さらに、このデザインは CV などで複数回登場しており、A2-Netsにも同じアプローチが含まれています。

自分のアイデア #

ここで著者は独自の考えを述べます。このアイデアの出発点は、もはや式(4) (4)ではなく、元の定義(2) (2)への近似から来ています。Taylor によって拡張されたものです。

eq⊤iq≈1+q⊤iq(6)(6)����⊤��≈1+��⊤��

q⊤iq≥−1��⊤��≥−1の場合、右辺の非負性が保証され、sim(qi,kj)=1+q⊤iqsim(��, )= 1+��⊤��この時点で、読者はすでに考えているかもしれませんが、 q⊤iq≥−1��⊤��≥−1を保証したい場合は、 qi , kj��, � に対してl2.2正規化を実行するだけで済みます。それぞれ� したがって、著者の最終的な解決策は次のとおりです。
sim(qi,kj)=1+(qi∥qi∥)⊤(kj∥kj∥)(7)(7)sim(��,��)=1+(��‖��‖)⊤(� ��������)

これは(4) (4)の形式とは異なりますが、理論的には元の Scaled-Dot Attendance に近いです。

関連作品 #

Attendance の形式を変更して計算の複雑さを軽減することにより、多くの関連研究が行われています。ここにいくつかの簡単なリストを示します。

まばらな注意力 #

以前にOpenAIのSparse Attendanceを導入しました。これは、「狭い領域の値のみを保持し、ほとんどの注意力を強制的にゼロにする」ことで、注意力の計算量を削減します。特別な設計の後、アテンション行列のほとんどの要素は 0 になるため、理論的にはメモリ使用量と計算も節約できます。フォローアップの同様の作品には、「Explicit Sparse Transformer: Concentrated Attendant Through Explicit Selection」「Longformer: The Long-Document Transformer」などが含まれます。

しかし、この考え方には明らかに 2 つの欠点があります。

1. 予約する注目領域をどのように選択するかは、多くの知性を伴わない人工的な主観によって決定されます。

2. 効率的な実装を実現するにはプログラミングによる特定の設計の最適化が必要なため、推進するのは簡単ではありません。

リフォーマー #

Reformerも代表的な改善作業であり、Attendant to O(nlogn)�(�log⁡�)の複雑さを軽減しますある意味、Reformer は一種のスパース アテンションでもありますが、そのスパース パターンが事前に指定されていない点が異なりますが、LSH (局所性敏感ハッシュ) テクノロジーを使用して (おおよそ) 最大数のアテンション値をすばやく見つけて、計算するだけです。それらのいくつかの値。さらに、Reformer は可逆 FFN (フィードフォワード ネットワーク) を構築することで元の FFN を置き換え、バックプロパゲーション プロセスを再設計することでメモリ使用量を削減します。

したがって、前述の疎なアテンションと比較すると、Reformer は最初の欠点を解決しますが、実装がより複雑であるという 2 番目の欠点がまだあります。LSH形式のアテンションを実現することは、標準的なアテンションよりもはるかに複雑であり、可逆ネットワークのバックプロパゲーションプロセスを書き直すことは、一般の読者にはさらに手の届かないものです~

リンフォーマー #

この記事で紹介したリニア アテンションに似た作品は、最近 Facebook によってリリースされたLinformerです。オリジナルの Scaled-Dot アテンション フォームをまだ保持していますが、アテンションの前に、2 つのm×n� × � 行列E, F� , � が使用されています。それぞれK、V�、 � を次のように

注意(Q,K,V)=softmax(Q(EK)⊤)FV(8)(8)����������(��,�,�)=�������(� (��)⊤)��

このように、Q(EK)⊤�(��)⊤ は単なるn×m� × � 行列であり、著者らは、シーケンス長が長くてもn�m�を適度な定数として維持できると主張しています。この注意も直線的です。Linformer と同様のアイデアは、以前の CV 論文「セマンティック セグメンテーションのための非対称非ローカル ニューラル ネットワーク」にも登場しました。

しかし、著者は、「超長いシーケンスでは m�� は変化しない」という結論には疑問があると考えています。長いシーケンスの場合、元の論文は MLM タスクのみを実行しており、MLM が長距離を必要としないことは明らかです依存関係があるため、この実験は説得力がありません。したがって、リンフォーマーが本当に線形であるかどうかは依然として疑問の余地があります。

自己回帰生成 #

Linformer のもう 1 つの欠点は、EK、FV��、�� の 2 つの操作がシーケンス全体の情報を直接「混合」するため、単純に将来の情報をマスク (因果マスキング) に与えることができないため、言語を実行できないことです。モデル、Seq2Seq、その他の自己回帰生成タスク。これが、元の作成者が MLM タスクのみを実行したと述べた理由です。対照的に、この記事で紹介したいくつかのリニア アテンションはこれを行うことができます。(3) (3)と式(4) (4)を例にとると、将来の情報をマスクアウトしたい場合は、和の∑j=1n∑�=1� を∑j=1iに変更するだけで済みます。 ∑�= 1. :

注意(Q,K,V)i=∑j=1i(ϕ(qi)⊤φ(kj))vj∑j=1iϕ(qi)⊤φ(kj)=ϕ(qi)⊤∑j=1iφ(kj )v⊤jϕ(qi)⊤∑j=1iφ(kj)(9)(9)����������(�,�,�)�=∑�=1�(�(�� ) ⊤�(��))��∑�=1��(��)⊤�(��)=��(��)⊤∑�=1��(��)�⊤�(�� ) ⊤∑�=1��(��)

上の式を実現するには 2 つの方法があります。1 つ目の方法は、Si=∑j=1iφ(kj)v⊤j��=∑��=1��(��)��⊤およびzi=∑jと設定することです。 =1iφ(kj )��=∑��=1��(��)
注意(Q,K,V)i=ϕ(qi)⊤Siϕ(qi)⊤zi,Si=Si−1+φ(ki)v⊤izi=zi−1+φ(ki)(10)(10) ��������(�,�,�)�=�(��)⊤����(��)⊤��,��=��−1+��(��)�� ⊤ ��=��−1+��(��)

周知のとおり、アテンション メカニズムに基づく Transformer クラス モデルは並列パフォーマンスが優れていますが、その空間計算量と時間計算量は両方ともO(n2)�(�2)レベルであり、n�はシーケンスの長さであるため、n�が比較的大きい このとき、Transformer モデルの計算量は耐えられません。最近では、モデルの枝刈り、量子化、蒸留、その他の合理化手法など、Transformer モデルの計算量を削減することや、複雑さを O(nlogn) に軽減できるように Attend 構造を変更することなど、多くの作業が行われています。 �( �log⁡� )またはO(n)�(�)

数日前、著者は「トランスフォーマーは RNN です: 線形アテンションを備えた高速自己回帰トランスフォーマー」という論文を読み、線形アテンション (Linear Attendant)の探索ポイントについて学び、その後いくつかの関連文献を読み、いくつかの良い結果を得ました。線形化されたアテンションの理解については、この記事にまとめられています。

注意 番号

現在、最も人気のあるアテンション メカニズムは、次の形式のScaled-Dot アテンションです。

注意(Q,K,V)=ソフトマックス(QK⊤)V(1)(1)��������(��,�,�)=��������(��⊤) �

ここでQ∈Rn×dk,K∈Rm×dk,V∈Rm×dv�∈��×��,��∈��×��,�∈��× ��,明示的に書き出しません。アテンションの倍率。本稿では主に Self Attend シナリオを扱うため、導入の便宜上、Q,K,V∈Rn×d�,�,�∈��×� を一律に設定しますn>d�> � またはn» d�>> � ( BERT ベースではd=64�=64 )。関連する解釈については、著者の「Attending is All You Need」の浅い読み物 (導入 + コード)を参照してください。また、その改善作業の一部は、「ボトルネックを突破し、より強力なトランスフォーマーを構築する」「Google の新しいシンセサイザー」も参照できます。:私たちはSelf-attentionを十分に知らない」ので、ここでは詳しく紹介しません。

ソフトマックスを削除 #

読者は、アテンションのパフォーマンスを制限する重要な要素が、実際には定義内のソフトマックスであるとは考えていないかもしれません。実際、簡単な導出でこの結論に達することができます。QK⊤��⊤のこのステップでは、 n×n��× �� の行列を取得します。このステップでは、Softmax が存在しない場合、 Attendee の複雑さはO(n2)��(��2)であると決定されます。の場合、これは 3 つの行列QK⊤V��⊤��の乗算であり、行列の乗算は結合率を満たすため、まずK⊤V��⊤�� を計算してd×d�� × �� を取得できます。 d «n�≪� であるため、この計算のおおよその複雑さは O(n)�(�) だけです(つまりQ�� の左乗算のステップ)支配します)。

言い換えれば、Softmax のアテンションを削除する複雑さは、最も理想的な線形レベルO(n)�(�)まで削減できます。これは明らかに私たちの究極の追求です。線形の注意、線形レベルの複雑さを伴う注意です。したがって、この記事のテーマは、Softmax を削除した後の線形アテンションを調査することです。

一般的な定義 #

問題は、Softmax を削除することがアテンションとみなされるかということです。標準のアテンションの効果はまだ得られますか? この質問に答えるために、まず Scaled-Dot Attendance の定義(1) (1)を等価に書き換えます (この記事のベクトルはすべて列ベクトルです)。

注意(Q,K,V)i=∑j=1neq⊤ikvj∑j=1neq⊤...(2)(2)����������(�,�,�)�=∑�=1 ����⊤����∑�=1����⊤��

したがって、Scaled-Dot Attendance は、実際には、重みとしてeq⊤ik����⊤�� を使用したvj�� の加重平均です。したがって、注意の一般化された定義を提案できます。
注意(Q,K,V)i=∑j=1nsim(qi,kj)vj∑j=1nsim(qi,kj)(3)(3)����������(�,�,� )�=∑�=1�sim(��,��)��∑�=1�sim(��,��)

つまり、eq⊤ik����⊤�� を qi,kj��, �� の一般関数sim(qi,kj)sim(��,��)に置き換えます。注意点としては、sim(qi,kj)≥0 sim(��,��)≥0 が常に成立することが必要です。言い換えれば、新しいタイプのアテンションを定義したい場合は、式(3) (3)の形式を維持し、 sim(qi,kj)≥0sim(��,��)≥0を満たす必要があります

この一般的な形式のアテンションは、論文「非ローカル ニューラル ネットワーク」から、 CV の非ローカル ネットワークとしても知られています。

いくつかの例 #

Softmax が直接削除される場合、sim(qi,kj)=q⊤iksim(��,��)=��⊤�� になります。問題は、内積が非負であることを保証できないため、これは合理的ではありません。選択。以下に、考えられるいくつかのオプションを簡単に紹介します。

以下に紹介するリニア アテンションの種類のうち、最初の 2 つは CV 分野のもので、3 つ目は著者自身が考案したものであるため、NLP タスクについては実験を行っていないことを指摘しておきます。改善実験的な方向性あります(^_^)~~ちなみに、CV分野のAttentionの改善点は数多くあり(下記以外にもEMANet等もあります)、価値のあるものが多いです。 NLPの読書。

カーネル関数形式 #

自然な考え方としては、qi,kj��, �� の各要素が非負であれば、内積も当然非負になるというものです。これを達成するために、活性化関数ϕ, φ�� , �� をそれぞれ �� に追加できます。

sim(qi,kj)=ϕ(qi)⊤φ(kj)(4)(4)sim(��,��)=�(��)⊤�(��)

ここで、φ(⋅)、φ(⋅)�(⋅),�(⋅) は非負の範囲の活性化関数です。この記事の冒頭で述べた論文「トランスフォーマーは RNN: 線形アテンションを備えた高速自己回帰トランスフォーマー」では、φ(x)=φ(x)=elu(x)+1�(�)=�(�)=elu( )+1

ストーリーを語らなければならない場合、式(4) (4)は、特にϕ=ϕ�= �、ϕ�がカーネル関数に相当し、<ϕ(qi), ϕの場合、「カーネル法」に関連付けることができます。(kj)><�(��),�(��)>はカーネル関数によって定義される内積です。この点について考えるには、論文「トランスフォーマーの解剖: カーネルのレンズを介したトランスフォーマーの注意に対する統一された理解」を参照できますが、ここではあまり拡張しません。

ソフトマックスの魔法の使い方 #

以前の別の記事「効率的な注意: 線形複雑性による注意」では、より興味深い選択肢が提供されています。QK⊤��⊤ , Q,K,∈Rn×d�,�,∈��× �� において、 「 Q� はd�正規化され、 K� は n� で正規化されている場合、その 1 つの次元は正規化されている」ことに注目します。この場合、QK⊤��⊤は正規化で自動的に満たされるため、次の選択肢が得られます。

注意(Q,K,V)=softmax2(Q)softmax1(K)⊤V(5)(5)����������(�,�,�)=�������2 (�)��������1(�)⊤�

このうち、softmax1������1Softmax2������2は、それぞれ1 次元目 ( n�� ) と 2 次元目 ( d�� )での Softmax 演算を指します。つまり、このとき、QK⊤��⊤を計算した後にSoftmaxを加えるSoftmaxを加えます

ϕ(qi)=softmax(qi),φ(kj)=softmax(kj)�(��)=��������(��),�(��)=��を直接取ると��(��)の場合、明らかにこの形式も式(4) (4)の特殊なケースです。さらに、このデザインは CV などで複数回登場しており、A2-Netsにも同じアプローチが含まれています。

自分のアイデア #

ここで著者は独自の考えを述べます。このアイデアの出発点は、もはや式(4) (4)ではなく、元の定義(2) (2)への近似から来ています。Taylor によって拡張されたものです。

eq⊤iq≈1+q⊤iq(6)(6)����⊤��≈1+��⊤��

q⊤iq≥−1��⊤��≥−1の場合、右辺の非負性が保証され、sim(qi,kj)=1+q⊤iqsim(��, )= 1+��⊤��この時点で、読者はすでに考えているかもしれませんが、 q⊤iq≥−1��⊤��≥−1を保証したい場合は、 qi , kj��, � に対してl2.2正規化を実行するだけで済みます。それぞれ� したがって、著者の最終的な解決策は次のとおりです。
sim(qi,kj)=1+(qi∥qi∥)⊤(kj∥kj∥)(7)(7)sim(��,��)=1+(��‖��‖)⊤(� ��������)

これは(4) (4)の形式とは異なりますが、理論的には元の Scaled-Dot Attendance に近いです。

関連作品 #

Attendance の形式を変更して計算の複雑さを軽減することにより、多くの関連研究が行われています。ここにいくつかの簡単なリストを示します。

まばらな注意力 #

以前にOpenAIのSparse Attendanceを導入しました。これは、「狭い領域の値のみを保持し、ほとんどの注意力を強制的にゼロにする」ことで、注意力の計算量を削減します。特別な設計の後、アテンション行列のほとんどの要素は 0 になるため、理論的にはメモリ使用量と計算も節約できます。フォローアップの同様の作品には、「Explicit Sparse Transformer: Concentrated Attendant Through Explicit Selection」「Longformer: The Long-Document Transformer」などが含まれます。

しかし、この考え方には明らかに 2 つの欠点があります。

1. 予約する注目領域をどのように選択するかは、多くの知性を伴わない人工的な主観によって決定されます。

2. 効率的な実装を実現するにはプログラミングによる特定の設計の最適化が必要なため、推進するのは簡単ではありません。

リフォーマー #

Reformerも代表的な改善作業であり、Attendant to O(nlogn)�(�log⁡�)の複雑さを軽減しますある意味、Reformer は一種のスパース アテンションでもありますが、そのスパース パターンが事前に指定されていない点が異なりますが、LSH (局所性敏感ハッシュ) テクノロジーを使用して (おおよそ) 最大数のアテンション値をすばやく見つけて、計算するだけです。それらのいくつかの値。さらに、Reformer は可逆 FFN (フィードフォワード ネットワーク) を構築することで元の FFN を置き換え、バックプロパゲーション プロセスを再設計することでメモリ使用量を削減します。

したがって、前述の疎なアテンションと比較すると、Reformer は最初の欠点を解決しますが、実装がより複雑であるという 2 番目の欠点がまだあります。LSH形式のアテンションを実現することは、標準的なアテンションよりもはるかに複雑であり、可逆ネットワークのバックプロパゲーションプロセスを書き直すことは、一般の読者にはさらに手の届かないものです~

リンフォーマー #

この記事で紹介したリニア アテンションに似た作品は、最近 Facebook によってリリースされたLinformerです。オリジナルの Scaled-Dot アテンション フォームをまだ保持していますが、アテンションの前に、2 つのm×n� × � 行列E, F� , � が使用されています。それぞれK、V�、 � を次のように

注意(Q,K,V)=softmax(Q(EK)⊤)FV(8)(8)����������(��,�,�)=�������(� (��)⊤)��

このように、Q(EK)⊤�(��)⊤ は単なるn×m� × � 行列であり、著者らは、シーケンス長が長くてもn�m�を適度な定数として維持できると主張しています。この注意も直線的です。Linformer と同様のアイデアは、以前の CV 論文「セマンティック セグメンテーションのための非対称非ローカル ニューラル ネットワーク」にも登場しました。

しかし、著者は、「超長いシーケンスでは m�� は変化しない」という結論には疑問があると考えています。長いシーケンスの場合、元の論文は MLM タスクのみを実行しており、MLM が長距離を必要としないことは明らかです依存関係があるため、この実験は説得力がありません。したがって、リンフォーマーが本当に線形であるかどうかは依然として疑問の余地があります。

自己回帰生成 #

Linformer のもう 1 つの欠点は、EK、FV��、�� の 2 つの操作がシーケンス全体の情報を直接「混合」するため、単純に将来の情報をマスク (因果マスキング) に与えることができないため、言語を実行できないことです。モデル、Seq2Seq、その他の自己回帰生成タスク。これが、元の作成者が MLM タスクのみを実行したと述べた理由です。対照的に、この記事で紹介したいくつかのリニア アテンションはこれを行うことができます。(3) (3)と式(4) (4)を例にとると、将来の情報をマスクアウトしたい場合は、和の∑j=1n∑�=1� を∑j=1iに変更するだけで済みます。 ∑�= 1. :

注意(Q,K,V)i=∑j=1i(ϕ(qi)⊤φ(kj))vj∑j=1iϕ(qi)⊤φ(kj)=ϕ(qi)⊤∑j=1iφ(kj )v⊤jϕ(qi)⊤∑j=1iφ(kj)(9)(9)����������(�,�,�)�=∑�=1�(�(�� ) ⊤�(��))��∑�=1��(��)⊤�(��)=��(��)⊤∑�=1��(��)�⊤�(�� ) ⊤∑�=1��(��)

上の式を実現するには 2 つの方法があります。1 つ目の方法は、Si=∑j=1iφ(kj)v⊤j��=∑��=1��(��)��⊤およびzi=∑jと設定することです。 =1iφ(kj )��=∑��=1��(��)
注意(Q,K,V)i=ϕ(qi)⊤Siϕ(qi)⊤zi,Si=Si−1+φ(ki)v⊤izi=zi−1+φ(ki)(10)(10) ��������(�,�,�)�=�(��)⊤����(��)⊤��,��=��−1+��(��)�� ⊤ ��=��−1+��(��)

これは、この種のアテンションが再帰的な方法で RNN モデルとして実装できることを示しています。空間計算量は最も低いですが、シリアル計算が必要であり、予測デコードでの使用に適しています。2 つ目は、φ(K) を直接使用することです。 , V∈Rn × d�(�),��∈��×�の外積を実行してn×d×d�×��× �の行列を取得し、 nの次元でcumsumcumsum演算を実行します。 、 S1 と S2 を一度に取得できるように、…、Sn�1,��2,…,�は最速ですが、最大のスペースを占有し、トレーニングに適していますが、多くの場合、 d2≫n�2が存在します。 ≫�、一般に、トレーニングする場合、この空間の複雑さに耐えることは困難であるため、ほとんどの場合、依然として RNN 形式が使用されます。

ダウンサンプリング手法 #

この結果から、LinformerのEK,FV��,��は系列を短くする(ダウンサンプリング)ことであり、系列を短くする最も簡単な方法はPoolingであるため、筆者も以前Pooling技術を使ってみたことがありますが、Transformerに導入されました。IBM の「PoWER-BERT: Accelerated BERT Inference via Progressive Word-vector Elimination」や Google の「Funnel-Transformer: Filtering out Sequential Redundancy for Efficient Language Processing」など、同様の研究が最近発行されました実際には、プーリングに加えて、ストライド > 1 の 1 次元コンボリューションなど、他のダウンサンプリング手法もあります。この考えに基づいて、FFN の Position-Wise 完全接続をストライド > 1 に置き換えることができるかもしれません。つまり、この側面では多くのトリックを実行できるはずですが、Linformer と同様に、そのような組み合わせの後に自動回帰生成を行うのは非常に困難です。

記事の概要 #

この記事では、計算の複雑さを軽減するためにアテンションを構造的に変更するいくつかの作業を紹介します。主なアイデアは、アテンションの複雑さを理想的な O(n) に低下させる可能性がある、標準のアテンションのソフトマックスを削除することです。( �) レベル (線形アテンション) )。構造を改善する他の同様の作業と比較して、この変更は複雑さをO(n)�(�)に減らすことができ、同時にすべての「トークン間」の注意を維持しながら、自己回帰生成を行う可能性のために の使用を維持します。

これは、この種のアテンションが再帰的な方法で RNN モデルとして実装できることを示しています。空間計算量は最も低いですが、シリアル計算が必要であり、予測デコードでの使用に適しています。2 つ目は、φ(K) を直接使用することです。 , V∈Rn × d�(�),��∈��×�の外積を実行してn×d×d�×��× �の行列を取得し、 nの次元でcumsumcumsum演算を実行します。 、 S1 と S2 を一度に取得できるように、…、Sn�1,��2,…,�は最速ですが、最大のスペースを占有し、トレーニングに適していますが、多くの場合、 d2≫n�2が存在します。 ≫�、一般に、トレーニングする場合、この空間の複雑さに耐えることは困難であるため、ほとんどの場合、依然として RNN 形式が使用されます。

ダウンサンプリング手法 #

この結果から、LinformerのEK,FV��,��は系列を短くする(ダウンサンプリング)ことであり、系列を短くする最も簡単な方法はPoolingであるため、筆者も以前Pooling技術を使ってみたことがありますが、Transformerに導入されました。IBM の「PoWER-BERT: Accelerated BERT Inference via Progressive Word-vector Elimination」や Google の「Funnel-Transformer: Filtering out Sequential Redundancy for Efficient Language Processing」など、同様の研究が最近発行されました実際には、プーリングに加えて、ストライド > 1 の 1 次元コンボリューションなど、他のダウンサンプリング手法もあります。この考えに基づいて、FFN の Position-Wise 完全接続をストライド > 1 に置き換えることができるかもしれません。つまり、この側面では多くのトリックを実行できるはずですが、Linformer と同様に、そのような組み合わせの後に自動回帰生成を行うのは非常に困難です。

記事の概要 #

この記事では、計算の複雑さを軽減するためにアテンションを構造的に変更するいくつかの作業を紹介します。主なアイデアは、アテンションの複雑さを理想的な O(n) に低下させる可能性がある、標準のアテンションのソフトマックスを削除することです。( �) レベル (線形アテンション) )。構造を改善する他の同様の作業と比較して、この変更は複雑さをO(n)�(�)に減らすことができ、同時にすべての「トークン間」の注意を維持しながら、自己回帰生成を行う可能性のために の使用を維持します。

 

 

おすすめ

転載: blog.csdn.net/sinat_37574187/article/details/132265469