言語の再帰性を実現する方法〜Attention, GNN, 関数マップ
自然言語のみならず様々なデータを取り込み、変換し、解釈しているように見えるニューラルネットの構成であるTransformerとその構成要素であるSelf Attentionの意味と機能には多くの注目が集まっています。
ここでは言語の単語間の参照関係や自己言及性を表現できる他のモデルと比べて類似点、相違点をまとめます。
グラフニューラルネット(GNN)とTransformerの類似性
グラフを処理するニューラルネットアーキテクチャとしてはグラフニューラルネット(GNN)というものがあります。
GNNはfoward計算としてグラフの頂点にある値を重み付けして隣接する頂点に伝搬させる処理を層ごとに行うもので、CNNは格子状に並んだピクセルに対するGNNとして見ることができます。
ノードiに隣接するノード
という形です。
ではGNNとTransformerの類似性が語られています。
Transformerの構成は
(Sはwordの集合,lは層のindex,jはのindex)
となっていて行列wとして
とおくと
と書けてGNNと比べるとTransformerのself attention部分WはGNNの重み部分が層ごとの発展で動的に変化しているような見方ができます。
実際に以下のコードのように各層で共通なランダムな初期値行列Q,K,Vを置くとhとwはトークン間の関係を表すグラフのノードとエッジであり層を経るごとに動的に変化します。以下のnotebookでその様子を見ることができます。
ではBERTのAttensionでの単語間の依存関係が図示されていますがあくまで単語単位でありそれによって構成される句や節の単位の関係までは表現することはできません。
関数マップとグラフ
より直接的に要素の集合間の参照関係や自己言及性を実現する方法として関数マップ(functional dynamics)という手法が提唱されています。
これは関数fを自身に適用した関数f'へ移す写像をパラメーターεを用いて
と定義したもので関数fの写像の繰り返しによる挙動は離散的な点集合に作用する場合は図のように出発点と到達点を結んだグラフがステップごとに切り替わる様子が見られ(点の数が素数の場合は
Functional Dynamics I:Articulation Processより引用
Natural Language from function dynamicsより引用
また初期関数の形が対角線をまたぐようになっていると適用により関数は折り畳まれ、複雑な形に発展していきます。
Functional Dynamics I:Articulation Processより引用
挙動の一部を再現したnotebookは以下に有ります。
関数マップとself attention(の一部)の等価性
この関数に関数自身を適用する演算はself attentionに類似するところがありますが実際にattentionの構造は関数マップを含むことが示せます。
self-attention-from-scratchの図
で簡単のため
さらに
これによってattentionにおいて自己参照的な構造が得られることになります。
またここでの例では層ごとに同じ重みパラメーターを用いるものとしてGNN,関数マップとの類似性、等価性を見てきましたがattentionを用いたネットワークでは層ごとに異なるパラメーターを用いています。
関数マップの拡張
以上に書いたように入力行列xを1行に1つの非零要素しか持たない制約を外すことができます。またattentionのように3入力を用いた変換によって計算の能力に違いが見られると考えられます。
類似点、相違点の整理
GNN | Self Attention | 関数マップ | |
---|---|---|---|
Wの変化 | 学習により固定 | 固定+初期値で自発的に変化 | 初期関数に依存して動的に変化| |
参照 | ノード単位 | 領域単位 | 領域単位 |
課題
- in-context learningの位置づけ
- 文脈の保存のされ方の可視化
- Key, Queryの関数マップでの位置づけ、または関数マップの拡張(変動するε)
- 階層的な構造がなぜ画像(Vision Transformerでも有効なように見えるのか)
- 層を進めることによる忘却の限界、または不確定性
関連
RNNとの関係
トランスフォーマーは重み
力学系の軌道としてのBERTの出力を捉えた研究
Transformerの要素attentionとMLPの動作の意味について論じられています
本
Discussion