モデル: 埋め込み層: 文章内の各トークンの単語を1024次元に埋め込む. 文章内の各トークンの位置を1024次元に埋め込む. 文章内の各トークンのタイプを1024次元に埋め込む(※ 今回はすべて同じタイプ). 3つの埋め込みベクトルを足す. 正規化して1024次元の特徴ベクトルの列にする. エンコーダ層: エンコーダ層内の0層目: セルフアテンション層: マルチヘッドアテンション: 各特徴ベクトルを64次元に写像する(Q). ※ これを16ヘッド分やる. 各特徴ベクトルを64次元に写像する(K). ※ これを16ヘッド分やる. 各特徴ベクトルを64次元に写像する(V). ※ これを16ヘッド分やる. softmax(Q・K/√64)・V を計算する. ※ これを16ヘッド分やる. ここまでで各トークンが64次元の特徴になる. ※ これが16ヘッド分ある. 16ヘッドの結果をconcatする. ここまでで各トークンが1024次元の特徴になる. 各トークンごとに1024次元に全結合して正規化する. 各トークンごとに4096次元に全結合する. 各トークンごとに1024次元に全結合して正規化する. エンコーダ層内の1層目: エンコーダ層内の2層目: (中略) エンコーダ層内の23層目: (中略) 各トークンごとに1024次元に全結合して正規化する. → よって,最終的に各トークンが1024次元の特徴ベクトルになる.
雑記: BERTが何をしているかを掘り下げる
貼り付けた Gist の幅では まとめ の箇所が改行されるのでコピペすると以下。