メインコンテンツへスキップ
見出し画像

書記が数学やるだけ#886 Transformer

    機械学習において極めて重要なモデルであるTransformerを理解していく。


    問題

    画像


    説明

    Transformerとは,2017年にVaswaniらによって提案された自然言語処理モデルであり,従来のRNN(再帰型ニューラルネットワーク)やCNN(畳み込みニューラルネットワーク)とは異なり,Attentionメカニズムのみに基づいて系列データを処理する構造を特徴とするモデルである。このモデルは,全ての入力単語間の依存関係を並列に計算できることから,従来の系列モデルに比べて大幅な計算効率の向上を実現し,機械翻訳をはじめとする様々なNLPタスクで高い性能を発揮してきた。

    画像


    解答

    Multi-Head Attentionとは,複数の異なる視点(=ヘッド)からAttentionを計算し,それらを結合して情報を統合する仕組みである。各ヘッドは,異なる線形変換(重み行列)を通してQuery, Key, Valueを生成し,異なる特徴に注目する。これにより,文の中の複数の関係(例:主語と述語,修飾語と被修飾語など)を同時に学習できる。

    画像

    Transformerは再帰構造を持たないため,入力単語の順序情報を直接扱うことができない。この問題を解決するために,各単語の埋め込みベクトルに,その単語が文中のどの位置にあるかを表すベクトル(Positional Encoding)を加える。典型的には,sin波とcos波を使った以下の関数によって計算される。

    画像


    各層のSelf-Attentionの後には,位置ごとに独立して適用される全結合ニューラルネットワーク(Feed-Forward Network, FFN)が存在する。これは非線形変換を加えることで,モデルの表現力を高める役割を持つ。典型的には2層のMLP(中間層をReLUなどの活性化関数付き)として実装される。

    Self-AttentionやFFNの出力には、それぞれ入力との加算(Residual Connection)が行われる。これは、学習の安定性を向上させるとともに、情報が深い層まで失われずに伝わるようにするための工夫である。この構造はResNetに由来する。

    Residual Connectionによって加算された出力は,次にLayer Normalizationという正規化処理を受ける。これは,各ベクトルの値を平均0・分散1に近づけることで,学習を安定化し,勾配の爆発や消失を防ぐ効果がある。Transformerでは通常,各サブレイヤーの後に適用される。


    中でも重要なMulti-Head Attention・Positional Encodingについて,具体的な計算で理解していく。

    Self-Attention の計算では,まず各入力ベクトルに対して重み行列を乗じ,Query(Q)・Key(K)・Value(V)を生成する。次に,Query と Key の内積を用いて Attention スコアを計算し,Softmax により重みとして正規化する。最後に,Value ベクトルとの加重平均をとることで、各入力に対応する出力ベクトルを得る。このようにして,Self-Attention は各単語が他の単語にどれだけ注意を払うかを反映した新たな表現ベクトルを生成する。

    画像


    Positional Encoding は,文中の位置 pospos と次元インデックス i に基づき,以下のように sin, cos 関数を用いて決定される。文長3,埋め込み次元4の条件下でpos = 0, 1, 2 に対応する4次元のベクトルを計算する例を以下で示す。Positional Encodingの結果を埋め込み系列に足すことによって,Transformerは単語の意味だけでなく,その位置に関する情報も考慮できるようになる。

    画像


    本記事のもくじはこちら:


    あなたへのおすすめ