技術書典$14$で頒布を行った『直感的に理解するTransformer』の印刷版のサポートページです。主に誤植が見つかった場合の正誤表の作成やカラー画像の確認が行えるように作成を行いました。誤植につきましては見つかり次第都度追加いたしますので、お気づきの方は気軽にご指摘ください。
https://hello-stats.booth.pm/items/4781879
Contents
追加コンテンツ
Multi Head Attention
「直感的に理解するTransformer」の$A.3$の「Multi Head Attention」の処理は正確には論文の内容と一致しないことにご注意ください。具体的には「単に分割」で表したところが「パラメータ行列を用いて線形写像での計算」に対応します。以下に論文の数式などをまとめました。
Transformer論文では下記のようにMulti Head Attentionが表されます。
$$
\large
\begin{align}
\mathrm{MultiHead} (Q,K,V) &= \mathrm{Concat}(\mathrm{head}_{1}, \cdots , \mathrm{head}_{h}) W^{O} \quad (1.1) \\
\mathrm{head}_{i} &= \mathrm{Attention}(QW_{i}^{Q}, KW_{i}^{K}, VW_{i}^{V}) \quad (1.2) \\
\mathrm{Attention}(Q, K, V) &= \mathrm{Softmax} \left( \frac{QK^{\mathrm{T}}}{\sqrt{d_{k}}} \right) \quad (1.3)
\end{align}
$$
Multi Head Attention処理の理解にあたって着目すべきは$(1.2)$式であり、$Q, K, V$にそれぞれ$W_{i}^{Q} \in \mathbb{R}^{d_{model} \times d_{k}}, W_{i}^{K} \in \mathbb{R}^{d_{model} \times d_{k}}, W_{i}^{V} \in \mathbb{R}^{d_{model} \times d_{v}}$をかけることでそれぞれの単語に対応する内部表現を$Q, K$については$d_k$次元、$V$については$d_v$次元にそれぞれ変換した上でDot Product Attention処理を行います。その後に$(1.1)$式で表されるように$h$個のヘッドを連結し、$W_{i}^{O} \in \mathbb{R}^{h d_v \times d_{model}}$を用いて再度パラメータ処理を行います。
Transformer論文ではヘッドの数を表す$h$を$h=8$、各単語の内部表現を$d_{model}=512$で表すのがデフォルトです。また、基本的には$h d_{k} = d_{model}, h d_{v} = d_{model}$であるので$d_{k}=d_{v}=64$がデフォルトになります。詳細の設定は論文のTable.$3$を参照すると良いです。
上図の「base」がデフォルトのTransformerの構成、「big」がより大きなTransformerの構成にそれぞれ対応します。関連で総パラメータ数の概算についても下記で取り扱ったので合わせてご確認ください。
正誤表
初版第1刷
ページ・行数 | $\times$ | ◎ |
---|---|---|
P.57 l.19 | $P(\mathbf{X})=P(x_0,\cdots,x_7)$の確率が大変小さくなることで | $P(\mathbf{X})=P(x_0,\cdots,x_7)$の確率が大変小さくなり |
P.75 l.5 | 単語のベクトルを分割してこれまでの処理を「並列で行う」と同義 | 単語 のベクトルを分割してこれまでの処理を「並列で行う」ことに類似 |
P.83 l.4 | 教習ラベル | 教師ラベル |
[…] ・サポートページ:直感的に理解するTransformerの仕組み […]