1주차 논문 리뷰 - Transformer, Attention is All you need (2017)


Transformer의 등장

딥러닝 기반 기계 번역 발전 과정 RNN → LSTM → Seq2Seq → Attention → Transformer → GPT-1 → BERT → GPT-3

이 전에는 단어 입력 마다 hidden state 값이 갱신되어 이전까지 입력된 단어의 정보를 갖고 있기 때문에 마지막 단어가 들어왔을 때의 hidden state 값이 **context vector(고정된 크기의)**로 변환되어 문장 전체 정보를 갖고 있다. 이 하나의 context vector를 만들 때, 문장의 길이와 정보의 양과는 상관없이 고정된 크기로 만들기 때문에, bottleneck 현상이 발생한다.

Untitled

Attention 기법 출시 이후, 성능이 좋은 GPU의 등장으로 많은 메모리와 빠른 병렬 처리를 지원 받아 입력 시퀀스 전체에서 정보를 추출하는 방향으로 발전 하고 있다. (bottleneck 현상 해결)

Untitled

Attention 구조를 조금 더 자세히 보자면, $i$ : 현재 Decoder가 출력중인 인덱스 $j$ : 각각의 인코더 출력 인덱스 $s$ : Decoder가 단어를 만들기 위해 사용했던 hidden state $h$ : Encoder 단계의 각각의 hidden state $e_{ij}$ : 에너지, Decoder가 출력할 때마다, 직전 Decoder에서 사용됐던 s와 각 input의 h를 이용하여 만들어진다. $\alpha_{ij}$ : 가중치, 에너지들을 softmax 연산, 말 그대로 input의 가중치 역할을 한다. 각각의 h값과 곱해져서 연산된다. $c_i$ : 가중치와 h값을 곱하고 더한 가중합으로 이루어진다.

Untitled


Transformer란?

Transformer는 위의 Attention 아키텍처를 이용하되, RNN이나 CNN을 전혀 사용하지 않는 대신, Positional Encoding을 이용한다. (Positional Encoding : 위치 정보를 포함하기 위한 임베딩 방법)

2021년 기준, 최신 고성능 모델들은 Transformer 아키텍처를 기반으로 사용 GPT : Transformer의 Decoder 활용 BERT : Transformer의 Encoder 활용

Original sequence : 1, 2, 3, 4, 5, 6, 7 Trimmed sequence : 1, 2, 3, 4, 5 Omitted sequence : 1, 2, 4, 7 Permuted sequence : 2, 3, 4, 6, 5, 7