トランスフォーマーの自己アテンションの理解④位置エンコーディング
本シリーズの記事リスト
第一弾 トークン数値化の歴史
第二弾 回帰による文脈伝搬
第三弾 レコメンダーと内積
第四弾 位置エンコーディング
第五弾 エンコーダ・デコーダ
第六弾 クエリとキーとバリュー
第七弾 エンコーダ・ブロックの詳細
第八弾 デコーダ・ブロックの詳細
この記事では、本題であるトランスフォーマーの自己アテンションの仕組みに触れ始めます。回帰の構造を使わずにトークンの位置関係を知る手法である位置エンコーディングを解説します。
では、さっそく始めましょう。
「必要なのはアテンションだけ」の意味
2017年に発表されたトランスフォーマーの論文のタイトルは「Attention Is All You Need」(必要なのはアテンションだけ)ですが、これは回帰は必要がないという意味でもあります。さらに、回帰がないだけでなく、アテンションの計算は全てのトークンに対して同時(並列)に行うので、トークンを順番に処理することもありません。
しかし、文章の理解においてトークンの順番を知ることは欠かせません。以下の二つの文章を比べれば全く異なる意味になっているのが分かるでしょう。
両方とも同じトークンを使っています。第一弾で登場したBoW(Bag of Words)だったら同じ文章として判断されてしまいます。
第二弾で解説したRNNを使ったエンコーダ・デコーダでは回帰の構造がトークンを順番に処理することで文脈を伝播するのでトークンの前後関係が情報として組み込まれています。
単純なRNNでは、回帰による勾配消失の問題がありました。特に長い文章では離れたトークン間の関係を反映したモデルの学習が困難でした。LSTMによって改善されましたが、回帰の構造上の問題である勾配消失は完全に無くすことはできませんでした。
トランスフォーマーでもエンコーダ・デコーダという枠組みが使われていますが、その中で回帰の構造は使われていません。アテンションの仕組みだけで文脈を取り込んでいきます。
回帰がなくトークンを順番に処理しないトランスフォーマーには、回帰の構造に起因する勾配消失の問題はありません。しかし、どのようにトークンの位置関係を認識しているのでしょうか。
実はトランスフォーマーでは埋め込みのベクトルにトークンの位置情報を追加します。なので、まずはトークンの埋め込みついて見ていきましょう。
この記事が気に入ったらサポートをしてみませんか?