1.1 トランスフォーマーの自己注意機構の計算複雑性

トランスフォーマーモデルの中核である自己注意機構(self-attention)は、入力シーケンスの各位置が他のすべての位置に対して注意重みを計算する。具体的には、長さnのシーケンスに対して、注意スコア行列はn×nのサイズとなり、その計算にはO(n²)の時間とメモリを要する。この二次的な複雑性は、シーケンス長が増大するにつれて急速に現実的でなくなる。

1.2 長シーケンス処理におけるスケーラビリティ問題

自然言語処理において、文書全体や会話履歴などの長大なシーケンス(数千~数万トークン)を扱うタスクでは、O(n²)の計算コストがボトルネックとなる。例えば、arXiv論文の要約や法律文書の解析では、数十万トークンに及ぶ場合があり、従来のトランスフォーマーではGPUメモリが不足するか、処理時間が非現実的になる。

1.3 既存の効率化手法の概要

Linformer以前から、効率的な注意機構を目指す研究が進められていた。代表的な手法として、注意行列をスパース化するSparse Transformer(Child et al., 2019)、局所的な窓に限定するReformer(Kitaev et al., 2020)、カーネル近似を用いるPerformer(Choromanski et al., 2020)などがある。しかし、これらの手法は精度と効率の間でトレードオフを抱えていた。

2.1 低ランク近似による注意行列の圧縮

Linformerの核心は、自己注意で計算されるn×nの注意行列Pが低ランク構造を持つという観察に基づく。つまり、Pの実効的なランクはnに比べてはるかに小さいため、Pを低ランク行列で近似できる。この近似により、注意行列のサイズをn×k(k≪n)に圧縮し、全体の計算量をO(nk)に低減する。

2.2 線形自己注意(linear self-attention)の定義

Linformerでは、従来のsoftmax注意力の式を以下のように変形する。まず、キー行列Kとバリュー行列Vをそれぞれ独立した投影行列E_kおよびE_v(サイズn×k)で線形変換する:K' = E_k^T K, V' = E_v^T V。その後、クエリQとK'の内積にsoftmaxを適用し、V'と掛け合わせる。これにより、注意出力はO(nk)で計算される。

2.3 投影行列の設計とパラメータ共有

2.3.1 キーとバリューに対する独立投影

キーとバリューにはそれぞれ異なる投影行列E_kとE_vを用いる。これにより、キーとバリューの情報を独立に圧縮でき、モデルの表現力を維持する。投影行列は学習可能なパラメータであり、訓練中に最適化される。

2.3.2 ヘッド間での投影行列共有

マルチヘッド注意において、各ヘッドで独立した投影行列を持つとパラメータ数が増加する。Linformerでは全ヘッドで同じ投影行列E_k, E_vを共有する設計が提案されている。この共有によりパラメータ効率が向上し、計算コストも削減される。

3.1 エンコーダーデコーダーへの適用

Linformerは基本的にエンコーダー側への適用を主眼としている。エンコーダーの自己注意層を線形自己注意に置き換える。デコーダーにおいては、因果マスク(未来の情報を見せない)が線形注意と組み合わせにくいため、そのまま適用するのは困難であり、多くの実験ではエンコーダーのみに使用される。

3.2 位置エンコーディングとの統合

LinformerはTransformerの位置エンコーディングとそのまま統合可能である。従来のsinusoidal位置エンコーディングや学習可能な位置埋め込みを入力に加えた後、線形自己注意を適用する。位置情報は投影後も保持されるため、シーケンス内の順序関係を失わない。

3.3 残差接続と層正規化の設計

Linformerの各注意層は、残差接続と層正規化を標準的なTransformerと同様に配置する。すなわち、出力=LayerNorm(x + Attention(x)) という構造を維持する。これにより、深いネットワークでも安定した訓練が可能となる。

4.1 注意行列の低ランク性の理論根拠

Linformerの論文では、softmax注意行列Pが経験的に低ランクであることを示し、理論的にはPのスペクトルが急速に減衰することを説明している。注意重みは多くの場合、少数の支配的な成分に集中するため、高ランク成分はノイズとして無視できる。

4.2 近似誤差の上界とシーケンス長への依存性

投影次元kを適切に選べば、近似誤差はシーケンス長nに依存せず一定に抑えられることが証明されている。具体的には、誤差の上界はO(1/√k)程度であり、nが増大してもkを固定したまま精度を維持できる。この性質がLinformerのスケーラビリティを支える。

4.3 元の注意機構との等価性条件

理想的には、k=nのときLinformerは元の注意機構と完全に等価になる。しかし実際にはk≪nでも近似精度が十分高い。また、投影行列が直交基底に近ければ近似誤差は最小化されるが、学習によって自動的に調整される。

5.1 標準ベンチマークにおける精度評価

5.1.1 GLUEスコアと分類タスク

LinformerをBERTベースのモデルに適用し、GLUEベンチマークで評価した結果、元のBERTとほぼ同等の精度(例えば平均スコアで0.4%未満の低下)を達成しつつ、訓練時間を最大40%削減した。特にシーケンス長が512を超えるタスクで顕著な効果を示した。

5.1.2 長文書要約(e.g., arXiv, PubMed)

arXivやPubMedの長文書要約タスク(入力シーケンス長約3000トークン)において、Linformerはフル注意のTransformerと同等のROUGEスコアを達成し、メモリ使用量を約50%削減した。これにより、GPUメモリ制限下での長文処理が実現可能となった。

5.2 計算時間とメモリ使用量の削減率

シーケンス長n=4096の場合、Linformerの自己注意は従来のO(n²)からO(nk)(k=256など)に削減される。実際の実験では、n=4096で時間が約4倍高速化し、メモリ使用量は約8分の1になった。nが長くなるほど削減率は拡大する。

5.3 他の効率化手法(Reformer, Longformer, Performer)との比較

Reformerは局所性鋭敏ハッシュ(LSH)を用いるが、ハッシュ衝突による精度低下があり、Linformerの方が安定した精度を示した。Longformerはスライディングウィンドウとグローバル注意を組み合わせるが、長距離依存関係の捕捉に限界がある。Performerはカーネル近似で線形化するが、精度はLinformerと同程度。総合的に、Linformerは実装の単純さと安定した精度で優位性を持つ。

6.1 Hugging Face Transformersライブラリでの利用

LinformerはHugging Face Transformersライブラリにモデルとして実装されており、LinformerModelLinformerForSequenceClassificationといったクラスが提供されている。ユーザーはprojection_dimなどのハイパーパラメータを指定するだけで簡単に利用できる。

6.2 カスタムプロジェクトへの組み込み例

独自のPyTorchプロジェクトにLinformerを組み込む場合、注意層をLinformerSelfAttentionモジュールで置き換える。以下のようなコードスニペットで実現可能:self_attn = LinformerSelfAttention(embed_dim, num_heads, projection_dim=128)。これにより、既存のTransformerモデルを低コストで効率化できる。

6.3 産業応用:大規模言語モデルの訓練高速化

Linformerは大規模言語モデルの事前学習において、シーケンス長を長く取る場合に訓練時間を短縮するために使用される。例えば、Meta社の内部実験では、Linformerを適用したBERT-largeの訓練が約30%高速化され、コスト削減に貢献した。また、長文書検索やレコメンデーションシステムなど、コンテキスト長が重要な領域でも応用が進んでいる。

7.1 低ランク近似の精度トレードオフ

投影次元kを小さくすると近似誤差が増大し、特に注意重みが均一に分布するタスクでは精度低下が顕著になる。適切なkの選択はタスク依存であり、経験的な調整が必要である。

7.2 非常に長いシーケンス(>64K)への対応課題

Linformerの計算量はO(nk)であるため、nが数万を超えるとkも比例して大きくする必要が生じ、二次的な複雑性が再び顕在化する。6万4千トークンを超えるような超長シーケンスでは、依然としてメモリ負荷が高く、さらなる効率化手法との組み合わせが求められる。

7.3 畳み込み型注意や状態空間モデルとの融合

近年、状態空間モデル(例:Mamba)や畳み込み型注意の研究が進んでおり、Linformerの線形注意とこれらの手法を融合する試みがある。例えば、Linformerの投影行列を動的に適応させる手法や、注意とRNNのハイブリッドアーキテクチャが提案されつつある。

8.1 Transformer-XLとLinformerの関係

Transformer-XLはセグメントレベルでのリカレント機構により長文脈を扱うが、計算量は依然としてO(n²)である。Linformerはセグメントをまたぐ長距離依存関係を直接低ランク近似で処理する点で異なり、Transformer-XLと組み合わせることでさらなる効率化が可能である。

8.2 Linear Transformerアプローチの系統化

Linformerは線形注意機構(Linear Attention)の一種として位置づけられる。より広義のLinear Transformerファミリー(例:Katharopoulos et al., 2020によるカーネル化注意)と共に、注意の計算をO(n)に落とすための系統的なアプローチを形成している。これらの手法は、注意行列の因数分解やカーネルトリックに分類される。

8.3 Sparsity-based手法との比較(Sparse Transformer, Big Bird)

Sparse Transformerは固定パターンで注意を間引くのに対し、Linformerは密な注意を低ランクで近似する。Big Birdはランダム注意と局所注意を組み合わせたスパース構造であるが、Linformerの方が実装が単純で、長距離依存関係を意識的にキャプチャできる。ただし、Big Birdは理論的な近似保証を持たないのに対し、Linformerは誤差上界が明確である点が強みである。