オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【深層学習】Longformer

yhayato1320.hatenablog.com

Index

Longformer とは

Transformer ベースのモデルの問題点として、
入力の系列の長さが増えると、パラメータや使用メモリ、計算量が、
二次関数的に増えるために、長い系列のデータを処理できない場合がある.


この手法では、長い系列の入力を可能にすることが目的.

Long Document Transformer = Longformer


そのために、Lognformer-Encdoer-Decoder (LED) という Attention への工夫を行う.

長い系列入力データの研究 メモ

直近の長い系列入力データへの効率化の研究.



主に、Self Regression Model / 自己回帰モデルの研究

Transformer の課題

Transformer は、系列数  n に対し、計算リソースとメモリが  O(n^{2}) で(二次関数的に)増える.


これの原因は、Attention の構造の中にある.

Attention は、入力情報 (Value) からの情報を抽出するために、Query と Key という別のパラメータを用意しており、
入力 (Value) が増えれば、Query と Key も同様に増える仕組みとなっているからだ!
(要は、入力 (Value) が増えても、Query と Key が増えなければ良いのだ!)


yhayato1320.hatenablog.com


この課題を解決するために、複数の Attention (Attention Pattern = どの箇所とどの箇所の重要度を計算するかどうか) を考える.

Attention Pattern

Full Attention

通常の Attention. すべての入力 (単語) とすべての入力 (単語) 同士の重要度・関連度を計算する Attention.(図(a))

Sliding Window Attention

入力 (単語) に対し、入力 (単語) とその周辺(の単語)との重要度・関連度のみを計算する.(図(b))
(周辺の幅 w (window) は、固定する.)

複雑さは O(n\ \times\ w) となる.

Dilated Sliding Window

Sliding Window Attention を拡張 (dilated) したもの.(図(c))
さらに、広範囲の単語を俯瞰して、入力(単語)同士の重要度・関連度を計算できる.

ギャップサイズ  d を導入し、Window の幅 (size) を  w\ \times\ d まで拡張し、1 サイズ分を飛ばした範囲で、
入力(単語)同士の重要度・関連度を計算できる.

また、Multi Head Attention にこの Attention Pattern を導入するときは、 各ヘッドの Attention に異なる  d を設定する.

Global Attention

NLP のタスクは、タスクごとに、どこに注目するかが、異なる.


例えば、BERT で文章の分類を行う場合は、[CLS] トークンに注目するし、
QA についての学習の場合、質問文章と回答文章を比較する.


そこで、タスクごとに、あらかじめ着目する対応箇所を決めておいて(Global)、
その箇所の入力(単語)と他の入力(単語)同士の重要度を計算することで、余計な計算を行わないようにした.

それだけでは、物寂しいので、Sliding Window Attention を足してみたりする. (図(d))

まだ、複雑さは  O(n).

Global Attention と言っているが、どちらかというと、Local Attention?

yhayato1320.hatenablog.com

Score Function

Transformer では、重要度・関連度を計算するときに、線形写像を利用している.
(Scaled Dot Product)

yhayato1320.hatenablog.com


Longformer では、Sliding Window Attention と、Global Attention で、別々の重みパラメータを用いてスコアを計算する.

参考

  • Longformer: The Long-Document Transformer
    • [2020]
    • Abstract
    • 1 Introduction
    • 3 Longformer
      • 3.1 Attention Pattern
    • arxiv.org

Web サイト