Self-Attentionのネーミングはミスリード。All-Attentionとすべき

Self-Attention(自己注意)という名前は少し誤解を招くことがあります。名前からは「自分自身だけに注意を向ける」ように見えますが、実際にはシークエンス内のすべてのトークンが互いに関連性を計算し合い、その中でどのトークンにどれだけの注意を向けるべきかを判断する仕組みです。つまり、各トークンは「自分自身を含めた全てのトークン」に対して注意を払います。この意味で「自己注意」と名付けられていますが、実際には「全体注意」や「相互注意」といった名前のほうがより直感的であり、理解しやすいかもしれません。特に「自己」という言葉が強調されることで、あたかも各トークンが「自分だけ」に集中しているように誤解されやすいため、注意が必要です。

例えば、文章の中で「猫が椅子の上にいる」というシンプルな文を考えてみましょう。この文にSelf-Attentionを適用すると、各単語(トークン)が他の単語との関連性を計算します。「猫」は「椅子」や「いる」と関連性を持ち、「椅子」は「猫」と「上」と関連性を持ちます。このように、各単語は自分自身も含めて、文全体の他の単語にどれだけ関連があるかを計算し、その結果を元に「どの単語に注意を向けるか」を決めるのです。例えば、「猫」は「椅子」に関して強い関連を持つと判断された場合、その関連性に基づいて重要度が計算され、「猫」に関する情報が次の層により強く伝えられます。

Self-Attentionは、各トークンがシークエンス内の他の全てのトークンに対して関連度を計算するプロセスを含んでいます。この関連度は、トークン間の相互作用を考慮して重み付けされ、各トークンに対してどれだけの重要度を持たせるかを決めるものです。したがって、名前から受ける「自己」だけに注目するという印象とは異なり、シークエンス全体を通じて注意を配分することが特徴です。このため、「全体注意」や「グローバル注意」といった名前がより適切に機能を表しているようにも思われます。

さらに、場合によっては自分自身への注意を防ぐためにマスク処理を行うこともあります。このようなマスク処理は、特に予測タスクにおいて重要です。例えば、次のトークンを予測するようなケースでは、モデルが現在のトークン自体の情報を参照することを防ぐためにマスクが使用されます。このため、「自己注意」という名前はやや不正確に見えることがあり、誤解を避けるためにはその仕組みをよく理解することが必要です。

例えば、次の単語を予測する際に「The cat sat on the…」という文があったとします。この文の次に来る単語を予測するために、モデルは「sat」などのトークンから得た情報を活用しますが、「on」自体の情報を直接参照して予測に使ってしまうと正確な予測ができなくなります。これを避けるために、「on」に対する注意を制限するマスク処理が行われます。このように、マスク処理を用いることで自己への過度な注意を防ぐ仕組みが取り入れられています。

ただし、「Self-Attention」という名前はTransformerモデルの構成要素として定着しており、多くの研究者や技術者の間で共通の理解を持っています。これにより、技術的な議論や論文での使用においても混乱を避けることができます。実際のところ、「自己」という言葉は、各トークンが自分自身の情報も含めて他のすべてのトークンに注意を向けるという意味合いを持たせたものです。これが業界標準として使用され続けている理由の一つでもあります。

名前が必ずしもその仕組みを完全に正確に表しているわけではないため、初心者や初めてこの仕組みに触れる人にとっては、誤解を生じさせることがあります。しかし、システム全体の機能とその背後にある考え方を理解することで、なぜ「Self-Attention」と呼ばれているのかが見えてきます。特に、名前が直感的ではない部分については、具体的な計算プロセスやAttention Mechanismの背景を知ることで、理解を深めることができるでしょう。

例えば、「Self-Attention」の計算プロセスでは、各トークンが他のすべてのトークン(自分自身を含む)との関連性を計算し、その関連性に基づいて出力を調整します。このことから、各トークンは他のトークンとの関係を通じて自己の役割を理解し、それに基づいて次の層に伝えるべき情報を決定します。こうしたプロセス全体が「自己注意」としてまとめられているため、名前が「自己」を含んでいるのです。

また、例えば「犬は吠える」と「犬は静かにしている」という二つの文を考えてみましょう。Self-Attentionを使うと、「犬」というトークンはそれぞれの文において「吠える」や「静かにしている」との関連性を計算し、文脈に応じて重要度が異なることを学習します。このように、Self-Attentionの仕組みによってトークン間の動的な関連付けが可能となり、それに基づいて適切な注意を割り当てることができます。

総じて、「Self-Attention」という名前はその内部の仕組みを十分に理解している人には納得のいくものですが、直感的に理解するには補足的な説明が必要であり、そのために「全体注意」や「相互注意」といった補足的な表現を使うことが有効な場合もあります。