Mais conteúdo relacionado Semelhante a Transformerについて解説!!(Encoder部分) (20) Transformerについて解説!!(Encoder部分)2. ・⾃⼰紹介
ML 10⽉期 堀尾洋輔
• 趣味
• ⾳楽(主にR&B, Soul, mellow系J-hiphop)
• コーヒー
• テニス etc...
• 勉強している分野
• ⾃然⾔語処理
• たまーーーーーーにベイズ機械学習
1
10. 9
Positional Encoding
• なぜsin, cos関数を用いるのか?
モデルの学習時に計算が容易だと仮定しているから、、?
PE !"#$%,'( = sin (pos + k) 𝑢)
sin (pos + k) 𝑢! =
sin posu! cos ku! + cos posu" 𝑠𝑖𝑛 ku" =
PE #$%,'" cos 𝑘𝑢! + PE #$%,'"() sin(𝑘𝑢!)
K地点後
u4 =
5
56666 ⁄
"# $%&$'(
とすると
PE 789,;4 = sin pos𝑢<
PE 789,;4=5 = cos posu4
原論文では、k地点後もsinとcosに関する一次関数であるためと書かれている
(おそらくL2ノルムの大きさがモデルの次元を固定すると一意になるため、、?)
12. 11
1. Multi Head Attention
そもそもAttentionって?
あるトークンにおいて、入力をK, Q, Vの三つに分割し重みをつけることで
他のトークンとの関係を明らかにする手法
Attention Q, K, V = Softmax
QK3
𝑑4
𝑉
Q = W!x", K = W#x", V = W$x", x" : 入力ベクトル, d%: 次元数
また、Transformerで採用されているQ,K,Vに分けるAttentionを
”Scaled Dot-Product Attention”と呼ぶ
14. =
13
Scaled Dot-Product Attention
• Q, K, Vの準備
単語の数がn個の一つの文章Aを入力とする時を考える
𝕎>
𝕩
𝕎?𝕩
𝕎
@ 𝕩
Q
K
V
1×d*$+,-
n
×
1
n
×
𝑑!"#$%
𝕩
𝐸𝑚𝑏𝑒𝑑𝑑𝑖𝑛𝑔
𝑆𝑒𝑛𝑡𝑒𝑛𝑐𝑒A
n
×
𝑑M8NOP
n
×
𝑑M8NOP
n
×
𝑑M8NOP
図2 )Scaled Dot-Product Attentionの概要1
17. 16
Scaled Dot-Product Attention
• 𝑆 = 𝑆𝑜𝑓𝑡𝑚𝑎𝑥
:;!
<"#$%&
∈ ℝQ×Q
, Q, K ∈ ℝQ×R)*+,-
𝕢*
𝕢%
𝕢+
⋮
𝕢,
𝕜*
-
, 𝕜%
-
, 𝕜+
-
, ⋯ , 𝕜.
-
𝐾!
𝑠55 𝑠5' ⋯ 𝑠5=
𝑠'5 𝑠'' ⋯ 𝑠'=
𝑠75 𝑠7' ⋯ 𝑠7=
⋮ ⋮ ⋮ ⋮
𝑠=5 𝑠=' ⋯ 𝑠==
𝑄 𝑆
𝕢(, 𝕜) ∈ ℝ5×<"#$%&, 𝑠)? = 𝑆𝑜𝑓𝑡𝑚𝑎𝑥 P
𝕢(𝕜?
@
𝑑AB<CD
18. 17
𝑆 ∈ ℝ"×"
Scaled Dot-Product Attention
• 𝑜𝑢𝑡𝑝𝑢𝑡 = 𝑆𝑉 ∈ ℝ=×<"#$%&
s55 s5; ⋯ s5S
s;5 s;; ⋯ s;S
sT5 sT; ⋯ sTS
⋮ ⋮ ⋮ ⋮
sS5 sS; ⋯ sSS
𝕧$
𝕧%
𝕧&
⋮
𝕧'
𝑉 ∈ ℝQ×R)*+,-
𝕠$
𝕠%
𝕠&
⋮
𝕠'
𝑜𝑢𝑡𝑝𝑢𝑡 ∈ ℝQ×R)*+,-
𝕠) = R
?
𝑠)? 𝕧) ∈ ℝ5×<"#$%&
21. =
20
Multi Head Attention
• Q, K, Vをヘッド数(h)に応じて用意する
𝕎<,>
𝕩
𝕎<,?𝕩
𝕎
<,@ 𝕩
Q
K
V
1×d*$+,-
n
×
1
n
×
𝑑!"#$%
𝕩
𝐸𝑚𝑏𝑒𝑑𝑑𝑖𝑛𝑔
𝑆𝑒𝑛𝑡𝑒𝑛𝑐𝑒A
n× ⁄
𝑑*$+,- ℎ
n× ⁄
𝑑*$+,- ℎ
n× ⁄
𝑑*$+,- ℎ
n× ⁄
𝑑*$+,- ℎ
n× ⁄
𝑑*$+,- ℎ
n× ⁄
𝑑*$+,- ℎ
n× ⁄
𝑑*$+,- ℎ
n× ⁄
𝑑*$+,- ℎ
n× ⁄
𝑑*$+,- ℎ
n× ⁄
𝑑*$+,- ℎ
n× ⁄
𝑑*$+,- ℎ
n× ⁄
𝑑*$+,- ℎ
図4 )Multi Head Attentionの概要1
25. 24
Feed Forward Layer
• 一般的な順伝播型NNとほぼ同じ計算が行われている層
相違点としては、一般に中間層の次元のサイズが小さくなるのに対
して、Transformerは反対にサイズが4倍になるように設計されている
Attention後の出力を一意のものにすることで潜在的な依存関係も捉
え、表現力の向上につながるという役割がある
原論文では活性化関数としてReLUを用いている
𝐹𝐹𝑁 𝑥 = 𝕎'ℎ)′ + 𝑏'
ℎ)
E
= 𝑅𝑒𝐿𝑈 𝕎5ℎ) + 𝑏5
[𝑊: 各種重み, ℎ": 𝑒𝑛𝑐𝑜𝑑𝑒𝑟の𝑖番目の隠れベクトル, 𝑏: バイアス]
ReLU
図6) TransformerにおけるFFN
32. 参考資料
1. Attention Is All You Need (Vaswaniら, 2017)
2. 自然言語処理の基礎
3. Transformerによる自然言語処理
4. Transformerのデータの流れを追ってみる
5. 作って理解するTransformer/Attention
6. バッチ正規化(Batch Normalization) とその発展型