Transformer가 나오기 까지의 Step by Step

링딩딩 코딩딩·2023년 8월 12일
0

Notice!
본 글은 medium블로그에서 Yule Wang, PhD 의 글인 Step-by-Step Illustrated Explanations of Transformer글을 번역과 함께 개인적인 해석이 들어간 포스팅입니다. 배우는 입장인지라 틀린 부분이 있거나 잘못해석한 부분이 있다면 많은 지적 부탁드리겠습니다!! 감사합니다.

This is a translation and personal interpretation of the article Step-by-Step Illustrated Explanations of Transformer by Yule Wang, PhD on medium. So, if I'm wrong or have misinterpreted something, please point it out!!! Thank you.

Before Transformer (;BT)

Bag of words

트랜스포머가 나오기 전 Bag of word방식은 NLP에서 통용적이였다. 이 방식은 word 자체를 하나의 객체로 보는데, 문서에서 각 단어의 출현 빈도를 통해 모든 문서에서 해당 단어의 희귀적 특성 또는 공통 특성 정도를 측정하는 TF-IDF는 Bag of word의 방식을 가장 잘 활용한 방법론으로 볼 수 있다. TF-IDF도 문서 표현을 embedding으로 표현하지만 문장의 문맥적 요소는 전혀 고려하지 않는다는 단점이 있다. 이를 해결하기 위해 n-gram이라는 방법을 도입하지만, 복잡한 문장에 대해서 미미한 성과를 보였다.

RNN & LSTM

RNN

문맥적 정보를 어떻게 반영할까? 라는 질문에 답을 하기 위해서 우선 문맥적 정보를 가지고 어떤 행위를 할지 정의해아한다. 이후 연구자들은 문장 구성에 따른 단어들은 이전에 나왔던 단어를 보고 다음 단어를 "문맥적"으로 파악할 수 있다고 생각했다. 즉, 통계적으로 과거의 단어들 출현을 보고 조건부 확률(Conditional Probability)로 나타낼 수 있다는 가설로 시작했다.
P(wi)=P(wiw1,...,wi1)P(w_{i}) = P(w_{i}|w_{1},...,w_{i-1})
순환 신경망(Recurrent Neural Networks; RNNs)은 문맥적 정보를 담을 수 있는 조건부확률을 적용할 수 있는 인공신경망이다. (이후 더 자세하게 다뤄보도록 하자.)

What is RNNs?
RNN은 과거 입력에 대한 기억을 유지할 수 있어 단어 간의 시간적 종속성을 포착할 수 있습니다. 하지만 시퀀스 길이가 길어질수록 RNN은 역전파 과정에서 기울기 소실 및 증폭 문제가 발생합니다. 또한 RNN은 시간이 지남에 따라 과거 입력에 대한 기억이 감퇴하기 때문에 긴 시퀀스를 처리하는 데 어려움을 겪으며, 이로 인해 네트워크가 장기적인 종속성을 학습하는 데 방해가 됩니다.

LSTM

순환 신경망의 단점을 보완하기 위해 개발된 LSTM(Long Short-Term Memory)는 과거의 정보를 선택적으로 유지 또는 망각시키는 게이트(Forgot gate)를 도입합니다. 이를 도입하여 메모리 셀을 아키텍쳐에 포함시키는데, 이는 길이가 긴 시퀸스의 처리와 기울기 소실 문제를 해결했습니다.

하지만, 긴 문장의 단어 하나하나를 순차적으로 훈련하여 계산하기 때문에 비용 소모가 매우 크며 훈련 시간 또한 비효율적으로 많이 들어간다는 한계점이 있었습니다. 블로그 글에선 LSTM모델은 일반적으로 평균 200개의 단어를 처리한 후 성능이 저하된다는 평으로 LSTM의 한계점을 마무리합니다.

Transformer의 등장

트랜스포머는 문장의 단어들을 한번에 처리하여 1)훈련시간을 줄이며 각 단어들의 관계를 파악하여 2)정보의 손실이 없게 할 순 없을까? 에 대한 문제를 해결하는 Attention을 도입한 모델입니다. 본문에선 "a)단어와 단어의 관계를 유지하는 self-attention메커니즘과 b) 각 단어의 위치를 나타내는 위치 인코딩을 활용하여 정보의 장기종속성을 보존하였다."라고 표현했습니다. 결국 트랜스포머의 등장으로 문장 전체를 병렬 계산하여 지금까지 다룬 모든 한계점을 보완하게 되었습니다. 초기 트랜스포머의 구성은 총 2가지로 입력 텍스트의 정보를 담기 위한 EncoderEncoder 그리고 인코더의 정보를 받아 텍스트를 생성하기 위한 DecoderDecoder가 있습니다.

이후, 3가지 큰 갈래로 나누어지면서 개별적인 모델들이 등장하는데 1) Only-Encoder 모델 (ex. BERT) 2) Only-Decoder 모델 (ex. GPT) 3) En-Decoder 모델 (ex.T5)로 구성되어 있습니다.

이후 Transformer의 구성과 작동 원리에 대해서 포스팅 하도록 하겠습니다.


Reference

1개의 댓글

comment-user-thumbnail
2023년 8월 12일

개발자로서 배울 점이 많은 글이었습니다. 감사합니다.

답글 달기