본문 바로가기
Archive/TIL

[TIL] Transformer 간단정리.

by 다람이도토리 2022. 6. 8.

풀잎스쿨 9주차 대비.

참고자료

[1] https://wikidocs.net/31379
[2] https://wdprogrammer.tistory.com/72

개요.

* transformer는 2017년 구글이 발표한 논문 'Attention is all you need'에서 나온 모델.
기존의 seq2seq 구조인 encoder-decoder에서 각 encoder, decoder를 attention으로 제작.

seq2seq -> attention을 사용했던 이유는 인코더가 입력 seq를 하나의 벡터로 압축하면서 정보가 날라가는 단점을 보정하기 위해 사용했는데, attention만으로 encoder와 decoder를 만들어 보면 어떻게 될지, 그리고 이렇게 한 것이 transformer이다.

https://wdprogrammer.tistory.com/72 출처

기본적으로 6개의 encoder와 6개의  decoder로 구성

transformer의 입력

transformer에서는 단어의 위치 정보 또한 제공하기 위해 positional encoding 활용.
각 단어의 embedding vector + positinal encoding 계산.

https://wikidocs.net/31379
https://wikidocs.net/31379

encoder 구조 : self-attention layer + feed-forward layer

(1) self-attention layer.

https://wikidocs.net/31379

attention에서
- Q(Query) : t 시점 decoder의 은닉 상태
- K(Key) : 모든 시점 encoder 셀의 은닉 상태
- V(Value) : 모든 시점의 encoder 셀 은닉 상태
Self attention -> Q = K = V

* transformer에서는 scaled-dot product를 통해 attention score 계산.

 (2) Position-wise feed-forward layer
* encoder, decoder 모두에 필요한 층

https://wikidocs.net/31379

decoder 구조

- 번역할 문장 행렬을 한번에 입력 받음
- 문제는, 현재 시점의 단어를 예측해야 할 때, 미래 시점의 단어도 참고하는 현상이 발생
-> 이를 참고하지 못하도록 하는 look-ahead mask 도입.

decoder의 attention : Query : 디코더 행렬 / Key = Value : 인코더 행렬

* 구조 정리

https://wdprogrammer.tistory.com/72

 

'Archive > TIL' 카테고리의 다른 글

[TIL] 0706 아침 스터디 / t-SNE  (0) 2022.07.06
[TIL] 0704 아침스터디 / VIF, LDA  (0) 2022.07.04
[NLP] seq2seq / attention 간단개념  (0) 2022.05.25
[TIL] LSTM vs GRU 간단하게 정리.  (0) 2022.05.19
[TIL] LTV란?, LTV의 예측  (0) 2022.05.07