Transformerの鍵となるAttention機構とは
では注目のTransformerで鍵となるAttentionについて見ていこう。Transformer全体像におけるAttentionは下図オレンジ色の枠でくくられている「Multi-Head Attention」部分となる。
Transformerの全体像を大枠で見ると、「Encoder」と「Decoder」がある。翻訳で使うなら、Encoderは「今日は雨が降る」のように入力された文章の修飾関係からコンテキスト(意味表現)のベクトルを生成する役割にあたる。DecoderはEncoderから受け取ったコンテキストと翻訳途中の文章から、次の単語を予測して「It will rain today」のような翻訳結果を出力する。EncoderもDecoderも内部的には似たことを行っているため、ここではEncoderに着目して動作を解説する。
再び先ほどの「標高の高い山で紅葉が見頃に」という例文で考えてみよう。言語の理解において、この文の「高い」のように、価格の高さか、地理の高さか、判断が難しい場合がある。これを解決するのがAttention、つまり単語の特徴量となる。これにより、ある単語を他の単語を用いてより予測に適したものに更新することを繰り返していく。今回の例文では「標高」に注目することで「高い」が地理的な高さであることが分かる。
TransformerのEncoderでは、先に紹介したワンホットエンコーディング(0と1の組み合わせ)を、エンベディングで密なベクトルにしてから、TransformerのEncoder層に入力する。ここでAttentionという機構が、エンベディングのベクトルを周囲の単語との関係性を計算して更新(修正)する。さらに全結合層(下図の水色の台形)と呼ばれるニューラルネットワークで非線形化という処理を行う。最終的には全結合層から生成された隠れ状態「H」から、最終的な目的にあたるニュースのカテゴリ分類を行う。なお図ではエンコーダー層は1つだが、実際には複数の層となっている。
さらにAttention機構を深掘りしていこう。ここでは入力されたベクトルから、Q(Query)、K(Key)、V(Value)の3種類のベクトルからAttentionスコアを計算している。QとKの内積を計算することで、各単語同士の関連性に近いものを算出する。例えば「高い」という単語で最も高いスコアは「標高」となるため、「高い」と「標高」は強い相関があることになる。「単語の相関性をベクトルの内積で計算するというのがAttention機構の本質です」と葛木氏は説明する。
QとKの内積からVの修飾関係の表を書き出し、ΔEという修正量のような値を得る。さらにΔEに、エンベディングのベクトルを足し(ベクトルを更新する)、後は先述したように全結合層で処理することになる。
別の例文で考えてみよう。「The animal didn't cross the street because it was too tired」という文があったとして「it」が何を示しているかを考える時には、Attentionを用いることで「it」とそれ以外の単語の関係性を割り出していく。すると、最も関連性が高いのが「animal」と出てくる。Attentionは、単語の意味をとらえるためにはどの単語に注目すべきかが分かるようになる。
TransformerではAttentionと並び主要なものとなる、ポジショナルエンコーディングも補足しておこう。ポジショナルエンコーディングは、処理対象の単語が文章のどこにあるかを把握する仕組みだ。こちらは意外とシンプルで、単語の位置により異なる値をエンベディックベクトルに足し算していく。
まとめると、Transformerとは2017年に発表された自然言語処理に関する論文で発表された深層学習モデルで、元は翻訳のために提案されたアーキテクチャとなる。EncoderとDecoderで構成されていて、Attentionという機構により「ある単語の意味を理解するにはどの単語に注目すべきか」という情報が付加されることで単語の意味をより正確に把握できるようになった。このTransformerで大量の言語データを学習できるようになり、近年の自然言語処理が大きく発展した。
葛木氏は「これをきっかけに皆様に、自然言語処理やランゲージモデルに少しでも興味を持っていただければ幸いです」と述べてセッションを締めた。