풀잎스쿨 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이다.
기본적으로 6개의 encoder와 6개의 decoder로 구성
transformer의 입력
transformer에서는 단어의 위치 정보 또한 제공하기 위해 positional encoding 활용.
각 단어의 embedding vector + positinal encoding 계산.
encoder 구조 : self-attention layer + feed-forward layer
(1) self-attention layer.
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 모두에 필요한 층
decoder 구조
- 번역할 문장 행렬을 한번에 입력 받음
- 문제는, 현재 시점의 단어를 예측해야 할 때, 미래 시점의 단어도 참고하는 현상이 발생
-> 이를 참고하지 못하도록 하는 look-ahead mask 도입.
decoder의 attention : Query : 디코더 행렬 / Key = Value : 인코더 행렬
* 구조 정리
'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 |