※ このブログ記事筆者の理解・説明には誤りが含まれている可能性があります
以下の論文を読む。今回はSection 3から5あたりの、SSMとAttentionの双対性についての記述を読解する。
特に断りのない限り、式番号や画像番号は上記論文に合わせる。
概要
状態空間モデル(State Space Model : SSM)の中の一種と、線形Attentionの中の一種が、Semiseparable行列による系列変換という形で結びつくことを示す。
状態空間モデルは、系列長 に比例する計算量で系列変換を実行できるので、見た目上は
に比例するAttention系よりも高速だが、愚直にやると並列性が低いので特に学習時の系列処理をGPUなどで計算する場合に遅い。この問題に対して、
- 状態空間モデルのうち行列
が入力によらないタイプのものであるLinear Time Invariance (LTI)では畳み込みにより効率的に計算できる
- Mamba-1では、並列スキャンという方法によって部分的に並列化する
- Mamba-2では、SSMによる変換を行列積で書けるように式変形を行う
ということになる。多少計算量的に不利になったとしても、行列積という並列性が高くアクセラレータの親和性の高い方法で書けると実践的には速くなることもある。ここで、行列積として書いたものが線形Attentionの特殊な形と同一視できることがわかるので、SSMの線形形式とAttentionの形式を双対として捉えている。
[Section 3] 状態空間モデルの変形
離散化された状態空間モデルは以下のように定式化できる。状態遷移行列 , 入力行列
, 出力行列
を使い、隠れ状態
を通して
を行う。
それぞれ添字は最初の時間軸での値を取る。
これを時間方向に展開して行列積で書けるようにしたい。 から展開すると
となる。ここで である。行列
をかけることも考慮すると、
であるので、行列 による行列積として表現できることがわかった。そして一般に、行列が
として書けるとき、これはSequentially semiseparable(SSS)表現として知られたものであり、画像のようなものである。
いくつか重要な事実を挙げると、
定義3.1 下三角行列 は下三角部分に含まれるすべての部分行列の階数が最大で
である場合に N-Semiseparable行列という。
をSemiseparable行列の階数と呼ぶ。
補題3.3 N-SSS行列は N-Semiseparableである。
命題3.4 全てのN-Semiseparable行列はN-SSS表現を持つ。
定義3.5 状態サイズが である状態空間モデル
はN-SSS行列による積
と書ける。
そしてここからSection 5の内容にも部分的に踏み込むが、状態遷移行列 に対して強い制約を入れることを考える。
と、単位行列をスカラー倍したものまで単純化すると
が
と書けるので、 について
(説明の都合上、元の論文の式(6)から変数名を置き換えた)
を考えると
であり、つまり系列変換全体として見ると
である。
[Section 4] Attentionの変形
Source系列の長さを 、 Target系列の長さを
、特徴次元を
、ヘッド次元
としたとき、基本的なAttentionの定式化は以下のようになる。
一般的に はソフトマックス関数となる。その場合、
の各要素に指数関数を適用し、
軸について正規化することになる。正規化は全てが1であるベクトルを追加で考えるとわりと自明なのでいったん無視できる。また指数関数を適用するところは、カーネル変換として捉えられる。つまり
となる特徴マップ
が存在する。先に
に特徴マップを適用したものを
と思い直すことで、関数
の適用も無視できる。カーネルとしていろいろなものを考えられるという点もまた発展的な話としてある。
以上の議論を踏まえるとAttentionの定式化が
となる。ここで、特にSource系列=Target系列のときなどは、Attentionに因果マスク を導入することが自然となる。これは
ということになる。ここでマスク は一般的には要素が1の下三角行列になるが、そうでないものを考えることもできる。
[Section 5] Structured State-Space Duality (SSD)
式(10)において として1-Semiseparable行列を考えとき、これを式(*)を見比べると同じになっているため、つまり「
が単位行列のスカラー倍であるという制約を入れたSSM」と「マスクとして1-Semiseparable行列を考えたAttention」は同一視できる。