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)을 사용
내적 값이 클수록 두 단어의 연관성이 높다는 의미
2. 가중치 계산
계산된 점수들을 확률 값으로 바꿈
방법 : Softmax 함수를 통과시키면 모든 값의 합이 1이 됨.
결과 : 0과 1사이의 값이 나오며, 이를 어텐션 가중치라고 부름
이 과정을 통해 어떤 단어에 더 집중할지 결정되는 어텐션 분포가 형성됨
3. 가중합 계산
각 단어의 실제 정보(Value)에 구한 가중치를 곱해 모두 더함
방법 : 가중치가 높은 단어의 정보는 크게 반영되고, 낮은 단어는 작게 반영됨
결과 : 이렇게 얻은 최종 결과물 → 어텐션 값(Attention Value) or 컨텍스트 벡터(Context Vector)라고 부름
입력 문장의 문맥 정보가 Query에 맞춰 압축된 형태
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 공식
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는 데이터를 한꺼번에 입력받으므로 단어의 위치 정보가 없다
방법: 임베딩 벡터에 위치 정보를 담은 함수값을 더함
효과: 동일한 단어라도 문장 내 위치에 따라 모델이 다르게 인식하게 됨
○ Transformer의 강점 및 응용
강점: 장기 의존상 학습이 가능, 병렬 처리를 통해 대규모 데이터 학습에 최적화
응용 분야: GPT, BERT의 뼈대가 되었으며 자동번역, 챗봇, 요약, 코드 생성 등에 사용
- 최신 동향 및 과제
- 동향: 모델 경량화, 다중 모달(이미지+텍스트) 모델, 설명 가능한 AI(XAI)
- 과제 : 데이터 향 문제, 개인 정보 보호, 모델 해석력 향상
Q 왜 Transformer는 RNN 없이도 문장의 순서를 이해할 수 있는가?
답: 포지셔널 인코딩(Positional Encoding) 덕분
Transformer는 모든 단어를 한꺼번에 입력받아 병렬 처리하므로 위치 정보가 사라짐
이를 해결하기 위해 각 단어의 임베딩 벡터에 고유한 위치 정보를 가진 함수값을 더함
모델은 단어의 절대적 위치, 단어 간의 상대적인 거리 차이까지 학습 가능. 순차적 처리 없이도 문맥을 파악함