機械学習におけるAttentionのQuery・Key・Valueとは?役割・違い・関係を整理
Attention を学ぶと、多くの人が最初にぶつかるのが Query、Key、Value という三つのベクトルです。名前だけを見ると抽象的で、しかも三つとも似たような埋め込みに見えるため、「結局どれも入力を変換したものではないのか」「なぜわざわざ三つに分ける必要があるのか」が分かりにくくなりがちです。実際、数式だけを追うと、これらは行列を掛けて作られるベクトルにすぎないようにも見えます。しかし、Attention の考え方を本当に理解するには、この三つが同じ情報を別名で持っているのではなく、異なる役割を担っていることを押さえる必要があります。
非常に大まかに言えば、Query は「いま何を探したいか」を表し、Key は「各要素がどんな情報を持っていて、どんな問い合わせと合いそうか」を表し、Value は「実際に取り出して集約したい中身」を表します。つまり、Query と Key はまず関連度を決めるために使われ、Value はその関連度にしたがって最終的に集められる内容になります。この役割分担があるからこそ、Attention は単なる平均や単純な重み付けではなく、「いま必要な情報だけを、入力全体の中から動的に取り出す」仕組みとして機能します。
EN
JP
KR