e4exp / paper_manager_abstract

0 stars 0 forks source link

PermuteFormer: Efficient Relative Position Encoding for Long Sequences #631

Open e4exp opened 2 years ago

e4exp commented 2 years ago

最近のTransformerのバリエーションであるPerformerは、Transformerを直線的な注目メカニズムでより長いシーケンスに対応させています。 しかし、Performerは、絶対位置エンコーディングよりも優れている相対位置エンコーディングに対応していません。 この論文では、Performerに相対位置エンコーディングを追加するための可能な方法を議論します。 本論文では、Performerに相対位置エンコーディングを追加する方法を検討し、Performerに相対位置エンコーディングを追加したモデルであるPermuteFormerを提案します(長いシーケンスでは線形にスケールする)。 PermuteFormerは、クエリとキーに位置依存の変換を適用して、位置情報を注意モジュールにエンコードします。 この変換は、自己注意の最終的な出力がトークンの絶対的な位置に影響されないように注意深く作られています。 PermuteFormerは、Performerと同等の速度で動作するように設計されており、計算上のオーバーヘッドはごくわずかです。 PermuteFormerを、長い配列のデータセットであるLong-Range Arenaと、言語モデリングのデータセットであるWikiText-103で評価しました。 実験の結果、PermuteFormerはほとんど計算上のオーバーヘッドなしにPerformerの性能を一様に向上させ、ほとんどのタスクでvanilla Transformerを上回ることがわかりました。

e4exp commented 2 years ago

1 はじめに

Transformerアーキテクチャ(Vaswani et al., 2017)は、自然言語処理(Devlin et al., 2019; Raffel et al., 2020)、音声処理(Baevski et al., 2020)、画像処理(Dosovitskiy et al., 2020; Tan and Bansal, 2019)など、さまざまな研究分野で最先端を達成しています。 しかし、Transformerは、Transformerにおける注意モジュールの時間複雑性とメモリ複雑性がともにシーケンス長に対して二次的であるため、長いシーケンスに対してうまくスケールしない。 近年、性能を大きく損なうことなくモデルを二次複雑性から線形複雑性に高速化するために、いくつかの効率的なTransformer(Kitaevら、2020年、Wangら、2020年、Zaheerら、2020年、Xiongら、2021年)が提案されている。 一般的に、これらは注目を近似するために効率的なアルゴリズムを利用しています。 §2では、これらの効率的なTransformerを簡単に紹介し、より詳細なレビューはTay et al.(2020c)にあります。 これらの効率的なTransformerの中でも、Performer (Choromanski et al., 2020)が最も高速であることが示唆されている(Tay et al., 2020b)。 本稿では、Choromanskiら(2020)に類似した効率的なTransformerのファミリー、例えば、Choromanskiら(2020)そのものだけでなく、Katharopoulosら(2020)、Pengら(2021)、Kasaiら(2021)、Likhosherstovら(2020)をPerformerと表記する。

Performerはカーネル法を用いて、注目度の重みを明示的に計算しないようにしています。 非線形特徴マップをクエリとキーに適用して、クエリ特徴とキー特徴をそれぞれ取得し、ソフトマックスを適用せずにクエリ特徴、キー特徴、値を直接乗算します。 マトリックスの乗算の順序を適切にすることで、Performerはシーケンス長の線形の複雑さを実現します。 さらに、一方向性のPerformer (Likhosherstov et al., 2020)の実装では、学習時と推論時の両方でメモリフットプリントを一定にすることさえできる。 Performerは線形の複雑さに注意を加速させるが、既存の相対的な位置のエンコーディング(Shaw et al., 2018; Dai et al., 2019; Raffel et al., 2020)は、依然として配列長に関して2次的な複雑さを持っている。 そのため、Performerは、最先端のTransformerの束ではすでに一般的になっている相対位置エンコーディングの恩恵を受けることができません(Yang et al., 2019; Raffel et al., 2020; He et al.

相対位置の符号化は、絶対位置の符号化に比べていくつかの利点がある。

(1) 相対位置符号化は、学習データセットによる制限を受けることなく、任意の長さの配列に適用することができる。 (2) 相対的位置符号化は、絶対的位置符号化よりも効率的かつ効果的である。(Shaw et al., 2018)

Performer以外にも、既存の相対的な位置のエンコーディングは、他の効率的なTransformerにも適合しない。 いくつかの相対位置エンコーディング(Raffel et al., 2020)は注目行列にバイアスを加え、他のエンコーディング(Shaw et al., 2018; Dai et al., 2019)はキーベクトルに相対位置に依存したバイアスを加える。 どちらも、クエリベクトルとキーベクトルの間のドット積を明示的に計算する必要があります。 これは、クエリベクターとキーベクターの間のドット積の明示的な計算を回避することで計算の複雑さを軽減するため、セクション2で説明した効率的なトランスフォーマーの第2および第3のカテゴリーと相反する。 第1のカテゴリーの効率的なTransformerに関しては、Kitaevら(2020)のLSHは、相対的な位置のエンコーディングが存在する場合、主要な注目度の重みを見つけられない可能性がある。 Zaheerら(2020)とBeltagyら(2020)は、他のトークンとの相対的な位置が定義されていないグローバルトークンに大きく依存している。

本論文では、Performerと互換性のある、長い配列に対して線形にスケーリングする相対位置エンコーディングを提案します。 この新しい相対位置エンコーディングを搭載したPerformerをPermuteFormerと呼びます。PermuteFormerは、位置情報をエンコードするために、クエリ特徴とキー特徴に位置を考慮した変換を適用します。 具体的には、ランダムな順列π : {1, 2, - - , d} → {1, 2, - - , d}を選択し、i番目のトークンのクエリ/キーフィーチャーに順列をi回適用します2 .dはattention headごとのquery/keyの次元数

このようにして、位置情報を注目度にエンコードします。 トークンのクエリ特徴とキー特徴に適用される変換は、その絶対位置に依存しますが、クエリ特徴とキー特徴のドット積を計算する際に、絶対位置の影響が互いに打ち消し合うことを証明します。 そのため、最終的な注目度の重みは絶対位置に依存せず、PermuteFormerは相対位置のみを符号化します。 PermuteFormerはPerformerと同じくらい効率的で、計算上のオーバーヘッドはごくわずかです。 問い合わせ特徴量や主要特徴量のPermutingは、そのサイズに比例した計算量で、効率的に実装できる。 サイズはモデル全体の計算複雑度よりもはるかに小さいため、PermuteFormerの順列化のコストはPerformerの全体の計算コストと比較して無視できるレベルです。

上記の分析は、実験結果によっても確認されています。 PermuteFormerの評価は、双方向の場合はLong-Range Arena (Tay et al., 2020b)で、一方向の場合はWikiText-103 (Merity et al., 2017)で行っています。 Long-Range Arenaは、長い配列で効率的なTransformerを評価するために設計されたベンチマークです。 新しい相対位置エンコーディングにより、Long-Range ArenaでPermuteFormerの性能が大幅に向上することがわかりました。 PermuteFormerはPerformerよりも優れているだけでなく、vanilla Transformerや、他の効率的なTransformer(例:Kitaev et al (2020); Wang et al (2020); Xiong et al (2021))よりも優れています。 WikiText-103は言語モデリングのデータセットです。 PermuteFormerは、WikiText-103において、PerformerとTransformerの性能差を縮めます。 また、モデルの収束を早めることができます。

貢献度

本論文の主な貢献度は以下のようにまとめられる。

e4exp commented 2 years ago

image

図1:Transformer、Performer、PermuteFormerにおける注意。 注意はいずれも複数の頭で構成されていますが、わかりやすくするために1つの頭だけを図示しています。 Transformerでは、クエリとキーのドット積にソフトマックスを適用してアテンションマトリクスを得て、アテンションマトリクスと値を掛け合わせてアテンションモジュールの出力を得ています。 Performerは、クエリとキーに非線形投影であるfeature mapを適用して、クエリの特徴とキーの特徴を得ます。 そして、クエリ特徴、キー特徴、値を右から左に掛け合わせます。 PermuteFormerは、クエリフィーチャーとキーフィーチャーに位置を考慮したパーミュテーションを適用し、Performerと同じように乗算を行います。 図では、各トークンのクエリーフィーチャーとキーフィーチャーがブロックの列として示されており、その要素は異なる色で示されています。 位置を考慮したパーミュテーションは、各トークンのクエリー/キーフィーチャの要素を、各アテンションヘッドのヘッドサイズ次元に沿ってパーミュテーションします。 トークンの位置に応じて、クエリ/キーフィーチャに適用されるパーミュテーションは異なります。 なお、PerformerとPermuteFormerでは、分母が分子よりも単純なため、式11の分子のみを図示しています。

e4exp commented 2 years ago

3 方法

Performerのアーキテクチャと互換性のある効率的な相対位置エンコーディングを提案する。 この新しい相対位置エンコーディングを採用したPerformerは、クエリフィーチャとキーフィーチャの要素を順列化して位置情報をエンコードすることから、PermuteFormerと名付けられました。 Vanilla Transformer、Performer、PermuteFormerの違いを図1に示します。 本節では、まずTransformerとPerformerを簡単に紹介し、次にPermuteFormerの詳細を説明します。 簡潔で分かりやすくするために、このセクションでは、複数ヘッドの注目の中の1つのヘッドに焦点を当てて説明します。 これらは、マルチヘッドアテンション全体に直接適用することができます。

3.1 TransformerとPerformer

このセクションでは、TransformerとPerformerのアテンションモジュールについて簡単に紹介します。 Transformerのアーキテクチャ(Vaswani et al., 2017)の他の部分は、PerformerとPermuteFormerでは変更されていないので省略します。 Transformerの注目モジュールは、ベクトル列{x in i }からのマッピングである。 L i=1から、同じ長さの別のベクトル列{x out i }へのマッピングです。 attentionモジュールでは、まず、入力ベクトルをquery、key、valueと名付けられた3つの表現に線形マッピングします。形式的には

image

ここで,Wq, Wk, Wv はそれぞれクエリ,キー,値の変換行列である.そして,クエリとキーの間の類似性が計算される.この類似性を正規化して,注目度の重み

image

ここで,sim(qi , kj ) は,ベクトル qi とベクトル kj の類似性を表します. 最後に,出力ベクトル x out i は,重み {αij}L i,j=1 を持つ値の加重和によって得られる.

image

Vanilla Transformer(Vaswani et al., 2017)では、クエリとキーの類似性指標として以下の関数を採用しています。

image

計算コストとメモリコストを削減するために、Performerの類似性関数はカーネルトリックで近似されています。

image

ここで、φ(-)は、あるモデル固有のmに対するR dからR mへの非線形特徴マップであるため、注目モジュールは次のように表すことができます。

image

ここでは、φ(qi)をクエリ特徴量、φ(ki)をキー特徴量と呼びます。 このようにして、O(L 2)個の注目重み行列が明示的に計算されないので、注目モジュールは、バニラ・トランスフォーマーのようなO(L 2)個の複雑さではなく、O(L)個の時間とメモリしかかかりません。 さまざまなPerformerは、マッピングφ(-)の選択によって異なります。 単純な作業用の選択は、ReLU関数φ(x) = max(x, 0) (Choromanski et al., 2020)です。

3.2 Performerの相対位置エンコーディング

このセクションでは、Performerに相対位置エンコーディングを追加することについて説明する。 位置情報をエンコードするために、類似性関数(式5)を修正することにした。 具体的には、クエリフィーチャとキーフィーチャに対して、位置に依存した線形変換のレイヤーを追加します。 これにより、類似性関数は次のようになります。

image

ここで,Mi , Nj∈R m×mは,トークンの位置iとjでパラメータ化された行列である。 類似性関数が絶対的な位置ではなく,相対的な位置にのみ依存するようにするために,Mi , Njは次のような性質を持つ必要がある。

プロパティ1(相対的)。

M> i Njはi-jの関数、つまりi - jにのみ依存する。 シーケンスの長さが大きくなるにつれて類似性関数が爆発しないように、プロパティ2(Bounded)を持つ。 双方向モデルでは、すべてのi, j∈Z, kM> i Njk < Bが存在し、一方向モデルでは、すべてのi > j∈Z, kM> i Njk < Bが存在する。 さらに、類似性関数は正でなければならず、そうでなければモデルは数値的に不安定になる。 類似度関数が正と負の間を行き来すると、場合によっては式2の分母がゼロで分子がゼロでないこともあり、注目モジュールの出力が無限大になってしまいます。 類似度関数を正の値に保つためには、単純だが効率的な解決策として、クエリ特徴とキー特徴のすべての要素を正の値にすることが挙げられる(Choromanski et al., 2020; Katharopoulos et al., 2020)。

特性3(正)。

行列MiとNjに対応する線形変換は、R m +をR m +に写す。 特性1の要件を満たすためには、M> i Njが特定の形でなければならないことを証明する。

命題1.

{Mi}_{i=-∞}^∞を一連のl×m行列とし、{Ni} ∞ i=-∞を一連のl×m行列とする。 このとき、M> i Njはi - jにしか依存しないが、 次のような整数l 0 、行列R∈R l 0×m、Q∈R l 0×n、反転可能な行列P∈R l 0×l 0が存在する場合には、そのようになる。

image

証明は付録にあります。この命題はMiとNjに追加の制約を課すものではありませんが、効果的には次のような場合だけを考えればよいことになります。

image

3.3 PermuteFormer

前節の分析に基づき、式9の特定のP、Q、Rを選択してPermuteFormerを導入する。特性2と特性3の制約を満たすために、PermuteFormerは次のような解法を選択する。

image

π : {1, 2, - - , m} → {1, 2, - - , m} は順列であり、Pπは対応する順列行列である。 (順列行列とは、各行と各列に正確に1のエントリを持ち、他の場所に0を持つ正方の2進行列です。順列πに対して、対応する順列行列Pπは、π(i)=jの場合はPπ,ij=1、それ以外の場合はPπ,ij=0となる行列である)。 注意ヘッドが異なれば、Pπとrが異なり、長期依存性と短期依存性の両方が捉えられることに注意してください。 式9、10を式7に代入すると、PermuteFormerの類似性関数が得られる

image

PermuteFormerは順列πの次数までの相対的な位置をエンコードすることができます。 Goh and Schmutz (1991)は、ランダムな順列の次数がヘッドサイズに応じて指数関数的に成長することを証明しています。 BERT-base(Devlin et al., 2019)と同じサイズのモデルでは、注目ヘッドごとのクエリ/キーの次元は64で、3000以上の平均次数に対応します。 PermuteFormerの長いシーケンスをエンコードする能力をさらに拡張するために、PermuteFormerがエンコードできる最長距離が、すべてのパーミュテーションのオーダーの最小公倍数になるように、異なるアテンションヘッドに対して異なるパーミュテーションを選択しており、ヘッドサイズが64のモデルでは最大1e27になります。 πは勾配法では最適化できない離散的なパラメータであるため、モデルのハイパーパラメータとして扱います。 πはニューラルネットワークの初期化時にランダムにサンプリングし、学習プロセス全体を通してその値を固定します。 πを学習することでモデルの性能が向上する可能性がありますが、PermuteFormerが動作するにはランダムな順列で十分であることがわかっているので、エネルギーを節約するためにπのチューニングは行いません。 一方、パラメータrは、勾配ベースの手法で最適化することができますが、我々はこれをハイパーパラメータとしても扱っています

3.4 計算コスト

本節では、PermuteFormerの計算コストを分析します。 PermuteFormerは、我々の知る限り、最も効率的なTransformer (Tay et al., 2020b)であるPerformerと同程度の速度です。 Lはシーケンスの長さを、Hはモデルのヘッドの数を、mはクエリ特徴とキー特徴のヘッドごとの隠れた次元を示すとします。 PermuteFormerによってもたらされる計算オーバーヘッドには,Pi πの計算,クエリ特徴とキー特徴に対する線形変換Pi πの適用,およびrの累乗の計算が含まれます. 我々の場合、次のようになります。

image

ここで、π iは順列πのi番目の累乗であり

image

これらのπ iを計算し、トレーニングや推論の前にキャッシュすることができます。 これには、O(LHm)時間とO(LHm)メモリが必要です。 Pi πは順列行列なので、面倒な行列とベクトルの乗算を行う必要はありません。 その代わりに、クエリ特徴とキー特徴のギャザー演算を行えばよい。 このギャザー演算のメモリと時間の複雑さは、クエリ特徴量とキー特徴量のサイズに等しく、すなわちO(LHm)となる。 スカラーrの累乗は簡単に計算できます。 したがって、PermuteFormerによってもたらされるオーバーヘッドの合計はO(LHm)となります。 Performerのアテンションの複雑さはO(LHm2 )なので、このオーバーヘッドは無視できる。

3.5 2次元の場合のトリック

最近、自然言語処理以外の分野でもトランスフォーマーベースのモデルが普及してきているので、PermuteFormerが画像やマルチモーダル文書などの二次元入力にも適用できることは注目に値します(Xu et al., 2020)。 2次元の入力を扱う素朴な方法としては、ベンチマークのTay et al.(2020b)の慣例に従うことです。 2次元空間のピクセルは、モデルに供給される前に、まず1次元のシーケンスにフラット化されます。 しかし、これでは相対的な位置のエンコードに問題が生じます。 1列目の右端のピクセルが2列目の左端のピクセルに隣接するようになるため、これらの2つの離れたピクセルの相対的な位置が1次元配列では非常に近くなりますが、これは正しくありません。 相対的な位置が間違っていることから、モデルが意味のあることを学習することはほとんど不可能です。 この問題を解決するために、PermuteFormerの注意を2D入力に適応させます。ピクセルの水平方向の位置に応じてクエリ/キーフィーチャの一部の要素を、垂直方向の位置に応じて他の要素を順列化します。より正確には、式11を次のように修正します。

image

ここで,(xi , yi), (xj , yj ) は,それぞれ i 番目と j 番目の画素の座標である. πxとπyは,互いに可換な2つの順列です.