- 주의: 이 포스팅은 제가 읽고 이해한대로 작성한 논문리뷰이며 잘못된 지식이나 오역이 있을 수 있습니다.
서론
language modeling이나 기계번역에서 가장 최신의 접근 방법은 LSTM, GRU, RNN 등이었다.
이 모델들은 recurrent 구조를 이용해서 이전의 데이터를 기억해 다음 학습에 반영한다는 특징이 있다.
그러나 이 구조는 기본적으로 모델의 병렬화를 불가능하게 해서 시퀀스가 너무 길 때나 메모리의 제한이 있을 때 문제가 생길 수 있다.
한편 어텐션 메커니즘은 시퀀스의 길이에 상관없이 시퀀스간의 의존도를 모델링하는 데 필수적인 메커니즘이 되었다.
이 논문에서 우리는 Transformer라는 recurrnece를 제거하고 대신에 오직 어텐션 메커니즘만 사용하여 global dependencies를 반영하는 모델 구조를 제안한다.
Transformer는 병렬화에 수월하고 기계번역의 새로운 최신 모델이 될 수 있다.
본론
Transformer 모델은 Encoder(왼쪽)과 Decoder(오른쪽)으로 이루어져있다.
Transformer 모델은 단어 임베딩에 positional embedding 값을 더해준다. Transformer는 recurrence 구조를 사용하지 않기 때문에 시퀀스의 position 정보를 따로 임베딩하는 것이 필요하다. positional embedding은 단어 임베딩과 같은 차원을 가지고 있다.이 논문에서 positional embedding은 sin, cos와 같은 주기함수를 이용하여 값을 매핑해주었다.
Encoder는 multi-head self-attention 레이어와 fully connected layer로 이루어져있다. 또한 잔차연결을 사용한다. 잔차 연결을 위해 임베딩 레이어를 포함한 모든 레이어에서 output의 차원은 512이다.
Decoder는 Masked multi-head self-attention 레이어를 사용한다.이 레이어는 예측단어 보다 앞에 나오는 단어만 사용하여 어텐션을 진행한다.(미래 참조를 막기 위해) 그 다음 Encoder의 output을 이용해 함께 multi-head attention을 진행한다.
self-head attention이란?
- self-head attention은 query를 key, value 쌍에 매핑을 하는 레이어이다. 여기서 query는 시퀀스 중 하나의 단어이고, key는 그 외에 모든 단어이다. value는 해당 key에 해당하는 값을 말한다.
- 어텐션은 다른 단어들이 해당 단어에 얼마나 영향을 미치는지 계산하여 weight를 매핑하는 레이어이다.
- multi head attention은 마지막에 weight를 softmax로 내보내고 이 값과 value를 matmul을 진행하여 최종 output을 출력한다.
결론
이 논문에서 우리는 오직 어텐션만을 사용한 첫번째 transduction 모델을 제안했다. 이 모델은 인코더 디코더 구조의 모델에서 가장 흔히 쓰이는 recurrent layer를 대체했다.
기계번역 task에서 Transformer는 recurrent layer나 convolution layer를 사용한 아키텍쳐보다 상당히 빠른 속도로 학습될 수 있다. WMT 2014 영어-독어 번역, 영어-불어 번역 task에서 다른 모델들과 그 모델들의 앙상블 모델에 비해 가장 좋은 성능을 보였다.
우리는 Transformer 모델을 번역 task를 넘어서 이미지, 음성, 영상 등의 큰 input과 output을 다루는 문제에까지 확장할 예정이다.
'Data Science' 카테고리의 다른 글
누락값(Missing value)를 다루는 방법들 (0) | 2022.05.09 |
---|---|
[논문 리뷰] ESRGAN (0) | 2022.03.25 |
[논문 리뷰] SRGAN (0) | 2022.02.18 |
빈도주의 vs 베이지안 (0) | 2022.02.06 |
[딥러닝/머신러닝] 모델 하이퍼파라미터 튜닝 라이브러리 정리 (0) | 2022.01.28 |