본문 바로가기
딥러닝관련/자연어처리

Transformer Decoder : Encoder-Decoder Attention

by 머리올리자 2021. 11. 16.

2021.11.15 - [딥러닝관련/자연어처리] - Transformer Decoder : Masked Self Attention

 

Transformer Decoder : Masked Self Attention

2021.11.15 - [딥러닝관련/자연어처리] - 포지션-와이즈 피드 포워드 신경망(Position-wise FFNN) 포지션-와이즈 피드 포워드 신경망(Position-wise FFNN) 2021.11.14 - [딥러닝관련/자연어처리] - Multi-head Att..

better-tomorrow.tistory.com

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 행렬

 

출처 : https://wikidocs.net/images/page/31379/transformer_from_encoder_to_decoder.PNG

 

위는 전체적인 transformer 구조 중 빨간색 화살표를 봐보자

 

이는 key, value를 의미하며, 

 

encoder의 마지막 layer로부터 온 행렬로부터 얻는다.

 

반면 query는 decoder의 sub-layer의 결과 행렬로부터 얻는다.

 

 

Decoder 행렬인 Query vector와

Encoder 행렬인 key vector에 대해

 

attention score를 구하는 과정은 아래와 같다.

 

출처 : https://wikidocs.net/images/page/31379/%EB%94%94%EC%BD%94%EB%8D%94%EB%91%90%EB%B2%88%EC%A7%B8%EC%84%9C%EB%B8%8C%EC%B8%B5%EC%9D%98%EC%96%B4%ED%85%90%EC%85%98%EC%8A%A4%EC%BD%94%EC%96%B4%ED%96%89%EB%A0%AC_final.PNG

 

참조

https://wikidocs.net/31379

 

1) 트랜스포머(Transformer)

* 이번 챕터는 앞서 설명한 어텐션 메커니즘 챕터에 대한 사전 이해가 필요합니다. 트랜스포머(Transformer)는 2017년 구글이 발표한 논문인

wikidocs.net

https://yngie-c.github.io/nlp/2020/07/01/nlp_transformer/

 

트랜스포머 (Transformer) · Data Science

2013년 Word2Vec이 발표된 후 GloVe, Fasttext 등이 등장하면서 단어 수준의 임베딩에 대한 방법론이 어느 정도 마무리 되었습니다. 그 뒤로는 문장 수준의 임베딩을 위한 방법론들이 등장하게 됩니다.

yngie-c.github.io

 

'딥러닝관련 > 자연어처리' 카테고리의 다른 글

자연어 처리란  (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