解答と解説を表示
<h4>Transformer: Self-Attentionスコアの役割</h4>
<p>TransformerモデルにおけるSelf-Attention(自己注意)機構は、入力シーケンス内の要素同士の関係性を捉える上で中心的な役割を果たします。この機構を理解する上で、<strong>アテンションスコア</strong>の計算とその意味を知ることが重要です。</p>
<div class="section">
<h5>Query, Key, Value ベクトル</h5>
<p>まず、Self-Attentionでは、入力シーケンスの各要素(単語の埋め込みベクトルなど)から、以下の3種類のベクトルが生成されます。</p>
<ul>
<li><strong>Query (Q) ベクトル:</strong> 現在注目している要素が「問い合わせ」を行うためのベクトルです。「他のどの要素に注目すべきか?」という情報を持ちます。</li>
<li><strong>Key (K) ベクトル:</strong> シーケンス中の各要素が持つ「キー」となるベクトルです。Queryからの問い合わせに対して、「自分は関連があるか?」を判断するための情報を提供します。</li>
<li><strong>Value (V) ベクトル:</strong> シーケンス中の各要素が持つ「値」となるベクトルです。Attentionの計算結果として、関連度に応じて加重平均される情報を提供します。</li>
</ul>
</div>
<div class="section">
<h5>アテンションスコアの計算と役割</h5>
<p><strong>アテンションスコア</strong>は、特定の要素の<strong>Queryベクトル (Q)</strong> と、シーケンス内の全ての要素(自身を含む)の<strong>Keyベクトル (K)</strong> との類似度を計算した結果です。Transformerでは通常、Scaled Dot-Product Attentionが用いられ、内積をキーベクトルの次元数の平方根で割ることで計算されます。</p>
<div class="formula">
$Score(\mathbf{q}, \mathbf{k}_i) = \frac{\mathbf{q} \cdot \mathbf{k}_i}{\sqrt{d_k}}$
</div>
<p>このスコアの直接的な役割は、<strong>Queryベクトル(注目している要素)と各Keyベクトル(比較対象の要素)との間の関連性の強さを示すこと</strong>です。スコアが高いほど、そのQueryとKeyを持つ要素同士の関連性が高いと解釈されます。したがって、<strong>選択肢2が正しい</strong>役割を示しています。</p>
</div>
<div class="section">
<h5>アテンションウェイトと出力計算への流れ</h5>
<p>計算されたアテンションスコアは、それ自体が最終出力ではありません。通常、以下のステップを経て、文脈を考慮した要素の表現が生成されます。</p>
<ol>
<li><strong>正規化 (Softmax):</strong> あるQueryに対する全てのKeyとのスコアは、Softmax関数によって正規化され、合計が1になる確率分布(<strong>アテンションウェイト</strong>)に変換されます。これは、各要素にどれだけの「注意(Attention)」を割り当てるかという重みになります。</li>
<li><strong>加重平均:</strong> 計算されたアテンションウェイトを用いて、対応するValueベクトルの加重平均を取ります。これにより、関連性の高い要素のValue情報がより強く反映された、新しい表現ベクトルが生成されます。</li>
</ol>
<p>つまり、アテンションスコアは、最終的な出力ベクトルを計算するための中間的な値であり、要素間の関連性を定量化する重要なステップです。</p>
</div>
<div class=\"section\">
<h5>他の選択肢の評価</h5>
<ul>
<li>選択肢1: 各単語の個別表現は入力埋め込みなどで与えられます。スコアは要素間の関係性を示します。</li>
<li>選択肢3: スコア自体は順伝播の計算結果であり、勾配計算(逆伝播)とは異なります。</li>
<li>選択肢4: 最終的な予測確率分布は、Transformerモデル全体の処理を経て、最後の出力層(通常Softmax層)で生成されます。アテンションスコアはそれより前の段階の計算値です。</li>
</ul>
</div>