카테고리 없음

4-2. Transformer & Attention

kimyeji2358 2026. 4. 2. 16:28

1. 시퀀스 모델의 발전과 Transformer의 등장

○ 전통적인 모델의 한계 (RNN, LSTM)

시퀀스 데이터 

- 순서가 있는 데이터를 의미

-앞의 단어가 뒤의 단어에 영향을 미치는 텍스트, 음성, 주식 데이터 등이 해당

 

전통적인 모델(RNN, LSTM):  이전 입력 정보를 순환 구조로 기억하며 처리하는 방식

 

한계

  • 장기 의존성 문제 (Long-term Edpendency) : 문장이 길어질수록 앞부분의 정보가 뒤로 전달되지 않고 소실되는 현상
  • 학습 속도 및 병렬 처리 : 데이터를 순서대로 처리해야 하므로 GPU를 활용한 병렬 연산이 불가능하여 학습 속도가 매우 느려짐
  • 기울기 소실 및 폭발 : 역전파 과정에서 그래디언트가 너무 작아지거나 커져 학습이 제대로 이루어지지 않음

○ seq2seq 모델의 한계

구조 : 인코더가 입력 시퀀스를 하나의 벡터로 압축하고, 디코더가 이를 통해 출력 시퀀스를 만듦

 

한계

  • 정보 압축의 병목 현상 : 인코더가 전체 문장을 하나의 고정된 크기(벡터)로 압축히야 하므로 정보 손실이 발생
  • 해결책 : 문장의 특정 부분에 집중하는 Attention 매커니즘 등장

 

2. Attention 매커니즘의 작동 원리

○ Attention의 기본 개념

디코더가 단어를 생성할 때 인코더의 모든 정보를 균일하게 보는 대신,

필요한 부분만 선택적으로 참고하는 기법

 

  • 구성요소
    • Query(Q) : 현재 찾고자 하는 정보 (디코더의 현재 단어 상태)
    • Key (K) : 인코더 각 단어의 특성 (비교 대상)
    • Value (V) : 각 단어가 가진 실제 정보 내용

○ Attention 작동 단계

1. 유사도 계산

Query($s_t$)와 모든 Key($h_i$)를 비교하여 얼마나 관련이 있는지 점수를 매김

방법 : 주로 두 벡터의 내적(Dot Product)을 사용

내적 값이 클수록 두 단어의 연관성이 높다는 의미

$$e_t = Q \cdot K^T$$

 

2. 가중치 계산

계산된 점수들을 확률 값으로 바꿈

방법 : Softmax 함수를 통과시키면 모든 값의 합이 1이 됨.

결과 : 0과 1사이의 값이 나오며, 이를 어텐션 가중치라고 부름

이 과정을 통해 어떤 단어에 더 집중할지 결정되는 어텐션 분포가 형성됨

$$\alpha_t = \text{softmax}(e_t)$$

3. 가중합 계산 

각 단어의 실제 정보(Value)에 구한 가중치를 곱해 모두 더함

방법 : 가중치가 높은 단어의 정보는 크게 반영되고, 낮은 단어는 작게 반영됨

결과 : 이렇게 얻은 최종 결과물 → 어텐션 값(Attention Value) or 컨텍스트 벡터(Context Vector)라고 부름

입력 문장의 문맥 정보가 Query에 맞춰 압축된 형태

$$a_t = \sum_{i=1}^{N} \alpha_i^t h_i$$

 

3. 단어 예측

구해진 어텐션 값을 단어 예측에 반영함

방법 : 어텐션 값 ($a_t$) 과 현재 디코더의 상태($s_t$)를 연결(Concatenate) 

예측 : 연결된 벡터를 신경망에 통과시켜 최종적으로 다음에 올 가장 적절한 단어를 출력

3. Self-Attention

정의: 문장 내 단어들끼리에게 Attention을 취하여 단어 간의 연관성을 파악

이점: "The animal... beacause it...' 문장에서 "it"이 'animal'을 가르킨다는 문맥을 컴퓨터가 이해하도록 도움

계산 특징: 시작 값 (Q,K,V)은 동일 문장에서 나오지만, 학습되는 가중치($W^Q, W^K, W^V$)에 의해 최종 값은 달라짐

 

○ Scaled Dot-Product Attention

Transformer에서 사용하는 Self-Attention 공식

$$\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V$$
- Scaling 연산: $QK^T$를 $\sqrt{d_k}$로 나눔
→ 차원이 커질수로 내적값이 커져 Softmax의 기울기가 소실되는 문제를 방지하기 위함
- 병렬 처리: 여러 단어를 한꺼번에 처리하여 연산 속도(GPU 활용)가 비약적으로 향상됨
 

Q 왜 $d_k$의 제곱근으로 나누는가? (Scaling)

답: Softmax의 기울기 소실 문제를 방지하기 위함

$d_k$(Key의 차원)가 커질수록 내적 값($QK^T$)의 분산이 커짐.

내적 값이 커지면 Softmax 함수 그래프에서 미분 값의 0에 수렴하는 평평한 영역으로 이동

→ 미분 값이 0이 되면 역전파시 학습이 이루어지지 않음. 따라서 $\sqrt{d_k}$로 나누어 값의 범위를 조절함으로써 안정적인 학습 환경을 제공

 

Q eq2seq 모델과 비교했을 때 Attention이 해결한 가장 큰 문제점은 무엇인가?

답: 정보의 병목 현상과 병렬 처리의 한계를 해결함

병목 제거: 고정된 크기의 벡터 하나에 모든 정보를 넣지 않고, 필요할 때마다 입력 문장 전체를 다시 들여다 보는 방식

병렬성 확보: RNN의 순차 구조를 벗어나 GPU 연산 효율을 극대화함. 

 

4. Transformer 아키텍처

○ 인코더-디코더 구조

  • N개 층: 기존 seq2seq와 달리 인코더와 디코더 단위를 N개씩 쌓아 고차원 특징을 학습
  • Auto-regressive : 디코더는 <sos> 로 시작해 <eos>가 나올 떄까지 순차적으로 예측을 진행

○ 내부 구조적 특징

  • Multi-Head Attention : Attention을 여러 개(Head)로 나누어 병렬로 수행. 이를 통해 한 문장 안에서도 문법적 관계, 의미적 관계 등 다양한 문맥적 정보를 동시에 포착 가능
  • Residual Connection (잔차 연결): 각 층의 입력을 출력에 다시 더해주는 방식으로, 정보가 소실되지 않고 깊은 층까지 전달되도록 도움
  • Layer Normalization (층 정규화) : 각 층의 출력을 일정 범위로 정규화하여 학습 속도를 높이고 안정화

○ Positional Encoding (위치 인코딩)

필요성: Transformer는 데이터를 한꺼번에 입력받으므로 단어의 위치 정보가 없다

방법: 임베딩 벡터에 위치 정보를 담은 함수값을 더함

$$PE_{(pos, 2i)} = \sin(pos/10000^{2i/d_{model}})$$

효과: 동일한 단어라도 문장 내 위치에 따라 모델이 다르게 인식하게 됨

 

○ Transformer의 강점 및 응용

강점: 장기 의존상 학습이 가능, 병렬 처리를 통해 대규모 데이터 학습에 최적화

응용 분야: GPT, BERT의 뼈대가 되었으며 자동번역, 챗봇, 요약, 코드 생성 등에 사용

 

- 최신 동향 및 과제

  • 동향: 모델 경량화, 다중 모달(이미지+텍스트) 모델, 설명 가능한 AI(XAI)
  • 과제 : 데이터 향 문제, 개인 정보 보호, 모델 해석력 향상

 

Q 왜 Transformer는 RNN 없이도 문장의 순서를 이해할 수 있는가?

답: 포지셔널 인코딩(Positional Encoding) 덕분

Transformer는 모든 단어를 한꺼번에 입력받아 병렬 처리하므로 위치 정보가 사라짐

이를 해결하기 위해 각 단어의 임베딩 벡터에 고유한 위치 정보를 가진 함수값을 더함

모델은 단어의 절대적 위치, 단어 간의 상대적인 거리 차이까지 학습 가능. 순차적 처리 없이도 문맥을 파악함