AI·빅데이터 융합 경영학 Study Note
[논문리뷰]Transformer 본문

- 자연어 처리 모델의 발전 배경
먼저 자연어 처리 모델의 발전 배경을 훑어보겠습니다.
초기 자연어 처리 모델은 순차적으로 단어를 처리하는 RNN을 기반으로 발전했습니다.
하지만 RNN은 긴 문장에서 정보가 점차 희미해지는 문제가 있었고, 이를 개선하기 위해 LSTM이 등장했습니다.
이후 Seq2Seq는 Encoder가 입력 문장을 읽고, Decoder가 이를 바탕으로 출력 문장을 생성하는 구조로,
번역 등 다양한 작업에 활용되었습니다.
트렌스포머 구조를 활용한 초기 NLP 모델로는 지피티와 버트가 있습니다.
gpt와 버트는 모두 오늘 알아볼 트랜스포머의 아키텍처를 적절히 활용해서 좋은 성능을 내고 있습니다.
GPT는 “Decoder-only Transformer”로 다음 토큰을 예측함
BERT 계열 → 주로 Encoder-only Transformer
- 문장 이해, 분류, 검색, 임베딩
- 양방향 문맥 이해
이후 Transformer는 생성형 AI와 멀티모달 AI의 핵심 기반으로 발전했습니다.

<Seq2Seq의 모델들의 한계>
<첫번째 문제>
즉, 긴 문장이든 짧은 문장이든 마지막에 하나의 벡터로 요약해서 Decoder에 전달한다.
그래서 병목현상이 발생해져서 문장이 길어질수록 앞부분 정보가 희미해진다.
비유하자면, 책 한 권을 읽고 한 문장 요약만 보고 시험 보는 느낌
<두번째 문제>
병렬처리 어려움(느림, 확장 어려움)
<세번째 문제>
렁텀 Dependency가 무엇이냐,
자연어에서 멀리 떨어진 단어들 사이의 관계를 모델이 제대로 기억하고 연결해야 하는 문제입니다. 문장 앞부분 정보가 한참 뒤에 의미 결정에 중요한데, Seq2Seq는 시간이 지날수록 초반 정보를 약하게 기억하는 경향이 있습니다.

“그렇다면 디코더 파트에서는 하나의 문맥 벡터에 대한 정보만 가지고 있는 게 아니라 출력 단어를 만들때마다 매번 소스 문장에서의 출력값들 전부를 입력으로 받으면 어떨까요?
그림에서 보시는것처럼
히든 스테이트가 나올때마다 출력값으로써 별도의 배열로 기록해놓습니다. 이런식으로 각각의 단어를 거치면서 갱싱되는 히든 스테이트를 가지게 만들면, 출력단어가 생성될때마다, 소스 문장 전치를 반영하게 된다.
실제로는 디코더 파트에서 매번 히든 스테이트 파트를 갱신하게되는데, 이때 현재 단계에서 히든 스테이트 값을 만드는 과정을 설명하겠습니다.
이전 하든 스테이트 값과 소스 문장단의 히든 스테이트 값을, 서로 묶어서
별도의 행렬곱을 수행해서
각각 에너지 값을 만들어냅니다.
(에너지값 뜻: 현재 디코더 상태가 입력 문장의 각 단어를 얼마나 중요하게 볼지 계산하기 위한 ‘관련성 점수’. 관련성을 수치화한 값”)
에너지값에 소프트맥스를 취해서 확률값을 구한뒤에
소스 문장에 각각의 하든 스테이트값에 대해서 어떤 벡터에 더 많은 가중치를 두어서 참고하면 좋을지를 반영해서 다 히든 스테이트에 곱한 것을 각각의 비율에 맞게 더해준 다음에
그러한 weighted sum 값이 매번 출력 단어를 만들기 만들기 위해서 반영하겠다고 보시면 되겠습니다.
<장정>
성능이 좋아질 뿐아니라 어텐션 가중치, 즉 구해진 확률값을 이용해서, 매번 출력이 나올때마다 어떤 정보를 참고했는지를 구할 수 있습니다.


<장정>
성능이 좋아질 뿐아니라 어텐션 가중치, 즉 구해진 확률값을 이용해서, 매번 출력이 나올때마다 어떤 정보를 참고했는지를 구할 수 있습니다.
RNN을 사용하지 않으려면 위치 정보를 주기 위해서 위치 정보를 인코딩하고 있는 포지셔널 인코딩을 사용해야 합니다.
그림에 나온 식으로 인풋 인배딩 메트릭스와
같은 디멘션을 가지는 별도의 위치 정보를 가진 인코딩을 넣어줘서
각각 element-wise addition 방식으로 더해서, 각각의 단어가 어떤 순서를 가지는지를 네트워크가 알 수 있도록 만드는 것입니다.
실제로 위치에 대한 정보까지 포함하고 있는 입력값을 어텐션에 넣어줍니다. 이걸 셀프 어텐션이라고 불러요. 각각의 단어가 서로에게 어떤 연관성을 가지고 있는지를 구하기 위해 사용합니다.
추가적으로 성능 향상을 위해 residual learining을 사용합니다. 대표적인 이미지 분류 네트워크인 레즈넷에서 사용되는 기법으로, 어떠한 값을 레이어를 거쳐서, 반복적으로 단순하게 갱신하는 것이 아니라,
특정 레이어를 건너뛰어서 복사가 된 값을 그대로 넣어주는 기법을 의미힙니다.
이걸 residual connection이라고 부릅니다.
이렇게 해줌으로써 전체 네트위크는 기존 정보를 입력받으면서 추가적으로 잔여된 부분만 학습하도록 만들기 때문에 전반적인 학습 난이도가 낮고 초기 모델 수렴 속도가 빠르고 성능이 좋아집니다.
이렇게 어텐션을 수행한 값과, residual connection을 이용해서 바로 더해진 값을 받아서 normalization까지 수행한 뒤에 그 결과를 내보낼 수 있도록 만들면 이게 인코더의 동작 과정입니다.)
어텐션과 정규화 과정을 반복함. 이때 각 레이어는 서로 다른 파라미터를 가짐.
(예를 들어 1번 레이어와 2번 레이어의 어텐션 및 feedforward 레이어에 새용되는 파라미터들은 서로 다릅니다. 또한 레이어를 중첩해서 사용할 수 있다는 점에서 유추할 수 있겠지만 입력값과 출력값의 디멘션이 동일합니다.)

여러 개의 인코더 레이어 중 가장 마지막 인코더 레이어의 출력값이 모든 디코더 레이어에 입력의 입력된다.
(그 이유는 디코더 파트에서는 매번 출력할때마다 입력 소스 문장중에서 어떤 단어에 집중해야 하는지를 알려주기 위함임. 디코더 파트도 마찬가지로 여러 개의 레이어로 구성되고, 마지막 레이어에서 나온 출력값이 실제로 번역을 수행한 결과가 된다. 이때 각각의 레이어는 이 인코더의 마지막 레이어의 출력값을 입력으로 받는 것임.)


예를 들면 훈련 중 “the”가 “sour”를 미리 보면
정답을 미리 컨닝하는 것과 같음.
그럼으로 미래 정보에 관한 단어들은 값을 -무한으로 만들어, softmax 적용 시 0으로 만드는 것이다.
어렵게 표현하면, 시퀀스 모델의 오토 리그레시브 프로퍼티를 보존해야하기 때문에 masking vector를 사용하여 해당 position 이전의 벡터들만을 참조하게끔 한다고 할 수 있다.
삼각형 모양 이유
미래를 차단하면 오른쪽 위 영역이 막힘




'AI·ML' 카테고리의 다른 글
| [논문리뷰]VAE: Auto-Encoding Variational Bayes (1) | 2026.05.17 |
|---|---|
| [논문리뷰] SPPnet 'Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition' (0) | 2026.05.11 |
| [논문리뷰] ELMo(Deep contextualized word representations) (0) | 2026.04.29 |
| [논문 리뷰] UNet (수학 이해 못함) (0) | 2026.04.13 |
| [논문 리뷰] Inception V2/V3 (0) | 2026.04.13 |