ghmagazine / llm-book

「大規模言語モデル入門」(技術評論社, 2023)のGitHubリポジトリ
https://gihyo.jp/book/2023/978-4-297-13633-8
Apache License 2.0
272 stars 41 forks source link

2.2.4 式(2.17) W_o の次元は D x D でなく、 D x MD が正しいのではないでしょうか? #32

Closed nrnrk closed 2 months ago

nrnrk commented 2 months ago

概要

2.2.4 の 式(2.17) の $W_o$ の次元は $D \times D$ でなく $D \times MD$ が正しいのではないでしょうか? $\left[ \right]$ の記法は厳密には定義されていないですが、 $M$ 個の $D$ 次元ベクトル $o_i^{(j)}$ を縦に並べるものとすると、 $W_o$ は $MD$ 次元のベクトルを $D$ 次元のベクトルにマッピングする行列になるので $D \times MD$ 次元であるのではないかと思いました。

image

版情報

Kindle 版で読んでいます。巻末に下記の記載がありました。

電子版発行日: 2023年7月29日 初版 第1刷発行 電子版更新日: 2023年8月1日 初版 第2刷発行

ikuyamada commented 2 months ago

コメントをいただきありがとうございます。 式2.16から $\mathbf{o}_i^{(m)}$ は $\mathbf{v}_j^{(m)}$ を足し合わせて得られます。また、式2.13から $\mathbf{v}_j^{(m)}$ は、 $\mathbf{h}_i$ に $\mathbf{W}_v^{(m)} \in \mathbb{R}^{(D/M) \times D}$ をかけることで計算されるため、 $D/M$ 次元です。このため $\mathbf{o}_i^{(m)}$ は $D/M$ 次元となり、このベクトルを $M$ 個連結したベクトルは $D$ 次元となるため、 $\mathbf{W}_o$は、 $D\times D$ 次元です。 紛らわしい説明となり恐縮ですが、よろしくお願いいたします。

nrnrk commented 2 months ago

ありがとうございます。私の勘違いだったようです。説明いただきありがとうございました。よくわかりました 🙇