Patrick's 데이터 세상

Transformer - Attention is all you need 본문

Deep Learning/NLP 이론

Transformer - Attention is all you need

patrick610 2023. 7. 25. 23:58
반응형
SMALL

 
 
 

 

Transformer

트랜스포머(Transformer)는 2017년 구글이 발표한 희대의 논문인 'Attention is all you need'에서 나온 모델로 후대에 BERT, GPT 계열의 모델에 막대한 영향을 끼쳤습니다.
기존의 seq2seq 인코더-디코더 구조를 따르면서 어텐션(Attention)만으로 구현한 모델입니다.
 
기존 seq2seq 모델은 인코더가 입력 시퀀스를 하나의 벡터로 압축하는 과정에서 정보가 일부 손실된다는 단점이 있는데 이를 보완하기 위해 등장했습니다.
 
 

👉🏻 트랜스포머 구조

 
트랜스포머는 RNN을 사용하지 않지만 기존의 seq2seq처럼 인코더에서 입력 시퀀스를 입력받고, 디코더에서 출력 시퀀스를 출력하는 인코더-디코더 구조를 유지합니다.
 
 
 

 
 
이전 seq2seq 구조에서는 인코더와 디코더에서 각각 하나의 RNN이 t개의 시점(time step)을 가지는 구조였다면 트랜스포머는 인코더와 디코더 단위가 N개로 구성되는 구조입니다.
논문에서는 인코더와 디코더의 개수를 6개로 사용하였습니다.
 
 
 
 
 
 
 
 
 

왼쪽 그림은 인코더로부터 정보를 전달받아 디코더가 출력 결과를 만들어내는 트랜스포머 구조입니다. 디코더는 <sos>를 입력받아 종료 심볼 <eos>가 나올 때까지 연산을 진행합니다. RNN을 사용하지는 않지만 여전히 인코더-디코더 구조가 유지되고 있습니다.
 
 
 

왼쪽 그림은 트랜스포머의 인코더, 디코더를 구조화한 모습이고 오른쪽 그림은 핵심 개념인 Positional Encoding, Attention, Residual Learning의 구조입니다.
 
Positional Embedding

문장 내 각각 단어들의 순서 정보를 알려주기 위해 Positional Embedding을 활용합니다.
Input Embedding Matrix와 같은 차원을 가지고 위치 정보를 갖는 별도 Positional Encoding을 Element wise로 더함으로써 각각 단어의 순서를 네트워크가 알도록 합니다.
 

Attention

Encoder의 Attention은 Self-Attention으로 각각의 단어 연관성을 파악합니다.
Input Embedding Matrix의 각 단어들은 서로에 대해 Attetion Score를 구하고 어떤 단엉와 높은 연관성을 갖는지 파악합니다.
 

Residual Learning

Residual Learning은 이미지 분류 네트워크 ResNet에서 사용된 개념입니다.
입력 값을 Layer를 거쳐 반복적으로 갱신하는 것이 아닌 특정 Layer를 건너뛰어 복사가 된 값을 그대로 넣는 기법입니다.
전체 네트워크는 기존 정보를 입력받으면서 추가적으로 잔여 부분만 학습합니다.
전반적 학습 난이도가 낮아지고 모델 수렴 속도가 높아지고 성능이 좋아집니다.
 
 

👉🏻 트랜스포머 동작 원리

 

                           Encoder                                    Decoder

디코더는 두 개의 어텐션이 존재합니다.

Multi-Head Attention

인코더 어텐션과 동일합니다. Self-Attention으로 각 단어들이 서로에 대해 가중치를 구하는 방법입니다.

Muti-Head Attention

두 번째 어텐션으로 인코더-디코더 어텐션이라 칭합니다. 인코더의 출력 정보를 사용하여 각 출력 단어가 소스 문장에 어떤 단어와 연관성이 있는지 판단합니다. ex) I am a teacher. → 나는 선생님이다. 선생님이 I, am, a, teacher 중 어떤 단어와 연관성이 높은지 계산.

 
Encoder에서는 Attention, Normalization을 반복합니다.
각 레이어는 서로 다른 파라미터를 가지지만 입력, 출력 dimension은 동일합니다.
Decoder의 각 레이어는 인코더의  마지막 레이어의 출력값을 입력으로 받고 마지막 레이어에서 나온 값이 번역을 수행한 출력 단어 결과입니다.
 

layer 갯수가 4일 때, 마지막 인코더 레이어의 출력이 모든 디코더의 입력입니다.
각 선은 두 번째 Multi-Head Attention 과정에 해당됩니다.
 
 
 
 

⭐️ 종합

트랜스포머는 인코더, 디코더 구조를 따릅니다.
RNN을 사용하지 않으며 인코더, 디코더를 다수 사용합니다.
RNN, LSTM은 인코더에서 고정된 벡터 크기를 사용하고 입력 단어 개수만큼 반복적으로 Encoder Layer를 거쳐서 매번 hidden state를 만듭니다.
Transformer는 입력 단어 자체가 하나로 연결되어 입력되고 한 번에 Attention 값을 구합니다. 즉, 위치 정보를 한 번에 넣어 인코더를 거칠때마다 병렬로 출력값을 구합니다. RNN에 비해 계산 복잡도가 낮습니다. 출력값을 내보낼 때는 Decoder 아키텍처를 여러 번 사용해서 <eos>가 나올 때까지 반복합니다.

 
 
 
 
 
 
 
 
 
 
 


출처
 
https://arxiv.org/abs/1706.03762

Attention Is All You Need

The dominant sequence transduction models are based on complex recurrent or convolutional neural networks in an encoder-decoder configuration. The best performing models also connect the encoder and decoder through an attention mechanism. We propose a new

arxiv.org

 
https://wikidocs.net/31379

반응형
LIST

'Deep Learning > NLP 이론' 카테고리의 다른 글

Attention Mechanism  (0) 2023.07.22
seq2seq(Sequence-to-Sequence)  (0) 2023.07.22
LSTM(Long Short-Term Memory)  (0) 2022.08.22
RNN(Recurrent Neural Network)  (0) 2022.08.21
Subword Tokenizer  (0) 2021.04.22
Comments