2021.11.15 - [딥러닝관련/자연어처리] - Transformer Decoder : Masked Self Attention
Transformer 정리를 위해 위 글에서 계속 이어짐
[Encoder-Decoder Attention]
Masked Self Attention layer의 output vector는 encoder block에서와 동일하게
residual block과 layer noramlization 과정을 거침
이후 Encoder-decoder attention 과정을 거침
Encoder-Decoder layer에서는 encoder의 마지막 block에서 출력된 key, value 행렬로
self attention 매커니즘 한 번 더 수행
출처 : http://jalammar.github.io/images/t/transformer_decoding_2.gif
decoder의 두 번째 sub-layer는 multi head attention을 수행한다는 점에서,
이전의 attention들(encoder, decoder 첫 번째 sub layer)과 같지만,
self attention은 아니다.
Self attention의 경우 query, key, value가 같은 input으로부터 생성되지만
Encoder-decoder attention은
query : decoder 행렬인 반면,
key와 value : encoder 행렬
위는 전체적인 transformer 구조 중 빨간색 화살표를 봐보자
이는 key, value를 의미하며,
encoder의 마지막 layer로부터 온 행렬로부터 얻는다.
반면 query는 decoder의 sub-layer의 결과 행렬로부터 얻는다.
Decoder 행렬인 Query vector와
Encoder 행렬인 key vector에 대해
attention score를 구하는 과정은 아래와 같다.
참조
https://yngie-c.github.io/nlp/2020/07/01/nlp_transformer/
'딥러닝관련 > 자연어처리' 카테고리의 다른 글
자연어 처리란 (0) | 2021.12.15 |
---|---|
Transformer Decoder : Linear & Softmax Layer (0) | 2021.11.16 |
Word2Vec (0) | 2020.07.20 |
StackGAN 논문 리뷰(작성 중) (0) | 2020.07.16 |
Word Embedding (0) | 2020.07.13 |