【いちえんこーでぃんぐ】
位置エンコーディング とは?
💡 言葉の並び順をAIに教える、見えない座席番号
📌 このページのポイント
位置エンコーディングって何?なんで必要なの?
Transformerの自己注意機構(Self-Attention)は、すべての単語を同時に見るから、実は単語の順番を区別できないんだ。「犬が猫を追いかける」と「猫が犬を追いかける」の違いがわからなくなっちゃう。それを防ぐために位置情報を付け加えるのが位置エンコーディングだよ
どうやって位置を教えるの?
元々のTransformer論文では、sin関数とcos関数を使って各位置に固有のパターンを生成して、単語の埋め込みベクトルに足し算するんだ。映画館の座席番号みたいに、各位置に固有のIDを割り振るイメージだよ
おもしろい!sin/cos以外のやり方もあるの?
位置エンコーディングがないとどうなるの?
文章が「単語の袋(Bag of Words)」と同じ扱いになってしまうんだ。語順が大切な自然言語では致命的だよね。ちなみにViT(Vision Transformer)でも画像パッチの位置を教えるために位置エンコーディングが使われていて、言語以外の分野でも重要な技術なんだよ
まとめ:ざっくりこれだけ覚えればOK!
「位置エンコーディング」って出てきたら「Transformerに単語の並び順を教える仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Positional Encoding」 = 位置の符号化
💬 positionは位置、encodingは情報を符号に変換すること。単語の位置を数値に変換してAIに教えるからこの名前だよ