クエリ(Query)・キー(Key)・バリュー(Value)——Attention機構の3点セットの最後を締めくくるのがバリューです。クエリとキーの照合で「どこに注目するか」が決まったあと、実際に出力へ運ばれる「中身」がバリュー。Attentionの出力がどう作られるのかは、バリューを理解して初めて完結します。
📖 ひと言でいうと
バリューとは、Attention機構において、入力データの各要素が持つ「中身の情報」を保持するベクトルです。クエリとキーの照合で計算された注意の重みをバリューに掛けて足し合わせる(加重和)ことで、Attentionの最終的な出力が作られます。
図書館の蔵書検索に例えると、あなたが検索窓に打ち込む検索ワードがクエリ、各本の背表紙に付いたタイトル・索引ラベルがキー、そして本の中身(本文)がバリューです。ラベルの照合はあくまで本を選ぶための手続きで、最終的にあなたが持ち帰って読むのは中身——それがバリューの役割です。
🖼 1枚でわかるバリュー
📘 公式テキストの説明
入力データの各要素に対応する情報を保持するベクトルである。クエリとキーの関連度に基づいて計算された重みを、これらのバリューに適用することで、最終的な出力が得られる。具体的には、クエリとキーの内積を計算し、その結果をソフトマックス関数で正規化して重みを導出する。次に、各バリューにこの重みを乗じて加算することで、入力データ全体の中から重要な情報を抽出し、出力として反映させる。このプロセスにより、モデルは入力データ内の関連性の高い部分に焦点を当て、適切な出力を生成することが可能となる。
かみ砕くと、Attentionの出力は「バリューの加重平均」です。クエリとキーの照合はあくまで重み(どのバリューをどれだけ使うか)を決めるための計算で、出力そのものの材料はバリューが提供します。「重みを乗じて加算する」という操作がバリューの出番であり、重要な要素のバリューほど濃く、無関係な要素のバリューほど薄く、出力に混ざります。
🔍 しっかり理解する
出力が組み立てられる流れ——バリューは最後の主役
この計算全体を1つの式にまとめたものがScaled Dot-Product Attentionです。
Attention(Q, K, V) = softmax(QK^T / √d_k) V
式の末尾に置かれたVがバリュー(を並べた行列)です。softmax(QK^T / √d_k)までの部分が「注意の重み」を作り、それをVに掛けることが「重みを乗じて加算する」操作に対応します。式の構造を見れば、出力の実体がバリューであること、クエリとキーは重み作りにしか関与しないことが一目で分かります。
「選ぶ」のではなく「混ぜる」
Attentionは、最も関連の高い要素を1つ選んで取り出すのではなく、すべてのバリューを重み付きで混ぜ合わせます。図書館の例えでいえば、厳密には「一番一致した1冊だけ借りる」のではなく「全部の本の中身を、一致度に応じた分量ずつブレンドして持ち帰る」イメージです。
この設計には理由があります。「1つ選ぶ」という操作は微分できず、ニューラルネットワークの学習(誤差逆伝播)に組み込めません。加重和なら滑らかに微分でき、重みの付け方そのものを学習で改善できます。また、複数の要素が同程度に重要な場合に、それらの情報を同時に反映できるという利点もあります。
キーとバリューの分業——同じ要素の2つの顔
キーとバリューは、入力の同じ要素からペアで作られます。実際には、元の入力ベクトルにそれぞれ別の重み行列を掛けて、キー用・バリュー用に変換します(クエリも同様で、これらの行列は学習されます)。
分業は明確です。キーは「探されるための目印」でスコア計算専用、バリューは「持ち帰られる中身」で出力専用です。検索に適した表現と、内容を伝えるのに適した表現は必ずしも同じではないため、役割ごとに別の変換を学習させる——この分離がAttentionの表現力を支えています。
💡 具体例で考える
数字で見るバリューの加重和
「I love cats」の3単語に対して、デコーダが「猫」を生成するステップを考えます。クエリとキーの照合の結果、注意の重みが「cats: 0.8、love: 0.15、I: 0.05」と求まったとします。このときAttentionの出力は、
出力 = 0.8 × (catsのバリュー) + 0.15 × (loveのバリュー) + 0.05 × (Iのバリュー)
という加重和になります。catsの中身が8割を占めた「ブレンドされた情報」がデコーダに渡り、「猫」という訳語の生成を支えます。重みの合計はソフトマックスにより必ず1になるため、出力は「入力の情報をどう配合したか」という配合表のような意味を持ちます。
文脈で変わる単語の「中身」
Self-Attentionでは、各単語のバリューが文脈の再構成に使われます。例えば多義語の「はし(橋/箸)」を含む文で、「渡る」に強い重みが付けば橋らしい情報の配合に、「食べる」に強い重みが付けば箸らしい情報の配合になります。同じ単語でも、どのバリューがどんな重みで混ざるかによって、文脈を反映した表現が出来上がるのです。
⚠️ よくある誤解・紛らわしい用語
- キーとの混同 — キーは照合(スコア計算)専用で出力には混ざりません。出力の材料になるのはバリューです。「重みを掛けて加算されるのはどれか」と問われたらバリューが正解です。
- 「重みはバリュー同士の比較で決まる」は誤り — 重みを決めるのはクエリとキーの内積です。バリューは重みの決定には関与せず、決まった重みを受け取る側です。
- 「最重要の要素だけが出力される」は誤り — 出力は全バリューの加重和です。重みが小さい要素の情報も薄く含まれます。
- 機械学習の「価値関数(Value Function)」との混同 — 強化学習のValueとは無関係です。Attentionのバリューは各要素の内容を保持するベクトルを指します。
📝 試験でのポイント
- 「入力データの各要素に対応する情報を保持するベクトル」という定義文がバリューを指すと判定できるようにしましょう。
- 「クエリとキーの内積→ソフトマックスで重み→各バリューに重みを乗じて加算」という手順の並べ替え・穴埋めが典型的な出題形式です。
- クエリ・キー・バリューの役割を入れ替えたひっかけ選択肢では、「最終出力の材料になる=バリュー」を軸に判別してください。
- Attention(Q, K, V) = softmax(QK^T / √d_k) V の式で、Vが出力の実体であることの理解が問われる可能性があります。
📚 まとめ
- バリューは、入力の各要素の「中身の情報」を保持するベクトルで、Attentionの最終出力の材料です。
- クエリとキーの照合から得た注意の重みを、各バリューに乗じて加算することで出力が作られます。
- 1つを選ぶのではなく全バリューを重み付きで混ぜる設計が、学習可能性と柔軟な情報統合を実現しています。
- クエリ=検索ワード、キー=本のラベル、バリュー=本の中身。3点セットの分業で覚えましょう。
